

/**

 * these variables are used for the timeout function for concurrent javascript

 * function calling

 */

var steps = new Array();

var currentStep = 0;



var request;

var dest;

var sectimer = 0;



String.prototype.trim = function () {

    return this.replace(/^\s*/, "").replace(/\s*$/, "");

}



function loadHTMLWithCallBack(div_id, url, data, responseHandler){

  var div = document.getElementById(div_id);

  var http_request = false;

	try{

		if(window.XMLHttpRequest) {

			http_request = new XMLHttpRequest();

		}

	}catch(e){

		if (window.ActiveXObject) {

			try {

	  			http_request = new ActiveXObject("Msxml2.XMLHTTP");

			} catch(e) {

	  			try {

	    			http_request = new ActiveXObject("Microsoft.XMLHTTP");

	  			} catch(e) {

	  			}

			}

		}

  	}

	if (!http_request) {

		alert('Cannot create an XMLHTTP instance');

	}  

 

  if(http_request){

  	if (responseHandler != undefined) {

    	http_request.onreadystatechange = function() {

    		if(http_request.readyState == 4){

      			div.innerHTML = http_request.responseText;

      			responseHandler(http_request.responseText, div);

	  		}

    	};;

	}

    //http_request.onreadystatechange = function() {dispPage(http_request, div, url);};;

    http_request.open("GET", url + '?' + data + '&time=' + new Date().getTime());

    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    http_request.send(null);

  } else {

   	alert('Error!!!');

  }

}

var loadCtr = 0;

var loadTimer;

function loadTinyMCE(){

	/*loadCtr++;

	if(loadCtr < 10){

		loadTimer = setTimeout(loadTinyMCE(), 10);

	}

	else{

		alert(loadCtr);

		clearTimeout(loadTimer);

		loadCtr = 0;

	}

	*/

	tinyMCE.init({

		// General options

		strict_loading_mode : true,

		mode : "textareas",

		theme : "advanced",

		plugins : "safari,pagebreak,style,table,save,advhr,advimage,advlink,inlinepopups,insertdatetime,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,nonbreaking,xhtmlxtras",

		// Theme options

		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect,forecolor,backcolor,search,replace,sub,sup,charmap,fullscreen,print",

		theme_advanced_buttons2 : "cut,copy,paste,buzllist,numlist,outdent,indent,undo,redo,image,cleanup,help,code,insertdate,inserttime,preview,styleprops,nonbreaking,pagebreak,hr,removeformat,emotions,media,advhr",

		theme_advanced_toolbar_location : "top",

		theme_advanced_toolbar_align : "left",

		theme_advanced_statusbar_location : "bottom",

		theme_advanced_resizing : false,

		invalid_elements: "span"

	});	

	

	//alert(document.getElementById('course_desc').value)

}



function loadTable(name, parentForm, radioMenu){

	var ajaxfile = '';

	var selmenu = '';

	

	var radioObj = document.forms[parentForm].elements[radioMenu];

	if(!radioObj) return 0;

	var radioLength = radioObj.length;

	if(radioLength == undefined)

		if(radioObj.checked) return radioObj.value;

		else return 0;

	

	for(var i = 0; i < radioLength; i++) {

		if(radioObj[i].checked) {

			selmenu = radioObj[i].value; 

			break;

		}

	}

	

	//get selected menu for keycodes

	if(name=='keycodes'){

		ajaxfile = 'keycodes.php?show=' + selmenu;

	}

	//alert(ajaxfile)

	loadHTML(ajaxfile, 'content');

}





function checkDivContent(){

	//sectimer++;

	contentDiv = document.getElementById(dest);

	if(contentDiv.innerHTML==''){

		checkDivContent();

	}else{

		return true;

	}

}

			

function processStateChange(){

	sectimer++;

	if (request.readyState == 4){

		contentDiv = document.getElementById(dest);

		if (request.status == 200){

			response = request.responseText;

			contentDiv.innerHTML = response;

			

			if(checkDivContent()){

				//alert('Page loaded after ' + sectimer + ' second/s');

				hidePopWin(false);

			}

		} else {

			contentDiv.innerHTML = "Error: Status "+request.status;

		}

	}

}



function loadHTML(URL, destination){

	sectimer = 0;

	showPopWin(176, 60, null);

	dest = destination;

	if (window.XMLHttpRequest){

		request = new XMLHttpRequest();

		request.onreadystatechange = processStateChange;

		request.open("GET", URL, true);

		request.send(null);

	} else if (window.ActiveXObject) {

		request = new ActiveXObject("Microsoft.XMLHTTP");

		if (request) {

			request.onreadystatechange = processStateChange;

			request.open("GET", URL + '&time=' + new Date().getTime(), true);

			request.send();

		}

	}

}



function sendData(URL, destination, data) {

	showPopWin(176, 60, null);

	dest = destination;

	if (window.XMLHttpRequest) {

		request = new XMLHttpRequest();

		request.onreadystatechange = function() {

			processStateChange()

		};;

		request.open("POST", URL, true);

		request.setRequestHeader('Content-Type',

				'application/x-www-form-urlencoded');

		request.send(data);

	} else {

		request = new ActiveXObject("Microsoft.XMLHTTP");

		if (request) {

			request.onreadystatechange = function() {

				processStateChange()

			};;

			request.open("POST", URL, true);

			request.setRequestHeader('Content-Type',

					'application/x-www-form-urlencoded');

			request.send(data);

		}

	}

}



function display(id) {

	var div_id = document.getElementById(id);

	if (div_id.style.display == "none") {

		div_id.style.display = "inline";

	} else {

		div_id.style.display = "none";

	}

}



function hideOthers(id) {

	var div_id = document.getElementById(id);

	if (id == "row_employee") {

		document.getElementById('row_course_taken').style.display = "none";

	} else {

		document.getElementById('row_employee').style.display = "none";

	}

}



