/*
Modul : Register 
Loc : Register Page
Path : js/regs.js
Rev : 012
Regenerate : 310310 - DDMMYY
==================
*/
var jwant, ttlfocused=false;
var errMsg = '';
var ardesc = new Array(); ObjField='';
var tgtprefix = 'ket_';
var d = document;
 ardesc["__blank__"] = "";
 ardesc["Kesediaan Ditempatkan"] = "Keterangan Lokasi Kesediaan Anda Ditempatkan";
 ardesc["Nama Lengkap"] = "Isi nama lengkap\nsesuai KTP";
 ardesc["Email"] = "Isi Email Anda dengan benar.\nKode verifikasi akan dikirimkan untuk validasi akun";
 ardesc["Username"] = "Isi Username Anda, alphanumerik,\nminimal 4 karakter [a-z0-9_]";
 ardesc["Password"] = "Isi Password Anda,\nminimal 3 karakter";
 ardesc["No.Ktp"] = "Isi No.Ktp dengan lengkap";
 ardesc["Alamat KTP"] = "Isi Alamat\nsesuai KTP";
 ardesc["Provinsi KTP"] = "Isi Provinsi\nsesuai KTP";
 ardesc["Kota KTP"] = "Isi Kota\nsesuai KTP";
 ardesc["Kodepos KTP"] = "Isi Kodepos\nsesuai KTP";
 ardesc["Tempat/TTL"] = "Isi Tempat/Tgl Lahir\nsesuai KTP";
 ardesc["Pendikan"] = "Isi Pendidikan terakhir Anda";
 ardesc["Pendikan Pasangan"] = "Isi Pendidikan Pasangan Anda";
 ardesc["ProgramStudi"] = "Isi Program Studi yang pernah dijalani";
 ardesc["Universitas"] = "Isi Universitas";
 ardesc["IPK"] = "Isi IPK dengan format X.XX";
 ardesc["Agama"] = "Isi Agama Anda\nsesuai KTP";
 ardesc["Status Kawin"] = "Isi Status Menikah";
 ardesc["Alamat"] = "Isi Alamat surat menyurat atau yg bisa dihubungi";
 ardesc["Provinsi"] = "Isi Provinsi tempat Anda tinggal saat ini";
 ardesc["Kota"] = "Isi lokasi Kota tempat Anda tinggal saat ini";
 ardesc["Kodepos"] = "Isi Kodepos tempat Anda tinggal saat ini";
 ardesc["Tinggi Badan"] = "Isi estimasi Tinggi Badan";
 ardesc["Berat Badan"] = "Isi estimasi Berat Badan";
 ardesc["Telp"] = "Isi Nomor Telepon";
 ardesc["Hp"] = "Isi Nomor Handphone";
 ardesc["Nama Suami/Istri"] = "Isi Nama Pasangan Anda";
 ardesc["Tempat/TTL_Pas"] = "Isi Tempat/Tgl Lahir\nsesuai KTP";
 ardesc["Jumlah Anak"] = "Isi Jumlah Anak";
 ardesc["Pekerjaan"] = "Isi Data Pekerjaan terakhir Anda";
 ardesc["Pekerjaan Pasangan"] = "Isi Data Pekerjaan Pasangan Anda";
 ardesc["Jenis Usaha"] = "Isi Jenis Usaha terakhir Anda";
 ardesc["Jumlah Karyawan"] = "Isi estimasi Jumlah Karyawan di tempat Anda terakhir bekerja";
 ardesc["Periode Kerja"] = "Isi Periode Anda sudah bekerja";
 ardesc["Jabatan Terakhir"] = "Isi Jabatan Terakhir";
 ardesc["Deskripsi Bidang"] = "Isi Deskripsi Bidang Pekerjaan Anda";
 ardesc["Jumlah Bawahan"] = "Isi Jumlah Bawahan";
 ardesc["Gaji"] = "Isi Pendapatan bulanan di tempat Anda terakhir bekerja";
 ardesc["Ikatan Kontrak"] = "Isi Ikatan Kontrak di tempat Anda terakhir bekerja";
 ardesc["Bidang Pekerjaan"] = "Isi Bidang Pekerjaan Anda";
 ardesc["Jenis Pekerjaan"] = "Isi Jenis Pekerjaan Anda";
 ardesc["JabatanDituju"] = "Isi Jabatan yang Dituju";
 ardesc["Kesediaan"] = "Isi Kesediaan untuk diwawancara.\nDapat dipilih lebih dari satu.";
 ardesc["Verifikator Jaminan"] = "Menerbitkan surat konfirmasi tahap 1 dan pengecekan data atau kasus yang dianggap meragukan sebagai bahan penyelesaian penetapan jaminan.\nMelakukan verifikasi, merekam, dan menetapkan klaim JKK.\nMelakukan verifikasi klaim JPK Tambahan apabila tidak terdapat Verifikator Jaminan JPK.\nMembuat voucher dan BPJ klaim JKK (pembayaran transfer).\nMenginformasikan klaim siap bayar ke perusahaan/ahli waris.\nMemastikan seluruh dokumen pendukung sudah memenuhi persyaratan pengajuan klaim JHT dan JK.\nMenyusun rekapitulasi kasus dan jaminan yang dibayarkan.\nMenyusun laporan kegiatan secara tepat waktu.";
 ardesc["Account Officer"] = "Melaksanakan perluasan kepesertaan sesuai target penambahan yang menjadi bebannya.\nMelaksanakan pembinaan terhadap 74 perusahaan binaan.\nMemantau dan memproses mutasi kepesertaan pada perusahaan binaan.\nMeneliti dokumen pendaftaran kepesertaan/TK dan upah TK, menghitung dan menerbitkan penetapan iuran.\nMengirimkan berbagai dokumen ke perusahaan binaan untuk mendapatkan ketertiban administrasi, diantaranya dokumen SPP, SPI, KPJ, Buku Tabungan JHT, Daftar KPJ, KPK, Daftar KPK, laporan JHT.\nMemproses rekonsiliasi iuran, penetapan dan koreksi denda.\nMencetak laporan pembukaan kembali pelayanan kesehatan per PPK.\nMelakukan kunjungan bersama instansi terkait dalam rangka perluasan kepesertaan dan penyelesaian tunggakan iuran, PDS, TK/Upah/Program serta mempersiapkan dukungan law enforcement.\nMelakukan penyuluhan kepada PWBD dan peserta.\nMenyusun laporan kegiatan secara tepat waktu.";
 ardesc["Customer Service Officer"] = "Memberikan pelayanan informasi program Jamsostek dan menerima keluhan peserta untuk meningkatkan pelayanan yang cepat dan akurat.\nMenerima, meneliti kelengkapan dan keabsahan dokumen pengajuan pembayaran jaminan untuk menjamin pelayanan yang baik dan benar.\nMenerima dan memeriksa dokumen permintaan koreksi Sertifikat, KPJ dan KPK.\nMenerima surat keterangan perawatan RS dan menyerahkan surat jaminan rawat kepada peserta.\nMembuat laporan kegiatan secara tepat waktu.";
 ardesc["Verifikator JPK"] = "Menerbitkan surat konfirmasi dan pengecekan data atau kasus yang dianggap meragukan sebagai bahan penyelesaian penetapan jaminan.\nMelakukan verifikasi, merekam dan mengajukan klaim JPK baik kapitasi maupun fee for service serta menetapkan dan membuat Buku Monitor (BM).\nMelakukan verifikasi klaim JPK Tambahan.\nMembuat voucher dan BPJ klaim JPK (pembayaran transfer)\nMembuat laporan kegiatan secara tepat waktu.";
 ardesc["Petugas Umum"] = "Melaksanakan dan menata administrasi karyawan Kantor Cabang.\nMelakukan pemutakhiran database karyawan untuk tersedianya data karyawan yang akurat.\nMelaksanakan tertib administrasi karyawan (pembayaran gaji, lembur, cuti, absensi, SPPD dll).\nMenyelesaikan administrasi/laporan yang berhubungan dengan kesejahteraan karyawan dan keluarganya, pengobatan JPK, kelengkapan dokumen karena mutasi, pension atau kematian.\nMelaksanakan kegiatan penyelesaian kelengkapan kendaraan dinas, pension atau kematian.\nMelaksanakan kegiatan kerumahtanggaan untuk kelancaran serta pemeliharaan gedung kantor.\nMenyiapkan rapat dan melaksanakan tugas protokoler\nMenyusun laporan kegiatan secara tepat waktu.";
 
 
 
 
 ardesc["Security Code"] = "Isi Security Word\nsesuai gambar";
 ardesc["zzzzzz"] = "______";
 
 
