<!--//--><![CDATA[//><!--
function prepareInputTextBoxes() {
	$('input:text,input:password').addClass("fmText");
	$('input:button,input:reset').addClass("fmButton");
	$('select').addClass("fmSelect");
	$('textarea').addClass("fmTextArea");
//	$('input.dp_date').attr("readonly", true);
	$('label.mandatory').prepend('<span class="required">* </span>');
	$('input.fmText,select.fmSelect,textarea.fmTextArea').focus(function () {
		$(this).addClass('focused');
    }).blur(function () {
		$(this).removeClass('focused');
    });
}

function redirectHost(obj) {
	var objForm = obj.form;
	var email = objForm.email.value;
	var url, url_next;
	if (objForm.type_1.checked==true) {
		url = objForm.action.toString().replace(/institute|student/, "employer");
		url = url.replace(/jsLogin/, "empLogin");
		url_next = objForm.url_next.value.replace(/institute|student/, "employer");
	}
	else if (objForm.type_2.checked==true) {
		url = objForm.action.toString().replace(/employer|student/, "institute");
		url = url.replace(/jsLogin/, "empLogin");
		url_next = objForm.url_next.value.replace(/employer|student/, "institute");
	}
	else if (objForm.type_3.checked==true) {
		url = objForm.action.toString().replace(/employer|institute/, "student");
		url = url.replace(/empLogin/, "jsLogin");
		url_next = objForm.url_next.value.replace(/employer|institute/, "student");
	}
	objForm.action = url;
	objForm.url_next.value = url_next;
	return true;
}
/*
// Check if form is modified
function is_form_modified(oForm) {
	var el, opt, hasDefault, i = 0, j;
	while (el = oForm.elements[i++]) {
		switch (el.type) {
			case 'text':
			case 'textarea':
			case 'file':
			case 'hidden':
				if (el.value != el.defaultValue) return true;
				break;
			case 'checkbox':
			case 'radio':
				if (el.checked != el.defaultChecked) return true;
				break;
			case 'select-one':
			case 'select-multiple':
				j = 0, hasDefault = false;
				while (opt = el.options[j++])
					if (opt.defaultSelected) hasDefault = true;
				j = hasDefault ? 0 : 1;
				while (opt = el.options[j++])
					if (opt.selected != opt.defaultSelected) return true;
				break;
		}
	}
	return false;
}
*/
// HIDE OBJECT
function hide(objID) {
	var obj = document.getElementById(objID);
	obj.style.display = 'none';
}

// DISPLAY OBJECT
function display(objID) {
	var obj = document.getElementById(objID);
	obj.style.display = 'inline';
}
/*
// Display the correct days for certain month (etc 30 for April)
function setDays(prefix,obj,suffix) {
	if (suffix == null) suffix = "";
	//Checking if it is a date value, if it is then skip
	var tmp = obj.id;
	var myRE = new RegExp("_dd");
	myRE = "/_dd|_hr|_min|/";
	var results = tmp.match(myRE);
	if (results)
		return false;

	var fieldYear = document.getElementById(prefix+"_yyyy"+suffix);
	var fieldMonth = document.getElementById(prefix+"_mm"+suffix);
	var dayNow = document.getElementById(prefix+"_dd"+suffix);
	var y = fieldYear.value;
	var m = fieldMonth.selectedIndex;
	var days = 0;
	if ( (m == 4) || (m == 6) || (m == 9) || (m == 11) )
		days = 30;
	else if (m == 2) {
		if ( (Math.floor(y/4) == (y/4)) && ((Math.floor(y/100) != (y/100)) || (Math.floor(y/400) == (y/400))) )
			days = 29;
		else
			days = 28;
	}
	else
		days = 31;

	// ADD EXTRA DAYS
	if (days > dayNow.length-1) {
		for (var i = dayNow.length; i <= days; i++) {
			dayNow.length = days+1;
			dayNow.options[i].text = i;
			dayNow.options[i].value = i;
		}
	}
	// SUBTRACT EXTRA DAYS
	if (days < dayNow.length-1) {
		dayNow.length = days+1;
		if (dayNow.selectedIndex == -1)
			dayNow.selectedIndex = days;
	}
	return false;
}
*/
// CHECK EMAIL ADDRESS VALIDITY
function check_email(e) {
	var ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

	for(var i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){
			return (false);
		}
	}
	if (document.images) {
		var re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		var re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return (-1);
		}
	}
}

function trim(s) {
	return String(s).replace(/^\s+|\s+$/g,"").replace(/\s+/g," ");
}

function countWord(s) {
  var r = 0;
  var a;
  a = trim(s);
  a = a.split(' ');
  for (var z=0; z<a.length; z++) {
    if (a[z].length > 0)
      r++;
  }
  return r;
}

