var legalChars = /^[a-zA-Z0-9\s_]+$/;
var legalStateCityPerson = /^[a-zA-Z\s]+$/;
var legalPins = /^[0-9]+$/;
var legalPh = /^[0-9-]+$/;
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";
}

/// Checking for object
function isArray(obj){
	return(typeof(obj.length)=="undefined")?false:true;
}

function validPassChars(str) {
    var pw;
    pw = str.match((/\"|\'|\s|\§|\;|\:|\*|\{|\}|\[|\]|\<|\>|\||\\|\/|\(|\)|\,|\°/)); // allow letters, numbers and special characters
    return pw;
}

function isDate(da, mth, yr) {
	if((/^[0-9]/).exec(da) == null || (/^[0-9]/).exec(mth) == null || (/^[0-9]/).exec(yr) == null) {
	    return false;
    }
	if( (mth==4) || (mth==6) || (mth==9) || (mth==11) )    // APRIL, JUNE, SEPTEMBER, NOVEMBER
  	{
    	if( da > 30 )
    	{
      		return false;
    	}
  	}
  	else if( (mth==1) || (mth==3) || (mth==5) || (mth==7) || (mth==8) || (mth==10) || (mth==12) )    // JANUARY, MARCH, MAY, JULY, AUGUST, OCTOBER, DECEMBER
  	{
    	if( da > 31 )
    	{
      		return false;
    	}
  	}
  	else if( mth == 2 )
  	{
    	if( da > 29 )
    	{
      		return false;
    	}
    	else if( (yr%100) == 0 )      //Millenium years, though divisible by 4 are not leap years. But 1600, 2000, 2400 are normal leap years
    	{
      		if( (yr%400) != 0 )
      		{
        		if( da > 28 )
        		{
          			return false;
        		}
      		}
    	}
    	else if( (yr%4) != 0 )
    	{
      		if( da > 28 )              //Non-leap years have only 28 days
      		{
        		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 loadDetails(id) {
    var f = $('frmMain1');
    var pga = f['hdnPgaction'];
     $(pga).value = 'classiDisp';
    var fid = f['hdnClassifiedId'];
    $(fid).value = id;
    f.submit();
}
function chkAddClassified() {
     var f = $('frmAddClassified');
     var state = f['state'];
     var city = f['city'];
     var title = f['title'];
     var address = f['address'];

	 
     var pincode = f['pincode'];
     var cperson = f['cperson'];
     var cno1 = f['cno1'];
     var cno2 = f['cno2'];
     var fax = f['fax'];
     var email = f['email'];

     if($F(state).search(/\S/)==-1) {
        document.getElementById('stateDiv').innerHTML='Please choose a state';
        document.getElementById('stateDiv').parentNode.parentNode.style.background='#6C7903';
        document.getElementById('stateDiv').parentNode.parentNode.style.color='#DFDAA6';
        document.getElementById('stateDiv').parentNode.parentNode.style.fontWeight='bold';
        document.getElementById('cityDiv').innerHTML='';
        document.getElementById('titleDiv').innerHTML='';
        document.getElementById('addressDiv').innerHTML='';
		document.getElementById('cpersonDiv').innerHTML='';
		document.getElementById('cno1Div').innerHTML='';
		document.getElementById('cno2Div').innerHTML='';
		document.getElementById('faxDiv').innerHTML='';
		document.getElementById('emailDiv').innerHTML='';
		$(state).focus();
		return false;
     }
     if($F(city).search(/\S/)==-1) {
        document.getElementById('stateDiv').innerHTML='';
        document.getElementById('cityDiv').innerHTML='Please choose a city';
        document.getElementById('cityDiv').parentNode.parentNode.style.background='#6C7903';
        document.getElementById('cityDiv').parentNode.parentNode.style.color='#DFDAA6';
        document.getElementById('cityDiv').parentNode.parentNode.style.fontWeight='bold';
        document.getElementById('titleDiv').innerHTML='';
        document.getElementById('addressDiv').innerHTML='';
		document.getElementById('pincodeDiv').innerHTML='';
		document.getElementById('cpersonDiv').innerHTML='';
		document.getElementById('cno1Div').innerHTML='';
		document.getElementById('cno2Div').innerHTML='';
		document.getElementById('faxDiv').innerHTML='';
		document.getElementById('emailDiv').innerHTML='';
		$(city).focus();
		return false;
     }
     if($F(title).search(/\S/)==-1) {
        document.getElementById('stateDiv').innerHTML='';
        document.getElementById('cityDiv').innerHTML='';
        document.getElementById('titleDiv').innerHTML='Please enter a title';
        document.getElementById('titleDiv').parentNode.parentNode.style.background='#6C7903';
        document.getElementById('titleDiv').parentNode.parentNode.style.color='#DFDAA6';
        document.getElementById('titleDiv').parentNode.parentNode.style.fontWeight='bold';
        document.getElementById('addressDiv').innerHTML='';
		document.getElementById('pincodeDiv').innerHTML='';
		document.getElementById('cpersonDiv').innerHTML='';
		document.getElementById('cno1Div').innerHTML='';
		document.getElementById('cno2Div').innerHTML='';
		document.getElementById('faxDiv').innerHTML='';
		document.getElementById('emailDiv').innerHTML='';
		$(title).focus();
		return false;
     }
	 document.getElementById('address').value=document.getElementById('address_rEdit').contentWindow.document.body.innerHTML;
     if((document.getElementById('address').value.search(/\S/)==-1) || (document.getElementById('address').value=="<br>")) {

        document.getElementById('stateDiv').innerHTML='';
        document.getElementById('cityDiv').innerHTML='';
        document.getElementById('titleDiv').innerHTML='';
        document.getElementById('addressDiv').innerHTML='Please enter address';
        document.getElementById('addressDiv').parentNode.parentNode.style.background='#6C7903';
        document.getElementById('addressDiv').parentNode.parentNode.style.color='#DFDAA6';
        document.getElementById('addressDiv').parentNode.parentNode.style.fontWeight='bold';
		document.getElementById('pincodeDiv').innerHTML='';
		document.getElementById('cpersonDiv').innerHTML='';
		document.getElementById('cno1Div').innerHTML='';
		document.getElementById('cno2Div').innerHTML='';
		document.getElementById('faxDiv').innerHTML='';
		document.getElementById('emailDiv').innerHTML='';
		$(address).focus();
		return false;

     }
     if($F(pincode).search(/\S/)!=-1) {
		 if (!legalPins.test($F(pincode))) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='Please enter proper pin';
				document.getElementById('pincodeDiv').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('pincodeDiv').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('pincodeDiv').parentNode.parentNode.style.fontWeight='bold';
				document.getElementById('cpersonDiv').innerHTML='';
				document.getElementById('cno1Div').innerHTML='';
				document.getElementById('cno2Div').innerHTML='';
				document.getElementById('faxDiv').innerHTML='';
				document.getElementById('emailDiv').innerHTML='';
				$(pincode).focus();
				return false;
		 }
     }
     if($F(cperson).search(/\S/)!=-1) {
		 if (!legalStateCityPerson.test($F(cperson))) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='';
				document.getElementById('cpersonDiv').innerHTML='Please enter proper name';
				document.getElementById('cpersonDiv').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('cpersonDiv').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('cpersonDiv').parentNode.parentNode.style.fontWeight='bold';
				document.getElementById('cno1Div').innerHTML='';
				document.getElementById('cno2Div').innerHTML='';
				document.getElementById('faxDiv').innerHTML='';
				document.getElementById('emailDiv').innerHTML='';
				$(cperson).focus();
				return false;
		 }
     }
     if($F(cno1).search(/\S/)==-1) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='';
				document.getElementById('cpersonDiv').innerHTML='';
				document.getElementById('cno1Div').innerHTML='Please enter contact number';
				document.getElementById('cno1Div').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('cno1Div').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('cno1Div').parentNode.parentNode.style.fontWeight='bold';
				document.getElementById('cno2Div').innerHTML='';
				document.getElementById('faxDiv').innerHTML='';
				document.getElementById('emailDiv').innerHTML='';
				$(cno1).focus();
				return false;
	 }
     if($F(cno1).search(/\S/)!=-1) {
		 if (!legalPh.test($F(cno1))) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='';
				document.getElementById('cpersonDiv').innerHTML='';
				document.getElementById('cno1Div').innerHTML='Please enter proper number';
				document.getElementById('cno1Div').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('cno1Div').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('cno1Div').parentNode.parentNode.style.fontWeight='bold';
				document.getElementById('cno2Div').innerHTML='';
				document.getElementById('faxDiv').innerHTML='';
				document.getElementById('emailDiv').innerHTML='';
				$(cno1).focus();
				return false;
		 }
	 }
     if($F(cno2).search(/\S/)!=-1) {
		 if (!legalPh.test($F(cno2))) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='';
				document.getElementById('cpersonDiv').innerHTML='';
				document.getElementById('cno1Div').innerHTML='';
				document.getElementById('cno2Div').innerHTML='Please enter proper number';
				document.getElementById('cno2Div').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('cno2Div').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('cno2Div').parentNode.parentNode.style.fontWeight='bold';
				document.getElementById('faxDiv').innerHTML='';
				document.getElementById('emailDiv').innerHTML='';
				$(cno2).focus();
				return false;
		 }
     }
     if($F(fax).search(/\S/)!=-1) {
		 if (!legalPh.test($F(fax))) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='';
				document.getElementById('cpersonDiv').innerHTML='';
				document.getElementById('cno1Div').innerHTML='';
				document.getElementById('cno2Div').innerHTML='';
				document.getElementById('faxDiv').innerHTML='Please enter proper fax number';
				document.getElementById('faxDiv').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('faxDiv').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('faxDiv').parentNode.parentNode.style.fontWeight='bold';
				document.getElementById('emailDiv').innerHTML='';
				$(fax).focus();
				return false;
		 }
     }
     if($F(email).search(/\S/)!=-1) {
		 if (!emailCheck($F(email))) {
				document.getElementById('stateDiv').innerHTML='';
				document.getElementById('cityDiv').innerHTML='';
				document.getElementById('titleDiv').innerHTML='';
				document.getElementById('addressDiv').innerHTML='';
				document.getElementById('pincodeDiv').innerHTML='';
				document.getElementById('cpersonDiv').innerHTML='';
				document.getElementById('cno1Div').innerHTML='';
				document.getElementById('cno2Div').innerHTML='';
				document.getElementById('faxDiv').innerHTML='';
				document.getElementById('emailDiv').innerHTML='Please enter proper email';
				document.getElementById('emailDiv').parentNode.parentNode.style.background='#6C7903';
				document.getElementById('emailDiv').parentNode.parentNode.style.color='#DFDAA6';
				document.getElementById('emailDiv').parentNode.parentNode.style.fontWeight='bold';
				$(email).focus();
				return false;
		 }
     }
     return true;
}
