// autosuggest1.js -- start --

var url_dom = "jobsearch.naukri.com";
var date_ref = new Date()
var week_no = Math.round(date_ref.getDate()/7,0)*(date_ref.getMonth()+1);
var url = "/mynaukri/newsuggest2.php?w="+week_no+"&ver=2&";

// SELECT_FIRST_ELEMENT
var elem_name = '';
var firstSuggestion = '';

var flagUsedSuggestion = false;

function AutoSuggest(elem, formname,tmpDiv)
{
	var me = this;
	this.elem = elem;
	this.eligible = new Array();
	this.inputText = null;
	this.highlighted = -1;
	this.div = document.getElementById(tmpDiv);//document.getElementById("autosuggest");
	this.div.style.zIndex=1000;
	var TAB = 9;
	var ESC = 27;
	var KEYUP = 38;
	var KEYDN = 40;
	var ENTER = 13;
	var cntr = 0;
	var maxlist = 15;
      var flag_ie = false;
	var leftover = '';
	elem.setAttribute("autocomplete","off");
	if(!elem.id)
	{
		var id = "autosuggest" + idCounter;
		idCounter++;
		elem.id = id;
	}
	elem.onblur = function(ev)
	{
		me.hideDiv(1);
	}
	elem.onkeydown = function(ev)
	{
newflag = "";
		var key = me.getKeyCode(ev);

		switch(key)
		{
			case TAB:
			me.useSuggestion();
			break;

                        case ENTER:

newflag = "DOWN";
                        var val_ret = me.useSuggestion();
        		if(val_ret == 0) newflag = "";
                        break;

			case ESC:
			me.hideDiv(2);
			break;

			case KEYUP:
			if (me.highlighted > 0)
			{
				me.highlighted--;
			}
			me.changeHighlight(key);
			break;

			case KEYDN:
                        if (me.highlighted < (me.eligible.length - 1) && me.highlighted < (maxlist-1))
			{
				me.highlighted++;
			}
			me.changeHighlight(key);
			break;
		}
	};

	elem.onkeyup = function(ev) 
	{
newflag = "";
		var key = me.getKeyCode(ev);

		switch(key)
		{
		case ENTER: 
newflag = "UP";
		case TAB:
		case ESC:
		case KEYUP:
		case KEYDN:
			return;
		default:
//			if(this.value != me.inputText && trim(this.value).length > 0)
			var str_input;
			if(trim(this.value).length > 0)
			{
                                str_input = this.value;
                                // CLEANUP STARTS

                // SELECT_FIRST_ELEMENT
                elem_name = elem.name;

		if(elem.name=='qp')
		{
			str_input = str_input.replace(/[@,;:!&\s]+/g," ");
		}
		else if(elem.name=='ql')
		{
			var arr_tmp = str_input.split(',');
			if(arr_tmp.length>1)
			{
				str_input=trim(arr_tmp[arr_tmp.length-1]);
				arr_tmp = arr_tmp.slice(0,arr_tmp.length-1);
				leftover = arr_tmp.join(',');
			}
			delete(arr_tmp);
			str_input = str_input.replace(/[@;:!&\s]+/g," ");
		}

                                str_input = str_input.replace(/^\s/,"");
                                // CLEANUP END
                              if(str_input.length <= 0)
					{
						leftover='';
						me.hideDiv(3);
						return;
					}

                                me.inputText = str_input;
                                var return_len = me.getEligible(elem);
				if(return_len > 0)
				{
					me.createDiv();
					me.positionDiv();
					me.showDiv();
				}
				else
				{
					me.hideDiv(4);
				}
			}
			else
			{
				leftover='';
				me.inputText = '';
				me.hideDiv(5);
			}
		}
	};
	this.useSuggestion = function()
	{
		if (this.highlighted > -1)
		{
			if(elem.name=='qp')
			{
flagUsedSuggestion = true;
                                if(document.getElementById("uen")) document.getElementById("uen").value = this.elem.value;
                                this.elem.value = this.eligible[this.highlighted];
                                if(document.getElementById("uen")) document.getElementById("uen").value += '|_|'+this.elem.value;
                                this.hideDiv(6);
			}
			else
			{
				if(document.getElementById("usl")) document.getElementById("usl").value += this.elem.value+'::'+this.eligible[this.highlighted]+'##';
				if(leftover != '') leftover += ',';
				this.elem.value = leftover+this.eligible[this.highlighted];
				this.hideDiv(7);
				document.getElementById(elem.id).focus;
                                document.getElementById(elem.id).value=document.getElementById(elem.id).value;
				leftover='';
			}
			setTimeout("document.getElementById('" + this.elem.id + "').focus()",0);
			return 1;
		}
		else
			return 0;
	};
	this.showDiv = function()
	{
		me.highlighted = -1;
		if(this.div.id=='autosuggest')
			document.getElementById("uen").value = "";
		this.div.style.display = 'block';

                if(disable && flag_ie)
                {
			var subobj=this.div;
			var ifrRef = document.getElementById("DivShim");
			ifrRef.style.width = subobj.offsetWidth;
			ifrRef.style.height = subobj.offsetHeight;
			ifrRef.style.top = subobj.style.top;
			ifrRef.style.left = subobj.style.left;
			ifrRef.style.marginTop = subobj.style.marginTop;
			ifrRef.style.marginBottom = subobj.style.marginBottom;
			ifrRef.style.marginLeft = subobj.style.marginLeft;
			ifrRef.style.marginRight = subobj.style.marginRight;
			ifrRef.style.display = subobj.style.display;
			ifrRef.style.zIndex = 1;
			subobj.style.zIndex = 2;
                } // end of if()
	};
	this.hideDiv = function(no)
	{
		//SELECT_FIRST_ELEMENT
		if(!no || no >1)
			firstSuggestion = '';
                firstSuggestion = '';

		this.div.style.display = 'none';
		document.getElementById("DivShim").style.display= 'none';
		this.highlighted = -1;
                this.eligible = new Array();

                if(disable && flag_ie)
                {
                        var i;
                        for(i=0;i<disable.length;i++)
                        {
                                document.getElementById(disable[i]).style.visibility = 'visible';                        }// end of for()
                } // end of if()

		//if(newflag == "DOWN") document.forms[formname].submit();
	};
	this.changeHighlight = function()
	{
		var lis = this.div.getElementsByTagName('LI');

		var i=0;
		for (i in lis)
		{
			var li = lis[i];

			if(!li)
			{
				continue;
			}

			if (this.highlighted == i)
			{
				li.className = "selected";
			}
			else
			{
				li.className = "";
			}
		}
	};
	this.positionDiv = function()
	{
		var el = this.elem;
		var x = 0;
		var y = el.offsetHeight;
	
		while (el.offsetParent && el.tagName.toUpperCase() != 'BODY')
		{
			x += el.offsetLeft;
			y += el.offsetTop;
			el = el.offsetParent;
		}

		x += el.offsetLeft;
		y += el.offsetTop;
		this.div.style.left = x -(form_n == "form4" && document.getElementById("divfordisplay")?parseInt(document.getElementById("divfordisplay").style.left.substr(0,(document.getElementById("divfordisplay").style.left.length-2))):0) + 'px';
		this.div.style.top = y -(form_n == "form4" && document.getElementById("divfordisplay")?parseInt(document.getElementById("divfordisplay").style.top.substr(0,(document.getElementById("divfordisplay").style.top.length-2))):0) + 'px';
	};
	this.createDiv = function()
	{
		cntr = 0;
		var full_temparr = new Array();
		var ul = document.createElement('ul');
		for (i in this.eligible)
		{
			if(cntr == 15) break;
			var word = this.eligible[i];
			full_temparr[cntr++] = word; 
			var li = document.createElement('li');
			var a = document.createElement('a');
			a.href="javascript:setValue(\""+word+"\");";
			a.innerHTML = markbold(this.inputText.toLowerCase(),word.toLowerCase());
			li.appendChild(a);
			if (me.highlighted == i)
			{
				li.className = "selected";
			}
			ul.appendChild(li);
		}
		this.div.replaceChild(ul,this.div.childNodes[0]);
		ul.onmouseover = function(ev)
		{
			var target = me.getEventSource(ev);
			while (target.parentNode && target.tagName.toUpperCase() != 'LI')
			{
				target = target.parentNode;
			}
		
			var lis = me.div.getElementsByTagName('LI');
			
	
			for (i in lis)
			{
				var li = lis[i];
				if(li == target)
				{
					me.highlighted = i;
					break;
				}
			}
			me.changeHighlight();
		};
		ul.onmousedown = function(ev)
		{
			me.useSuggestion();
			me.hideDiv(8);
			me.cancelEvent(ev);
			return false;
		};
		this.div.className="suggestion_list";
		this.div.style.position = 'absolute';
	};
	this.getEligible = function(element)
	{
                this.eligible = new Array();
                var smpl = new Array();
                if(element.name=='qp')
                        smpl = sample;
                else if(element.name=='ql')
                        smpl = sample1;
                for (i in smpl)
                {
                        var suggestion = smpl[i];
                        var index = suggestion.toLowerCase().indexOf(this.inputText.toLowerCase());
                        if(index == 0 || suggestion.charAt(index-1) == " ")
                        {
                                this.eligible[this.eligible.length]=suggestion;
                        }
                }

                /// SELECT_FIRST_ELEMENT
                firstSuggestion = this.eligible[0];

                delete(smpl);
                return this.eligible.length;
	};
	this.getKeyCode = function(ev)
	{
		if(ev)			//Moz
		{
                        flag_ie = false;
			return ev.keyCode;
		}
		if(window.event)	//IE
		{
                        flag_ie = true;
			return window.event.keyCode;
		}
	};
	this.getEventSource = function(ev)
	{
		if(ev)			//Moz
		{
			return ev.target;
		}
	
		if(window.event)	//IE
		{
			return window.event.srcElement;
		}
	};
	this.cancelEvent = function(ev)
	{
		if(ev)			//Moz
		{
			ev.preventDefault();
			ev.stopPropagation();
		}
		if(window.event)	//IE
		{
			window.event.returnValue = false;
		}
	}
}

