
var gsc_basicmatch = /[a-z0-9]/i;

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';
}

/*gjemmer s�kediv og resetter s�kefelt*/
function otherHide(){
	//document.getElementById('search-results').style.visibility = 'hidden';
	document.getElementById('search-results').style.display = 'none';
	document.getElementById('fq').value="";
}

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){
    //dersom ett av parametrene er lik visAlle skal det legges til en slik knapp
    
    
    if (q=="visAlle"){
    	var _res='';
    	
    	_res += '<div class="visAlle resultRow" style="center">';
		_res += '<input type="image" src="gfx/vis_alle_varer.png" name="search">';   
		_res += '</div>\r\n';
		
	}else  if (q=="lukkeKnapp"){
    	var _res='';
    	
    	_res += '<div class="lukkeKnapp resultRow" style="text-align:right;">';
		_res += '<a href="#" onclick="otherHide();"><img src="gfx/lukk.gif" alt="lukk s�kefeltet" style="margin-bottom:5px;"></a>';   
		_res += '</div>\r\n';
    }else{
	    
	    if (!elt) return; 
	
	    if (sel) elt.selectedIndex = elt.numResults;
	
	    idx = elt.numResults;
	    elt.results[elt.numResults++] = q;
	
		//alle kategoriID'er er prefixed med @ som f�rste tegn i verdien. M� sjekke denne for � avgj�re om det er en kategori eller en vare
		if (c.substring(0,1)!="@"){ //ikke kategori
		    var _res = '';
		    _res += '<div class="resBox resultRow"'
		      // +  ' onclick="gsc_mouseclick(\'' + elt.id + '\', \'' + qElt.id + '\', ' + idx + ')">';
		      // +  ' onclick="location.href(\'index.php?expand=11&amp;show=11&amp;topmenu_2=11&amp;PrCatNo=&amp;MainPrC=&amp;ProdNo='+c+'\');">';
		         +  ' onclick="top.location.href=\'index.php?expand=11&show=11&topmenu_2=11&PrCatNo=&MainPrC=&ProdNo='+c+'\';">';
		         
		    //_res += '<span class="srt"><a href="index.php?expand=11&show=11&topmenu_2=11&PrCatNo=&MainPrC=&ProdNo='+c+'">' + q + '</a></span>';
		    _res += '<table width="100%"><tr class="srt resultRow" ><td style="width:140px;text-align:left;">'
		         + '<a href="index.php?expand=11&show=11&topmenu_2=11&PrCatNo=&MainPrC=&ProdNo='+c+'">' + q
		         + '</a><br><span style="font-style:italic; font-size:10px;">Varenr: '+c+'</span></td><td style="width:40px;text-align:left;"><img src="http://webserver.flak.no/vbilder/'+c+'_m.jpg" width="40px" height="40px" alt="'+q+'" align="right" style="vertical-align:top"></td></tr></table>';
		        
		        
		    /*_res += '<span class="srt">' + q + '</span>';
		    if (c.length > 0)
		        _res += '<span class="src"><img src="http://webserver.flak.no/vbilder/'+c+'_m.jpg" width="60px" height="60px" alt="'+q+'">' + c + '</span>';*/
		    _res += '</div>\r\n';
		
		
		}else{ 	//kategori
			var parentCat =c.substring(1); //legger i parentcat for � fjerne @
			var subCat=c.substring(1);
			
				
			//finner lengden p� kategorien. 5 siffer= [0-1]*1000, 4 siffer = [0]*1000. 
			if (parentCat.length==4){
				parentCat=subCat.substring(0,1) + '000';
			}else{
				parentCat=subCat.substring(0,2)+'000';
			}
			
			//alert(parentCat);
			
			var _res = '';
		    _res += '<div class="resBox resultRow"'
		      // +  ' onclick="gsc_mouseclick(\'' + elt.id + '\', \'' + qElt.id + '\', ' + idx + ')">';
		      // +  ' onclick="location.href(\'index.php?expand=11&amp;show=11&amp;topmenu_2=11&amp;PrCatNo=&amp;MainPrC=&amp;ProdNo='+c+'\');">';
		         +  ' onclick="top.location.href=\'index.php?expand=11&show=11&topmenu_2=11&PrCatNo=&MainPrC=&ProdNo='+c+'\';">';
		          
		    //_res += '<span class="srt"><a href="index.php?expand=11&show=11&topmenu_2=11&PrCatNo=&MainPrC=&ProdNo='+c+'">' + q + '</a></span>';
		    _res += '<table width="100%"><tr class="srt resultRow" ><td style="width:140px;text-align:left;">'
		         + '<a href="index.php?expand=11&show=11&topmenu_2=11&PrCatNo='+ subCat + '&MainPrC=' + parentCat + '">' + q
		         + '</a><br><span style="font-style:italic; font-size:10px;">Kategori</span></td><td style="width:40px;text-align:left;"><img src="kategorigfx/' + parentCat + '.jpg" width="40px" height="40px" alt="'+q+'" align="right" style="vertical-align:top"></td></tr></table>';
		        
		        
		    /*_res += '<span class="srt">' + q + '</span>';
		    if (c.length > 0)
		        _res += '<span class="src"><img src="http://webserver.flak.no/vbilder/'+c+'_m.jpg" width="60px" height="60px" alt="'+q+'">' + c + '</span>';*/
		    _res += '</div>\r\n';
		}
	}
    
    
    elt.innerHTML += _res;
}

