/**
 *
 * Copyright 2007+ ITechnic
 *
 * http://www.itechnic.dk
 * kontakt@itechnic.dk
 *
 */

/**
 * in_array
 * version 1.0
 *
 * ****************************************************************************************************
 *
 * Denne funktion bruges til at teste, om en given værdi findes i et array.
 *
 * ****************************************************************************************************
 *
 * param	string	find						Indeholder den værdi, som der skal søges efter.
 *
 * return	boolean								Angiver, om arrayet indeholder værdien.
 */
Array.prototype.in_array=function(find){
	/* Hent indholdet af arrayet */
	var search_in=this.toString();

	/* Tjek om der findes noget indhold i arrayet */
	if(search_in=='')
		return false; /* Angiv, at værdien ikke fandtes i arrayet */

	/* Tjek om værdien findes i arrayet */
	if(search_in.indexOf(find)==0 && search_in.length==find.length) return true; /* Angiv, at værdien fandtes i arrayet */
	else if(search_in.indexOf(find+',')==0) return true; /* Angiv, at værdien fandtes i arrayet */
	else if(search_in.indexOf(','+find+',')!=-1) return true; /* Angiv, at værdien fandtes i arrayet */
	else if(','+find==search_in.substr(search_in.length-find.length-1,find.length+1)) return true; /* Angiv, at værdien fandtes i arrayet */
	else return false; /* Angiv, at værdien ikke fandtes i arrayet */
}

/**
 * number_format
 * version 1.0
 *
 * ****************************************************************************************************
 *
 * Denne funktion bruges til at formatere en tal-værdi angivet i følgende format:
 *
 * xxx,dddddd
 *
 * ****************************************************************************************************
 *
 * param	integer	number					Bruges til at angive tallet, der skal formateres.
 * param	integer	decimals				Bruges til at angive antallet af decimaler, der skal være.
 * param	string	point					Bruges til at angive hvilket tegn der skal være 'komma'.
 * param	string	thousand				Bruges til at angive hvilket tegn der skal være tusind-seperator.
 */
function number_format(number,decimals,point,thousand){
	/* Klargør tallet til formatering */
	number=String(number).split('.').join(',');
	var number_split=String(number).split(',');
	var num=number_split[0];
	var dec=number_split[1]? number_split[1]: '';

	/* Tjek om der skal minus foran */
	if(String(num).charAt(0)=='-'){
		var minus=true;
		num=num.substr(1,num.length);
	}

	/* Formater decimalerne */
	dec_format='';

	if(dec.length>decimals){	
		/* Rund op, hvis nødvendigt */
		if(parseInt(dec.charAt(decimals))>=5){
			var roundUp=parseInt(dec.charAt(decimals-1))+1;
			if(roundUp<10)
				dec=dec.substring(0,decimals-1)+String(roundUp);
			else{
				var decimalsTmp=decimals-1;
				
				while(roundUp>=10 && decimalsTmp>0){
					var roundUp=parseInt(dec.charAt(decimalsTmp-1))+1;
					decimalsTmp--;
				}
				
				if(roundUp<10)
					dec=dec.substring(0,decimalsTmp)+String(roundUp);
				else{
					dec='';
					num++;
				}
			}
		}

		dec=String(dec);
		for(var i=dec.length;i<decimals;i++)
			dec+='0';

		/* Fjern alle unødvendige tal */
		dec_format=dec.substr(0,decimals);
	}else if(dec.length<decimals){
		/* Klargør formateringen */
		dec_format=dec;

		/* Tilføj det nødvendige antal nuller */
		for(var i=dec_format.length;i<decimals;i++)
			dec_format+='0';
	}else
		/* Decimalerne er allerede formaterede */
		dec_format=dec;

	/* Formater tallet */
	num=String(num);
	var num_format_tmp='';
	var num_format='';

	for(var i=num.length-1;i>=0;i--) num_format+=num.charAt(i);

	for(var i=0;i<num_format.length;i++){
		/* Tjek om der har været 3 tal */
		if(i>0 && i%3==0) num_format_tmp+=thousand; /* Indsæt en tusindtals-seperator */
		num_format_tmp+=num_format.charAt(i);
	}

	num_format='';
	for(var i=num_format_tmp.length-1;i>=0;i--)
		num_format+=num_format_tmp.charAt(i);

	/* Returner det formaterede tal */
	return (minus?'-':'')+num_format+point+dec_format;
}

function str_replace(from,to,subject){
	return subject.split(from).join(to);
}

/**
 * findPos
 * version 1.0
 *
 * ****************************************************************************************************
 *
 * Denne funktion finder et elements placering.
 *
 * ****************************************************************************************************
 *
 * param	object	obj						Indeholder objektet, som placeringen skal findes for.
 */
function findPos(obj){
	/* Klargør variabler */
	var x=y=0;

	/* Tjek om funktionen understøttes */
	if(obj.offsetParent){
		/* Hent nuværende placering */
		x=obj.offsetLeft;
		y=obj.offsetTop;

		/* Gå tilbage i hierarkiet og hent placeringen ift. body-elementets placering */
		while(obj=obj.offsetParent){
			/* Opdater placeringen */
			x+=obj.offsetLeft;
			y+=obj.offsetTop;
		}
	}

	/* Returner placeringen */
	return {'x':x,'y':y}
}

// -->