<!--

var validated=true;  // global

function isConfirm(msg) {
	var reply;
	
	reply = confirm(msg);
	if (reply)
		return true;
	else
		return false;	
}

function Trim(str) {
	var res = /^\s+/ig;
	var ree = /\s+$/ig;
	var out = str.replace(res,"").replace(ree,"");
    return out;
}

function ValidatePassword(ctlPassowrd, ctlConfirmPassword) {
	if (ctlPassowrd.value.length < 6) {
    		alert('Your password should contain at least 6 characters for security reasons.');
    		ctlPassowrd.focus();
    		validated = false;
    		return false;
  	}	
 	
  	if (ctlPassowrd.value == ctlConfirmPassword.value) {
		validated = true;
		return true;
	} else {
		alert('Your password confirmation does not match, please re-enter your password');
		ctlConfirmPassword.focus();
		validated = false;
		return false;
	}
}

function CountPassword(ctl) {
	if(ctl.value.length < 4 ) {	
		alert('Your password Must be at least 4 digits or alphabet letters');
		ctl.focus();
		return false;
	}
	
}

function ValidateText(ctl,msg) {
	var temp_str = Trim(ctl.value);

	if (temp_str == "") {
		ctl.value = "";
	  	alert(msg);
	  	ctl.focus();
	  	validated = false;
	  	return false;
	} else {
		ctl.value = temp_str;
		validated = true;
		return true;
	}
}

function ValidateCtl(ctl, msg, compulsory) {

//alert(GetValueFromCtl(ctl));
	if (GetValueFromCtl(ctl) == "" && compulsory=="1") {
		alert(msg);
		ctl.focus();
		validated = false;
		return false;
	} else {
		validated = true;
		return true;
	}
}

function ValidateList(ctl,msg,ctlfocus) {
	var temp_str = Trim(ctl.value);
	
	if (temp_str == "") {
	  alert(msg);
	  ctlfocus.focus();
	  validated = false;
	  return false;
	}
	else {
	  ctl.value = temp_str;
	  validated = true;
	  return true;
	}
}

function GetValueFromCtl (ctl) {

	for (var i=0; i < ctl.options.length; i++) {		
		if(ctl.options[i].selected ) {
			if (ctl.options[i].value == "" || ctl.options[i].value == "-" || ctl.options[i].value == "00") {
				return "";
			} else
				return ctl.options[i].value;
		}
	}
	return "";
}

function GetTextFromCtl (ctl) {
	for (var i=0; i < ctl.options.length; i++) {
		if(ctl.options[i].selected ) {
			return ctl.options[i].text;
		}
	}
	return "";
}


function ValidateNumber(ctl, min_val, max_val, msg, compulsory) {
    var temp_num = Trim(ctl.value);
    if (compulsory == "0" && temp_num.length == 0) {
          ctl.value = temp_num;
          validated = true;
          return true;
    }
    else {
      if (isReal(temp_num) && temp_num.length > 0) {
         if ((temp_num < min_val) || (temp_num > max_val)) {
  		    alert(msg + " within the range of " + min_val + " to " + max_val + ".");
            ctl.focus();
	        validated = false;
	        return false;
         }
         else {
		    ctl.value = temp_num;
	        validated = true;
            return true;
         }
       }
       else {
	  	    alert(msg + ". Your entry was invalid.");
	        ctl.focus();
	        validated = false;
	        return false;
       }
     }
}

function ValidateIC(vl,type,country) 
{
	validated=true;

	// Regular expression for typo errors
	var validMYIC = /^\d{6}-\d{2}-\d{4}$/;
	var validSGIC = /^[a-zA-Z]{1}\d{7}[a-zA-Z]{1}$/;

	// Error messages
	var MYErrorMsg = "Please fill in your New IC No. in a valid format,\ne.g. 810231-07-4123."
	var SGErrorMsg = "Please fill in your IC No. in a valid format,\ne.g. S1234567D."

	if (type.value=='1')
	{
		if (country.value=='MY')
		{
			if (vl.value=='000000-00-0000')
			{
				alert(MYErrorMsg);
				return false;
			}
			else if (!validMYIC.test(Trim(vl.value)) )
			{
				alert(MYErrorMsg);
				return false;
			}
		}
		else if (country.value=='SG')
		{
			if (!validSGIC.test(Trim(vl.value)) )
			{
				alert(SGErrorMsg);
				return false;
			}
		}
	}
}

