var req;


//str='<SPAN style="BORDER-RIGHT: #6100c1 1px solid; BORDER-TOP: #6100c1 1px solid; BORDER-LEFT: #6100c1 1px solid; WIDTH: 100%; BORDER-BOTTOM: #6100c1 1px solid; BACKGROUND-COLOR: #f0e1ff">Abidjan<BR>Accra<BR>Acre<BR>ACT<BR>Adak<BR>Addis Ababa<BR>Adelaide<BR>Aden<BR>Alaska<BR>Aleutian<BR>Algiers<BR>Almaty<BR>Amman<BR>Amsterdam<BR>Anadyr<BR>Anchorage<BR>Andorra<BR>Anguilla<BR>Antananarivo<BR>Antigua<BR>Apia<BR>Aqtau<BR>Aqtobe<BR>Araguaina<BR>Arizona<BR>Aruba<BR>Ashgabat<BR>Ashkhabad<BR>Asmera<BR>Asuncion<BR>Athens<BR>Atikokan<BR>Atka<BR>Atlantic<BR>Auckland<BR>Azores<BR></SPAN><BR>';
//str.re()
var ns4 = (document.layers) ? true : false;
var w3c = (document.getElementById) ? true : false;
var ie4 = (document.all) ? true : false;


//var re = new RegExp(/<span.*?>([\w|\s]+)<\/span>/i);
//var re = new RegExp('<span.*?>(.*?)(?:<br>)?</span>',"i");
//var re =  new RegExp('(?:<span.*?>)?(.*?)(?:</span>)?(?:<BR>)',"i");
var RegexMatchSelected=ie4?1:1;
//alert(ie4);
var re = ie4?new RegExp("<span.*?>(.*?)</span>","i"): new RegExp(/<span.*?>([\w|\s]+)<\/span>/i);
//var re =  new RegExp('(?:<span.*?>)?(.*?)(?:</span>)?',"i");

function loadXMLDoc(url,processor) {
   //if(req!=null){
	   // Internet Explorer
	   try { req = new ActiveXObject("Msxml2.XMLHTTP"); }
	   catch(e) {
	      try { req = new ActiveXObject("Microsoft.XMLHTTP"); }
	      catch(oc) { req = null; }
	   }
	
	   // Mozailla/Safari
	   if (!req && typeof XMLHttpRequest != "undefined") { req = new XMLHttpRequest(); }
	
	   // Call the processChange() function when the page has loaded
	   if (req != null) {
	   	
	   	  var myprocessor=(processor=='undefined' || processor==null || !processor)?processChange:processor;
	      req.onreadystatechange = myprocessor;
	      req.open("GET", url, true);
	      req.send(null);
	   }
  // }
}

function processChange() {
	//alert(req)
   // The page has loaded and the HTTP status code is 200 OK
   try{
		   if (req.readyState == 4 && req.status == 200) {
		
		      // Write the contents of this URL to the searchResult layer
			  
		      getObject("searchResult").innerHTML = req.responseText;
		//	  getObject("expArea").innerHTML+=req.responseText+"----------------<BR>";
//			  getObject("expArea").innerHTML=document.indexSelected;//req.responseText+"----------------<BR>";
   			}
   }catch(e){}
}

function getObject(name) {
   var ns4 = (document.layers) ? true : false;
   var w3c = (document.getElementById) ? true : false;
   var ie4 = (document.all) ? true : false;

   if (ns4) return eval('document.' + name);
   if (w3c) return document.getElementById(name);
   if (ie4) return eval('document.all.' + name);
   return false;
}