function gsc_mouseover(id, qId, idx)
{
    elt = document.getElementById(id);
    elt.selectedIndex = idx+1;
    qElt = document.getElementById(qId);
    qElt.focus();

    gsc_highlightsel(elt);
}

function gsc_mouseout(id, idx)
{
    elt = document.getElementById(id)+1;
    elt.selectedIndex = -1;

    gsc_highlightsel(elt);
}

function gsc_mouseclick(id, qId, idx)
{
    elt = document.getElementById(id);
    qElt = document.getElementById(qId);

    qElt.value = elt.results[idx];
    qElt.form.submit();
}

function gsc_handleup(elt, qElt)
{
    if (elt.numResults > 0 && gsc_ishidden(elt)) {
        gsc_show(elt);
        return;
    }

    if (elt.selectedIndex == 0)
        return;
    else if (elt.selectedIndex < 0)
        elt.selectedIndex = elt.numResults - 1;
    else
        elt.selectedIndex--;
    gsc_highlightsel(elt, qElt);
}

function gsc_handledown(elt, qElt)
{
    if (elt.numResults > 0 && gsc_ishidden(elt)) {
        gsc_show(elt);
        return;
    }

    if (elt.selectedIndex == elt.numResults - 1)
        return;
    else if (elt.selectedIndex < 0)
        elt.selectedIndex = 0;
    else
        elt.selectedIndex++;
    gsc_highlightsel(elt, qElt);
}

//kommentert ut innhold da det ikke brukes til noe praktisk!
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';
    }*/
}

__query.onkeydown = function(e)
                            {
                                key = ajaxac_getkeycode(e);
                                switch (key) {
                                    case 27: // escape
                                        gsc_hide(__results);
                                        return false;
                                        break;
                                    case 38: // up arrow
                                        gsc_handleup(__results, __query);
                                        return false;
                                        break;
                                    case 40: // down arrow
                                        gsc_handledown(__results, __query);
                                        return false;
                                        break;
                                    default:
                                        __gsctimer.start();
                                }
                                return true;
                            }
__results.onload = function() { gsc_emptyresults(this); }

__results.onload();
__gsctimer = new ajaxac_countdowntimer('__gsctimer.ontimerexpire()', 350);
__gsctimer.ontimerexpire = function()
                            {
                                _q = gsc_getquery(__results, __query.value);
                                if (_q.length == 0)
                                    return false;
                                try {
                                    __gscfetch = ajaxac_createXMLHttp();

__gscfetch.open('get', '/index.phtml/getsuggestions' + '?' + 'q=' + encodeURIComponent(_q));

__gscfetch_xmlhttpsuccess = function()
                            {
                                _data = ajaxac_receivejsarray(__gscfetch.responseText);
                                gsc_emptyresults(__results);
                                if (_data.length > 0) {

                                	gsc_addresult(__results, __query, 'lukkeKnapp', 'lukkeKnapp', 'lukkeKnapp');

                                    for (i = 0; i < _data.length; i++) {
                                        gsc_addresult(__results, __query, _data[i][0], _data[i][1], i == 0);
                                    }

                                    gsc_addresult(__results, __query, 'visAlle', 'visAlle', 'visAlle');

                                    gsc_show(__results);
                                }
                            }

__gscfetch_onreadystatechange = function()
                                {
                                    if (__gscfetch.readyState == 4) {
                                        switch (__gscfetch.status) {
                                            case 200: if (__gscfetch_xmlhttpsuccess) __gscfetch_xmlhttpsuccess(); break;
                                        }
                                    }
                                }

__gscfetch.onreadystatechange = __gscfetch_onreadystatechange;

__gscfetch.send(null);
                                }
                                catch (e) { }


                                return false;
                            }
