var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function emailCheck (emailStr)
{
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null)
		{
			//alert("Email address seems incorrect (check @ and .'s)");
			//return "Email address seems incorrect (check @ and .'s)";
			return false;
		}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++)
		{
		if (user.charCodeAt(i)>127)
			{
				//alert("This username contains invalid characters.")
				//return "This username contains invalid characters.";
				return false;
			}
		}
	for (i=0; i<domain.length; i++)
		{
		if (domain.charCodeAt(i)>127)
			{
				//alert("Ths domain name contains invalid characters.");
				//return "This domain name contains invalid characters.";
				return false;
			}
		}
	if (user.match(userPat)==null)
		{
			//alert("The username doesn't seem to be valid.")
			//return "The username doesn't seem to be valid.";
			return false;
		}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
		{
		for (var i=1;i<=4;i++)
			{
			if (IPArray[i]>255)
				{
					//alert("Destination IP address is invalid!")
					//return "Destination IP address is invalid!";
					return false;
   				}
			}
		}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++)
		{
		if (domArr[i].search(atomPat)==-1)
			{
				//alert("The domain name does not seem to be valid.");
				//return "The domain name does not seem to be valid.";
				return false;
			}
		}
		return "true";
}
function checknumber(val)
	{
		var x=val
		//var anum=/(^\d+$)|(^\d+\.\d+$)/
		var anum=/^-?\d+$/
		if (anum.test(x))
			return true;
		else
			{
				return false;
			}
	}
function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}
function regNewsLtr(submit){
		callAjax(document.getElementById('email').value,"nletter");
}
function validateContact(dbdata){
	     var f = document.getElementById('contact');
	     var subject = document.getElementById('subject');
	     var msg = document.getElementById('msg');
	     var name = document.getElementById('name');
	     var email = document.getElementById('email');

	     if(subject.value.search(/\S/)==-1) {
	     	document.getElementById('subTD').className='checkoutErrTD';
	     	document.getElementById('subTD1').className='checkoutErrTD';
	     	document.getElementById('subTD2').className='checkoutErrTD';
	     	document.getElementById('subTD2').innerHTML='<i>Subject Required!</i>';

	        document.getElementById('msgTD').className='checkoutnoErrTD';
	        document.getElementById('msgTD1').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').innerHTML='';

	        document.getElementById('nmTD').className='checkoutnoErrTD';
	        document.getElementById('nmTD1').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').innerHTML='';
	        
	        document.getElementById('emailTD').className='checkoutnoErrTD';
	        document.getElementById('emailTD1').className='checkoutnoErrTD';
	        document.getElementById('emailTD2').className='checkoutnoErrTD';
	        document.getElementById('emailTD2').innerHTML='';
			subject.focus();
			return false;
	     }
	     
	    else if(msg.value.search(/\S/)==-1) {
	     	document.getElementById('subTD').className='checkoutnoErrTD';
	     	document.getElementById('subTD1').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').innerHTML='';

	        document.getElementById('msgTD').className='checkoutErrTD';
	        document.getElementById('msgTD1').className='checkoutErrTD';
	        document.getElementById('msgTD2').className='checkoutErrTD';
	        document.getElementById('msgTD2').innerHTML='<i>Contact Message Required!</i>';

	        document.getElementById('nmTD').className='checkoutnoErrTD';
	        document.getElementById('nmTD1').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').innerHTML='';
	        
	        document.getElementById('emailTD').className='checkoutnoErrTD';
	        document.getElementById('emailTD1').className='checkoutnoErrTD';
	        document.getElementById('emailTD2').className='checkoutnoErrTD';
	        document.getElementById('emailTD2').innerHTML='';
			msg.focus();
			return false;
	     }
	    else if(name.value.search(/\S/)==-1) {
	     	document.getElementById('subTD').className='checkoutnoErrTD';
	     	document.getElementById('subTD1').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').innerHTML='';

	        document.getElementById('msgTD').className='checkoutnoErrTD';
	        document.getElementById('msgTD1').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').innerHTML='';

	        document.getElementById('nmTD').className='checkoutErrTD';
	        document.getElementById('nmTD1').className='checkoutErrTD';
	        document.getElementById('nmTD2').className='checkoutErrTD';
	        document.getElementById('nmTD2').innerHTML='<i>Name Required!</i>';
	        
	        document.getElementById('emailTD').className='checkoutnoErrTD';
	        document.getElementById('emailTD1').className='checkoutnoErrTD';
	        document.getElementById('emailTD2').className='checkoutnoErrTD';
	        document.getElementById('emailTD2').innerHTML='';
			name.focus();
			return false;
	     }
	     if(email.value.search(/\S/)==-1) {
	     	document.getElementById('subTD').className='checkoutnoErrTD';
	     	document.getElementById('subTD1').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').innerHTML='';

	        document.getElementById('msgTD').className='checkoutnoErrTD';
	        document.getElementById('msgTD1').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').innerHTML='';

	        document.getElementById('nmTD').className='checkoutnoErrTD';
	        document.getElementById('nmTD1').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').innerHTML='';
	        
	        document.getElementById('emailTD').className='checkoutErrTD';
	        document.getElementById('emailTD1').className='checkoutErrTD';
	        document.getElementById('emailTD2').className='checkoutErrTD';
	        document.getElementById('emailTD2').innerHTML='<i>Email Required!</i>';
			email.focus();
			return false;
	     }
	     else
	     {
	     	getResult=emailCheck(email.value);
	     	if(getResult!="true")
	     		{
	     	document.getElementById('subTD').className='checkoutnoErrTD';
	     	document.getElementById('subTD1').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').className='checkoutnoErrTD';
	     	document.getElementById('subTD2').innerHTML='';

	        document.getElementById('msgTD').className='checkoutnoErrTD';
	        document.getElementById('msgTD1').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').className='checkoutnoErrTD';
	        document.getElementById('msgTD2').innerHTML='';

	        document.getElementById('nmTD').className='checkoutnoErrTD';
	        document.getElementById('nmTD1').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').className='checkoutnoErrTD';
	        document.getElementById('nmTD2').innerHTML='';
	        
	        document.getElementById('emailTD').className='checkoutErrTD';
	        document.getElementById('emailTD1').className='checkoutErrTD';
	        document.getElementById('emailTD2').className='checkoutErrTD';
	        document.getElementById('emailTD2').innerHTML='<i>Email Not Valid!</i>';
					email.focus();
	    			return false;
	     		}
	     }
	     return true	;
}