var pers_4 = "Please enter your email address";
var pers_8 = "The email address you entered has syntax errors";
var pers_64 = "Your birthday is no valid date";

function isValidEmail () {
if (checkBirthday() == false) {
  return false
}
var emailStr = document.forms[0].inpEmail.value
// alert(emailStr)
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)
// alert("marina")
if (matchArray==null) {
    alert(pers_4)
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert(pers_4)
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
            alert(pers_8)
			return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
    alert(pers_8)
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>6) {
   // the address must end in a two - six letter word.
    alert(pers_8)
   return false
}

if (len<2) {
    alert(pers_8)
   return false
}

// If we've gotten this far, everything's valid!
return true;
}

function isValidEmailFeed () {
var emailStr = document.forms[1].inpEmailfeed.value
var cmtStr = document.forms[1].commentsfeed.value
if (cmtStr.length <= 0) {
  alert("You didn't write your comments yet!")
  return false
}

if (emailStr.length <= 0 || emailStr == "Enter Your Email") {
  return true
}

// alert(emailStr)
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)
// alert(document.forms[1].commentsfeed.value)
if (matchArray==null) {
    alert(pers_4)
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert(pers_4)
    return false
}

var IPArray=domain.match(ipDomainPat)
// alert(IPArray)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
            alert(pers_8)
			return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
// alert(domainArray)
if (domainArray==null) {
    alert(pers_8)
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
// alert(len)
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>6) {
   // the address must end in a two - six letter word.
    alert(pers_8)
   return false
}

if (len<2) {
    alert(pers_8)
   return false
}

// If we've gotten this far, everything's valid!
return true;
}

//if birthday is filled out, it must be a valid date
function checkBirthday() {
    day = document.forms[0].inpBDdd.value;
    month = document.forms[0].inpBDmm.value;
    //existing date ?
    if (day != "" || month != "" ) {
      if (isValidDate( month + "/" + day) == false ) {
         alert(pers_64);
         document.forms[0].inpBDdd.focus();
         return false;
      }
    }
    //date must be in the past
    month =  month - 1; //future-past check: months from 0 - 11
    return true;
}

function isValidDate(dateStr) {
  // date is expected as a string like MM/DD
  //var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; 
  var datePat = "^[0-9]{1,2}/[0-9]{1,2}"; 

  var matchArray = dateStr.match(datePat); // is the format ok?

  if (matchArray == null) {
    //alert(dateStr + " Date is not in a valid format.")
    return false;
  }

  month = dateStr.substring(0,dateStr.indexOf('/'));
  day = dateStr.substring(dateStr.indexOf('/')+1,dateStr.length+1);
  if (month < 1 || month > 12) { // check month range
    //alert("Month must be between 1 and 12.");
    return false;
  }

  if (day < 1 || day > 31) {
    //alert("Day must be between 1 and 31.");
    return false;
  }

  if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    //alert("Month "+month+" doesn't have 31 days!")
    return false;
  }

  if (month == 2) { // check for february 29th
    if (day>29) {
      return false;
    }
  }
  return true;
}
