// ENGLISH VERSION - TRANSLATED BY KOBLIHA
//teto fci se predava nazev formu, ktery se ma kontrolovat
function formlib_check(form_name){
	//projdem vsechny elementy
	for(var i=0;i<document.forms[form_name].elements.length;i++) {
		if(name==undefined || document.forms[form_name].elements[i].name!=name){
			var name = document.forms[form_name].elements[i].name;
			if(name!=''){ //je definovano jmeno
				if((document.forms[form_name].elements[i].getAttribute('required')=="1")) { //je polozka vyzadovana
					switch(document.forms[form_name].elements[i].type){ //overime podle ruznych typu overovani
					case 'text':
					case 'textarea':
					case 'select-one':
					case 'file':
						if(document.forms[form_name].elements[i].value==''){ //neobsahuje hodnotu
							formlib_alert(form_name, name, 'The field {title} is required.', true);
							return false;
						}
						break;
					case 'checkbox':
						if(document.forms[form_name][name].length==undefined){ //jedna se o samostatny checkbox (pouziti samotneho checkboxu s required je hodne zcestne)
							if(document.forms[form_name].elements[i].checked==false){ //neni vybran
								formlib_alert(form_name, name, 'The field {title} is required.', false);
								return false;
							}
						}
						else { //jedna se o multiple checkbox
							var checked = false;
							for(var j=0;j<document.forms[form_name][name].length;j++){ //projdem vsechny checkboxy a zjistime, zda je nejaky vybran
								if(document.forms[form_name][name][j].checked==true)checked=true; //je vybran
							}
							if(checked==false){ //zadny vybran nebyl
								formlib_alert(form_name, name.replace('\[\]',''), 'The field {title} is required.', false);
								return false;
							}
						}
						break;
					}
				}
				//kontrola formatu dat
				if(document.forms[form_name].elements[i].value!=''){
					switch(document.forms[form_name].elements[i].getAttribute('validation')){
					case 'number': //overeni cisla
						var regexp = /^[0-9\.,\-]+$/; //regexp pro cislo
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} has to be a number.', true);
							return false;
						}
						break;
					case 'email': //overeni emailu
						var regexp = /^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/; //regexp pro email
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid e-mail.', true);
							return false;
						}
						break;
					case 'link': //overeni linku
						var regexp = /^(http|ftp|irc|mms):\/\/[a-z0-9]+([-_\.]?[a-z0-9])*(\.[a-z]{2,4})?(\/{1}[-_~&=\?\.a-z0-9]*)*$/i;
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid link.', true);
							return false;
						}
						break;
					case 'date_cz': //overeni ceskeho formatu datumu
						var regexp = /^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}$/;
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid date. The format is dd.mm.yyyy.', true);
							return false;
						}
						break;
					case 'date_en':	//overeni ISO formatu datumu
						var regexp = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid date. The format is yyyy-mm-dd.', true);
							return false;
						}
						break;
					case 'time': //overeni formatu casu
						var regexp = /^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/;
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid date. The format is hh:mm:ss.', true);
							return false;
						}
						break;
					case 'datetime_cz':
						var regexp = /^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/;
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid date. The format is dd.mm.yyyy hh:mm:ss.', true);
							return false;
						}
						break;
					case 'datetime_en':
						var regexp = /^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/;
						if(!regexp.test(document.forms[form_name].elements[i].value)){
							formlib_alert(form_name, name, '{title} doesn\'t contain valid date. The format is je yyyy-mm-dd hh:mm:ss.', true);
							return false;
						}
						break;
					}
				}
			}
		}
	}
}

function formlib_alert(form_name, item, msg, focus){ //zobrazeni chybove hlasky
	var title = document.getElementById(form_name+'-'+item+'-caption'); //ziskani polozky s titulkem
	if(title.innerText==undefined) title = title.textContent;
	else title = title.innerText;
	alert(msg.replace('{title}', title.replace(':','')));
	if(focus==true) document.forms[form_name][item].focus();
}

function formlib_dateselect(form_name, item){ //okno pro vyber datumu
	var v = window.open('popup/calendar.phtml?form_name='+form_name+'&item='+item+'&date='+document.forms[form_name][item].value,'select_date','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=0,width=130,height=160,left=100,top=30');
	v.focus();	
}

function formlib_picselect(form_name, item, format){ //okno pro vyber obrazku
	var v = window.open('popup/picture.phtml?form_name='+form_name+'&item='+item+'&format='+format,'select_picture','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=0,width=640,height=480,left=10,top=10'); 
}

function formlib_galselect(form_name, item, format){
	var v = window.open('popup/picture.phtml?form_name='+form_name+'&item='+item+'&format='+format+'&type=gallery', 'select_gallery','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=0,width=640,height=480,left=10,top=10'); 
}

function formlib_gallery_remove(obj, form_name, item, id){
	if(confirm('Opravdu smazat?')){
		obj.outerHTML='';
		document.forms[form_name][item].value=document.forms[form_name][item].value.replace('&'+id, '');
	}
}

function formlib_picture_edit(format, form_name, item, id){
	//var v = window.open('popup/picture.phtml?form_name='+form_name+'&item='+item+'&format='+format+'&dir='+id,'select_picture','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=0,width=640,height=480,left=10,top=10');  
}