//Extended Validation Function
function isValidInTxt(elINField,sINMsg){
	if(isWhitespace(elINField.value)){
		alert(sINMsg);
		elINField.focus();
		return false;
	} else {
		return true;
	}
}

//input user interface module
// input select box set up
// Industry

var iIndustryLim = 3;
function move(elFrom,elTo){
	var tmpOption = new Option(elFrom[elFrom.selectedIndex].text, elFrom[elFrom.selectedIndex].value);
	elTo[elTo.length] = tmpOption;
	elFrom[elFrom.selectedIndex].selected = false;
}
function industry(elINForm, elINLstIndustries, elINIndustries){
	elForm = elINForm;
	if (elINLstIndustries.selectedIndex != -1) {
		if (elINIndustries.length >= iIndustryLim){
			alert("You have selected the limit for Industries (up to 3 industries).");
			return;
		}
		for(var i=0;i<elINIndustries.length;i++){
			if( elINIndustries[i].value == elINLstIndustries[elINLstIndustries.selectedIndex].value ) {
				 alert('Cannot select duplicate value.'); 
				 return;
			}
		}
		move(elINLstIndustries, elINIndustries);
		industry(elForm, elINLstIndustries, elINIndustries);
	}
}
function clearIndustry(elINIndustries){
	elChoice = elINIndustries;
	y=elChoice.length-1;
	for(x=y;x>=0;x--) if (elChoice[x].selected) elChoice[x] = null;
}
// end input select box set up

function selectAll(elForm, elCheckAll, sINToCheck){
	var bChecked;
	//if (!iRecords) return;
	if (elCheckAll.checked){
		bChecked = true;
	} else {
		bChecked = false;
	}
	for (x=1;x<elForm.length;x++) {
		if (elForm.elements[x].name == sINToCheck){
			//alert(elForm.elements[x].name);
			elForm.elements[x].checked = bChecked;
		}
	}
}
function unSelectAll(elObjEventFire,elCheckAll){
	if(!elObjEventFire.checked){
		elCheckAll.checked = false;
	}
}

function SelectAllList(CONTROL){
	for(var i = 0;i < CONTROL.length;i++){
	CONTROL.options[i].selected = true;}
}

function setOther(elINOther,elINSelect){
	if (isWhitespace(elINOther.value)){
	elINSelect.options[0].selected = true;
	
	} else {
	elINSelect.options[elINSelect.options.length - 1].selected = true;
	}
}
function clearOther(elINOther,elINSelect){
	if (elINSelect.options[elINSelect.options.selectedIndex].value != 5100){
		elINOther.value = '';
	}
}
//end of input user interface module

