
function URLDecode(psEncodeString)
{
  // Create a regular expression to search all +s in the string
  var lsRegExp = /\+/g;
  // Return the decoded string
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}

function URLEncode(strText) {
	encodedHtml = escape(strText);
	encodedHtml = encodedHtml.replace(/\//g,"%2F");
	encodedHtml = encodedHtml.replace(/\*/g,"%2A");
	encodedHtml = encodedHtml.replace(/=/g,"%3D");
	encodedHtml = encodedHtml.replace(/&/g,"%26");
	encodedHtml = encodedHtml.replace(/@/g,"%40");
	return encodedHtml;
}

function encodeHtml(strText) {
	encodedHtml = escape(strText);
	encodedHtml = encodedHtml.replace(/\//g,"%2F");
	encodedHtml = encodedHtml.replace(/\?/g,"%3F");
	encodedHtml = encodedHtml.replace(/=/g,"%3D");
	encodedHtml = encodedHtml.replace(/&/g,"%26");
	encodedHtml = encodedHtml.replace(/@/g,"%40");
	return encodedHtml;
}

function UnEncodedHtml(strText) {
	UnEncodedHtml = unescape(strText);
	return UnEncodedHtml;

}


function search_term_encode(strText) {
	encoded_term = strText;
	encoded_term = encoded_term.replace(/&/g," and ");
	encoded_term = encoded_term.replace (/\s+/g, " "); //concatenate mulitple spaces to be one
	encoded_term = encoded_term.replace (/^\s/g, "");  //remove leading space
	encoded_term = encoded_term.replace (/\s$/g, "");  //tailing space
	encoded_term = encoded_term.replace (/^\.+/g, "");  //remove leading dots
	encoded_term = encoded_term.replace (/\.+$/g, ",");  //tailing dots
	encoded_term = encoded_term.replace(/ /g,"-");
	//encoded_term = encoded_term.replace(/@/g,"%40");
	//encoded_term = encoded_term.replace(/\//g,"%2F");
	//encoded_term = encoded_term.replace(/\?/g,"%3F");
	//encoded_term = encoded_term.replace(/=/g,"%3D");
	//encoded_term = escape(encoded_term);
	encoded_term = URLEncode(encoded_term);
	return encoded_term;
}

function search_form_set_action(theForm,pagetype,dlevel)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	if (theForm.subject.value.length > 254)
	{
    	alert("Please enter at most 254 characters in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	subject = search_term_encode(subject);

	var search_url = "/search/";

	switch (pagetype) {
		case "d" :
			search_url += "online-degrees/";
			break;
		case "p" :
			search_url += "programs/";
			break;
		case "t" :
			search_url += "courses/";
			break;
		case "s" :
			search_url += "colleges/";
			break;
		default :
			search_url += "";
	}


	switch (dlevel) {
		case "a" :
			search_url += "associate/";
			break;
		case "b" :
			search_url += "bachelor/";
			break;
		case "m" :
			search_url += "master/";
			break;
		case "d" :
			search_url += "doctorate/";
			break;
		case "u" :
			search_url += "undergraduate/";
			break;
		case "g" :
			search_url += "graduate/";
			break;
		case "pc" :
			search_url += "certificate/";
			break;
		case "pd" :
			search_url += "diploma/";
			break;
		case "pt" :
			search_url += "training/";
			break;
		default :
			search_url += "";
	}


	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	//theForm.type.value = "";

	return (true);
}

function search_form_set_action_domain(theForm,pagetype,dlevel,domain)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	if (theForm.subject.value.length > 254)
	{
    	alert("Please enter at most 254 characters in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	subject = search_term_encode(subject);

	var search_url = domain + "/search/";

	switch (pagetype) {
		case "d" :
			search_url += "online-degrees/";
			break;
		case "p" :
			search_url += "programs/";
			break;
		case "t" :
			search_url += "courses/";
			break;
		case "s" :
			search_url += "colleges/";
			break;
		default :
			search_url += "";
	}


	switch (dlevel) {
		case "a" :
			search_url += "associate/";
			break;
		case "b" :
			search_url += "bachelor/";
			break;
		case "m" :
			search_url += "master/";
			break;
		case "d" :
			search_url += "doctorate/";
			break;
		case "u" :
			search_url += "undergraduate/";
			break;
		case "g" :
			search_url += "graduate/";
			break;
		case "pc" :
			search_url += "certificate/";
			break;
		case "pd" :
			search_url += "diploma/";
			break;
		case "pt" :
			search_url += "training/";
			break;
		default :
			search_url += "";
	}


	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	//theForm.type.value = "";

	return (true);
}

function search_form_set_action_within(theForm,pagetype,dlevel)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	if (theForm.within.value.length > 1) {
		subject = "Within " + theForm.within.value + " Find " + subject;
	}
	subject = search_term_encode(subject);

	var search_url = "/search/";

	switch (pagetype) {
		case "d" :
			search_url += "online-degrees/";
			break;
		case "p" :
			search_url += "programs/";
			break;
		case "t" :
			search_url += "courses/";
			break;
		case "s" :
			search_url += "colleges/";
			break;
		default :
			search_url += "";
	}


	switch (dlevel) {
		case "a" :
			search_url += "associate/";
			break;
		case "b" :
			search_url += "bachelor/";
			break;
		case "m" :
			search_url += "master/";
			break;
		case "d" :
			search_url += "doctorate/";
			break;
		case "u" :
			search_url += "undergraduate/";
			break;
		case "g" :
			search_url += "graduate/";
			break;
		case "pc" :
			search_url += "certificate/";
			break;
		case "pd" :
			search_url += "diploma/";
			break;
		case "pt" :
			search_url += "training/";
			break;
		default :
			search_url += "";
	}


	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	//theForm.type.value = "";

	return (true);
}


function search_form_set_action_radio(theForm)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	subject = search_term_encode(subject);

	var search_url = "/search/";

	if (theForm.type[0].checked) {
		switch (theForm.pagetype.value) {
			case "d" :
				search_url += "online-degrees/";
				break;
			case "p" :
				search_url += "programs/";
				break;
			case "t" :
				search_url += "courses/";
				break;
			case "s" :
				search_url += "colleges/";
				break;
			default :
				search_url += "";
		}
	}


	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	theForm.pagetype.value = "";

	return (true);
}

function search_form_set_action_radio3(theForm)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	if (theForm.type[0].checked && theForm.within.value.length > 1) {
		subject = "Within " + theForm.within.value + " Find " + subject;
	}
	subject = search_term_encode(subject);

	var search_url = "/search/";

	if (theForm.type[0].checked || theForm.type[1].checked) {
		switch (theForm.pagetype.value) {
			case "d" :
				search_url += "online-degrees/";
				break;
			case "p" :
				search_url += "programs/";
				break;
			case "t" :
				search_url += "courses/";
				break;
			case "s" :
				search_url += "colleges/";
				break;
			default :
				search_url += "";
		}
	}


	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	theForm.pagetype.value = "";

	return (true);
}

function search_form_set_action_adv(theForm)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	subject = search_term_encode(subject);

	var search_url = "/search/";


	if (theForm.pagetype[0].checked) {
			search_url += "online-degrees/";
	}
	if (theForm.pagetype[1].checked) {
			if (theForm.accredited.checked)
			{
				search_url += "accredited-programs/";
			} else {
				search_url += "programs/";
			}
	}
	if (theForm.pagetype[2].checked) {
			if (theForm.accredited.checked)
			{
				search_url += "accredited-courses/";
			} else {
				search_url += "courses/";
			}
	}
	if (theForm.pagetype[3].checked) {
			search_url += "colleges/";
	}

	if (theForm.dlevel[0].checked) {
			search_url += "associate/";
	}
	if (theForm.dlevel[1].checked) {
			search_url += "bachelor/";
	}
	if (theForm.dlevel[2].checked) {
			search_url += "master/";
	}
	if (theForm.dlevel[3].checked) {
			search_url += "doctorate/";
	}



	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	//theForm.type.value = "";

	//return (true);
}

