var townID=0;

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;
var cityMatchHolder;
var cityMatchCounter = 0;
var selectedRegion=0;


function stripHTML(oldString) {

	var newString = "";
	var inTag = false;
	for(var i = 0; i < oldString.length; i++){
		if(oldString.charAt(i) == '<'){inTag = true;}
		if(oldString.charAt(i) == '>'){
			if(oldString.charAt(i+1)=="<"){
				//dont do anything
				
			}
			else
			{
				inTag = false;
				i++;
			}
		}
   
		if(!inTag){newString += oldString.charAt(i);}

	}

	return newString;
}



function mclose()
{
	if(ddmenuitem)
	{
		ddmenuitem.style.visibility = 'hidden';
	}
}

function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function mopen(id)
{	
	mcancelclosetime();
	if(ddmenuitem){
		ddmenuitem.style.visibility = 'hidden';
	}
	ddmenuitem = $(id);
	ddmenuitem.style.visibility = 'visible';

}
function clearCityResultsSub(){
	$('cityListResultSub').update('<select class="signUpInputSelect" id="townID" DISABLED><option value="0">Select City Above</option></select>');
}
function clearCityResults(){
	$('cityListResult').update('<select class="signUpInputSelect" DISABLED><option value="0">Enter City Above</option></select>');
	clearCityResultsSub();
	//$('cityListResult').hide(); 
}

function clearCityResultsTimer(){
	window.setTimeout(clearCityResults, 1000);
}
function selectTownDropdown(){
	
	var cityText=$('townMatches').value;

	if(!$('regionSub')){
		return;
	}
	var regionSub=$('regionSub').value;
	//$('cityListResult').show(); 
	var inURL='/includes/search/town_list2.php?region='+selectedRegion+'&citytext='+cityText+'&regionSub='+regionSub+'&mode='+1;
	//alert(inURL)
	if(cityText.length > 1){
		//alert('WOHOO');
	var doUpdate=new Ajax.Updater('cityListResultSub',inURL,{asynchronous:true,method: 'get',evalScripts:true});
	}
	else
		{
			//clearCityResults();
		}
	
	
	
}

function cityMatch(){
	clearCityResults();
	if(selectedRegion < 1 || selectedRegion > 6){
		return;
	}
	var cityText=$('citytext').value;
	if(!$('regionSub')){
		return;
	}
	
	var regionSub=$('regionSub').value;
	$('cityListResult').show(); 
	var inURL='/includes/search/town_list2.php?region='+selectedRegion+'&citytext='+cityText+'&regionSub='+regionSub;
	//alert(inURL)
	if(cityText.length > 1){
		
		if(cityMatchCounter > 0){
			cityMatchHolder.transport.abort();
		}
		cityMatchCounter++;
	var doUpdate=new Ajax.Updater('cityListResult',inURL,{asynchronous:true,method: 'get',onCreate: function(request) { cityMatchHolder = request; }, evalScripts:true,onComplete:selectTownDropdown});
	}
	else
		{
			
			
		}
	
}
function showTownNameSearch(){
	
	// Allow selection of town name from list - cached into JS
	document.title = 'Lezza > Search > Town Name Search';
	//alert("SELECTED REGION: "+selectedRegion);
	if(selectedRegion > 6 || selectedRegion < 1){
		$('cityList').update('<input type="text" name="location" class="signUpInputText" id="citytext" onKeyup="cityMatch()" autocomplete="off" value="Not Available for this Region" DISABLED>');
		
	}
	else
	{
		$('cityList').update('<input type="text" name="location" class="signUpInputText" id="citytext" onKeyup="cityMatch()" autocomplete="off">');
	}
	//$('cityListResult').update('');
	cityMatch();
}
function clearStep2(){
	$('Step2List').update('<select class="signUpInputSelect" DISABLED><option>Select a Region Above</option></select>');
	showTownNameSearch();
	cityMatch();
}




function getStep2(){
	//$('cityList').show();
	if(selectedRegion < 1){
		showTownNameSearch();
		return;
	}
	var inURL = '/includes/search/country_list2.php?region='+selectedRegion;
	var doUpdate = new Ajax.Updater('Step2List',inURL,{asynchronous:true,method: 'get'});
	//alert(selectedRegion);
	/*
	switch(selectedRegion){
		case '7':
		//alert("AOKAY");
		//return;
		break;
		default:
		//alert("ONOES");
		break;
	}
	*/
showTownNameSearch();

}


// close layer when click-out
//document.onclick = mclose; 
//$('selectedRegion').onblur = mclose;


function selectMyRegion()
{
	
	var regionid=$('selectedRegion').value;
	if(regionid=='0'){
		
		clearStep2();
	}
//alert('region:'+regionid+' '+$('region'+regionid).innerHTML);
	if(selectedRegion!=regionid){
		//alert(regionid);
		
		selectedRegion=regionid;
		//alert('region'+regionid);
		//$('selectedRegion').update($('region'+regionid).innerHTML);
		var steptext = 'Country';
		switch(regionid)
		{
			case '1':
				//$('cityFinder').show();
				$('cityListRow').show();
				if(window.signUp !== undefined){
					showTownNameSearch();
				}
				townID=0;
				
				
				break;
			case '2':
				//$('cityFinder').show();
				
				$('cityListRow').hide();
				break;
			case '3':
				$('cityListRow').hide();
				break;
			case '4':
				$('cityListRow').hide();
				break;
			case '5':
				steptext='State';
			//	$('cityFinder').show();
			$('cityListRow').show();
			if(window.signUp !== undefined){
				showTownNameSearch();
			}
			townID=0;
				
				break;
			case '6':
				steptext='Province';
				break;
			case '7':
				//$('cityFinder').hide();
				
				//$('cityListRow').hide();
				townID=0;
				
				break;
			default:
				clearStep2();
				break;
		}
	
		$('Step2').update(steptext);
		getStep2();
	}
	
}







function selectCity(args){
	//clearCityResults();
	$('citytext').value=args;
	
}

function selectCityID(inid,intext){
	
	townID=inid;
	
	//alert(inid);
	var outtext=$('geo'+inid).innerHTML;
	$('citytext').value=stripHTML(outtext);
	//$('citytext').value=intext;
	clearCityResults();
}




function subCity(inid){
	$(inid).show();
	
	
	
}

function update_location(){
	var selectedRegion=$('selectedRegion').value;
	var townID=$('townID').value;
	//alert(selectedRegion);
	switch(selectedRegion)
	{
		case '1':
		case '5':
		if(townID===0){
			return alert('Please select a valid town.');
			
			
		}
		
		break;
		case '7':
			
		break;
		default:
			alert('Please fill out all fields first.');
		return;
		
		
	}
	var params='?townID='+townID+'&regionID='+selectedRegion;
	if($('countrycounty')){
		params+='&countrycounty='+$('countrycounty').value;
	}
	//alert(params);
	var doUpdate = new Ajax.Request('/settings/update_location.php'+params,{
		method:'get',
		asynchronous:true,
		
		onSuccess:function(transport)
		{
			switch(transport.responseText)
			{
				case 'SUCCESS':
					alert('Location Updated!');
					document.location='/settings/';
					break;
				case 'FAIL':
					alert('Error: Failed to set new location.');
					break;
				case 'NOT_ALL_VARS':
					alert('Not all variables where passed!');
					break;
				case 'INVALID_HASH':
					alert('Invalid hash, please contact id:admin');
					break;
				default:
					alert('Unspecified Ajax error: '+transport.responseText);
					break;
			}
		}
		});
}