// on focus show desc right side 
function cumicumi(Obj, titleFld, sektor){
 var d = document;
 if(undefined==sektor)sektor = 0;
 var container = d.getElementById('right_container');
 var ptgt = d.getElementById(tgtprefix + 'field'); 
 var tgtitle = d.getElementById(tgtprefix + 'title');
 var tgdesc = d.getElementById(tgtprefix + 'desc');
 
 if(titleFld=='__blank__') {
   container.style.display = 'none';
   return;
 }
 
 if(ardesc[titleFld]){
  var desctmp
  tgtitle.innerHTML = titleFld;
  if(ardesc[titleFld].indexOf("\n")) { desctmp = ardesc[titleFld].replace("\n", "<br>"); }
  tgdesc.innerHTML = desctmp;
 }
 ptgt.style.display = ''; 
 container.style.display = '';
 kfloatLayer.jumpTo(Obj);
  //container.style.position = 'relative';
 //container.style.top = arsektor[sektor] + 'px';
}

// update onchange dropdown
function fetch(obj){
 var child_tip = d.getElementById('jenis_pekerjaan');
 if(obj.value > 0){
   if(obj.options.selectedIndex==obj.options.length-1) {
    fetch_other(); return;
   }
   get("jobfetch", "wloader", "bid_pekerjaan", obj.value);
   //jwant.value=obj.value;
 }
 else{
  child_tip.style.display="none"; 
  //jwant.value='';
  d.getElementById("wloader").innerHTML = '';
 }
 return false;
}

