
function checkFormPassword(obj)
{
	if(!isBlank(obj.new_password.value) && !isBlank(obj.retype_password.value))
	{
		if(obj.new_password.value != obj.retype_password.value)
		{
			alert("Your new password and retype password does not match!");
			obj.new_password.value = "";
			obj.retype_password.value = "";
			obj.new_password.focus();
			return false;
		}
	}
	return true;
}

function isMobilePhone(val)
{
	if (!isBlank(val))
	{
		var pattern = /^01\d-\d\d\d\d\d\d\d$/;
		if (val.match(pattern)) 
		{
			if (val.indexOf('-') > -1) { return true; }
			else { return false; }
		} 
		else { return false; }
	}
	else { return false; }
}

function isUsername(val)
{
	if (!isBlank(val) && val.length >= 5)
	{
		var pattern =/[^a-zA-Z0-9_.]/; 
		if (val.match(pattern)) { return false; }
	  else { return true; }
	}
	else { return false; }
}

function isEmail(val) 
{
	if (!isBlank(val))
	{
		var pattern =/.+@.+\..+/;
		if (val.match(pattern)) 
		{
			if (val.indexOf('@') > -1 && val.indexOf('.') > -1) { return true; }
			else { return false; }
		} 
		else { return false; }
	}
	else { return false; }
}

function isNRIC(val) 
{
	if (!isBlank(val))
	{
		var pattern = /^\d\d\d\d\d\d\d\d\d\d\d\d$/;
		if (val.match(pattern)) { return true; }
		else { return false; }
	}
	else { return false; }
}

function isNRICCadmin(val)
{
	if (!isBlank(val) && val.length >= 5)
	{
		var pattern =/[^a-zA-Z0-9]/; 
		if (val.match(pattern)) { return false; }
	  else { return true; }
	}
	else { return false; }
}

function isNRIC_DASH(val) 
{
	if (!isBlank(val))
	{
		var pattern = /^\d\d\d\d\d\d-\d\d-\d\d\d\d$/;
		if (val.match(pattern)) 
		{
			if (val.indexOf('-') > -1) { return true; }
			else { return false; }
		} 
		else { return false; }
	}
	else { return false; }
}

function blinkIt() 
{
 if (!document.all) return;
 else 
 	{
   for(i=0;i<document.all.tags('blink').length;i++)
   {
      s=document.all.tags('blink')[i];
      s.style.visibility=(s.style.visibility=='visible')?'hidden':'visible';
   }
 }
}

function popup(theURL, winName, winWidth, winHeight, setStatus) 
{
	window.open(theURL,winName,'width='+ winWidth +',height='+ winHeight +',location=0,menubar=0,resizable='+ setStatus +',scrollbars=1,status=1,titlebar=0,toolbar=0,top=0,left=0'); 
}

function returnFalse()
{
	unloading();
	return false;
}

function confirmToDo(msg)
{
	loading();
	if (confirm(msg))
	{
		return true;
	}
	else
	{
		return returnFalse();
	}
}

function confirmToGo(msg, togo)
{
	loading();
	if (confirm(msg))
	{
		window.location = togo;
	}
	else
	{
		return returnFalse();
	}
}

