var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
	XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function showKab(prop_id) {
	var url = "/xml/optkabupaten/prop_id/"+prop_id;
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url, true);

		XMLHttpRequestObject.onreadystatechange = function() {
			if (XMLHttpRequestObject.readyState == 4
					&& XMLHttpRequestObject.status == 200) {
				var xmlDocument = XMLHttpRequestObject.responseXML;
				options = xmlDocument.getElementsByTagName("option");
				values = xmlDocument.getElementsByTagName("value");

				listOptions();
			}
		}
		XMLHttpRequestObject.send(null);
	}

}

function listOptions() {
	document.getElementById('kabupaten_id').length = 0;
	var loopIndex;
	document.getElementById('kabupaten_id').value = "";
	var selectControl = document.getElementById('kabupaten_id');
	for (loopIndex = 0; loopIndex < options.length; loopIndex++) {
		selectControl.options[loopIndex] = new Option(
				options[loopIndex].firstChild.data);
		nilai = new Option(values[loopIndex].firstChild.data);

		selectControl.options[loopIndex].value = nilai.value;
	}
}

function format_percent(value) {
	if (value) {
		var v = formatCurrency(value, true);
		var v2 = formatCurrency(v, true);
		v2 = v2.replace(/\./ig, "");
		v2 = v2.replace(/\,/ig, ".");

		if (v2 <= 0) {
			alert("input persentasi kurang dari 0,00 (Nol). \ntidak memenuhi kriteria (0,01 - 100,00). \nHarap Diperbaiki.");
			return "";
		}

		if (parseFloat(v.replace(/\./ig, "").replace(/\,/ig, ".")) > 100) {
			alert("input persentasi lebih dari 100,00 (Seratus). \ntidak memenuhi kriteria (0,01 - 100,00). \nHarap Diperbaiki.");
			return "";
		}

		return v;
	}
	return "";
}

function formatCurrency(num, desimal) {
	if (num) {
		num = num.toString().replace(/\$|\./g, '');
		num = num.toString().replace(/,/g, '.');
	} else {
		return 0;
	}

	if (isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);

	cents = num % 100;

	num = Math.floor(num / 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));

	if (desimal)
		return (((sign) ? '' : '-') + num + ',' + cents);
	else
		return (((sign) ? '' : '-') + num);

}

function doCopyContent(target, tujuan){
	document.getElementById(tujuan).innerHTML = document.getElementById(target).innerHTML;
}

function unformat_angka(value){
	var v =  value.replace(/\./ig , "").replace(/\,/ig , ".");
	return parseFloat(v);
}

function format_angka(value){
	var v = value.toString().replace('.' , ",");
	return v;
}

