function FormatNumber(num,nil) {
 if(num==''&&nil) return '';
 while(num.charAt(0)=='0') num=num.substring(1);
 num=parseInt(num);
 if(isNaN(num)) num=0;
 return num;
}

function FormatFloat(num,f,f0,nil) {
 if(num==''&&nil) return '';
 num=num.replace(',','.');
 while(num.charAt(0)=='0') num=num.substring(1);
 var n=parseFloat(num);
 if(isNaN(n)) n=0;
 if(f0) {
  temp=n.toFixed(f)
  if(temp.indexOf('.')==-1) temp=temp+'.';
  return temp+f0;
 }
 else return n;
}

function CheckEmail(txt) {
 re=new RegExp("^([0-9a-zA-Z_.-]+)@([0-9a-zA-Z_-]+)([.]{1}[0-9a-zA-Z_-]+){1,4}$");
 if(!re.test(txt)) return false;
 else return true;
}

function CheckEmailEntry(obj,nazev) {
 if(nazev&&!obj.value) {
  if(nazev.indexOf('zadat')) window.alert(nazev);
  else window.alert('Musíte zadat '+nazev+' !');
  obj.focus();
  return false;
 }
 if(!CheckEmail(obj.value)) {
  window.alert('Zadaný email neodpovídá tvaru emailové adresy !');
  obj.focus();
  return false;
 }
 return true;
}

function CheckOptionalEmailEntry(obj,nazev) {
 if(obj.value) {
  if(!CheckEmail(obj.value)) {
   window.alert('Zadaný email neodpovídá tvaru emailové adresy !');
   obj.focus();
   return false;
  }
 }
 return true;
}

function CheckTextEntry(obj,nazev) {
 if(!obj.value) {
  if(nazev.indexOf('zadat')) window.alert(nazev);
  else window.alert('Musíte zadat '+nazev+' !');
  obj.focus();
  return false;
 }
 return true;
}

function CheckNumberEntry(obj,nazev) {
 if(obj.value) obj.value=parseInt(obj.value);
 if(!obj.value) {
  if(nazev.indexOf('zadat')) window.alert(nazev);
  else window.alert('Musíte zadat '+nazev+' !');
  obj.focus();
  return false;
 }
 return true;
}

function CheckFloatEntry(obj,nazev) {
 if(obj.value) obj.value=parseFloat(obj.value);
 if(!parseFloat(obj.value)) {
  if(nazev.indexOf('zadat')) window.alert(nazev);
  else window.alert('Musíte zadat '+nazev+' !');
  obj.focus();
  return false;
 }
 return true;
}

function CreateDateFromEntry(obj) {
 var err;
 obj.value=obj.value.replace(/,/g,'.');
 var pocetDni=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
 re=new RegExp("^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,4})$");
 if(!re.test(obj.value)) {
  window.alert("Zadaný datum má špatný formát !\nPoužijte tvar '1.1.2003' !");
  obj.focus();
  return false;
 }
 dtarray=re.exec(obj.value);
 dtarray[1]=Math.round(parseFloat(dtarray[1]));
 dtarray[2]=Math.round(parseFloat(dtarray[2]));
 dtarray[3]=Math.round(parseFloat(dtarray[3]));
 if(dtarray[3]<1980||dtarray[3]>2100) return false;
 if(dtarray[2]<1||dtarray[2]>12) return false;

 if((pocetDni[dtarray[2]]<dtarray[1]||dtarray[1]<1)&&!(dtarray[2]==2&&dtarray[1]==29&&dtarray[3]%4==0)) return false;
 return new Date(dtarray[3],dtarray[2],dtarray[1]);
}
function CreateDateTimeFromEntry(obj) {
 var err;
 obj.value=obj.value.replace(/,/g,'.');
 var pocetDni=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
 re=new RegExp("^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,4})[ \t]*([0-9]{1,2}):([0-9]{1,2})$");
 if(!re.test(obj.value)) {
  window.alert("Zadaný datum a čas má špatný formát !\nPoužijte tvar '1.1.2003 12:00' !");
  obj.focus();
  return false;
 }
 dtarray=re.exec(obj.value);
 dtarray[1]=Math.round(parseFloat(dtarray[1]));
 dtarray[2]=Math.round(parseFloat(dtarray[2]));
 dtarray[3]=Math.round(parseFloat(dtarray[3]));
 dtarray[4]=Math.round(parseFloat(dtarray[4]));
 dtarray[5]=Math.round(parseFloat(dtarray[5]));
 if(dtarray[3]<1980||dtarray[3]>2100) return false;
 if(dtarray[2]<1||dtarray[2]>12) return false;
 if(dtarray[4]<0||dtarray[4]>23) return false;
 if(dtarray[5]<0||dtarray[5]>59) return false;

 if((pocetDni[dtarray[2]]<dtarray[1]||dtarray[1]<1)&&!(dtarray[2]==2&&dtarray[1]==29&&dtarray[3]%4==0)) return false;
 return new Date(dtarray[3],dtarray[2],dtarray[1],dtarray[4],dtarray[5]);
}
function CreateTimeFromEntry(obj) {
 var err;
 obj.value=obj.value.replace(/,/g,'.');
 re=new RegExp("^([0-9]{1,2}):([0-9]{1,2})$");
 if(!re.test(obj.value)) {
  window.alert("Zadaný čas má špatný formát !\nPoužijte tvar '12:00' !");
  obj.focus();
  return false;
 }
 dtarray=re.exec(obj.value);
 dtarray[1]=Math.round(parseFloat(dtarray[1]));
 dtarray[2]=Math.round(parseFloat(dtarray[2]));
 if(dtarray[1]<0||dtarray[1]>23) return false;
 if(dtarray[2]<0||dtarray[2]>59) return false;

 return new Date(2000,1,1,dtarray[4],dtarray[5]);
}