//Form submission
// Activation
function submitFrmUCNActivation(elINForm){
	elINForm.submit(); return true;
}
//I General Information
function submitFrmGeneral(elINForm){
	elForm = elINForm;
	if(validFrmGeneral(elForm)) elForm.submit();
	return false;
}
function validFrmGeneral(elINForm){
	//validation
	//username and password
	if(elINForm.usrID.value == 0){
		if(!isValidInTxt(elINForm.sUsername,'Username is required.')) return false;
		if(!isValidInTxt(elINForm.sPassword,'Password is required.')) return false;
		if(!isValidInTxt(elINForm.sConfirmPassword,'Confirmed Password is required.')) return false;
		if(elINForm.sPassword.value != elINForm.sConfirmPassword.value){
			alert('Password and Confirm Password do not match!!');
			elINForm.sPassword.focus();
			return false;
		}
	}
	if(!isValidInTxt(elINForm.first,'First name is required.')) return false;
	if(!isValidInTxt(elINForm.last,'Last name is required.')) return false;
	if(!isEmail(elINForm.email.value)){
		alert('Email is invalid.');
		elINForm.email.focus();
		return false;
	}
	if(!isValidInTxt(elINForm.pArea,'Area code is required.')) {
		return false;
	} else {
		if(!isInteger(elINForm.pArea.value)){
			alert('Invalid Area code! Allow only 3 digits.');
			elINForm.pArea.focus();
			return false;
		}
	}
	if(!isValidInTxt(elINForm.pNumber,'Phone number name is required.')) {
		return false;
	} else {
		if((!isInteger(elINForm.pNumber.value)) || (elINForm.pNumber.value.length != 7)){
			alert('Invalid Phone number! Allow only 7 digits.');
			elINForm.pNumber.focus();
			return false;
		}
	}
	if(!isValidInTxt(elINForm.add1,'Address Line 1 is required.')) return false;
	if(!isValidInTxt(elINForm.city,'City is required.')) return false;
	if(!isValidInTxt(elINForm.zip,'Zipcode is required.')) return false;
	if(!isValidInTxt(elINForm.country,'Country is required.')) return false;
	// if user fills in the fax information so validate it
	if((!isWhitespace(elINForm.fArea.value)) ||
		(!isWhitespace(elINForm.fNumber.value)) ||
		(!isWhitespace(elINForm.fExt.value))){
		if((!isInteger(elINForm.fArea.value)) || (elINForm.fArea.value.length != 3)){
			alert('Invalid Fax Area code! Allow only 3 digits.');
			elINForm.fArea.focus();
			return false;
		}
		
		if((!isInteger(elINForm.fNumber.value)) || (elINForm.fNumber.value.length != 7)){
			alert('Invalid Fax number! Allow only 7 digits.');
			elINForm.fNumber.focus();
			return false;
		}
	}
	return true;
}
//II Background
function submitFrmBackground(elINForm){
	var iIndex = 0;
	elForm = elINForm;
	if(validFrmBackground(elForm)) {
		
		elForm.submit();
	}
	return false;
}
function validFrmBackground(elINForm){
	var bTemp;
	if(!isValidInTxt(elINForm.comp,'Current company name is required.')) return false;
	// at least one industry
	if( elINForm.industries.options.length < 1 || elINForm.industries.options.length > 3){
		alert('Please select at least one industry and maximun is 3.');
		elINForm.lstIndustries.focus();
		return false;
	}
	if(!isValidInTxt(elINForm.jbTitle1,'Job Title 1 is required.')) return false;
	if(!isWhitespace(elINForm.duty.value)){
		if (elINForm.duty.value.length > 1000){
			var bUsrRet = confirm('Duties text is too long (1,000 characters maximun). Do you want to truncate the text?');
			if (!bUsrRet){
				elINForm.duty.focus();
				return false;
			} else { elINForm.duty.value = elINForm.duty.value.substring(0,1000); }
		}
	}
	//at least one Regions defined
	bTemp = false;
	for(var i =0;i<4;i++){
		if(elINForm.ucnGeog[i].checked){
			bTemp = true;
			//if city is checked, at least one city name is required
			if(i == 1){
				if(!isValidInTxt(elINForm.cityName1,'City name is required.')) return false;
			} else if (i == 3){
				//if country is checked, required country name
				if(!isValidInTxt(elINForm.cntryName1,'Country name is required.')) return false;
			}
		}
	}
	if(!bTemp){ alert('Please specify one of region options.'); elINForm.ucnGeog(0).focus(); return false; }
	//At least one Education
	if(!isValidInTxt(elINForm.university1,'Eduction 1 is required.')) {
		return false;
	} else {
		if (!isValidEducation(elINForm.degree1,elINForm.colMaj1,elINForm.sOtherDgr1,elINForm.sOtherColMaj1)) return false;
	}
	if (!isWhitespace(elINForm.university2.value)){
		if (!isValidEducation(elINForm.degree2,elINForm.colMaj2,elINForm.sOtherDgr2,elINForm.sOtherColMaj2)) return false;
	}
	if (!isWhitespace(elINForm.university3.value)){
		if (!isValidEducation(elINForm.degree3,elINForm.colMaj3,elINForm.sOtherDgr3,elINForm.sOtherColMaj3)) return false;
	}
	if(!isWhitespace(elINForm.StudentActivities.value)){
		if (elINForm.StudentActivities.value.length > 1000){
			var bUsrRet = confirm('Student activities text is too long (1,000 characters maximun). Do you want to truncate the text?');
			if (!bUsrRet){
				elINForm.StudentActivities.focus();
				return false;
			} else { elINForm.StudentActivities.value = elINForm.StudentActivities.value.substring(0,1000); }
		}
	}
	//select all element in industry and in academic select box
	SelectAllList(elINForm.industries);
	//validation
	return true;
}

function isValidEducation(elINDegree, elINColMaj, elINDegreeOther, elINColMajOther){
		if(elINDegree.options[elINDegree.selectedIndex].value == 0){
			alert('Please select degree');
			elINDegree.focus();
			return false;
		} else if (elINDegree.options[elINDegree.selectedIndex].value == 5100) {
			if (isWhitespace(elINDegreeOther.value)){
				alert('Please define other degree');
				elINDegreeOther.focus();
				return false;
			}
		}
		if (elINColMaj.options[elINColMaj.selectedIndex].value == 0) {
			alert('Please select college/major.\nThe "Other College/Major" at the end of list may be selected.');
			elINColMaj.focus();
			return false;
		} else if (elINColMaj.options[elINColMaj.selectedIndex].value == '5100,5100') {
			if (isWhitespace(elINColMajOther.value)){
				alert('Please define other college/major');
				elINColMajOther.focus();
				return false;
			}
		}
		return true;
}
//III UCAN
function submitFrmUCAN(elINForm){
		elForm = elINForm;
		if(validFrmUCAN(elForm)) elForm.submit();
		return false;
	}
