function ixForms_jumpStep(formName,stepToJump,isCheckNeeded){
	var objForm = document.getElementById(formName);
	objForm.actioncode.value = isCheckNeeded ? 'check' : '';
	objForm.steptojump.value = stepToJump;
	objForm.submit();
}

var ixForms_listOpened = null;

function ixForms_enableList(formName,listID,isReloading){
	var selectedID = document.getElementById(formName).formelist.value;
	document.getElementById(formName).formelist.value = listID;
	if(isReloading){
		document.getElementById(formName).submit();
		return;
	}
	var objsA = document.getElementById('formlists_'+formName).getElementsByTagName('A');
	var nObjsA = objsA.length;
	for (i = 0; i < nObjsA; i++){
		objsA[i].className = '';
	}
	ixForms_listOpened = document.getElementById('formlist_'+formName+'_'+selectedID);
	ixForms_listOpened.style.visibility = 'hidden';
	ixForms_listOpened.style.display = 'none';
	document.getElementById('formlistbutton'+formName+'_'+listID).className = 'enabled';
	var objList = document.getElementById('formlist_'+formName+'_'+listID);
	objList.style.visibility = 'visible';
	objList.style.display = 'block';
	ixForms_listOpened = objList;
}

function str_replace(haystack, needle, replacement) {
	var temp = haystack.split(needle);
	return temp.join(replacement);
}

function validHTMLID(id){
	return str_replace(str_replace(id,'[','.'),']','.');
}

function setLiveCheckError(input,text){
	document.getElementById(validHTMLID(input.id)+'_tip').innerHTML=text;
	return true;
}

