// JavaScript Document


//function for the index page. 
function validateIndex(theForm){
	
	var bool = 1;
	var msg = "The following fields cannot be left blank:\n";
	var msgindiv ="";
	// Start of Business card elements------->

	if (!validRequired(Trim(theForm.numPeople.value))){
		bool = 0;
		msgindiv = "The number of people you are enrolling\n" + msgindiv;
		theForm.numPeople.focus();
	}
			
	//Checking the select boxes
	
	if(theForm.chooseevent.value == 0) {
		bool = 0;
		msgindiv = "The workshop you are enrolling for\n" + msgindiv;
		theForm.chooseevent.focus();
	}
		
	if(bool == 0) {
		msg += msgindiv;
		alert(msg);
		return false;
	}
	else {
		return true;
	}
	// <---------------  end of Submitting true of false to the form.
	
}// END validateIndex(theForm)



//function for the attendees page. 
function validateAttendees(theForm,numPple){
	var boolAtt = 1;
	var boolEmailAtt = 1;
	var msgAtt = "The following fields cannot be left blank:\n";
	var msgindivAtt ="";
	var msgEmail = "";
	// Start of Business card elements------->

	for (i = 1; i <= numPple; i++) {
		var fst = eval("theForm.first"+i+".value");
		if (!validRequired(Trim(fst))) {
			boolAtt = 0;
			msgindivAtt += "First Name for Attendee "+i +" is a required field\n";
		}
		
		var lst = eval("theForm.last"+i+".value");
		if (!validRequired(Trim(lst))) {
			boolAtt = 0;
			msgindivAtt += "Last Name for Attendee "+i +" is a required field\n";
		}
		
		var em = eval("theForm.email"+i+".value");
				
		if (!validRequired(Trim(em))) {
			boolAtt = 0;
			msgindivAtt += "Email Address for Attendee "+i +" is a required field\n";
		}
		
		// Checking the format of email address
		var em = eval("theForm.email"+i+".value");
		if(!validEmail(em)){
			boolEmailAtt =0;
			msgEmail += "Email address for Attendee "+i+ " should be in the form: yourname@yourdomain.com\n";
		}
		
	} // for (i = 1; i <= numPple; i++)
		
	if(boolAtt == 0) {
		msgAtt += msgindivAtt;
		alert(msgAtt);
		return false;
	}
	else if(boolEmailAtt ==0) {
		alert(msgEmail);
		return false;
	}
	else {
		return true;
	}
	// <---------------  end of Submitting true of false to the form.
}// END validateAttendees(theForm)