function isInt(string) {
    for (var i=0;i < string.length;i++)
        if ((string.substring(i,i+1) < '0') || (string.substring(i,i+1) > '9') )
            return false;
	return true;
}

function isReal(string) {
    var decimal_found = false;
    var ws;

    for (var i=0;i < string.length;i++)
      if ((string.substring(i,i+1) < '0' || string.substring(i,i+1) > '9') && string.substring(i,i+1) != '.') {
            return false;
      }
      else {
        if (string.substring(i,i+1) == '.') {
          if (decimal_found == true) {
            return false;
          }
          else {
            decimal_found = true;
          }
        }   
      }
    return true;      
}

function ValidateTextLimit(ctl,min_val,max_val,msg) {
	var strTemp = Trim(ctl.value);
	
	if (strTemp.length < min_val || strTemp.length > max_val) {
	  alert(msg);
	  ctl.focus();
	  return false;
	}
	else {
	  ctl.value = strTemp;
	  return true;
	}
}

function addOption(frm,frObj,toObj) {

	var optionRank = toObj.options.length
	var str='';
	str = frm.specialization.value;
	if (toObj.options.length == 0) { str = ""; }
	var optionObject = new Option('','')
	for (var i=0;i<frObj.options.length;i++){
	   if (frObj.options[i].selected){
			if (str.indexOf(frObj.options[i].value)== -1){
			optionObject = new Option( frObj.options[i].text, frObj.options[i].value)			
			toObj.options[optionRank] = optionObject;           
			str=(str!='') ? str + ', '+ frObj.options[i].value : frObj.options[i].value;	   	
			optionRank = optionRank + 1;
	    }
	   }		
	}
    frm.specialization.value = str;
}

function deleteOption(frm,toObj) {

	var optionObject = new Option('','')	
	var j=0;	
	var str='';
	var sel='';
	
	for (var i=0;i<toObj.options.length;i++){	   
	   if (toObj.options[i].selected){
			toObj.options[i]=null;
			i = i - 1;
	   }
	   else{
			str=(str!='') ? str + ', '+ toObj.options[i].value : toObj.options[i].value;	   				
	   }
	}
	
    frm.specialization.value = str;
}

function ValidateJPList(ctl,msg) {

	if (ctl.length == 0) {
	  	alert(msg);
	  	ctl.focus();
	  	validated = false;
	  	return false;
	} else {		
		validated = true;
		return true;
	}
}

// This scans all the onchanged routines
function onFrmSubmit(frm) {
	// force validation of all fields			  		
	var i;
	validated = true;	
	var NS4 = (document.layers) ? true : false;	
	
	for (i=0;i<frm.elements.length && validated;i++) {
		if (frm.elements[i].onchange!=null) {
			if (!NS4) {
				if (frm.elements[i].style.visibility != 'hidden') {
					frm.elements[i].onchange();  // force fire onchange event
				}
			}
		}
	}
	if (validated==true) {	 
	  lon(top.workFrame);	
	  frm.submit();
	}
}

function validateOption(ctl,msg) {
	var v = false;
	for (var i=0; i<ctl.length; i++) {            
		if (ctl[i].checked) {
			v = true;
		        break;
		}
	}
	if ((!v) && (msg!="")) {alert(msg);}
	return v;
}
		
