
function num(a)
{
	if (a.substr(0,1) == '$')
	{
return Number(a.substr(1,a.length - 1));
	}
	else
	{
		return Number(a);
	}
}

function FormatDate(date)
{
	var strMonthArray = new Array(12);
	strMonthArray[0] = 'Jan';
	strMonthArray[1] = 'Feb';
	strMonthArray[2] = 'Mar';
	strMonthArray[3] = 'Apr';
	strMonthArray[4] = 'May';
	strMonthArray[5] = 'Jun';
	strMonthArray[6] = 'Jul';
	strMonthArray[7] = 'Aug';
	strMonthArray[8] = 'Sep';
	strMonthArray[9] = 'Oct';
	strMonthArray[10] = 'Nov';
	strMonthArray[11] = 'Dec';
	return date.getDate() + '-' + strMonthArray[date.getMonth()] + '-' + date.getFullYear();
}


function FormatNumber(n)
{
	if (isNaN(n)) return '0.00';
	var n100 = Math.round(Number(n) * 100) / 100;
	if (isNaN(n100))
	{
		n100 = 0;
	}
	var ns = String(n100);
	if (ns.indexOf('.') == -1) ns = ns + '.00';
	else if (ns.indexOf('.') == ns.length - 1) ns = ns + '0';
	return ns;
}
function checkdate(objName) {
var datefield = objName;
if (chkdate(objName) == false) {
datefield.select();
alert('That date is invalid.  Please try again.');
datefield.focus();
return false;
}
else {
return true;
   }
}

function chkdate(objName) {
//var strDatestyle = 'US'; //United States date style
var strDatestyle = 'EU';  //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array('-',' ','/','.');
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = 'Jan';
strMonthArray[1] = 'Feb';
strMonthArray[2] = 'Mar';
strMonthArray[3] = 'Apr';
strMonthArray[4] = 'May';
strMonthArray[5] = 'Jun';
strMonthArray[6] = 'Jul';
strMonthArray[7] = 'Aug';
strMonthArray[8] = 'Sep';
strMonthArray[9] = 'Oct';
strMonthArray[10] = 'Nov';
strMonthArray[11] = 'Dec';
strDate = datefield.value;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
// US style
if (strDatestyle == 'US') {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
if (strDatestyle == 'US') {
datefield.value = strMonthArray[intMonth-1] + ' ' + intday + ' ' + strYear;
}
else {
datefield.value = intday + '-' + strMonthArray[intMonth-1] + '-' + strYear;
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
function doDateCheck(from, to) {
if (Date.parse(from.value) <= Date.parse(to.value)) {
alert('The dates are valid.');
}
else {
if (from.value == '' || to.value == '') 
alert('Both dates must be entered.');
else 
alert('To date must occur after the from date.');
   }
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}



// Numeric Textbox Mask functions

function setCursorPosition(obj,pos) 
{  
	if(obj.setSelectionRange)	
	{		
		obj.setSelectionRange(pos,pos);	
	}
	else if (obj) 
	{  
		var tr = obj.createTextRange();  
		if (obj && tr) 
		{  
			tr.moveStart("character", pos);  
			tr.collapse();  
			tr.select();  
			return true;  
		}  
	}  
	return false;
}

function getCursorPosition(obj)
{
	var result = 0;
	if (obj.setSelectionRange != null)
	{
		result = obj.selectionStart;
	}
	else if (document.selection && document.selection.createRange)
	{
		var range = document.selection.createRange();
		var r2 = range.duplicate();
		result = 0 - r2.moveStart('character', -100000);
	}
	return result;
}


function dFilter (e, textbox, dFilterMask, maskType)
{
	var key = window.event ? e.keyCode : e.which;
	var pos = -1;
	if (key==9 || key == 37 || key == 39)
	{
	    return true;
	}
	else if (key==8) // backspace
	{
		var cpos = getCursorPosition(textbox);
		if (cpos > 0)
		{
			cpos = previousMask(dFilterMask, cpos - 1);
			if (cpos != -1)
			{
				setCursorPosition(textbox, previousMask(dFilterMask, cpos));
				processDelete(textbox, dFilterMask);
			}
		}
	}
	else if (key == 46) // the all-important delete key
	{
		processDelete(textbox, dFilterMask);
	}
 	else if ((key>47&&key<58)||(key>95&&key<106)) // numeric key
	{
		processKey(key, textbox, dFilterMask);
	}
	else if (maskType == 'a' && key >= 65 && key <= 90)
	{
		processKey(key, textbox, dFilterMask);
	}
	e.cancelBubble = 1;
    return false;
}

function processKey(key, textbox, dFilterMask)
{
	var cpos = getCursorPosition(textbox);
	//window.alert('tbval:' + textbox.value + ' mask:' + dFilterMask);
	if (cpos >= dFilterMask.length && textbox.value == dFilterMask)
		cpos = 0;
	pos = dFilterMask.indexOf('_',cpos);
	if (pos > dFilterMask.length + 1) pos = -1;
	//window.alert(pos);
	if (pos != -1)
	{
    	if (dFilterMask.charAt(pos) != '_')
	    	return;
		var i = previousMask(dFilterMask, dFilterMask.length - 1);
		while (i > pos)
		{
			var pos2 = previousMask(dFilterMask, i - 1);
			if (pos2 != -1)
			{
				var temp = textbox.value;
				temp = temp.substring(0,i) + temp.charAt(pos2) + temp.substring(i+1,temp.length);
				temp = temp.substring(0,pos2) + '_' + temp.substring(pos2+1,temp.length);
				textbox.value = temp;
				i = pos2;
			}
			else
			{
				i = pos;
			}
		}
		if (key>95) key-=48;
		var temp = textbox.value;
		temp = temp.substring(0,pos) + String.fromCharCode(key) + temp.substring(pos+1,temp.length);
		textbox.value = temp;
		setCursorPosition(textbox,pos+1);
	}
}

function processDelete(textbox, dFilterMask)
{
	var cpos = getCursorPosition(textbox);
	if (cpos < dFilterMask.length)
	{
		pos = dFilterMask.indexOf('_',cpos);
		if (pos == -1)
		{
			return false;
		}
		while (pos < dFilterMask.length)
		{
			var pos2 = dFilterMask.indexOf('_',pos + 1);
			if (pos2 != -1)
			{
				var temp = textbox.value;
				temp = temp.substring(0,pos) + temp.charAt(pos2) + temp.substring(pos+1,temp.length);
				temp = temp.substring(0,pos2) + '_' + temp.substring(pos2+1,temp.length);
				textbox.value = temp;
				pos = pos2;
			}
			else
			{
				var temp = textbox.value;
				temp = temp.substring(0,pos) + '_' + temp.substring(pos+1,temp.length);
				textbox.value = temp;
				pos = dFilterMask.length;
			}
		}
		setCursorPosition(textbox,cpos);
	}
	return true;
}


function previousMask(mask, cpos)
{
	for(i = cpos; i>=0; i--)
	{
		if (mask.charAt(i) == '_')
			return i;
	}
	return -1;
}

