function setSubject(theform)
{//used in adminCNotes
	document.addviewers.Subject.value=theform.value;	
}
function setBody(theform)
{//used in adminCNotes
	document.addviewers.Body.value=theform.value;	
}

function checkNewPswdForm(form)
{
	 if(!validRequired(form.email,"Email Address")){
	  return false;
	 }
	 if (!isEmailAddr(form.email)){
	  return false;
	 }
	 return true;  
}

function checkAddDocform(form)
{
	if(!validRequired(form.title, "Document Title")){
		return false;
	}
	if (!validRequired(form.doc, "Document Name")){
		return false;
	}
	return true;
}

function setDocTitle()
{
	var theName = new String(document.adddoc.doc.value);
    var theNameLength = theName.length;
	
	if(document.adddoc.title.value > '')
		return;
	else {
		//get rid of path while \ is present
		while(theName.indexOf('\\') != -1)
			theName = theName.substring(theName.indexOf('\\')+1, theNameLength);
		//set to name minus extension which starts at .
		document.adddoc.title.value = theName.substr(0,theName.indexOf('.'));
	}
	return;
}

function checkaddCNoteform(form)
{
	if(!validRequired(form.Subject, "Subject")){
		return false;
	}
	if (!validRequired(form.Body, "Body")){
		return false;
	}
	return true;
}

function checkreplyCNoteform(form)
{
	if (!validRequired(form.Body, "Body")){
		return false;
	}
	return true;
}

function checkChangePassForm(form)
{
	if(!validRequired(form.alias, "Account Name")){
		return false;
	}
	if(!validRequired(form.oldpswd, "Old Password")){
		return false;
	}
	if(form.newpswd.value != "" && !validNewPass(form.newpswd, form.conf_newpswd)){
		return false;
	}
	if(form.conf_newpswd.value != "" && !validNewPass(form.conf_newpswd, form.newpswd)){
		return false;
	}
	return true;
}

function checkChProfileform(form)
{

  if(form.vendor == true && !validRequired(form.coname,"Company Name")){
	 return false;
  }
  if(!validRequired(form.fname,"First Name")){
	  return false;
  }
  if(!validRequired(form.lname,"Last Name")){
	  return false;
  }
  if(!validAreaCode(form.areacode)){
		  return false;
  }
  if(!validPhone(form.phone)){
		  return false;
  }
  if(!validRequired(form.email,"Email")){
	  return false;
  }
  if (!isEmailAddr(form.email)){
	  return false;
  }

  return true;
}


function checkaddclientform ( form )
{
  if(!validRequired(form.fname,"First Name")){
	  return false;
  }
  if(!validRequired(form.lname,"Last Name")){
	  return false;
  }
  if(!validRequired(form.email,"Email")){
	  return false;
  }
  if (!isEmailAddr(form.email)){
	  return false;
  }
/*  if(!validAreaCode(form.areacode)){
		  return false;
  }
  if(!validPhone(form.phone)){
		  return false;
  }*/
 //form filled out successfully
  return true ;
}
function matchFieldValue ( sourcefield, sourcedest )
{	
	sourcedest.value = sourcefield.value;
	return true;
}

function makeBlank (field) 
{
	field.value = "";
	return true;
}

function checkaddclientEXTform ( form )
{
  if(!validRequired(form.fname,"First Name")){
	  return false;
  }
  if(!validRequired(form.lname,"Last Name")){
	  return false;
  }  
  if(!validPhoneNew(form.CellPhone, "Cell Phone Number",0)){
		  return false;
  }
  if(form.CellPhone.value != "" && !validRequiredSelect(form.Carrier, "Cell Phone Carrier")){	
		  return false;
  }
  if(!validPhoneNew(form.phone, "Primary Phone Number",1)){
		  return false;
  }
  if(!validRequired(form.street,"Street Address")){
	  return false;
  }
  if(!validRequired(form.city,"City")){
	  return false;
  }  
  if(!validRequired(form.state,"State")){
	  return false;
  }  
  if(!validRequired(form.zip,"Zip Code")){
	  return false;
  }  
  if(!isValidZip(form.zip)){
	  return false;
  }
  if(!validRequired(form.email1,"Email Address")){
	  return false;
  }
  if(!validRequired(form.email2,"Verify Email Address")){
	  return false;
  }
  if(!match(form.email1,form.email2,"Email Addresses")){
	  return false;
  }
  if (!isEmailAddr(form.email1)){
	  return false;
  }
  if(!validRequired(form.password1,"Password")){
	  return false;
  }  
  if(!validRequired(form.password2,"Verify Password")){
	  return false;
  }  
  if(!validNewPass(form.password1, form.password2)){
		return false;
  }
 //form filled out successfully
  return true ;
}


