﻿// JScript File

function ValidKeyPress(KeyValType){
  
	Key = window.event.keyCode;
	switch (KeyValType){
	
	case 1: //Name; Course Name
	    if ((Key>=64 && Key<=90) || (Key>=97 && Key<=122) ||(Key==32) ||(Key==39) || (Key==45) || (Key==46) || (Key==47)){}
		else{window.event.keyCode=0;}
		break;
	case 2: //TelePhone
		if ((Key>46 && Key<=57)||(Key==32)||(Key==40)||(Key==41)||(Key==45)) {}
		else{window.event.keyCode=0;}
		break;
	case 3: //Poscode; NRIC
		if ((Key>=48 && Key<=57)){}
		else{window.event.keyCode=0;}
		break;
    case 4: //Email
		if ((Key>=64 && Key<=90) || (Key>=97 && Key<=122)||(Key==45)||(Key==46)||(Key==95)){}
		else if (Key>=48 && Key<=57){}
		else{window.event.keyCode=0;}
		break;
    case 5: //Date
		if ((Key>=48 && Key<=57)||(Key==47)){}
		else{window.event.keyCode=0;}
		break;
    case 6: //Occupation; Resign Reason
		if ((Key>=65 && Key<=90) || (Key>=97 && Key<=122)||(Key==32)||(Key==40)||(Key==41)||(Key==47)){}
		else{window.event.keyCode=0;}
		break;
	case 7: //School Name; University Name;
		if ((Key>=64 && Key<=90) || (Key>=97 && Key<=122) ||(Key==32) ||(Key==39) || (Key==45) || (Key==46) || (Key==47)){}
		else if (Key>=48 && Key<=57){}
		else{window.event.keyCode=0;}
		break;
    case 8: //CGPA; Salary
		if ((Key>=48 && Key<=57)||(Key==46)){}
		else{window.event.keyCode=0;}
		break;
	case 9: //WPS (Typing & Shorthand)
		if (Key>=48 && Key<=57){}
		else{window.event.keyCode=0;}
		break;
    case 10: //Gred Position
		if ((Key>=65 && Key<=90) || (Key>=97 && Key<=122)||(Key==32)){}
		else if (Key>=48 && Key<=57){}
		else{window.event.keyCode=0;}
		break;
	default:
	}
}

function ValidKeyDown(){
    Key = window.event.keyCode;
    if ((Key==27) || (Key==17) || (Key==18)){ alert("Kekunci CTRL , ALT Dan ESC Tidak Dibenarkan."); }
}

function ValidEmail(field){
	if (document.getElementById(field).value != ""){
		var s = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById(field).value);
		if (s==false){
			alert("Alamat E-mel Tidak Sah. Sila Masukkan Kembali.")
			document.getElementById(field).focus();
			return false;
		}
	}
}

// For Mouse Right Click Forbiden
function click(e){
    if (event.button==2){ 
        alert("Kekunci Kanan Tetikus Tidak Dibenarkan.");
        return false; 
    }
    else { return true; }
}
document.onmousedown=click

//For 2 Decimal Point
function DecimalFormat(field) {
    
    if (field.value!="") {
        var fieldValue = new Number(field.value);
        
        if (fieldValue.toFixed(2).toString() == "NaN") {
            alert("Nilai Tidak Diisi Dengan Betul.\nSila Semak Dengan Teliti.");
	        field.select();
	        return false;
	    } else {
	        field.value = fieldValue.toFixed(2);
	    }
	}
}

//For Decimal KeyDown
function DecimalKeyPress(field) {
    Key = window.event.keyCode;
    var pointIndex = field.value.indexOf(".");

    if (pointIndex>=0 && Key==46) { window.event.keyCode=0; }
    else { ValidKeyPress(8); }
}

