﻿var xmlHttp

function reloadCategories(qId,prdId) { 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Your browser does not support AJAX!");
		return;
	} 
	var url="quoteData.asp?qId="+qId+"&prdId="+prdId;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged(noParam) { 
	if (xmlHttp.readyState==4) { 
		datarecievew = xmlHttp.responseText;
		if (datarecievew) { 
			// alert(datarecievew)
			var data_arr = datarecievew.split("[[]]");
			for(i=1; i<data_arr.length; i++) {
				var addOn_arr = data_arr[i].split("[-]");
				var addOnSelectListId = addOn_arr[0];
				if (addOn_arr[1] != "") {    //   ---this if was added to prevent errors for calculated fields added by Ziggy
				    var addOnSelectListData_arr = addOn_arr[1].split("[]");
				    if (addOnSelectListData_arr.length > 0) {
				        document.getElementById('addOn' + addOnSelectListId).disabled = false;
				        document.getElementById('addOn' + addOnSelectListId).options.length = 0;

				        var current_option_data_text = HtmlDecode(data_arr[0]);
				        document.getElementById('addOn' + addOnSelectListId).options[0] = new Option(current_option_data_text, '*', false, false)
				        document.getElementById('addOn' + addOnSelectListId).options[0].style.cssText += 'color:red;';
				        document.getElementById('totalValue').innerHTML = '0';

				        for (o = 0; o < addOnSelectListData_arr.length; o++) {
				            if (addOnSelectListData_arr[o] != '') {
				                var current_option_data = addOnSelectListData_arr[o].split("^^");
				                var current_option_data_text = HtmlDecode(current_option_data[0]);
				                document.getElementById('addOn' + addOnSelectListId).options[o + 1] = new Option(current_option_data_text, current_option_data[1], false, false)
				            } else {
				                var current_option_data_text = HtmlDecode(data_arr[0]);
				                document.getElementById('addOn' + addOnSelectListId).options[0] = new Option(current_option_data_text, '*', false, false)
				                document.getElementById('addOn' + addOnSelectListId).disabled = true;
				            }
				        }
				    }
				}                       //   --- added by Ziggy

				// enabling the calculation fields on the form when a product stateChanged  --- added by Ziggy
				for (f = 0; f < document.QuoteForm.length; f++) {
				    if (document.QuoteForm.elements[f].type=="text") {
				        document.QuoteForm.elements[f].disabled = false;
                    }
				}
			}
			calcField = document.getElementById('calcFields').value;
			for (x = 0; x < calcField.split("[]").length; x++) {
			    addOnItemData = calcField.split("[]")[x];
			    if (addOnItemData != "") {
			        addOnId = addOnItemData.split("~")[0];
			        getProductAddOnPrice(document.getElementById('id').value, document.getElementById('product').options[document.getElementById('product').selectedIndex].value, addOnId);
			    }
			}
			calculateValue(document.getElementById("product"));
		}
	}
}


function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


//this function gets the price defined for a calculated addon using Ajax   -- added by Ziggy
function getProductAddOnPrice(qId, prdId, addonId) {
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    var url = "quoteData.asp?qId=" + qId + "&prdId=" + prdId + "&addonId=" + addonId;
    url = url + "&sid=" + Math.random();
    xmlHttp.onreadystatechange = returnProductAddOnPrice;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}
//this function return the price defined for a calculated addon using Ajax   -- added by Ziggy
function returnProductAddOnPrice(noParam) {
    if (xmlHttp.readyState == 4) {
        datarecieved = xmlHttp.responseText;
        if (datarecieved) {
            var data_arr = datarecieved.split("=");
            document.getElementById(data_arr[0]).value = data_arr[1];
        }
    }
}
