// strFormat - Eks. "Kr|before|.|," 
// Parameter 0: Valutakode
// Parameter 1: Skal valutakode placeres før eller efter beløbet (before/after)
// Parameter 2: Tusinde seperator
// Parameter 3: Decimal seperator

function formatCurrency(strValue, strFormat)
{
    var arrayFormat = strFormat.split('|');
    var strReturn = "";
    
	strValue = strValue.toString().replace(/\$|\,/g,'.');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+ arrayFormat[2] + dblValue.substring(dblValue.length-(4*i+3));
	
	if (arrayFormat[1] == 'before')
	{
	    strReturn = (arrayFormat[0] + ' ' + ((blnSign)?'':'-') + dblValue + arrayFormat[3] + strCents);
	}
	else
	{
	    strReturn = (((blnSign)?'':'-') + dblValue + arrayFormat[3] + strCents + ' ' + arrayFormat[0]);
	}
	return strReturn; 
}

// Finder der x, y pos for det aktuelle object (obj). Også selvom det ikke er placeret absolut.
// Eks.: 
// var coors = findPos(object);
// var ypos = coors[1] - 7;
// var xpos = coors[0] - 150;
function findPos(obj)
{
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
	        curleft += obj.offsetLeft
	        curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

// Skjuler elementet angivet i elementId
// Eks.: hideElement('divBoks_1234');
function hideElement(elementId)
{
    tmpElement = document.getElementById(elementId);
    tmpElement.style.display = 'none';
}

// Skjuler alle elementer med et givent tag (tagName) og id præfiks (idPrefixStr)
// Eks.: hideAllElements('div', 'DivOrderLineComment_');
function hideAllElements(tagName, idPrefixStr)
{
 
    var tmpElements = getElementsByIdPart(idPrefixStr,null,tagName)
    var len = tmpElements.length;
	for (i = 0; i < len; i++) {
			//classElements[j] = els[i];
			tmpElements[i].style.display = 'none';
	}
}

function getBodyHeight() {
  var myHeight = 0;
  if (typeof( window.innerHeight) == 'number') 
  {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement && document.documentElement.clientHeight) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && document.body.clientHeight) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight
}


function getBodyWidth() {
  var myWidth = 0;
  if (typeof( window.innerWidth) == 'number') 
  {
    //Non-IE
    myWidth = window.innerHeight;
  } else if( document.documentElement && document.documentElement.clientWidth) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && document.body.clientWidth) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
  return myWidth
}

function getScrollX() {
  var scrOfX = 0;
  if (typeof(window.pageXOffset) == 'number' ) 
  {
    //Netscape compliant
    scrOfX = window.pageXOffset;
  } 
  else if( document.body && document.body.scrollLeft ) 
  {
    //DOM compliant
    scrOfX = document.body.scrollLeft;
  } 
  else if( document.documentElement && document.documentElement.scrollLeft) 
  {
    //IE6 standards compliant mode
    scrOfX = document.documentElement.scrollLeft;
  }
  return scrOfX;
}


function getScrollY() {
  var scrOfY = 0;
  if (typeof(window.pageYOffset) == 'number' ) 
  {
    //Netscape compliant
    scrOfY = window.pageYOffset;
  } 
  else if( document.body && document.body.scrollTop ) 
  {
    //DOM compliant
    scrOfY = document.body.scrollTop;
  } 
  else if( document.documentElement && document.documentElement.scrollTop) 
  {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
  }
  return scrOfY;
}

function CancelBubbel(evt)
{
	if (evt.stopPropagation)
	{
		evt.returnValue = false;
		evt.cancel = true;
		evt.stopPropagation();
		evt.preventDefault(); 
	}
	else
	{
	        evt.cancelBubble = true;
	        evt.returnValue = false;			       
	}
}


