function testDate(myDateField, sToday, sDate) {
var dToday, dGiven, sDateFormatted, sDateGiven, nDiff;
	if (myDateField.value == '')
	{
		alert('Ønsket leveringsdato må angis. Benytt formatet: DD.MM.ÅÅÅÅ');
		myDateField.focus();
		return false;
	}
	else
	{
		try
		{
			dToday = new Date(sToday);
			sDateGiven = new String(sDate);
			sDateFormatted = sDateGiven.substring(6,10) + '/' + sDateGiven.substring(3,5) + '/' + sDateGiven.substring(0,2);
			dGiven = new Date(sDateFormatted);
			nDiff = Math.round((dGiven - dToday)/864e5);
			if (nDiff < 0)
			{
				alert('Ønsket leveringsdato kan ikke være bakover i tid. Benytt formatet DD.MM.ÅÅÅÅ');
				return false;
			}
			else
			{
//				document.all.bestill.style.display = 'none';
//				document.all.vent.style.display = '';
				return true;
			}
		}
		catch(e)
		{
			alert('Feil datoformat. Benytt formatet: DD.MM.ÅÅÅÅ');
			return false;
		}
	}
}

function getHeight() {
//http://www.quirksmode.org/viewport/compatibility.html
	var x,y;
	if (self.innerHeight) // all except Explorer
	{
	x = self.innerWidth;
	y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	// Explorer 6 Strict Mode
	{
	x = document.documentElement.clientWidth;
	y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
	x = document.body.clientWidth;
	y = document.body.clientHeight;
	}

	return y;
}

function setDivPageHeight(nSubtract) {
	var elem = document.getElementById("div_pagesize");
	elem.style.height = getHeight() - nSubtract;
}

//function setElementClass(myElement, sClass) {
//	alert('Element: ' + myElement);
//	myElement.style.class = sClass;
//}

function blinkLayer(layer, c1, c2, count) {
	document.getElementById(layer).style.backgroundColor = c1;
	setTimeout("document.getElementById('" + layer + "').style.backgroundColor = '" + c2 + "';", 300);
	if(count > 1) {
		setTimeout("blinkLayer('" + layer + "', '" + c1 + "', '" + c2 + "', " + (count - 1) + ");", 500);
	}
}

function doToggleCheckboxes(thisform)
{
	var e = thisform.form.elements;
	for (var i = 0; i < e.length; i++)
		if(e[i].type == 'checkbox' && e[i].name.substr(0,6) != 'menhet')
		{
			e[i].checked = thisform.checked;
		}
}

function hide(id)
{
		var _elem = document.getElementById(id);
		if(_elem)
		{
			_elem.style.display = 'none';
		}
}

function show(id)
{
		var _elem = document.getElementById(id);
		if(_elem)
		{
			_elem.style.display = '';
		}
}

// Start ordreinfo-code
function getFakturaInfo(strFaktura) {
	var strUrl = '/src/info_faktura.asp?fakturanr=' + strFaktura
	if (eval("document.all.faktura" + strFaktura + ".style.display") == 'block') {
		eval("document.all.faktura" + strFaktura + ".style.display = 'none'");
	} else {
		eval("document.all.faktura" + strFaktura + ".style.display = 'block'");
		if(eval("document.all.faktura" + strFaktura + ".innerHTML") == 'nocache') {
			eval("document.all.faktura" + strFaktura + ".innerHTML = 'Henter fakturainfo...';");
			loadXMLDoc(strUrl);
		}
	}
}


function showFakturaInfo(strInfo, strFaktura) {
	eval("document.all.faktura" + strFaktura + ".innerHTML = strInfo;");
}
// End faktura-code


// Start ordreinfo-code
function getOrdreInfo(strOrdre) {
	var strUrl = '/src/info_ordre.asp?ordrenr=' + strOrdre
	if (eval("document.all.ordre" + strOrdre + ".style.display") == 'block') {
		eval("document.all.ordre" + strOrdre + ".style.display = 'none'");
	} else {
		eval("document.all.ordre" + strOrdre + ".style.display = 'block'");
		if(eval("document.all.ordre" + strOrdre + ".innerHTML") == 'nocache') {
			eval("document.all.ordre" + strOrdre + ".innerHTML = 'Henter ordreinfo...';");
			loadXMLDoc(strUrl);
		}
	}
}

function showOrdreInfo(strInfo, strOrdre) {
	eval("document.all.ordre" + strOrdre + ".innerHTML = strInfo;");
}
// End ordreinfo-code

// Start vareinfo-code
function getVareInfo(strVarenummer) {
	var strUrl = '/src/info_vare.asp?varenr=' + strVarenummer
	loadXMLDoc(strUrl);
}

function showVareInfo(strInfo) {
	document.all.vareinfo.style.display = 'block';
	document.all.vareinfo.innerHTML = strInfo;

	var objPageDiv = document.getElementById('div_pagesize');
	if (mouseY > 52)
	{
		document.all.vareinfo.style.top = mouseY - 50 + objPageDiv.scrollTop;
	}
	else
	{
		document.all.vareinfo.style.top = mouseY - 20 + objPageDiv.scrollTop;
	}
	
	if (mouseX > 262)
	{
		document.all.vareinfo.style.left = mouseX - 260 + objPageDiv.scrollLeft;
	}
	else
	{
		document.all.vareinfo.style.left = mouseX + 20 + objPageDiv.scrollLeft;
	}
}

function hideVareInfo() {
	document.all.vareinfo.style.display = 'none';
}
// Stop vareinfo-code

// Start favorittliste-code
function oppdaterFavorittLister(strHandling, strVarenummer) {
	var strUrl = '/src/favoritter_liste.asp?a=' + strHandling + '&vn=' + strVarenummer;
//	alert('strUrl: ' + strUrl);
	loadXMLDoc(strUrl);
}

function oppdaterFavorittListeInfo(nListeNr, strListeNavn) {
	var strUrl = '/src/favoritter_oppdaterinfo.asp?fnr=' + nListeNr + '&fnavn=' + strListeNavn;
//	alert('strUrl: ' + strUrl);
	loadXMLDoc(strUrl);
}

function showFavorittlisteInfo(strInfo) {
	document.all.favorittlisteinfo.style.display = 'block';
	document.all.favorittlisteinfo.innerHTML = strInfo;
	
	var objPageDiv = document.getElementById('div_pagesize');
	if (mouseY > 52)
	{
		document.all.favorittlisteinfo.style.top = mouseY - 50 + objPageDiv.scrollTop;
	}
	else
	{
		document.all.favorittlisteinfo.style.top = mouseY - 20 + objPageDiv.scrollTop;
	}

	if (mouseX > 262)
	{
		document.all.favorittlisteinfo.style.left = mouseX - 260 + objPageDiv.scrollLeft;
	}
	else
	{
		document.all.favorittlisteinfo.style.left = mouseX + 20 + objPageDiv.scrollLeft;
	}
}

function hideFavorittlisteInfo() {
	document.all.favorittlisteinfo.style.display = 'none';
}

function oppdaterFavorittListeStatus(strVarenummer, nFav, strStatus) {
	var strUrl = '/src/favoritter_oppdaterstatus.asp?varenr=' + strVarenummer + '&nfav=' + nFav + '&status=' + strStatus;
//	alert('strUrl: ' + strUrl);
	loadXMLDoc(strUrl);
}
// Stop favorittlist-code


// Start ajax-code
var req;
function loadXMLDoc(url) {
//	alert('URL: ' + url);
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange() {
    if (req.readyState == 4) {
        if (req.status == 200) {
		response  = req.responseText;
		eval(response);
        } else {
		alert("Response: " + req.responseText);
		alert("Kunne ikke finne data:\n" + req.status + ' ' + req.statusText);
        }
    }
}
// Stop ajax-code

var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;


document.onmousemove = trackMouse;
var mouseX, mouseY;
function trackMouse(evt) {
	mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.documentElement.scrollLeft;
	mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.documentElement.scrollTop;
}

function visMeldingsLinje(nOrdrelinjeID) {
	var linje = document.getElementById('meldingslinje_' + nOrdrelinjeID);
	linje.style.display = 'block';
}

function lagreMeldingslinje(nOrdrelinjeID) {
	var oTekst = document.getElementById('meldingstekst_' + nOrdrelinjeID);
	var sTekst = oTekst.value;

	location.href = 'handlekurv.asp?action=MELDINGLINJE&ol_id=' + nOrdrelinjeID + "&tekst=" + sTekst;
}

function openWindow(url, w, h, rs, sb) {
var windowprops = "width=" + w + ",height=" + h + ",resizable=" + rs + ",scrollbars=" + sb;
var popup = window.open(url,'remote',windowprops);
}

function safeBool(b, def)
{
	return (b == undefined)? def : b;
}

function objStruktur(pStrukturId, pNiva, pRadio, pId, pRowId, pParent, pTeller, pFormId)
{
	this.StrukturId = pStrukturId;
	this.RowId = pRowId
	this.Niva = (pNiva == null) ? 0 : pNiva;
	this.radio = (pRadio == null) ? false : pRadio;
	this.medlemmer = Array();
	this.parent = pParent;
	this.teller = pTeller;
	this.formId = pFormId;
	this.id = pId;
	this.mini = false;
	this.nyttMedlem = _nyttMedlem;
	this.hentMedlem = _hentMedlem;
	this.tellElementer = _tellElementer;
	this.disableChildren = _disableChildren;
	this.toggleDisabled = _toggleDisabled;
	this.clickAllRadiobuttons = _clickAllRadiobuttons;
	this.collapseAllRows = _collapseAllRows;
	this.expandAllRows = _expandAllRows;
	this.expandParentRows = _expandParentRows;

	function _nyttMedlem(pStrukturId, pNiva, pRadio, pId, pRowId, pTeller, pFormId)
	{
		this.medlemmer[this.medlemmer.length] = new objStruktur(pStrukturId, pNiva, pRadio, pId, pRowId, this, pTeller, pFormId);
	}

	function _hentMedlem(pStrukturId, pNiva)
	{
		if(this.StrukturId == pStrukturId && this.Niva == pNiva)
			return this;

		for(var i = 0;i < this.medlemmer.length;i++)
		{
			if(this.medlemmer[i].StrukturId == pStrukturId && this.medlemmer[i].Niva == pNiva)
			{

				return this.medlemmer[i];
			} else {
				var retTmp = this.medlemmer[i].hentMedlem(pStrukturId, pNiva);
				if (retTmp != null)
				{
					return retTmp;
				}
			}
		}
		return null;
	}
	
	function _tellElementer()
	{
		rv = 0;
		
		if (this.teller > 0)
		{
			var thisElem = document.getElementById(this.formId);
			
			if(thisElem)
			{
				if (thisElem.type == 'radio' && thisElem.checked)
				{
					rv = this.teller;
				}
				else if (thisElem.type == 'select-one' && thisElem.value != 'selected')
				{
					rv = parseInt(thisElem.value)*this.teller;
				}
			}
		}
		
		for(var i = 0; i < this.medlemmer.length;i++)
		{
			var myElem = this.medlemmer[i];
			rv += myElem.tellElementer();
		}
		
		return rv;
	}

	function _clickAllRadiobuttons()
	{
		for(var i = 0; i < this.medlemmer.length;i++)
		{
			var myElem = this.medlemmer[i];
			if(myElem.id != undefined) {
				var _elem = document.getElementById(myElem.id);
				if(_elem && _elem.type == 'radio')
				{
					var f = document.forms[0];
					var e = f.elements[_elem.name];
					if(e.length)
					{
						for(var b = 0;b < e.length;b++)
						{
							if(e[b].checked == true && e[b].value == myElem.StrukturId)
							{
								this.toggleDisabled(myElem.StrukturId, myElem.Niva, false);
							}
						}

					}
					else if(_elem && _elem.type == 'radio' && _elem.checked == true)
					{
						this.toggleDisabled(myElem.StrukturId, myElem.Niva, false);
					}
				}
			}
			myElem.clickAllRadiobuttons();
		}
	}


	function _disableChildren()
	{
		for(var i = 0; i < this.medlemmer.length;i++)
		{
			if(this.Niva >= 0)
			{
				var _elem = document.getElementById(this.medlemmer[i].id);
				if(_elem)
					if(this.radio == true)
					{
						toggleElement(_elem, true, true);
					}
			}
			this.medlemmer[i].disableChildren();
		}
	}

	function _toggleDisabled(pStrukturId, pNiva, pRemoveChecked)
	{
		var _medlem = this.hentMedlem(pStrukturId, pNiva);

		for(var i = 0; i < _medlem.medlemmer.length;i++)
		{
			var _elem = document.getElementById(_medlem.medlemmer[i].id);
			if(_elem)
				toggleElement(_elem, false, pRemoveChecked);
		}
		var _parent = _medlem.parent;

		for(var i = 0; i < _parent.medlemmer.length;i++)
		{
			if(_parent.medlemmer[i].StrukturId != _medlem.StrukturId)
			{
				_parent.medlemmer[i].disableChildren();
				var _elem = document.getElementById(_parent.medlemmer[i].id);
				if(_elem)
					if(_elem.type == 'text')
						_elem.value = '';
			}
		}
	}

	function _collapseAllRows(pDesignPath)
	{
		for(var i = 0; i < this.medlemmer.length;i++)
		{
			if(this.medlemmer[i].medlemmer.length > 0)
				this.medlemmer[i].collapseAllRows(pDesignPath);
			toggleRows(this.medlemmer[i].StrukturId, this.medlemmer[i].Niva, true, pDesignPath);
		}

	}
	
	function _expandAllRows(pDesignPath)
	{
		for(var i = 0; i < this.medlemmer.length;i++)
		{
			if(this.medlemmer[i].medlemmer.length > 0)
				this.medlemmer[i].expandAllRows(pDesignPath);
			expandRows(this.medlemmer[i].StrukturId, this.medlemmer[i].Niva, pDesignPath);
		}
	}
	
	function _expandParentRows(pDesignPath, pStrukturId)
	{
		for(var i = 0; i < this.medlemmer.length;i++)
		{
			if(this.medlemmer[i].medlemmer.length > 0)
			{
				if (this.medlemmer[i].expandParentRows(pDesignPath, pStrukturId))
				{
					expandRows(this.medlemmer[i].StrukturId, this.medlemmer[i].Niva, pDesignPath);
					return true;
				}
			}
			if (hasStructure(this.medlemmer[i].StrukturId, this.medlemmer[i].Niva, pStrukturId))
			{
				expandRows(this.medlemmer[i].StrukturId, this.medlemmer[i].Niva, pDesignPath);
				return true;
			}
		}
	}
}

function hasStructure(pStrukturId, pNiva, pFinnMeg)
{
	var _medlem = objHoved.hentMedlem(pStrukturId, pNiva);

	for(var i = 0; i < _medlem.medlemmer.length;i++)
	{
		var _elem = document.getElementById(_medlem.medlemmer[i].RowId);
		if(_elem) 
		{
			if (_medlem.medlemmer[i].RowId == pFinnMeg)
			{
				return true;
			}
		}
	}
	
	return false;
}

function expandRows(pStrukturId, pNiva, pDesignPath)
{
	var _medlem = objHoved.hentMedlem(pStrukturId, pNiva);
	var _elem = document.getElementById('img_' + _medlem.StrukturId);
	if(_elem) 
	{
		_elem.src = pDesignPath + 'collapse.gif';
		_medlem.mini = false;
	}

	for(var i = 0; i < _medlem.medlemmer.length;i++)
	{
		var _elem = document.getElementById(_medlem.medlemmer[i].RowId);
		if(_elem) 
		{
			_elem.style.display = '';
		}
	}
}

function toggleElement(elem, bStatus, pRemoveChecked)
{
	var f = document.forms[0];
	var e = f.elements[elem.name];
	if(e.length)
	{
		for(var b = 0;b < e.length;b++)
		{
			if(pRemoveChecked)
				e[b].checked = false;
			e[b].disabled = bStatus;
		}
		if(elem.type == 'select-one')
			elem.disabled = bStatus;
	}
	else
	{
		if(pRemoveChecked)
			elem.checked = false;
		if(elem.type == 'text')
			elem.value = '';
		elem.disabled = bStatus;
	}
}
var bSecond = false;

function toggleRows(pStrukturId, pNiva, pFirst, pDesignPath, pDisplay)
{
	var _medlem = objHoved.hentMedlem(pStrukturId, pNiva);
	var display;
//	if(!bSecond) {
//		bSecond = true;
//		_medlem.finnesikke();
//	}
	if(pFirst)
	{
		var _elem = document.getElementById('img_' + _medlem.StrukturId);
		if(_elem) {
			if(!_medlem.mini)
			{
				display = 'none';
				_elem.src = pDesignPath + 'expand.gif';
			} else {
				display = '';
				_elem.src = pDesignPath + 'collapse.gif';
			}

			if(_medlem.medlemmer.length == 0)
				_elem.src = pDesignPath + 'blank.gif';

			_medlem.mini = !_medlem.mini;
		} 

	} else {
			display = pDisplay;
	}

	//debug('&nbsp;');
	for(var i = 0; i < _medlem.medlemmer.length;i++)
	{
		//alert(_medlem.medlemmer[i].RowId);
		var _elem = document.getElementById(_medlem.medlemmer[i].RowId);
		if(_elem) {
			if(display == '')
			{
				if(!_medlem.mini)
				{
					_elem.style.display = display;
				}
			}else {
				_elem.style.display = display;
			}
		}
		toggleRows(_medlem.medlemmer[i].StrukturId, _medlem.medlemmer[i].Niva, false, pDesignPath, display);
	}
}
var count = 0;
function debug(strMsg) {
				document.getElementById('debug').innerHTML += strMsg + " " + count++ + '<br>';
}

//Validering av submittet form
function vSubmitForm(frm)
{
	if (validateForm(frm)) {
		return true;
	}else{
		return false;
	}
}

function validateForm(frm)
{
	var strMsg = '';
	for (i = 0; i < frm.elements.length;i++) {
		var elem = frm.elements[i];
		var bFirst = true;
		var strRet = '';
		if (elem.v == '1') {
			strRet = vElem(elem);
			if (strRet != '') {
				elem.style.background='#FFA2A4';
				strMsg  = strMsg + elem.vname + ':\n ' + strRet + '\n';
				if (bFirst)
				{
					//elem.focus();
					bFirst = false;
				}
			}else{
				elem.style.background='white';
			}
		}
		if (elem.v == '2') {
			strRet = vListElem(elem);
			if (strRet != '') {
				elem.style.background='#FFA2A4';
				strMsg  = strMsg + elem.vname + ':\n ' + strRet + '\n';
				if (bFirst)
				{
					//elem.focus();
					bFirst = false;
				}
			}else{
				elem.style.background='white';
			}
		}
	}
	if (strMsg !='') {
		alert('Felter markert med stjerne er påkrevde felter!');
		return false;
	}else{
		return true;
	}
}


function vElem(e)
{
	var strMsg = '';
	if (e.vmin !='0') {
		if (!e.value) {
			strMsg = strMsg + '<%=GetTrans("Må være fyllt ut!")%>. ';
		}
	}
	if (e.vmin) {
		if (eval(e.value.length < e.vmin)) {
			strMsg = strMsg + '<%=GetTrans("Minimum length")%> ' + e.vmin + '. ';
		}
	}
	return strMsg;
}

function vListElem(e)
{
	var strMsg = '';
	if (e.vreq =='2') {
		if (!e.value || e.value == '-1') {
			strMsg = strMsg + '<%=GetTrans("At least one member must be added to the list of chosen members")%>. ';
			return strMsg;
		}
	}
	if (e.vreq == '1') {
		if (!e.value || e.value == '-1') {
			strMsg = strMsg + '<%=GetTrans("Please choose from the list")%> ' + e.vname;
		}
	}
	return strMsg;
}

