function ValidateControl(control, reqlabel, validateEmail, required)
{
	var name = document.getElementById(control);
	var valid = true;

	if(required) {
		if ((name.value==null) || (name.value=="")) {
			
			if(reqlabel != "")
				document.getElementById(reqlabel).style.display="";
			valid = false;
		}
		else {
		
			if(reqlabel != "")
				document.getElementById(reqlabel).style.display="none";
		}
	}
	
	if(validateEmail)
	{
		if(name.value != "") {
			if(!CheckEmail(name.value)) {
				if(reqlabel != "")
					document.getElementById(reqlabel).style.display="";
					valid = false;
			}
			else {
				if(reqlabel != "")
					document.getElementById(reqlabel).style.display="none";
			}
		}
		
	}
	
	return valid;
	
}

function ValidateCheckBox(control, reqlabel)
{
	var name = document.getElementById(control);
	var valid = true;
	
	if(!(name.checked))
	{
		if(reqlabel != "")
			document.getElementById(reqlabel).style.display="";
		valid = false;
	}
	else
	{
		if(reqlabel != "")
			document.getElementById(reqlabel).style.display="none";
	}
	
	return valid;
	
}

function ValidateDDL(control, reqlabel, initialvalue)
{
	var name = document.getElementById(control);
	var valid = true;
	
	if ((name.value==null) || (name.value==initialvalue)) {
	  if(reqlabel != "")
		document.getElementById(reqlabel).style.display="";
	  valid = false;
	}
	else {
	   if(reqlabel != "")
		document.getElementById(reqlabel).style.display="none";
	}
	
	return valid;
}

function CheckEmail(addr) {
	
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
		if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
				return false;
		}
	}
	for (i=0; i<addr.length; i++) {
		if (addr.charCodeAt(i)>127) {
				return false;
		}
	}

	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
			return false;
	}
	
	if (atPos == 0) {
			return false;
	}
	
	if (addr.indexOf('@', atPos + 1) > - 1) {
			return false;
	}
	
	if (addr.indexOf('.', atPos) == -1) {
		return false;
	}
	
	if (addr.indexOf('@.',0) != -1) {
			return false;
	}
	
	if (addr.indexOf('.@',0) != -1){
			return false;
	}
	
	if (addr.indexOf('..',0) != -1) {
			return false;
	}
	
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
			return false;
	}
	
	return true;
}

function ValidatePhoneNumber(control)
{

	var name = document.getElementById(control);
	
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	s=stripCharsInBag(name.value,validWorldPhoneChars);

	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidateZipCode(control)
{
	var name = document.getElementById(control);
	
	var minDigitsInZipCode = 5;
	
	return (isInteger(name.value) && name.value.length >= minDigitsInZipCode);
	
}

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function phoneMaskOld()
  {
        var sMask = "01234567890";
        var KeyTyped = String.fromCharCode(window.event.keyCode);
        var srcObject = window.event.srcElement;
        if (sMask.indexOf(KeyTyped.toString()) == -1)
                {
                        window.event.keyCode = 0;
                        _ret = false;
                } 
   frigger = document.getElementById(window.event.srcElement.id);
   keyCount = frigger.value.length;
    var tmpStr = "(";
    
    keyEntered = KeyTyped;
    keyCount++;
    switch (keyCount)
    {
    case 2: 
      tmpStr += srcObject.value;
      srcObject.value = tmpStr;
      break;
    case 5:
      srcObject.value += ") ";
      break;
    case 10:
      srcObject.value += "-";
      break;
      }
 }
 
 function phoneMask(e)
  {
    var sMask = "01234567890";
    var KeyTyped;
    
    //if( = String.fromCharCode(window.event.keyCode);
    
    KeyTyped = window.event ? String.fromCharCode(e.keyCode) : String.fromCharCode(e.which);
   
    //var srcObject = window.event.srcElement;
    var srcObject = e.srcElement ? e.srcElement : e.target;
    
    
    if (sMask.indexOf(KeyTyped.toString()) == -1)
    {
		
       if(window.event)
       {
	      e.keyCode = 0;
	   }
	   else
	   {
	      e.which = 0;
	   }
	       
       _ret =  false;
    }
    
   var elementid = window.event ? e.srcElement.id : e.target.id;
   
   frigger = document.getElementById(elementid);
   keyCount = frigger.value.length;

   
   var tmpStr = "(";
    
    keyEntered = KeyTyped;
    keyCount++;
    switch (keyCount)
    {
    case 2: 
      tmpStr += srcObject.value;
      srcObject.value = tmpStr;
      break;
    case 5:
      srcObject.value += ") ";
      break;
    case 10:
      srcObject.value += "-";
      break;
      }
 }
 
 function zipMask(e)
  {
     var sMask = "01234567890";
     var KeyTyped = window.event ? String.fromCharCode(e.keyCode) : String.fromCharCode(e.which);
     var srcObject = e.srcElement ? e.srcElement : e.target;
     if (sMask.indexOf(KeyTyped.toString()) == -1)
     {
       if(window.event)
       {
	      e.keyCode = 0;
	   }
	   else
	   {
	      e.which = 0;
	   }
	   
       _ret = false;
     } 
     
     var elementid = window.event ? e.srcElement.id : e.target.id;
     
     frigger = document.getElementById(elementid);
     keyCount = frigger.value.length;
     var tmpStr = "";
    
     keyEntered = KeyTyped;
     /*
     keyCount++;
     switch (keyCount)
     {
       case 2: 
        tmpStr += srcObject.value;
        srcObject.value = tmpStr;
        break;
       case 3:
        srcObject.value += "";
        break;
       case 6:
        srcObject.value += "-";
        break;
      }
     */
 }
 
 function CheckDEA(DEA)
	{
		var DEAReg = /^[A-Za-z]{2}\d{7}/
		
		if (DEA.search(DEAReg)==-1) //if match failed
		{				
			return false;
		}
		
		return true;
	}
 
 