var IE = document.all?true:false

var body = null;

var weekdays = new Array('ne','po','út','st','čt','pá','so')
function body_init () {
  body = document.getElementById("body");  
  inc_edit_init()
}

Date.prototype.getIsoDate = function () {
  var m = this.getMonth()+1
  var d = this.getDate()
  m = (m>9)?m:'0'+m
  d = (d>9)?d:'0'+d
  return this.getFullYear() + '-' + m + '-' + d
}

function datediff (datod,datdo) {
  			 var mil = (datdo.getTime()-(datdo.getTimezoneOffset()*60000))-(datod.getTime()-(datod.getTimezoneOffset()*60000));
  			 var dny = mil/(1000*60*60*24);
  			 return dny
}

function jeCislo(s) {
  s = s.replace(/^[0]+/g,"");
  if (s!= null && s.length>0) {
    var cast = s.split(',',2);
    var cel = parseInt(cast[0],10);
    cel = cel.toString();
    if (cast.length==2) {
      var dec =  parseInt(cast[1],10);
      dec = ',' + dec.toString()
    } else {
      var dec = ''
    }
    var cislo = cel + dec;
    if (cislo == s) {
      return true;
    }
  }
  return false;
}
  function getX( oElement )
  {
    var iReturnValue = 0;
    while( oElement != null ) {
    iReturnValue += oElement.offsetLeft - oElement.scrollLeft;
    oElement = oElement.offsetParent;
    }
    return iReturnValue;
  }

  function getY( oElement )
  {
    var iReturnValue = 0;
    while( oElement != null ) {
      iReturnValue += oElement.offsetTop - oElement.scrollTop;
      oElement = oElement.offsetParent;
    }
    return iReturnValue;
  }
 

function change_chbox(chbox,fce,param) {
    if (chbox.checked) new_value=1; else new_value=0;
    if (!window_run_script(fce,param+'&onvalue='+new_value,'',false)) {
       chbox.checked = !(chbox.checked);
    }
}
function window_open(src) {
  window.open(src,'mywin','left=20,top=20,width=1000,height=600,toolbar=1')
}

function addEvent(obj, event, funct) {  
  if (obj.attachEvent) { //IE  
    obj['e' + event + funct] = funct;  
    obj['x' + event + funct] = function() {  
          obj['e' + event + funct](window.event);  
        }  
    obj.attachEvent('on' + event, obj['x' + event + funct]);  
  } else // other browser  
    obj.addEventListener(event, funct, false);
      
}

function removeEvent(obj, event, funct) {  
  if (obj.detachEvent) { // IE  
    obj.detachEvent('on' + event, obj[event + funct]);  
    obj['x' + event + funct] = null;  
  } else // other browser  
    obj.removeEventListener(event, funct, false );  
}  

function get_form_params (thisform) {
		  var params = '';
		  var ap = get_form_params_array (thisform)
		  for (var i in ap) {
        params += i + "=" + ap[i] + "&"
      }
      return params
}
function get_form_params_array (thisform) {
		  with (thisform) 
		  {
    		  var myparams = new Array()
					 for (var i=0;i<elements.length;i++) 					 
					 {
								if((elements[i].type == 'radio' || elements[i].type == 'checkbox' ) && elements[i].checked) {								
										 myparams[elements[i].name] = encodeURIComponent(elements[i].value)
								}
								if(elements[i].type=='text' || elements[i].type=='textarea' || elements[i].type=='hidden' || elements[i].type=='select-one' || elements[i].type=='button') {
										 myparams[elements[i].name] = encodeURIComponent(elements[i].value)
										 if (elements[i].className != null && elements[i].className != '' ) {
										    var name =  elements[i].name
										    var zav = name.indexOf('[') 
										    if (zav > 0 ) {
                          var arr = name.substring(zav)
                          var name = name.substring(0,zav)
                        } else {
                          var arr = ''
                        }
										    myparams[name+'_className'+arr] = encodeURIComponent(elements[i].className)
                     }
								}
					 }
		  }
     return myparams;
}

function array_submit(arr,fce) {
   var params = '';
   for (var i in arr) {
     params += i+'='+arr[i]+'&'
   }
   return data_submit(params,fce);
}
function data_submit (params,fce) {
  var zadost = new XMLHttpRequest(); 
  if (zadost) 
  { 
			 zadost.open('POST', 'index.php?run='+fce, false);
			 zadost.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			 zadost.send(params);
			 return zadost.responseText;
  } else {
    return "Vas prohlizec nepodporuje XMLHttpRequest()";
  }  
}

function form_submit (mform,fce) {
  var params = get_form_params(mform);
  return data_submit (params,fce)
}

function zjisti_kod_akce(e){
if(e){
return e.charCode ? e.charCode : e.keyCode;}
else{return window.event.charCode ? window.event.charCode : window.event.keyCode; }}

var IE = document.all?true:false

