//--------------------------------------------------------------
//--- validate the video request form
//--------------------------------------------------------------

function valFrmVidRequest() {


if (!requiredCheck(document.frmVidRequest.artist_name, "Artist Name")) return false;
if (!requiredCheck(document.frmVidRequest.video, "Video Request")) return false;
if (!requiredCheck(document.frmVidRequest.show, "Select a Show")) return false;
if (!requiredCheck(document.frmVidRequest.message, "Your Request Message")) return false;
if (!requiredCheck(document.frmVidRequest.first_name, "Your First Name")) return false;
if (!requiredCheck(document.frmVidRequest.last_name, "Your Last Name")) return false;
if (!requiredCheck(document.frmVidRequest.email, "Your E-mail Address", "")) return false;
if (!emailCheck(document.frmVidRequest.email, "Your E-mail Address", "")) return false;
if (!requiredCheck(document.frmVidRequest.city, "City")) return false;
if (!requiredCheck(document.frmVidRequest.state, "State/Country")) return false;
if (!requiredCheck(document.frmVidRequest.zip, "Zip/Postal Code")) return false;
if (!requiredCheck(document.frmVidRequest.birth_year, "Birth Year")) return false;

if (!(document.frmVidRequest.gender[0].checked) && !(document.frmVidRequest.gender[1].checked) ){
	alert("Gender is a required field."); return false;
}

	document.frmVidRequest.submit();
	return true;

}


//--------------------------------------------------------------
//--- validate the send to a friend form
//--------------------------------------------------------------

function valFrmSendToFriend() {


if (!requiredCheck(document.frmSendToFriend.name, "Your Name")) return false;
if (!requiredCheck(document.frmSendToFriend.email, "Your E-mail Address")) return false;
if (!emailCheck(document.frmSendToFriend.email, "Your E-mail Address")) return false;

if (!emailCheck(document.frmSendToFriend.friend_email_1, "E-mail Address for Friend #1", " for Friend #1")) return false;
if (!emailCheck(document.frmSendToFriend.friend_email_2, "E-mail Address for Friend #2", " for Friend #2")) return false;
if (!emailCheck(document.frmSendToFriend.friend_email_3, "E-mail Address for Friend #3", " for Friend #3")) return false;
if (!emailCheck(document.frmSendToFriend.friend_email_4, "E-mail Address for Friend #4", " for Friend #4")) return false;

var sFriend1 = document.frmSendToFriend.friend_email_1.value;
var sFriend2 = document.frmSendToFriend.friend_email_2.value;
var sFriend3 = document.frmSendToFriend.friend_email_3.value;
var sFriend4 = document.frmSendToFriend.friend_email_4.value;

if (!(sFriend1) && !(sFriend2) && !(sFriend3) && !(sFriend4)) {
	alert("E-mail Address for Friend #1 is a required field."); 
	document.frmSendToFriend.friend_email_1.focus();
	return false;
}

	document.frmSendToFriend.submit();
	return true;

}



//--------------------------------------------------------------
//--- validate required fields
//--------------------------------------------------------------

function requiredCheck(field, strLabel){
strField=field.value
if (strField == "" || strField == null){
alert(strLabel + " is a required field");
field.focus();
return false;
}
return true;
}


//--------------------------------------------------------------
//--- validate email 
//--------------------------------------------------------------

function emailCheck (emailCtrl, strLabel, strShortLabel) {
var emailStr = emailCtrl.value
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var firstChars=validChars
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom="(" + firstChars + validChars + "*" + ")"
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)

if (emailStr=="") return true;

if (matchArray==null) {
	alert("Please enter a valid E-mail Address (name@domain.com)" + strShortLabel);
	emailCtrl.select();
	return false;
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert("Please enter a valid E-mail Address (name@domain.com)" + strShortLabel);
	emailCtrl.select();
    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 for " + strLabel + " is invalid!");
		emailCtrl.select();
		return false;
	    }
    }
    return true;
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("Please enter a valid E-mail Address (name@domain.com)" + strShortLabel);
	emailCtrl.select();
    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>3) {
   alert("Please enter a valid E-mail Address (name@domain.com)" + strShortLabel);
	emailCtrl.select();
   return false;
}

/* ALLOW TWO CHARACTER DOMAIN ADDRESSES
if (domArr[domArr.length-1].length==2 && len<3) {
   var errStr="Please enter a valid e-mail address (name@domain.com)" + strShortLabel + " - This address ends in two characters, which is a country"
   errStr+=" code.  Country codes must be preceded by "
   errStr+="a hostname and category (like com, co, pub, pu, etc.)";
   alert(errStr);
	emailCtrl.select();
   return false;
}
*/

if (domArr[domArr.length-1].length==3 && len<2) {
   var errStr="Please enter a valid E-mail Address (name@domain.com)" + strShortLabel
   alert(errStr);
	emailCtrl.select();
   return false;
}

return true;
}