//	----------------------------------	\\
//	Ajax-Implementatie @ Website		\\
//	(c) 2006	Alexander Kamp			\\
//				AgriTrader B.V.			\\
//	Internet: http://www.agritrader.nl	\\
//	----------------------------------	\\
var connAJaX	=	new Array();
var dialogs		=	new Array();

if (!window.XMLHttpRequest)
{
    window.XMLHttpRequest = function()
    {
        var types = [
            'Microsoft.XMLHTTP',
            'MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP'
        ];

        for (var i = 0; i < types.length; i++)
        {
            try
            {
                return new ActiveXObject(types[i]);
            }
            catch(e) {}
        }
    
        return undefined;
    }
}

//	Function _setObjInnerHTML_AJaXReq()
//	Een object vullen met een tekst opgehaald uit een bepaalde request
function _setObjInnerHTML_AJaXReq(p_sObj,p_sRequest)
{
	//	Indien object xmlhttp kan worden gemaakt, ophalen
	var i		=	connAJaX.length;
	connAJaX[i]	=	new XMLHttpRequest();
	
	//	Indien de verbinding bestaat, uitvoeren van het script
	if (connAJaX[i])
	{
		connAJaX[i].open("GET",p_sRequest,true);
		connAJaX[i].onreadystatechange = function()
		{
			//	Indien readyState 4, gelukt
			if (connAJaX[i].readyState==4)
				_setObjInnerHTML(p_sObj,connAJaX[i].responseText);
		}
		connAJaX[i].send(null);
	}
}

//	Function _setObjInnerHTML_onAJaXSuccess()
//	Een object vullen met een tekst opgehaald uit een bepaalde request
function _setObjInnerHTML_onAJaXSuccess(p_sObj,p_sRequest,p_sTxtSuccess)
{
	//	Indien object xmlhttp kan worden gemaakt, ophalen
	var i		=	connAJaX.length;
	connAJaX[i]	=	new XMLHttpRequest();
	
	//	Indien de verbinding bestaat, uitvoeren van het script
	if (connAJaX[i])
	{
		connAJaX[i].open("GET",p_sRequest,true);
		connAJaX[i].onreadystatechange = function()
		{
			//	Indien readyState 4, gelukt
			if (connAJaX[i].readyState==4)
			{
				if (connAJaX[i].responseText=="1")
					_setObjInnerHTML(p_sObj,p_sTxtSuccess);
			}
		}
		connAJaX[i].send(null);
	}
}

//	Function _reqAJaX_string()
//	Een object vullen met een string
function _reqAJaX_string(p_sObj,p_sRequest,p_sMethod)
{
	if (p_sMethod==undefined)
		var p_sMethod	= "GET";
	
	//	Maak een verbinding
	var conn = _getAJaXconn();
	if (p_sMethod=="GET")
		conn.open("GET",p_sRequest,true);
	else
	{
		conn.open("POST",p_sRequest,true);
		conn.setRequestHeader("Method","POST "+p_sRequest+" HTTP/1.1");
		conn.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	}
	conn.onreadystatechange = function()
		{
			//	Indien readyState 4, gelukt
			if (connAJaX[i].readyState==4)
				_getObj(p_sObj).value	= connAJaX[i].responseText;
		}
	conn.send(null);
}

//	Function _getAJaXconn()
//	Aanmaken van een AJaX-verbinding
function _getAJaXconn()
{
	var i		=	connAJaX.length;
	connAJaX[i]	=	new XMLHttpRequest();
	return i;
}

//	Function _reqAJaX_string()
//	Een object vullen met een string
function _reqAJaX_fillObj(p_sRequest,p_sObj,p_sValue,p_bUseValue,p_sMethod)
{
	if (p_sMethod==undefined)		var p_sMethod	= "GET";
	if (p_bUseValue==undefined)		var p_bUseValue	=	true;
	//	Maak een verbinding
	
	var i		=	_getAJaXconn();
	
	//if (p_sMethod=="GET")
	connAJaX[i].open("GET",p_sRequest,true);
	//else
	//	{
	//	conn.open("POST",p_sRequest,true);
	//	conn.setRequestHeader("Method","POST "+p_sRequest+" HTTP/1.1");
	//	conn.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	//}
	connAJaX[i].onreadystatechange = function()
		{
			//	Indien readyState 4, gelukt
			if (connAJaX[i].readyState==4)
			{
				var objDest	=	_getObj(p_sObj);
				var response=	connAJaX[i].responseText;
				_list_add(objDest,response,p_sValue,p_bUseValue);
			}
		}
	connAJaX[i].send(null);
}

//	Function _isObj()
//	Controleren of dit een object is
function _isObj(p_sObj)
{	return (document.getElementById(p_sObj));	}

//	Function _getObj()
//	Een object ophalen uit een pagina
function _getObj(p_sObj)
{
	//	Ophalen van het object 'p_sNaam'
	var obj	=	document.getElementById(p_sObj);
	
	//	Indien object niet gevonden kan worden, foutmelding tonen
	if (obj==null)
		alert("Fout: Element '"+p_sObj+"' kon niet worden geladen.");
	
	//	Teruggeven van het object
	return obj;
}