document.onmousemove = getMouseXY;

var tempX = 0
var tempY = 0
var lock = false;

function getScroll() {
  return Array(document.body.scrollLeft,document.body.scrollTop);
}

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  if (lock) {
    var newx = sx + (tempX - tx);
    var newy = sy + (tempY - ty);
    newx = (newx > 0)?newx:0;
    newy = (newy > 0)?newy:0;
    moving_obj.style.left = newx;
    moving_obj.style.top =  newy; 
  }
  return false;  
}
function dateToIso(date) 
{
		  var adate = date.split('.');
		  return adate[2] + '-' + adate[1] + '-' + adate[0];
}

function doc_win_height() {
 return document.body.clientHeight;
}

function doGetCaretPosition (ctrl) {
	var CaretPos = 0;
	// IE Support
	if (document.selection) {

		ctrl.focus ();
		var Sel = document.selection.createRange();
		var SelLength = document.selection.createRange().text.length;
		Sel.moveStart ('character', -ctrl.value.length);
		CaretPos = Sel.text.length - SelLength;
	}
	// Firefox support
	else if (ctrl.selectionStart || ctrl.selectionStart == '0')
		CaretPos = ctrl.selectionStart;

	return (CaretPos);

}

function doSetCaretPosition (oField,iCaretPos) {
// IE Support
if (document.selection) {

// Set focus on the element
oField.focus ();

// Create empty selection range
var oSel = document.selection.createRange ();

// Move selection start and end to 0 position
oSel.moveStart ('character', -oField.value.length);

// Move selection start and end to desired position
oSel.moveStart ('character', iCaretPos);
oSel.moveEnd ('character', 0);
oSel.select ();
}

// Firefox support
else if (oField.selectionStart || oField.selectionStart == '0') {
    oField.selectionStart = iCaretPos;
    oField.selectionEnd = iCaretPos;
    oField.focus ();
  }
}


function zmenaPrt() {
  if (document.getElementById("httpspre").checked) {
    document.getElementById("port").value="*:443"; 
  } else {
    document.getElementById("port").value="*:80 *:443";
  }
}

function show_hidden_win (winid) {
  if (document.getElementById(winid).style.display == "block") {
    document.getElementById(winid).style.display = "none";
  } else {
    document.getElementById(winid).style.display = "block";
  }
}

function menu_show(obj) {
  document.getElementById(obj).style.display = "block";
}
function menu_hide(obj) {
  document.getElementById(obj).style.display = "none";
}

function run_script_query(action,params,query)
{
  if (confirm(query)) return run_script(action,params);
  else return false;  
}

function get_php(action,params) {
  var zadost = new XMLHttpRequest(); 
       if (zadost) 
       { 
           if (params != null) {
             for (var i in params) {
               action += '&' + i + '=' + params[i]
             }
           }
           zadost.open('GET', 'index.php?run='+action, false);         
           zadost.send(null);
           var r = zadost.responseText;
           var rs = r.split(':')
           if (rs[0]<0) {
            alert(r.substr(r.indexOf(':')+1))
            return false;
           } else {
            return zadost.responseText;
           }
       }
        else
       {
           alert('Bohuzel ale Vas prohlizec nepodporuje XMLHttpRequest()');
           return false;
       }
}

function get_php_direct(reqstr) {
  var zadost = new XMLHttpRequest(); 
       if (zadost) 
       { 
           zadost.open('GET', reqstr, false);         
           zadost.send(null);
           var r = zadost.responseText;
           var rs = r.split(':')
           if (rs[0]<0) {
            alert(r.substr(r.indexOf(':')+1))
            return false;
           } else {
            return zadost.responseText;
           }
       }
        else
       {
           alert('Bohuzel ale Vas prohlizec nepodporuje XMLHttpRequest()');
           return false;
       }
}

function run_script(action,params)
{
  var zadost = new XMLHttpRequest(); 
       if (zadost) 
       { 
           zadost.open('GET', 'index.php?run='+action+'&'+params, false);         
           zadost.send(null);
           if (zadost.responseText=='ok') return true;
           else 
           {
             alert(zadost.responseText);
           }
       }
        else
       {
           alert('Bohuzel ale Vas prohlizec nepodporuje XMLHttpRequest() :(');
       }  
       return false;
}

  function set ()
  {
    var result = {};

    for (var i = 0; i < arguments.length; i++)
      result[arguments[i]] = true;

    return result;
  }