//function for the attendeesDetail page. 
function validateAttendeesDetail(theForm,numPple){
	var boolAtt = 1;
	var boolEmailAtt = 1;
	var msgAtt = "The following fields cannot be left blank:\n";
	var msgindivAtt ="";
	var msgEmail = "";
	// Start of Business card elements------->

	for (i = 1; i <= numPple; i++) {
		var fst = eval("theForm.first"+i+".value");
		if (!validRequired(Trim(fst))) {
			boolAtt = 0;
			msgindivAtt += "First Name for Attendee "+i +" is a required field\n";
		}
		
		var lst = eval("theForm.last"+i+".value");
		if (!validRequired(Trim(lst))) {
			boolAtt = 0;
			msgindivAtt += "Last Name for Attendee "+i +" is a required field\n";
		}
		
		var em = eval("theForm.email"+i+".value");
		if (!validRequired(Trim(em))) {
			boolAtt = 0;
			msgindivAtt += "Email Address for Attendee "+i +" is a required field\n";
		}
		
		var co = eval("theForm.org"+i+".value");
		if (!validRequired(Trim(co))) {
			boolAtt = 0;
			msgindivAtt += "The Organization for Attendee "+i +" is a required field\n";
		}
		
		var ad = eval("theForm.add1"+i+".value");
		if (!validRequired(Trim(ad))) {
			boolAtt = 0;
			msgindivAtt += "Address for Attendee "+i +" is a required field\n";
		}
		
		var ct = eval("theForm.city"+i+".value");
		if (!validRequired(Trim(ct))) {
			boolAtt = 0;
			msgindivAtt += "City for Attendee "+i +" is a required field\n";
		}
		var st = eval("theForm.state"+i+".value");
		if (!validRequired(Trim(st))) {
			boolAtt = 0;
			msgindivAtt += "State for Attendee "+i +" is a required field\n";
		}
		var zp = eval("theForm.zip"+i+".value");
		if (!validRequired(Trim(zp))) {
			boolAtt = 0;
			msgindivAtt += "Zip Code for Attendee "+i +" is a required field\n";
		}
		
		var ph = eval("theForm.phone"+i+".value");
		if (!validRequired(Trim(ph))) {
			boolAtt = 0;
			msgindivAtt += "Phone for Attendee "+i +" is a required field\n";
		}
		
		// Checking the format of email address
		var em = eval("theForm.email"+i+".value");
		if(!validEmail(em)){
			boolEmailAtt =0;
			msgEmail += "Email address for Attendee "+i+ " should be in the form: yourname@yourdomain.com\n";
		}
		
	} // for (i = 1; i <= numPple; i++)
		
	if(boolAtt == 0) {
		msgAtt += msgindivAtt;
		alert(msgAtt);
		return false;
	}
	else if(boolEmailAtt ==0) {
		alert(msgEmail);
		return false;
	}
	else {
		return true;
	}
	// <---------------  end of Submitting true of false to the form.
}// END validateAttendeesDetail(theForm)





//function for the Payment page. 
function validatePayment(theForm){
	
	
	var bool = 1;
	var msg = "The following fields cannot be left blank:\n";
	var msgindiv = "";
		
	if (!validRequired(Trim(theForm.nameOnCard.value))){
		bool = 0;
		msgindiv += "Name\n";
		theForm.nameOnCard.focus();
	}
	
	if (!validRequired(Trim(theForm.addOnCard.value))){
		bool = 0;
		msgindiv += "Address\n";
		theForm.addOnCard.focus();
	}
	if (!validRequired(Trim(theForm.cityOnCard.value))){
		bool = 0;
		msgindiv += "City\n";
		theForm.cityOnCard.focus();
	}
	if (!validRequired(Trim(theForm.stateOnCard.value))){
		bool = 0;
		msgindiv += "State\n";
		theForm.stateOnCard.focus();
	}
	if (!validRequired(Trim(theForm.zipOnCard.value))){
		bool = 0;
		msgindiv += "Zip Code\n";
		theForm.zipOnCard.focus();
	}
	if (!validRequired(Trim(theForm.cardNumber.value))){
		bool = 0;
		msgindiv += "Credit Card Number\n";
		theForm.cardNumber.focus();
	}
	if (!validRequired(Trim(theForm.csc.value))){
		bool = 0;
		msgindiv += "Security Code\n";
		theForm.csc.focus();
	}
	
	if (!valButton(theForm.type)) {
		bool = 0;
		msgindiv += "Type of Credit Card\n";
	}
	
	if(theForm.month.value == 0) {
		bool = 0;
		msgindiv += "Credit Card Expiration Month\n";
	}
	
	if(theForm.year.value == 0) {
		bool = 0;
		msgindiv += "Credit Card Expiration Year\n";
	}
	
	var boolCard = 1;
	var msgCard;
	if(!isCardTypeCorrect(Trim(theForm.cardNumber.value))) {
		boolCard = 0;
		msgCard = " The Credit Card Number is not a valid One\n";
	}
	
	var boolCSC = 1;
	var msgCSC;
	//alert(document.form1.csc.value.length);
	for (var n = 0; n < theForm.csc.value.length; n++) {
	   if (!isDigit (theForm.csc.value.substring (n,n+1))) {
			boolCSC =0;
			msgCSC = "The Security Code has to be numeric\n";
			break;
	  }
   	}
	
	// Checking expiration date on cc againts current date
	var boolCC = 1;
	var d = new Date();
	var curr_month = d.getMonth();
	var curr_year = d.getFullYear();
	
	curr_month +=1;
	
	if(curr_year > theForm.year.value) {
		boolCC = 0;
		msgCC = "The Credit Card Expiration cannot be less than the current MM/YY\n";
	}
	else if((curr_month > theForm.month.value) && (curr_year == theForm.year.value)) {
		boolCC = 0;
		msgCC = "The Credit Card Expiration cannot be less than the current MM/YY\n";
	}
	if(bool == 0) {
		msg += msgindiv;
		alert(msg);
		return false;
	}
	else if(boolCC == 0) {
		alert(msgCC);
		return false;
	}
	else if(boolCard == 0) {
		alert(msgCard);
		return false;
	}
	else if(boolCSC == 0) {
		alert(msgCSC);
		return false;
	}
	
	else {
		return true;	
	}
	
}// END validatePayment(theForm)