function checkKey(_evt)
{
    if (_evt == null)
    {
	_evt = window.event;
    }
    var shift = 0;

    if(_evt.shiftKey==true||_evt.altKey==true||_evt.ctrlKey==true)
    {
	    shift = 1000;		
    }
    key = _evt.keyCode + shift
    
	switch(key)
    {
	    case 109:break;			//Numerisk -
        case 189:break;			//-
        case 48:break;			//0
        case 49:break;			//1
        case 50:break;			//2
        case 51:break;			//3
        case 52:break;			//4
        case 53:break;			//5
        case 54:break;			//6
        case 55:break;			//7
        case 56:break;			//8
        case 57:break;			//9
        case 96:break;			//Nummerisk + 0
        case 97:break;			//Nummerisk + 1
        case 98:break;			//Nummerisk + 2
        case 99:break;			//Nummerisk + 3
        case 100:break;			//Nummerisk + 4
        case 101:break;			//Nummerisk + 5
        case 102:break;			//Nummerisk + 6
        case 103:break;			//Nummerisk + 7
        case 104:break;			//Nummerisk + 8
        case 105:break;			//Nummerisk + 9
        case 8:break;			//backspace
        case 1008:break;		//backspace
        case 46:break;			//delete
        case 1046:break;			//delete
        case 9:break;			//tabulator
        case 1009:break;			//tabulator
        case 37:break;			//cursor left
        case 1037:break;			//cursor left
        case 39:break;			//cursor right
        case 1039:break;			//cursor right
        case 13:				//return
	        _evt.keyCode = 9;	//tabulator
	        break;
        case 1013:				//return
	        _evt.keyCode = 9;	//tabulator
	        break;
        default:
		CancelBubbel(_evt);
		
    }
    return true;

}

function getElementsByIdPart(idPart,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp(idPart);
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].id) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function isDefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function validate(node) {
	var items;
	if (node == null)
	{
		items = document.getElementsByTagName("input"); 
	}
	else
	{
		items = getElementsByIdPart('inp_',node,null);
	}
	//var items1 = document.getElementsByTagName("input"); 
	//var items2 = document.getElementsByTagName("textarea")
	//items = items1.concat(items2); 
	//alert(items);
	var displayError = false;
	var formvalid = true; 
	var samletfejlbesked = "";
	var errorText = "";
	var strAllowBlankErrorText = "m\u00E5 ikke v\u00E6re tom!";
	if (isDefined('validationAllowBlankErrorText')) 
    {
        strAllowBlankErrorText = validationAllowBlankErrorText;
    }
	for (var i = 0; i < items.length; i++) { 
		if (items[i].getAttribute('validate') == "true") { 
			displayError = false;
			if (items[i].tagName == 'textarea')
			{
				feltvalue = new String(items[i].innerHTML);
			}
			else
			{
				feltvalue = new String(items[i].value);
			}
			if ((items[i].getAttribute('allowblank') != 'true') && (feltvalue == '')) {
				displayError = true;
			    errorText = strAllowBlankErrorText;
			}
			//else if ((items[i].getAttribute('allowblank') == 'true') && (feltvalue == '')) {
			//    
			//}
			else {//if ((items[i].getAttribute('allowblank') == 'true') && (feltvalue != '')) {
				//var tt = '';
				//tt = items[i].getAttribute("regularexpression");
				if ((items[i].getAttribute('regularexpression') != null) && (items[i].getAttribute('regularexpression') != ''))
				{
					myRegExp = new RegExp(items[i].getAttribute('regularexpression'))
					tmp = myRegExp.exec(feltvalue);
					if (tmp == null) {
						displayError = true;
				    		errorText = items[i].getAttribute('errordescription');
					}
				}
			}
			if (displayError == true) {
			    if (items[i].getAttribute('errorelement') != "") 
			    {
			        if (document.getElementById(items[i].getAttribute('errorelement')) != null) 
			        {
				        document.getElementById(items[i].getAttribute('errorelement')).style.display = 'block';
				    }    
				}
				
				if ((document.getElementById(items[i].getAttribute('labelid')) != null) && (document.getElementById(items[i].getAttribute('labelid')).innerHTML != ''))
				{
				    samletfejlbesked = samletfejlbesked + document.getElementById(items[i].getAttribute('labelid')).innerHTML + ' ' + errorText + "<br>"
				    items[i].title = document.getElementById(items[i].getAttribute('labelid')).innerHTML + ' ' + errorText;
				}
				else
				{
				    samletfejlbesked = samletfejlbesked + items[i].getAttribute('friendly') + ' ' + errorText + "<br>"
				    items[i].title = items[i].getAttribute('friendly') + ' ' + errorText;
				}
				
				items[i].className = items[i].getAttribute('errorclass');
				formvalid = false;
			}
			else {
			    if (items[i].getAttribute('errorelement') != "") 
			    {
			        if (document.getElementById(items[i].getAttribute('errorelement')) != null) 
			        {
				        document.getElementById(items[i].getAttribute('errorelement')).style.display = 'none';
				    }    
				}    
				items[i].title = "";
				items[i].className = items[i].getAttribute('normalclass');
			}
		}
	}
	
	if (formvalid == true) {
		document.getElementById('validationsummery').innerHTML = '';
		document.getElementById('validationsummery').style.display = 'none';
	}
	else {
		document.getElementById('validationsummery').innerHTML = samletfejlbesked;
		document.getElementById('validationsummery').style.display = 'block';
	}
	 
	return formvalid;
}	


