var dialog_div = '#dialog';
var possibleChars = "abcdefghijklmnopqrstuvwxyz0123456789";
var transbox={};

function tad(k,v){
  transbox[k]=v;
}
function trn(k, bundle){
  if (!transbox[k])return '';
  if (bundle) {
	return vlhold(transbox[k], bundle);
  }
  return transbox[k];
}
function trns(k) {
  var rez = {}
  for(var m in transbox) {
	if (m.startsWith(k))rez[m]=transbox[m];
  }
  return rez;
}
function plhold(s, span) {
  return s.replace(/@[a-z0-9_]+/g, function(r) { return (span?'<span class="phold" data-ph="'+r+'">':'')+(transbox[r] || r)+(span?'</span>':''); });
}
function vlhold(s, bundle) {
  return s.replace(/@[a-z0-9_]+/g, function(r) { return (bundle[r] || r); });
}

function popLoadShow(elm, url, data, title, nid, path){
  if (elm) jQuery(elm).closest(path).attr('data-nid',nid);
  jQuery(dialog_div).html('');
  jQuery.post(url, data, function( data ) {
	popShow(data, title);
  });
}
function popLoadShowJ(url, data, position, doonopen, doonclose) {
  jQuery(dialog_div).html('');
  jQuery.post(url, data, function( resp ) {	popShow(resp.body, resp.title, position, doonopen, doonclose); }, 'json');
}
function popShow(data, title, position, doonopen, doonclose){
  jQuery(dialog_div).html(data).dialog(
    {modal: true, width:'auto', position: (position?position:'top'), title: (title?title:''), open: doonopen, close: doonclose}
  );
}
function popClose(){//cannot call methods on dialog prior to initialization; attempted to call method 'close'
  //if ($("#dialog-myDialog").hasClass("ui-dialog-content") &&  $("#dialog-myDialog").dialog("isOpen")) {
  if (jQuery(dialog_div).hasClass("ui-dialog-content")) jQuery(dialog_div).dialog('close');
}

function ajaxFormDone(form_id, nid) {
  var func = 'frmajax_'+form_id;
  if(this[func])this[func].apply(this, arguments);
}
/*function popBoxShow(data, title){
  jQuery(dialog_box).html(data).dialog({modal: true, width:'auto', position: 'center', title: (title?title:'')});
}
function popBoxClose(){
  if(jQuery(dialog_box).hasClass('ui-dialog-content')) jQuery(dialog_box).dialog('close');
}*/

function roundPrice(p) {
  return Math.round(p * 100) / 100;
}
function isMobile() {
  try{ document.createEvent("TouchEvent"); return true; }catch(e){ return false; }
}
/*function xss_ajax(url) {
  var script_id = null;
  var script = document.createElement('script');
  script.setAttribute('type', 'text/javascript');
  script.setAttribute('src', url);
  script.setAttribute('id', 'script_xss');
  script_id = document.getElementById('script_xss');
  if(script_id){
    document.getElementsByTagName('head')[0].removeChild(script_id);
  }
  document.getElementsByTagName('head')[0].appendChild(script);
}*/
/*function ajacors(url, success, error){
  jQuery.ajax({
    url: url,
	crossDomain: true,
    success: function(data) {
	 if (success)success(data);
    },
	error: function(xhr, status, error) {
	  if(error)error(xhr, status, error);
    },
	beforeSend: function(xhr) {
      xhr.withCredentials = true;
    }
  });
}
function ajacors2(url, success, error){
    var req = new XMLHttpRequest();
    req.open('GET', url, true); // force XMLHttpRequest2
    //req.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
	req.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');
    //req.setRequestHeader('Accept', 'application/json');
	req.setRequestHeader('Accept', 'text/plain');
    req.withCredentials = true; // pass along cookies
    req.onload = function()  {
		if (success) success(req.responseText);
    };
    req.onerror = function(er)  {
		if (error) error(er);
    };
	req.send();
}*/

