
/* This funtion is used for Event Calendar page */
function checkCalendar(formName,EmailField,varEmail) {
  var foundChecked = false;
  var today = new Date();
  for(i = 0; i < document[formName].elements.length; i++){
    // did user choose to be notified of changes to an event?
		if(document[formName].elements[i].name.substring(0,7) == "Changes" && foundChecked == false){
			if(document[formName].elements[i].checked)
				foundChecked = true;	
		}
    // did user choose to be reminded N days before an event?
    else if(document[formName].elements[i].name.substring(0,4) == "Days"){
			// is the value in the text box a number?
      if (isNaN(document[formName].elements[i].value)){
         alert('Please enter a number for the days you wish to be notified before the event. \n \"' + document[formName].elements[i].value + '\" is an invalid number.');
         document[formName].elements[i].value = "";
         //object.focus(document[formName].elements[i]); << TIM CHECK THIS
         return false;}
      // is the value in the text box greater than or equal to 0?
      else if (document[formName].elements[i].value != ""){
        if (document[formName].elements[i].value <= 0){
          alert('Please enter a number for the days you wish to be notified before the event. \n \"' + document[formName].elements[i].value + '\" is an invalid number.');
          document[formName].elements[i].value = "";
          return false;
      // is the value less than the available number of days before the event?
        } else {
          EventID = document[formName].elements[i].name.substring(4);
          elementPrefix = "document['" + formName + "'].elements['";
          elementSuffix = EventID + "'].value";
          thisEventYear = eval(elementPrefix + "EventDateYear" + elementSuffix);
          thisEventMonth = eval(elementPrefix + "EventDateMonth" + elementSuffix);
          thisEventDay = eval(elementPrefix + "EventDateDay" + elementSuffix); 
          thisEventDate = new Date(thisEventYear,thisEventMonth,thisEventDay);
          dateCompare(thisEventDate,today);
          if(document[formName].elements[i].value > dayDifference){
            alert('Please enter a value less than ' + dayDifference + ' days.');
            document[formName].elements[i].value = "";
            return false;}
          else foundChecked = true;
        }
      }
		}
	}
function dateCompare(date1,date2){
  dayDifference = parseInt((date1 - date2)/86400000);
}
  
  // did user choose to be reminded of NEW events?
  if (document[formName].Notify.checked) {
    foundChecked = true;
  }
  // if any of the 3 checks above fail, notify user
	if(!foundChecked) {
		alert('Please select the notifications you wish to receive via ' + varEmail +'.');
    return false;
  }
  // check email address
  checkEmail(formName,EmailField,varEmail);
  if (!checked) {
    return false;
  }
}

/* This function is our global email check - also see checkEmail.js */
function checkEmail(formName,EmailField,varEmail) {
  // did user enter an email address?
  if (document[formName][EmailField].value.length == 0) {
    alert("Please enter your " + varEmail + " address.");
	document[formName][EmailField].focus();
	return checked=false;
  }
  // is the email address a valid address?
  if (document[formName][EmailField].value.length >0) {
    i=document[formName][EmailField].value.indexOf("@")
    j=document[formName][EmailField].value.indexOf(".",i)
    k=document[formName][EmailField].value.indexOf(",")
    kk=document[formName][EmailField].value.indexOf(" ")
    jj=document[formName][EmailField].value.lastIndexOf(".")+1
    len=document[formName][EmailField].value.length

    if ((i>0) && (j>(1+1)) && (k==-1) && (kk==-1) && (len-jj >=2) && (len-jj<=4)) {
	  // len-jj: GTE 2 for .ws, .cc; LTE 4 for .info
      return checked=true;
	} else {
      alert("Please enter your exact " + varEmail + " address.\n" + document[formName][EmailField].value + " is invalid.")
      return checked=false; }
  }
}

