// Manages the stock checking and product lookups
window.addEvent('domready', function() {

   	    var loops     = 30;
        var params    = new Array();
	    params[0] = 'colourswatch';
  	    params[1] = 'size';
	    params[2] = 'waist';
	    params[3] = 'length';

	var baseurl = '';
	baseurl = window.location.href.replace(/\.html/, '');
	baseurl += ':ajaxCombi';

	for(var i=0; i<loops; i++) {
	    for(var x=0; x<params.length; x++) {
		var elem = $(params[x] + '_' + i);
		if(elem == null) { continue; }

		// Attach the onchange event
		// to the select options
		elem.setProperty('index', i);
		elem.addEvent('change', function(event) {
		    var qry = '';
		    for(var y=0; y<params.length; y++) {			
			obj = $(params[y] + '_' + this.getProperty('index'));
		        if(obj && obj.options) {
			    val = obj.options[obj.selectedIndex].value;
			    qry += params[y] + '=' + val + '&';
			} else if(obj && obj.value) {
                            qry += params[y] + '=' + obj.value + '&';
			}
		    }

		    var index = this.getProperty('index');
		    var myXhr = new XHR({
			method: 'get',
			onSuccess: function(response, responseXML) {

			    var result = responseXML.getElementsByTagName('result');
			    if(result.length == 0 || result[0].childNodes[0].nodeValue == 'false') {
					return false;
			    }

			    var instance_id = responseXML.getElementsByTagName('instance_id').item(0).childNodes.item(0).nodeValue;
			    var stock_level = responseXML.getElementsByTagName('stock_level').item(0).childNodes.item(0).nodeValue;
                var code   = responseXML.getElementsByTagName('code').item(0).childNodes.item(0).nodeValue;
				var ptitle = responseXML.getElementsByTagName('instance_parent_title').item(0).childNodes.item(0).nodeValue;

				// These are dependant on the product type
				var extra = '';
				if(responseXML.getElementsByTagName('size').item(0).childNodes.item(0)) {
					extra += ' - ' + responseXML.getElementsByTagName('size').item(0).childNodes.item(0).nodeValue;
				}

				if(responseXML.getElementsByTagName('colourswatch').item(0).childNodes.item(0)) {
                    extra += ' - ' + responseXML.getElementsByTagName('colourswatch').item(0).childNodes.item(0).nodeValue;
                }

                if(responseXML.getElementsByTagName('waist').item(0).childNodes.item(0)) {
                    extra += ' - ' + responseXML.getElementsByTagName('waist').item(0).childNodes.item(0).nodeValue;
                }
                
                if(responseXML.getElementsByTagName('length').item(0).childNodes.item(0)) {
                    extra += ' - ' + responseXML.getElementsByTagName('length').item(0).childNodes.item(0).nodeValue;
                }
                
			    // Update the quantity
			    var qty = $('quantity_' + index);
	    	    var sld = $('soldout_' + index);			    

				// Attach the onclick event to the sold out
				sld.removeEvents('click');
				sld.addEvent('click', function(event) {
					var params = 'product_name_colour=' + ptitle + extra +'&sku=' + code;
					var bw = form('/customer_services/request_a_product/index.html?'+params);
	                // This keeps focus on the opened window
     	            document.onclick = function() {
         		       if (bw != null && !bw.closed) {
                		    bw.focus();
	                   }
    	             }
				});			

			    if(instance_id && stock_level > 0) {
			        qty.setProperty('disabled', false);
			        qty.setProperty('name', 'multiple_id[' + instance_id + ']');
				    sld.style.display = 'none';
				    qty.style.display = '';
					if(stock_level > 10) stock_level = 10;
					var toremove = qty.options.length;
					for(var z=1;z<toremove;z++) { qty.options[1] = null; }
					for(var q=1;q<=eval(stock_level);q++) {	qty.options[q] = new Option(q,q); }
			    } else if(stock_level == 0) {
				    qty.setProperty('disabled', true);
				    qty.style.display = 'none';
				    sld.style.display = 'block';			
			    }
		 	}
		    }).send(baseurl, qry);
		});
	    }
	}
});


function checkAddToBasket() {
    var loops = 30;
    var quant = false;    

    for(var i=0;i<=loops;i++) {
	quant = $('quantity_'+i);
	if(quant && quant.disabled == false && quant.options[quant.selectedIndex].value > 0) {
	   return true;
	}
    }

    alert('Please choose a size, colour and quantity');
    return false;
}

