//OTHERS
//-----------------------------------------------------------------------------
function gotoPage(pageIdx) {
	var obj = document.getElementById('Paging').getElementsByTagName('INPUT');
	obj[0].value=pageIdx;
	obj[2].click();
}

function sortBy(colName) {
	var obj = document.getElementById('SortBy');
	obj.value = colName;
	obj = document.getElementsByTagName('FORM');
	obj[0].submit();
}

function showhideSearch() {
	if (BoxTblSearch.style.display == '') {
		BoxTblSearch.style.display = 'none';
	} else {
		BoxTblSearch.style.display = '';
	}
}
function viewAll(form){
	var obj = document.getElementById("TblSearch").getElementsByTagName("TBODY")[0];
    var rw, cl, i, objChild;
    
	for (rw=0;rw<obj.children.length;rw++) {
		for (cl=0;cl<obj.children[rw].children.length;cl++){
			for(i=0;i<obj.children[rw].children[cl].children.length;i++){
				switch (obj.children[rw].children[cl].children[i].tagName) {
					case "INPUT" : 
						if (obj.children[rw].children[cl].children[i].type != 'button')
							obj.children[rw].children[cl].children[i].value = "";
						break;
					case "SELECT" :
						obj.children[rw].children[cl].children[i].value = obj.children[rw].children[cl].children[i].children[0].value;
						break;
				}
			}
		}
	}
	form.submit();
}

function popwin(lokasi,feat,tipe) {
    var wtype;
    if (tipe == '0') {
        wtype=window.open(lokasi,'',feat + '' +', scrollbars=no, resizable=no');
    }
    else {
        wtype=window.open(lokasi,'',feat + '' +', scrollbars=yes, resizable=no');
    }
    return;
}

//untuk validasi txt box yang required
//prm1: nama form 
//prm2: string dipisah dengan comma nama nama textbox
function requiredField(frm,arrayObjText){
var objTag ;
arrayObjText = arrayObjText.split(',');
    for(i=0;i<arrayObjText.length;i++){
        if(eval("document." + frm + "." + arrayObjText[i])){
            objTag = eval("document." + frm + "." + arrayObjText[i]);
            if(objTag.value==''){
                alert('This field is required ');
                objTag.style.backgroundColor='yellow';
                objTag.focus();
                objTag.onkeyup=chgValidColor;
                return false;
            }
        }
    }
    return true;
}

function chgValidColor(){
    if(window.event.srcElement){
        var obj = window.event.srcElement;
        var val = obj.value;
        if (val=="" ) {
            obj.style.backgroundColor="yellow";
        }
        else{
            obj.style.backgroundColor="white";
        }
    }
}

function validateDel(){
    if (confirm("Are you sure you want to delete this record?")) { return true;} else {return false;}
}

//VALIDATE VALUE
//-----------------------------------------------------------------------------

//onblur
function IsEmail(Expression)
{
    if (Expression == null)
        return (false);

    var supported = 0;
    if (window.RegExp)
    {
        var tempStr = "a";
        var tempReg = new RegExp(tempStr);
        if (tempReg.test(tempStr)) supported = 1;
    }
    if (!supported) 
        return (Expression.indexOf(".") > 2) && (Expression.indexOf("@") > 0);
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
    return (!r1.test(Expression) && r2.test(Expression));
}

//onblur
function isDate(dateformat){
	if (!event.srcElement) return true;
	var dateStr, datePatern, matchArray, result, obj;

	obj = event.srcElement;
	dateStr = obj.value;
	if (Trim(dateStr) == "") {
		obj.style.backgroundColor = 'white';
		return true;
	}
	result = true;

	switch(dateformat) {
		case "d/m/y" :
		case "d-m-y" :
			datePatern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
			matchArray = dateStr.match(datePatern);
			if (matchArray == null) result = false;
    			if (result) {day = matchArray[1]; month = matchArray[3]; year = matchArray[4];}
			break;
		case "m/d/y" :
		case "m-d-y" :
			datePatern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
			matchArray = dateStr.match(datePatern);
			if (matchArray == null) result = false;
    			if (result) {day = matchArray[3]; month = matchArray[1]; year = matchArray[4];}
			break;
		case "y/m/d" :
		case "y-m-d" :
			datePatern = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
			matchArray = dateStr.match(datePatern);
			if (matchArray == null) result = false;
    			if (result) {day = matchArray[4]; month = matchArray[3]; year = matchArray[1];}
			break;	
	}

	if (result) if (year < 1900 || year > 3000) result = false;
	if (result) if (month < 1 || month > 12) result = false;
    	if (result) if (day < 1 || day > 31) result = false;
    	if (result) if ((month==4 || month==6 || month==9 || month==11) && day==31) result = false;

	if (result)
	    	if (month == 2) {
      		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
        		if (day>29 || (day==29 && !isleap)) return false;
	    	}

	if (result) {
		obj.style.backgroundColor = 'white';
		return true;
	} else {
		alert('Date is required');
            obj.style.backgroundColor = 'yellow';
		obj.focus();
		obj.select();
		return false;
	}
}