// checks keyword searches (edgar, edgarSearch, releases, releaseSearch)
	function SH_checkKeywords(formName,KeywordField) {
		var sendAlert = false;
		if (document[formName]) { /* using form NAME */
			if ((document[formName][KeywordField].value.length == 0) || (document[formName][KeywordField].value == " ")) {
		     sendAlert = true;
			}
		} else	if (document.getElementById(formName)) {/* using form ID - need this for strict XHTML */
			if ((document.getElementById(formName)[KeywordField].value.length == 0) || (document.getElementById(formName)[KeywordField].value == " "))
			sendAlert = true;
		}
		/* if one of the two checks above found a problem */
		if (sendAlert == true) {
			alert("Please enter the keywords you would like to search.");
			return false;
		}
	}
	
// checks list boxes on distlist.cfm, Cancel box will deactivate if any are selected
function SH_greyCancel(formName) { 
	var foundChecked = SH_findChecked(formName);
	if(foundChecked) { document[formName].Cancel.disabled = true; }
	else {document[formName].Cancel.disabled = false;}
}

// if cancel on distlist.cfm is checked, the list boxes will deactivate
function SH_greyMedia(formName) { 
	if(document[formName].Cancel.checked == true) {
		for(i = 0; i < document[formName].elements.length; i++){
			if(document[formName].elements[i].name.substring(0,5) == "Media") {
				document[formName].elements[i].disabled = true;
	  	}
		}
	}
	else { // find and un-grey Media
		for(i = 0; i < document[formName].elements.length; i++){
			if(document[formName].elements[i].name.substring(0,5) == "Media") {
				document[formName].elements[i].disabled = false;
	  	}
		}
	}
}

// finds checked boxes on distlist.cfm
function SH_findChecked(formName) {
	for(i = 0; i < document[formName].elements.length; i++) {
		if(document[formName].elements[i].name.substring(0,5) == "Media"){
			if(document[formName].elements[i].checked)
	    	return true; 
	  	}
	} // no checked boxes were found.
	return false;
}

// checks form fields on distlist.cfm
function SH_checkDistlist (formName,EmailField,varEmail,shName,shProfile){
	// Only checkboxes can have a name starting with 'Media' (Cap Sensitive)
	// All checkboxes you want to look for must start with 'Media' (Cap Sensitive)
	// -RCS 
	var foundChecked = SH_findChecked(formName);
	
	if(!foundChecked && !document[formName].Cancel.checked) {
		alert('Please select the desired information you wish to receive via ' + varEmail + '. If you no longer wish to receive news by ' + varEmail + ', check the unsubscribe box and submit the form.');
    return false;
  }
	checkEmail(formName,EmailField,varEmail);
	if (!checked) {
    return false;
  }
	Sh_msg = "";
// this variable will activate check for first name, last name, profile
	if (shName == "on") {
			if ((document[formName].FirstName.value.length == 0) || (document[formName].FirstName.value == " ")) {
				if (!document[formName].Cancel.checked) {
					Sh_msg = Sh_msg + "First name\n";
				} // if they're canceling, we don't need their name
			}
			if ((document[formName].LastName.value.length == 0) || (document[formName].LastName.value == " ")) {
				if (!document[formName].Cancel.checked) {
					Sh_msg = Sh_msg + "Last name\n";
				} // if they're canceling, we don't need their name
			}
	}
	if (shProfile == "on") {
			if ((document[formName].InvestorType.value == "")  && !document[formName].Cancel.checked) {
				Sh_msg = Sh_msg + "Profile that most closely describes you";
			}	
	}
	// if Name or Profile are missing, alert user.
	if (!Sh_msg == "") {
	  alert("The following fields are required:\n\n" + Sh_msg);
		return false;
	}
}