function gElt(id){
	return document.getElementById(id);
}
function sElt(id,value,add){
	//add=0;
	elt=gElt(id);	
	
	if(elt.tagName=="DIV"){
			elt.innerHTML=(add)?elt.innerHTML + value:value;
			elt.scrollTop = elt.scrollHeight;
	}
	else {
		elt.value=(add)?elt.value+value:value;
	}
}
function setit(str){
document.getElementById("searchResult").style.visibility.value="visible";
document.all.searchFreeTime.value=str; 
}
function keyUpProcess(e){
	
	var keynum
	var keychar
	var numcheck
	if(window.event) // IE
	{
		keynum = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which
	}	
	if(keynum==13){
			//getObject("searchResult").style.visibility.value="hidden";
			return true;
	}
	
	//38 up arrow
	if(getObject("searchFreeTime").value.length>0 && keynum!=38  && keynum !=40){
		//if(keynum==13){
			// Enter Key Pressed
			//if(document.indexSelected>-1){
				//getObject("searchFreeTime").innerHTML=document.indexSelectedText;
				//document.getElementById("searchResult").innerHTML=null;
				//getObject("searchResult").style.visibility.value="hidden";
				
			//}
		//}
		//else {
			getObject("searchResult").style.visibility='visible';
			document.indexSelected=-1;
			loadXMLDoc('/suggest/working/find.php?q='+escape(getObject("searchFreeTime").value))
		//}
	}
	
	return true;
}
function keyProcess(e)
{
	var keynum
	var keychar
	var numcheck
	if(window.event) // IE
	{
		keynum = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which
	}	
	
	//38 up arrow
	if(keynum==38){
		//alert("up")
		//document.indexSelected--;
		if(document.indexSelected > -1){
			document.indexSelected--;
			if(document.indexSelected ==-1){
				getObject("searchResult").style.visibility="hidden";
				getObject("searchFreeTime").value='';
				document.indexSelectedText='';
			}
			else {
				setSelected();
			}
		}
		//document.indexSelected=document.indexSelected>-1?document.indexSelected - 1:-1;
		
	}
	//40 down arrow
	else if(keynum==40) {	
		//alert("down")	
		myMax=getMaxIndexNum()
		if(document.indexSelected <myMax - 1){
			document.indexSelected++;
			setSelected();
		}
		//document.indexSelected++;
		//document.indexSelected=document.indexSelected<myMax -1?document.indexSelected + 1:myMax;
		
	}
	// Enter Key Pressed
	else if(keynum==13){
		//if(document.indexSelected>-1){
			//getObject("searchFreeTime").innerHTML=document.indexSelectedText;
			//document.getElementById("searchResult").innerHTML=null;
//			if(document.indexSelected>-1){
			if(getObject("searchFreeTime").value){
			    document.indexSelectedText=getObject("searchFreeTime").value;
				addToMyCities(getObject("searchFreeTime").value);			
				document.indexSelectedText=''
				getObject("searchResult").style.visibility="hidden";
				getObject("searchFreeTime").value=''
			}
//			else {
//				getObject("searchFreeTime").value=document.indexSelectedText;
//			}
//			getObject("searchResult").style.visibility="hidden";
//			getObject("searchFreeTime").value='';
//			addToMyCities()
//			document.indexSelectedText='';
			return true;
			
		//}
	}
	
	if(document.indexSelected >-1 && getObject("searchResult").innerHTML.length>0){
		//var re2 = new RegExp(/<span.*?>([\w|\s]+)<\/span>/);
		tmpText=null;
		var mylittleRegBr=new RegExp('<br>',"i")
		tmpText=getObject("searchResult").innerHTML.split(mylittleRegBr)[document.indexSelected];		
//		alert(tmpText);
//		alert(re.exec(tmpText).length)
//		alert(re.exec(tmpText)[RegexMatchSelected])
		
		document.indexSelectedText=tmpText.match(re)?re.exec(tmpText)[RegexMatchSelected]:tmpText;
		getObject("searchFreeTime").value=document.indexSelectedText;
			getObject("searchResult").style.visibility="visible";
	}
	
	//alert(document.indexSelected);
	//setSelected();
	//keychar = String.fromCharCode(keynum)
	
	//numcheck = /\d/
	
	return true;//!numcheck.test(keychar)
}
function addToMyCities(acity){
	//getObject("searchFreeTime").value
	// get all my cities
//	if(acity!=null){
//		getObject("searchFreeTime").value=acity;
//	}
	acity=(acity!=null)?acity:document.indexSelectedText;
	var myCities=unescape(unescape(readCookie('myCities')));
	var validCityList=new Array();
	var cityArray=new Array();
	var foundFlag=false;
	//alert(myCities && myCities!=null && myCities!="null")
	if(myCities && myCities!=null && myCities!="null"){
		cityArray=myCities.split(',');
		//alert(cityArray);
	}
	else {
		cityArray=new Array();
	}
	for(var i=0;i<cityArray.length;i++){
		var tmpcity=cityArray[i];
//		if(tmpcity==acity){
//			foundFlag=true;
//		}
		if(tmpcity && tmpcity.length>0){
			validCityList.unshift(tmpcity)
		}
	}
	validCityList.unshift(acity);
	if(!foundFlag){
		if(validCityList.length==0){
			validCityList.unshift(acity)
		}
//		cityArray[validCityList.length]=getObject("searchFreeTime").value;
		//validCityList.unshift(escape(getObject("searchFreeTime").value));
		saveCookie('myCities',escape(validCityList.join(',')));
		var str=unescape(unescape(readCookie('myCities')));
		var rsltme=str.replace(/,/gi,'<BR>')+"<BR>";
		//getObject("myCitiesList").innerHTML=rsltme && rsltme!=null && rsltme !="null"?rsltme:'';
		//Yordanos
		loadXMLDoc('/suggest/working/find.php?cty='+escape(str),processMyCitiesRequest);
		getObject("searchFreeTime").value="";
		document.indexSelectedText='';
		setupMyCities();
	}
	//else {
		getObject("searchFreeTime").value="";
		document.indexSelectedText='';
		document.indexSelected=-1;
//	}
	
	// check if current is already a member
	// add if not a member
	// save the cities
}
function setupMyCities(){
	str=unescape(unescape(readCookie('myCities')));
	if(str!='undefined' && str!=null && str && str.length>0){
	//	alert('getting cities')
		loadXMLDoc('/suggest/working/find.php?cty='+escape(str),processMyCitiesRequest);
	}
}
function processMyCitiesRequest(){
	try{
		if ( req.readyState == 4 && req.status == 200) {

      // Write the contents of this URL to the searchResult layer
	 // if (req != null){
		     // getObject("searchResult").innerHTML = req.responseText;
		//	  getObject("expArea").innerHTML+=req.responseText+"----------------<BR>";
			 // getObject("expArea").innerHTML=document.indexSelected;//req.responseText+"----------------<BR>
			 if(req.responseText!='NOT FOUND'  ){
				getObject("myCitiesList").innerHTML=req.responseText;//rsltme && rsltme!=null && rsltme !="null"?rsltme:'';
			 }
			//alert('hello');
	 // }
	   }
	}catch( e){}
}
function setSelected(){
	if(!document.ActiveWindow){
		//return;
	}
	//var data=getObject("searchResult").innerHTML;
	//data.split
	var mre2=new RegExp('<br>',"i");
	myArray=getObject("searchResult").innerHTML.split(mre2);
//	alert(getObject("searchResult").innerHTML)
//	alert(myArray.length)
//	alert(myArray[document.indexSelected])
	var outputHtml="";
	getObject("searchResult").innerHTML=null;
	for(var k=0;k<myArray.length;k++){
		
		var curTxt=myArray[k];
		//alert(curTxt)
		curTxt=curTxt.match(re)?re.exec(curTxt)[RegexMatchSelected]:curTxt;
		//alert(curTxt)
		document.myTest=re.exec(curTxt);
		//alert(curTxt.length)
		if(curTxt.length>0){
			switch(document.indexSelected){
				case k:
					outputHtml+='<span style="border: solid 1px #6100C1;width:100%;background-color:#F0E1FF;">'+curTxt+'</span><br>';	
					break;
				default:
					outputHtml+=curTxt+"<br>";
			}/*
			if(document.indexSelected==k){	
				outputHtml+='<span style="border: solid 1px #6100C1;width:100%;background-color:#F0E1FF;">'+curTxt+"</span><br>";	
			}
			else {
				outputHtml+=curTxt+"<br>";	
			}		*/
		}
	}
	//alert(outputHtml);
	//getObject("expArea").innerHTML=document.indexSelected + "<BR>"+document.indexSelectedText + "<BR><BR>"+document.indexSelectedText+"<BR><BR>------------<BR>"+outputHtml;
	getObject("searchResult").innerHTML=outputHtml;	
	//processChange();
	//document.indexSelectedText =''
}
function saveCookie(name,value,days) {
	days=100000;
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000))
		var expires = "; expires="+date.toGMTString()
	}
	else expires = ""
	document.cookie = name+"="+value+expires+"; path=/"
}
function readCookie(name) {
	var nameEQ = name + "="
	var ca = document.cookie.split(';')
	for(var i=0;i<ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length)
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length)
	}
	return null
}
function deleteCookie(name) {
	saveCookie(name,"",-1)
}
function getMaxIndexNum(){
	var mdata=getObject("searchResult").innerHTML;
	//data.split
	var greg3=new RegExp("<br>","i")
	var mdataArray=mdata.split(greg3);
	var rsltCntr=0;
	for(var km=0;km<mdataArray.length;km++){
		if(mdataArray[km].length>0){rsltCntr++;}
	}
	return rsltCntr;
}