function updateParent2(strparent, value, trx, jenis_lap)
{
	//strparent : kode^induk^rms1^rms2^des^unit
	var str =strparent.split("^");
	
	var k       =str[0];
	var k_str	=k.split("|");
	var k_k     =k_str[0]; 
	var k_unit  =k_str[1];
	
	var p 	    =str[1];
	var p_str 	=p.split("|");
	var p_k 	=p_str[0];
	var p_unit 	=p_str[1];
	 
	var r1		=str[2];
	var r2		=str[3];
	var des		=str[4]=="false"?false:true;
	var unit	=str[5];

	//var value =formatCurrency(value, des)	
	var trx =trx==""?""+k_k+"^"+value+"^"+unit+"|":trx;
	
	var boxs 		= document.getElementsByTagName("span");
	var tot 		= 0;
	var rumus 		= false;
	var str_param 	= "";
	var rms_kode  	= ""; 
	var	rms_unit 	= "";
	
	for(i=0; i < boxs.length; i++)
	{
		var box     =boxs[i]; 
		var c_title =box.className;
		var str     =c_title.split("^");    
		var c_k     =str[0];
		
		var _splitk =c_k.split("|");
		var _kode   =_splitk[0];   
		var _unit   =_splitk[1];
		
		var c_p 	=str[1];
		var c_r1	=str[2];
		var c_r2	=str[3];
		var c_des	=str[4];
		var c_unit	=str[5];
		var c_jnak	=str[6];
		


		if(c_r1)
		{
			var str_rumus1 = c_r1.split(",");
			var tot_rms1 = 0;	
			
			for(cr=0; cr < str_rumus1.length ; cr++)
			{
				var obj =document.getElementById("box"+str_rumus1[cr].substring(str_rumus1[cr].indexOf('-')+1)+"|"+c_unit);					
				if(obj)
				{
					var tot_rms1 = parseInt(tot_rms1) + obj.innerHTML.replace(/\./g , "").replace(/\,/g , ".") * (parseInt(str_rumus1[cr])<0?-1:1);				}
					
			}
			
			document.getElementById("box"+c_k).innerHTML = formatCurrency(tot_rms1, des);
			trx = trx + ""+_kode+"^"+tot_rms1+"^"+c_unit+"|";	 
		}

		
		if(p_k)
		{
			//jika ditemukan child yg mempunyai parent yg sama  
			if(p == c_p)
			{	
				tot = tot + parseFloat(box.innerHTML.replace(/\./g , "").replace(/\,/g , "."));	
			}
			
		//jika ditemukan parent
		if(p == c_k)
		{	
				//jika ditemukan rumus di parent tsb
				if(c_r1)
				{
					var str_rumus = c_r1.split(",");
					var tot_rms   = 0;
					rumus         = true;
					rms_title     = c_title;
					rms_kode      = _kode;
					rms_unit      = _unit;
					for(ii=0; ii < str_rumus.length ; ii++)
					{
						var obj =document.getElementById("box"+str_rumus[ii].substring(str_rumus[ii].indexOf('-')+1)+"|"+c_unit);					
						if(obj){
							var tot_rms = parseInt(tot_rms) + obj.innerHTML.replace(/\./g , "").replace(/\,/g , ".") * (parseInt(str_rumus[ii])<0?-1:1);
						}
							
					}
					document.getElementById("box"+c_k).innerHTML = formatCurrency(tot_rms, des);
				}
				
				if(c_jnak)
				{
					var jnak = c_jnak;  
				}
			}
		}
	}
	
	tot = (""+tot).replace(/\./g , ","); 
	
	if(p_k)
	{
		if(!rumus)
		{
			if(jnak){
				document.getElementById("jenis_akun_id:"+jnak).innerHTML = tot;
			}

			document.getElementById("box"+p).innerHTML = formatCurrency(tot, des);
			var ptitle =document.getElementById("box"+p).className; 
			trx = trx +""+p_k+"^"+tot+"^"+p_unit+"|";
			trx = updateParent2(ptitle, 0, trx, jenis_lap);
			return trx;			
		}
		else if(rumus)
		{
			if(jnak){
				document.getElementById("jenis_akun_id:"+jnak).innerHTML = tot_rms;
			}			
			
			trx = trx +""+rms_kode+"^"+tot_rms+"^"+rms_unit+"|";
			trx = updateParent2(rms_title, 0, trx, jenis_lap);
			return trx;			
		}
	}
	else
	{
		treeproses("akun_bumn", "trx", trx, jenis_lap);
	}		
}

