var gsc_basicmatch = /[a-z0-9]/i;
var flag=true;
var flag1=true;
var start ;
var j=0;
var txt;
function gsc_getquery(elt, q)
{
	
    q = ltrim(q);
    start = q;
    q = q.replace('\s+', ' ');
	    if (q.length == 0 ||!gsc_basicmatch.test(q)) {
        gsc_emptyresults(elt);
        return '';
    }
//elt.currentQuery == q ||
   if (elt.currentQuery && (elt.tempQuery == q))
	
     return '';

    elt.currentQuery = q;
    return q;
}

function gsc_hide(elt)
{
	
    if (elt) elt.style.display = 'none';
}

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, len)
{
	//alert("i m here");
	//alert(len);//if(flag)
	//{
	//alert("I m in if");
	//return ;
	//}
	//else
	//{
		//alert("i m in else");
		txt = qElt;
		
 if (!elt) return;
    if (sel) elt.selectedIndex = elt.numResults;
	idx = elt.numResults;
	qt = document.getElementById('fq');
	
	 
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;
	elt.results[elt.numResults++] = q;
	 //qElt = document.getElementById('fq');
	 
	 if(flag)
	 {
		var selectionStart;
	 	var explore = navigator.appName;
	 
	 	selectionStart = start.length ;
	
		if(explore=='Netscape')
		{
		
   			//qElt.value = elt.results[0];
   			// commented by Johny
			// the above is for slecting the first index of result array
   			qElt.setSelectionRange(selectionStart, qElt.value.length); 
		}
		if(explore=='Microsoft Internet Explorer')
		{
			var range = qElt.createTextRange();
			//qElt.value = elt.results[0]; 
			// commented by Johny
			// the above is for slecting the first index of result array
	
			range.moveStart('character', selectionStart);
    			range.select();
		}
		qElt.focus();
	 }
	 else
	 {
		
	  j = j + 1;
	  
	  if(j==len)
	  {
		 flag = true;
		 j = 0;
	  }
		}
	}


function gsc_addresult2(elt, qElt, q, c, sel, len)
{
	//alert(len);//if(flag)
	//{
	//alert("I m in if");
	//return ;
	//}
	//else
	//{
		//alert("i m in else");
		txt = qElt;
 if (!elt) return;
    if (sel) elt.selectedIndex = elt.numResults;
	idx = elt.numResults;
	qt = document.getElementById('fq');
	
	 
var _res = '';
    _res += '<div class="' + (sel ? 'srs' : 'sr') + '"'
         +  ' onmouseover="gsc_mouseover(\'' + elt.id + '\', \'' + qElt.id + '\', ' + idx + ')"'
         +  ' onmouseout="gsc_mouseout(\'' + elt.id + '\', ' + idx + ')"'
         +  ' onclick="gsc_mouseclick2(\'' + 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;
	elt.results[elt.numResults++] = q;
	 //qElt = document.getElementById('fq');
	 
	 if(flag)
	 {
		qElt.value =elt.results[0];
	 }
	 else
	 {
		
	  j = j + 1;
	  
	  if(j==len)
	  {
		 flag = true;
		 j = 0;
	  }
		}
	}
function gsc_mouseover(id, qId, idx)
{
    elt = document.getElementById(id);
	elt.selectedIndex = idx;
    qElt = document.getElementById(qId);
    qElt.focus();
    gsc_highlightsel(elt);
	
}


function gsc_mouseout(id, idx)
{
    elt = document.getElementById(id);
	elt.selectedIndex = -1;
    gsc_highlightsel(elt);
	
}

function gsc_alert()
{
	
	qt = txt;
	qt.value =qt.value.substr(0,qt.value.length);
	if(qt.value.length==0)
		{
			flag = true;
		}
		else
		{
			flag = false;
		}
		
}

function gsc_test(id, qId, idx)
{
	elt = document.getElementById(id);
    qElt = document.getElementById(qId);
	
	if(flag)
	{
	    qElt.value ="" ;
		qElt.value = elt.results[idx];
	}
	else
	{
	}
	
}

function gsc_mouseclick(id, qId, idx)
{
    elt = document.getElementById(id);
	qElt = document.getElementById(qId);
    qElt.value = elt.results[idx];
    qElt.form.submit();
}

function gsc_mouseclick2(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);
}

function gsc_highlightsel(elt, qElt)
{
	
   divs = elt.getElementsByTagName('div');
	//txt = elt.getElementsById('fq');
	//alert(txt.value);// = divs[0];
	
	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;
				    case 8 :
				        gsc_alert(true);
                                    default:
                                        __gsctimer.start();
                                }
                                return true;
                            }
__results.onload = function() { gsc_emptyresults(this); }

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

__gscfetch.open('get', '/guitar/songs.php/getsuggestions' + '?' + 'q=' + encodeURIComponent(_q));

__gscfetch_xmlhttpsuccess = function()
                            {
                                _data = ajaxac_receivejsarray(__gscfetch.responseText);
                                gsc_emptyresults(__results);
                                if (_data.length > 0) {
                                    for (i = 0; i < _data.length; i++) {
                                        gsc_addresult(__results, __query, _data[i][0], _data[i][1], i == 0,_data.length);
                                    }
                                    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;
                            }
__query2.onkeydown = function(e)
                            {
                                key = ajaxac_getkeycode(e);
                                switch (key) {
                                    case 27: // escape
                                        gsc_hide(__results2);
                                        return false;
                                        break;
                                    case 38: // up arrow
                                        gsc_handleup(__results2, __query2);
                                        return false;
                                        break;
                                    case 40: // down arrow
                                        gsc_handledown(__results2, __query2);
                                        return false;
                                        break;
					case 8 :
					    gsc_alert(true);
                                    default:
                                        __gsctimer2.start();
                                }
                                return true;
                            }
__results2.onload = function() { gsc_emptyresults(this); }

__results2.onload();
__gsctimer2 = new ajaxac_countdowntimer('__gsctimer2.ontimerexpire()', 0);
__gsctimer2.ontimerexpire = function()
                            {
                                _q = gsc_getquery(__results2, __query2.value);
                                if (_q.length == 0)
                                    return false;
                                try {
                                    __gscfetch = ajaxac_createXMLHttp();

__gscfetch.open('get', '/guitar/songs.php/getsuggestions2' + '?' + 'q=' + encodeURIComponent(_q));

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

__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;
                            }