var typed = -1;



function HamtaData_Retur(url,anrop)
{
            
	var basehref = getBaseHref();
            
    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=basehref+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 getBaseHref()
{
	var loc = document.location.toString();
    var httpRequestUrl;
    var splitLoc = loc.lastIndexOf("/");
    var locLength = (loc.length)
            
    if (locLength > splitLoc)
    {
    	var endCount = (locLength - splitLoc);
        if (endCount == 1)
        {
        	alert(loc.substring(splitLoc));
            if (loc.substring(splitLoc) == "/")
            {
            	httpRequestUrl = loc;
            }
            else
            {
            	httpRequestUrl = loc + "/";
            }
        }
        else
        {
        	httpRequestUrl = loc.substring(0,(splitLoc+1));
        }
                
	}
            
    return httpRequestUrl;
}

    
function PopulateAndCreateSelect(selectObj,queryAction,containerId,selectId,url,anrop,strElement,strAttrib)
{
	var selectIndex = selectObj.selectedIndex; 
    var queryAddValue = selectObj.options[selectIndex].value;
    var queryAddName = selectObj.name; 
        
    var queryToAdd;
    if (queryAction=='addvaluewithname')
    {
    	queryToAdd= "&"+ queryAddName + "=" + queryAddValue;
    }
    else (queryAction=='addvalue')
    {
    	queryToAdd = queryAddValue;
    }
	anrop = anrop + queryToAdd;
        
    var selectBox = document.createElement("select");
    selectBox.name = selectId;
    selectBox.id = selectId;
            
    //har vi skapat select boxen ok?
    if (selectBox != null)
    {
    	var container = document.getElementById(containerId);
        var selectExists = document.getElementById(selectId);
                    
            //Lägg till i container elementet
        if (container != null) 
        {
        	if (selectExists == null)
            {
            	var xmlResponse = HamtaData_Retur(url,anrop) 
                    // Rensa, annars byggs den på
                selectBox.innerHTML = "";
                    
                try //Internet Explorer
                {
                	xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async=false;
                    xmlDoc.loadXML(xmlResponse);
                }
                catch(e)
                {
                	try //Firefox, Mozilla, Opera, etc.
                    {
                    	parser=new DOMParser();
                        xmlDoc=parser.parseFromString(xmlResponse,"text/xml");
					}
                    catch(e)
                    {
                    	alert(e.message);
                        return;
					}
                }
                
                var elementCount = xmlDoc.getElementsByTagName(strElement).length;
                if (elementCount > 0)
                {
					for (var i=0;i< elementCount;i++)
                    {
                    	var opt = document.createElement("option");
                        opt.value = xmlDoc.getElementsByTagName(strElement)[i].attributes.getNamedItem(strAttrib).value;
                        opt.text = xmlDoc.getElementsByTagName(strElement)[i].childNodes[0].nodeValue;
                        selectBox.options.add(opt);
                    }
                    container.appendChild(selectBox);
				}
           	}
           	else
           	{
           		PopulateSelect(selectId,url,anrop,strElement,strAttrib)                        
			}
                
		}

/*            if (selectBox.addEventListener)
                        {
                            selectBox.addEventListener('change', PopulateAndCreateSelect(selectBox,'addvalue','cont','newerstest','note.xml','funk=test&artgrp=','to','id'));
                        }
                        else if (selectBox.attachEvent) {
                        selectBoxattachEvent('onchange', function(event) {alert('The text has changed');});
                        
                        }*/
	}
}
    
    
/*
    Fyller en selectbox, via en xmlfil som hämtas via HamtaData_Retur()
    Argument:
    selectObj  		= Anropande select objekt.
    queryAction		= addvaluewithname eller addvalue
     					addvaluewithname : lägger till i quertsträngen, namnet på anropande select box + värdet 
     					addvalue : lägger enbar till värdet på selected value till queryn
    elementId		= ID på selectboxen som skall fyllas
    url        		= XML fil som ska anropas, skickas till HamtaData_Retur()
    anrop      		= Querystring att skicka med i XML anropet, skickas till HamtaData_Retur()
    strElement 		= Element vars innehållande värde som texten i selectboxens <option> tagg skall fyllas med
    strAttrib  		= Attribut till ovan element, kan användas för att ge <option> taggen ett value-värde
                	Om strAttrib är tom, ges value värdet av strElement
	                Ex:
	                    <option value="strAttrib">strElement</option>
	                Eller om strAttrib är tom
	                    <option value="strElement">strElement</option>
	strEmptyValue	= om inga värden att fylla selectboxen med returneras behöver  vi tömma den från föregående och fylla på med ev. standardvärde + text.
						strEmptyValue anger vad som ska vara stdvärde
	strEmptyText  	= standard text vid tom selectbox, se ovan.
    displayNext		= id på nästa select som skall visas/döljas
*/
function PopulateSelect(selectObj,queryAction,selectId,url,anrop,strElement,strAttrib,strEmptyValue,strEmptyText, displayNext)
{
   	var selectIndex = selectObj.selectedIndex; 
    var queryAddValue = selectObj.options[selectIndex].value;
    var queryAddName = selectObj.name; 
        
    var queryToAdd;
    if (queryAction=='addvaluewithname')
    {
    	queryToAdd= "&"+ queryAddName + "=" + queryAddValue;
    }
    else (queryAction=='addvalue')
    {
    	queryToAdd = queryAddValue;
    }
	anrop = anrop + queryToAdd;
        var xmlResponse = HamtaData_Retur(url,anrop)
        try //Internet Explorer
        {
            xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async=false;
            xmlDoc.loadXML(xmlResponse);
        }
        catch(e)
        {
            try //Firefox, Mozilla, Opera, etc.
            {
                parser=new DOMParser();
                xmlDoc=parser.parseFromString(xmlResponse,"text/xml");
            }
            catch(e)
            {
                alert(e.message);
                return;
            }
        }
        var elementCount = xmlDoc.getElementsByTagName(strElement).length;
        var selectBox = document.getElementById(selectId);
        if (selectBox != null)
       	{
       		if ((displayNext != '') && (document.getElementById(displayNext) != null))
       		{
       			if ((selectBox.value == strEmptyValue) && (document.getElementById(displayNext).style.display==''))
       			{
       				document.getElementById(displayNext).style.display='none';
       			}
       			else
       			{
       				document.getElementById(displayNext).style.display='';
       			}
       		}
       		
       			
       		selectBox.innerHTML = "";
            var opt = document.createElement("option");
            opt.value=strEmptyValue;
            opt.text = strEmptyText;
            selectBox.options.add(opt);
        	
        	if (elementCount > 0)
        	{
            
            	
           
                for (var i=0;i< elementCount;i++)
                {
                    var opt = document.createElement("option");
                    if (strElement != '')
                    {
                        opt.value = xmlDoc.getElementsByTagName(strElement)[i].attributes.getNamedItem(strAttrib).value;
                    }
                    else
                    {
                        opt.value = xmlDoc.getElementsByTagName(strElement)[i].childNodes[0].nodeValue;    
                    }
                    opt.text = xmlDoc.getElementsByTagName(strElement)[i].childNodes[0].nodeValue;
                    selectBox.options.add(opt);
                }
            }
        }
}



function addEvent( obj, type, fn ) 
{
    if ( obj.attachEvent ) 
    {
      obj['e'+type+fn] = fn;
      obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
      obj.attachEvent( 'on'+type, obj[type+fn] );
    }
    else
      obj.addEventListener( type, fn, false );
}

function removeEvent( obj, type, fn ) 
{
    if ( obj.detachEvent ) 
    {
      obj.detachEvent( 'on'+type, obj[type+fn] );
      obj[type+fn] = null;
    } 
    else
      obj.removeEventListener( type, fn, false );
  }

  function ShowSelect(e,strId)
  {
	var lists = 'select-varum,select-agrp,select-sub-agrp';
	var code;
    if (window.event) code = window.event.keyCode;
    else if (e) code = e.which;
  	var selectList = document.getElementById(strId);
	if (code==0 || code == 1 || code == 13 || code== 40 || code == 38)
	{
		if ((selectList.style.display == 'none') && (code==0 || code == 1 || code == 13 || code== 40))
		{
			selectList.style.display = '';
			
			var arrLists = lists.split(',');
			  for (i=0;i< arrLists.length;i++)
			  {
				  var obj = document.getElementById(arrLists[i]);
				  if (obj != null)
				  {
					  if (strId != arrLists[i])
					  {
						  obj.style.display = 'none';
					  }
				  }
			  }
		}
		else if (code==0 || code == 1 || code == 13 || code== 38)
		{
			selectList.style.display = 'none';
		}
	}
  }
  
  function mhover_sec(strId)
  {
	if (document.all&&document.getElementById) 
	{
		var li = document.getElementById(strId);
		li.className =" mhover";
		li.onmouseout=function() 
			{
				li.className=li.className.replace(" mhover", "");
			}
	 }
}
  function mselect_sec(strId,valueId,refId,containerId, nextId, nextToPopulate, url, anrop, defaultText)
  {
	  var valueObj = document.getElementById(valueId);
	  var li = document.getElementById(strId);
	  var container = document.getElementById(containerId);
	  var reff = document.getElementById(refId);
	  reff.value = li.innerHTML;
	  currentValue = li.id.split('_');
	  
	  valueObj.value = currentValue[1];
	  container.style.display='none';
	 
	  if (nextId != '')
	  {
		var nextObj =  document.getElementById(nextId);
		if (nextObj != null)
		{
			if ((valueObj.value == 0) || (valueObj.value == '') || (valueObj.value == null))
			{
				nextObj.style.display='none';
			}
			else if (valueObj.value > 0)
			{
				nextObj.style.display='';
				
				PopulateList(nextToPopulate,valueId,refId,containerId,valueObj.value, url, anrop,defaultText);
				
			}
		}
	  }
  }
  
  function  PopulateList(objId,valueId,refId,containerId, id, url, anrop,defaultText)
  {
	  var container = document.getElementById(objId);
	  
	  if (container != null)
	  {
	        var xmlResponse = HamtaData_Retur(url,anrop+id);
	        try //Internet Explorer
	        {
	            xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	            xmlDoc.async=false;
	            xmlDoc.loadXML(xmlResponse);
	        }
	        catch(e)
	        {
	            try //Firefox, Mozilla, Opera, etc.
	            {
	                parser=new DOMParser();
	                xmlDoc=parser.parseFromString(xmlResponse,"text/xml");
	            }
	            catch(e)
	            {
	                alert(e.message);
	                return;
	            }
	        }
	            
	        var elementCount = xmlDoc.getElementsByTagName("Namn").length;
	        if (elementCount == 0)
	        {
	        	//container.style.display='none';
	        }
	        else if (elementCount > 0)
	        {
	        	//container.style.display='';
	            container.innerHTML = '';
	            var startLi = document.createElement("li");
	            startLi.id = 'A_0';
	            startLi.innerHTML = defaultText;
	            startLi.referer = 'SubAgrp-select';
                startLi.prevValue = document.getElementById(valueId).value;
                startLi.vfield = valueId;
                startLi.container = objId;
                container.appendChild(startLi);
                addEvent(startLi, 'click',DYN_mselect_sec,true);
                addEvent(startLi, 'mouseover',DYN_mhover_sec,true);

	            for (var i=0;i< elementCount;i++)
	            {
	                var li = document.createElement("li");
	                li.innerHTML = xmlDoc.getElementsByTagName("Namn")[i].childNodes[0].nodeValue;
	                var x = xmlDoc.getElementsByTagName("Namn")[i].attributes.getNamedItem("id").value;
	                li.id = 'AGRP_'+x;
	                li.referer = 'SubAgrp-select';
	                li.prevValue = document.getElementById(valueId).value;
	                li.vfield = valueId;
	                li.container = objId;
	                container.appendChild(li);
	                addEvent(li, 'click',DYN_mselect_sec,true);
	                addEvent(li, 'mouseover',DYN_mhover_sec,true);

	            }
	            
	           // addEvent(document,'click',function Hide(){ container.style.display='none';})
	        }
	    
		  
	  }
	  
	  
  }
  function SetStyle(strId, strClass)
  {
	  var lbls = "lblTerm,lblProdBeskr,lblVarum,lblAgrp,lblSubAgrp,lblPrisFran,lblPrisTill";
	  var arrLabels = lbls.split(',');
	  for (i=0;i< arrLabels.length;i++)
	  {
		  var obj = document.getElementById(arrLabels[i]);
		  if (strId == arrLabels[i])
		  {
			obj.className = "lbold";
		  }
		  else
		  {
			  obj.className=obj.className.replace("lbold", "lunbold");
		  }
	  }
	  
  }
  
  function DYN_mselect_sec(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 = "container";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var container = 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);
			
	prop_var = "referer";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var reff = document.getElementById(e_out);
  
	reff.value = li.innerHTML;
	currentValue = li.id.split('_');
	  
	prop_var = "prevValue";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var prevValue = e_out;
  
	if (currentValue[1] == '' || currentValue[1] == null || currentValue[1] == '0')
	{
		valueObj.value = prevValue;
	}
	else
	{
		valueObj.value = currentValue[1];
	}
	container.style.display='none';
	 
/*	  if (nextId != '')
	  {
		var nextObj =  document.getElementById(nextId);
		if (nextObj != null)
		{
			if ((valueObj.value == 0) || (valueObj.value == '') || (valueObj.value == null))
			{
				nextObj.style.display='none';
			}
			else if (valueObj.value > 0)
			{
				nextObj.style.display='';
				
				PopulateList(nextToPopulate,valueObj.value, url, anrop);
				
			}
		}
	  }*/
  }
  
  DYN_mhover_sec = 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", "");
				}
		 	}
		 
	}
  
  function checkAV()
  {
	var fields = "term,Varum,Agrp,PrisFran,PrisTill"
		
	var varum = document.getElementById('Varum');
	var agrp =  document.getElementById('Agrp');
	var svarum = document.getElementById('Varum-select');
	var sagrp  = document.getElementById('Agrp-select');
	
	if (svarum.value == 'Alla varumärken')
	{
		varum.value='0';
		if (sagrp.value == 'Alla artikelgrupper')
		{
			agrp.value='0';
		}
	}

	var arrFields = fields.split(',');
	for (i=0;i< arrFields.length;i++)
	{
		var obj = document.getElementById(arrFields[i]);
		if (obj.value != '' && obj.value != '0')
		{
			return true;
		}
	}
	
	return false;	
  }
  
  function HoverSelect(strId)
  {
	  var obj = document.getElementById(strId);
	  if (strId=='frmButton')
	  {
		  obj.className =" frmButtonHover";
		  obj.onmouseout=function() 
		  {
			  obj.className=obj.className.replace("frmButtonHover", "frmButton");
		  }
	  }
	  else
	  {
		  obj.className =" select-input-hover";
		  obj.onmouseout=function() 
		  {
			  obj.className=obj.className.replace("select-input-hover", "select-input");
		  }
	  }
  }
  
function SokSort()
{
	var sortindex = document.getElementById('sortitout').selectedIndex;
	var sortterm = document.getElementById('sortitout')[sortindex].value;
	var frm = document.getElementById('frmSort');
	var oldAction = frm.action;
	var newAction = oldAction;
	var arrSort = sortterm.split(',');
	
	if (arrSort[0]!=null && arrSort[0] != 'pop')
	{
		newAction += '&sortera=' + arrSort[0]; 
	}
	if (arrSort[1]!=null && arrSort[0] != 'pop')
	{
		newAction += '&orderby=' + arrSort[1]; 
	}
	frm.action = newAction;
	document.location.href = frm.action;
	//frm.submit();
	

}
