

function init(){
     Event.observe('suggest_query', 'keypress', key_press, false);
   
}


 function key_press(e)
    {
        if (!e) var e = window.event;
        if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;
		
		
        switch (code) {
            /*case 27: // escape
            	this_div =  document.getElementById('search-results');
                gsc_hide(this_div);
                break;
            case 38: // up arrow
                gsc_handleup();
                break;
            case 40: // down arrow
                gsc_handledown();
                break;*/
            default:
               suggest_list();
        }
        return true
    }
var ID;

var gsc_basicmatch = /[a-z0-9]/i;
var loading = false;
function gsc_getquery(elt, q)
{
    q = ltrim(q);
    q = q.replace('\s+', ' ');
    if (q.length == 0 || !gsc_basicmatch.test(q)) {
        gsc_emptyresults(elt);
        return '';
    }

    if (elt.currentQuery && (elt.currentQuery == q || elt.tempQuery == q))
        return '';

    elt.currentQuery = q;
    return q;
}

function gsc_hide(elt)
{
    if (elt) elt.style.display = 'none';
}

function clear_search(){
	search_input =  document.getElementById('suggest_query');
	search_input.value = ''

	results_div =  document.getElementById('search-results');
	gsc_hide(results_div);
}
function gsc_ishidden(elt)
{
    return elt.style.display == 'none';
}

function gsc_show(elt)
{
    if (elt) elt.style.display = 'block';
}

function gsc_emptyresults(elt)
{
    if (!elt) return;

    elt.innerHTML = '';
    elt.numResults = 0;
    elt.selectedIndex = 0;
    elt.results = [];
    gsc_hide(elt);
}

/*function gsc_addresult(elt, qElt, q, c, sel)
{
    if (!elt) return;

    if (sel) elt.selectedIndex = elt.numResults;

    idx = elt.numResults;
    elt.results[elt.numResults++] = q;

    var _res = '';
    _res += '<div class="' + (sel ? 'srs' : 'sr') + '"'
         +  ' onmouseover="gsc_mouseover(\'' + elt.id + '\', \'' + qElt.id + '\', ' + idx + ')"'
         +  ' onmouseout="gsc_mouseout(\'' + elt.id + '\', ' + idx + ')"'
         +  ' onclick="gsc_mouseclick(\'' + elt.id + '\', \'' + qElt.id + '\', ' + idx + ')">';
    _res += '<span class="srt">' + q + '</span>';
    if (c.length > 0)
        _res += '<span class="src">' + c + '</span>';
    _res += '</div>';

    elt.innerHTML += _res;
}*/

function gsc_mouseover(id)
{
    elt = document.getElementById(id);
    elt.className = 'srs';
}

function gsc_mouseout(id)
{
	
	elt = document.getElementById(id);
    elt.className = 'sr';
 
}

function gsc_mouseclick(id)
{
    elt = document.getElementById(id);
    qElt = document.getElementById('suggest_query');
    qElt.value = elt.innerHTML;
    qElt.form.submit();
}

function gsc_handleup()
{
	 divs = document.getElementsByTagName('div');
	 var class_set = false;
	 div_length = divs.length;
    for (i = div_length-1; i >=0; i--) {
    	if(divs[i].id.substring(0,7) != 'result_'){
    		continue;	
    	}
    	if(divs[i].className == 'srs'){
    		class_set = true;
    		if(i != 0){
    			divs[i].className = 'sr';
    		}
    		
    	}else{
    		if(i != 0 && class_set == true){    			
    			if(divs[i].id.substring(0,7) == 'result_'){
			    	divs[i].className = 'srs';
			    	count = divs[i].id.substring(7);
			    	elt = document.getElementById('result_span_'+count);
				    qElt = document.getElementById('suggest_query');
				    qElt.value = elt.innerHTML;
			    	break;
	    			
		    	}
    			
    		}
    	}          
    }
}

function gsc_handledown()
{
	 divs = document.getElementsByTagName('div');
	 var class_set = false;
	 div_length = divs.length;
    	for (i = 0; i < div_length; i++) {
    	if(divs[i].id.substring(0,7) != 'result_'){
    		continue;	
    	}
    	if(divs[i].id.substring(0,8) == 'result_1'){
    		default_div = 	divs[i];
    	}
    	if(divs[i].className == 'srs'){
    		class_set = true;
    		if(i != div_length-1){
    			divs[i].className = 'sr';
    		}
    		
    	}else{
    		if(i != div_length && class_set == true){    			
    			if(divs[i].id.substring(0,7) == 'result_'){
			    	divs[i].className = 'srs';
			    	count = divs[i].id.substring(7);
			    	elt = document.getElementById('result_span_'+count);
				    qElt = document.getElementById('suggest_query');
				    qElt.value = elt.innerHTML;
			    	break;
	    			
		    	}
    			
    		}
    	}    
    }
    if(class_set==false){    	
    	default_div.className = 'srs';
    	elt = document.getElementById('result_span_1');
	    qElt = document.getElementById('suggest_query');
	    qElt.value = elt.innerHTML;
    }
}

