function getViewportSize() {
	// Usage:
	// var size = getViewportSize();
	// alert('Viewport size: [' + size[0] + ', ' + size[1] + ']');
	var size = [0, 0];
	if (typeof window.innerWidth != 'undefined') {
		var hite = window.innerHeight;		
		if (document.body.scrollHeight > hite) {
			hite = document.body.scrollHeight;
		}
		if (document.documentElement.offsetHeight > hite ) {
			hite = document.documentElement.offsetHeight
		}
		if (document.documentElement.clientHeight > hite ) {
			hite = document.documentElement.clientHeight;
		}
		size = [window.innerWidth, hite];
	} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
		size = [document.documentElement.clientWidth, document.documentElement.clientHeight];
	} else {
		size = [document.getElementsByTagName('body')[0].clientWidth, document.getElementsByTagName('body')[0].clientHeight];
	}
	return size;
}
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)){
		num = "0";
	}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) {
		cents = "0" + cents;
	}		
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
		num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
	}
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}
function toggleMsg() {
	if (navigator.userAgent.indexOf("MSIE") == -1) {
		hfx.toggle();
		ffx.toggle();
	} else {
		// Sorry, IE users - no effects for you.
		msgBlock.style.display=(msgBlock.style.display == 'none' ? 'block' : 'none');	
	}
	var link = document.getElementById("link");
	var hidem = "[&#8211;]";
	var showm = "[+]";
	var hidemTitle = "Hide messages";
	var showmTitle = "Show messages";
	link.title = (link.innerHTML == showm ? hidemTitle : showmTitle);
	link.innerHTML = (link.innerHTML == showm ? hidem : showm);	
}
function pleaseWaitAnimateImage() {
	var img = document.getElementById("pleasewaitimage");
	img.src = img.src;		
}
function pleaseWait(messageText) {
	setTimeout("pleaseWait2('" + messageText + "')", 1);
	setTimeout("pleaseWaitAnimateImage()", 501);
}
function pleaseWait2(messageText) {
	var divWidth = 450;
	var divHeight = 200;
	var size = getViewportSize();

	var newdiv = document.createElement('div');	
	newdiv.style.opacity = 0.10;
	newdiv.setAttribute('id','pleasewait');
	newdiv.style.width = divWidth;
	newdiv.style.height = divHeight;
	newdiv.style.left = document.body.clientWidth / 2 - divWidth / 2;
	newdiv.style.top = document.body.clientHeight / 2 - divHeight / 2;	
	newdiv.style.position = "absolute";
	newdiv.style.padding = 20;
	newdiv.style.background = "#C5C6A4";
	newdiv.style.backgroundImage = 'url("/cms/images/logo_small.gif")';
	newdiv.style.backgroundRepeat = 'no-repeat';
	newdiv.style.backgroundPosition = "center center";
	newdiv.style.border = "1px solid #D54C08";
	newdiv.innerHTML = '<div style="opacity:0.9;height:95%;padding:5px;font-size:13pt;background-color:#ffffff;border:1px solid #9C9D6A"><img src="/cms/images/wait.gif" alt="Please wait" style="border:0px;" id="pleasewaitimage"><p>' + messageText + '<br></div>';

	var fulldiv = document.createElement('div');
	fulldiv.setAttribute('id','fulldiv');	
	fulldiv.style.width = size[0];
	fulldiv.style.height = size[1];
	fulldiv.style.left = 0;
	fulldiv.style.top = 0;
	fulldiv.style.position = "absolute";
	fulldiv.style.padding = 0;
	fulldiv.style.background = "#BDBEAC";
	fulldiv.style.border = "none";
	fulldiv.style.filter = "alpha(opacity=50)";
	fulldiv.style.opacity = "0.5";	

	document.body.appendChild(fulldiv);
	document.body.appendChild(newdiv);	

	opacity ("pleasewait", 10, 100, 300);	
}
function opacity(id, opacStart, opacEnd, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    // Determine the direction for the blending.
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}
// Change the opacity for different browsers.
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 
function padZeroes(value, prefixLength, targetLength) {		
	if (value == null) {
		return null;
	}		
	if (value.length > targetLength) {
		return value.substring(0, targetLength);
	}		
	var buff = value.substring(0, prefixLength);
	var remainder = value.substring(prefixLength);
		
	while ((buff.length + remainder.length) < targetLength) {
		buff += "0";
	}
	buff += remainder;				
	return buff.toString();
}