//onblur
function isNumber(){
    var obj = event.srcElement;
    if(obj){
        if(isNaN(obj.value)){
            alert('Number is required');
            obj.style.backgroundColor='yellow';
		obj.focus();
		obj.select();
		return false;
        } else {
           	obj.style.backgroundColor='white';
		return true;
        }
    }
}

//onkeypress
function numberonly()	{
if (event.keyCode<48||event.keyCode>57) return false;
return true;
}

function numbersonly(allowNegative,allowComma) {
    var obj;
    obj = event.srcElement;
    if(obj){
      	obj.onblur = isNumber;
    }

    if(allowNegative){
    	if ( event.keyCode==45) return true;
   	}
   	
    if (allowComma) {
		if ( event.keyCode==46) return true;
	}
    	if (event.keyCode<48||event.keyCode>57) {
      	return false;
   	}
}

//onkeypress
function phoneonly(allowDash,allowComma) {
    var obj;
    obj = event.srcElement;

    if(allowDash){
    	if ( event.keyCode==45) return true;
   	}
   	
    if (allowComma) {
		if ( event.keyCode==44) return true;
	}
    	if (event.keyCode<48||event.keyCode>57) {
      	return false;
   	}
}

//onkeypress
function dateonly(allowDash,allowSlash) {
    var obj;
    obj = event.srcElement;

    if(allowDash){
    	if ( event.keyCode==45) return true;
   	}
   	
    if (allowSlash) {
		if ( event.keyCode==47) return true;
	}
    	if (event.keyCode<48||event.keyCode>57) {
      	return false;
   	}
}

//onkeypress
function alphabetonly(allowDot) {
    	var obj;
    	obj = event.srcElement;

      if (allowDot) {
		if ( event.keyCode==46) return true;
	}
    	if (!(event.keyCode>=65 && event.keyCode<=90) && !(event.keyCode>=97 && event.keyCode<=122) && !(event.keyCode == 32)) {	
		return false;
	}
}

//onkeypress
//menghitung panjang text
function textCounter(field, maxlimit) { 
    if (field.value.length > maxlimit) 
        field.value = field.value.substring(0, maxlimit);
}

//STRING FUNCTION
//-----------------------------------------------------------------------------
function Left(String, Length) {
    if (String == null)
        return (false);
    return String.substr(0, Length);
}

function LTrim(String) {
    var i = 0;
    var j = String.length - 1;

    if (String == null)
        return (false);

    for (i = 0; i < String.length; i++)
    {
        if (String.substr(i, 1) != ' ' &&
            String.substr(i, 1) != '\t')
            break;
    }

    if (i <= j)
        return (String.substr(i, (j+1)-i));
    else
        return ('');
}

function RTrim(String) {
    var i = 0;
    var j = String.length - 1;

    if (String == null)
        return (false);

    for(j = String.length - 1; j >= 0; j--)
    {
        if (String.substr(j, 1) != ' ' &&
            String.substr(j, 1) != '\t')
        break;
    }

    if (i <= j)
        return (String.substr(i, (j+1)-i));
    else
        return ('');
}

function Right(String, Length) {
    if (String == null)
        return (false);

    var dest = '';
    for (var i = (String.length - 1); i >= 0; i--)
        dest = dest + String.charAt(i);

    String = dest;
    String = String.substr(0, Length);
    dest = '';

    for (var i = (String.length - 1); i >= 0; i--)
        dest = dest + String.charAt(i);

    return dest;
}

function Trim(String) {
    if (String == null)
        return (false);

    return RTrim(LTrim(String));
}

function InStr(String1, String2) {
    var a = 0;

    if (String1 == null || String2 == null)
        return (false);

    String1 = String1.toLowerCase();
    String2 = String2.toLowerCase();

    a = String1.indexOf(String2);
    if (a == -1)
        return 0;
    else
        return a + 1;
}