function checkNRIC(v) {
	if (v.length != 9)
		return false;
	v = v.toUpperCase();
	var	prefix = v.charAt(0);
	// Set up the reference table
	var ref_table = new	Array(4);
	ref_table['S'] = ref_table['T'] = ["A","B","C","D","E","F","G","H","I","Z","J"];
	ref_table['F'] = ref_table['G'] = ["K","L","M","N","P","Q","R","T","U","W","X"];
	// Set up the multiplying factory
	var factor = [2,7,6,5,4,3,2];

	// Multiply	the	NRIC digits	with the factor	and	sum	the	results
	var	sum	= 0;
	for	(var i=0; i<7; i++)
		sum	+= (parseInt(v.charAt(i+1)) * factor[i]);

	// Add weightage to	the	sum	if born	after year 1999
	if (prefix=='T'	|| prefix=='G')
		sum	+= 4;

	// Find	the	remainder of sum divided by	11
	var	remainder =	sum	% 11;

	// Find	the	lookup index
	var	index =	11 - remainder;

	// Reference alphabet
	var	ref	= ref_table[prefix][index-1];

	// Compare the reference alphabet
	if (v.charAt(8)!=ref)
		return false;
	else
		return true;
}
/*
function check_nric(nric) {
	if (nric.length	!= 9)
		return (false);

	nric = nric.toUpperCase();
	var	prefix = nric.charAt(0);

	// Set up	the	reference	table
	var	ref_table	=	new	Array(11);
	if (prefix ==	'S'	|| prefix	== 'T')			 //	Singaporean
	{
		ref_table[0]	=	'A';
		ref_table[1]	=	'B';
		ref_table[2]	=	'C';
		ref_table[3]	=	'D';
		ref_table[4]	=	'E';
		ref_table[5]	=	'F';
		ref_table[6]	=	'G';
		ref_table[7]	=	'H';
		ref_table[8]	=	'I';
		ref_table[9]	=	'Z';
		ref_table[10]	=	'J';
	}
	else if	(prefix	== 'F' ||	prefix ==	'G')			// Foreigner
	{
		ref_table[0]	=	'K';
		ref_table[1]	=	'L';
		ref_table[2]	=	'M';
		ref_table[3]	=	'N';
		ref_table[4]	=	'P';
		ref_table[5]	=	'Q';
		ref_table[6]	=	'R';
		ref_table[7]	=	'T';
		ref_table[8]	=	'U';
		ref_table[9]	=	'W';
		ref_table[10]	=	'X';
	}

	// Set up	the	factor
	var	factor = new Array(7);
	factor[0]	=	2;
	factor[1]	=	7;
	factor[2]	=	6;
	factor[3]	=	5;
	factor[4]	=	4;
	factor[5]	=	3;
	factor[6]	=	2;

	// Multiply	the	NRIC digits	with the factor	and	sum	the	results
	var	sum	=	0;
	for	(var i=0;	i<7; i++)
		sum	+= (parseInt(nric.charAt(i+1)) * factor[i]);

	// Add weightage to	the	sum	if born	after	year 1999
	if (prefix ==	'T'	|| prefix	== 'G')
		sum	+= 4;

	// Find	the	remainder	of sum divided by	11
	var	remainder	=	sum	%	11;

	// Find	the	lookup index
	var	index	=	11 - remainder;

	// Reference alphabet
	var	ref	=	ref_table[index-1];

	// Compare the reference alphabet
	if (nric.charAt(8) !=	ref)
		return (false);
	else
		return (true);
}
*/
// CREATE POP-UP WINDOW
function popup(mypage, myname, w, h, pos, infocus) {
	if (infocus==null)
		infocus = 'front';
	var LeftPosition = (screen.width)?(screen.width-w)/2:100;
	var TopPosition = (screen.height)?(screen.height-h)/2:100;
	var settings = 'width='+ w + ',height='+ h + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=yes,location=no,directories=no,status=no,menubar=yes,toolbar=no,resizable=yes';
	var popupWindow = window.open('',myname,settings);
	if (infocus=='front') {
		popupWindow.focus();
		popupWindow.location = mypage;
	}
	else {
	  popupWindow.location = mypage;
		popupWindow.opener.focus();
	}
}

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() {
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e) {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
      try {
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      }
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp) {
    alert("Error creating the XMLHttpRequest object.");
    return false;
  }
  else
    return xmlHttp;
}
/*
function activateList(e) {

}

function returnChoice(dropdown) {
	var targetFieldContainer = document.getElementById('targetField');
	if (targetFieldContainer.value!='') {
		var targetField = document.getElementById(targetFieldContainer.value);
		var myindex = dropdown.selectedIndex;
		var tmp = dropdown.options[myindex].value;
		if (tmp.toLowerCase()!='other' && tmp.toLowerCase()!='others')
			targetField.value = dropdown.options[myindex].value;
	}
	var selectorFieldDiv = document.getElementById('div_' + dropdown.id);
	selectorFieldDiv.style.display = 'none';
	//targetField.focus();
}

function initSelector() {
	var element, key;
	for (key in dropDownArr) {
		element = document.getElementById(key);
		if (element) {
			element.onfocus = activateList;
			element.setAttribute("autocomplete", "off");
			if (element.captureEvents)
				element.captureEvents(Event.CLICK|Event.FOCUS);
		}
	}
}

function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function hideAllSelector() {
  var selectorList = getElementsByClassName(document, "div", "selectorContainer");
  for (var i=0; i<selectorList.length; i++) {
    selectorList[i].style.display = 'none';
  }
}
*/
function getElementsByClassName(oElm, strTagName, oClassNames) {
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if (typeof oClassNames == "object") {
		for (var i=0; i<oClassNames.length; i++) {
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else {
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement, bMatchesAll;
	for (var j=0; j<arrElements.length; j++) {
		oElement = arrElements[j];
		bMatchesAll = true;
		for (var k=0; k<arrRegExpClassNames.length; k++) {
			if (!arrRegExpClassNames[k].test(oElement.className)) {
				bMatchesAll = false;
				break;
			}
		}
		if (bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements);
}

if (typeof Array.prototype.push != "function") {
	Array.prototype.push = ArrayPush;
	function ArrayPush(value){
		this[this.length] = value;
	}
}

function getEditorValue(instanceName){
  // Get the editor instance that we want to interact with.
  var oEditor = FCKeditorAPI.GetInstance(instanceName);
  // Get the editor contents as XHTML.
  return oEditor.GetXHTML(true); // "true" means you want it formatted.
}
//--><!]]>