function updateLababersih2()
{
	var boxs =  document.getElementsByTagName("span");
	for(i=0; i < boxs.length; i++)
	{
		var box     =boxs[i]; 
		var c_title =box.className;
		var str     =c_title.split("^");    
		var c_k     =str[0];
		
		var _splitk =c_k.split("|");
		var _kode   =_splitk[0];   
		var _unit   =_splitk[1];
		
		var c_p 	=str[1];
		var c_r1	=str[2];
		var c_r2	=str[3];
		var c_des	=str[4];
		var c_unit	=str[5];
		var c_jnak	=str[6];
		
		
		if(c_r2)
		{   
			var str_rumus2 =c_r2.split(",");
			if(str_rumus2 == 98)
			{
				var tot_rms2 = 0 ;
				for(ii = 0; ii < str_rumus2.length; ii++)
				{
					var obj =document.getElementById("jenis_akun_id:"+str_rumus2[ii].substring(str_rumus2[ii].indexOf('-')+1));
					if(obj){
						tot_rms2 = parseInt(tot_rms2) + obj.innerHTML.replace(/\./g , "") * (parseInt(str_rumus2[ii])<0?-1:1);
					}	
				}
				
				lembarSaham = document.getElementById('jml_lembar_saham').innerHTML;
				if(lembarSaham > 0)
				{
					tot_per_lembar = tot_rms2/lembarSaham;
					tot_rms2 = tot_per_lembar.toString().replace(/\$|\./g, ',');
					document.getElementById("jenis_akun_id:"+c_jnak).innerHTML = formatCurrency(tot_rms2);
					document.getElementById("box"+c_k).innerHTML = formatCurrency(tot_rms2);					
				}
				else
				{
					document.getElementById("jenis_akun_id:"+c_jnak).innerHTML = 'Data lembar saham tidak ditemukan';
					document.getElementById("box"+c_k).innerHTML = 'Data lembar saham tidak ditemukan';										
				}

			}
			else
			{
				var tot_rms2 = 0 ;
				for(ii = 0; ii < str_rumus2.length; ii++)
				{
					var obj =document.getElementById("jenis_akun_id:"+str_rumus2[ii].substring(str_rumus2[ii].indexOf('-')+1));
					if(obj){
						tot_rms2 = parseInt(tot_rms2) + obj.innerHTML.replace(/\./g , "") * (parseInt(str_rumus2[ii])<0?-1:1);
					}	
				}
				document.getElementById("jenis_akun_id:"+c_jnak).innerHTML = formatCurrency(tot_rms2);
				document.getElementById("box"+c_k).innerHTML = formatCurrency(tot_rms2);				
			}
			 		
		}
			
	}
}

function treeproses(table, type, str, jenis_lap)
{
	document.getElementById('proses_stat').innerHTML = '<span style="background-color:#FFFFAA;color:#787878">Proses simpan sedang berjalan .... </span>';
	var URI ='/xml/treesavetrx/jid/'+jenis_lap;
	
	if(XMLHttpRequestObject)
	{
		XMLHttpRequestObject.open("POST", URI);
		XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
				var str_tot =  XMLHttpRequestObject.responseText;
				if(str_tot != "ok")
				{
					var tot =str_tot.split("|");
					var tot_aktiva =parseInt(tot[0]);
					var tot_pasiva =parseInt(tot[1]);
					
					if(tot[2])
						tot_pasiva =parseInt(tot[1]) + parseInt(tot[2]);
					  
					var obj = document.getElementById("totalaktiva");
					if(obj)
						obj.innerHTML =formatCurrency(tot_aktiva); 	
					
					var obj2 = document.getElementById("totalpasiva");	
					if(obj2)
						obj2.innerHTML =formatCurrency(tot_pasiva); 					
				}
				document.getElementById('proses_stat').innerHTML = ' ';

			}
		}
		XMLHttpRequestObject.send("table=" + table + "&type=" + type + "&str=" + str +"");

	}	
}

function toggleBox(key, t, unit, jenis_lap)
{
	if(t == 1 || t == 3)
	{
		var obj 	=document.getElementById("box"+key);
		var iHtml 	=obj?obj.innerHTML:"";
		var title 	=document.getElementById(key).className;
		var str 	=title.split("^");
		var kodes   =str[0].split("|");
			var kode    =kodes[0];
		
		var maxlen  ="maxlength='10'";
		var align   ="left";
		var box_rumus = "";
		if(unit != 5450){
			maxlen  ="";
			align   ="right";
		}
					  
		var eblur =(t == 1)?"onblur=\"toggleBox(this.id, 2, "+unit+", "+jenis_lap+");updateParent2(this.className, this.value, '', "+jenis_lap+");updateLababersih2();\" ":"onblur=\"treeproses('akun_bumn', 'trx', '"+kode+"^'+this.value+'^"+unit+"|', "+jenis_lap+");toggleBox(this.id, 2, "+unit+", "+jenis_lap+");\" ";
		
		var style ="style='cursor:text;text-align:"+align+" ; background-color:#eeee33;border:1px solid #8cacbb;width:100%;padding:0px 0px 0px 0px'";
			
		if(obj)
			document.getElementById(key).innerHTML = "<input "+maxlen+" "+style+" class='"+title+"' type='text' value='"+iHtml+"' id='box|"+key+"' "+eblur+">";
			document.getElementById("box|"+key+"").focus();
	}
	else if(t == 2)
	{
			
		var ids = key.split("|");
		var id = ids[1];
		var value = document.getElementById(key).value;
		var title = document.getElementById(key).className;
		var str 	=title.split("^");
		var des 	=str[4]=="false"?false:true;
		var jnak    =str[6]; 
		var box_rumus = "";
		
		if(unit != 5450)
			value  = formatCurrency(value, des);
		else
			value  = (value == "")?"..?": value;
			
		if(jnak){
			box_rumus ="<span style='display:none' id='jenis_akun_id:"+jnak+"'>"+value+"</span>";
		}			
		
		document.getElementById(id+"|"+unit).innerHTML = "<span class='"+title+"' id='box"+id+"|"+unit+"'>"+value+"</span>"+box_rumus; 
	}
}