function coocr(name, value, days, akt, path) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + Math.round(days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else var expires = "";
    document.cookie = name + "=" + value + expires + "; path="+(path?path:"/");
    if(akt!=null && akt=='r'){
        setTimeout('window.location.reload(false)',200);
    }
}
function coogt(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}
function cooer(name) {
    crCookie(name, "", -1);
}
function rndstr(len) {
  var text = "";
  for (var i = 0; i < len; i++) text += possibleChars.charAt(Math.floor(Math.random() * possibleChars.length));
  return text;
}
function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
function putUserParams(params, callback) {
  jQuery.post('/c/d/putuspars', params, function(data){if(callback)callback(data);});
}
function getPpDate(prn, name) {
  var vd = jQuery("input[id*='"+name+"'][name*='[date]']", prn).val();
  if (!vd) return null;
  var tm = jQuery("input[id*='"+name+"'][name*='[time]']", prn).val();
  if (!tm || tm=='')tm='12:00';
  var vds = vd.split('.');
  return Date.parse(vds[2]+'-'+vds[1]+'-'+vds[0]+'T'+tm);
  
  /*var dfld = "#edit-field-"+name+"-und-0-value-datepicker-popup-0";
  var tfld = "#edit-field-"+name+"-und-0-value-timeEntry-popup-1";
  //var dt = jQuery(dfld).datepicker("getDate");
  var vd = jQuery(dfld).val();
  if (!vd) return null;
  var vds = vd.split('.');
  var tm=jQuery(tfld).val();
  if (!tm || tm=='')tm='12:00';
  return Date.parse(vds[2]+'-'+vds[1]+'-'+vds[0]+'T'+tm);*/
}
function switchDates(prn, from, to){
  var vd = jQuery("input[id*='"+from+"'][name*='[date]']", prn).val();
  jQuery("input[id*='"+to+"'][name*='[date]']", prn).val(vd);
}
/*function disabledEventPropagation(event){
  if(event) if (event.stopPropagation){event.stopPropagation();}else if(window.event){ window.event.cancelBubble=true;}
}*/
function getCurLng() {
  var l = jQuery('html').attr('xml:lang');
  if (l==null || l=='') l = 'en';
  return l;
}
function iniTblRows() {
  jQuery('table a[data-ident]').each(function(){
	var nid = jQuery(this).attr('data-ident');
	jQuery(this).closest('tr').attr('data-nid',nid);
  });
}
function url_param(name) {
  return (location.search.split(name + '=')[1] || '').split('&')[0];
}
function isEmpty(val) {
  return (val === null || val === "" || typeof val === "undefined");
}
function tblfldEdt(resp) {
  var cont = 'table td.'+resp.tfield+'[data-eidx="'+resp.idx+'"]';
  var txt;
  var span = jQuery(cont+' span[data-t="1"]');
  //console.log(span);
  if (span.length>0) {
	txt = span.text().trim();
  } else {
	txt = jQuery(cont).text().trim();
  }
  jQuery(cont).attr('data-edback',txt);
  var rez='';
  if (resp.type=='text') {
	rez+='<div style="width: 0px; position:relative;">'+
	'<div style="background-color: #000000; padding: 3px; z-index: 5; position:absolute;">'+
	'<input id="tbledt_'+resp.idx+'" type="text" value="'+txt+
	'" style="width: auto; min-width: 30px;" '+
	'oninput="tblfldRefr()" onblur="tblfldPut()" onkeydown="if(event.keyCode == 13){event.preventDefault(); tblfldPut();}"/>'+
	'</div>'+
	'</div>';
  }
  jQuery(cont).html(rez);
  tblfldRefr();
}

var edtTimer=null;
function tblfldRefr(stop) {
  if (edtTimer){ clearTimeout(edtTimer); edtTimer=null; }
  if (!stop) edtTimer = setTimeout(function (){tblfldPut();}, 5000);
}