function gsc_highlightsel(elt, qElt)
{
    divs = elt.getElementsByTagName('div');

    for (i = 0; i < divs.length; i++) {
        if (i == elt.selectedIndex) {
            divs[i].className = 'srs';
            elt.tempQuery = elt.results[i];

            if (qElt) {
                qElt.value = elt.results[i];
                if (qElt.createTextRange) {
                    r = qElt.createTextRange();
                    r.moveStart('character', elt.currentQuery.length);
                    r.moveEnd('character', qElt.value.length);
                    r.select();
                }
            }
        }
        else
            divs[i].className = 'sr';
    }
}


function suggest_list(){
	document.onclick = null
	if(ID>0){
		clearTimeout(ID);
	}
	display_loader();
	ID=window.setTimeout("get_results();",350);
	return true;
	
}
function get_results(){
		display_loader();
		this_div =  document.getElementById('search-results');
		//gsc_emptyresults(this_div);
		var url = BASE_URL+'kb_suggest_list.php';
		s_query = document.getElementById('suggest_query');
		var pars = 'string='+s_query.value+CATEGORY_ID_PARS
		
		var target = 'search-results';
		
		var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
		gsc_show(this_div);
		loading = false		
}

function get_entity_results(entity_type_id){
		display_loader();
		this_div =  document.getElementById('search-results');
		//gsc_emptyresults(this_div);
		var url = BASE_URL+'suggest_list.php';
		s_query = document.getElementById('suggest_query');
		
		var pars = 'string='+s_query.value
		if(entity_type_id){
			pars = pars + '&entity_type_id='+entity_type_id;
			
		}
		var target = 'search-results';
		
		var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
		gsc_show(this_div);
		loading = false
		
}

function getParameter (parameterName ) {
  queryString = window.top.location.search.substring(1);
   // Add "=" to the parameter name (i.e. parameterName=value)
   var parameterName = parameterName + "=";
   if ( queryString.length > 0 ) {
      // Find the beginning of the string
      begin = queryString.indexOf ( parameterName );
      // If the parameter name is not found, skip it, otherwise return the value
      if ( begin != -1 ) {
         // Add the length (integer) to the beginning
         begin += parameterName.length;
         // Multiple parameters are separated by the "&" sign
         end = queryString.indexOf ( "&" , begin );
      if ( end == -1 ) {
         end = queryString.length
      }
      // Return the string
      return unescape ( queryString.substring ( begin, end ) );
   }
   // Return "null" if no parameter has been found
   return "null";
   }
}

function display_loader(){
	if(loading !=true){
		
		this_div =  document.getElementById('search-results');
		this_div.innerHTML = '<div  class="message_div" style="width:200px" >Loading <img src ="'+loading_gif.src+'" alt="Loading" border="0"></div>'
		loading = true
	}
}

function check_spelling(string){
		string = string.replace(/\n/g, ' ');
		display_loader();
		this_div =  document.getElementById('search-results');
		//gsc_emptyresults(this_div);
		var url = 'kb_suggest_list.php';
		
		var pars = 'action=spell_check&string='+string
		
		var target = 'search-results';
		var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
		gsc_show(this_div);
		loading = false
		
}


function show_permissions(nodeId){
	
	display_loader();
	cat_id = tree.getUserData(nodeId,'category_id');
	cat_type_id = tree.getUserData(nodeId,'category_type_id');
	var success	= function(t){editComplete(t);}
	var failure	= function(t){editFailed(t);}
	
	if((typeof(cat_id) != "undefined") && cat_id>0){
		this_div =  document.getElementById('search-results');
		var url = 'kb_permission_admin.php';
		var pars = 'category_id='+cat_id;
		var target = 'search-results';
		var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
		gsc_show(this_div);
		loading = false;
		return true;
	}else{
		if((typeof(cat_type_id) != "undefined") && cat_type_id>0){
			this_div =  document.getElementById('search-results');
			var url = 'kb_permission_admin.php';
			var pars = 'category_type_id='+cat_type_id;
			var target = 'search-results';
			var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});
			gsc_show(this_div);
			loading = false;
			return true;
		}else{
			return false;
		}
	}
}


function show_closest_branches(lat,lng,category_id){
	
	display_loader();

	
		this_div =  document.getElementById('search-results');
		gsc_emptyresults(this_div);
		var url = 'centre_suggest.php';

		var pars = 'lat='+lat+'&lng='+lng+'&category_id='+category_id;
		
		var target = 'search-results';
		var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});

		gsc_show(this_div);

		loading = false;
	
	
}