function overColor(id) {

	document.getElementById(id).style.backgroundColor = '#E3E3E3';

}



function outColor(id) {

	document.getElementById(id).style.backgroundColor = '';

}



function clearPanel(id) {

	var contentDiv = document.getElementById(id);

	contentDiv.innerHTML = "";

}



function searchEmployee(div_id, search, student_id, company_id) {

	var search_text = null;

	var search_by = null;

	var url = "hrview_search_employee.php";

	if (search == "search_text") {

		search_text = document.getElementById(search).value;

		search_by = document.getElementById("search_by").value;

	} else { // else if search = search_course

		search_text = document.getElementById(search).value;

		if (search_text == "none") {

			return;

		}

		search_by = "course_taken";

	}

	var data = "search_by=" + search_by + "&data=" + search_text + "&hr_ID="

			+ student_id + "&comp_id=" + company_id;

	if (search_by == "none") {

		return;

	} else {

		// alert(data);

		sendData(url, div_id, data);

	}

}



function SetPosition(elementId, xp, yp) {

	document.getElementById(elementId).style.top = xp;

	document.getElementById(elementId).style.left = yp;

}



function SetVisible(elementId, bool) {

	var div_ex = document.getElementById(elementId);

	// NM - Check first if div object is null

	if (div_ex == null) {

		return;

	}

	var common_vi = 'hidden';

	if (bool) {

		common_vi = 'visible';

		// NM - document.getElementById(elementId).style.visibility = common_vi;

		div_ex.style.visibility = common_vi;

		div_ex.style.zIndex = 111;

	} else {

		// NM - document.getElementById(elementId).style.visibility = common_vi;

		// NM - document.getElementById(elementId).InnerHTML = '';

		div_ex.style.zIndex = 1;

		div_ex.style.visibility = common_vi;

		div_ex.InnerHTML = '';

	}

}



function ShowInstruction(div, bool, cmd) {

	SetVisible(div, bool);

	if (cmd == "discipline") {

		SetPosition(div, 160, 190);

	} else {

		SetPosition(div, 160, 340);

	}

	// "/beta.ce-classes/adm1n/hrview_search_employee.php"

	loadHTML("routines/instructions.php?ins_cmd=" + cmd, div);

}



function HideInstruction(id, bool) {

	SetVisible(id, bool);

}



function SetOnMouseOver(id) {

	if (document.getElementById(id).style.backgroundColor == '') {

		document.getElementById(id).style.backgroundColor = '#ffffc6';

	} else if (document.getElementById(id).style.backgroundColor == '#CADCFF') {

		document.getElementById(id).style.backgroundColor = '#CADCFF';

	}

}



function getCompanyPosition(id, div) {

	loadHTML("employee_positions.php?company_id=" + id + "&cmd=position", div);

}



function getHRInformation(id, div) {

	loadHTML("employee_positions.php?company_id=" + id + "&cmd=hrinfo", div);

}



function execute() {

	if (currentStep == steps.length)

		return;

	window.eval(steps[currentStep]);

	currentStep++;

	window.setTimeout('execute()', 1000);

}

/*

 * function loadData(id) { getCompanyPosition(id, 'disp_positions'); }

 */



function loadData(id) {

	steps[steps.length] = "getCompanyPosition(" + id + ",'disp_positions');";

	steps[steps.length] = "getHRInformation(" + id + ",'email_domain');";

	execute();

}



function isEMailAddr(str) {

	// var str = elem.value;

	str = str.toLowerCase();

	if (str.indexOf("@") > 1) {

		var addr = str.substring(0, str.indexOf("@"));

		var domain = str.substring(str.indexOf("@") + 1, str.length);

		// at least one top level domain required

		if (domain.indexOf(".") == -1) {

			alert("Verify the domain portion of the email address.");

			return false;

		}

		// parse address portion first, character by character

		for (var i = 0;i < addr.length; i++) {

			oneChar = addr.charAt(i).charCodeAt(0);

			// dot or hyphen not allowed in first position; dot in last

			if ((i == 0 && (oneChar == 45 || oneChar == 46))

					|| (i == addr.length - 1 && oneChar == 46)) {

				alert("Verify the user name portion of the email address.");

				return false;

			}

			// acceptable characters (- . _ 0-9 a-z)

			if (oneChar == 45 || oneChar == 46 || oneChar == 95

					|| (oneChar > 47 && oneChar < 58)

					|| (oneChar > 96 && oneChar < 123)) {

				continue;

			} else {

				// alert("Verify the user name portion of the email address.");

				return false;

			}

		}

		for (i = 0;i < domain.length; i++) {

			oneChar = domain.charAt(i).charCodeAt(0);

			if ((i == 0 && (oneChar == 45 || oneChar == 46))

					|| ((i == domain.length - 1 || i == domain.length - 2) && oneChar == 46)) {

				alert("Verify the domain portion of the email address.");

				return false;

			}

			if (oneChar == 45 || oneChar == 46 || oneChar == 95

					|| (oneChar > 47 && oneChar < 58)

					|| (oneChar > 96 && oneChar < 123)) {

				continue;

			} else {

				alert("Verify the domain portion of the email address.");

				return false;

			}

		}

		return true;

	}

	alert("The email address may not be formatted correctly. Please verify.");

	return false;

}



