// Javascript WebCentral 
// common functions

var Msg_Del = "Brišem izbran zapis?"
var Msg_Act = "ktiviram izbran zapis?";
var Msg_Act_Err = "Pred spremembo aktivnosti je potrebno izbrati obstoječ zapis!"
var to = 400; // lookup close timeout
var ajaxObjects = new Array();
var wsql='';
var l  = 0;   // form left position
var t  = 0;   // form top position
var w  = 0;   // form width
var h  = 0;   // form heigth
var sb = 0;   // scrollbar?

function sts_del() {window.status="Brisanje zapisa...";}

function sts_refint() {window.status="Kontrola referenčne integritete...";}

function sts_commit() {window.status="Potrjevanje sprememb podatkov...";}

function sts_clr() {window.status="";}

function sts_readdb() {window.status="Berem podatke iz baze...";}

function error_val(m) {alert('Napačna šifra '+m+'!');}

function msg_cmd_ok() {alert('Ukaz uspešno izvršen.');}

function err_del_e() {alert('Brisanje neobstoječega zapisa ni mogoče!');}

function set_style_display(o,d) {document.getElementById(o).style.display=d;}

function set_style_left(o,l) {document.getElementById(o).style.left=l;}

function set_style_right(o,r) {document.getElementById(o).style.right=r;}

function set_style_top(o,t) {document.getElementById(o).style.top=t;}

function set_style_bottom(o,b) {document.getElementById(o).style.bottom=b;}

function set_style_width(o,w) {document.getElementById(o).style.width=w;}

function set_style_height(o,h) {document.getElementById(o).style.height=h;}

function set_style_padding(o,p) {document.getElementById(o).style.padding=p;}

function cursor(c) {document.body.style.cursor=c;}
// possible cursor types:
// auto, croshair, default, pointer, help, move, text, wait, 
// e-resize, w-resize, n-resize, s-resize, ne-resize, nw-resize, se-resize, sw-resize

function act_indicator(a) {document.getElementById("div_act").style.visibility=a;}

function act_busy() {act_indicator("visible"); cursor("wait");}

function act_ok() {sts_clr(); act_indicator("hidden"); cursor("default");}

function disable(o) {mo=document.getElementById(o); if (mo) {mo.disabled=true;}}

function idisable(o) {disable(o); setClass(o, "disabled");}

function enable(o) {mo=document.getElementById(o); if (mo) {mo.disabled=false;}}

function ienable(o) {enable(o); setClass(o, "ienabled");}

function setClass(o,c) {mo=document.getElementById(o); if (mo) {mo.className=c;}}

function chr(c) {return String.fromCharCode(c);}

function err_fun(l) {
	switch (l) {
		case ("SL"): alert('Izbrana funkcija trenutno še ne deluje.'); break;
		case ("SR"): alert('Odabrana funkcija trenutačno ne radi!'); break;
		case ("EN"): alert('Selected function is currently unawailable!'); break;   
	}
}

function err_commit() {alert("Ni sprememb na podatkih, zato shranjevanje ni potrebno!");}

function err_dok_ste() {alert("Številka dokumenta še ni določena, shranitev podatkov zato ni mogoča!");}

function err_lock_ste(u) {
	alert("Zapis v števcih za izbrano oe,tip_dokumenta in leto je zaklenjen s strani uporabnika:\n"
				+u.substr(3,500)+"\nProsim poizkusite znova čez nekaj trenutkov.");
}

function err_sql(m) {alert("Zgodila se je napaka pri izvajanju mysql ukaza:\n\n"+m);}

function sts_commit_ok() {window.status="Spremembe uspešno potrjene.";}

function ask_commit(c) {
	if (c>1) {ms="Število spremenjenih zapisov je "+c;} else {ms="Zapis je spremenjen";}
	var b=confirm(ms+".\n\nShranim spremembe pred izbrano akcijo?");
	return b;
}

