var typed = -1;

function HamtaData_Retur2(url,anrop)
{
           
    var par=anrop.split("&");
    var query = "";
    var ensam = new Array(par.length);
    var retur = '';
        
    for ( var i=0, len=par.length; i<len; ++i )
    {
    	ensam[i] = par[i].split("=");
                
        if (i != len - 1)
        {
        	query += ensam[i][0] + "=" + ensam[i][1] + "&";
        }
        else
        {
        	query += ensam[i][0] + "=" + ensam[i][1];
        }
                
    }
            
    var anrop_url=url+'?'+query;
            
    var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
    req.open("GET", anrop_url, false); //third parameter is set to false here
    req.setRequestHeader("Cache-Control","no-chache");
    req.send(null);
            
    return req.responseText;

}
function AS_HamtaData_Retur(url,anrop)
{
    var par=anrop.split("&");
    var query = "";
    var ensam = new Array(par.length);
    var retur = '';
        
    for ( var i=0, len=par.length; i<len; ++i )
    {
    	ensam[i] = par[i].split("=");
                
        if (i != len - 1)
        {
        	query += ensam[i][0] + "=" + ensam[i][1] + "&";
        }
        else
        {
        	query += ensam[i][0] + "=" + ensam[i][1];
        }
                
    }
            
    var anrop_url=url+'?'+query;
            
    var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
    req.open("GET", anrop_url, false); //third parameter is set to false here
    req.setRequestHeader("Cache-Control","no-chache");
    req.send(null);
            
    return req.responseText;

}

/*
 * 		Hämtar resultat från XML och fyller en UL med LI baserat på XML svaret. 
 * 		XML resultatet hämtas beroende på vad som anges i input fältet
 * 		Argument:
 * 		e			= event, för att lyssna av knapptryckningar
 * 		inputObj	= id på input elementet
 * 		queryAction	= Hur ska värdet i input fältet läggas till queryn
 * 		containerId	= ID på UL som ska fyllas
 * 		url        	= XML fil som ska anropas, skickas till HamtaData_Retur()
 *     	anrop      	= Querystring att skicka med i XML anropet, skickas till HamtaData_Retur()
 *     	strElement	= XML element som ska plockas upp från XML svaret	
 *      charCount	= antal inmatningar som ska trigga anrop
 *      
 */
function AS_list(e,inputObj,queryAction,containerId,url,anrop,strElement,charCount,valueField)
{
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;

    var container = document.getElementById(containerId);

    if (((code >= 48) && (code <= 90)) || (code == 8))
    {
    	if  (inputObj.value.length >= charCount)
    	{
    		
    		if (inputObj.value.length == 1)
    		{
    			inputObj.value = inputObj.value.replace(/^\s+|\s+$/g, '')
    		}
	        var queryAddValue = inputObj.value;
	        var queryAddName = inputObj.name; 
	        var queryToAdd;
	        if (queryAction=='addvaluewithname')
	        {
	            queryToAdd= "&"+ queryAddName + "=" + queryAddValue;
	        }
	        else (queryAction=='addvalue')
	        {
	            queryToAdd = queryAddValue;
	        }
	        anrop = anrop + queryToAdd;
	
	        
	        
	        if (container != null) 
	        {
				            
	            $.get(url+'?'+anrop,function (data){
					var elementCount = data.getElementsByTagName(strElement).length;
					if (elementCount == 0)
					{
						container.style.display='none';
					}
					else if (elementCount > 0)
					{
						container.style.display='';
						container.innerHTML = '';
						for (var i=0;i< elementCount;i++)
						{
							var li = document.createElement("li");
							li.innerHTML = data.getElementsByTagName(strElement)[i].childNodes[0].nodeValue;
							li.id = strElement+i;
							li.referer = inputObj.id;
							li.vfield = valueField;
							li.container = containerId;
							container.appendChild(li);
							addEvent(li, 'click',AS_mselect,true);
							addEvent(li, 'mouseover',AS_mhover,true);
						}
						addEvent(document,'click',function Hide(){ container.style.display='none';})
					}
					
				});
	        }
    	}
    	else if (inputObj.value.length == 0 && container != null)
    	{
    		container.style.display='none';
    	}
    }
}