//Untuk men-Check Tipe Image yang diperbolehkan.
function type_img(file) {
    extArray = new Array(".gif", ".jpg");
    allowSubmit = false;
    
    if (!file) return;
    while (file.indexOf("\\") != -1)
    file = file.slice(file.indexOf("\\") + 1);
    ext = file.slice(file.indexOf(".")).toLowerCase();
    for (var i = 0; i < extArray.length; i++) {
       if (extArray[i] == ext) { allowSubmit = true; break; }
    }
    if (allowSubmit) {
       return true;
    }
    else {
        alert("Please only type files that end in types:  " + (extArray.join("  ")) + "\nPlease type a new " + "file and submit again.");
        return false;
    }
} 

//FORMAT
//-----------------------------------------------------------------------------
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num)) num = "0";
    cents = Math.floor((num * 100 + 0.5) % 100);
    num = Math.floor((num * 100 + 0.5) / 100).toString();
    if(cents < 10) cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
    num = num.substring(0,num.length - (4 * i + 3))+','+num.substring(num.length-(4 * i + 3));
    return (num + "." + cents);
}



function FormatDate(DateToFormat,FormatAs){
	if(DateToFormat==""){return"";}
	if(!FormatAs){FormatAs="dd/mm/yyyy";}

	var strReturnDate;
	FormatAs = FormatAs.toLowerCase();
	DateToFormat = DateToFormat.toLowerCase();
	var arrDate
	var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var strMONTH;
	var Separator;

	while(DateToFormat.indexOf("st")>-1){
		DateToFormat = DateToFormat.replace("st","");
	}

	while(DateToFormat.indexOf("nd")>-1){
		DateToFormat = DateToFormat.replace("nd","");
	}

	while(DateToFormat.indexOf("rd")>-1){
		DateToFormat = DateToFormat.replace("rd","");
	}

	while(DateToFormat.indexOf("th")>-1){
		DateToFormat = DateToFormat.replace("th","");
	}

	if(DateToFormat.indexOf(".")>-1){
		Separator = ".";
	}

	if(DateToFormat.indexOf("-")>-1){
		Separator = "-";
	}


	if(DateToFormat.indexOf("/")>-1){
		Separator = "/";
	}

	if(DateToFormat.indexOf(" ")>-1){
		Separator = " ";
	}

	arrDate = DateToFormat.split(Separator);
	DateToFormat = "";
		for(var iSD = 0;iSD < arrDate.length;iSD++){
			if(arrDate[iSD]!=""){
				DateToFormat += arrDate[iSD] + Separator;
			}
		}
	DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
	arrDate = DateToFormat.split(Separator);

	if(arrDate.length < 3){
		return "";
	}

	var DAY = arrDate[0];
	var MONTH = arrDate[1];
	var YEAR = arrDate[2];




	if(parseFloat(arrDate[1]) > 12){
		DAY = arrDate[1];
		MONTH = arrDate[0];
	}

	if(parseFloat(DAY) && DAY.toString().length==4){
		YEAR = arrDate[0];
		DAY = arrDate[2];
		MONTH = arrDate[1];
	}


	for(var iSD = 0;iSD < arrMonths.length;iSD++){
		var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
		var MonthPosition = DateToFormat.indexOf(ShortMonth);
		if(MonthPosition > -1){
			MONTH = iSD + 1;
			if(MonthPosition == 0){
				DAY = arrDate[1];
				YEAR = arrDate[2];
			}
			break;
		}
	}

	var strTemp = YEAR.toString();
	if(strTemp.length==2){
		if(parseFloat(YEAR)>40){
			YEAR = "19" + YEAR;
		}else{
			YEAR = "20" + YEAR;
		}

	}


	if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
		MONTH = "0" + MONTH;
	}
	if(parseInt(DAY)< 10 && DAY.toString().length < 2){
		DAY = "0" + DAY;
	}
	switch (FormatAs){
		case "dd/mm/yyyy":
			return DAY + "/" + MONTH + "/" + YEAR;
		case "mm/dd/yyyy":
			return MONTH + "/" + DAY + "/" + YEAR;
		case "dd/mmm/yyyy":
			return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
		case "mmm/dd/yyyy":
			return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
		case "dd/mmmm/yyyy":
			return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
		case "mmmm/dd/yyyy":
			return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
	}

	return DAY + "/" + strMONTH + "/" + YEAR;;

} //End Function