function sts_cancel() {window.status='Ukaz preklican.';}

function toSLO(inStr) {
	var outStr = inStr.replace(/č/g, "%E8");
	outStr = outStr.replace(/ć/g, "%E6");
	outStr = outStr.replace(/đ/g, "%F0");
	outStr = outStr.replace(/š/g, "%9A");
	outStr = outStr.replace(/ž/g, "%9E");
	outStr = outStr.replace(/Č/g, "%C8");
	outStr = outStr.replace(/Ć/g, "%C6");
	outStr = outStr.replace(/Đ/g, "%D0");
	outStr = outStr.replace(/Š/g, "%8A");
	outStr = outStr.replace(/Ž/g, "%8E");
	return outStr;
}

function chk_obvVnos(oId, oOpis) {
	if (getValue(oId)=="") {
		alert("Vnos polja "+oOpis+" je obvezen!"); return false;
	}
	else	{return true;}
}
		
function nvl(chkVal, nullVal, typVal) {
	if (chkVal==null || chkVal=="" || chkVal=="&nbsp;")		return nullVal;	// || -> or, && -> and
	else {					
		if (typVal=="S"||typVal=="D") {return "'"+chkVal+"'";} else {return chkVal;} 
	}
}

function rtrim(s){return s.replace(/^\s+/,'');}

function ltrim(s){return s.replace(/\s+$/,'');}

function trim(s){return s.replace(/^\s+|\s+$/g,'');}

function setValue(o,v) {document.getElementById(o).value=v;}

function setHTML(o,h) {document.getElementById(o).innerHTML=h;}

function getHTML(o) {return document.getElementById(o).innerHTML}

function getValue(o) {return document.getElementById(o).value;}

function setFocus(o) {document.getElementById(o).focus();}

function Close_form() {close();}

function zeros(n,z,zs) {
	var zs = (zs == null) ? "0" : zs; var s=n.toString(); if (s.length<z) {for (i=s.length;i<z;i++) {s=zs+s;}}
	return s;
}

function sysdatetime(f) {
	var d=new Date(); 
	var m=d.getMonth()+1;
	var dt=""
	var a=d.getDate()
	var dd=a.toString()
	if (f=="B") {
		dt=d.getFullYear()+"-"+zeros(m,2)+"-"+zeros(d.getDate(),2)+" "
		+zeros(d.getHours(),2)+":"+zeros(d.getMinutes(),2)+":"+zeros(d.getSeconds(),2);
	}
	else {
		dt=zeros(d.getDate(),2)+"."+zeros(m,2)+"."+d.getFullYear()+" "
		+zeros(d.getHours(),2)+":"+zeros(d.getMinutes(),2)+":"+zeros(d.getSeconds(),2);
	}
	return dt;
}

function sysdate(o)	{ 
	if (document.getElementById(o).value=="") {
		var d=new Date(); var m=d.getMonth()+1;	document.getElementById(o).value=zeros(d.getDate(),2)+"."+zeros(m,2)+"."+d.getFullYear();
	}
}

function sysyear(o)	{if (document.getElementById(o).value=="") {var d=new Date(); document.getElementById(o).value=d.getFullYear();}}

function dt2bdt(dt) // datetime 2 database datetime format YYYY-MM-DD HH:MI:SS
{return dt.substr(6,4)+'-'+dt.substr(3,2)+'-'+dt.substr(0,2)+' '+dt.substr(11,8);}

function n2dbn(n) {
	var nn=n.replace('.',''); nn=nn.replace('.',''); nn=nn.replace('.',''); nn=nn.replace('.','');
	nn=nn.replace(',','.'); nn=nn.replace('%',''); return nn; 
}

function dbn2n(n) {var nn=n.replace('.',','); return nn;}

function d2bd(d) // date 2 database date format YYYY-MM-DD
{if (d!="") {return d.substr(6,4)+'-'+d.substr(3,2)+'-'+d.substr(0,2);} else {return "";}}