function toggleTambahAnak(kode, x)
{
	var divId 	= 'tambahForm' + kode;
	var div = document.getElementById(divId);
	div.style.display = x;
}

var _proses = false;

function submitTambahAnak(kode, namaAnak, table, e)
{	
	submitEditCol(table, "", "", kode, namaAnak, "addChild", e);
	
    toggleTambahAnak(kode, 'none');
}

function submitBolehNol(kode, bolehNol, table)
{	
	value =(bolehNol)?'t':'f';
	submitEditCol(table, "boleh_nol", "", kode, value, "bolehNol");
}

function submitAkunPublic(kode, akunPublic, table)
{	
	value =(akunPublic)?'t':'f';
	submitEditCol(table, "public", "", kode, value, "bolehNol");
}

var evnt;
function showDeleteAkun(kode, table,e)
{
    if (confirm('Apakah anda yakin akan menghapus akun ini ?'))
    {	
		submitEditCol(table, "", "", kode, "", "DeleteAkun", e);
	}
    else
    	return false;
}

function editCol(table,col,kode,f,v,size)
{
	var eHtml =(col != 'urut_id')?"submitEditCol('"+table+"', '"+col+"','"+f+"','"+kode+"',this.value,'edit_col');"
	:"submitEditCol('"+table+"', '"+col+"','"+f+"','"+kode+"',this.value,'edit_col');return webFXTreeHandler.reload(event);";
	document.getElementById(f).innerHTML="<input class='key' id=newValue type=text value='"+v+"' size='"+size+"' onBlur=\""+eHtml+"\">";
    document.getElementById('newValue').focus() ;
    document.getElementById(f+'-edit').style.display='none';
}

function submitEditCol(table, col, f, kode, v, mode, e){
	document.getElementById('proses_stat').innerHTML = '<span style="background-color:#FFFFAA;color:#787878">Proses simpan sedang berjalan .... </span>';
  var dataSource='/xml/treesaveprofiles/';
	var param = "";	
	switch(mode){
		case "addChild":
			param = "cmd=add_child&kode="+kode+"&val="+v+'&table='+table;
			break;
		case "DeleteAkun":
			param = "cmd=delete&kode="+kode+'&table='+table;
			break;
		case "edit_col":
			param = 'cmd=edit_col&table='+table+'&col='+col+'&kode='+kode+'&val='+v;
			break;
		default:
			param = 'cmd=edit_col&table='+table+'&col='+col+'&kode='+kode+'&val='+v;	
	}
	    
	if(XMLHttpRequestObject) {
    XMLHttpRequestObject.open("POST", dataSource);
    XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function() {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
        var s =  XMLHttpRequestObject.responseText;
				if(s=='OK') {
          document.getElementById('proses_stat').innerHTML = ' ';
          //if(col != 'urut_id' && !mode) {
					if(col != 'urut_id' && mode == 'edit_col') {
           	document.getElementById(f).innerHTML = v;
           	document.getElementById(f+'-edit').style.display='';
          }
          if(mode == 'DeleteAkun'){
						webFXTreeHandler.remove(e);
					}	else if(mode == 'addChild')	{
						return webFXTreeHandler.load(e);
					}
          _proses = false;	 
				} else {
					if(mode == 'DeleteAkun') {
						alert('Akun tidak dapat dihapus, ditemukan data transaksi.');
					}	else if(mode == 'addChild')	{
						return webFXTreeHandler.load(e);
					}
          _proses = false;
				} 
				//alert('Pesan Kesalahan Sistem : Response Failed \nHarap Kontak Administrator');                
      }
    }
    XMLHttpRequestObject.send(param);
  }
}