function validFrmUCAN(elINForm){
	//validation
	//at least one activities select
	var bTemp = false;
	for(var i =0;i<elINForm.ucnAct.length;i++){
		if(elINForm.ucnAct[i].checked)	bTemp = true;
	}
	if(!bTemp){ alert('Please select activity. (C)'); elINForm.ucnActAll.focus(); return false; }
	//
	//at least one information select
	bTemp = false;
	for(var i =0;i<elINForm.ucnInfo.length;i++){
		if(elINForm.ucnInfo[i].checked)	bTemp = true;
	}
	if(!bTemp){ alert('Please select type of information. (D)'); elINForm.ucnInfoAll.focus(); return false; }
	//at least one information select
	bTemp = false;
	for(var i =0;i<elINForm.ucnGroup.length;i++){
		if(elINForm.ucnGroup[i].checked)	bTemp = true;
	}
	if(!bTemp){ alert('Please select student group. (E)'); elINForm.ucnGroupAll.focus(); return false; }
	if(elINForm.ucnSource.selectedIndex == 0){
		alert('Please select how you hear about UCAN. (G)');
		elINForm.ucnSource.focus();
		return false;
	}
	var bTemp;
	if(!isWhitespace(elINForm.advice.value)){
		if (elINForm.advice.value.length > 1000){
			var bUsrRet = confirm('Advice text is too long (1,000 characters maximun). Do you want to truncate the text?');
			if (!bUsrRet){
				elINForm.advice.focus();
				return false;
			} else { elINForm.advice.value = elINForm.advice.value.substring(0,1000); }
		}
	}
	return true;
}

function viewUcan(elINForm,iINUsrID){
	elINForm.user_iid.value = iINUsrID;
	elINForm.submit();
}

//validate search form
function submitFrmUCNSearch(elINForm){
		elForm = elINForm;
		if(validFrmUCNSearch(elForm)) elForm.submit();
		return false;
	}
function validFrmUCNSearch(elINForm){
	for(var i =0;i<4;i++){
		if(elINForm.geog[i].checked){
			//if city is checked, at least one city name is required
			if(i == 1){
				if(!isValidInTxt(elINForm.cityName,'City name is required.')) return false;
			} else if (i == 3){
				//if country is checked, required country name
				if(!isValidInTxt(elINForm.cntryMane,'Country name is required.')) return false;
			} else if (i == 2){
				//if state is checked, required state name
				if(elForm.statName.selectedIndex == -1 || elForm.statName.selectedIndex == 0){
					alert('Please select state');
					elINForm.statName.focus();
					return false;
				}
			}
		}
	}
	return true;
}

//view detail report
function viewRPTDTUHAlum(bINUHAlum,sINUCNGRP){
	var elDTForm = document.frmUCNRptDT;
	var sUCNGrpInI = '';
	sUCNGrpInI = elDTForm.UCNGRP.value; 
	if(bINUHAlum != ''){
		elDTForm.UHALUM.value = bINUHAlum;}
	else{
		elDTForm.UHALUM.value = '0,1';}
	if(sINUCNGRP != ''){
		elDTForm.UCNGRP.value = sINUCNGRP;
	}
	elDTForm.submit();
	elDTForm.UCNGRP.value = sUCNGrpInI;
}

function viewRPTDTIND(bINReg,sININDs){
	var elDTForm = document.frmUCNRptDT;
	var sUCNINDInI = '';
	sUCNINDInI = elDTForm.IND.value;
	dREG1Ini = elDTForm.REG1.value;dREG2Ini = elDTForm.REG2.value;
	dRET1Ini = elDTForm.RET1.value;dRET2Ini = elDTForm.RET2.value; 
	if(bINReg == 0){
		elDTForm.REG1.value = '';
		elDTForm.REG2.value = '';
	} else {
		elDTForm.RET1.value = '';
		elDTForm.RET2.value = '';
	}
	if(sININDs != ''){
		elDTForm.IND.value = sININDs;
	}
	elDTForm.submit();
	//reset form variable back
	elDTForm.IND.value = sUCNINDInI;
	elDTForm.REG1.value = dREG1Ini;elDTForm.REG2.value = dREG2Ini;
	elDTForm.RET1.value = dRET1Ini;elDTForm.RET2.value = dRET2Ini;
}

function viewRPTDTSRC(sINSrcID){
	var elDTForm = document.frmUCNRptDT;
	elDTForm.SRCID.value = sINSrcID
	elDTForm.submit();
}

//copy email to clipboard
function highlightandcopy() {
	document.emails.emaillist.focus();
	document.emails.emaillist.select();
	if (document.all) {
		therange=document.emails.emaillist.createTextRange()
		therange.execCommand("Copy")
		window.status="Contents highlighted and copied to clipboard!"
		alert('Email Addresses copied.  You may paste them wherever you want.');
	} else {
		alert('Highlight and copy will not work on this browser, please select and copy the email addresses by hand.');
	}
}