function CheckDateTimeEntry(obj,nazev) {
 return CheckDTEntry(CreateDateTimeFromEntry,obj,nazev);
}
function CheckDateTimeIntervalEntry(obj1,obj2,nazev1,nazev2) {
 return CheckDTIntervalEntry(CreateDateTimeFromEntry,obj1,obj2,nazev1,nazev2);
}
function CheckDateEntry(obj,nazev) {
 return CheckDTEntry(CreateDateFromEntry,obj,nazev);
}
function CheckDateIntervalEntry(obj1,obj2,nazev1,nazev2) {
 return CheckDTIntervalEntry(CreateDateFromEntry,obj1,obj2,nazev1,nazev2);
}
function CheckTimeEntry(obj,nazev) {
 return CheckDTEntry(CreateTimeFromEntry,obj,nazev);
}
function CheckTimeIntervalEntry(obj1,obj2,nazev1,nazev2) {
 return CheckDTIntervalEntry(CreateTimeFromEntry,obj1,obj2,nazev1,nazev2);
}

function CheckDTEntry(evalfunc,obj,nazev) {
 if(nazev&&!obj.value) {
  window.alert('Musíte zadat '+nazev+' !');
  obj.focus();
  return false;
 }
 if(obj.value) {
  dt=evalfunc(obj);
  if(!dt) {
   window.alert('Datum není platný !');
   obj.focus();
   return false;
  }
 }
 return true;
}
function CheckDTIntervalEntry(evalfunc,obj1,obj2,nazev1,nazev2) {
 if(nazev1&&!obj1.value) {
  window.alert('Musíte zadat '+nazev1+' !');
  obj1.focus();
  return false;
 }
 if(obj1.value) {
  dt1=evalfunc(obj1);
  if(!dt1) {
   window.alert('Datum není platný !');
   obj1.focus();
   return false;
  }
 }
 if(nazev2&&!obj2.value) {
  window.alert('Musíte zadat '+nazev2+' !');
  obj2.focus();
  return false;
 }
 if(obj2.value) {
  dt2=evalfunc(obj2);
  if(!dt2) {
   window.alert('Datum není platný !');
   obj2.focus();
   return false;
  }
 }
 if(obj1.value&&obj2.value) {
  if(dt2.getTime()<dt1.getTime()) {
   window.alert('Interval není platný !');
   obj1.focus();
   return false;
  }
 }
 return true;
}

function LeadZero(n) {
 var s=new String(n);
 if(s.length==1) return '0'+s;
 else if(s.length==0) return '00';
 else return s;
}

function DateToString(d) {
 return LeadZero(d.getDate())+'.'+LeadZero(d.getMonth())+'.'+LeadZero(d.getFullYear());
}

function DateTimeToString(d) {
 return DateToString(d)+' '+LeadZero(d.getHours())+':'+LeadZero(d.getMinutes());
}

function DateAddDays(d,pocet) {
 var temp;
 var pocetDni;
 if(d.getFullYear()%4==0) pocetDni=new Array(0,31,29,31,30,31,30,31,31,30,31,30,31); 
 else pocetDni=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); 
 if(pocet>0) {
  if((d.getDate()+pocet)>pocetDni[d.getMonth()]) {
   temp=d.getDate()+pocet-pocetDni[d.getMonth()];
   d.setMonth(d.getMonth()+1);
   d.setDate(temp);
   return d;
  }
  else {
   d.setDate(d.getDate()+1);
   return d;
  }
 }
 else {
  //doplnit odečítání 
 }
}

function Hex(val){
 var b=16;
 var c='0123456789ABCDEF';
 var s='';
 while(val>0){
  s=c.charAt(val%b)+s;
  val=Math.floor(val/b);
 }
 return s;
}

function ConvertStyleRGBtoHex(rgb) {
 if(rgb.charAt(0)=='#') return rgb;
 var r=/\s*rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/;
 r=r.exec(rgb.toLowerCase());
 return '#'+LeadZero(Hex(r[1]))+LeadZero(Hex(r[2]))+LeadZero(Hex(r[3]));
}

function CheckColor(color,dflt) {
 if(color=='green'||color=='zelená') return '#00FF00';
 if(color=='red'||color=='červená') return '#FF0000';
 if(color=='blue'||color=='modrá') return '#0000FF';
 if(!dflt) dflt='#000000';
 if(dflt=='-') dflt='';
 if(color.length>7||color.charAt(0)!='#') return dflt;
 color=color.toUpperCase(); 
 var allowedchars='0123456789ABCDEF';
 for(i=1;i<color.length;i++) {
  if(allowedchars.indexOf(color.charAt(i))==-1) return "#000000";
 }
 return color;
}


function protectm(usr,dom,html,hparam,param) {
 if(!document.domain) return;
 if(!dom) dom=document.domain.replace('www.','');
 var strm="&#109;a&#105;&#108;&#116;o:";
 if(!html) html=usr+'&#64;'+dom;
 if(hparam) hparam='?'+hparam;
 else hparam='';
 if(!param) param='';
 document.write('<a href="'+strm+usr+'&#64;'+dom+hparam+'"'+param+'>'+html+'</a>');
}

function popup(src,w,h) {
 wnd=parent.window.open(src,'','left='+(screen.width-w)/2+',top='+(screen.height-h)/2+',width='+w+',height='+h+',toolbar=no,resizable=yes,scrollbars=no,status=no');
}

function disableSelection(target) {
 if(typeof target.onselectstart!="undefined") target.onselectstart=function() { return false; }
 else if (typeof target.style.MozUserSelect!="undefined") target.style.MozUserSelect="none";
 else target.onmousedown=function() { return false; }
 target.style.cursor="default";
}
