function launchCourseStart(name,id,url) {
	var width=window.screen.availWidth;
	var height=window.screen.availHeight;

	var args ="toolbar=0,menubar=0,scrollbars=1,resizable=1,location=0,top=10,left=10,width=" + (width-200)+",height=" + (height-60);
	//var args ="scrollbars=1,resizable=1,top=10,left=10,width=" + (width-200)+",height=" + (height-60);
	//alert(args);
	
	var loc = document.location.href
	var base= loc.substring(0, loc.lastIndexOf("/")+1);
	
	base=base.replace(/^https/gi,"http");
	
	
	//base=base.replace(/courseserver.com/gi,"www.courseserver.com");
	
	var coursewindow= window.open(base +"courseconnect.asp", "aps_courseserver_activecourse",args);
	
	if (typeof(coursewindow)!="undefined") {
		try {
			coursewindow.focus()
		}
		catch(e) {
			//do nothing
		}
	}
	
	document.location= base +"CourseMonitor.asp?name="+name+"&cid=" + id +"&url=../courses/" +url
}

if (typeof(SymRealWinOpen) !="undefined" )
	gnOpenWindow = SymRealWinOpen
else
	gnOpenWindow = window.open


function launchCourseFinish(courseURL) {


	orig_width=document.width
	orig_height=document.height;
	
	
	var coursewindow= gnOpenWindow( courseURL,"aps_courseserver_activecourse","scrollbars=1,resizable=1");
	
	//alert (window.open)
	
	window["courseserver_opencourse"] =coursewindow
	if (coursewindow) {
		//alert ("Changing location from:" + coursewindow.document.location + " to: " + courseURL);
		coursewindow.document.location = courseURL;
		
	}
	else
		alert("Error finding course window!");
	
	try {
	window.resizeTo(800,600);
	}
	catch (e) {}
	
	if (coursewindow)
		coursewindow.focus();

}


function returnToCourseListing() {
	var coursewindow = window["courseserver_opencourse"];
	
	if (coursewindow) {
		try {
			coursewindow.close()
		}
		catch(e) {
			//do nothing
		}
	}
	if (orig_width && orig_height)
		window.resizeTo(orig_width,orig_height);
	else {
		window.resizeTo(1024, 768)
	}
		
	document.location = "CourseClose.asp?sessionid=" + window.LMS_COURSE_SESSION

}	


function showCourseInfo(courseid) {
	window.open('CourseInfo.asp?courseid='+courseid,'','width=500,height=400,scrollbars=1');
}

function showEcomInfo(ruleid, courseid) {
	window.open('EcomInfo.asp?ruleid=' + ruleid +'&courseid='+courseid,'','width=500,height=400,scrollbars=1');
}


function showInfo(page) {
	window.open(page,'','width=500,height=400,scrollbars=1');
}


function showCourseCertificate(courseid) {
	window.open('CourseCertificate.asp?courseid='+courseid,'','width=800,height=600,scrollbars=1');
}

function showCourseMemorandum(courseid) {
	window.open('CourseMemorandum.asp?courseid='+courseid,'','width=800,height=600,scrollbars=1');
}

function showCourseCertificateEmailForm (courseid) {
	window.open('CourseCertificate_Email.asp?courseid='+courseid +'&email=true','','width=800,height=600,scrollbars=1');	
}


function populateForm(formname,dataObject) {
	var form =document.forms[formname];

	for (var i=0;i<form.elements.length;i++) {
		element =form.elements[i]
		
		name = form.elements[i].name
		value = dataObject[name]
		if (value) {
			//Text
			form.elements[i].value = value
			
			//select-one
			if (form.elements[i].type=="select-one") {
				for (var j=0; j<element.options.length;j++) {
					if (element.options[j].value ==value) {
						element.selectedIndex =j
					}
				}

			}
			
			// need for others (checkbox etc)
		}
					

			
	
	
	}
}

function checkForMatchedInput(item1,item2, errorMsg) {
	var label = document.getElementById(item2 +"Label")

	if (!label)
		alert ("Can't find label:" +item2)


	if (document.forms["registration"].elements[item1].value != document.forms["registration"].elements[item2].value) {
		errors+=errorMsg +".<br/>";
		markError(document.getElementById(item2 +"Label"));
	}
	else {
		markNormal(document.getElementById(item2 +"Label"));

	}

}


function checkForCreditCardInput(formName, item1, errorMsg) {
	var label = document.getElementById(item1 +"Label")

	if (!label)
		alert ("Can't find label:" +item2)


	if (!isCreditCard(document.forms[formName].elements[item1].value)) {
		errors+=errorMsg +".<br/>";
		markError(document.getElementById(item1 +"Label"));
	}
	else {
		markNormal(document.getElementById(item1 +"Label"));

	}

}


function isCreditCard(strInput)
{
	// Encoding only works on cards with less than 19 digits	
	strInput+="";
	if (strInput.length > 19) return (false);  
	
	var sum = 0; 
	var mul = 1; 
	var l = strInput.length;
	
	for (i = 0; i < l; i++)
	{
		var digit    = strInput.substring(l-i-1,l-i);
    		var tproduct = parseInt(digit ,10) * mul;

	    	if (tproduct >= 10) 
		{ sum += (tproduct % 10) + 1; }
    		else
		{ sum += tproduct; }

    		if (mul == 1)       
		{ mul++; }
	    	else
		{ mul--; }
  	}	

  	if ((sum % 10) == 0)  return (true);
  	else                  return (false);
}



// Client Side Validation


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 if (label.className=="error") {
		label.className = "";
	}

}

function selectInputValue(formname, itemName) {
	var label = document.getElementById(itemName +"Label")
	var formElement = document.forms[formname].elements[itemName];

	if (!label)
		alert ("Can't find label:" +itemName)


	return(formElement.options[formElement.selectedIndex].value)
}


function checkForSomeInput(formname, itemName, errorMsg) {
	var label = 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"));
		}
		else {
			markNormal(document.getElementById(itemName +"Label"));
			return (true);

		}
}


function checkForCheckboxInput(formname, itemName, errorMsg) {
	var label = document.getElementById(itemName +"Label")



	if (!label)
		alert ("Can't find label:" +itemName)

		if (!document.forms[formname].elements[itemName].checked) {
 
			errors+=errorMsg +".<br/>";
			markError(document.getElementById(itemName +"Label"));
		}
		else {
			markNormal(document.getElementById(itemName +"Label"));
			return (true);

		}
}


function checkForSpecialInput(formname, itemName,pattern, errorMsg) {
	var label = document.getElementById(itemName +"Label")

	var re = new RegExp(pattern,"i" )
	if (!label)
		alert ("Can't find label:" +itemName)

		if (!re.test(document.forms[formname].elements[itemName].value)) {
			errors+=errorMsg +".<br/>";
			markError(document.getElementById(itemName +"Label"));
		}
		else {
			markNormal(document.getElementById(itemName +"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) {
	var label = 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"));
		}
		else {
			markNormal(document.getElementById(item2 +"Label"));

		}
}


var globalDisplayed = new Object();


function toggleDisplay(master,slave) {
	var obj = document.getElementById(slave);
	
	if (obj&& globalDisplayed[slave]!==false) {
		obj.style.display="none";
		globalDisplayed[slave] = false;
	}
	else if (obj) {
	
		obj.style.display="block";
		globalDisplayed[slave] = true;

	
	
	}

}