function FormatNumber(num,nil) {
 if(num==''&&nil) return '';
 num=num.replace(' ','');
 num=num.replace('.','');
 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(' ','');
 num=num.replace(',','.');
 while(num.charAt(0)=='0') num=num.substring(1);
 var n=parseFloat(num);
 if(isNaN(n)) n=0;
 if(f) {
  temp=n.toFixed(f)
  if(f0) {
   if(temp.indexOf('.')==-1) temp=temp+'.';
   return temp+f0;
  }
  else return temp;
 }
 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,err) {
 if(!err) err='Zadaný email neodpovídá tvaru emailové adresy !';
 if(nazev&&(!obj.value||obj.value=='@')) {
  window.alert(nazev);
  obj.focus();
  return false;
 }
 if(obj.value&&obj.value!='@') {
  if(!CheckEmail(obj.value)) {
   window.alert(err);
   obj.focus();
   return false;
  }
 }
 return true;
}

function CheckOptionalEmailEntry(obj,nazev,err) {
 if(!err) err='Zadaný email neodpovídá tvaru emailové adresy !';
 if(obj.value&&obj.value!='@') {
  if(!CheckEmail(obj.value)) {
   window.alert(err);
   obj.focus();
   return false;
  }
 }
 return true;
}

function CheckTextEntry(obj,nazev) {
 if(!obj.value) {
  window.alert(nazev);
  obj.focus();
  return false;
 }
 return true;
}

function CheckNumberEntry(obj,nazev) {
 if(obj.value) obj.value=parseInt(obj.value);
 if(obj.value==0||!obj.value) {
  window.alert(nazev);
  obj.focus();
  return false;
 }
 return true;
}

function CheckFloatEntry(obj,nazev) {
 if(obj.value) obj.value=parseFloat(obj.value);
 if(!parseFloat(obj.value)) {
  window.alert(nazev);
  obj.focus();
  return false;
 }
 return true;
}

function CreateDateFromEntry(obj,ferr) {
 if(!ferr) ferr="Zadaný datum má špatný formát !\nPoužijte tvar '1.1.2003' !";
 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(ferr);
  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]<1900||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,ferr) {
 if(!ferr) ferr="Zadaný datum a čas má špatný formát !\nPoužijte tvar '1.1.2003 12:00' !";
 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(ferr);
  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]<1900||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,ferr) {
 if(!ferr) ferr="Zadaný čas má špatný formát !\nPoužijte tvar '12:00' !";
 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(ferr);
  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,err) {
 return CheckDTEntry(CreateDateTimeFromEntry,obj,nazev);
}
function CheckDateTimeIntervalEntry(obj1,obj2,nazev1,nazev2,err,ierr) {
 return CheckDTIntervalEntry(CreateDateTimeFromEntry,obj1,obj2,nazev1,nazev2,err,ierr);
}
function CheckDateEntry(obj,nazev,err) {
 return CheckDTEntry(CreateDateFromEntry,obj,nazev);
}
function CheckDateIntervalEntry(obj1,obj2,nazev1,nazev2,err) {
 return CheckDTIntervalEntry(CreateDateFromEntry,obj1,obj2,nazev1,nazev2,err);
}
function CheckTimeEntry(obj,nazev,err) {
 return CheckDTEntry(CreateTimeFromEntry,obj,nazev,err);
}
function CheckTimeIntervalEntry(obj1,obj2,nazev1,nazev2,err) {
 return CheckDTIntervalEntry(CreateTimeFromEntry,obj1,obj2,nazev1,nazev2,err);
}

function CheckDTEntry(evalfunc,obj,nazev,err) {
 if(nazev&&!obj.value) {
  window.alert(nazev);
  obj.focus();
  return false;
 }
 if(obj.value) {
  dt=evalfunc(obj,nazev,err);
  if(!dt) {
//   window.alert('Datum není platný !');
   obj.focus();
   return false;
  }
 }
 return true;
}
function CheckDTIntervalEntry(evalfunc,obj1,obj2,nazev1,nazev2,err,ierr) {
 if(!ierr) ierr='Interval není platný !';
 if(nazev1&&!obj1.value) {
  window.alert('Musíte zadat '+nazev1+' !');
  obj1.focus();
  return false;
 }
 if(obj1.value) {
  dt1=evalfunc(obj1,nazev1,err);
  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,nazev2,err);
  if(!dt2) {
//   window.alert('Datum není platný !');
   obj2.focus();
   return false;
  }
 }
 if(obj1.value&&obj2.value) {
  if(dt2.getTime()<dt1.getTime()) {
   window.alert(err);
   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,nocolor) {
 if(!color&&nocolor) return '';
 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,s) {
 wnd=parent.window.open(src,'','left='+(screen.width-w)/2+',top='+(screen.height-h)/2+',width='+w+',height='+h+',toolbar=no,resizable=yes,scrollbars='+(s ? 'yes' : 'no')+',status=no');
}

function escapeex(txt) {
 e=escape(txt);
 e=e.replace(/\//g,"%2F");
 e=e.replace(/\?/g,"%3F");
 e=e.replace(/=/g,"%3D");
 e=e.replace(/&/g,"%26");
 v=e.replace(/@/g,"%40");
 return e;
} 

function trim(istr) {
 var p=0;
 var f=istr;
 var t=istr;
 if(istr!='') {
  while(f.charAt(p)==' '||f.charAt(p)=='	') {
   p++;
  }
  t=f.substring(p,f.length);
  f=t;
  p=f.length-1;
  while(f.charAt(p)==' '||f.charAt(p)=='	') {
   p--;
  }
  t=f.substring(0,p+1);
  f=t;
  return f;
 }
}

function CheckImageFileType(o,err) {
 if(!err) err='Typ souboru je nesprávný!';
 var l=o.value.lastIndexOf('.');
 if(l!=-1) {
  var ext=o.value.substring(l+1).toLowerCase();
  var ok=0;
  var types=new Array('jpg','jpeg','gif','png');
  for(si=0;si<types.length;si++) {
   if(types[si]==ext) {
    ok=1;
    break;
   }
  }
 }
 if(!ok) {
  window.alert(err);
  return false;
 }
 return true;
}


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";
}