function validateEmployeeReg(form) {

	var bool = false;



	if (form.first_name.value == "") {

		alert("Please enter your first name.");

		form.first_name.style.border = '2px solid #FF0000';

		form.first_name.focus();

		return false;

	} else {

		form.first_name.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.last_name.value == "") {

		alert("Please enter your last name.");

		form.last_name.style.border = '2px solid #FF0000';

		form.last_name.focus();

		return false;

	} else {

		form.last_name.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.position.value == "") {

		alert("Please enter your position.");

		form.position.style.border = '2px solid #FF0000';

		form.position.focus();

		return false;

	} else {

		form.position.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.employeeIDNo.value == "") {

		alert("Please enter your employee ID.");

		form.employeeIDNo.style.border = '2px solid #FF0000';

		form.employeeIDNo.focus();

		return false;

	} else {

		form.employeeIDNo.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.email.value == "") {

		alert("Please enter your email username.");

		form.email.style.border = '2px solid #FF0000';

		form.email.focus();

		return false;

	} else {

		var str;

		str = form.email.value;

		str = str.toLowerCase();

		if (str.indexOf("@") > 1) {

			/*

			 * var domain = str.substring(str.indexOf("@"), str.length); if

			 * (domain == document.getElementById("email_domain").innerHTML) {

			 * alert("Please enter your email username only. The domain is

			 * alreay provided for you."); form.email.style.border = '2px solid

			 * #FF0000'; form.email.focus(); return false; }

			 */

			alert("Please enter your email username only. The domain is alreay provided for you.");

			form.email.focus();

			return false;

		}

		form.email.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	var email_add = form.email.value

			+ document.getElementById("email_domain").innerHTML;

	document.getElementById("email_add").value = email_add;

	return bool;

}



function validateStudentReg(form) {

	var bool = false;

	if (form.email.value == "") {

		alert("Please enter your Email.");

		form.email.style.border = '2px solid #FF0000';

		form.email.focus();

		return false;

	} else {

		if (!isEMailAddr(form.email.value)) {

			form.email.style.border = '2px solid #FF0000';

			form.email.focus();

			return false;

		}

		form.email.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.first_name.value == "") {

		alert("Please enter your First Name.");

		form.first_name.style.border = '2px solid #FF0000';

		form.first_name.focus();

		return false;

	} else {

		form.first_name.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.last_name.value == "") {

		alert("Please enter your Last Name.");

		form.last_name.style.border = '2px solid #FF0000';

		form.last_name.focus();

		return false;

	} else {

		form.last_name.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.address.value == "") {

		alert("Please enter your Address.");

		form.address.style.border = '2px solid #FF0000';

		form.address.focus();

		return false;

	} else {

		form.address.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.address_city.value == "") {

		alert("Please enter your Address City");

		form.address_city.style.border = '2px solid #FF0000';

		form.address_city.focus();

		return false;

	} else {

		form.address_city.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.address_state.value == "") {

		alert("Please enter your Address State");

		form.address_state.style.border = '2px solid #FF0000';

		form.address_state.focus();

		return false;

	} else {

		form.address_state.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.address_zip.value == "") {

		alert("Please enter your email Address Zip.");

		form.address_zip.style.border = '2px solid #FF0000';

		form.address_zip.focus();

		return false;

	} else {

		form.address_zip.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.telephone_num.value == "") {

		alert("Please enter your Telephone Number.");

		form.telephone_num.style.border = '2px solid #FF0000';

		form.telephone_num.focus();

		return false;

	} else {

		form.telephone_num.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	if (form.password.value == "") {

		alert("Please enter your Password.");

		form.password.style.border = '2px solid #FF0000';

		form.password.focus();

		return false;

	} else {

		if (form.password.value != form.password2.value) {

			alert("Your passwords dont matched.");

			form.password.style.border = '2px solid #FF0000';

			form.password2.style.border = '2px solid #FF0000';

			form.password.focus();

			return false

		}

		form.password.style.border = '1px solid #A7A6AA';

		bool = true;

	}

	return bool;

}



function appendPosition(elem_id) {

	var option, txt, elem;

	if (request.readyState == 4) {

		if (request.status == 200) {

			data_response = request.responseText;

			elem = document.getElementById(elem_id);

			option = document.createElement("option");

			option.setAttribute("value", data_response);

			txt = document.createTextNode(data_response);

			option.appendChild(txt);

			elem.appendChild(option);

		}

	}

}



function loadDataElement(URL, destination) {

	if (window.XMLHttpRequest) {

		request = new XMLHttpRequest();

		request.onreadystatechange = function() {

			appendPosition(destination)

		};;

		request.open("GET", URL, true);

		request.send(null);

	} else {

		request = new ActiveXObject("Microsoft.XMLHTTP");

		if (request) {

			request.onreadystatechange = function() {

				appendPosition(destination)

			};;

			request.open("GET", URL, true);

			request.send(null);

		}

	}

}



function addPosition(position, destination) {

	var pos = document.getElementById(position).value;

	if (pos == "") {

		return;

	}

	var url = "../employee_positions.php?position=" + pos + "&cmd=add_pos";

	document.getElementById(position).value = "";

	loadDataElement(url, destination);



}



function remPosition(elem_id) {

	var positions = document.getElementById(elem_id);

	var position_index = document.getElementById(elem_id).selectedIndex;

	var position = document.getElementById(elem_id).options[position_index];

	positions.removeChild(position);

}



/**

 * @notice: Shiloh's function below for edit company

 */



function isInteger(s) {

	var i;



	if (isEmpty(s))

		if (isInteger.arguments.length == 1)

			return 0;

		else

			return (isInteger.arguments[1] == true);



	for (i = 0;i < s.length; i++) {

		var c = s.charAt(i);

		if (!isDigit(c))

			return false;

	}



	return true;

}



function isEmpty(s) {

	return ((s == null) || (s.length == 0))

}



function isDigit(c) {

	return ((c >= "0") && (c <= "9"))

}



function emailcheck(str) {

	var at = '@'

	var dot = '.'

	var lat = str.indexOf(at)

	var lstr = str.length

	var ldot = str.indexOf(dot)



	if (str.indexOf(at) == -1) {

		alert("Invalid E-mail ID")

		return false;

	}



	if (str.indexOf(at) == -1 || str.indexOf(at) == 0

			|| str.indexOf(at) == lstr) {

		alert("Invalid Email Address")

		return false;

	}



	if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0

			|| str.indexOf(dot) == lstr) {

		alert("Invalid Email Address")

		return false;

	}



	if (str.indexOf(at, (lat + 1)) != -1) {

		alert("Invalid Email Address")

		return false;

	}



	if (str.substring(lat - 1, lat) == dot

			|| str.substring(lat + 1, lat + 2) == dot) {

		alert("Invalid Email Address")

		return false;

	}



	if (str.indexOf(dot, (lat + 2)) == -1) {

		alert("Invalid Email Address")

		return false;

	}



	if (str.indexOf(' ') != -1) {

		alert("Invalid Email Address")

		return false;

	}



	return true;

}



function validateAddExam(){

	var num = Number(document.getElementById('number_questions').value.trim());

	if(num == '' || num == 0 || num == undefined || isNaN(num)){

		alert('Please enter a valid number.');

		document.getElementById('number_questions').value = '';

		document.getElementById('number_questions').focus();

		return false;

	}

	else

		return true;

}



function validateEditCompany() {

	var comp = document.getElementById('company_name');

	var compDesc = document.getElementById('company_description');

	var numEmployees = document.getElementById('num_employees');

	var creditLimit = document.getElementById('credit_limit');

	var hrFName = document.getElementById('hr_fname');

	var hrLName = document.getElementById('hr_lname');

	var hrEmail = document.getElementById('hr_email');

	var hrPwd = document.getElementById('hr_password');

	var coursesReq = document.getElementById('courses_required_edit');

	if (comp.value.length == 0) {

		alert('Please Enter Company Name.');

		comp.focus();

		return false;

	}



	if ((compDesc.value == null) || (compDesc.value == '')) {

		alert('Please Enter Company Description');

		compDesc.focus();

		return false;

	}



	if (!isInteger(numEmployees.value) && (numEmployees.value < 1)) {

		alert('Please Enter Number of Allowed Employees.');

		numEmployees.focus();

		return false;

	}



	if (!isInteger(creditLimit.value) && (creditLimit.value < 1)) {

		alert('Please Enter Credit Limit.');

		creditLimit.focus();

		return false;

	}



	if ((hrFName.value == null) || (hrFName.value == '')) {

		alert('Please Enter HR First Name.');

		hrFName.focus();

		return false;

	}



	if ((hrLName.value == null) || (hrLName.value == '')) {

		alert('Please Enter HR Last Name.');

		hrLName.focus();

		return false;

	}



	if (emailcheck(hrEmail.value) == false) {

		hrEmail.value = "";

		hrEmail.focus();

		return false;

	}



	if ((hrPwd.value == null) || (hrPwd.value == '')) {

		alert('Please Enter HR Password')

		hrPwd.value = ""

		hrPwd.focus()

		return false;

	}



	if (coursesReq.options.length == 0) {

		alert('Please Select Courses Required.');

		return false;

	}

	return true;

}



function validateAddCourseObj() {

	var id = document.getElementById('show');

	var obj = document.getElementById('course_objective');

	if ((id.value == null) || (id.value == '')) {

		alert('Please Select Course ID.');

		id.focus();

		return false;

	}



	if ((obj.value == null) || (obj.value == '')) {

		alert('Please input a Course Objective');

		obj.focus();

		return false;

	}

	return true;

}



function validateCredit() {

	var id = document.getElementById('CID');

	var stud = document.getElementById('SNum');

	var credit = document.getElementById('CNum');



	if ((id.value == null) || (id.value == '')) {

		alert('Please Select Exam ID.');

		id.focus();

		return false;

	}

	if ((stud.value == null) || (stud.value == '')) {

		alert('Please Enter Student Number.');

		stud.focus();

		return false;

	}

	if ((credit.value == null) || (credit.value == '')) {

		alert('Please Enter Number of Credits.');

		credit.focus();

		return false;

	}

}



function validateCoupon() {

	var code = document.getElementById('CouponCode');

	var amount = document.getElementById('CouponAmount');

	var month = document.getElementById('CouponMonth');

	var day = document.getElementById('CouponDay');

	var year = document.getElementById('CouponYear');

	

	if ((code.value == null) || (code.value == '')) {

		alert('Please Enter Number of Credits.');

		code.focus();

		return false;

	}

	if ((amount.value == null) || (amount.value == '')) {

		alert('Please Enter Number of Credits.');

		amount.focus();

		return false;

	}

	if ((month.value == null) || (month.value == '')) {

		alert('Please Enter Number of Credits.');

		month.focus();

		return false;

	}

	if ((day.value == null) || (day.value == '')) {

		alert('Please Enter Number of Credits.');

		day.focus();

		return false;

	}

	if ((year.value == null) || (year.value == '')) {

		alert('Please Enter Number of Credits.');

		year.focus();

		return false;

	}

}



function validateCat() {	

	var name = document.getElementById('cat_name_new');

	var desc = document.getElementById('cat_desc');

	

	if ((name.value == null) || (name.value == '')) {

		alert('Please Enter Category Name.');

		name.focus();

		return false;

	}



	if ((desc.value == null) || (desc.value == '')) {

		var course_desc = tinyMCE.get('course_desc').getContent();

		if ((course_desc == null) || (course_desc == '')) {

			alert('Please Enter Company Description');

			desc.focus();

			return false;

		}

	}

	return true;

}



function validateEditCourse(){

	var title = document.getElementById('course_title');

	var credit = document.getElementById('course_credit');

	var cost = document.getElementById('course_exam_cost');

	var desc = document.getElementById('course_desc');

	

	if ((title.value == null) || (title.value == '')) {

		alert('Please Enter Course Title');

		title.focus();

		return false;

	}

	if ((credit.value == null) || (credit.value == '')  || (isNaN(Number(credit.value)))) {

		alert('Please Enter a Valid Course Credit');

		if(credit.value!='') credit.value = '';

		credit.focus();

		return false;

	}

	if ((cost.value == null) || (cost.value == '') || (isNaN(Number(cost.value)))) {

		alert('Please Enter a Valid Exam Cost');

		if(cost.value!='') cost.value = '';

		cost.focus();

		return false;

	}

	

	if ((desc.value == null) || (desc.value == '')) {

		var course_desc = tinyMCE.get('course_desc').getContent();

		if ((course_desc == null) || (course_desc == '')) {

			alert('Please Enter Company Description');

			desc.focus();

			return false;

		}

	}

	

	//check course_number

	try{

		var number = document.getElementById('course_number');

		if ((number.value == null) || (number.value == '')) {

			alert('Please Enter Course Number');

			number.focus();

			return false;

		}

	}catch(e){}

	

	//check categories

	try{

		var ctr_cat = 0;

		var inputs = document.form.getElementsByTagName('input');

		for(var i=0; i<inputs.length; i++){

			if(inputs[i].type=='checkbox' && inputs[i].name=='add[]' && inputs[i].checked){

				ctr_cat++;

			}

		}

		if(ctr_cat==0){

			alert('Please Select a Category');

			return false;

		}

	}catch(e){}

	

	//check categories

	try{

		var ctr_sub = 0;

		var inputs = document.form.getElementsByTagName('input');

		for(var i=0; i<inputs.length; i++){

			if(inputs[i].type=='checkbox' && inputs[i].name=='subjectArea[]' && inputs[i].checked){

				ctr_sub++;

			}

		}

		if(ctr_sub==0){

			alert('Please Select a Subject Area');

			return false;

		}

	}catch(e){}

	

	return true;

}



// ADD & EDIT COMPANY STATE

// cloning function for positions

function addPosition(clone_area) {

	// alert(clone_area);



	var cl = document.getElementById(clone_area);

	var cdivs = cl.getElementsByTagName('div');

	// alert(cl.innerHTML);

	if (clone_area == 'addcomp_clone_area') {

		var divId = 'addcomp_clone' + (cdivs.length + 1);

		cl.innerHTML += '<div id="'

				+ divId

				+ '" name="'

				+ divId

				+ '">Position: <input name="positions[]" type="text" /><input type="button" value="Remove" onClick="removePosition(\''

				+ clone_area + '\', \'' + divId + '\');" /></div>';

	} else {

		var divId = 'editcomp_clone' + (cdivs.length + 1);

		cl.innerHTML += '<div id="'

				+ divId

				+ '" name="'

				+ divId

				+ '">Position: <input name="positions[]" type="text" /><input type="button" value="Remove" onClick="removePosition(\''

				+ clone_area + '\', \'' + divId + '\');" /></div>';

	}



}



function removePosition(fromArea, divId) {

	var c1 = document.getElementById(fromArea);

	var rem = document.getElementById(divId);

	c1.removeChild(rem);

}



// added by Shiloh on july 28, 2009

function showFloridaMessage() {

	var prof = document.getElementById('student_profession_state').value;

	if (prof == 'FL') {

		var msg = '<head><title>Florida Licensees!</title></head><body>';

		msg += '<p><h3>Florida licensees!</h3> <br/> Please note that your credits cannot be reported to cebroker if your license number is inaccurate.  Please be sure that your license number is correct. </p>';

		msg += ' <p> Florida licenses begin with a 2 letter code that indicates their discipline: <br/>';

		msg += '<li> Psychologists = PY </li><br/>';

		msg += '<li> Social Workers = SW </li><br/>';

		msg += '<li> Marriage and Family Therapists = MT </li><br/>';

		msg += '<li> Mental Health Counselors = MH </li><br/>';

		msg += '<p> The letter I is added as a prefix for registered interns � therefore a registered mental health intern would have a license number that begins with IMH </p><br/>';

		msg += '<center><a href="javascript:self.close()">close window</a></center>';

		msg += '</body>';



		var msgbox = window

				.open(

						'popup.html',

						'popup',

						'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=350,left = 50%,top = 50%');

		msgbox.document.write(msg);



		/*

		 * texts are too small in alert box var msg = 'Florida licensees!

		 * \n\nPlease note that your credits cannot be reported to cebroker if

		 * your license number is inaccurate. Please be sure that your license

		 * number is correct. \n'; msg += '\nFlorida licenses begin with a 2

		 * letter code that indicates their discipline: \n'; msg += '

		 * Psychologists = PY \n'; msg += ' Social Workers = SW \n'; msg += '

		 * Marriage and Family Therapists = MT \n'; msg += ' Mental Health

		 * Counselors = MH \n'; msg += '\nThe letter I is added as a prefix for

		 * registered interns � therefore a registered mental health intern

		 * would have a license number that begins with IMH.'; alert(msg);

		 */

	}

}



// added by Shiloh on Aug.31, 2009

function promptTrainingDates(sel) {

	if (sel.value == 1) {

		document.getElementById('oneDayTraining').style.display = 'inline';

		document.getElementById('twoOrMoreDaysTraining').style.display = 'none';

	} else {

		document.getElementById('oneDayTraining').style.display = 'none';

		document.getElementById('twoOrMoreDaysTraining').style.display = 'inline';

	}

}



var calendarToShow = '';

function showMyCalendar(type) {

	var divId = 'divCalendar1';

	if (type == 2) {

		divId = 'divCalendar2';

		if (document.getElementById('divCalendar3').getAttribute('toggle') != null

				&& document.getElementById('divCalendar3')

						.getAttribute('toggle') == true) {

			document.getElementById('divCalendar3').style.display = 'none';

			document.getElementById('divCalendar3').toggle = false;

		}

	} else if (type == 3) {

		divId = 'divCalendar3';

		if (document.getElementById('divCalendar2').toggle != null

				&& document.getElementById('divCalendar2').toggle == true) {

			document.getElementById('divCalendar2').style.display = 'none';

			document.getElementById('divCalendar2').toggle = false;

		}

	}



	if (document.getElementById(divId).getAttribute('toggle') == false) {

		calendarToShow = divId;

		document.getElementById(divId).style.display = 'block';

		document.getElementById(divId).setAttribute('toggle', true);

	} else {

		document.getElementById(divId).style.display = 'none';

		document.getElementById(divId).setAttribute('toggle', false);

	}

}



function showCalendarDate(mydate) {

	var querystr = mydate.split("?");

	var querystr2 = querystr[1].split("&");

	var day_str = querystr2[0].split("=");

	var month_str = querystr2[1].split("=");

	var year_str = querystr2[2].split("=");

	var day = day_str[1];

	var month = month_str[1];

	var year = year_str[1];

	if (day < 10)

		day = '0' + day;

	if (month < 10)

		month = '0' + month;



	var type = 0;

	var calendarDate = month + '/' + day + '/' + year;



	if (calendarToShow == 'divCalendar1')

		type = 1;

	else if (calendarToShow == 'divCalendar2')

		type = 2;

	else if (calendarToShow == 'divCalendar3')

		type = 3;



	document.getElementById('caldate' + type).value = calendarDate;

	showMyCalendar(type);

}



function generateKeycodes() {

	document.getElementById('keycodes_area').style.display = 'block';

}



function showCalendarMonth(mymonth) {

	var querystr = mymonth.split("?");

	var querystr2 = querystr[1].split("&");

	var month_str = querystr2[0].split("=");

	var year_str = querystr2[1].split("=");

	var month = month_str[1];

	var year = year_str[1];



	loadHTML('show_calendar.php?month=' + month + '&year=' + year,

			calendarToShow);

}



function addNewCompanyKC(form, destination) {



	var name = form.name.value;

	var address = form.address.value;

	var city = form.city.value;

	var state = form.state.value;

	var agency_name = form.agency_name.value;



	var url = "company_kc_processor.php";



	var data = "name=" + name + "&address=" + address;

	data += "&city=" + city + "&state=" + state;

	data += "&agency_name=" + agency_name + "&action=add_company_kc";

	form.AddCompanyKCButton.disabled = true;

	sendData(url, destination, data);



}



function addNewCourseKC(form, destination) {

	var comp_kc_id = form.company_kc_id.value;

	var course_title = form.course_title.value;



	var course_desc = form.course_desc.value;

	if (course_desc == null || course_desc == "" || course_desc == undefined) {

		course_desc = tinyMCE.get('course_desc').getContent();

	}



	var course_credit = form.course_credit.value;

	var exam_cost = form.exam_cost.value;



	var url = "course_kc_processor.php";



	var data = "action=add_course_kc";

	data += "&comp_kc_id=" + comp_kc_id;

	data += "&course_title=" + course_title;

	data += "&course_desc=" + course_desc;

	data += "&course_credit=" + course_credit;

	data += "&exam_cost=" + exam_cost;



	form.AddCourseKCButton.disabled = true;

	sendData(url, destination, data);

}



function updateCourseKC(form, destination) {

	var course_id = form.course_id.value;

	var course_title = form.course_title.value;

	try{

		var course_desc = tinyMCE.get('course_desc').getContent();

	}catch(e){

		var course_desc = form.course_desc.value;

	}

	

	var course_credit = form.course_credit.value;

	var exam_cost = form.exam_cost.value;

	var no_of_keycodes = form.no_of_keycodes.value;

	var course_node_id = form.course_node_id.value;



	var url = "course_kc_processor.php";



	var data = "action=edit_course_kc";

	data += "&course_id=" + course_id;

	data += "&course_title=" + course_title;

	data += "&course_desc=" + course_desc;

	data += "&course_credit=" + course_credit;

	data += "&exam_cost=" + exam_cost;

	data += "&no_of_keycodes=" + no_of_keycodes;

	data += "&nid=" + course_node_id;

	// form.EditCourseKCButton.disabled = true;

	sendData(url, destination, data);

}



function addKeyCodes(form, destination) {

	var no_of_keycodes = form.no_of_keycodes.value;

	var action = form.action.value;

	var course_id = form.course_id.value;

	var no_of_keycodes = form.no_of_keycodes.value;

	var training_type = form.training_type.value;

	var training_from = "";

	var training_to = "";

	if (training_type == 1) {// if training type is only in 1 day training.

		var val = document.getElementById('caldate1').value;

		training_from = training_to = val;

	} else {

		var val1 = document.getElementById('caldate2').value;

		var val2 = document.getElementById('caldate3').value;

		training_from = val1;

		training_to = val2;

	}



	//updated on Dec.29,2009: check for keycode type

	var keycode_type = document.getElementById('type_of_keycode_div').getElementsByTagName('select')[0].value;

	

	var data = "action=" + action + "&course_id=" + course_id

			+ "&no_of_keycodes=" + no_of_keycodes + "&training_type="

			+ training_type + "&training_from=" + training_from

			+ "&training_to=" + training_to + "&keycode_type=" + keycode_type;

			

	//alert(data);		

	var url = "keycodes_processor.php";

	form.AddKeyCodeButton.disabled = true;

	sendData(url, destination, data);

}



function getKeyCodes(thisSelect, destination) {

	var course_id = thisSelect.options[thisSelect.selectedIndex].value;

	getCodes(course_id, destination);

}



function getKeycodes(destination) {

	var course_id = document.getElementById('course_id').value;

	getCodes(course_id, destination);

}



function getCodes(course_id, destination) {

	var action = "get_keycodes"

	var url = "keycodes_processor.php";

	var data = "action=get_keycodes&course_id=" + course_id;

	sendData(url, destination, data);

}



function getCurrentNoOfKeyCode(thisSelect, destination) {

	var course_id = thisSelect.options[thisSelect.selectedIndex].value;



	var action = "get_cur_no_keycode"

	var data = "action=" + action + "&course_id=" + course_id;

	var url = "keycodes_processor.php";

	sendData(url, destination, data);

}



function deactivateThisKeyCode(keycode, course_id, destination) {

	var data = "action=deactivate_this_code&course_id=" + course_id

			+ "&keycode=" + keycode;

	var url = "keycodes_processor.php";

	sendData(url, destination, data);

}



function activateThisKeyCode(keycode, course_id, destination) {

	var data = "action=activate_this_code&course_id=" + course_id + "&keycode="

			+ keycode;

	var url = "keycodes_processor.php";

	sendData(url, destination, data);

}



function getCompanyCourseKC(thisSelect, destination, page) {



	var action = "get_company_course_kc";

	var company_kc_id = thisSelect.options[thisSelect.selectedIndex].value;

	var url = "course_kc_processor.php";

	var data = "action=get_company_course_kc&company_kc_id=" + company_kc_id

			+ "&page=" + page;

	sendData(url, destination, data);



}



function updateKeyCode(destination) {

	var keycode_value = document.getElementById('deactivate_keycode').value;

	var data = "action=deactivate_keycode&keycode=" + keycode_value;

	var url = "keycodes_processor.php";

	sendData(url, destination, data);

}



function validateKeyCode(course_id, destination) {

	var keycode_value = document.getElementById('keycode_pass').value;

	var data = "course_id=" + course_id + "&keycode=" + keycode_value;

	var url = "validate_keycode_logic.php";

	sendData(url, destination, data);

}



function checkAndPutSeparate(thisInput, evt) {

	var evt = (evt) ? evt : event;

	var input = thisInput.value;

	if (input.length == 4) {

		if (evt.keyCode != 45)

			thisInput.value += "-";

	} else if (input.length == 9) {

		if (evt.keyCode != 45)

			thisInput.value += "-";

	} else if (input.length == 14) {

		if (evt.keyCode != 45)

			thisInput.value += "-";

	} else if (input.length >= 19) {

		var truncate = input.substring(0, 18);

		thisInput.value = truncate;

	}



}



function editRecord(url, id, destination) {

	var data = "id="+id;

	sendData(url, destination, data);

}



// added by Shiloh on Dec.29, 2009

function promptKeycodeType(sel) {

	if (sel.value == 1) {

		document.getElementById('trainingsked_row').style.display = 'inline';

	} else {

		document.getElementById('trainingsked_row').style.display = 'none';

	}

}



//from the adm1n index.php 

function state(){

	var name = document.form;

	if ( name.check.checked == true) {name.create.disabled = false; }

	if (name.check.checked == false) {name.create.disabled = true;}

}

var lastOpenedMenu = '';

function setActiveMenu(){

	if(lastOpenedMenu != '') OpenMenu(lastOpenedMenu);

}



function OpenMenu(who){

	for (i=1;i<100;i++){

		if (!document.getElementById('SM-' + i))

			break;

		document.getElementById('SM-' + i).style.display = 'none';

		document.getElementById(who).style.backgroundColor = '';

	}

	document.getElementById(who).style.display = 'inline';

	document.getElementById(who).style.backgroundColor = '#E3E3E3';

	lastOpenedMenu = who;

}



function change(who){

	document.getElementById(who).style.backgroundColor = '#E3E3E3';

}



function change_out(who){

	document.getElementById(who).style.backgroundColor = '';

}



//COMPANY ADD REQUIRED COURSES	

function removeOption(listbox,i){

	listbox.remove(i);

}

	

function addOption(selectbox,text,value ){

	var optn = document.createElement("OPTION");

	optn.text = text;

	optn.value = value;

	selectbox.options.add(optn);

}



function addOption_list(){

	var credit_limit = document.getElementById("credit_limit").value;

	var flag =1;

	if( (credit_limit==null) || (credit_limit==0) )

		alert("Please enter a credit limit to set the required courses.");

	else {

		var list_of_courses = document.getElementById("list_of_courses");

		var courses_required = document.getElementById("courses_required");

		

		for(i=list_of_courses.options.length-1; i>=0; i--) {

			if(list_of_courses.options[i].selected) {

				var courseID = list_of_courses.options[i].value;

				var arr = new Array();

				for(x = 0; x < courses_required.options.length; x++)  {						

					var courseReqID = courses_required.options[x].value;						

					arr[x] = courseReqID;

					if(courseReqID == courseID){

						alert("Course was already added!");

						flag = 0;

					}				

				}

				

				if(flag){

					var url = "company_add_courses.php?crsid="+ courseID +"&action=add&credit="+credit_limit+"&divCourseReq="+arr.toString();

					loadHTML(url, 'div_courses_required');

					break;						

				}

			}

		}

	}

}

	

function removeOption_list(){

	var courses_required = document.getElementById("courses_required");

	var actualCount = 0;

	var arr = new Array();

	for(i = 0; i < courses_required.options.length; i++){

		if(!courses_required.options[i].selected){

			arr[actualCount++] = courses_required.options[i].value;

		}					

	}

	var url = "company_add_courses.php?action=remove&divCourseReq="+arr.toString();

	loadHTML(url, 'div_courses_required');

}

		

function getCoursesReq (){

	var courses_required = document.getElementById("courses_required");

	var arr = new Array();

	for(i = 0; i < courses_required.options.length; i++){

		arr[i] = courses_required.options[i].value;

	}		

	document.getElementById("accumulate_courses_required").value = arr.toString();

}

	

//COMPANY EDIT REQUIRED COURSES

function editRemoveOption(listbox,i){

	listbox.remove(i);

}



function editOption(selectbox,text,value ){

	var optn = document.createElement("OPTION");

	optn.text = text;

	optn.value = value;

	selectbox.options.add(optn);

}



function editOption_list(){

	var credit_limit = document.getElementById("credit_limit").value;

	if( (credit_limit==null) || (credit_limit==0) )

		alert("Please enter a credit limit to set the required courses.");

	else{

		var list_of_courses = document.getElementById("list_of_courses_edit");

		for(i=list_of_courses.options.length-1; i>=0; i--){

			if(list_of_courses.options[i].selected){

				var courseID = list_of_courses.options[i].value;

				//alert('edit option course id: ' + courseID);

				var url = "company_edit_courses.php?crsid="+ courseID +"&action=add&credit="+credit_limit;

				loadHTML(url, 'div_courses_required_edit');

				//editOption(document.getElementById("courses_required_edit"), list_of_courses.options[i].text, list_of_courses.options[i].value);

				//editRemoveOption(list_of_courses,i);

				break;

			}

		}

	}

}





function editRemoveOption_list(){

	//alert('editRemoveOption_list');

	var courses_required = document.getElementById("courses_required_edit");

	//alert('length = ' + courses_required.options.length);

	for(i=courses_required.options.length-1; i>=0; i--){

		//alert('in the loop');

		if(courses_required.options[i].selected){

			//editOption(document.getElementById("list_of_courses_edit"), courses_required.options[i].text, courses_required.options[i].value);

			//editRemoveOption(courses_required,i);

			var courseID = courses_required.options[i].value;

			//alert('remove option course id: ' + courseID);

			var url = "company_edit_courses.php?crsid="+ courseID +"&action=remove";

			loadHTML(url, 'div_courses_required_edit');



			break;

		}

	}

}



function confirmCompanyDelete(cid){

	var x = confirm("Are you sure you want to delete this company? " + cid);

	if (x){

		//alert("Good! ");

		loadHTML("company_delete.php?cid="+cid, "div_delete_company");

	}

}



function confirmCompanyKCDelete(cid){

	var x = confirm("Are you sure you want to delete this company?");

	if (x){

		loadHTML("company_kc_processor.php?id="+cid+"&action=del_comp_kc", "content");

	}

}



function confirmCourseKCDelete(cid, nid){

	var x = confirm("Are you sure you want to delete this course?");

	if (x){

		loadHTML("course_kc_processor.php?cid="+cid+"&nid="+nid+"&action=del_course_kc", "content");

	}

} 



//positions



function confirmPositionDelete(cid, divId) {

	var x = confirm("Are you sure you want to delete this position? " + cid);

	  if (x){

	   //alert("Good! ");

	   loadHTML("position_ed.php?do=del&cid="+cid, "div_delete_position");

	   removePosition('editcomp_clone_area',divId);

	  }

}

 

function confirmPositionEdit(cid, curDiv) {

	var curPos = document.getElementById(curDiv).getElementsByTagName("input")[0].getAttribute("value");

	var url = "position_ed.php?do=edit&cid="+cid+"&position="+curPos;

	loadHTML(url, "div_edit_position");

	alert("Position has been edited.");

}



function ConfirmCancel(){alert(9)

	//if (confirm("Are you sure you want to clear the form? Click OK to clear it.")){

      	//document.myForm.reset();

		window.location("http://localhost:8080/ce-classes.com/index.php?action=exam_cat&show=edit_cat_view");

      	//history.back();

   	//}

  return true;

}



function validateSeminar(){

	var date = document.getElementById('Seminar_Date');

	var place = document.getElementById('Seminar_Place');

	var address = document.getElementById('Seminar_Address');

	var desc = document.getElementById('Seminar_Description').innerHTML;

	

	if ((date.value == null) || (date.value == '')) {

		alert('Please Enter Seminar Date');

		date.focus();

		return false;

	}

	if ((place.value == null) || (place.value == '')) {

		alert('Please Enter Seminar Location');

		place.focus();

		return false;

	}

	if ((address.value == null) || (address.value == '')) {

		alert('Please Enter Seminar Address');

		address.focus();

		return false;

	}

	

	if ((desc.value == null) || (desc.value == '')) {

		var course_desc = tinyMCE.get('Seminar_Description').getContent();

		if(course_desc==''){

			alert('Please Enter Seminar Description');

			return false;

		}

	}

	return true;

}



/* Stage 3 update: add description when filtering the course list (Discipline & Subject) */

function setDescription(sel, descElemId){

	var w = sel.selectedIndex;

	var selected_text = sel.options[w].text;

	if(sel.value != '' && (sel.value != 'All' || sel.value != 'all')){

		document.getElementById(descElemId).value = selected_text;

	}

}



function moveCategoryPosition(direction, catID, curPos){

	var ajaxfile = 'category_discipline.php?action=sort&direction=' + direction + '&catID=' + catID + '&curPos=' + curPos;

	loadHTML(ajaxfile, 'content');

}



function loadEnrolledStudents(form, radio){

	var radioObj = document.forms[form].elements[radio];

	var selected = "";

	if(!radioObj) return false;

	var radioLength = radioObj.length;

	if(radioLength == undefined){

		if(radioObj.checked){

			alert(radioObj.value);

			selected = radioObj.value;

		}

		else

			return false;

	}

	for(var i = 0; i < radioLength; i++) {

		if(radioObj[i].checked) {

			selected = radioObj[i].value;

		}

	}

	

	var ajaxfile = "";

	switch(selected){

		case 'state':

			return true;

			break;

		case 'profession':

			return true;

			break;

		case 'email':

			return true;

			break;

		case 'state_email':

			return true;

			break; 

		case 'profession_email':

			return true;

			break;

		case 'mass_mail_all':

			return true;

			break;

		default: //'all'

			ajaxfile = "student_all.php";

			break;

	}

	if(ajaxfile!='') loadHTML(ajaxfile, 'content');

	

	return false;

}