function fetch_other(){
 var child_container = d.getElementById("wloader");
 var child_input = d.createElement("input");
 child_container.innerHTML = '';
 child_input.id = "jenis_pekerjaan";
 child_input.setAttribute("style", "width:265px;");
 child_container.appendChild(child_input); 
}

// show tooltip on selected job list
function whatisthis(obj){
 var tooltiplink = d.getElementById('tooltiplink'); 
 var par_tip = d.getElementById('jenis_pekerjaan');
 var optInner = "";
 optselected = par_tip.options.selectedIndex;
 optInner = par_tip.options[optselected].innerHTML;
 if(optselected==0){
  tooltiplink.style.display = "none"; return;
 }
 var tpdata = retDATA[par_tip.options[optselected].value]["jobdesc"];
 tooltiplink.title = "<b>Job-Desk</b><br>" + tpdata.replace("'", "`").replace("\n","<br>").replace("\\","");
 tooltiplink.style.display = "block"; tooltip();
 ardesc[optInner] = tpdata; cumicumi(obj, optInner, 2); 
 //jwant.value+=','+optselected;
}

// desc pekerjaan dituju
function dituju(objparent){
  if(!flagjab) return;
  var objjab = d.getElementById(objparent);
  optselected = objjab.options.selectedIndex;
  cumicumi(objjab, jabatan[parseInt(optselected)-1]);  
}

/*  function dituju(objparent){
     var objjab = d.getElementById(objparent);
	 var jobtuju = {"jbtuju_1":"Customer Service Officer", "jbtuju_2":"Account Officer", "jbtuju_3":"Petugas Umum", "jbtuju_4":"Verifikator Jaminan", "jbtuju_5":"Verifikator JPK"};
	 optselected = objjab.options.selectedIndex;
	 //alert(jobtuju["jbtuju_"+optselected]);	
	cumicumi(objjab, jobtuju["jbtuju_"+optselected]); 
 }
 */