// checks form fields on comment.cfm
function SH_checkComment(formName,EmailField,varEmail,varEmail2){
	Cm_Sh_msg="";
	
	if ((document[formName].Subject.value == "") || (document[formName].Subject.value == "")) {
		Cm_Sh_msg = Cm_Sh_msg + "Subject\n";
	} // Check Subject
	if ((document[formName].FirstName.value.length ==0) || (document[formName].FirstName.value == " ")){
    	Cm_Sh_msg = Cm_Sh_msg + "First name\n";
	} // Check First name
	if ((document[formName].LastName.value.length ==0) || (document[formName].LastName.value == " ")){
    	Cm_Sh_msg = Cm_Sh_msg + "Last name\n";
	} // Check Last name
  	if ((document[formName].Email.value.length ==0) || (document[formName].Email.value == " ")){
		Cm_Sh_msg = Cm_Sh_msg + varEmail2 + " address\n";
	} // Check Last name
	if ((document[formName].MessageText.value.length ==0) || (document[formName].MessageText.value == " ")){
    	Cm_Sh_msg = Cm_Sh_msg + "Comments\n";
	}
	// if any required fields are missing, alert user.
	if (!Cm_Sh_msg == "") {
	  	alert("The following fields are required:\n\n" + Cm_Sh_msg);
	 	return false;
	}
	if (document[formName].MessageText.value.length >= 8000) {
    	alert("We\'re sorry, there is a limit of 8,000 characters for the comments field. You currently have " + document[formName].MessageText.value.length + ".");
		return false;
	} // Checks the number of characters in Comment field. Max = 8000
	checkEmail(formName,EmailField,varEmail);
		if (!checked) {
    	return false;
	} // Check Email
}

function SH_checkDocreq(formName,EmailField,varEmail,varEmail2,DocMaxCount) {
	var dr_msg = "";
  	var checkSelected = false;
  	var MaxCount = DocMaxCount;

	if (MaxCount == 0) {
		// If there are no documents, do not submit the form.
		alert("There are no documents available at this time.");
		return false;
	} else {
		// Check required fields if documents exist.
		if (MaxCount == 1) {
		  if (document[formName].DocumentID.checked == true) {
		    checkSelected = true;
		  }
		} else {
		    for (var i = 0;  i < document[formName].DocumentID.length;  i++) {
			  if (document[formName].DocumentID[i].checked == true) {
			    checkSelected = true;
			  }
		  }
		}
		if (!checkSelected) {
		  dr_msg = dr_msg + "Documents to be mailed\n";
		}
		if ((document[formName].FirstName.value.length ==0) || (document[formName].FirstName.value == " ")) {
			dr_msg = dr_msg + "First name\n";
		}
		if ((document[formName].LastName.value.length ==0) || (document[formName].LastName.value == " ")) {
	        dr_msg = dr_msg + "Last name\n";
		}
		if (document[formName].InvestorType.value == "") {
		    dr_msg = dr_msg + "Profile that most closely describes you\n";
		}
		if ((document[formName].Address1.value.length ==0) || (document[formName].Address1.value == " ")) {
		    dr_msg = dr_msg + "Address\n";
		}
		if ((document[formName].City.value.length ==0) || (document[formName].City.value.length == " ")) {
		    dr_msg = dr_msg + "City\n";
		}
		if ((document[formName].State.value.length ==0) || (document[formName].State.value.length == " ")) {
			dr_msg = dr_msg + "State/province\n";
		}
		if ((document[formName].PostalCode.value.length ==0) || (document[formName].PostalCode.value == " ")) {
			dr_msg = dr_msg + "Postal code\n";
		}
		if ((document[formName].Email.value.length ==0) || (document[formName].Email.value == " ")) {
			dr_msg = dr_msg + varEmail2 + " address\n";
		}
		if ((document[formName].ShipmentMethod.value != "ma") && (document[formName].ShipperAccount.value.length==0)) {
		    dr_msg = dr_msg + "Account number for express delivery\n";
		}
		if (!dr_msg == "") {
			alert("The following fields are required:\n\n" + dr_msg);
			return false;
		}
		 // Check Email
		checkEmail(formName,EmailField,varEmail);
		if (!checked) {
	    	return false;
		}
	}
}