var re = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
var alpha = new RegExp("[a-zA-Z]");

var namePattern = /^[A-Za-z][a-z]+\s+[A-Za-z]*.*\s*[A-Za-z][a-z]+$/
function isOkName(str) {
	return namePattern.test(str)
}

function returnDate(dateSt){

//alert("DATE IS "+ dateSt);
// Checks for the following valid date formats:
// MM/DD/YY 

var dateStr = dateSt;

var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{2})$/; // requires 2 digit year
var dval = "OK";
var matchArray = dateStr.match(datePat); // is the format ok?

if(dateStr == ""){
	alert("Date is a required field!");
	dval = null;
	return dval;
}

if (matchArray == null) {
	alert(dateStr + " Date is not in a valid date.")
	dval=null;
	return dval;
}

day = matchArray[1]; // parse date into variables
month = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
dval=null;
return dval;
}


if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
dval = null;
return dval;
}


if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert("Month "+month+" doesn't have 31 days!")
	dval = null;
	return dval;
	}


if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
		alert("February " + year + " doesn't have " + day + " days!");
		dval=null;
		return dval;
		}
	}
dval = (day+'/'+month+'/'+year);
return dval
}


function CountWords (thisField, showWordCount) {
    if (showWordCount == null) {
    showWordCount = true;
    }
				
    var charCount = thisField.value.length;
    var fullStr = thisField.value + " ";
    var initialWhitespaceRExp = /^[^A-Za-z0-9]+/gi;
    var leftTrimmedStr = fullStr.replace(initialWhitespaceRExp, "");
    var nonAlphanumericsRExp = rExp = /[^A-Za-z0-9]+/gi;
    var cleanedStr = leftTrimmedStr.replace(nonAlphanumericsRExp, " ");
    var splitString = cleanedStr.split(" ");
    var wordCount = splitString.length -1;
		
    if (fullStr.length <2) {
    wordCount = 0;
    }
    if (wordCount == 1) {
    wordOrWords = " word";
    }
    else {
    wordOrWords = " words";
    }
				
    if (showWordCount) {
  //  alert ("Word Count:  " + wordCount + wordOrWords);
    }

    return wordCount;
}


function valid(){

	truecount=0;

	// xxxxxxxxxxxxxx sender name xxxxxxxxxxxxxxxx
	if(document.emform.name.value==""){alert("Your full name is required!");truecount=0;document.emform.name.focus();return false;} else {truecount++;}	

	text=document.emform.name.value ;if(!alpha.test(text)){alert("Name is a text only field");truecount=0;document.emform.name.focus();return false;} else {truecount++;}

	sendername=document.emform.name.value;
	if(!isOkName(sendername)){
		alert("Use one of the following name formats : \n\n John Bloggs \n John H Bloggs \n John H. Bloggs \n\n john bloggs \n john h bloggs \n john h. bloggs \n\n If your name returns an error \n please use your own emailer \n and let me know \n thanks");
		truecount=0;document.emform.name.focus();return false;
		} else {truecount++;}

	// xxxxxxxxxxxxxx email xxxxxxxxxxxxxxxx
	if(document.emform.email.value==""){alert("Your email address is required!");truecount=0;document.emform.email.focus();return false;} else {truecount++;}		
	if(document.emform.email.value !=""){
		mail=document.emform.email.value;if(!re.test(mail)){alert("EMail is not a valid e-mail format");truecount=0;document.emform.email.focus();return false;}
	}

	// xxxxxxxxxxxxxx phone xxxxxxxxxxxxxxxx
	if((document.emform.phone.value=="")&&(document.emform.mobile.value=="")){alert("A phone or mobile number is required!");truecount=0;document.emform.phone.focus();return false;} else {truecount++;}
	
	// xxxxxxxxxxxxxx headline xxxxxxxxxxxxxxxx
	if(document.emform.head.value ==""){
		alert("You dont have to create a Headline\n however its handy for me if you do.");
	}
	
	// xxxxxxxxxxxxxx news date xxxxxxxxxxxxxxxx
	newsdate = document.emform.newsdate.value;
	 if(returnDate(newsdate)==null){document.emform.newsdate.focus();return false;}
	
	// xxxxxxxxxxxxxx author xxxxxxxxxxxxxxxx
	if(document.emform.author.value==""){alert("An author name is required! \n This can be your own name.");truecount=0;document.emform.author.focus();return false;} else {truecount++;}

	text=document.emform.author.value ;if(!alpha.test(text)){alert("Author Name is a text only field");truecount=0;document.emform.author.focus();return false;} else {truecount++;}

	authorname=document.emform.author.value;
	if(!isOkName(authorname)){
		alert("Use one of the following name formats : \n\n John Bloggs \n John H Bloggs \n John H. Bloggs \n\n john bloggs \n john h bloggs \n john h. bloggs \n\n If your name returns an error \n please use your own emailer \n and let me know \n thanks");
		truecount=0;document.emform.author.focus();return false;
		} else {truecount++;}

	// xxxxxxxxxxxxxx introduction xxxxxxxxxxxxxxxx
	if(document.emform.intro.value ==""){
		alert("You dont have to create an Introduction\n however its useful for longish news items.");
	}

	if(document.emform.intro.value !=""){
  	var theWordCount = CountWords(document.emform.intro, true);
  	if(theWordCount > 28){
  		alert("The Introduction is limited \n to a maximum of 28 words.");
  		return false;
  		document.emform.intro.focus();
		}
	}

	// xxxxxxxxxxxxxx news body xxxxxxxxxxxxxxxx
	if(document.emform.body.value ==""){alert("You must have some text in the News Story!");return false;document.emform.body.focus();}
	
	if(truecount==8){
		
		return true;
	} else { 
		truecount=0; 
		return false;
	} 
}