/* 		
 * 		Simulerar att en HTML element är valt, lyssnar på onkeydown/onkeyup/onkeypress
 * 		Argument:
 * 		e			= event, för att lyssna på tangentbordtryckningar
 * 		containerId	= id på HTML element vars underlement ska "markeras"
 *		referer		= objekt vars tangentbordtryckningar avlyssnas  
 *		next 		= Nästa objekt i ordningen som ska få focus
 */
function AS_kselect(e, containerId, referer, next,valueField)
{
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;

    var container = document.getElementById(containerId);
    var nextObj = document.getElementById(next);
    
    if (code == 13)
    {
    	if (container != null)
    	{
    		container.style.display='none';
    	}
    	/*if (nextObj != null)
    	{
    		nextObj.focus
    		return false;
    	}*/
    	return true;
    }
    else
    {
	    if (referer.value.length > 0)
	    {
		    var ok = false;
	    	if (code == 40)
	        {
	            typed = typed + 1;
	            ok = true;
	        }
	        else if (code == 38)
	        {
	            typed = typed - 1;
	            ok = true;
	        }
	        else
	        {
	            typed = -1;
	        }
	        if ((ok) && ((container != null) && (container.childNodes.length >0)))
		    {
			
	        
	            if (typed <= 0)
	            {
	                typed = 0;
	            }
	            else if (typed >= container.childNodes.length-1)
	            {
	                typed = container.childNodes.length-1;
	            }
	            
	            
	            
	            if (code == 38 && typed >= 0)
	            {
	                container.childNodes[typed].id = "selected";
	                container.childNodes[typed+1].id = "none";   
	            }
	            else if (code == 40 && ((typed) <  container.childNodes.length))
	            {
	                container.childNodes[typed].id = "selected";
	                if (typed > 0)
	                {
	                	container.childNodes[typed-1].id = "none";
	                }
	            }
	            var selValue = container.childNodes[typed].innerHTML.replace(/^\s+|\s+$/g, '') ;
        		var valueObj = document.getElementById(valueField);
        		if (valueObj != null)
        		{
        			valueObj.value = "J";
        		}
        		selValue = selValue.replace(/^\s+|\s+$/g, '');;
				selValue = selValue.replace('&amp;','&');
	            
	            referer.value = selValue;
	            return true;
	    	}
	        
	    }
    }
}

/*
 * Fyller textboxen med texten som klickas på
 */
function AS_mselect(evt){
	var e_out;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "id";

	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var li = document.getElementById(e_out);
	
	prop_var = "referer";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var ref = document.getElementById(e_out);
	
	prop_var = "vfield";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var valueObj = document.getElementById(e_out);
	
	var selValue = li.innerHTML; 
	var t = selValue.split(',');
	if (valueObj != null)
	{
		valueObj.value="J";
	}
	selValue = selValue.replace(/^\s+|\s+$/g, '');
	selValue = selValue.replace('&amp;','&');
    ref.value = selValue;
	ref.focus();
	if (document.getElementById('SokformAvanc') != null)
	{
		document.getElementById('SokformAvanc').submit();
	}
	else if (document.getElementById('Sokform') != null)
	{
		document.getElementById('Sokform').submit();
	}
	
	prop_var = "container";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var container = document.getElementById(e_out);
	if (container!=null)
	{
		container.style.display='none';
	}
	
}

AS_mhover = function(evt) {
	var e_out;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "id";

	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	
	var li = document.getElementById(e_out);
	if (document.all&&document.getElementById) 
	{
		li = document.getElementById(e_out);
		li.className =" mhover";
		li.onmouseout=function() 
			{
				li.className=li.className.replace(" mhover", "");
			}
	 	}
	 
}