function checkForm(formElements)
{
	var flag;
	
	for (i=0; i < formElements.length; i++)
 	{
 		//alert(i + " -> type=" + formElements.elements[i].type + " name=" + formElements.elements[i].name + " id=" + formElements.elements[i].id + " label=" + formElements.elements[i].label + " value=" + formElements.elements[i].value); continue; 

 		if (formElements.elements[i].disabled == true 
		|| formElements.elements[i].type == "checkbox" 
		|| formElements.elements[i].type == "radio" 
		|| formElements.elements[i].type == "submit" 
		|| formElements.elements[i].type == "reset" 
		|| formElements.elements[i].type == "button" 
		|| formElements.elements[i].type == "hidden") 
		{ flag = true; }
		else if (formElements.elements[i].id == "pop" && isBlank(formElements.elements[i].value))
		{
			alert("Please select Payment Type!");
			setNullIfBlank(formElements.elements[i]);
			formElements.elements[i].focus();
			return returnFalse();
		}
		else if (formElements.elements[i].id == "tac" && (!isInteger(formElements.elements[i].value) || formElements.elements[i].value.length < 6))
		{
			alert("Please insert TAC with valid value!");
			
			if (isBlank(formElements.elements[i].value))
			{
				formElements.elements[i].value = "";
			}
			
			formElements.elements[i].focus();
			formElements.elements[i].select();
			return returnFalse();
		}
		else if (formElements.elements[i].id == "nric" && !isNRIC(formElements.elements[i]))
		{
			alert("Please insert valid NRIC!");
			formElements.elements[i].focus();
			return returnFalse();
		}
		else if (formElements.elements[i].id == "not_null" && isBlank(formElements.elements[i].value) && (formElements.elements[i].type == "text" || formElements.elements[i].type == "password" || formElements.elements[i].type == "select-one"))
		{
			alert("Please complete all required information!");
			setNullIfBlank(formElements.elements[i]);
			formElements.elements[i].focus();
			return returnFalse();
		}
		else if (formElements.elements[i].id == "not_null_999" && formElements.elements[i].value == "999")
		{
			alert("Please select to complete all required information!");
			setNullIfBlank(formElements.elements[i]);
			formElements.elements[i].focus();
			return returnFalse();
		}
		else if (formElements.elements[i].id.substr(0,12) == "DPC_calendar" && isBlank(formElements.elements[i].value))
		{
			alert("Please select valid date!");
			formElements.elements[i].focus();
			return returnFalse();
		}
		else if (formElements.elements[i].id == "email" && !isEmail(formElements.elements[i]))
		{
			alert("Please insert valid email address!");
			formElements.elements[i].focus();
			return returnFalse();
		}
		else if (formElements.elements[i].id == "integer" && !isInteger(formElements.elements[i].value))
		{
			alert("Please complete all required information with valid number value!");
			
			if (isBlank(formElements.elements[i].value))
			{
				formElements.elements[i].value = "0";
			}
			
			formElements.elements[i].focus();
			formElements.elements[i].select();
			return returnFalse();
		}
		else { flag = true; }
		// email timenet only 
		if (formElements.elements[i].id == "email")
		{
			var email_add = formElements.elements[i].value.replace(/^\s+|\s+$/g,"");
			var verify_email = email_add.split("@");
			if (verify_email[1] == "time.net.my")
			{
				alert("Please insert Non-TIMENet email address! [ Incorrect: @time.net.my ]");
				formElements.elements[i].focus();
				return returnFalse();
			}
		}
 	}
	
	if (confirm('Are you sure all the information is correct?'))
	{
		return true;
	}
	else
	{
		return returnFalse();
	}
}

function checkOnKeyDown(key)
{
	//alert(key.event.keyCode);
	
	if((key.event.keyCode == 8) || (key.event.keyCode == 9) || (key.event.keyCode == 20) || (key.event.keyCode == 13) || (key.event.keyCode == 46))
	{
		key.event.returnValue = true;
	}
	else if((key.event.keyCode >= 48 && key.event.keyCode <= 57) || (key.event.keyCode >= 96 && key.event.keyCode <= 105))
	{
		key.event.returnValue = true;
	}
	else if(key.event.keyCode >= 37 && key.event.keyCode <= 40)
	{
		key.event.returnValue = true;
	}
	else if((key.event.keyCode >= 65 && key.event.keyCode <= 90)) // huruf
	{
		key.event.returnValue = false;
	}
	else if((key.event.keyCode == 189 || key.event.keyCode == 32)) // - spacebar
	{
		key.event.returnValue = true;
	}
	else
	{
		//alert("Error key press: " + key.event.keyCode);
		key.event.returnValue = false;
	}
}

/* Date function */

var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isDInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	//var strMonth=dtStr.substring(0,pos1)
	//var strDay=dtStr.substring(pos1+1,pos2)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("ERROR")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month!")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day!")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid year!")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isDInteger(stripCharsInBag(dtStr, dtCh))==false){
		//alert("Please enter a valid date!")
		return false
	}
return true
}

/* End Date function */