// refresh capcay
function ccrefresh(){
  var ccay = d.getElementById('img_capcay');
  var ccfield = d.getElementById('security_capcay');
  var uriccay = ccay.src; var numrnd = '';
  var pager = uriccay.indexOf("#");
  if(pager>0) {
   uriccay = uriccay.substring(0,pager);
  }
  numrnd = '#' + Math.floor(Math.random()*1313); 
  ccay.src = uriccay + numrnd;
  try{ccfield.focus()}catch(e){}
}

// toogle datapasangan
 function dtpas(obj, target){
  var container = d.getElementById(target);
  var vtrue = (target == 'data_p' ? (obj.innerHTML==openfor) : (obj.value==1));
  if(vtrue){
   container.style.display = '';
  }else{
   container.style.display = 'none';
  }
 }
 
function format(value)
{

  // Format to have only two decimal digits

  var temp =  Math.round(value * 10);

  temp = temp / 10;

  return temp;
}

function alamat_sktp()
{
with (document.regs)

 {

		if (alamat_s.checked == true)
		{
			spasi = ' ';
			alamat.value = alamat_ktp.value; 
			kota.value = kota_ktp.value;
			propinsi.value = propinsi_ktp.value;
			kdposd.value = kdpos.value;
		}	
		if (alamat_s.checked == false)
		{
			alamat.value = '';
			kota.value = '';
			propinsi.value = '';
			kdposd.value = '';
			}
	}
} 

function hitungusia()
{            
var bday=parseInt(document.regs.tgl_lahir.value);
var bmo=(parseInt(document.regs.bln_lahir.value)-1);
var byr=parseInt(document.regs.thn_lahir.value);
var byr;
var age;
var now = new Date();
tday=now.getDate();
tmo=(now.getMonth());
tyr=(now.getFullYear());

{
  if((tmo > bmo)||(tmo==bmo & tday>=bday))
  {age=byr}
  
  else
  {age=byr+1}
  document.regs.t_usia.value =tyr-age;
}
}

function UsiaAlert() 
{
	var job_warn = "Anda tidak diperkenankan untuk melanjutkan proses\nseleksi penerimaan calon karyawan PT. Jamsostek Persero.\nUsia Anda telah melewati batas usia Maksimal yang telah ditetapkan\suntuk";
	var job_dituju = getHiddenValue('jabatan_dituju_text');
	var totalusia = getHiddenValue('t_usia');
	var totalsyarat = getHiddenValue('syarat');
	if ( totalusia > totalsyarat) {
	   alert('Error!\n\nMaaf, ' + job_warn + ' posisi ' + job_dituju + '.\n\n');
	   parent.window.location.href = uriloc.substring(0,uriloc.lastIndexOf("/")) + '/jamsostek.php?i=yes';
	}	 	
}

function preCekGelar(){
  tset = setTimeout('GelarAlert()', 300);
}

function GelarAlert() {
    clearTimeout(tset);
	var job_warn = "Anda tidak diperkenankan untuk melanjutkan proses\nseleksi penerimaan calon karyawan PT. Jamsostek Persero.\nTingkat Pendidikan Anda tidak memenuhi syarat yang telah ditetapkan\nuntuk";
	var job_dituju = getHiddenValue('jabatan_dituju_text');
	var gelar = getHiddenValue('gelar');
	var current_pend = document.regs.pendidikan.value;
	var ret = document.getElementById('pendidikan_validator');
	if(current_pend=='') {
	  ret.title = "";
      ret.className = ""; 
      ret.innerHTML = "";
      return;
    }
	if ( current_pend!='' && (current_pend != gelar)){
		ret.title = "Error"; 
		ret.className = "kofailed"; 
        ret.innerHTML = "Tidak memenuhi";
        var korek = confirm('Maaf, ' + job_warn + ' posisi ' + job_dituju + '.\n\nApakah Anda ingin mengkoreksi?');
        if(!korek) {
		  parent.window.location.href = uriloc.substring(0,uriloc.lastIndexOf("/")) + '/jamsostek.php?i=yes';
		}else{		  
		  //setTimeout("Obj.focus()", 2500);
		  d.getElementById('pendidikan').focus();
		  //alert(Obj);
		}
		return false;
	}else{
		ret.title = "Ok"; 
		ret.className = "oksuccess"; 
        ret.innerHTML = "&nbsp;";	
	}
}


