try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

/*
* Function: htmlEncode
* Parameter(s): text
* Description:
*				encodes text to make sure its safe for input
*/
function htmlEncode(s) {
        var str = new String(s);
        str = str.replace(/&/g, "&amp;");
        str = str.replace(/</g, "&lt;");
        str = str.replace(/>/g, "&gt;");
        str = str.replace(/"/g, "&quot;");
        return str;
}
/*
* Function: enableForwardButton
* Parameter(s): true/false
* Description:
*				either enables or disables button deppending on the value passed
*/
function enableForwardButton(value)
{
	//attempt to get a handle for the element
	var obj=document.getElementById("forward_button");
	if(!obj) return;
	if(value)
		obj.className="forward_button_normal";
	else
		obj.className="forard_button_disabled";
}
/*
* Function: enableBackButton
* Parameter(s): true/false
* Description:
*				either enables or disables button deppending on the value passed
*/
function enableBackButton(value)
{
	//attempt to get a handle for the element
	var obj=document.getElementById("back_button");
	if(!obj) return;
	if(value)
		obj.className="back_button_normal";
	else
		obj.className="back_button_disabled";
}
/*
* Function: setPageNumber
* Parameter(s): number
* Description:
*				Sets value of current page (located in footer)
*/
function setPageNumber(value)
{
	//attempt to get a handle for the element
	var obj=document.getElementById("footer");
	if(!obj) return;
	//encode value just to make sure nothing else was passed into it
	obj.innerHTML="PAGE "+htmlEncode(value);
}

/*
* Function: showTopics
* Parameter(s): number
* Description:
*				opens up a popup with a list of available topics for specific course
*/
function showTopics(courseId)
{
	topicsWindow = window.open("topics.php?courseId="+courseId,'topics','width=330,height=500,toolbar=0,resizable=1,scrollbars=1');
	topicsWindow.window.focus();
}

function openTopic(courseId,moduleId)
{
	window.opener.location='course.php?courseId='+courseId+'&pageId='+moduleId;
	window.close();
}

function showDiscussion(course,id)
{
	topicsWindow = window.open("readingAndResources.php?courseId="+course+"&pageId="+id,'readingandresources','width=530,height=500,toolbar=0,resizable=1,scrollbars=1');
	topicsWindow.window.focus();

}
function showChat(course)
{
	topicsWindow = window.open("chat.php?courseId="+course,'chat','width=735,height=370,toolbar=0,resizable=1,scrollbars=1');
}

/*
* Function: isValidField
* Parameter(s): deppends on verification method
* Description:
*				used to verify form elements before submission
*/
function isValidField(type,form,name)
{
	switch(type)
	{
		case "email":
		{
			var element=document.forms[form][name];
			var filter=/^.+@.+\..{2,3}$/
			if(!element) return false;
			if(filter.test(element.value)) return true;
			alert("Please enter '"+arguments[3]+"'");
			element.focus();
			return false;
		}break;
		case "filled":
		{
			var element=document.forms[form][name];
			if(!element) return false;
			switch(element.type)
			{
				case "select-one":
				{
					if(element.selectedIndex!=0) return true;
					alert("Please enter '"+arguments[3]+"'");
					element.focus();
					return false;
				}break;
				case "password":
				case "text":
				{
					if(element.value!="") return true;
					alert("Please enter '"+arguments[3]+"'");
					element.focus();
					return false;
				}break;
			};
			return false;
		}break;
		case "equal":
		{
			var element1=document.forms[form][name];
			var element2=document.forms[form][arguments[3]];
			if(!element1 || !element2 || element1.type!=element2.type) return false;
			switch(element1.type)
			{
				case "password":
				case "text":
				{
					if(element1.value==element2.value) return true;
					alert("Please ensure that "+arguments[4]+" match.");
					element1.focus();
					return false;
				}break;
			};
			return false;
			return true;
		}break;
	};
	return false;
}