//For Sallary Format
function SalaryFormat(field) {
    
    if (field.value!="") {
        var fieldValue = new Number(field.value);
        
        if (fieldValue.toFixed(2).toString() == "NaN") {
            alert("Nilai Gaji Sebulan Tidak Diisi Dengan Betul.\nSila Semak Dengan Teliti.");
	        field.select();
	        return false;
	    } else {
	        field.value = fieldValue.toFixed(2);
	    }
	    
	    if (fieldValue > 20000) {
	        alert("Nilai Gaji Sebulan Yang Diisi Terlalu Tinggi Dan Tidak Munasabah.\nSila Semak Dengan Teliti.");
	        field.select();
	        return false;
	    }
	}

}


//For CGPA Format
function CGPAFormat(field) {

    if (field.value!="") {
        var fieldValue = new Number(field.value);
    
        if (fieldValue.toFixed(2).toString() == "NaN") {
            alert("Nilai PNGK (CGPA) Tidak Diisi Dengan Betul.\nSila Semak Dengan Teliti.");
	        field.select();
	        return false;
	    } else {
	        field.value = fieldValue.toFixed(2);
	    }
        
        var pointIndex = field.value.indexOf(".");

        if (pointIndex!=1) {
            alert("Nilai PNGK (CGPA) Tidak Diisi Dengan Betul.\nSila Semak Dengan Teliti.");
            field.select();
            return false;
        }
        
        firstNoValue = field.value.substring(0,1);
        secondNoValue = field.value.substring(2,3);
        thirdNoValue = field.value.substring(3,4);
        
        if (firstNoValue<2) {
            alert("Nilai PNGK (CGPA) Anda Diisi Kurang Daripada Syarat Pengijazahan.\Sila Semak Dengan Teliti.");
            field.select();
            return false;
        }
        else if (firstNoValue>4) {
            alert("Nilai PNGK (CGPA) Anda Diisi Lebih Besar Daripada Syarat Pengijazahan. Sila Semak Dengan Teliti.");
            field.select();
            return false;
        }
        else if (firstNoValue==4 && (secondNoValue>0 || thirdNoValue>0)) {
            alert("Nilai PNGK (CGPA) Anda Diisi Lebih Besar Daripada Syarat Pengijazahan. Sila Semak Dengan Teliti.");
            field.select();
            return false;
        }
    }
}

//-------------------------------------------------------DATE VALIDATION---------------------------------------------------------------------

var dtCh= "/";
var date = new Date();
var minYear= date.getFullYear() - 58;
var maxYear= date.getFullYear();

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(dtField) {

	var dtStr = dtField.value; 

	if(dtStr!=""){
		var daysInMonth = DaysArray(12)
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strMonth=dtStr.substring(pos1+1,pos2)
		var strDay=dtStr.substring(0,pos1)
		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!=2 || pos2!=5){
			alert("Format Tarikh Adalah Dalam Bentuk : dd/mm/yyyy\nContoh: 28/08/1981.")
			dtField.select()
			return false
		}
		if (strMonth.length<1 || month<1 || month>12){
			alert("Sila Masukkan Bulan Yang Sah.")
			dtField.select()
			return false
		}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day > daysInFebruary(year)) || day > daysInMonth[month]){
			alert("Sila Masukkan Hari Yang Sah.")
			dtField.select()
			return false
		}
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
			alert("Sila Masukkan 4 Digit Tahun Yang Sah Antara "+minYear+" Hingga "+maxYear+".")
			dtField.select()
			return false
		}
		return true
	}
    return true
}

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 );
}

//----------------------------------------------------END FUNCTION FOR DATE VALIDATION-------------------------------------------------------

//For Textarea Maxlength
function TextAreaMaxlength(Field,Length) {
	if(Field.value.length > Length - 1 ) { 
		window.event.keyCode=0;
		Field.value = (Field.value).substring(0,254);
		Field.focus();
	}
}