//Validating the credit card number

function isDigit (c)
{
	var strAllowed = "1234567890";
  
   return (strAllowed.indexOf (c) != -1);
}

function isCardTypeCorrect (strNum)
{
	var cctype;
    var nLen = 0;
   for (n = 0; n < strNum.length; n++)
   {
      if (isDigit (strNum.substring (n,n+1)))
         ++nLen;
   }
 
  var cnt = -1;
   for (var i=0; i < document.form1.type.length; i++) {
		 if (document.form1.type[i].checked) {cnt = i;}
	}
	if(cnt == 0) { cctype = 'Visa';}
	else if(cnt == 1) { cctype = 'Master Card';}
	else if(cnt == 2) { cctype = 'Amex';}
	
	/*
   if (cctype == 'Visa')
 	return ((strNum.substring(0,1) == '4') && (nLen == 13 || nLen == 16));
   else if (cctype == 'Amex')
      return ((strNum.substring(0,2) == '34' || strNum.substring(0,2) == '37') && (nLen == 15));
   else if (cctype == 'Master Card')
      return ((strNum.substring(0,2) == '51' || strNum.substring(0,2) == '52'
              || strNum.substring(0,2) == '53' || strNum.substring(0,2) == '54'
              || strNum.substring(0,2) == '55') && (nLen == 16));
   else
      return false;
  */
  /* Nithin changed this on March 26 2008 */
  if (cctype == 'Visa')
 	return ((strNum.substring(0,1) == '4') && (nLen == 13 || nLen == 16));
   else if (cctype == 'Amex')
      return ((strNum.substring(0,1) == '3') && (nLen == 15));
   else if (cctype == 'Master Card')
      return ((strNum.substring(0,1) == '5') && (nLen == 16));
   else
      return false;
}



function validRequired(formField){
	var result = true;
	if (formField == "")	{
		result = false;
	}
	return result;
}

// Function to trim characters from the beginning and the end of the string
function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){
		return "";
	}
	else{
		return TRIM_VALUE;
	}
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return"";
	}
	var iTemp = v_length -1;

	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
	}
	else{
		strTemp = VALUE.substring(0,iTemp +1);
	break;
}
iTemp = iTemp-1;

} //End While
return strTemp;

} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;

	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function



// Function for email address
function validEmail(formField){
	var result = true;
	if(Trim(formField) != ""){
		if (result && ((formField.length < 3) || !isEmailAddr(formField)) ){
			result = false;
		}
	}
  return result;
}

// Check is emailAddress
function isEmailAddr(email){
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}



//Radio Buttons Check
function valButton(btn) {
	var bChecked = true;
	//alert("Comes into Radio Box Loop ");
	var cnt = -1;
	for (var i=0; i < btn.length; i++) {
		 if (btn[i].checked) {cnt = i; i = btn.length;}
	}
	if (cnt > -1){
		bChecked = true;
	}
	else bChecked = false;
	
	return bChecked;
}

