
function getVariationPrice(formIteration)
{
		var formName = 'order_' + formIteration;
		var fieldNameVariation = 'product[variation][]';
		var fieldNameProductID = 'product[product_id]';	
		var fieldNameProductPrice = '';	
		var queryString = '?ajax_request=variation_price';
	  	
	  	var formContent = document.forms[formName].elements[fieldNameVariation];
	  	
	  	for(var i=0; i< formContent.length; i++)
	  	{
	  		queryString += '&variation_' + i + '=' + formContent[i].value;
	  	}
	  	
	  	queryString += '&product_id=' + document.forms[formName].elements[fieldNameProductID].value;
	  	
	  	//alert(queryString);
	  	
	  	var url = queryString;
	  	
	  	var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        //alert(http_request.responseText);
        http_request.onreadystatechange = function() 
        { 
        	setVariationPrice(http_request, formIteration); 
        };
        http_request.open('GET', url, true);
        http_request.send(null);
        return true;
}

function setVariationPrice(http_request, formIteration) {

        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
            	
                //alert(http_request.responseText);
                var xmldoc = http_request.responseXML;
                
                // set the available variations
				var selects = xmldoc.getElementsByTagName('select');	
				var label = "";
				var value = "";
				var labelDoc = "";
				var valueDoc = "";
				
				var optionNode = null;
				var optionNodeDoc = null;
								
				//alert(selects.length);
                for(var i=0; i<selects.length; i++)
                {
                	var selectDoc = getElement('id', 'order_' + formIteration + '_vv_' + (i+1));
                	var maxOptions = selects[i].childNodes.length > selectDoc.childNodes.length ? selects[i].childNodes.length : selectDoc.childNodes.length;
                	var realJ = 0; 
                	
                	optionNode = selects[i].firstChild; 
                	optionNodeDoc = selectDoc.firstChild;
                	
                	while(optionNode != null || optionNodeDoc != null)
                	{                		
                		
                		if(optionNode != null && optionNode.nodeName != 'option')
                		{
                			optionNode = optionNode.nextSibling;
                		}                		
                		if(optionNodeDoc != null && optionNodeDoc.nodeName != 'OPTION')
                		{
                			optionNodeDoc = optionNodeDoc.nextSibling;
                		}
                		
                		label = optionNode != null ? optionNode.getAttributeNode('label').nodeValue : "";
                		value = optionNode != null ? optionNode.getAttributeNode('value').nodeValue : "";
                		valueDoc = optionNodeDoc != null ? optionNodeDoc.getAttributeNode('value').nodeValue : "";
                		
                		if(optionNodeDoc == null && optionNode != null)
               			{
               				// create new docNode
               				//alert('new node ' + realJ);
               				selectDoc.options[realJ] = new Option(label, value);
               			}
               			else if(optionNode == null && optionNodeDoc != null)
               			{
               				// remove docNode
               				//alert('remove node ' + realJ);
               				selectDoc.options[realJ] = null;
               			}
               			else
               			{
               				// compare nodes
               				if(value != valueDoc)
               				{
               					selectDoc.options[realJ] = new Option(label, value);
               				}
               			}
               			++realJ; 
               			
               			if(optionNode != null) optionNode = optionNode.nextSibling; 
               			if(optionNodeDoc != null) optionNodeDoc = optionNodeDoc.nextSibling;              		
                	}                	
                }
                
				var price = xmldoc.getElementsByTagName('price').item(0).firstChild.data;
				var priceNonSpecial = xmldoc.getElementsByTagName('priceNonSpecial').item(0).firstChild.data;
				
				if(price != priceNonSpecial)
				{
					if(getElement('id', 'priceNonSpecial_' + formIteration, 0))
					{
						setContent('id', 'priceNonSpecial_' + formIteration, 0, priceNonSpecial);
					}
					setContent('id', 'price_' + formIteration, 0, price);
				}
				else
				{
					setContent('id', 'price_' + formIteration, 0, price);
				}
				
						
				
            } 
            else 
            {
                //alert('There was a problem with the request.');
            }
        }

    }