function in_array(arr,str)
{
for (var i in arr) { if (arr[i] === str) return i; }
return -1;
}

function createAutoSuggest(suggestele,form_n,tmpDiv)
{
	new AutoSuggest(document.getElementById(suggestele),form_n,tmpDiv);
}

function markbold(str1,str2)
{
        index = str2.indexOf(str1);
        var str_ret="";
        str_ret += str2.substr(0,index);
        str_ret += "<b>"+str2.substr(index,str1.length)+"</b>";
        str_ret += str2.substr((index+str1.length),str2.length);
        return str_ret;
}

function setValue(val)
{
        document.getElementById(suggestelement).value=val;
}

function getHTTPObject()
{
  var http_request;

        if (window.XMLHttpRequest) { // For Mozilla and other browsers
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                }
            }
            else if (window.ActiveXObject) { // For Internet Explorer
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {}             }
        }
        if (!http_request) {
            return false;
        }

  return http_request;
}

//if(chkCrDom())
	var http_suggest = getHTTPObject(); // We create the HTTP Object
//else
//	var http_suggest = new XMLHTTP();


function getdata()
{
	http_suggest.open("GET",url+"set="+set,true);
	http_suggest.onreadystatechange = handleHttpResponse;
	http_suggest.send(null);
}
function call_getdata()
{
        set++;
        http_suggest = null;
//	if(chkCrDom())
		http_suggest = getHTTPObject();
//	else
//		http_suggest = new XMLHTTP();
        getdata();
}