function search_form_set_action_adv_domain(theForm,domain)
{

	if (theForm.subject.value == "")
	{
    	alert("Please enter search terms in the search box.");
		theForm.subject.focus();
		return (false);
	}

	var subject = theForm.subject.value;
	subject = search_term_encode(subject);

	var search_url = domain + "/search/";

	if (theForm.pagetype[0].checked) {
			search_url += "online-degrees/";
	}
	if (theForm.pagetype[1].checked) {
			if (theForm.accredited.checked)
			{
				search_url += "accredited-programs/";
			} else {
				search_url += "programs/";
			}
	}
	if (theForm.pagetype[2].checked) {
			if (theForm.accredited.checked)
			{
				search_url += "accredited-courses/";
			} else {
				search_url += "courses/";
			}
	}
	if (theForm.pagetype[3].checked) {
			search_url += "colleges/";
	}

	if (theForm.dlevel[0].checked) {
			search_url += "associate/";
	}
	if (theForm.dlevel[1].checked) {
			search_url += "bachelor/";
	}
	if (theForm.dlevel[2].checked) {
			search_url += "master/";
	}
	if (theForm.dlevel[3].checked) {
			search_url += "doctorate/";
	}



	theForm.action = search_url + subject + ".htm";
	//theForm.subject.value = "";
	//theForm.degree.value = "";
	//theForm.type.value = "";

	//return (true);
}

