String.prototype.ltrim = function(){return (this.replace(/^\s*/,""));};
String.prototype.rtrim = function(){return (this.replace(/\s*$/,""));};
String.prototype.trim = function(){return (this.ltrim().rtrim());};

function findField(fieldName, form) {
	return form.elements[fieldName];
}
function VMC_updateSelect(d,o,m) { //v2.6 Vantage Media Corporation
	//d=target field name, o = trigger field, m = empty list option name
	var i,s,b,z;
	if(typeof o == 'string') {
		z=o;
	} else {
		z=o.options[o.selectedIndex].value;
	}
	var l=findField(d, o.form);
	l.length=0; l.options[0]=new Option(m,'');
	var subCats = subCategoryOptions[z];
	if(subCats) {
		// add "select one" option
		l.options[0] = new Option(l.getAttribute("selectOneLabel") || "- Select a Program -", "");
		for(i=0;i<subCats.length;i++){
			var opt = new Option(subCats[i].text, subCats[i].value);
			l.options[i + 1]=opt;
			// decide if option should be selected
			/*
			if( e!== null && e == subCats[i].value) {
				subCats[i].selected = true;
			}
			*/
		}
	}
	return;
}
function checkZip(z) {
	var allowedzipchars="0123456789";
	if(z.trim() === "") { return false; }	
	if(z.length != 5) { return false; }
	for(var i=0; i<z.length; i++) {	if(allowedzipchars.indexOf(z.charAt(i)) =="-1") { return false;	} }	
	return true;
}
function quickSearchValidateOnline(form) {
	if ( form.programCategoryId.selectedIndex === 0 ) {
		alert('Please select a Category');
		return false;
	}
	return true;
}
function quickSearchValidateCampus(form) {
	if ( form.programCategoryId.selectedIndex === 0 ) {
		alert('Please select a Category');
		return false;
	}
	if( !checkZip(form.zipCode.value) ) {
		alert('Please enter a valid zip code');
		return false;
	}
	return true;
}
function detailSearchValidate(form) {
	if ( form.programCategoryId.selectedIndex === 0 ) {
		alert('Please select a Category');
		return false;
	}
	if( form.classroomPreference && 
		form.classroomPreference[form.classroomPreference.selectedIndex].value == "0" && !checkZip(form.zipCode.value) ) {
		alert('Please enter a valid zip code');
		form.zipCode.focus();
		return false;
	}	
	return true;
}
function filterSearchValidate(form) {
	if ( form.degreeLevel.selectedIndex === 0 ) {
		alert('Please select a Degree Level');
		return false;
	}
	if ( form.programCategoryId.selectedIndex === 0 ) {
		alert('Please select a Category');
		return false;
	}
	if ( form.programSubCategoryId.selectedIndex === 0 ) {
		alert('Please select a Program');
		return false;
	}
	return true;
}
function loadSubCategoryFields(s) {
	for(var i=0;i<document.forms.length;i++){
		var form = document.forms[i];
		var cf = form.elements.programCategoryId;
		var scf = form.elements.programSubCategoryId;
		if (cf&&scf){
			VMC_updateSelect(scf.name,cf,'- Select A Category First -',s); 
		}
	}
}

function preSelectFormItems(degreeLevel, programCategory, programSubCategory, classroomPref) {
	
	for( var i=0; i < document.forms.length; i++ ) {
		var form = document.forms[i];
		
		var degreeLevelField = findField('degreeLevel', form);
		var programCategoryField = findField('programCategoryId', form);
		var programSubCategoryField = findField('programSubCategoryId', form);
		var classroomPrefField = findField('classroomPreference', form);
		
		if ( degreeLevelField && degreeLevel && degreeLevel.trim() != "") {
			for (var j = 0; j < degreeLevelField.options.length; j++) {
				if( degreeLevelField.options[j].value == degreeLevel && j != 0 ) {
					degreeLevelField.options[j].selected = true;
					break;
				}
			}
		}
		
		if ( programCategoryField && programCategory && programCategory.trim() != "") {
			for (var j = 0; j < programCategoryField.options.length; j++) {
				if( programCategoryField.options[j].value == programCategory ) {
					programCategoryField.options[j].selected = true;
					if(programSubCategoryField) {
						VMC_updateSelect('programSubCategoryId', programCategoryField, '- Select a Category First -');
					}
					break;
				}
			}
		} else {
			if ( programCategoryField && programSubCategoryField ) {
				programSubCategoryField.length=0;
				var opt = new Option('- Select a Category First -', '');
				programSubCategoryField.options[i]=opt;
			}
		}
		

		if ( programSubCategoryField && programSubCategory && programSubCategory.trim() != "") {
			for (var j = 0; j < programSubCategoryField.options.length; j++) {
				if( programSubCategoryField.options[j].value == programSubCategory ) {
					programSubCategoryField.options[j].selected = true;
					break;
				}
			}
		}

		if ( classroomPrefField && classroomPrefField.options && classroomPref && classroomPref.trim() != "") {
			for (var j = 0; j < classroomPrefField.options.length; j++) {
				if( classroomPrefField.options[j].value == classroomPref && j != 0 ) {
					classroomPrefField.options[j].selected = true;
					break;
				}
			}
		}
		
	}
	
}

function changeCampusPrefAndSubmit(campusPrefIndex,formName) {
	var form = document.forms[formName];
	var classroomPrefField = findField('classroomPreference', form);
	classroomPrefField.selectedIndex = campusPrefIndex;
	if ( form.onsubmit() ) { 
		form.submit();
	}
}