//For Alert Message
function alertMessage(alertCode) {

    switch (alertCode){
        case 1: //Data Saved
            alert("Data Berjaya Disimpan.");
            break;
        case 2: //Data Not Saved
            alert("Data Tidak Berjaya Disimpan.\nSila Cuba Semula.");
            break;
        case 3: //Sending Application Success
            alert("Terima Kasih Kerana Anda Berminat Untuk Berkhidmat Di Lembaga Getah Malaysia.\n\nPermohonan Anda Telah Berjaya Dihantar.\n\nSebarang Maklumat Akan Dimaklumkan Kepada Anda Melalui Telefon Atau E-mel.\n\nAnda TIDAK PERLU Menghantar Ringkasan Permohonan Ini Berserta Gambar Kepada Kami Sehingga Diberitahu Kelak Menerusi Peti Masuk Atau Telefon.");
            break;
        case 4: //Sending Application Unsuccess
            alert("Permohonan Anda Tidak Berjaya Dihantar Disebabkan\nSebahagian Data Tidak Berjaya Disimpan. Sila Cuba Sekali Lagi.");
            break;
        case 5: //Password Changed Success
            alert("Kata Laluan Anda Berjaya Ditukar. Sila Login Semula.");
            break;
        case 6: //Password Changed Unsuccess
            alert("Kata Laluan Anda Tidak Berjaya Ditukar. Sila Cuba Semula");
            break;
        case 7: //Password Fail
            alert("Kata Laluan Yang Anda Masukkan Tidak Tepat. Sila Masukkan Semula.");
            break;
         case 8: //Login Fail
            alert("Daftar Masuk Tidak Berjaya.\nSila Daftar Pengguna Baru Jika Anda Belum Mendaftar Sebagai Ahli.");
            break;
         case 9: //Register Success
            alert("Pengguna Telah Berjaya Didaftarkan.\n\nSila Gunakan No. Kad Pengenalan Sebagai ID Pengguna Dan Kata Laluan Anda Untuk Login.");
            break;
         case 10: //Register Fail
            alert("Pengguna Tidak Berjaya Didaftarkan.");
            break;
        case 11: //ID Already Exist
            alert("No. Kad Pengenalan Yang Anda Masukkan Telah Wujud.\nSila Hubungi Kami Sekiranya Anda Mempunyai Sebarang Pertanyaan.");
            break;
        case 12: //New ID Info
            alert("Sila Gunakan Kata Laluan Baru Anda Untuk Membuat Traksaksi.");
            break;
        case 13: //New ID Unsuccess
            alert("Kata Laluan Tidak Berjaya Dijana. Sila Cuba Semula.");
            break;
         case 14: //Session End
            alert("Sesi Anda Telah Tamat. Sila Login Semula Untuk Meneruskan Tranksaksi Anda.");
            break;
        case 15: //Block New Application
            alert("Permohonan Anda Telah Dihantar Dan Sedang Diproses.\n\nAnda Tidak Dibenarkan Untuk Membuat Permohonan Baru Sehingga Tawaran Jawatan Kosong Yang Baru Dikeluarkan Semula.\n\nHarap Maklum.");
            break;
        case 16: //Delete Message Success
            alert("Mesej Pesanan Berjaya Dipadamkan Daripada Peti Masuk.");
            break;
        case 17: //Delete Message Unsuccess
            alert("Mesej Pesanan Tidak Berjaya Dipadamkan. Sila Cuba Semula.");
            break;   
        default:
            break;
    }
}

//Logout Comfirmation
function logoutConfirm() {
    if (confirm("Adakah Anda Pasti Untuk Logout?")) {
        return true;
    } else {
        return false;
    }
}

//Add New Row For Dynamic Table
function cloneRow(tableID,rowNo){ 
    var root = document.getElementById(tableID).getElementsByTagName('tr')[rowNo].parentNode; 
    var obj = root.getElementsByTagName('tr')[rowNo].cloneNode(true); 
    root.appendChild(obj); 
    return false;
}   

//Export To Excel Sheet
/*function createExcelSheet(tableID){
    var x = tableID.rows
    var xls = new ActiveXObject("Excel.Application")
   
    xls.visible = true
    xls.Workbooks.Add
   
    for (i = 0; i < x.length; i++){
        var y = x[i].cells
 
        for (j = 0; j < y.length; j++){
            xls.Cells( i+1, j+1).Value = y[j].innerText
        }
    }
}*/