/* 
* scaning un-ID hidden input
* security reason : dont put id on any hidden input
*/
function getHiddenValue(fldname){
  var inpElm = document.regs.getElementsByTagName('input');
  for(var i=0; i<inpElm.length; i++) {
    if (inpElm[i].getAttribute("type") == "hidden" && inpElm[i].getAttribute("name") == fldname) {
      return inpElm[i].value;		
    }
  }
}

// fetch existing username
function fetchuname(Obj){
  var userid = Obj.value.toLowerCase();
  var ret = document.getElementById('unameloader');
  document.regs.userid.value = userid;
  ret.setAttribute("title", "");
  if(userid=='') {
    ret.className = ""; 
    ret.innerHTML = "";
    return;
  }
  // must be alpha at first char; atleast 4 chars
  var chkuid = /^[a-z][a-z0-9\_]{3,25}$/.exec(userid);
  if(!chkuid){
	ret.className = "kofailed";
	ret.setAttribute("title", "Format username tidak benar;\n\n * Karakter awal harus alphabet;\n * Panjang minimal 4 karakter\n\n");
    ret.innerHTML = "Error: Format Username tidak benar";
  }else{
    get("chkuname", "unameloader", "userid", userid);
  }
} 

function confirmpass(Trigger, neigh){
  var ttangga = document.getElementById(neigh).value;
  var ret = document.getElementById('confirmer');
  if(ttangga=='' || Trigger.value=='') {
   ret.innerHTML = "";
   return;
  }
  // must atleast 3 chars
  var valid = /[\w\d\s]{3,}$/.exec(ttangga);
  if(valid){
    if(ttangga == Trigger.value) {
     ret.className = "confirmed";
     ret.innerHTML = "Password Cocok";
    } else {
     ret.className = "notconfirm";
     ret.innerHTML = "Error: Password TIDAK Cocok";  
    }
  }else{
    ret.innerHTML = "";
  }
}

function checkemail(Obj){
  var email = Obj.value;
  var ret = document.getElementById('emailcheker');
  if(email=='') {
    ret.className = ""; 
    ret.innerHTML = "";
    return;
  }
  //var emValid = /^[a-z0-9_\.-]+@(([a-z0-9-]+\.)+([a-z]{2,4})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/i.exec(email);  
  var emValid = /^[a-z0-9]+([a-z0-9_\+\\.-]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)$/i.exec(email); // fix
  if(!emValid){
    ret.className = "kofailed";
    ret.innerHTML = "<span>Error: Format Email SALAH</span>";
  }else{
    get("chkemail", "emailcheker", "email", email);
  }
}

function umurCx(Obj){
  var tdpar = Obj.parentNode.getElementsByTagName('select');  
  var ages='';
  ttlfocused=false;
  
  var usiasyrat = getHiddenValue('syarat');
  var job_dituju = getHiddenValue('jabatan_dituju_text');
  var ret = document.getElementById('umurvalidator');
  
  for(var x=tdpar.length; x; x--){
     idx = (tdpar[x-1].options.selectedIndex);
	 ages+= tdpar[x-1].options[idx].value + '-';
  }
  ages = ages.substring(0, (ages.length-1) ) + '|' + usiasyrat + '|' + job_dituju;
  var match = /\d{4}-\d{1,2}-\d{1,2}\|\d{1,}\|[\w\s]+/i.exec(ages);  
  if(!match) {
    ret.className = ""; 
    ret.innerHTML = "";
    return;
  }else{
    get("chkusia", "umurvalidator", "thn_lahir", ages);
  }
}


function getInpObj(fldname, tag, tipe){  
  var Elm = document.regs.getElementsByTagName(tag);
  for(var i=0; i<Elm.length; i++) {
    if ( Elm[i].getAttribute("name") == fldname) {
	  if(tipe!=undefined){
	    if(Elm[i].getAttribute("type") == tipe) return Elm[i];
	  }else{
	   return Elm[i];
	  }
    }
  }
}