//	Function _getObjValue()
//	Ophalen van de waarde van een object
function _getObjValue(p_sObj)
{	return _getObj(p_sObj).value;	}

//	Function _focusObj()
//	Een object gaan focussen
function _focusObj(p_sObj)
{	return _getObj(p_sObj).focus();	}

//	Function _list_clear()
//	Een select-lijst leegmaken
function _list_clear(p_rObj)
{	p_rObj.options.length = 0;	}

//	Function _list_add()
//	To evoegen aan de selectie-lijst
function _list_add(p_rObj,p_sOptions,p_iSelected,p_bUseValue)
{
	var selectedFirst	=	false;
	
	if (p_bUseValue==undefined)
		var p_bUseValue = true;
	
	if (p_sOptions=="")
		p_sOptions	=	"-1;-----------------------";
		
	//	Opsplitsen van alle selectie-items
	var options	=	p_sOptions.split("\r\n");
	
	if (!p_bUseValue)
		p_iSelected	=	p_iSelected.toLowerCase();
	
	//	Aan de hand hiervan deze invullen in de selectbox
	var aantal	=	options.length;
	for (i=0;i<aantal;i++)
	{
		//	Splitsen van value + options
		var item				=	options[i].split(";");
		p_rObj.options[i]		=	new Option(item[1]);
		option_text				=	item[1];
		p_rObj.options[i].value	=	option_value	=	item[0];
		
		if (selectedFirst)
			continue;

		//	Indien huidige item is geselecteerd
		if (p_bUseValue)
		{
			if (option_value==p_iSelected)
			{
				p_rObj.options[i].selected	=	true;
				selectedFirst				=	true;
			}
		}
		else
		{
			//	Vergelijken op lowercase-niveau	
			try
			{
				if (option_text.toLowerCase()==p_iSelected)
				{
					selectedFirst				=	true;
					p_rObj.options[i].selected	=	true;
				}
			}
			catch (e) {}
		}
	}
}

//	Function _list_select()
//	Selecteren van de waarde in een selectiebox
function _list_select(p_rObj,p_iSelected,p_bUseValue)
{
	if (p_bUseValue==undefined)
		var p_bUseValue = true;
	
	if (!p_bUseValue)
		p_iSelected	=	p_iSelected.toLowerCase();
		
	//	Ophalen van de opties uit een selectiebox
	var opties	=	p_rObj.options;
	var aantal	=	opties.length;
	
	//	Elk element langsgaan en controleren
	for (i=0;i<aantal;i++)
	{
		if (p_bUseValue)
		{
			if (opties[i].value==p_iSelected)
			{
				p_rObj.options[i].selected	=	true;
				return;
			}
		}
		else
			//	Vergelijken op lowercase-niveau	
			if (opties[i].text.toLowerCase()==p_iSelected)
			{
				p_rObj.options[i].selected	=	true;
				return;
			}	
	}
}

//	Function trim()
//	Alle spaties aan het begin en eind strippen
function trim(input)
{	return input.replace(/^\s*/,'').replace(/\s*$/,'');	}

//	Functie _isEmail()
//	Controleert of de invoer een e-mailadres is
function _isEmail(p_sEmail)
{
	var mail_layout  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return (mail_layout.test(p_sEmail));
}

//	Function _setObjValue()
//	Een waarde instellen in een bepaald object
function _setObjValue(p_sObj,p_sValue)
{	_getObj(p_sObj).value		=	p_sValue;	}

//	Function _setObjInnerHTML()
//	Een innerHTML setten op een object
function _setObjInnerHTML(p_sObj,p_sValue)
{	_getObj(p_sObj).innerHTML	=	p_sValue;	}

//	Function opendlg()
//	Openen van een dialoogbox
function opendlg(p_sDest,p_iWidth,p_iHeight)
{
	//	Aanmaken van een nieuw dialoog-ID
	var dialog		=	dialogs.length;
	dialogs[dialog]	=	"1";
	
	//	Bereken de positie van de dialog-boxes
	if (p_iWidth==undefined)	var p_iWidth	=	500;
	if (p_iHeight==undefined)	var p_iHeight	=	600;
	
	//	Bereken de screen-left en screen-top
	var screen_l	=	(screen.width/2)-(p_iWidth/2);
	var screen_t	=	(screen.height/2)-(p_iHeight/2)-10;
	window.open(p_sDest,"dialog"+dialog,"width="+p_iWidth+",height="+p_iHeight+",left="+screen_l+",top="+screen_t+",toolbar=0,menubar=0,location=0,scrollbars=0,directories=0,status=0,resizable=0");
}

//	Function _isPrijs()
//	Controleren of een prijs goed is opgebouwd
function _isPrijs(p_sObj)
{
	var obj = _getObj(p_sObj);
//	var layout = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
	var layout	=	/^([0-9,\.]{1,})$/;
	return layout.test(obj.value);
}

//	Function _isHigherThan()
//	Controleert of de waarde van een object hoger is dan een bepaald gegeven
function _isHigherThan(p_sObj,p_iValue)
{	return (_getObj(p_sObj).value>p_iValue);	}

//	Function _alertFocus()
//	Een alert geven met een focus er achteraan
function _alertFocus(p_sAlert,p_sObj)
{
	alert(p_sAlert);
	_objFocus(p_sObj);
}