/*******************************************************************************
Author : Roger D. Hosto Jr.
Version : Version 1.0 - Nov 8, 2006
********************************************************************************
Notes :
********************************************************************************
********************************************************************************
Usage :
********************************************************************************
*******************************************************************************/
/*
 * ONLY EDIT ANYTHING BELOW HERE IF YOU TRUELY KNOW WHAT YOU ARE DOING
 */
function getClientInfo( name ) {
	//Public Variables
	this.setname = name;
	this.clientxml = "/clientxml?";
	this.defaultMsg = "America";
	//Private Variables
	var xmlData = new Array();
	var xmlhttp = false;
	var that = this;
	var States = new Array();
	States[0] = new Array( "AL","Alabama");
	States[1] = new Array( "AK","Alaska");
	States[2] = new Array( "AR","Arkansas");
	States[3] = new Array( "AZ","Arizona");
	States[4] = new Array( "CA","California");
	States[5] = new Array( "CO","Colorado");
	States[6] = new Array( "CT","Connecticut");
	States[7] = new Array( "DE","Delaware");
	States[8] = new Array( "FL","Florida");
	States[9] = new Array( "GA","Georgia");
	States[10] = new Array( "GU","Guam");
	States[11] = new Array( "HI","Hawaii");
	States[12] = new Array( "ID","Idaho");
	States[13] = new Array( "IL","Illinois");
	States[14] = new Array( "IN","Indiana");
	States[15] = new Array( "IA","Iowa");
	States[16] = new Array( "KS","Kansas");
	States[17] = new Array( "KY","Kentucky");
	States[18] = new Array( "LA","Louisiana");
	States[19] = new Array( "ME","Maine");
	States[20] = new Array( "MD","Maryland");
	States[21] = new Array( "MA","Massachusetts");
	States[22] = new Array( "MI","Michigan");
	States[23] = new Array( "MN","Minnesota");
	States[24] = new Array( "MS","Mississippi");
	States[25] = new Array( "MO","Missouri");
	States[26] = new Array( "MP","Northern Mariana Islands");
	States[27] = new Array( "MT","Montana");
	States[28] = new Array( "NE","Nebraska");
	States[29] = new Array( "NV","Nevada");
	States[30] = new Array( "NH","New Hampshire");
	States[31] = new Array( "NJ","New Jersey");
	States[32] = new Array( "NM","New Mexico");
	States[33] = new Array( "NY","New York");
	States[34] = new Array( "NC","North Carolina");
	States[35] = new Array( "ND","North Dakota");
	States[36] = new Array( "OH","Ohio");
	States[37] = new Array( "OK","Oklahoma");
	States[38] = new Array( "OR","Oregon");
	States[39] = new Array( "PA","Pennsylvania");
	States[40] = new Array( "PR","Puerto Rico");
	States[41] = new Array( "RI","Rhode Island");
	States[42] = new Array( "SC","South Carolina");
	States[43] = new Array( "SD","South Dakota");
	States[44] = new Array( "TN","Tennessee");
	States[45] = new Array( "TX","Texas");
	States[46] = new Array( "UT","Utah");
	States[47] = new Array( "VT","Vermont");
	States[48] = new Array( "VA","Virginia");
	States[49] = new Array( "WA","Washington");
	States[50] = new Array( "DC","District of Columbia");
	States[51] = new Array( "WV","West Virgina");
	States[52] = new Array( "WI","Wisconsin");
	States[53] = new Array( "WY","Wyoming");
	States[54] = new Array( "AB","Alberta");
	States[55] = new Array( "BC","British Columbia");
	States[56] = new Array( "MB","Manitoba");
	States[57] = new Array( "NB","New Brunswick");
	States[58] = new Array( "NF","Newfoundland");
	States[59] = new Array( "NT","Northwest Territories");
	States[60] = new Array( "NS","Nova Scotia");
	States[61] = new Array( "NU","Nunavut");
	States[62] = new Array( "ON","Ontario");
	States[63] = new Array( "PE","Prince Edward Island");
	States[64] = new Array( "QC","Quebec");
	States[65] = new Array( "SK","Saskatchewan"); 
	/*
	 * Public Function
	 */
	//init();
	this.init = function() {
		getXMLPage( this.clientxml );
	}
	/*
	 * Private Function 
	 */
	//getXMLpage();
	function getXMLPage( url ) {
		//Try to on Browser that us the XMLHttpRequest Object ( eg Firefox, Opera )
		if ( window.XMLHttpRequest ) {
			try {
				xmlhttp= new XMLHttpRequest();
			} catch( e ) {
				xmlhttp = false;
				//alert( "Error " + e );
			}
		//Try to on Browser that us theActiveObject ( eg Internet Explorer )
		} else if ( window.ActiveXObject ) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch( e ) {
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				} catch( e ) {
					xmlhttp = false;
					alert( "Error " + e );
				}
			}
		}
		if( xmlhttp ) {
			//Make sure that you set the onreadystatechange before you do the open send request
			//it needs this to finish the processes.
			xmlhttp.onreadystatechange = processReqChange;
			xmlhttp.open( "GET", url, true);
			xmlhttp.send(null);
		}
	}
	//end getXMLpage();
	//processReqChange()
	function processReqChange() {
		if( xmlhttp.readyState == 4 ) {
			var Data = xmlhttp.responseXML.childNodes;
			for( var i = 0; i < Data.length; i++ ) {
				for(var x = 0; x < Data[i].childNodes.length; x++ ) {
					if( Data[i].childNodes[x].nodeType != 1 ) continue;
					len = xmlData.length;
					if( Data[i].childNodes[x].nodeName == "State" ) {
						var lstate = getState( Data[i].childNodes[x].firstChild.nodeValue );
						xmlData[ len ] = new Array( "State", lstate );
						xmlData[ len+1 ] = new Array( "StateAB", Data[i].childNodes[x].firstChild.nodeValue );
					} else {
						xmlData[ len ] = new Array( Data[i].childNodes[x].nodeName, Data[i].childNodes[x].firstChild.nodeValue);
					}
				}
			}
			parseDiv();
		}
	}//end processReqChange()
	// parseDiv()
	function parseDiv(){
		var divas = document.getElementsByTagName( 'div' );
		for( var x = 0; x < divas.length; x++ ){
			if( divas[x].className != "clientinfo" ) continue;
			var HTML = divas[x].innerHTML;
			for( var y = 0; y < xmlData.length; y++ ) {
				var regex = new RegExp( "<!--\\["+xmlData[y][0]+"\\]-->", "g" );
				var tmp = xmlData[y][1];
				HTML = HTML.replace( regex, tmp );
			}
			divas[x].innerHTML = HTML;
		}
	}// end parseDiv()
	// getState()
	function getState( name ){
		for( var x = 0; x < States.length; x++ ){
			if( name == States[x][0] ) {
				return States[x][1];
			}
		}
		return that.defaultMsg;
	}// end parseDiv()

}
