// oleh: eshabe (eshabe@gmail.com)

// butuh: myfunc.js

function cek_nama_valid (in_obj,h,a)
{
	var str = in_obj.value;
	str = trim(str);
	str = str.replace(/\s/g,'_');
	str = str.replace(/^[,\.]+|[^\w,\.\']|[\d]/g,'');
	str = str.replace(/_/g,' ');
	str = str.replace(/\s+/g,' ');
	str = trim(str);
	in_obj.value = str.toUpperCase();
	if (str.length < 2 && h)
	{
		if (a) alert ('Nama terlalu pendek!');
		in_obj.focus();
		return false;
	}
	else
	{
		// memeriksa apakah menggunakan format 'A B C D' (dg spasi)?
		var x = str.length;
		var y = str.replace(/\s/g,'');
		if (Math.ceil(x/2)==y.length)
		{
			in_obj.value = str.replace(/\s/g,'');
		}
	}
	return true;
}

function cek_nama2_valid (in_obj,h,a) /// tidak harus huruf BESAR
{
	var str = in_obj.value;
	str = trim(str);
	str = str.replace(/\s/g,'_');
	str = str.replace(/^[,\.]|[^\w,\.\']|[\d]/g,'');
	str = str.replace(/_/g,' ');
	str = str.replace(/\s+/g,' ');
	str = trim(str);
	in_obj.value = str;
	if (str.length < 2 && h)
	{
		if (a) alert ('Nama terlalu pendek!');
		in_obj.focus();
		return false;
	}
	return true;
}

function cek_tempat_valid (in_obj,h,a)
{
	var str = in_obj.value;
	str = trim(str);
	str = str.replace(/\s/g,'_');
	str = str.replace(/^\.|[^\w\.]/g,'');
	str = str.replace(/_/g,' ');
	str = str.replace(/\s+/g,' ');
	str = trim(str);
	in_obj.value = str.toUpperCase();
	if (str.length < 3 && h)
	{
		if (a) alert ('Tempat terlalu pendek!');
		in_obj.focus();
		return false;
	}
	return true;
}

function cek_alamat_valid (in_obj,h,a)
{
	var str = in_obj.value;
	str = trim(str);
	str = str.replace(/\s/g,'_');
	str = str.replace(/^[\/\-\.]|[^\w\d\/\-\.]/g,'');
//	str = str.replace(/^[\/\-\.]|[^\w\/\-\.]/g,'');
//	str = str.replace(/^\.|[^\w\.]|[\d]/g,'');
	str = str.replace(/_/g,' ');
	str = str.replace(/\s+/g,' ');
	in_obj.value = str.toUpperCase();
	if (str.length < 3 && h)
	{
		if (a) alert ('Alamat terlalu pendek!');
		in_obj.focus();
		return false;
	}
	return true;
}

function cek_kodepos_valid(in_obj,h,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	in_obj.value = str;
	if (str.length != 5 && parseInt(str)<10000)
	{
		if (h)
		{
			in_obj.focus();
			if (a) alert ('Kode pos terdiri dari lima angka.\nContoh: 29424');
			return false;
		}
		in_obj.value = '';
	}
	return true;
}

function cek_nip_valid (in_obj, h, a)
{
	cek_alnum_saja (in_obj, false);
	var str = trim(in_obj.value);
	var err = false;
	if (str.length!=9)
		err = true;
	else
	{
		var n = str.substr(1,8);
		if (n != parseInt(n))
			err = true;
	}
	
	if (!err)		
		in_obj.value = str.toUpperCase();
	else if  (h)
	{
		in_obj.value = '';
		in_obj.focus();
		if (a) alert ('NIP tidak valid!');
		return false;
	}
	return true;
}

function cek_tgl1_valid (in_obj,h,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	str = str.replace(/^0/g,'');
	in_obj.value = str;
	if (parseInt(str)<1 || parseInt(str)>31 || str=='')
	{
		if (h)
		{		
			in_obj.focus();
			if (a) alert ('Tanggal tidak valid!');
		}
		//else
		//	in_obj.value = 1;
		return false;
	}
	return true;
}

function cek_bln1_valid (in_obj,h,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	str = str.replace(/^0/g,'');
	in_obj.value = str;
	if (parseInt(str)<1 || parseInt(str)>12 || str=='')
	{
		if (h)
		{		
			in_obj.focus();
			if (a) alert ('Bulan tidak valid!');
		}
		//else
		//	in_obj.value = 1;
		return false;
	}
	return true;
}

function cek_thn1_valid (in_obj,h,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	in_obj.value = str;
	if (str.length!=4 || parseInt(str)<1800)
	{
		if (h)
		{		
			in_obj.focus();
			if (a) alert ('Tahun tidak valid!');
		}
		//else
		//	in_obj.value = 2000;
		return false;
	}
	return true;
}

function cek_tgl3_valid (tgl,bln,thn)
{
	if (!tgl || !bln || !thn)
		return false;
		
	var b = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
	if ((thn%4==0 && thn%100!=0) || thn%400==0)
		b[1] = 29;
	if (bln<=0 || bln>12)
	{
		//alert (tgl+'-'+bln+'-'+thn);
		return false;
	}
	if (tgl>b[bln-1] || tgl<=0 || thn<=0)
	{
		//alert (tgl+'-'+bln+'-'+thn+'*');
		return false;
	}
	return true;
}

function pastikan_tgldmy_valid (in_obj,h,a)
{
	var str = in_obj.value;
	var b = str.split('-');
	if (b.length==3)
	{
		b[0] = b[0].replace(/^0/,'');
		b[1] = b[1].replace(/^0/,'');
	}
	if (!cek_tgl3_valid(parseInt(b[0]),parseInt(b[1]),parseInt(b[2])) || b.length!=3)
	{
		in_obj.value = '';
		if (h)
		{
			if (a)
				alert ('Tanggal tidak valid!');
			in_obj.focus();
		}
		return false;
	}
	return true;
}

function apakah_hari_ini (tgl_str)
{
	if (!tgl_str)
		return true;
	var a = tgl_str.split('-');
	if (a.length!=3)
		return false;
	a[0] = a[0].replace(/^0/,'');
	a[1] = a[1].replace(/^0/,'');
	var b = new Date();
	if (parseInt(a[0])==b.getDate() && parseInt(a[1])==(b.getMonth()+1) && parseInt(a[2])==b.getFullYear() )
		return true;
	return false;
}

function pastikan_huruf_saja (in_obj)
{
	var str = trim(in_obj.value);
	str = str.replace(/[\W\d]/g,'');
	in_obj.value = str.toUpperCase();
}


function pastikan_huruf_besar (in_obj)
{
	var str = trim(in_obj.value);
	in_obj.value = str.toUpperCase();
}

function cek_alnum_saja (in_obj, a)
{
	var str = trim(in_obj.value);
	str = str.replace(/[^\w]|_|\s+/g,'');
	in_obj.value = str;
	if (str.length < 1 && a)
	{
		alert ('Hanya boleh alfa-numerik!');
		in_obj.focus();
		return false;
	}
	return true;
}

function cek_desimal (in_obj,h,a)
{
	var str = in_obj.value;
	str = trim(str);
	str = str.replace(/\s+/g,'');
	str = str.replace(/[^\d\.]/g,'');
	in_obj.value = str;
	if (str.length < 1 && h)
	{
		if (a) alert ('Harus angka!');
		in_obj.focus();
		return false;
	}
	return true;
}

function cek_bilasli (in_obj,h,a)
{
	var str = in_obj.value;
	str = trim(str);
	str = str.replace(/\s+/g,'');
	str = str.replace(/[^\d\.]/g,'');
	in_obj.value = Math.floor(str);
	if (str.length < 1 || in_obj.value ==0)
	{
		in_obj.value = '';
		if (h)
		{
			if (a) alert ('Harus bilangan asli!');
			in_obj.focus();
			return false;
		}
	}
	return true;
}

function cek_tdk_kosong (in_obj)
{
	if (!in_obj.value || in_obj.value=='')
	{
		alert ('Tidak boleh kosong!');
		in_obj.focus();
		return false;
	}
	return true;
}

function cek_angka_valid (in_obj, pjng, h, a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	in_obj.value = str;
	// 0 didepan dihapus
	// sengaja diletakkan disini
	// tidak diisikan ke object
	str = str.replace(/^0/g,''); 
	if ((pjng>0 && str.length != pjng) || str=='')
	{
		if (h)
		{
			if (a) alert ('Harus terdiri dari '+pjng+' angka.');
			in_obj.focus();
			in_obj.select();
			return false;
		}
		in_obj.value = '';
	}
	return true;
}

function cek_nokk_valid(in_obj,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	in_obj.value = str;
	if (str.length != 16)
	{
		if (a) alert ('NoKK harus terdiri dari 16 angka.');
		//in_obj.focus();
		in_obj.select();
		return false;
	}
	return true;
}

function cek_nik_valid(in_obj,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	in_obj.value = str;
	if (str.length != 16)
	{
		if (a) alert ('NIK harus terdiri dari 16 angka.');
		//in_obj.focus();
		in_obj.select();
		return false;
	}
	return true;
}

function cek_noreg_ktpkk_valid(in_obj,a)
{
	var str = trim(in_obj.value);
	str = str.replace(/\D/g,'');
	str = parseInt(str);
	in_obj.value = str;
	if (in_obj.value.length <8 || in_obj.value.length>9)
	{
		if (a) alert ('Panjang No. Reg. tidak sah!');
		in_obj.focus();
		in_obj.value='';
		return false;
	}
	return true;
}


function plsNumbers(e, isnumber)
{
	var keynum;
	var keychar;
	var numcheck;

	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	if (isnumber)
		return numcheck.test(keychar);
	else
		return !numcheck.test(keychar);
}