function send_form(thisform,action,target,close) {
  var params="";
  with (thisform) {
    for (var i=0;i<elements.length;i++) {
      //alert(elements[i].type);
      if(elements[i].type in set('text','hidden','select-one','radio')) {
        params = params + elements[i].name + '=' + elements[i].value + '&';
      }
      if(elements[i].type == 'checkbox') {
        if (elements[i].checked) params = params + elements[i].name + '=' + elements[i].value + '&';
      }
    }
  }
  
  var zadost = new XMLHttpRequest(); 
       if (zadost) 
       { 
          var mobj_updating=document.getElementById("updatinginprogress");
          mobj_updating.style.display="block"; 
       
           zadost.onreadystatechange = function k()
                                 {
                                     if (zadost.responseText == "ok" && close) 
                                     {
                                          mobj_updating.style.display="none"; 
                                          close_form(target,true);
                                     } else if (zadost.responseText == "ok") {
                                          mobj_updating.style.display="none"; 
                                          reload_form(target);
                                     } else if (zadost.responseText.length > 5) {
                                          mobj_updating.style.display="none"; 
                                        alert(zadost.responseText);
                                     }
                                 }
           zadost.open('POST', 'run.php?fce=' + action, true);
           zadost.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
           zadost.setRequestHeader("Content-length", params.length);
           zadost.setRequestHeader("Connection", "close");         
           zadost.send(params);
       }
        else
       {
           alert('Bohuzel ale Vas prohlizec nepodporuje XMLHttpRequest() :(');
       }  
         
  return false;
}

function get_obj_form (src) {
  var obj = src
  while (obj!=null && obj.tagName != "FORM") {
    obj = obj.parentNode      
  }
  return obj        
}
var getFormByObject = get_obj_form

function parse_assoc_csv(data) {
  if (data!=null) {
    var cols = data.split(';')
    var ret = new Array()
    for (var i in cols) {
      var par = cols[i].split(':')
      ret[par[0]]=par[1]    
    }
    return ret
  } else {
    return null
  }
}

function parse_xml_level (obj) {
  var childs = obj.childNodes;
  var indexStr = ''
  if ( childs != null && childs.length>0 && childs[0].tagName!=null ) {
    var arr = new Array();
    for (var i = 0; i< childs.length; i++) {
      var ind = childs[i].tagName.split('_index_')
      if (ind.length==2) {
        ind = ind[1];
        indNum = parseInt(ind,10);
        if ((indNum+'') == ind) {
          indexStr = indNum
        } else {
          indexStr = ind
        }        
      } else {
        indexStr = childs[i].tagName 
      }
      arr[indexStr] = parse_xml_level(childs[i])
    }
    return arr; 
  } else {
    return obj.textContent;      
  }
}

function get_php_xml(script) {
  var parser=new DOMParser();
  var data = get_php(script)
  var retObj = new Object() 
  if (data!=false) {
    var ret = new Array()
    var xmlDoc=parser.parseFromString(data,"text/xml");
    if (xmlDoc.childNodes[0]!= null) {
      var typ = xmlDoc.childNodes[0].tagName
      if (typ=='retdata') { 
        var rows = xmlDoc.getElementsByTagName('row')
        for (var r = 0; r < rows.length; r++) {
          ret[r] = new Array()
          var row = rows[r]
          for (var c = 0; c < row.childNodes.length; c++) {
            ret[r][row.childNodes[c].nodeName] = row.childNodes[c].textContent
          }
        }
        retObj.data = ret;
        var rows = xmlDoc.getElementsByTagName('error')
        if (rows[0]!=null) {
          retObj.error = rows[0].textContent
        }
        return retObj;
      } else if (typ=='array') {
        var arr = parse_xml_level(xmlDoc.childNodes[0]);
        return arr;
      }
    }  else {
      return false;
    }
  } else {
    return false;
  }
}

function fill_inputs (form,script) {
  var data = get_php_xml(script)
  if (data !== false) {
    if (data.error != null) {
      alert(data.error)
    } else {
      var row = data.data[0]        
      for (var i=0; i< form.length; i++) {
        if (form[i].name != '' && row[form[i].name]!=null) {
          var klic = form[i].name 
          if (form[i].className=="number") {
            form[i].value=row[klic].replace('.',',')
          } else {
            form[i].value=row[klic]
          }      
        }
      }
    }
  }
}

String.prototype.repeat = function( num )
{
    return new Array( num + 1 ).join( this );
}

function alert_r(a) {
  alert(printArr(a)+'\n')
}

function printArr(arr,d) {
  if (d>0) {
    var pref = "     ".repeat( d )
  }else {
    var pref = ""
  }
  if (d==null) d=0;
  var retval=''
  for (var i in arr) {
    var p = arr[i]
    if (p!=null && p.constructor.toString().indexOf("Array") > -1) {
      retval += pref + i+' => array[\n' + printArr(p,d+1) +pref+'     ]\n'
    } else {
      retval += pref + i+" => '"+p+"'\n"
    }
  }  
  return retval;
}


function frm_foto_load(obj,params) {
  var str = ''
  for (var i in params) {
    str += '&'+i+'='+params[i]  
  }
  var win = new usr_window(obj,'foto/_frm/load'+str);
  win.onclose = 'this.usr_window.reload()';
}


