// JavaScript Document

function isAlphaNumeric( strString )
{
   var strValidChars = "0123456789.ABCDEFGHIJKLMNOPQRSTUVWXYZ_";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return true;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         { 
         blnResult = false;
         }
	  
      }
   return blnResult;
}

function alphaonly(myfield, e)
{
  var key;
  var keychar;

  if (window.event)
    key = window.event.keyCode;
  else if (e)
    key = e.which;
  else
    return true;
  keychar = String.fromCharCode(key);

  // control keys
  if ((key==null) || (key==0) || (key==8) || 
      (key==9) || (key==13) || (key==27) )
    return true;

  // alpha
  else if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ").indexOf(keychar) > -1))
    return true;

  else
    return false;
}

function alphauppercaseonly(myfield, e)
{
  var key;
  var keychar;

  myfield.value=myfield.value.toUpperCase();
  if (window.event)
    key = window.event.keyCode;
  else if (e)
    key = e.which;
  else
    return true;
  keychar = String.fromCharCode(key);

  // control keys
  if ((key==null) || (key==0) || (key==8) || 
      (key==9) || (key==13) || (key==27) )
    return true;

  // alpha
  else if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ").indexOf(keychar) > -1))
    return true;

  else
    return false;
}
  
function numbersonly(myfield, e, dec)
{
  var key;
  var keychar;

  if (window.event)
    key = window.event.keyCode;
  else if (e)
    key = e.which;
  else
    return true;
  keychar = String.fromCharCode(key);

  // control keys
  if ((key==null) || (key==0) || (key==8) || 
      (key==9) || (key==13) || (key==27) )
    return true;

  // numbers
  else if ((("0123456789").indexOf(keychar) > -1))
    return true;

  // decimal point jump
  else if (dec && (keychar == "."))
    {
      myfield.form.elements[dec].focus();
      return false;
    }
  else
    return false;
} 
   
function isnumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return true;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         { 
         blnResult = false;
         }
	  
      }
   return blnResult;
   }
/*
function isValidDate (myDate,sep) {
// checks if date passed is in valid dd/mm/yyyy format

    if (myDate.length == 10) {
        if (myDate.substring(2,3) == sep && myDate.substring(5,6) == sep) {
            var date  = myDate.substring(0,2);
            var month = myDate.substring(3,5);
            var year  = myDate.substring(6,10);

            var test = new Date(year,month-1,date);

            if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
                reason = '';
                return true;
            }
            else {
                reason = 'valid format but an invalid date';
                return false;
            }
        }
        else {
            reason = 'invalid spearators';
            return false;
        }
    }
    else {
        reason = 'invalid length';
        return false;
    }
}

*/
function isDate(dateStr) {

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	
	if (matchArray == null) {
		return false;
	}

	month =parseFloat(matchArray[3]); // p@rse date into variables
	day = parseFloat(matchArray[1]);
	year = parseFloat(matchArray[5]);
	
	
	if (month < 1 || month > 12) { // check month range
		return false;
	}

	if (day < 1 || day > 31) {
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return false;
	}
	
	if (month == 2) { // check for february 29th
	   var isleap = (year % 4 == 0);
	   if (day>29||(day==29&&!isleap)) {
		return false;
	  }
    }
return true; // date is valid
}


function isemail(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}

function isurl(url)
{
	re = /^(file|http):\/\/\S+\.(com|net|org|info|biz|ws|us|tv|cc)$/i	
	if (re.test(url.value)) {
 		return true
 	}
 	else {
 		return false;
	}
}

function formatcurrency(field)
{
   if(field.value!='')
   {
      if(!isnumeric(field.value))
      {    alert("please enter this field with numeric value in xxxx.xx format.");
           field.value ='';       
      }
      else if(parseFloat(field.value)==0)
      {
          alert("The value of this field cannot be zero.");
          field.value ='';
      }
      else
      {
          var amt = parseFloat(field.value);
          field.value = amt.toFixed(2);
      }
      
   }
}

function formatuppercase(myfield)
{
  myfield.value=myfield.value.toUpperCase();
}