function enable_dlevel(){

	for (i=0; i<5; i++) {
	document.form_search.dlevel[i].disabled=false;
	//document.form_search.dlevel[i].checked=false;
	}

}

function disable_dlevel(){

	for (i=0; i<5; i++) {
	document.form_search.dlevel[i].disabled=true;
	document.form_search.dlevel[i].checked=false;
	}

}

function select_degree(){

	document.form_search.pagetype[0].checked=true;

}



	//function checkEmail (strng) {
	//var error="";
	//if (strng == "") {
	//   error = "You didn't enter an email address.\n";
	//}
	//
	//	var emailFilter=/^.+@.+\..{2,3}$/;
	//	if (!(emailFilter.test(strng))) {
	//	   error = "Please enter a valid email address. Must be in the format of xxxx@xxx.xxx\n";
	//	}
	//	else {
	//test email for illegal characters
	//	   var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
	//		 if (strng.match(illegalChars)) {
	//		  error = "The email address contains illegal characters.\n";
	//	   }
	//	}
	//return error;
	//}

	function checkEmail (strng) {
		if ( !isEmail(strng) ) {
			return "Please enter a valid email address";
		}  else {
			return "";
		}
	}

	function isEmail (objInputValue) {
	        var email = objInputValue;

	        if (email == "") return false;
	        if (email.indexOf('@') == -1) return false; // no @ symbol (bob)
	        if (email.indexOf('@') != email.lastIndexOf('@')) return false; // more than 1 @ symbol (bob@aol@aol)
	        if (email.indexOf('.') == -1) return false; // no periods (bob@aol)
	        if (email.lastIndexOf('.') < email.indexOf('@')) return false; // no periods after the @ symbol (aol.com@bob)
	        if (email.indexOf('@') == 0) return false; // nothing before the @ symbol (@aol.com)
	        if (email.indexOf('@') == email.length - 1) return false; // nothing after the @ symbol (bob@)
	        if (email.indexOf('@.') != -1 || email.indexOf('.@') != -1) return false; // no characters between @ and period (bob@. or bob.@)
	        if (email.lastIndexOf('.') == email.length - 1) return false; // nothing after the last period (bob@aol.)
	        if (email.indexOf('..') != -1) return false; // no double periods (bob@aol..com)
	        if (email.lastIndexOf('.') != email.length - 3 && email.lastIndexOf('.') != email.length - 4 && email.lastIndexOf('.') != email.length - 5) return false; // suffix 2,3 or 4 characters max

	        var username = email.substring(0, email.indexOf('@'));
	        var domain = email.substring(email.indexOf('@') + 1, email.length);

	        //check username for bad characters
	        for (i = 0; i < username.length; i++) {
	                var current = username.charAt(i);
	                var acceptableChars = '!"#$%&\'()*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
	                if (acceptableChars.indexOf(current) == -1) return false;
	        }

	        //check domain for bad characters
	        for (j = 0; j < domain.length; j++) {
	                var current = domain.charAt(j);
	                var acceptableChars = '.-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	                if (acceptableChars.indexOf(current) == -1) return false;
	        }

	        return true; // if we get here, all's fine...
	}

	function Email_Validator(theForm)
	{

	  if (theForm.email.value == "")
	  {
		theForm.email.focus();
		alert("Please enter a value for the \"email\" field.");
		return (false);
	  }

	  if (theForm.email.value.length < 5)
	  {
		theForm.email.focus();
		alert("Please enter at least 5 characters in the \"email\" field.");
		return (false);
	  }


		var why = checkEmail(theForm.email.value);
		if (why != "") {
			   theForm.email.focus();
			   alert(why);
			   return false;
		}


	  if (theForm.email.value.length > 50)
	  {
		theForm.email.focus();
		alert("Please enter at most 50 characters in the \"email\" field.");
		return (false);
	  }

	  return (true);
	}


	function MaxLength(f,num)
	{
		if (f.value.length > num)
		{
			alert("Maximum length is " + num + "!");
			f.focus();
			return false;
		}
	}


	function checkdate(f) {
		if(f.value != "" && !/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(f.value)) {
			alert("Not a valid date! Try using DD/MM/YYYY format!");
			f.focus();
			return false;
		}
		else
		{
			return true;
		}
	}

	function checkNumeric(objName,minval, maxval,comma,period,hyphen)
	{
		var numberfield = objName;
		if (chkNumeric(objName,minval,maxval,comma,period,hyphen) == false)
		{
			numberfield.select();
			numberfield.focus();
			return false;
		}
		else
		{
			return true;
		}
	}

	function chkNumeric(objName,minval,maxval,comma,period,hyphen)
	{
		// only allow 0-9 be entered, plus any values passed
		// (can be in any order, and don't have to be comma, period, or hyphen)
		// if all numbers allow commas, periods, hyphens or whatever,
		// just hard code it here and take out the passed parameters
		var checkOK = "0123456789" + comma + period + hyphen;
		var checkStr = objName;
		var allValid = true;
		var decPoints = 0;
		var allNum = "";

		for (i = 0;  i < checkStr.value.length;  i++)
		{
			ch = checkStr.value.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			if (ch != ",")
				allNum += ch;
		}
		
		if (!allValid)
		{
			alertsay = "Please enter only these values \""
			alertsay = alertsay + checkOK + "\" in the \"" + checkStr.name + "\" field."
			alert(alertsay);
			return (false);
		}
		// set the minimum and maximum
		var chkVal = allNum;
		var prsVal = parseInt(allNum);
		if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval))
		{
			alertsay = "Please enter a value greater than or "
			alertsay = alertsay + "equal to \"" + minval + "\" and less than or "
			alertsay = alertsay + "equal to \"" + maxval + "\" in the \"" + checkStr.name + "\" field."
			alert(alertsay);
			return (false);
		}
	}

function verisign_popup(url) {
	sealWin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=710,height=500');
	self.name = "mainWin";
}

function help_popup(url,w,h){
	storywin = window.open(url,'storywin','scrollbars=yes,width=' + w + ',height=' + h);
	storywin.focus();
}