function chkField(arrayfield, tags, tipe){
  var cobj; var ret_msg='';
  var is_error=0; var checker;
  for(var i=0; i<arrayfield.length; i++){
    cobj = getInpObj(arrayfield[i], tags, tipe);
	if(cobj!=undefined) {
	 if(!cobj.value){
	  is_error = 1;
	  ret_msg += 'Nilai masih kosong: ' + arrayfield[i].replace('_',' ') + '\n';
	  break;
	 }
	}
  }
  return [is_error, ret_msg];
}

function submitChk(){
  var is_error = 0; var ret_msg = '';
  var selname = [
    'kesediaan_t',
    'tgl_lahir',
    'bln_lahir',
    'thn_lahir',
	'agama',
    'tinggibadan',
    'beratbadan',
    'propinsi_ktp',
    'propinsi',
    'pendidikan',

   ];  
  var inpname = [
    'userid',
    'nama_lengkap',
    'tlahir',    
    'agama',
    'status_kawin',
    'ktp',
    'kota_ktp',
    'kdpos',
    'kota',
    'kdposd',
    'email',
    'telp',
    'hp',
    'prodi',
    'universitas',
    'ipk',
    'security_code',    
	];
  var radname = [
    'jenis_kelamin',
	'ever_work'	
   ];
  var txtaname = [
    'alamat_ktp',
    'alamat',  
   ];	
  var pasname = [
    'paswd',
    'paswd2',

   ];
  if(getHiddenValue('t_usia') > getHiddenValue('syarat') ){
    is_error = 1;
	ret_msg += 'Melampaui batas usia: '+getHiddenValue('syarat') + '\n';
  }
  if( getHiddenValue('gelar') != d.getElementById('pendidikan').value ){
    is_error = 1;
	ret_msg += 'Pendidikan tidak memenuhi: ' +getHiddenValue('gelar').toUpperCase() + '\n';
  }
  ret_msg+=(ret_msg!='' ? '\n' : '');
  checker = chkField(selname, 'select');
  if(checker[0] != 0){
    is_error = 1;
    ret_msg += checker[1];
  }
  checker = chkField(inpname, 'input', 'text');
  if(checker[0] != 0){
    is_error = 1;
    ret_msg += checker[1];
  }
  checker = chkField(pasname, 'input', 'password');
  if(checker[0] != 0){
    is_error = 1;
    ret_msg += checker[1];
  }
  if(d.getElementById(txtaname[0]).value =='' || d.getElementById(txtaname[1]).value ==''){
    is_error = 1;
    ret_msg += 'Nilai masih kosong: alamat' + '\n';  
  }
  if(d.getElementById(pasname[0]).value != d.getElementById(pasname[1]).value){
    is_error = 1;
    ret_msg += 'Password tidak cocok' + '\n';
  }
  if(!d.getElementById(radname[0]+'_1').checked ? !d.getElementById(radname[0]+'_2').checked : d.getElementById(radname[0]+'_2').checked){
    is_error = 1;
    ret_msg += 'Nilai masih kosong: ' + radname[0] + '\n';  
  }
  if(!d.getElementById(radname[1]+'_1').checked ? !d.getElementById(radname[1]+'_2').checked : d.getElementById(radname[1]+'_2').checked){
    is_error = 1;
    ret_msg += 'Nilai masih kosong: ' + radname[1] + '\n';  
  }
  
  if(is_error) {
    alert(ret_msg);
    return false;
  }else{
    return true;
  }
}

function flagttl(){
  ttlfocused=true;  
}

function forcealert(){
  clearTimeout(tset);
  if(ttlfocused==false){
    //alert(errMsg);
	//parent.window.location.href = uriloc.substring(0,uriloc.lastIndexOf("/")) + '/jamsostek.php?i=yes';
	var korek = confirm(errMsg + '.\n\nApakah Anda ingin mengkoreksi?');
    if(!korek) {
		  parent.window.location.href = uriloc.substring(0,uriloc.lastIndexOf("/")) + '/jamsostek.php?i=yes';
	}
  }else{
	ttlfocused=false;
  }
}