// Menampilkan Narasi -------------------------------------------------------------------------------------------------
function showNarasi(url, targetDiv, akun, mode){
	if(XMLHttpRequestObject)
	{
		XMLHttpRequestObject.open("GET", url, true);
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) 
			{
				var xmlDocument = XMLHttpRequestObject.responseXML;
				options = xmlDocument.getElementsByTagName("option");
				values  = xmlDocument.getElementsByTagName("value");
				jid  = xmlDocument.getElementsByTagName("jid");
				jid = jid[0];
				out = listNarasi(options, values, targetDiv, akun, mode, jid.childNodes[0].nodeValue);
			}
		}
		XMLHttpRequestObject.send(null);
	}
}
function listNarasi(induk, anak, targetDiv, akun, mode, jid)
{
	var out;
	var record = null;
	
		for(var i =0; i< anak.length; i++)
		{
			record 	 = anak[i];
			out = record.childNodes[0].nodeValue;
		}
		
	if(mode == 'report'){	
		document.getElementById(targetDiv).innerHTML=out + "<br/><div align='right'><input type='button' value='Tutup' onClick='hideSrc(\""+akun+"\")' class='inputsubmit'>&nbsp</div>";
	}
	else{
		document.getElementById(targetDiv).innerHTML="<textarea id='narasi"+akun+"' rows='10'>"+ out
		+"</textarea><br/><div align='right'><input type='button' value='Simpan' class='inputsubmit' onClick='simpanNarasi(\""+akun+"\", \""+mode+"\", \""+jid+"\")'>&nbsp;<input type='button' value='Tutup' onClick='hideSrc(\""+akun+"\")' class='inputsubmit'>&nbsp</div>";
	}
}
function showSrc(akun, mode, jid) {
    var divId 	= 'sourceCode' + akun;
    var showId 	= 'showSrc' + akun;
    var hideId	= 'hideSrc' + akun;
    
	document.getElementById(divId).style.display = 'block';
	document.getElementById(showId).style.display = 'none';
	document.getElementById(hideId).style.display = 'block';

	showNarasi("/xml/narasi/jid/"+jid+"/cmd/get/kode/"+akun, divId, akun, mode);	
}
function hideSrc(akun) {
    var divId 	= 'sourceCode' + akun;
    var showId 	= 'showSrc' + akun;
    var hideId	= 'hideSrc' + akun;

	document.getElementById(divId).style.display = 'none';
	document.getElementById(showId).style.display = 'block';
	document.getElementById(hideId).style.display = 'none';
}
function simpanNarasi(akun, mode, jid){
	var divId 	= 'sourceCode' + akun;
	var narasi_frm	= 'narasi' + akun;
	var narasi	= document.getElementById(narasi_frm).value;
	var xmlDocument;
	
	if(XMLHttpRequestObject){
	XMLHttpRequestObject.open("POST", "/xml/narasi/jid/"+jid+"/cmd/put");
	XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	XMLHttpRequestObject.send("narasi="+narasi+"&kode="+akun);
	}
	hideSrc(akun);
}

function button_cek_tbk(){
	jenis_bumn = document.getElementById('jenis_bumn_id').value;
	if(jenis_bumn != 2){
		document.getElementById('button1').style.display = 'none';
		document.getElementById('tbk_tanggal').style.display = 'none';
	}
	else{
		document.getElementById('button1').style.display = 'inline';
		document.getElementById('tbk_tanggal').style.display = 'inline';	
	}	
}

