//----------------------------------------------------------------------//
//  ValidationFunctions.js
//----------------------------------------------------------------------//
function trimBlanks(fieldValue)
{
	while (fieldValue.charAt(0) == ' ')
		fieldValue = fieldValue.substring(1,fieldValue.length)
	return fieldValue;
}


function checkDecimals(fieldValue)
{
	decallowed = 2;
	if (isNaN(fieldValue) || fieldValue == "")
	{
		return false;
	}
	else
	{
		if (fieldValue.indexOf('.') == -1) fieldValue += ".";
		dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);

		if (dectext.length > decallowed)
		{
			return false;
		}
		else	return true;
	}
}


function checkEmailAddress(fieldValue)
{
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/; // valid

	if (!reg1.test(fieldValue) && reg2.test(fieldValue))
	{
		return true;
	}

	return false;
}

function checkTelNumber(fieldValue)
{
	var reg = /^\d{3}-?\d{3}-?\d{4}$/;	//valid phone number.

	if (!reg.test(fieldValue)) return false;
	return true;
}

function formatTelNumber(inVal)
{
	if (!checkTelNumber(inVal)) return inVal;
	var parts = inVal.split('-')
	switch (parts.length) {
		case 1:	return inVal.substr(0,3) + "-" + inVal.substr(3,3) + "-" + inVal.substr(6,4);
		case 2:	if (inVal.charAt(3)=="-")
					return inVal.substr(0,7) + "-" + inVal.substr(7,4)
				else
					return inVal.substr(0,3) + "-" + inVal.substr(3,8)
		case 3:	return inVal
	}
}

function checkZipCode(fieldValue)
{
	var reg = /^\d{5}$/;			//valid 5-digit zip code.

	if (!reg.test(fieldValue)) return false;
	return true;
}

function formatCurrency(fld, milSep, decSep, e)
{
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	if (whichCode == 13) return true;  // Enter
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
	len = fld.value.length;
	for(i = 0; i < len; i++)
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
	aux = '';
	for(; i < len; i++)
		if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
	aux += key;
	len = aux.length;
	if (len == 0) fld.value = '';
	if (len == 1) fld.value = '0'+ decSep + '0' + aux;
	if (len == 2) fld.value = '0'+ decSep + aux;
	if (len > 2)
	{
		aux2 = '';
		for (j = 0, i = len - 3; i >= 0; i--)
		{
			if (j == 3)
			{
				aux2 += milSep;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--)
			fld.value += aux2.charAt(i);
		fld.value += decSep + aux.substr(len - 2, len);
	}
	return false;
}

function checkDate(inVal)
{
	var checkstr = "0123456789";
	var DateField = inVal;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "-";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	DateValue = DateField;

	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++)
	{
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)
		{
			DateTemp = DateTemp + DateValue.substr(i,1);
		}
	}
	DateValue = DateTemp;

	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (DateValue.length == 5)
	{
		DateValue = '0' + DateValue.substr(0,3) + '20' + DateValue.substr(3,2);
	}
	if (DateValue.length == 6)
	{
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
	}
	if (DateValue.length == 7)
	{
		DateValue = '0' + DateValue;
	}
	if (DateValue.length != 8)
	{
		err = 19;
	}

	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);
	if (year == 0)
	{
		err = 20;
	}

	/* Validation of month*/
	month = DateValue.substr(0,2);
	if ((month < 1) || (month > 12))
	{
		err = 21;
	}

	/* Validation of day*/
	day = DateValue.substr(2,2);
	if (day < 1)
	{
		err = 22;
	}

	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
	{
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29))
	{
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28))
	{
		err = 24;
	}
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
	{
		err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
	{
		err = 26;
	}

	/* if 00 ist entered, no error, deleting the entry */
	if ((day == 0) && (month == 0) && (year == 00))
	{
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}

	/* if no error, write the completed date to Input-Field (e.g. 13-31-2002) */
	if (err == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function formatDate(inVal)
{
	var checkstr = "0123456789";
	var DateField = inVal;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "-";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	DateValue = DateField;

	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++) {
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
			DateTemp = DateTemp + DateValue.substr(i,1);
		}
	}
	DateValue = DateTemp;

	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (DateValue.length == 5)
	{
		DateValue = '0' + DateValue.substr(0,3) + '20' + DateValue.substr(3,2);
	}
	if (DateValue.length == 6)
	{
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
	}
	if (DateValue.length == 7)
	{
		DateValue = '0' + DateValue;
	}
	if (DateValue.length != 8)
	{
		err = 19;
	}

	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);
	if (year == 0)
	{
		err = 20;
	}

	/* Validation of month*/
	month = DateValue.substr(0,2);
	if ((month < 1) || (month > 12))
	{
		err = 21;
	}

	/* Validation of day*/
	day = DateValue.substr(2,2);
	if (day < 1)
	{
		err = 22;
	}

	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
	{
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29))
	{
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28))
	{
		err = 24;
	}
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
	{
		err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
	{
		err = 26;
	}

	/* if 00 ist entered, no error, deleting the entry */
	if ((day == 0) && (month == 0) && (year == 00))
	{
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}

	/* if no error, write the completed date to Input-Field (e.g. 13-31-2002) */
	if (err == 0)
	{
		return month + seperator + day + seperator + year;
	}
	else
	{
		return inval;
	}
}
