// JavaScript Document
//-------------------------------------------------ATTEMPT AT DOM PARSER FOR SAFARI-------------------------------------
if (typeof DOMParser == "undefined") {
   DOMParser = function () {}

   DOMParser.prototype.parseFromString = function (str, contentType) {
      if (typeof ActiveXObject != "undefined") {
         var d = new ActiveXObject("MSXML.DomDocument");
         d.loadXML(str);
         return d;
      } else if (typeof XMLHttpRequest != "undefined") {
         var req = new XMLHttpRequest;
         req.open("GET", "data:" + (contentType || "application/xml") +
                         ";charset=utf-8," + encodeURIComponent(str), false);
         if (req.overrideMimeType) {
            req.overrideMimeType(contentType);
         }
         req.send(null);
         return req.responseXML;
      }
   }
}
//--------------------------------------------------------------------------------------------------------------------------

// global request and XML document objects
var xVar;
var something;
function loadScript(arg1){
	something = arg1;
//LOAD SELECT DROP DOWNS
		loadSel("selState","/libraries/drops/getCountries"+arg1+".php","countries");
		//alert('finished loadsel');
		if(document.getElementById('hdnState').value!='' && document.getElementById('hdnState').value!=0)
		{
			selStateChange(something);
			selRegionChange(something);
		}else
		{
			initSel("selRegion","Select all regions");
			initSel("type","Select all wedding types");
		}
}
function selStateChange(){
	//document.getElementById('hdnState').innerText=value=document.getElementById('selMake').value;
	//alert("pages/home/getRegions"+something+".php?state=" + document.getElementById('selState').value);
	loadSel("selRegion","/libraries/drops/getRegions"+something+".php?country=" + document.getElementById('selState').value,"regions");
	loadSel("type","/libraries/drops/getTypes"+something+".php?region="+ document.getElementById('selRegion').value+"&country=" + document.getElementById('selState').value,"wedding_types");
	//alert("libraries/drops/getTypes.php?region="+ document.getElementById('selRegion').value+"&country=" + document.getElementById('selState').value);
}

function selRegionChange(){
	//alert("/coolbreaks/pages/home/getBrackets"+something+".php?region="+ document.getElementById('selRegion').value+"&state=" + document.getElementById('selState').value);
	loadSel("type","/libraries/drops/getTypes"+something+".php?region="+ document.getElementById('selRegion').value+"&country=" + document.getElementById('selState').value,"wedding_types");
	/*
	loadSel("selTrans","xmlTrans.php?make=" + document.getElementById('selMake').value + "&model=" + document.getElementById('selRegion').value ,"transmission");
	loadSel("selYrFrom","xmlYearAsc.php?make=" + document.getElementById('selMake').value + "&model=" + document.getElementById('selRegion').value ,"year");
	loadSel("selYrTo","xmlYearDesc.php?make=" + document.getElementById('selMake').value + "&model=" + document.getElementById('selRegion').value ,"year");
	*/
}

function clearValues(){
	document.getElementById('hdnState').value='';
	document.getElementById('hdnRegion').value='';
	document.getElementById('hdnBracket').value='';
	document.getElementById('hdnState').value='';
	document.getElementById('hdnState').value='';
	loadScript();
	document.getElementById('selPriceFrom').selectedIndex=0;
	document.getElementById('selPriceTo').selectedIndex=0;
}

function loadSel(sSel,sUrl,sTag)
{

    var myDocument;
    var xmlString;
    var newEl = document.getElementById(sSel);
    var oOption;
    var sVal;
    var sChosen;
    var stemp;


    if (window.XMLHttpRequest)
    	// branch for native XMLHttpRequest object (should handle safari & mozilla)
	{
		xVar = new XMLHttpRequest();
	}else
		// branch for IE/Windows ActiveX version
	{
		xVar = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(xVar){
		xVar.open("GET",sUrl,false);
		xVar.send("");
	}
	

	// branch for native XMLHttpRequest object
  /*  if (window.DOMParser) {
      // Mozilla, create a new DOMParser
      var parser = new DOMParser();
      myDocument = parser.parseFromString(xVar.responseText, "text/xml");
      } else {
      myDocument = new ActiveXObject("Microsoft.XMLDOM")
      myDocument.async="false";
      myDocument.loadXML(xVar.responseText);

	}
	*/
	var parser = new DOMParser();
	myDocument = parser.parseFromString(xVar.responseText,"text/xml");
	//traverse XML object nodes
	var x = myDocument.getElementsByTagName(sTag);
	//attempt to guard against issue of drop down not loading - results just crashes however becuase filter needs to be built first!
	//if(sTag=='make' && x.length==0){
	//	location.href='results.asp'
	//}
	//clear out drop down
	initSel(sSel,"Select all " + LCase(sTag));
	//set correct counter for ref nodes depending on browser
	if (document.implementation && document.implementation.createDocument)
	{
		var ctr = 1;
	}else
	{
		var ctr = 0;
	}

	//loop thru data in xml file
	for (i=0;i<x.length;i++)
	{
		if(x[i].childNodes[ctr].hasChildNodes())
		{
			oOption = document.createElement('option');
			sVal = (x[i].childNodes[ctr].firstChild.nodeValue);
			sOther = (x[i].childNodes[ctr].getAttribute("id"));
			//alert(sOther);
			if (document.implementation && document.implementation.createDocument)
			{
				oOption.text = sVal;
			}else
			{
				oOption.innerText = sVal;
			}
			oOption.value = sOther;
			
			oOption.selected = optSelect(sSel,sOther);

			newEl.appendChild(oOption);
		}
	}
}

function initSel(sSel,sTag){
	sTag = sTag.replace('_', ' ');
	//alert('initsel ' + sTag);
	var newEl = document.getElementById(sSel);
	var oOption;

	// erase options first so clear to append
	for (i=newEl.options.length-1; i>=0; i--) {
		newEl.options[i] = null;
	}

	//create blank "select" option with value of 0
	oOption = document.createElement('option')
	if (document.implementation && document.implementation.createDocument)
	{
		oOption.text = sTag;
	}else
	{
		oOption.innerText = sTag;
	}
	oOption.value = 0;
	newEl.appendChild(oOption);
}

function optSelect(sSel,sVal){
	//alert(sSel);
	switch(sSel){
		case 'selState':
			return LCase(document.getElementById('hdnState').value)==LCase(sVal);
			break;
		case 'selRegion':
			return LCase(document.getElementById('hdnRegion').value)==LCase(sVal);
			break;
		case 'type':
			return LCase(document.getElementById('hdnType').value)==LCase(sVal);
			break;
	}
}