function checkaddprojectform(form)
{
  if(!validRequired(form.ProjectName,"Project Name")){
	  return false;
  }
 /* if(!validAreaCode(form.area1)){
		  return false;
  }*/
 /* if(!validPhone(form.phone1)){
		  return false;
  }*/
  /*if(!validRequired(form.mapid,"Map ID #")){
	  return false;
  }*/
  if(!validRequired(form.street,"Street")){
	  return false;
  }
  if(!validRequired(form.city,"City")){
	  return false;
  }  
  if(!validRequired(form.state,"State")){
	  return false;
  }  
  if(!validRequired(form.zip,"Zip Code")){
	  return false;
  }  
  if(!isValidZip(form.zip)){
	  return false;
  }
  if(!validRequired(form.desc,"Description")){
	  return false;
  } 
 //form filled out successfully
  return true ;
}



function check_delete_docs_form(form)
{
	return(checkselection(form, form.display_item.value));
}

function checkdelclientform(form)
{
	return(checkselection(form, form.display_item.value));
}

function checkselection(form,item)
{	
	total = document.forms[form.name].elements.length;
	if(!checkboxes_checked(form)){
		alert("No " + item + " selected.");
		return false;
	}
	return true;
}
	//else {
	//	var return_value = confirm("Are you sure you want to " + action + " these " + item + "?");
	//	if ( return_value == true )
      //  {
		//	return true;
        //}
//	}
//	return false;
//}

function isEmailAddr(emailfield)
{
  var result = false;
  var theStr = new String(emailfield.value);
  var at_index = theStr.indexOf("@");
  if (at_index > 0) //@ isn't the first character
  {
    var period_index = theStr.indexOf(".",at_index);
    if ((period_index > at_index+1) && (theStr.length > period_index+1)){
		return true;
	} 
  }
  if(!result){
	  alert( "The email address you entered is invalid." );
	  emailfield.focus();
	  return false;
  }

}

function isEmpty(formField)
{
  if (formField.value == "")
  {
   	return true;
  }
  return false;
}



function validRequiredSelect(formField, fieldLabel)
{
	if(formField.options[formField.selectedIndex].value == ""){
		alert("Please make a selection for the '" + fieldLabel + "' field.");
		return false;
	}
	return true	;
}

function validRequired(formField,fieldLabel)
{
  var result = true;
  
  if (formField.value == "")
  {
    alert('Please enter a value for the "' + fieldLabel +'" field.');
    formField.focus();
    result = false;
  }

  return result;
}

function validPhone (phonefield)
{
  var pnumber = new String (phonefield.value);
  if (pnumber.length != 10)
  {
	  alert("Please enter a 10-digit phone number");
	  phonefield.focus();
	  return false;
  }
  var realphone = new Number (phonefield.value);
  if(isNaN(realphone))
  {
  	  alert("Please enter a 10-digit phone number, using only digits 0-9");
	  phonefield.focus();
	  return false;
  }
  return true;
}

function validPhoneNew (phonefield,label,required)
{
  var pnumber = new String (phonefield.value);
  if (pnumber.length != 10 && required == 1)
  {
	  alert("Please enter a 10-digit phone number for " + label);
	  phonefield.focus();
	  return false;
  }
  else if (pnumber.length >= 1 && pnumber.length != 10 && required !=1)
  {
      alert("The value entered for " + label + " is invalid. Please correct or remove.");
	  phonefield.focus();
	  return false;
  }
  var realphone = new Number (phonefield.value);
  if(isNaN(realphone) && required == 1)
  {
  	  alert("Please enter a 10-digit phone number, using only digits 0-9 for " + label);
	  phonefield.focus();
	  return false;
  }
  else if(pnumber.length == 10 && isNaN(realphone) && required != 1)
  {
      alert("The value entered for " + label + " is invalid. Please correct using only digits 0-9 or remove.");
	  phonefield.focus();
	  return false;
  }
  
  return true;
}

function validAreaCode (codefield)
{
  var pnumber = new String (codefield.value);
  if (pnumber.length != 3)
  {
	  alert("Please enter a 3-digit area code");
	  codefield.focus();
	  return false;
  }
  var realphone = new Number (codefield.value);
  if(isNaN(realphone))
  {
  	  alert("Please enter a 3-digit area code, using only digits 0-9");
	  codefield.focus();
	  return false;
  }
  return true;
}