function LTrim(str){if(str==null){return null;}for(var i=0;str.charAt(i)==" ";i++);return str.substring(i,str.length);}
function RTrim(str){if(str==null){return null;}for(var i=str.length-1;str.charAt(i)==" ";i--);return str.substring(0,i+1);}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str){if(str==null){return str;}for(var i=0;str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t";i++);return str.substring(i,str.length);}
function RTrimAll(str){if(str==null){return str;}for(var i=str.length-1;str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t";i--);return str.substring(0,i+1);}
function TrimAll(str){return LTrimAll(RTrimAll(str));}
function isNull(val){return(val==null);}
function isBlank(val){if(val==null){return true;}for(var i=0;i<val.length;i++){if((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}}return true;}
function isInteger(val){if(isBlank(val)){return false;}for(var i=0;i<val.length;i++){if(!isDigit(val.charAt(i))){return false;}}return true;}
function isNumeric(val){return(parseFloat(val,10)==(val*1));}
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}
function isDigit(num){if(num.length>1){return false;}var string="1234567890";if(string.indexOf(num)!=-1){return true;}return false;}
function setNullIfBlank(obj){if(isBlank(obj.value)){obj.value="";}}
function setNullBlank(obj){obj.value="";}
function setFieldsToUpperCase(){for(var i=0;i<arguments.length;i++){arguments[i].value = arguments[i].value.toUpperCase();}}
function disallowBlank(obj){var msg=(arguments.length>1)?arguments[1]:"";var dofocus=(arguments.length>2)?arguments[2]:false;if(isBlank(getInputValue(obj))){if(!isBlank(msg)){alert(msg);}if(dofocus){if(isArray(obj) &&(typeof(obj.type)=="undefined")){obj=obj[0];}if(obj.type=="text"||obj.type=="textarea"||obj.type=="password"){obj.select();}obj.focus();}return true;}return false;}
function disallowModify(obj){var msg=(arguments.length>1)?arguments[1]:"";var dofocus=(arguments.length>2)?arguments[2]:false;if(getInputValue(obj)!=getInputDefaultValue(obj)){if(!isBlank(msg)){alert(msg);}if(dofocus){if(isArray(obj) &&(typeof(obj.type)=="undefined")){obj=obj[0];}if(obj.type=="text"||obj.type=="textarea"||obj.type=="password"){obj.select();}obj.focus();}setInputValue(obj,getInputDefaultValue(obj));return true;}return false;}
function commifyArray(obj,delimiter){if(typeof(delimiter)=="undefined" || delimiter==null){delimiter = ",";}var s="";if(obj==null||obj.length<=0){return s;}for(var i=0;i<obj.length;i++){s=s+((s=="")?"":delimiter)+obj[i].toString();}return s;}
function getSingleInputValue(obj,use_default,delimiter){switch(obj.type){case 'radio': case 'checkbox': return(((use_default)?obj.defaultChecked:obj.checked)?obj.value:null);case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;case 'password': return((use_default)?null:obj.value);case 'select-one':
if(obj.options==null){return null;}if(use_default){var o=obj.options;for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].value;}}return o[0].value;}if(obj.selectedIndex<0){return null;}return(obj.options.length>0)?obj.options[obj.selectedIndex].value:null;case 'select-multiple':
if(obj.options==null){return null;}var values=new Array();for(var i=0;i<obj.options.length;i++){if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)){values[values.length]=obj.options[i].value;}}return(values.length==0)?null:commifyArray(values,delimiter);}alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");return null;}
function getSingleInputText(obj,use_default,delimiter){switch(obj.type){case 'radio': case 'checkbox': 	return "";case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;case 'password': return((use_default)?null:obj.value);case 'select-one':
if(obj.options==null){return null;}if(use_default){var o=obj.options;for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].text;}}return o[0].text;}if(obj.selectedIndex<0){return null;}return(obj.options.length>0)?obj.options[obj.selectedIndex].text:null;case 'select-multiple':
if(obj.options==null){return null;}var values=new Array();for(var i=0;i<obj.options.length;i++){if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)){values[values.length]=obj.options[i].text;}}return(values.length==0)?null:commifyArray(values,delimiter);}alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");return null;}
function setSingleInputValue(obj,value){switch(obj.type){case 'radio': case 'checkbox': if(obj.value==value){obj.checked=true;return true;}else{obj.checked=false;return false;}case 'text': case 'hidden': case 'textarea': case 'password': obj.value=value;return true;case 'select-one': case 'select-multiple':
var o=obj.options;for(var i=0;i<o.length;i++){if(o[i].value==value){o[i].selected=true;}else{o[i].selected=false;}}return true;}alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");return false;}
function getInputValue(obj,delimiter){var use_default=(arguments.length>2)?arguments[2]:false;if(isArray(obj) &&(typeof(obj.type)=="undefined")){var values=new Array();for(var i=0;i<obj.length;i++){var v=getSingleInputValue(obj[i],use_default,delimiter);if(v!=null){values[values.length]=v;}}return commifyArray(values,delimiter);}return getSingleInputValue(obj,use_default,delimiter);}
function getInputText(obj,delimiter){var use_default=(arguments.length>2)?arguments[2]:false;if(isArray(obj) &&(typeof(obj.type)=="undefined")){var values=new Array();for(var i=0;i<obj.length;i++){var v=getSingleInputText(obj[i],use_default,delimiter);if(v!=null){values[values.length]=v;}}return commifyArray(values,delimiter);}return getSingleInputText(obj,use_default,delimiter);}
function getInputDefaultValue(obj,delimiter){return getInputValue(obj,delimiter,true);}
function isChanged(obj){return(getInputValue(obj)!=getInputDefaultValue(obj));}
function setInputValue(obj,value){var use_default=(arguments.length>1)?arguments[1]:false;if(isArray(obj)&&(typeof(obj.type)=="undefined")){for(var i=0;i<obj.length;i++){setSingleInputValue(obj[i],value);}}else{setSingleInputValue(obj,value);}}
function isFormModified(theform,hidden_fields,ignore_fields){if(hidden_fields==null){hidden_fields="";}if(ignore_fields==null){ignore_fields="";}var hiddenFields=new Object();var ignoreFields=new Object();var i,field;var hidden_fields_array=hidden_fields.split(',');for(i=0;i<hidden_fields_array.length;i++){hiddenFields[Trim(hidden_fields_array[i])]=true;}var ignore_fields_array=ignore_fields.split(',');for(i=0;i<ignore_fields_array.length;i++){ignoreFields[Trim(ignore_fields_array[i])]=true;}for(i=0;i<theform.elements.length;i++){var changed=false;var name=theform.elements[i].name;if(!isBlank(name)){var type=theform[name].type;if(!ignoreFields[name]){if(type=="hidden"&&hiddenFields[name]){changed=isChanged(theform[name]);}else if(type=="hidden"){changed=false;}else{changed=isChanged(theform[name]);}}}if(changed){return true;}}return false;}

/*
function popup(theURL, winName, winWidth, winHeight) 
{
	window.open(theURL,winName,'width='+ winWidth +',height='+ winHeight +',location=0,menubar=0,resizable=1,scrollbars=1,status=yes,titlebar=0,toolbar=0,top=0,left=0');
}

function popupInput(theURL, winName, winWidth, winHeight) 
{
	window.open(theURL,winName,'width='+ winWidth +',height='+ winHeight +',location=0,menubar=0,resizable=0,scrollbars=0,status=yes,titlebar=0,toolbar=0,top=0,left=0');
}

var message = '';

function clickIE() 
{ 
	if(document.all) 
	{ 
		(message);return false; 
	} 
}

function clickNS(e) 
{
	if(document.layers||(document.getElementById&&!document.all)) 
	{
		if(e.which==2||e.which==3) 
		{
			(message);
			return false;
		}
	}
}

if(document.layers) 
{
	document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;
}
else
{
	document.onmouseup=clickNS;document.oncontextmenu=clickIE;
}

document.oncontextmenu = new Function("return false")

function disableselect(e)
{
	return false
}

function reEnable()
{
	return true
}

document.onselectstart=new Function ("return false")

if(window.sidebar)
{
	document.onmousedown=disableselect
	document.onclick=reEnable
}
*/
