function stripAlphaChars(pstrSource) 
{ 
var m_strOut = new String(pstrSource); 
    m_strOut = m_strOut.replace(/[^0-9]/g, ''); 

    return m_strOut; 
}

function Left(str, n)
 /***
         IN: str - the string we are LEFTing
             n - the number of characters we want to return

         RETVAL: n characters from the left side of the string
 ***/
 {
         if (n <= 0)     // Invalid bound, return blank string
                 return "";
         else if (n > String(str).length)   // Invalid bound, return
                 return str;                // entire string
         else // Valid bound, return appropriate substring
                 return String(str).substring(0,n);
 }

function validEmail(email) {
	// create a variable which contains the invalid characters for an email address
	invalidChars = " /:,;()[]{}^<>" ;

	// check for invalid characters within the email address
	for (i=0; i<invalidChars.length; i++) {
	    badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0) != -1) {
			return false;
		}
	}
	
	left_four = Left(email,4);
	if (left_four.toLowerCase() == "www."){
		return false;
	}

	// check that an "@" exists in the email address
	atPos = email.indexOf("@",1);
	if (atPos == -1) {
		return false;
	}

	// check that only one "@" exists in the email address
	if (email.indexOf("@",atPos+1) != -1) {
		return false;
	}

	// verify that there is at least 1 character before the "@" in the address
	if (atPos < 1) {
		return false;
	}

	// verify that a "." exists after the "@"
	periodPos = email.indexOf(".",atPos);
	if (periodPos == -1) {
		return false;
	}

	// verify that there are at least 2 characters after the "." in the address
	if (periodPos+3 > email.length) {
		return false;
	}

	// verify that there are at least 2 characters in the domain name
	if (periodPos-atPos < 2) {
		return false;
	}
	return true;
}

function isNumeric(str) {
	if (str.length == null || str.length == 0) return false;
	for (var i=0; i < str.length; i++) {
		var ch = str.substring(i, i+1);
		if ((ch < "0" || ch > "9") && ch != "." && ch != " " && ch != ",") {
			return false;
		}
	}
	return true;
}

function isValidZip(string) {
	if ((string.length == null) || (string.length < 5)) return false;
	for (var i=0; i < string.length; i++) {
		var ch = string.substring(i, i+1);
		if ((ch < "0" || ch > "9") && ch != "-") {
			return false;
		}
	}
	return true;
}

function isValidPhone(string) {
	if ((string.length == null) || (string.length < 7)) return false;
	for (var i=0; i < string.length; i++) {
		var ch = string.substring(i, i+1);
		if ((ch < "0" || ch > "9") && ch != "-") {
			return false;
		}
	}
	return true;
}

function removeSpaces(string) {
	var temp = "";
	for(i = 0; i < string.length; i++) {
		ch = string.charAt(i);
		if (!(ch == " ")) temp += ch;
	}
	return temp;
}

function get_select_text(ctrl) {
	var nindex = ctrl.selectedIndex;
	var item = ctrl.options[nindex].value;
	return item;
}

function validatePrompt(ctrl, promptStr) {
	alert (promptStr);
	ctrl.focus();
	return;
}

function trim_spaces(string) {
	//trims leading spaces
	while(''+string.charAt(0)==' ')string=string.substring(1,string.length);
	//trims trailing spaces
	while(''+string.charAt(string.length-1)==' ')string=string.substring(0,string.length-1);
	return string;
}

function checkDate(string) {
		var valid = true
		var validchrs = "0123456789/"
		
		var temp;
		for (var i=0; i< string.length; i++) {
			temp = "" + string.substring(i, i+1);
			if (validchrs.indexOf(temp) == "-1") valid = false;
		}
		var parts = string.split("/")
		if (parts.length != 3) {
			valid = false; // must have 3 segments
		}
		else {
			if (parts[0]<1 || parts[0]>12) valid = false // month
			if (parts[1]<1 || parts[1]>31) valid = false // day
			if (parts[2].length<2 || parts[2].length==3 || parts[2].length>4) valid = false //year
			
			// months with 30 days 
			if (parts[0]==4 || parts[0]==6 || parts[0]==9 || parts[0]==11){ 
				if (parts[1]==31) valid = false 
			}
			// february, leap year 
			if (parts[0]==2){ 
				// feb 
				var g=parseInt(parts[2]/4) 
				if (isNaN(g)) { 
					valid = false 
				} 
				
				if (parts[1]>29) valid = false 
				if (parts[1]==29 && ((parts[2]/4)!=parseInt(parts[2]/4))) valid = false 
			}
		}
return valid;
}

function compareDate(date1, date2) 
{
	var parts1 = date1.split("/");
	var parts2 = date2.split("/");
	var day1 = parseInt(parts1[1]);
	var day2 = parseInt(parts2[1]);
	var month1 = parseInt(parts1[0]);
	var month2 = parseInt(parts2[0]);
	var year1 = parseInt(parts1[2]);
	var year2 = parseInt(parts2[2]);
	if (year1 < 70)
	{
		year1 = 2000 + year1
	}
	else {
		year1 = 1900 + year1
	}
	if (year2 < 70)
	{
		year2 = 2000 + year2
	}
	else {
		year2 = 1900 + year2
	}
	
	if (year1 > year2)
	{
		return false; 
	}
	else if (year1 < year2)
	{
		return true;
	}
	if (year1 == year2)
	{
		if (month1 > month2)
		{
			return false;
		}
		else if (month1 < month2)
		{
			return true;
		}
		if (month1 == month2)
		{
			if (day1 > day2)
			{
				return false;
			}
			else if (day1 <= day2)
			{
				return true;
			}
		}	
	}
}