function formatN(ns,d) {
	ns=ns.toFixed(d); ns += ''; x=ns.split('.'); x1=x[0];	x2=x.length > 1 ? ',' + x[1] : '';
	var rgx = /(\d+)(\d{3})/; 
	while (rgx.test(x1)) {x1 = x1.replace(rgx,'$1'+'.'+'$2');}
	return x1 + x2;
}

function show_node(k) {
	var t="";
	for (f=0;f<k.length;f++) {t=t+f+": id: "+k[f].id+", "+k[f]+" ("+k[f].type+") ="+k[f].value+"\n";}
	alert(t);
}

function show_all_nodes(k,tx) {
	var tx = (tx == null) ? "" : tx;
	var t="";
	for (f=0;f<k.length;f++) {
		t=t+f+": id: "+k[f].id+", "+k[f]+" ("+k[f].type+") ="+k[f].value+"\n";
		var cn=k[f].childNodes;
  	for (i=0;i<cn.length;i++) {
  		t=t+"\t"+i+": id: "+cn[i].id+", "+cn[i]+" ("+cn[i].type+") ="+cn[i].value+"\n";
		}
	}
	alert(tx+"\n\n"+t);
}

function format_date(ds) {return ds.substr(8,2)+"."+ds.substr(5,2)+"."+substr($dat,0,4)+' '+ds.substr(11,8);}

function set_pos(pw, ph, ps) { 
	w = pw; h = ph; sb = ps;
	if (window.screen) {
	//alert("w:"+window.screen.availWidth+", h:"+window.screen.availHeight)
		l = parseInt(window.screen.availWidth * 0.50 - (w/2));
		t = parseInt(window.screen.availHeight * 0.50 - (h/2));
	}
}

function reset_node(n) { // n - table row
	var nd=false;
	for (i=0;i<n.length;i++) {
		var c=n[i].childNodes;
		for (f=0;f<c.length;f++) {
			if (c[f].type=="text" || c[f].type=="textarea") {c[f].value="";} 
		}
	}
	c[f-1].value="N"; // reset record status
}

function switch_rs(o) { 
	var s=o.value;
	switch (s) {
		case "B" : o.value = "C"; break;
		case "N" : o.value = "I"; break;
	}
}

function set_tab_rs(o, t, i) {
	var t=document.getElementById(t+"_tbody");
	var r=t.getElementsByTagName("tr");
	var n=o.parentNode.parentNode.childNodes;
	switch_rs(n[i].firstChild);
}

function ins_row(tn, rn)	{
	var tab=document.getElementById(tn+"_tbody"); var rows=tab.getElementsByTagName("tr");
	var r=false;
	if (rn==0)	{r=rows[0];}
	else {r=document.getElementById(tn).insertRow(rows.length+1);}
	return r;
}

function ins_first_row(tn, rn, rc)	{
	var ri = (rc == null) ? 0 : rc;	// function call without parameter (old for table with header)
	var tab=document.getElementById(tn+"_tbody"); var rows=tab.getElementsByTagName("tr");
	var r=document.getElementById(tn).insertRow(ri);
	return r;
}

function delete_all_rows(tn) { // table with header
	var t=document.getElementById(tn+"_tbody");
	var r=t.getElementsByTagName("tr"); 
	if (r.length>1) {
		for (i=r.length;i>1;i--) {document.getElementById(tn).deleteRow(i);}
	}
	var n=r[0].childNodes;
	reset_node(n);
}

function delete_all_rows_nh(tn) { // table without header
	var t=document.getElementById(tn+"_tbody");
	var r=t.getElementsByTagName("tr"); 
	if (r.length>1) {
		for (i=r.length-1;i>0;i--) {document.getElementById(tn).deleteRow(i);}
	}
	var n=r[0].childNodes;
//	show_all_nodes(n);
	reset_node(n);
}

