/*
Format number with setting decimal and comma formation
dec = [0,1,2,... | null]	comma = [true | false]	unit = [true | false]
e.g.	formatNum("1234.1234",3,true) -> 1,234.123	and 	formatNum("1234567890.1234",3,false,true) -> 1.235B
*/

//	formatNum v1.2	Aug 2007
function formatNum(num, dec, comma, unit) {

	if (isNaN(num) || num=="" ) return '--';

	// functions
	function setDecimal(number, dec) {
		var number = parseFloat(number);
		return number.toFixed(dec);
	}
	
	function addComma(number) {
		var number = number.toString();
		var decimal = '';
		var intNum = '';
		if (number.indexOf('.') != -1) {
			decimal	= number.substring(number.indexOf('.'),number.length);
			intNum = number.substring(0,number.indexOf('.'));
		} else {
			intNum = number;
		}
		var i = intNum.length-1;
		var counter = 0;
		var formatIntNum = '';
		while(i>=0) {
			formatIntNum = intNum.charAt(i) + formatIntNum;
			counter++;
			if (counter == 3 && i!=0) {
				formatIntNum = ','+formatIntNum;
				counter = 0;
			}
			i--;
		}
		return (''+formatIntNum+decimal);
	}
	
	function formUnit(number) {
		var number = parseFloat(number);
		if (number >= 1000000000) {
			unitStr = 'B';
			number /= 1000000000;
			return (''+number+unitStr);
		}
		if (number >= 1000000) {
			unitStr = 'M';
			number /= 1000000;
			return (''+number+unitStr);
		}
		return (''+number);
	}
	
	// main function
	var number = num.toString();
	var dec = dec;
	var unit = unit;
	var sign = '';
	var unitStr = '';
	if (number.charAt(0)=='-') {
		sign = number.substring(0,1);
		number = number.substring(1,number.length);
	}
	if (unit==true) {
		number=formUnit(number);
		if (number.charAt(number.length-1)=='B' || number.charAt(number.length-1)=='M') {
			unitStr = number.charAt(number.length-1);
			number = number.substring(0,number.length-1);
		}
	}
	if (dec!=null) number=setDecimal(number, dec);
	if (comma==true) number=addComma(number);
	return (''+sign+number+unitStr);

}

/*
Trim left zero of a number, return a number
e.g.	trimZero("00123") -> 123
*/
function trimZero(num) {
	num += '';
	while(num.charAt(0)=="0")
		num = num.substring(1, num.length);
	return num;
}

// padZero()
function padZero(num, digi) {
	if (digi == null || digi == "") digi = 5;	// default 5
	while (num.length<digi) {
		num = '0'+num;
	}
	return num;
}

function formatCode(num) {
	return padZero(trimZero(num));
}

function GetVariable(name) {
	var pt1=location.search.indexOf("?"+name+"=");
	if (pt1<0) pt1=location.search.indexOf("&"+name+"=");
	if (pt1<0) return '';
	pt1 += name.length+2;
	var pt2=location.search.indexOf("&",pt1)-1;
	if (pt2<0) pt2=location.search.length;
	var result='';
	for(var i=pt1;i<=pt2;i++) {
		var c=location.search.charAt(i);
		result=result+(c=='+'?' ':c);
	}
	return unescape(result);
}

