
function NewWin2(url, scrollbars) {
	CMWindow=open(url,"_results",'toolbar=no,status=no,directories=no,scrollbars=yes,location=no,menubar=no,resizable=yes,width=425,height=450');

if (CMWindow.focus != null) {
    CMWindow.focus()
  }
}

function clearSearch() {
	if (document.searchform.qt.value == "Search Site") {
		document.searchform.qt.value = "";
	}
}

function SearchText() {
	if (document.searchform.qt.value == "") {
		document.searchform.qt.value = "Search Site";
	}
}


function doPollSubmit (frm) {

	/*  
		Client-side validation for poll on default.asp to 
		cancel submission when no answer selected.
		
		--gnaritas (DS)
	
	*/

	var radiobuttons=frm.polli,
		foundChecked=false;
	
	for(var i=0; i<radiobuttons.length; ++i){
		var thisRadiobutton=radiobuttons[i]
		
		if(thisRadiobutton.checked) foundChecked=true
		
	}
	
	if(foundChecked){
		NewWin2('about:blank')
		return true
	}
	
	else {
	
		alert("Please choose an answer.")
		return false
	}
}

function setFieldValue (theField, theValue) {
	theField.value=theValue
}

function makePhoneNumber (area, exchange, digits) {
	return "(" + area +") " + exchange + "-" + digits
}



/***************************
   
   Borrowed from courseserver with changes as noted -DS
   
****************************/
   

// Client Side Validation


/* new function -DS */


function getLabel(itemName) {
	
	var labels=document.getElementsByTagName("label")
	
	for(var i=0; i<labels.length; ++i){
	
		var thisLabel=labels[i],
			forVal=thisLabel.getAttribute("for");
			
		if(forVal==itemName) return thisLabel
		
	}
	
	return null
}


var errors ="";

function markError(label) {
	if (label.className && (label.className.indexOf("error")<0)) {
		label.origClass = label.className;
		label.className = label.origClass +" error"
	}
	else {
	if(!label.className)
		label.className = "error"

	}


}

function markNormal(label) {
	if (label.origClass) {
		label.className = label.origClass
	}
	else {
			label.className = "";


	}

}

function checkForSomeInput(formname, itemName, errorMsg) {

	/* changed to use getLabel -DS */
	
	var label = getLabel(itemName) || document.getElementById(itemName +"Label")

	if (!label)
		alert ("Can't find label:" +itemName)

	if (document.forms[formname].elements[itemName].value == "") {
		errors+=errorMsg +"<br/>";
		
		// markError(document.getElementById(itemName +"Label"));
		if(label) markError(label)
		
	}
	else {
		// markNormal(document.getElementById(itemName +"Label"));
		
		if(label) markNormal(label)

	}
}

// This does not work
function checkForSelectInput(formname, itemName, errorMsg) {
	var label = document.getElementById(itemName +"Label")
	var formElement = document.forms[formname].elements[itemName];

	alert (formElement.options[1][1]);
	if (!label)
		alert ("Can't find label:" +itemName)

		if (formElement.options[formElement.selectedIndex] == "") {
			errors+=errorMsg +".<br/>";
			markError(document.getElementById(itemName +"Label"));
		}
		else {
			markNormal(document.getElementById(itemName +"Label"));

		}
}

function checkForMatchedInput(formname,  item1,item2, errorMsg) {

	/* changed to use getLabel -DS */
	
	var label = getLabel(item2) || document.getElementById(item2 +"Label")

	if (!label)
		alert ("Can't find label:" +item2)


	if (document.forms[formname].elements[item1].value != document.forms[formname].elements[item2].value) {
		errors+=errorMsg +"<br/>";
		
		// markError(document.getElementById(item2 +"Label"));
		
		if(label) markError(label)
	}
	else {
		// markNormal(document.getElementById(item2 +"Label"));
		
		if(label) markNormal(label)

	}
}

/*********** DS client-side validation functions *****************/

function validate(frm, requiredFields, confMsg, errorElem) {

	var errors=""
	
	for(var i=0; requiredFields && i < frm.elements.length; ++i){

		var elem=frm.elements[i],
			requiredField=requiredFields[elem.name];

		if(requiredField){

			var type=elem.type, param
			
			if(!requiredField.label) requiredField.label=getLabel(elem.name)

			if(type=="text" || type=="textarea" || type=="password" || type=="file") {
				param=elem.value

				if(!requiredField.isValid)
					requiredField.isValid=textFieldDefault
			}

			else if(type=="radio" || type=="checkbox") {

				param=frm.elements[elem.name]

				if(!requiredField.isValid) {

					requiredField.isValid=radioCheckboxDefault
				}
			}

			else if(type=="select-one"){
				param=elem

				if(!requiredField.isValid){

					requiredField.isValid=selectOneDefault

				}
			}

			else if(type=="select-multiple"){

				param=elem

				if(!requiredField.isValid) {

					requiredField.isValid=selectMultipleDefault
				}
			}

			if(requiredField.isValid && !requiredField.isValid(param)) {
				var errMsg=requiredField.errMsg || getErrMsg(elem.name)
				
				/*
				alert(errMsg)
				elem.focus()
				return false
				*/
				
				errors+=errMsg + "<br />"
				
				if(requiredField.label) markError(requiredField.label)
			}
			
			else if(requiredField.label) markNormal(requiredField.label)
		}
	}
	
	if(errors) {
		
		if(!errorElem){
			errorElem=document.getElementById("errors")
		}
		
		if(!errorElem) {
			errors=errors.replace(/<br \/>/g, "\n")
			alert(errors)
		}
		
		else {
			errorElem.innerHTML=errors
		}
		
		return false
	}

	if(confMsg)
		return confirm(confMsg)
	else
		return true
}

function isBlank(str) {
	var re=/\S+/
	return !re.test(str)
}

function textFieldDefault (str) { return !isBlank(str) }

function radioCheckboxDefault (arr) {

	var foundChecked=false

	for(var i=0; i< arr.length && !foundChecked; ++i){
		var elem=arr[i]
		foundChecked=elem.checked
	}

	return foundChecked
}

function selectOneDefault (elem) {
	return !elem.options[0].selected
}

function selectMultipleDefault (elem) {

	var options=elem.options,
		foundSelected=false;

	for(var i=0; i<options.length && !foundSelected; ++i){
		foundSelected=options[i].selected
	}

	return foundSelected

}

function getErrMsg(fieldName){

	return "Invalid or missing entry in \""+fieldName+".\" Please try again."
}