//Date
function validDate(obj,blank)
{
    var t_indate = obj.value;
    var t_day="";
    var t_month="";
    var t_year="";
    var t_length=0;
    var t_first=0;
    var t_second=0;

    var bl_valid=true;
    if(blank){
      if(trim(t_indate)==''){
        return true;
      }
    }

    t_length=t_indate.length-1
    t_first=t_indate.indexOf("/")
    t_second=t_indate.lastIndexOf("/")

    if(t_indate.length!=10){
      alert("Wrong date format,\ndate format is dd/mm/yyyy");
      obj.focus();
      return false;
    }

    if (t_first==-1 || t_first==t_second) {

      alert("Wrong date format,\ndate format is dd/mm/yyyy");
      obj.focus();
      return false;
    }

    t_day=trim((t_indate.substring(0,t_first)));
    t_month=t_indate.substring(t_first+1,t_second)
    t_year=t_indate.substring(t_second+1,t_length)+t_indate.charAt(t_length)
 
	var t_temp="N"
    if (t_day=="" || t_month=="" || t_year=="") {

       alert("Wrong date format,\ndate format is dd/mm/yyyy");
       obj.focus();
       return false
    }

    if (t_day=="1" || t_day=="2" || t_day=="3" || t_day=="4" || t_day=="5"
           || t_day=="6" || t_day=="7" || t_day=="8" || t_day=="9") {

       alert("Wrong date format,\nday must be in 2 digits");
       obj.focus();
       return false
    }

	if (t_month=="1" || t_month=="2" || t_month=="3" || t_month=="4" || t_month=="5"
           || t_month=="6" || t_month=="7" || t_month=="8" || t_month=="9") {

       alert("Wrong date format,\nmonth must be in 2 digits");
       obj.focus();
       return false
    }

    var t_comb=t_day+t_month+t_year;
    bl_valid=validNumber(t_comb);

    if (bl_valid==false) {

       alert("Wrong date format,\nall day, month and year must be in numeric type");
       obj.focus();
       return bl_valid;
    }

    t_aday=parseInt(t_day);
    t_amonth=parseInt(t_month);
    t_ayear=parseInt(t_year);

    if (t_year%4==0) {
      t_temp="Y"
    }

    if (t_day < 1 || t_day>31 || t_month < 1 || t_month > 12 || t_year<1960) {

      alert("Wrong date format,\nday range is 1 - 31\nmonth range is 1 - 12\nyear must greater than 1960 ");
      bl_valid=false
    }
    else {

      if (t_month==2) {
        if (t_day>29) {

          alert("Wrong date format,\nday range cannot greater than 29");
          bl_valid=false
        }
        else {

          if (t_day==29 && t_temp!="Y") {
            alert("Wrong date format,\nday range is 1 - 28 for this year");
            bl_valid=false
          }
        }
      }
      else {

        if (t_day>30) {
          if (t_month==4 || t_month==6 || t_month==9 || t_month==11) {

            alert("Wrong date format,\nday range is 1 - 30 for this month");
            bl_valid=false
          }
        }
      }
    }
    if(!bl_valid){
      obj.focus();
    }
    return (bl_valid);
}

function validDateRange( fromDate, toDate )
{
    var dayFrom   = fromDate.substring( 0,2 );
    var monthFrom = fromDate.substring( 3,5 );
    var yearFrom  = fromDate.substring( 6,10 );
    var dateFrom  = yearFrom + monthFrom + dayFrom;
    var dayTo     = toDate.substring( 0,2 );
    var monthTo   = toDate.substring( 3,5 );
    var yearTo    = toDate.substring( 6,10 );
    var dateTo    = yearTo + monthTo + dayTo;

    if( dateFrom <= dateTo )
    {
        return true;
    }
    else
    {
        return false;
    }
}


var isIE = document.all?true:false;
var isNS = document.layers?true:false;
function onlyDigits(e,decReq) {
var key = (isIE) ? window.event.keyCode : e.which;
var obj = (isIE) ? event.srcElement : e.target;
var isNum = (key > 47 && key < 58) ? true:false;
var dotOK = (key==46 && decReq=='decOK' && (obj.value.indexOf(".")<0 || obj.value.length==0)) ? true:false;
window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
e.which = (!isNum && !dotOK && isNS) ? 0:key;
return (isNum || dotOK);
}

function hasOptions(obj) {
	if (obj!=null && obj.options!=null) { return true; }
	return false;
}

function sortSelect(obj) {
	var o = new Array();
	if (!hasOptions(obj)) { return; }
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
		}
	if (o.length==0) { return; }
	o = o.sort( 
		function(a,b) { 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
			} 
		);

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}

// -->