/*
 * function GetXMLHttpRequest()
 * 
 * Skapar och returnerar ett XMLHttpRequestobjekt.
 *
 */
function GetXMLHttpRequest()
{
	
    var objXMLHttp = false;
    
	if(window.XMLHttpRequest)//Mozilla,Safari,Opera,IE7 
	{ 
		objXMLHttp = new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject)//IE
	{ 
		try
		{
		    objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
		}
		catch (e) 
		{ 
		  try 
		  {
		    objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
		  }
		  catch (e)
		  {
		  } 
		}
    }
 	if(!objXMLHttp) { alert("Cannot create an XMLHTTP instance") }

	return objXMLHttp;
}
/*
 Gömmer alla select-fält medans "laddaren" ligger över sidan.
 Tänds igen när laddaren är släckt
 */
function hideDropDowns()
{
	var dropDowns = document.getElementsByTagName("select");
	for (var i=0; i < dropDowns.length; i++){
		dropDowns[i].style.visibility="hidden";
	}
}
function showDropDowns()
{
	var dropDowns = document.getElementsByTagName("select");
	for (var i=0; i < dropDowns.length; i++){
		dropDowns[i].style.visibility="visible";
	}
}

/*
 Visar och gömmer laddare
 */
var loaderTimerId = 0;

function showLoader()
{
	document.getElementById("loader").style.display="block";
	//document.getElementById("loader").onclick = function(){alert("clikc");};
	hideDropDowns();
	
}
function hideLoader()
{
	clearTimeout (loaderTimerId);
	document.getElementById("loader").style.display="none";	
	showDropDowns();
	
}
/*
 * function MakeAJAXCall(url, func, xml)
 * 
 * url: adress till data som ska hämtas
 * func: funktionen som ska ta hand om mottaget data
 * xml: är det responseXML eller responseText som ska behandlas?
 *
 * Skapar ett XMLHttpRequestobjekt med adressen url, skapar en tillståndsfunktion
 * som skickar svaret till funktionen func
 * 
 */
function MakeAJAXCall(url, func, xml)
{
    //alert("MakeAJAXCall(" + url + ", " + func + ", " + xml + ")");
	//document.getElementById("loader").style.display="block";
	loaderTimerId = setTimeout ( "showLoader()", 350 );
	//showLoader()
    var request = GetXMLHttpRequest();
    
    if(request != null)
    {
        
        request.onreadystatechange = function()
        {
			
            if(request.readyState == 4)
            {
				
				hideLoader();
				func(request);
            } else  if(request.readyState == 0)
			{
				hideLoader();
				alert("Misslyckat anrop");
			}
        }

        request.open("GET", url, true);
        request.send(null);
	}
}