function handleHttpResponse()
{
  if (http_suggest.readyState == 4)
  {
        var doc = http_suggest.responseText;
        if(doc)
        {
                var arrTmp = doc.split('_');
                var temp = arrTmp[1].split('|');
                if(arrTmp[0]=='keyword')
                {
                        sample = sample.concat(temp.slice(1,temp.length));

                        if(b==0)
                        {
//alert(suggestelement);
                                if(document.getElementById(suggestelement))
                                {
                                        createAutoSuggest(suggestelement,form_n,'autosuggest','3');
                                }
                                else
                                {
                                        a = 1;
                                }
                                b=1;
                        }
                }
                else if(arrTmp[0]=='location')
                {
                        sample1 = sample1.concat(temp.slice(1,temp.length));

                        if(b11==0)
                        {
                                if (document.getElementById(suggestelement1))
                                {
                                        createAutoSuggest(suggestelement1,form_n1,'autosuggest1','4');
                                }
                                else
                                {
                                        a11 = 1;
                                }
                                b11=1;
                        }
                }

                if(temp[0]=='')
                        setTimeout("call_getdata()",2000);
        }
  }
}
var idCounter = 0;

function chkCrDom()
{
	var locstr = document.location + '';
	if(locstr.substr(locstr.length-1,1) == "#")
		locstr=locstr.substr(0,locstr.length-1);
	locstr = locstr.substr(7,locstr.length);
	var arr_locstr = locstr.split("/");
	if(arr_locstr[0] == url_dom)
		return 1;
	return 0;
}
// autosuggest1.js -- end --
