// Determine State field to be made up of Canadian Providences or USA States

//this search script is used to generate dynamic lookup field or suggestions
/*

*/
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {

	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Incompatible browser!");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();


//Starts the AJAX request.
function searchRequest() {

	var ref =  document.getElementById('country').value;


	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		
		switch ( ref ){
			// State selections -----------------------------------------------------------------------------------------
				case 'CA':
					searchReq.open("GET", 'includes/myvRequest.php?ref=canada', true);
					break;
	
				case 'USA':
					searchReq.open("GET", 'includes/myvRequest.php?ref=usa', true);
					break;
			// State selections -----------------------------------------------------------------------------------------

				
			default:
					ref = "skip";
				break;
		}
		
		if (ref != "skip") {
				searchReq.onreadystatechange = handleSearchSuggest; 
				searchReq.send(null);				
		}
	}		
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	
	var ref =  document.getElementById('country').value;

	

	// store building blocks of <option>
	var list = '';
	
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		switch ( ref ){
			case 'CA':
				var toptag = 'state';
				var node1 = 'statename';
				break;
			case 'USA':
				var toptag = 'state';
				var node1 = 'statename';
				break;	
			default:
				break;
		} //	switch ( ref )

	
	
		var ss = document.getElementById(toptag)
		ss.innerHTML = '';
 
     	var xmldoc = searchReq.responseXML;
		var __toptag = xmldoc.getElementsByTagName(toptag);
		var node_len = __toptag.length;
		var myv_sessionValue = 0;
		
		switch ( toptag ){
			case 'state':
			
					// Article ID: 276228 - Last Review: May 12, 2003 - Revision: 2.0
					// BUG: Internet Explorer Fails to Set the innerHTML Property of the Select Object
					
					if (node_len > 1)  
					{
							for(i=0; i < node_len; i++) {
								//Build our element string.  This is cleaner using the DOM, but
								//IE doesn't support dynamically added attributes.
								var __node1 = __toptag[i].getElementsByTagName(node1);
								var pid = ( __toptag[i].getAttribute('id') );
				
				
								if ( myv_sessionValue ==  pid){
									document.getElementById(toptag).options[i] = new Option(__node1[0].firstChild.nodeValue,pid);
									document.getElementById(toptag).options[i].selected=true;
								}
								else
								{
									document.getElementById(toptag).options[i] = new Option(__node1[0].firstChild.nodeValue,pid);								
									
								}
								
								
							} // 	for(i=0; i < node_len; i++)
			
					} // 		if (node_len > 1) 
					
					break;
	
			default:
					
					if (node_len > 1)  
					{
							for(i=0; i < node_len; i++) {
								//Build our element string.  This is cleaner using the DOM, but
								//IE doesn't support dynamically added attributes.
								var __node1 = __toptag[i].getElementsByTagName(node1);
								var pid = ( __toptag[i].getAttribute('id') );
				
				
								if ( myv_sessionValue ==  pid){
									list = '<option value="'+pid+'" selected="selected">'+ __node1[0].firstChild.nodeValue + '</option>';
								}
								else
								{
									list = '<option value="'+pid+'">'+ __node1[0].firstChild.nodeValue + '</option>';
								}
								
								ss.innerHTML += list;
								list = '';
							} // 	for(i=0; i < node_len; i++)
			
					} // 		if (node_len > 1) 
					
					break;
					
		} // switch ( toptag ){
		
	} //	if (searchReq.readyState == 4 || searchReq.readyState == 0) {

}


