﻿var searchReq = getXmlHttpRequestObject();
   
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
	    return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
	    return new ActiveXObject("Microsoft.XMLHTTP");
	    }
     else {	
        alert("Ajax Search is not supported on this browser");
        }
}

function GetLanguage(){
    var ar = document.getElementById('rdArabic');
    var eng = document.getElementById('rdEnglish');
    var fr = document.getElementById('rdFrench');    
    if(ar.checked)
        {
           return "Arabic";
        }else {
            if(eng.checked) {       
                return "English";
                }else{
                    if ( fr.checked)
                        return "French";
                }
        }
}

function ScrollResults(e){
	var key=e.keyCode || e.which;
	var divSearch = document.getElementById('search_suggest');
	var innerDivs = divSearch.getElementsByTagName('div');
	if (key==13){
	       e.returnValue=false; 
		   e.cancel = true; 
            var btn = document.getElementById('btnSearch');
            btn.focus();
            btn.click();
	}else{
	     if ( key == 40){
	        var i=0;
	        var index=0;
	        for (i=0;i < innerDivs.length;i++)
	        {
//	             alert(innerDivs[i].className);
	            if (innerDivs[i].className == 'suggest_link_over'){
	                index=i;
	                break;
	            }
	        }
	        if ( index >0 || innerDivs[0].className=='suggest_link_over') {
	                innerDivs[index].className='suggest_link';
	                innerDivs[index+1].className='suggest_link_over';
	                var value = innerDivs[index+1].innerHTML;   
	                value = value.toLowerCase().replace('<span class=highlight>','');
                    value = value.toLowerCase().replace('<span class="highlight">','');
                    value = value.toLowerCase().replace('</span>','');
                    var txt = document.getElementById('txtSearch');
                    txt.value = value;
	                e.returnValue=false; 
		            e.cancel = true; 
	        }else
	        {
	            innerDivs[0].className='suggest_link_over';
	             var value = innerDivs[0].innerHTML;   
	                value = value.toLowerCase().replace('<span class=highlight>','');
                    value = value.toLowerCase().replace('<span class="highlight">','');
                    value = value.toLowerCase().replace('</span>','');
                    var txt = document.getElementById('txtSearch');
                    txt.value = value;
	        }
	     }else{
	        if ( key == 38){
	        var i=0;
	        var index=0;
	        for (i=0;i < innerDivs.length;i++)
	        {
//	             alert(innerDivs[i].className);
	            if (innerDivs[i].className == 'suggest_link_over'){
	                index=i;
	                break;
	            }
	        }
	        if ( index >0 || innerDivs[innerDivs.length-1].className=='suggest_link_over') {
	                innerDivs[index].className='suggest_link';
	                innerDivs[index-1].className='suggest_link_over';
	                var value = innerDivs[index-1].innerHTML;
	                value = value.toLowerCase().replace('<span class=highlight>','');
                    value = value.toLowerCase().replace('<span class="highlight">','');
                    value = value.toLowerCase().replace('</span>','');
                    var txt = document.getElementById('txtSearch');
                    txt.value = value;
	                e.returnValue=false; 
		            e.cancel = true; 
	        }else
	        {
	            innerDivs[innerDivs.length-1].className='suggest_link_over';
	             innerDivs[0].className='suggest_link';
	             var value = innerDivs[innerDivs.length-1].innerHTML;   
	                value = value.toLowerCase().replace('<span class=highlight>','');
                    value = value.toLowerCase().replace('<span class="highlight">','');
                    value = value.toLowerCase().replace('</span>','');
                    var txt = document.getElementById('txtSearch');
                    txt.value = value;
	        }
	     }
	     }
	     
	}
}

function searchSuggest(e) {
    var key=e.keyCode || e.which;
    if ( key != 40 && key != 38){
	    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
	        var str = escape(document.getElementById('txtSearch').value);
	        searchReq.open("GET", 'SubPage.aspx?Keyword=' + str + '&Language=' + GetLanguage(), true);	
	        searchReq.onreadystatechange = handleSearchSuggest;
	        searchReq.send(null);
	        }
	}
	ScrollResults(e);
}

function handleSearchSuggest() {
    if (searchReq.readyState == 4) {
        var txt = escape(document.getElementById('txtSearch').value);
        var ss = document.getElementById('search_suggest');
        ss.style.display='block';
        ss.innerHTML = '';	
        if (txt== '')
        { 
        ss.style.display='none';
        return
        } ;
        var str = searchReq.responseText.split("~");
        if (str.length > 1)
        {
        for(i=0; i < str.length - 1; i++) {	
        var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
        suggest += 'onmouseout="javascript:suggestOut(this);" ';
        suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
        suggest += 'class="suggest_link">';
        var count=0;
        var tempStr="";
            for (j=0;j<str[i].length;j++)
            {
                tempStr +=str[i].charAt(j);
                count+=1;
                if ( txt == tempStr)
                        break;
            }
          
        if (count>0)
        {
            // suggest += '<span class=highlight>' + tempStr + '</span>';            
        }
        suggest += str[i] +  '</div>';
//        suggest +=  str[i].replace(tempStr,"") + '</div>';
        ss.innerHTML += suggest;
        }
       }else
       {
            var ss = document.getElementById('search_suggest')
            ss.style.display='none';
       }
    }
}

function suggestOver(div_value) {
div_value.className = 'suggest_link_over';
}

function suggestOut(div_value) {
div_value.className = 'suggest_link';
}

function setSearch(value) {	
    value = value.toLowerCase().replace('<span class=highlight>','');
    value = value.toLowerCase().replace('<span class="highlight">','');
    value = value.toLowerCase().replace('</span>','');
    document.getElementById('txtSearch').value = value;
   	document.getElementById('search_suggest').innerHTML = '';
   	document.getElementById('search_suggest').style.display = 'none';
}
