	var requester = null;
	
	function getRequester() {
		if(window.XMLHttpRequest) {
			try {
				requester = new XMLHttpRequest();
			} catch(e) {
				requester = false;
			}
		// branch for IE/Windows ActiveX version
		} else if(window.ActiveXObject) {
			try {
				requester = new ActiveXObject('Msxml2.XMLHTTP');
			} catch(e) {
				try {
					requester = new ActiveXObject('Microsoft.XMLHTTP');
				} catch(e) {
					requester = false;
				}
			}
		}
		return(requester);
	}
	function displayAreas(selectObj) {
		var errorMsg = '';
		var country = selectObj.options[selectObj.selectedIndex].value;
		requester = getRequester();
		
		var selectorObj = document.getElementById('areaSelector');
		
			var selectDirections = 'Select a';
			if (country == 'CA')
				selectDirections += ' Province';
			else if (country == 'US')
				selectDirections += ' State';
			else
				selectDirections += 'an Area';
			selectorObj.options[0].text = selectDirections;

		
		if(country != 'n/a') {
			requester.onreadystatechange = findAreasHandler;
			requester.open('GET', '/includes/virtual_number_lookup/virtualNumberMap_findAreas.php?thisCountry='+country+'&IDnameLang=<? print($IDnameLang); ?>');
			requester.send(null);
		} else {
			document.getElementById('codesDiv').style.display = 'none';
			document.getElementById('areaSelector').style.display = 'none';
		}
	}
	
	function findAreasHandler( ) {
		if (requester.readyState == 4 && requester.status == 200)
				updateAreaSelector( );
		return true;
	}
	
	function clean(selectObj) {
		for (i = selectObj.options.length - 1; i > 0; i--) {
			selectObj.options[i] = null;
		}
	}
	
	function updateAreaSelector( ) {
		document.getElementById('codesDiv').style.display = 'none';
		
		if (requester.responseText.charAt(0) == '<') {
			var selectorObj = document.getElementById('areaSelector');
			var myNode = requester.responseXML.getElementsByTagName('area');
			clean(selectorObj);
			
			if(myNode.length > 1) {
				selectorObj.style.display = '';
			} else {
				selectorObj.style.display = 'none';
				var countryObj = document.getElementById('countrySelector');
				displayCodes(null, countryObj.options[countryObj.selectedIndex].value);
			}
			
			for(i = 0; i < myNode.length; i++) {
				name = '';
				code = '';
				
				for(j = 0; j < myNode[i].childNodes.length; j++) {
					text = myNode[i].childNodes[j].nodeName;
					if(text == 'name') name = myNode[i].childNodes[j].childNodes[0].nodeValue;
					if(text == 'code') code = myNode[i].childNodes[j].childNodes[0].nodeValue;
				}
				
				if(name != '' && code != '') 
					selectorObj.options[selectorObj.options.length] = new Option(name, code);
			}
			
		}
		
	}
	
	function displayCodes(selectObj, country) {
		requester = getRequester();
		requester.onreadystatechange = findCodesHandler;
		
		if (selectObj != null) {
			state = selectObj.options[selectObj.selectedIndex].value;
			if (state != 'n/a') {
				requester.open('GET', '/includes/virtual_number_lookup/virtualNumberMap_findCodes.php?thisState=' + state);
				document.getElementById('codesDiv').style.display = '';
			} else {
				document.getElementById('codesDiv').style.display = 'none';
			}
		} else { 
			requester.open('GET', '/includes/virtual_number_lookup/virtualNumberMap_findCodes.php?thisCountry=' + country);
		}
		requester.send(null);
	}
	
	function findCodesHandler( ) {
		if (requester.readyState == 4 && requester.status == 200)
			updateCodeBox( );
		return true;
	}
	
	function updateCodeBox( ) {
//		alert('updateCodeBox()');
		if (requester.responseText.charAt(0) == '<') {
			var selectObj = document.getElementById('countrySelector');
			var country = selectObj.options[selectObj.selectedIndex].value;
		 	var HTML = '';
			var rowcount = 0;
			myNode = requester.responseXML.getElementsByTagName('area');
			for(i = 0; i < myNode.length; i++) {
				
				name = '';
				code = '';
				
				for(j = 0; j < myNode[i].childNodes.length; j++) {
					text = myNode[i].childNodes[j].nodeName;
					if(text == 'name') name = myNode[i].childNodes[j].childNodes[0].nodeValue;
					if(text == 'code') code = myNode[i].childNodes[j].childNodes[0].nodeValue;
				}
				
				
				
				if(name != '' && code != '') {
					classHTML = ((i % 2) == 0) ? 'class="altShade"' : '';
					HTML += '<tr ' + classHTML + '><td>' + code + '</td><td width="95%">' + name + '</td></tr>';
					rowcount++;
				}
				
			}
			
			HTML += '</table>';
			
		}
			var tableWidth = ( rowcount > 4) ? '210' : '100%';
			var TableTop = '<table cellpadding="4" cellspacing="0" border="0" width="'+tableWidth+'" class="internationalTable">';
			HTML = TableTop+HTML;
		updateCodesDiv(HTML);
		
	}
	
	function updateCodesDiv(HTML) {
		var VNMap = document.getElementById('virtualNumberMap');
		var codesDiv = document.getElementById('codesDiv');
		codesDiv.style.top = getOffsetTop (VNMap);
		codesDiv.style.left = getOffsetLeft(VNMap);
		
		codesDiv.style.width = VNMap.width;
		codesDiv.style.height = VNMap.height;
		
		codesDiv.innerHTML = HTML;
		codesDiv.style.display = '';
	}


//////////////////////////////////////////////////////////////////////////////////////////////////

	function get_area_code (state) {
		if (state=='no_state') {
			state='n/a';
		}else{
			state=$F('areaSelector');
		}
		new Ajax.Request ('/includes/virtual_number_lookup/virtualNumberMap_findCodes.php', {
			parameters:	{	
				thisState:	state,
				thisCountry: $F('countrySelector')
			},
			method: 'post',
			onSuccess: function(transport){
				var response=transport.responseText;
				document.getElementById('codes_row').style.display = '';
				document.getElementById('area_codes_div').innerHTML=response;
			}
		});
		return false;
	}

	function display_states () {
		if ($F('countrySelector')=='US') {
			//document.getElementById('type').innerHTML='State';
		} else {
			//document.getElementById('type').innerHTML='Province';
		}
		new Ajax.Request ('/includes/virtual_number_lookup/virtualNumberMap_findAreas.php', {
			parameters:	{	
				thisCountry: $F('countrySelector')
			},
			method: 'post',
			onSuccess: function(transport){
				var response=transport.responseText;
				document.getElementById('states_row').style.display = '';
				document.getElementById('states_div').innerHTML=response;
			}
		});
		return false;
	}

	function display_next() {
		document.getElementById('states_row').style.display = 'none';
		document.getElementById('codes_row').style.display = 'none';
		var country=$F('countrySelector');
		if (country=='US' || country=='CA') {
			display_states();
		} else {
			get_area_code('no_state');
		}
	}