function initXMLHttpRequestObject()
{
    var XMLHttpRequestObject = null;
    if (window.XMLHttpRequest)

    { // Mozilla, Safari,...  And IE 7.0
        XMLHttpRequestObject = new XMLHttpRequest();
        if (XMLHttpRequestObject.overrideMimeType)
        {
            XMLHttpRequestObject.overrideMimeType('text/xml');
        }
    }
    else if (window.ActiveXObject)
    { // IE
        try
        {
            XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {

            }
        }
    }
return XMLHttpRequestObject;
}


//Henter Querystring variable udfra current querystring
function javaqueryString(key, dounescape)
{
    var page = new PageQuery(window.location.search); 
	if (dounescape == false)
	{
	    
	    return page.getValue(key); 
	}
	else
	{
	    return unescape(page.getValue(key)); 
	}
}


function Get_Cookie( name ) 
{
    var start = document.cookie.indexOf( name + "=" );
    var len = start + name.length + 1;
    if ( ( !start ) &&
    ( name != document.cookie.substring( 0, name.length ) ) )
    {
    return null;
    }
    if ( start == -1 ) return null;
    var end = document.cookie.indexOf( ";", len );
    if ( end == -1 ) end = document.cookie.length;
    return unescape( document.cookie.substring( len, end ) );
}

function Delete_Cookie( name, path, domain ) 
{
    if ( Get_Cookie( name ) ) document.cookie = name + "=" +
    ( ( path ) ? ";path=" + path : "") +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function Set_Cookie(name, value, expiredays, domain) 
{
    var ExpireDate = new Date ();
    ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
    document.cookie = name + "=" + escape(value) + 
    ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString()) + 
    ( ( domain ) ? "; domain=" + domain : "" );
}


function doPictureExists(pic)
{
    var result = false;
    var http_request = initXMLHttpRequestObject();
    if (http_request != null)
    {
        http_request.open('GET', pic, true);
        http_request.onreadystatechange = function () 
        {
            if (http_request.readyState == 4) {
                if (http_request.status == 200) {
                    result = true
                } 
            }
        }
        http_request.send(null);
    }
    return result;
}


function PageQuery(q) 
{
	if(q.length > 1) 
		this.q = q.substring(1, q.length);
	else 
		this.q = null;

	this.keyValuePairs = new Array();
	if(q) 
	{
		for(var i=0; i < this.q.split("&").length; i++) 
		{
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}

	this.getKeyValuePairs = function() { return this.keyValuePairs; }

	this.getValue = function(s) 
	{
		for(var j=0; j < this.keyValuePairs.length; j++) 
		{
			if(this.keyValuePairs[j].split("=")[0] == s)
				return this.keyValuePairs[j].split("=")[1];
		}
		return false;
	}

	this.getParameters = function() 
	{
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) 
		{
		a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}

	this.getLength = function() 
	{ 
		return this.keyValuePairs.length; 
	} 
}