function tblfldPut() {
  //console.log('tblfldPut');
  tblfldRefr(true);
  jQuery('*[data-eidx]').each(function(){
	var lock = jQuery(this).attr('data-lock');
	if (lock) return;
	jQuery(this).attr('data-lock',1);
	var eidx = jQuery(this).attr('data-eidx');
    var tfield = jQuery(this).attr('data-edit');
	var nid = jQuery(this).attr('data-ni');
	if (!nid) nid = jQuery(this).closest('tr').attr('data-nid');
	var refr = jQuery(this).closest('div[data-refr]').attr('data-refr');
	var val = jQuery('#tbledt_'+eidx).val();
    jQuery.post('/'+getCurLng()+'/c/d/tblfldput/'+eidx+'/'+nid+'/'+tfield, {refr:refr, val:val}, function( data ) {
      tblfldSet(data);
    }, 'json');

  });
}
function tblfldSet(resp) {
  var cont = 'table td[data-eidx="'+resp.idx+'"]';
  var edback = jQuery(cont).attr('data-edback');
  var jelm = jQuery(cont);
  var txt = resp.val?resp.val:edback;
  var mask = jelm.attr('data-mask');
  if (mask) {
	txt = vlhold(mask, {'@t':txt});
  }
  jelm.html(txt).removeAttr('data-eidx').removeAttr('data-edback').removeAttr('data-lock');
  if(jelm.data('ecb')) jelm.data('ecb')(resp);
}
function tstamp() {
  return (new Date()).getTime();
}
function inArray(arr,val) {
  if (!arr || !val || arr.length==0) return false;
  for(var j=0;j<days.length;j++) {
    if(days[j]==val) return true;
  }
  return false;
}
/*gdpr*/
function coorez(v) {
  if (v == 'yes') {
    jQuery('#cookinf').hide();
  } else {
    jQuery('#cookinf').show();
  }
}
function coocheck(){
  coorez(coogt('acoo'));
  //xss_ajax('//4win.ch/c/d/coocheck/'+(new Date()).getTime());
  //ajacors2('//4win.ch/c/d/coocheck/'+(new Date()).getTime(), function(data){console.log(data); coorez(data);}, function(){coorez('no');});
}
function cooset() {
  //xss_ajax('//4win.ch/c/d/cooset/'+(new Date()).getTime());
  //ajacors2('//4win.ch/c/d/cooset/'+(new Date()).getTime(), function(data){coocheck();}, function(){coorez('no');});
  coocr('acoo', 'yes', 365);
  coocheck();
}
function usrRestorePass(email, callback) {
  if (!email || email=='') return;
  jQuery.post('/'+getCurLng()+'/c/d/usr_restore_pass', {email:email}, function(data){if(callback)callback(data);});
}
function jsonClone(obj){
  return JSON.parse(JSON.stringify(obj));
}
jQuery(document).ready(
  function(){ setTimeout(function(){coocheck();}, 500); }
);

/*close-keep data-keep:=keep buttons*/
function doClKp(bt){
  //console.log(bt);
  var rt = bt;
  var del = rt.getAttribute('data-del'); if (del==undefined) del = 2000;
  rt.keep = rt.getAttribute('data-keep'); if (rt.keep==undefined) rt.keep = 4000;
  rt.tm = rt.keep/100;
  setTimeout(function(){
    //rt.getElementsByClassName("btn_ck")[0].style.display='none';
    //rt.getElementsByClassName("btn_cc")[0].style.display='block';
    doKpKp(rt);
  }, del);
}
function doKpKp(rt){
    if(rt.prs==-1)return;
    if (rt.prs == undefined) { rt.prs=100; } else rt.prs-=1;
    var btn_cc = rt.getElementsByClassName("btn_cc");
    if (btn_cc && btn_cc.length>0) {
	if (rt.prs>=50) btn_cc[0].style.background = 'linear-gradient(90deg, var(--ckck-bg) '+rt.prs+'%, #EEEEEE '+(100-rt.prs)+'%)';
	else btn_cc[0].style.background = 'linear-gradient(270deg, #EEEEEE '+(100-rt.prs)+'%, var(--ckck-bg) '+rt.prs+'%)';
    }
    if (rt.prs<=0) {
	var after = rt.getAttribute('data-doafter');
	if (after) eval(after);
	return;
    }
    var bt=rt;
    setTimeout(function(){doKpKp(bt)},rt.tm);
}
function form_date_clean(o){
    var prn = jQuery(o).closest('div.date-padding');
    jQuery('input[type=text]', prn).each(function(){
	jQuery(this).val('');
    });
}