function isValidZip(zipField)
{
  var zipcode = new String (zipField.value);
  if(zipcode.length != 5)
  { 
  	alert("Please enter a 5-digit zip code");
	zipField.focus();
	return false;
  }
  var code = new Number(zipField.value);
  if(isNaN(code))
  {
  	alert("Please enter a 5-digit zip code, using only digits 0-9");
	zipField.focus();
	return false;
  }
  return true;
}

function match(field1,field2,name)
{
	if(field1.value != field2.value){
		alert(name + " do no match.");
		field1.focus();
		return false;
	}
	return true;

}

function validNewPass(newpswdfield, conf_newpswdfield)
{
	
	if(!validPswd(newpswdfield)){
		return false;
	}

	var newPass1 = new String();
	var newPass2 = new String();
	if(newpswdfield.value != conf_newpswdfield.value){
		alert("New passwords do not match.");
		newpswdfield.focus();
		return false;
	}
	return true;
}


function validPswd (pswdfield)
{
	var password = new String(pswdfield.value);
	if(password.length != 8)
	{
		alert("Password must be at 8 characters.");
		pswdfield.focus();
		return false;
	}
	var alphanum = Array("-", "_", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
							  "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", 
							  "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", 
							  "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 
							  "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
	for(j=0;j<password.length;j++)
	{
		var valid = false;
		for(k=2; k<64;k++)
		{
		  if(password.charAt(j) == alphanum[k]){
		   	valid = true;
			k=64;
		  }
		}
		if(!valid)
		{
			alert("Please use only alphanumeric characters [a-z,A-Z,0-9] for your password.");
			pswdfield.focus();
			return false;
		}
	}
	return true;
}

function isChecked(thecheckbox)
{
	if(thecheckbox.checked) {
		return true;
	}
	return false;
}


function checkAll(formname)
{
	var num=document.forms[formname].elements.length
	var setting = document.forms[formname].elements['checkall'].checked;
	for(j=0;j<num;j++)
	{
		if(document.forms[formname].elements[j].type == "checkbox")
			document.forms[formname].elements[j].checked = setting;
	}
	return;
}

function  checkboxes_checked(form)
{
	var total = document.forms[form.name].elements.length;
	for(j = 0; j<total; j++)
	{
		if(document.forms[form.name].elements[j].type == "checkbox" && document.forms[form.name].elements[j].checked)
		{
			return true;
		}
	}
	return false;
}

function skills_selected(form)
{
    
	if (checkboxes_checked(form)) {
		return true;
	}
	else {
	    var return_value = confirm("Submit information without skills selection?");
		if ( return_value == true )
        {
			return true;
        }
    else{
			return false;
		}
	}//confirm box
}


function checkaddvendorform(form)
{
//contact info
	if(!validRequired(form.email,"Email")){
		  return false;
	  }
	if (!isEmailAddr(form.email)){
		  return false;
	 }

//company info
	if(isEmpty(form.coname) && isEmpty(form.fname) && isEmpty(form.lname))
	{
		setDisplay("Company");
		form.coname.focus();
		return(confirm("Proceed without entering Company Information?"));
	}

//skillset info
	if(!skills_selected(form)){
		setDisplay("Skills");
	  	return false;
	}

	return true;
}
function checkdocclientform(form)
{
	return true;
}

function setSendEmail(form)
{
	if(form.sendText.checked)
		form.sendEmail.checked = form.sendText.checked;
	return true;
}
function checkaddvendoremailform(form)
{
	if(!validRequired(form.email,"Email")){
		return false;
	}
	if (!isEmailAddr(form.email)){
		  return false;
	  }
	return(confirm("Is this correct? " + form.email.value));
}

function setDisplay(theTable) {
theTables = document.getElementsByTagName("table");
 for (i=0; i<theTables.length; i++) {
  if (theTables[i].id.indexOf("Tab") >= 0) {
   if (theTables[i].id == "Tab" + theTable) theTables[i].style.display = "inline"; 
   else theTables[i].style.display = "none";
  }
 }
} 


//from experts.com
function formatdate(datestr)
{
   var curdate = new Date();
   var curyear = (curdate.getYear()%100)+1980;  // to project 20 years forward and 80 years back (for birthdays, etc)

   datestr = datestr.split("-").join("/").split(".").join("/").split(" ").join("");
   if ( datestr == "" )
   {
      return(datestr);
   }

   // split the datestr into a 3 part array (mm/dd/yy)
   var mmddyy = datestr.split("/");
   if ( mmddyy.length != 3 )
   {
      return("NaN");
   }

   // add leading zeros to month and day
   if ( mmddyy[0].length == 1 )
   {
      mmddyy[0] = "0" + mmddyy[0];
   }

   if ( mmddyy[1].length == 1 )
   {
      mmddyy[1] = "0" + mmddyy[1];
   }

   // convert the year to a four digit year
   if ( mmddyy[2].length == 2 )
   {
      //mmddyy[2] = ( parseFloat(mmddyy[2]) > 49 ) ? '19'+mmddyy[2] : '20'+mmddyy[2];

      if ( Math.abs(curyear-parseFloat('19'+mmddyy[2])) <= Math.abs(curyear-parseFloat('20'+mmddyy[2])) )
      {
         mmddyy[2] = '19'+mmddyy[2];
      }
      else
      {
         mmddyy[2] = '20'+mmddyy[2];
      }
   }

   // rebuild the datestr from the formatted array, and check to see if it contains a valid date
   var tmpdate = new Date( datestr=mmddyy.join("/") );
   if ( tmpdate == "NaN" || tmpdate == "Invalid" )
   {
      return("NaN");
   }

   if ( parseFloat(mmddyy[0]) == tmpdate.getMonth()+1  &&  parseFloat(mmddyy[1]) == tmpdate.getDate()  &&  parseFloat(mmddyy[2]) > 1900  &&  parseFloat(mmddyy[2]) < 2100 )
   {
      return(datestr);
   }

   return("NaN");
}


function checkDate(datewidget)
{
   if(datewidget.value == '.'){
   		var now = new Date();
   		datewidget.value = now.getMonth()+1 + "/" + now.getDate() + "/" + now.getFullYear();
		return true;
	}
   
   var datestr = formatdate(datewidget.value);

   if ( datestr == "NaN" )
   {
      datewidget.select();
      alert("Please enter a valid date (m/d/yy) for " + datewidget.name );
      datewidget.focus();
      return(false);
   }

   datewidget.value = datestr;

   return(true);
}


function checksessionsearchform(form)
{
	if(checkDate(form.startdate) && checkDate(form.enddate))
		return true;
	return false;
}

function checkaddAnnouncementform(form)
{
	if(form.AnnText.value > ''){
		return true;
	}
	else {
		alert("Please enter text");
		return false;
	}
}


function checkusersearchform(form)
{
	alert(form.searchBy.value);
	alert(form.keyword.value);
	return true;
}

function checkprojsearchform(form)
{
	if(form.searchBy.value == 'dates' && checkDate(form.startdate) && checkDate(form.enddate))
		return true;
	else if(form.keyword.value == ''){
		alert("Please enter a keyword.");
		form.keyword.focus();
		return false;
	}
	else
		return true;
		
	return false;
}

function projSearchsetKeyword(){
	with(document.projsearch){
		if(searchBy.value == "dates"){
			keywordspan.style.display = "none";
			daterangespan.style.display = "inline";
		}
		else {
			keywordspan.styledisplay = "inline";
			daterangespan.style.display = "none";
		}
	}
}

function checkdocsearchform(form)
{
	if(form.searchBy.value == 'dates' && checkDate(form.startdate) && checkDate(form.enddate))
		return true;
	else if(form.keyword.value == ''){
		alert("Please enter a keyword.");
		form.keyword.focus();
		return false;
	}
	else
		return true;
		
	return false;
}

function docSearchsetKeyword(){
	with(document.docsearch){
		if(searchBy.value == "dates"){
			keywordspan.style.display = "none";
			daterangespan.style.display = "inline";
		}
		else {
			keywordspan.styledisplay = "inline";
			daterangespan.style.display = "none";
		}
	}
}

function toggleCNote(elementID){
	section = document.getElementById('CN'+elementID+'span');
	if(section.style.display == "inline")	section.style.display = "none"
	else section.style.display = "inline"	;
//	theSpans = document.getElementsByTagName("span");
	/*for (i=0; i<theSpans.length; i++) {
  		if (theSpans[i].id.indexOf("span") >= 0) {
			if (theSpans[i].id == 'CN'+elementID+'span') theSpans[i].style.display = "inline"; 
			else theSpans[i].style.display = "none";
  		}
 	}*/
}