var xObj = false;
if(window.XMLHttpRequest) {
 xObj = new XMLHttpRequest();
} else if(window.ActiveXObject) {
 xObj = new ActiveXObject("Microsoft.XMLHTTP");
}

function send_get(company, pcat, scat) {
	xObj.onreadystatechange = responseOption;
	xObj.open('GET', 'includes/ajax.php?cachebuster=' + new Date().getTime() + '&company=' + company + '&pcat=' + pcat + '&scat=' + scat, true);
	xObj.send(null);
}

function send_post(mode,form) {
	var postdata = '';
	if(mode == 'form') {
	 var form = document.getElementById(form);
	// create a string of all post data to be sent
	 for(var i = 0; i < form.length; i++) {
		var tempobj = form.elements[i];
		postdata += tempobj.name + '=' + tempobj.value + '&';
	 }
	} else { postdata = form; }
	xObj.open('POST', 'includes/ajax.php', true);
	xObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xObj.onreadystatechange = responseOption;
	xObj.send(postdata);
}

function responseOption() {
	if(xObj.readyState == 4 && xObj.status == 200) {
  		var theSel = document.getElementById('scat');
  		var scat_arr = xObj.responseText.split(",");
		var selLength = 0;
		var sel = false;
		var $selarr = [2];
		var pair = "";
		theSel.length = 0;
		for(var i = 0; i < scat_arr.length; i++){
			pair = scat_arr[i].split('=');
			if(pair[1]) $selarr = pair[1].split(":");
			sel = false;
			if($selarr[1] == 'selected') { 
				pair[1] = $selarr[0]; 
				sel = true; 
			}
	  		var newOpt = new Option(pair[1],pair[0]);
			selLength = theSel.length;
			theSel.options[selLength] = newOpt;
			theSel.options[selLength].selected = sel;
		}
	if(selLength > 0) { theSel.className = "none"; } else { theSel.className = "hidden"; }
	}
}

function response() {
	/*
	0: Uninitialized
	1: Loading
	2: Loaded
	3: Interactive
	4: Finished
	*/
	
	// not loaded yet
	/*if(xObj.readyState < 4) {
		document.getElementById("dynamic").innerHTML = "";
	}*/
	// loaded
	if(xObj.readyState == 4 && xObj.status == 200) {
		if(document.getElementById("dynamic"))
			document.getElementById("dynamic").innerHTML = xObj.responseText;
	} else {
			//document.getElementById("dynamic").innerHTML = xObj.status;
	}
}

function countryControl(state,country) {
  if(document.getElementById("x_state")) { var x = "x_"; } else { var x = ""; }
  //alert(state);
  if(state == '' && document.getElementById("state_select").innerHTML.match('option')) {
     var sObj = document.getElementById(x+"state");
     var state = sObj.options[sObj.selectedIndex].value;
  }
  if(country == '') {
   var cObj = document.getElementById(x+"country");
   var country = cObj.options[cObj.selectedIndex].text;
  }
  
  //alert(state+" "+country);
  if(country == "United States") {
	document.getElementById("statelbl").innerHTML = "State: ";
	document.getElementById("statelbl").style.display = "inline";
	document.getElementById("state_select").style.display = "inline";
	document.getElementById("ziplbl").innerHTML = "Zip:* ";
	send_getStates(state,country);
  } else if(country == "Canada") {
	document.getElementById("statelbl").innerHTML = "Province: ";
	document.getElementById("statelbl").style.display = "inline";
	document.getElementById("state_select").style.display = "inline";
	document.getElementById("ziplbl").innerHTML = "Postal Code:* ";
	send_getStates(state,country);
  } else {
	document.getElementById("statelbl").style.display = "none";
	document.getElementById("state_select").innerHTML = "";
	document.getElementById("state_select").style.display = "none";
	document.getElementById("ziplbl").innerHTML = "Postal Code:* ";
  }
}

function send_getStates(state,country) {
 xObj.open("POST",'includes/ajaxfunctions.php',true);
 xObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 xObj.onreadystatechange = response_states;
 xObj.send('state='+state+'&country='+encodeURIComponent(country));
}

function response_states() {
	if(document.getElementById("x_state")) { var x = "x_"; } else { var x = ""; }
	var stateHTML = "<select id='"+x+"state' name='"+x+"state'><option></option>";
	if(xObj.readyState == 4 && xObj.status == 200) {
		document.getElementById("state_select").innerHTML = stateHTML + xObj.responseText + "</select>";
	}
	//alert(xObj.readyState);
}