function Show_lookup(oId, lookup, lwidth, lheight, fflag)
{ if (fflag==true) {document.getElementById(oId).focus();}
  set_pos(lwidth, lheight, 0);
	mywindow=window.open(lookup, "lov", 'left='+l+',top='+t+',width='+w+',height='+h+',status=yes,menubar=no,toolbar=no');
	mywindow.focus();
}

function clear_tr_class(tn) {
	var t=document.getElementById(tn+"_tbody");
	if (t!=null) {
		var r=t.getElementsByTagName("tr");
		for (f=0;f<r.length;f++) {
			r[f].className="";
		}
	}
}

function debug_sql() {
	if (debugf==true) {
		set_pos(500,500,0);
		win_prn=window.open('', "wdebug", 'left='+l+',top='+t+',width='+w+',height='+h+',menubar=1,toolbar=1,scrollbars=1');
		win_prn.document.open("text/html","replace");
		win_prn.document.writeln(sqls);
		win_prn.document.close();
	}
}

function chk_del(t, k1, k2, k3, k4, dp) {
	sts_refint()
	var indexThis = ajaxObjects.length;
	ajaxObjects[indexThis] = new sack();
	var phps='chk_del.php?br='+br+'&tbl='+t;
	if (k1!='') {phps=phps+'&k1='+k1}
	if (k2!='') {phps=phps+'&k2='+k2}
	if (k3!='') {phps=phps+'&k3='+k3}
	if (k4!='') {phps=phps+'&k4='+k4}
	if (dp!='') {phps=phps+'&dp='+dp}
	ajaxObjects[indexThis].requestFile = phps;
	ajaxObjects[indexThis].onCompletion = function(){show_ref_int(indexThis);};
	ajaxObjects[indexThis].runAJAX();
}

function show_ref_int(indexThis){
	sts_clr();
  var r=ajaxObjects[indexThis].response;
	if (r.substr(0,2)=="OK") {do_del();}
	else {
		set_pos(420,262,0); wsql=r; 
		var myw=window.open('ref_int.html', "wrefint", 'left='+l+',top='+t+',width='+w+',height='+h+',menubar=0,toolbar=0,scrollbars=0');
		myw.focus();
	}
}

function get_wsql() {return wsql;}

function show_array(a) {
	var s=""; for (i in a) {s=s+"array["+i+"]="+a[i]+"\n";} alert(s);
}

function show_arr(a) {
	var s="";
	for (i in a) {
		s=s+i+': '+a[i]+"\n";
	}
	alert(s);
}

function get_browser() {
	if (window.screen) {
		if (self.innerHeight) {	//	all except Explorer
			br="M"; w=self.innerWidth; h=self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { //	Explorer 6 Strict Mode
				br="IE6S"; w=document.documentElement.clientWidth; h=document.documentElement.clientHeight;
		} else if (document.body) { //	Other Explorer
				br="IE"; w=document.body.clientWidth; h=document.body.clientHeight;
		}
	}
}

function check_date_no_rs(dd) {
	var d=''; var m=''; var y=''; var f=0; var ss=''; var ds=dd.value; var nd=new Date()
	if (ds!="") {
		for (i=0;i<ds.length;i++) {
			ss=ds.substr(i,1);
			if (ss!='.' && ss!=' ') {
				switch (f) {
					case 0: d=d+ss; break;
					case 1: m=m+ss; break;
					case 2: y=y+ss; break;
				}
			}
			else {if (ss==' ') {f=3;} else {f++;}}
		}
		y=zeros(y,4); m=zeros(m, 2);
		if (y=="0000") {var ny=nd.getFullYear(); y=ny.toString();}
		if (y.substr(0,1)=="0") {y="2"+y.substr(1,3);}
		if (m=="00") {var nm=nd.getMonth()+1; m=zeros(nm.toString(),2);}
		ds=zeros(d,2)+"."+m+"."+y;
		dd.value=ds;
	}
}


