// JScript File - populates form select boxes from XML
//----------------------------------------------------------------------------------

//check for URL arguments
var sSKU = "-1";
var fam_id = "-1";
var argValue;
var URLArguments = location.search.substring(1).split('&');
for (i = 0; i < URLArguments.length; i++) {
	argValue = URLArguments[i].split('=');
	if (argValue[0].toLowerCase() == 'ssku') {
		sSKU = argValue[1];
	}
	if (argValue[0].toLowerCase() == 'fmlid') {
		fam_id = argValue[1];
	}
}

var xmlDoc;
function loadXMLDoc(theURL) {
	xmlDoc = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			xmlDoc = new XMLHttpRequest();
        } catch(e) {
			xmlDoc = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	xmlDoc = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		xmlDoc = false;
        	}
		}
    }
	if(xmlDoc) {
		xmlDoc.onreadystatechange = processReqChange;
		xmlDoc.open("GET", theURL, false);
		xmlDoc.send("");
	}
}
function processReqChange() {
    // only if req shows "loaded"
    if (xmlDoc.readyState == 4) {
        // only if "OK"
        if (xmlDoc.status == 200) {
            // ...processing statements go here...
        } else {
            alert("There was a problem retrieving the XML data:\n" +
                xmlDoc.statusText);
        }
    }
}
loadXMLDoc(url);

var xItem = xmlDoc.responseXML.getElementsByTagName("xml_family")[0].getElementsByTagName("family");  //returns an array of all nodes
var xItemCnt = xItem.length-1; 

var yItem;	
var yItemCnt = new Array(); //proccessor count for each family

var fam_name = new Array(); //family name array
var proc_name = new Array(); //processor name array
var proc_sku = new Array(); //processor sku array

//loops through xml list
for (i=0; i<=xItemCnt; i++) {
	fam_name[i] = xItem[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
	yItem = xItem[i].getElementsByTagName("processor");  //returns an array of family processors
	yItemCnt[i] = yItem.length-1;
	proc_name[i] = new Array();
	proc_sku[i] = new Array();
	
	//loops through processor list
	for (j=0; j<=yItemCnt[i]; j++) {
		proc_name[i][j] = yItem[j].getElementsByTagName("name")[0].childNodes[0].nodeValue;
		proc_sku[i][j] = yItem[j].getElementsByTagName("sku")[0].childNodes[0].nodeValue;
	}
}

//processor family select box 
var fam_select = "<select style=\"font-size:11px; width:568px;\" name=\"fmlid\" id=\"fam_id\" onChange=\"document.getElementById('sSKU').value='-1';document.getElementById('filter_form').submit();\">";
fam_select += "<option value=\"-1\">Select Processor Family</option>";

for (i=0; i<=xItemCnt; i++) {
	if (fam_id == i) {
		fam_select += "<option selected value=\"" + i.toString() + "\">" + fam_name[i] + "</option>";
	}
	else {
		fam_select += "<option value=\"" + i.toString() + "\">" + fam_name[i] + "</option>";
	}
}

fam_select += "</select>";

//specific processor select box
var proc_select = "<select style=\"font-size:11px; width:568px;\" name=\"sSKU\" id=\"sSKU\" onChange=\"document.location=document.getElementById('filter_form').action+'?sSKU='+this.value+'&fmlid='+document.getElementById('fam_id').value;\">";
proc_select += "<option value=\"-1\">Select Specific Processor</option>";

if (fam_id >= 0 && fam_id <= xItemCnt) {
	for (i=0; i<=yItemCnt[fam_id]; i++) {
		if (sSKU == proc_sku[fam_id][i]) {
			proc_select += "<option selected value=\"" + proc_sku[fam_id][i] + "\">" + proc_name[fam_id][i] + "</option>";
		}
		else {
			proc_select += "<option value=\"" + proc_sku[fam_id][i] + "\">" + proc_name[fam_id][i] + "</option>";
		}
	}
}
proc_select += "</select>";		

//----------------------------------------------------------------------------------