function isInDefinedChars(txt,chars){var is=true;for(var i=0;i<txt.length;i++){if(chars.indexOf(txt.charAt(i))==-1){is=false;break;}}return is;}
function isNumber(txt){is=true;if(txt.charAt(0)=='-'){var ntxt=txt.substring(1,txt.length);if(!isInNumChars(txt)){is=false;}}else if(txt.charAt(0)=='+'){var ntxt=txt.substring(1,txt.length);if(!isInNumChars(txt)){is=false;}}else if(!isInNumChars(txt)){is=false;}return is;}
function isInNumChars(txt){return isInDefinedChars(txt,'0123456789');}
function isInBasicChars(txt){return isInDefinedChars(txt,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_');}
function isFloat(txt){if(txt==''){txt = '0';}var re1=/^[\+-]?\d+[.,]?\d*$/;return re1.test(txt);}
function isDate(den,mes,rok){if((!isInNumChars(den))||(!isInNumChars(mes))||(!isInNumChars(rok)))return false;var isValid=false;var d=parseInt(den/1);var m=parseInt(mes/1);var r=parseInt(rok/1);isValid=true;if(r<1970){isValid=false;}else if(r>2037){isValid=false;}else if((m==1)&&((d<1)||(d>31))){isValid=false;}else if((m==2)&&((d<1)||(d>29)||((!(((r%4==0)&&(r%100!=0))||(r%400==0)))&&(d>28)))){isValid=false;}else if((m==3)&&((d<1)||(d>31))){isValid=false;}else if((m==4)&&((d<1)||(d>30))){isValid=false;}else if((m==5)&&((d<1)||(d>31))){isValid=false;}else if((m==6)&&((d<1)||(d>30))){isValid=false;}else if((m==7)&&((d<1)||(d>31))){isValid=false;}else if((m==8)&&((d<1)||(d>31))){isValid=false;}else if((m==9)&&((d<1)||(d>30))){isValid=false;}else if((m==10)&&((d<1)||(d>31))){isValid=false;}else if((m==11)&&((d<1)||(d>30))){isValid=false;}else if((m==12)&&((d<1)||(d>31))){isValid=false;}else if((m<1)||(m>12)){isValid=false;}else if((d<1)||(d>31)){isValid=false;}return isValid;}
function isTime(hod,min){return((hod>=0)&&(hod<=23)&&(min>=0)&&(min<=59));}

function testFile(URL,varName){var tester=new Image();tester.onload=fileExists;tester.onerror=fileNotExists;tester.name=varName;tester.src=URL;}
function fileExists(){
	var ob=document.getElementById(validHTMLID(this.name)+'_tip');
	if(ob) ob.innerHTML='&nbsp;';
	var obj = document.getElementById(validHTMLID(this.name));
	obj.className=obj.className.replace(/error/g,'');
	var imgurl=document.getElementById(validHTMLID(this.name)).value;
	var konc=imgurl.substring(imgurl.length-4,imgurl.length).toLowerCase();
	var cropObj=document.getElementById('crop_'+validHTMLID(this.name));
	if((konc=='.gif')||(konc=='.jpg')||(konc=='.png')){if(cropObj){cropObj.style.display='inline';}}else{if(cropObj){cropObj.style.display='none';}}
}
function fileNotExists(){
	var ob=document.getElementById(validHTMLID(this.name)+'_tip');
	if(ob) ob.innerHTML='vybraný soubor neexistuje';
	document.getElementById(validHTMLID(this.name)).className+=' error';
	var cropObj=document.getElementById('crop_'+validHTMLID(this.name));
	if(cropObj) cropObj.style.display='none';
}

function livecheck(inp,ar,varName,type){
	varName = validHTMLID(varName);
	var isErr=false;
	for(var i=0;i<ar.length;i++){
		if(ar[i]=='notnull'){
			if(inp.value==''){isErr=setLiveCheckError(inp,'');}
		}
		else if(ar[i]=='number'){
			if(!isNumber(inp.value)){isErr=setLiveCheckError(inp,'musí být číslo');}
		}
		else if(ar[i]=='innumchars'){
			if(!isInNumChars(inp.value)){isErr=setLiveCheckError(inp,'musí obsahovat číslice');}
		}
		else if(ar[i]=='inbasicchars'){
			if(!isInBasicChars(inp.value)){isErr=setLiveCheckError(inp,'obsahuje nepovolené znaky');}
		}
		else if(ar[i]=='float'){
			if(!isFloat(inp.value)){isErr=setLiveCheckError(inp,'musí být číslo');}
		}
		else if(ar[i].substring(0,8)=='filetype'){
			if((inp.value!='')&&(inp.value!='http://')){var exts = ar[i].substring(9,ar[i].length);var pole = exts.split(':');var is=false;for(var q=0;q<pole.length;q++){var del=pole[q].length;if(inp.value.substring(inp.value.length-del-1,inp.value.length).toLowerCase()=='.'+pole[q].toLowerCase()){is=true;break;}}if(!is){isErr=setLiveCheckError(inp,'musí být typu '+exts.replace(/[:]/g,', '));}}
		}
		else if(ar[i].substring(0,9)=='maxlength'){
			var num = parseInt(ar[i].substring(10,ar[i].length));if(inp.value.length>num){isErr=setLiveCheckError(inp,'text je příliš dlouhý');}
		}
		else if(ar[i]=='date'){
			if(!isDate(document.getElementById('inp_'+varName+'_d').value,document.getElementById('inp_'+varName+'_m').value,document.getElementById('inp_'+varName+'_y').value)){isErr=true;document.getElementById('inp_'+varName+'_tip').innerHTML='musí být ve formátu dd.mm.yyyy od 1970 do 2037';}
		}
		else if(ar[i]=='time'){
			if(!isTime(document.getElementById('inp_'+varName+'_h').value,document.getElementById('inp_'+varName+'_i').value)){isErr=true;document.getElementById('inp_'+varName+'_tip').innerHTML='musí být ve formátu hh:mm';}
		}
		else if(ar[i]=='datetime'){
			if((!isDate(document.getElementById('inp_'+varName+'_d').value,document.getElementById('inp_'+varName+'_m').value,document.getElementById('inp_'+varName+'_y').value))||(!isTime(document.getElementById('inp_'+varName+'_h').value,document.getElementById('inp_'+varName+'_i').value))){isErr=true;document.getElementById('inp_'+varName+'_tip').innerHTML='musí být ve formátu dd.mm.yyyy hh:ii od 1970 do 2037';}
		}
	}
	var fileTested=false;
	if((type==14)&&(!isErr)){
		fileTested=true;
		var val=document.getElementById('inp_'+varName).value;
		if((val.substring(0,7) != 'http://')&&(val != '')){testFile(ixfw_rootDir+'/libs/iforms/filetest.php?tested=..'+escape(storageDir)+val,'inp_'+varName);}
		else{document.getElementById('inp_'+varName+'_tip').innerHTML='';document.getElementById('inp_'+varName).className=document.getElementById('inp_'+varName).className.replace(/error/g,'');}
	}
	if(isErr){
		if(inp.className.indexOf('error') == -1){
			if(type==2){document.getElementById('inp_'+varName+'_d').className+= ' error';document.getElementById('inp_'+varName+'_m').className+= ' error';document.getElementById('inp_'+varName+'_y').className+= ' error';}
			else if(type==3){document.getElementById('inp_'+varName+'_h').className+= ' error';document.getElementById('inp_'+varName+'_i').className+= ' error';}
			else if(type==4){document.getElementById('inp_'+varName+'_d').className+= ' error';document.getElementById('inp_'+varName+'_m').className+= ' error';document.getElementById('inp_'+varName+'_y').className+= ' error';document.getElementById('inp_'+varName+'_h').className+= ' error';document.getElementById('inp_'+varName+'_i').className+= ' error';}
			else{inp.className+=' error';}
		}
	}
	else if(!fileTested){
		if(type==2){document.getElementById('inp_'+varName+'_tip').innerHTML='';document.getElementById('inp_'+varName+'_d').className=document.getElementById('inp_'+varName+'_d').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_m').className=document.getElementById('inp_'+varName+'_m').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_y').className=document.getElementById('inp_'+varName+'_y').className.replace(/error/g,'');}
		else if(type==3){document.getElementById('inp_'+varName+'_tip').innerHTML='';document.getElementById('inp_'+varName+'_h').className=document.getElementById('inp_'+varName+'_h').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_i').className=document.getElementById('inp_'+varName+'_i').className.replace(/error/g,'');}
		else if(type==4){document.getElementById('inp_'+varName+'_tip').innerHTML='';document.getElementById('inp_'+varName+'_d').className=document.getElementById('inp_'+varName+'_d').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_m').className=document.getElementById('inp_'+varName+'_m').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_y').className=document.getElementById('inp_'+varName+'_y').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_h').className=document.getElementById('inp_'+varName+'_h').className.replace(/error/g,'');document.getElementById('inp_'+varName+'_i').className=document.getElementById('inp_'+varName+'_i').className.replace(/error/g,'');}
		else{document.getElementById(inp.id+'_tip').innerHTML='';inp.className=inp.className.replace(/error/g,'');}
	}
}

function ixforms_selectFile(rootDir,inpname,livecheck){
	create_popup('Otevřít soubor',710,450,'yes',rootDir+'/libs/iforms/selectfile/selectfile.php?inpname='+inpname+'&livecheck='+livecheck,null,null);
}

function ixforms_func_setFileInput(filesrc,inpname){
	document.getElementById('inp_'+inpname).value=filesrc;
}

function ixforms_selectFilter(rootDir,inpname,sql,columns){
	create_popup('Vyberte',710,450,'yes',rootDir+'/libs/iforms/selectfilter/selectfilter.php?inpname='+inpname+'&sql='+sql+'&cols='+columns,null,null);
}

function ixforms_func_setFilter(filesrc,inpname){
	document.getElementById('inp_'+inpname).value=filesrc;
}
function ixforms_cropImage(rootDir,inpname,imgw,imgh){
	inpname = validHTMLID(inpname);
	create_popup('Upravit velikost obrázku',420,505,'no',rootDir+'/libs/iforms/cropimage/cropimage.php?filepath='+document.getElementById('inp_'+inpname).value+'&inpname='+inpname+'&iW='+imgw+'&iH='+imgh,null,null);
}

function ixforms_selectColor(rootDir,inpname){
	inpname = validHTMLID(inpname);
	create_popup('Vyberte barvu',380,405,'no',rootDir+'/libs/iforms/selectcolor/selectcolor.php?val=%23'+document.getElementById('inp_'+inpname).value+'&inpname='+inpname,null,null);
}
function ixforms_func_setColorInput(color,inpname){
	inpname = validHTMLID(inpname);
	document.getElementById('img_'+inpname).style.backgroundColor=color;document.getElementById('inp_'+inpname).value=color.substring(1,color.length);
}

function getLeftPos(inputObj){var returnValue=inputObj.offsetLeft;while((inputObj=inputObj.offsetParent)!=null){if(inputObj.tagName!='HTML'){returnValue+=inputObj.offsetLeft;if(document.all)returnValue+=inputObj.clientLeft;}}return returnValue;}
function getTopPos(inputObj){var returnValue=inputObj.offsetTop;while((inputObj=inputObj.offsetParent)!=null){if(inputObj.tagName!='HTML'){returnValue+=inputObj.offsetTop;if(document.all)returnValue+=inputObj.clientTop;}}return returnValue;}
var tooltipShown=false;
function clickOnTooltipInput(){
tooltipShown=!tooltipShown;
if(tooltipShown){var floattip=document.getElementById('floattip');floattip.style.left=''+(getLeftPos(this)+this.offsetWidth)+'px';floattip.style.top=''+getTopPos(this)+'px';floattip.style.visibility='visible';floattip.style.display='block';document.getElementById('floattipinner').innerHTML = this.getAttribute('tooltip');}
else hideTooltipInput();
}
function hideTooltipInput(){var floattip=document.getElementById('floattip');floattip.style.visibility='hidden';floattip.style.display='none';}

var ixform_scrolltop = 0;
function initInputTooltips(){
	var table = document.createElement("table");
	table.setAttribute('id', 'floattip');
	table.setAttribute('cellspacing', '0');
	table.setAttribute('cellpadding', '0');
	table.setAttribute('onclick', 'hideTooltipInput()');
	table.setAttribute('style', 'visibility:hidden;display:none;');
	table.innerHTML = '<tr><td width="16" rowspan="3" valign="top" class="precorner">&nbsp;</td><td width="12" height="12" class="corner_tl">&nbsp;</td><td class="bg corner_t">&nbsp;</td><td width="12" class="corner_tr">&nbsp;</td></tr>'
					+ '<tr><td width="12" height="12" class="bg">&nbsp;</td><td class="bg" id="floattipinner">&nbsp;</td><td width="12" class="bg">&nbsp;</td></tr>'
					+ '<tr><td width="12" height="12" class="corner_bl">&nbsp;</td><td class="bg corner_b">&nbsp;</td><td width="12" class="corner_br">&nbsp;</td></tr>';
	document.body.appendChild(table);
	var objs = document.getElementsByTagName('INPUT');for(var i=0;i<objs.length;i++){if(objs[i].getAttribute('tooltip')){objs[i].onfocus=clickOnTooltipInput;objs[i].onblur=clickOnTooltipInput;}}var objs = document.getElementsByTagName('TEXTAREA');for(var i=0;i<objs.length;i++){if(objs[i].getAttribute('tooltip')){objs[i].onfocus=clickOnTooltipInput;objs[i].onblur=clickOnTooltipInput;}}
	if(ixform_scrolltop > 0) window.scrollTo(0,ixform_scrolltop);
}

window.addEventListener('load', initInputTooltips, false);

function getRadioValue(radioObj){
	if(!radioObj) return null;
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked) return radioObj;
		else return null;
	for(var i = 0; i < radioLength; i++)
		if(radioObj[i].checked) return radioObj[i];
	return null;
}


function ixforms_countForm(countScript){
	eval(countScript);
}

function ixcget(name){
	return document.getElementById('ixcalc_'+name);
}

function ixiget(name){
	return document.getElementById('inp_'+name);
}

function ixrget(formname,radioname){
	return getRadioValue(document.forms[formname].elements[radioname]);
}

function ixpf(number){
	var a = parseFloat(number.replace(',','.'));
	if(isNaN(a)) return 0;
	return a;
}

function ixr1(number){
	return Math.round(number);
}

function ixr2(number){
	return Math.floor(number+0.9999);
}

function ixr3(number){
	return Math.floor(number);
}

function ixr4(number){
	return Math.round(number*10)/10;
}

function ixr5(number){
	return Math.round(number*100)/100;
}

function ixr6(number){
	return Math.round(number*1000)/1000;
}

function ixr7(number){
	return Math.round(number);
}

function ixform_widgetAction(formname,nameid,action,param){
	document.forms[formname].elements[nameid+"_act"].value = action;
	document.forms[formname].elements[nameid+"_param1"].value = param;
	document.forms[formname].scrolltop.value = getScrollY();
	document.forms[formname].submit();
}

function getScrollY(){
	if(typeof(window.pageYOffset) == 'number') return window.pageYOffset;
	else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) return document.body.scrollTop;
	else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) return document.documentElement.scrollTop;
	return 0;
}