var xmlHttp
//var hintCount =0;
var suggestCount = 0;

//window.onkeyup = KeyCheck;
document.onkeydown= KeyCheck;

function KeyCheck(e){
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	var x = String.fromCharCode(KeyID);

	if (KeyID==8){
		var Vallu = document.forms[0].URL.value;
		handleKeyPress(Vallu.substr(0,Vallu.length-1),"reset");
	}
/*
	else if (KeyID>45){
		document.forms[0].URL.focus();
		handleKeyPress(x.toLowerCase(),"append");
	}
*/
/*
	switch(KeyID){
		case 16:
			document.forms[0].URL.value+= "Shift";
			break;
		case 17:
			document.forms[0].URL.value+= "Ctrl";
			break;
		case 18:
			document.forms[0].URL.value+= "Alt";
			break;
		case 19:
			document.forms[0].URL.value+= "Pause";
			break;
		case 37:
			document.forms[0].URL.value+= "ArrowLeft";
			break;
		case 38:
			document.forms[0].URL.value+= "ArrowUp";
			break;
		case 39:
			document.forms[0].URL.value+= "ArrowRight";
			break;
		case 40:
			document.forms[0].URL.value+= "ArrowDown";
			break;
		case 8:
			document.forms[0].URL.value+= "Backspace";
			break;
   	}
*/
} 


function showHint(str){
	if (str.length==0){
		document.getElementById("txtHint").innerHTML=""
		return
	}
	else if (str=='w' || str=='ww' || str=='www' || str=='www.'){
		document.getElementById("txtHint").innerHTML=""
		return
	}
	else if (str=='wa' || str=='wap' || str=='wap.'){
		document.getElementById("txtHint").innerHTML=""
		return
	}
	else if (str=='www.%' || str=='%' || str=='w%' || str=='ww%' || str=='www%' || str=='wap%' || str=='wap.%'){
		document.getElementById("txtHint").innerHTML=""
		return
	}

	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
		alert ("Browser does not support HTTP Request")
		return
	}
	var url="suggestion_fetch.php"
	url=url+"?q="+str
	/*url=url+"&sid="+Math.random()*/
	//x=stateChanged
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 

function stateChanged(){
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
		var ss = document.getElementById('txtHint');
		ss.innerHTML = '';

		var str = xmlHttp.responseText.split("\n");
		suggestCount=str.length-1;
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var 	suggest = '<div onmouseover="javascript:suggestOver(this);" ';
				suggest += 'onmouseout="javascript:suggestOut(this);" ';
				suggest += 'onclick="javascript:setSearch(this.innerHTML); document.forms[0].submit();" ';
				suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
		//document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
		//hitCount=str.length-1;
	}
}

function GetXmlHttpObject(){
	var xmlHttp=null;
	try{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e){
		// Internet Explorer
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}
//Click function
function setSearch(value) {
	document.getElementById('URL').value = value; /*.substr(7,value.length);*/
	document.getElementById('txtHint').innerHTML = '';
}

function handleKeyPress(value,action){
	if (action=='reset'){
		document.forms[0].URL.value=value;
	}
	else if (action=='append'){
		document.forms[0].URL.value+=value;
	}
	showHint(document.forms[0].URL.value);
}

function form_validate(str){
	if (!(str.indexOf(".")>0))
		return false;
	//alert (str.length);
	if (str.indexOf(".")==(str.length-1))
		return false;
	if (str.indexOf(".")==(str.length-2))
		return false;

	if (str=="")
		return false;
	else
		return true;
}

function chl(character,action){
	if (action=='in')
		document.getElementById('key_highlight').innerHTML=character;
	else
		document.getElementById('active_key').innerHTML='';
	return;
}


/* slider */
var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        //endHeight[objname] = parseInt(obj[objname].style.height);
        endHeight[objname] = 40;
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}


function creatediv(id, html, width, height, left, top) {

   var newdiv = document.createElement('div');
   newdiv.setAttribute('id', id);
   
   if (width) {
       newdiv.style.width = 300;
   }
   
   if (height) {
       newdiv.style.height = 300;
   }
   
   if ((left || top) || (left && top)) {
       newdiv.style.position = "absolute";
       
       if (left) {
           newdiv.style.left = left;
       }
       
       if (top) {
           newdiv.style.top = top;
       }
   }
   
   newdiv.style.background = "#00C";
   newdiv.style.border = "4px solid #000";
   
   if (html) {
       newdiv.innerHTML = html;
   } else {
       newdiv.innerHTML = "nothing";
   }
   
   document.body.appendChild(newdiv);

} 