
function getVariationPrice(formIteration)
{
		var formName = 'order_' + formIteration;
		var fieldNameVariation = 'product[variation][]';
		var fieldNameProductID = 'product[product_id]';
		var fieldNameProductPrice = '';
		var queryString = '?ajax_request=variation_price';
	  	//alert(formName);
	  	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;

	  	//document.write(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);
				}
				// set new productNo
                var productNo = xmldoc.getElementsByTagName('productNo').item(0).firstChild.data;
                setContent('id', 'productNo', 0, productNo);


            }
            else
            {
                //alert('There was a problem with the request.');
            }
        }

    }