/*
*	author:	    MPi
*	version:	1.03
*/
var ELEMENT_NODE = 1;
var USER_FORM = [["rlogin",/^[a-zA-Z0-9,.-]{5,50}$/,"Přihlašovací jméno musí mít 5 až 50 znaků, povoleny jsou všechny alfanumerické znaky (bez diakritiky), včetně čárky a tečky."],
				 ["rpass1",/^[a-zA-Z0-9,.-]{5,50}$/,"Heslo musí mít 5 až 50 znaků, povoleny jsou všechny alfanumerické znaky (bez diakritiky), včetně čárky a tečky."],
				 ["rpass2",/^[a-zA-Z0-9,.-]{5,50}$/,"Heslo znovu musí mít 5 až 50 znaků, povoleny jsou všechny alfanumerické znaky (bez diakritiky), včetně čárky a tečky."],
				 ["remail",/^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,4}$/,"Email musí mít následující formát:  cokoliv@nekde.cz"],
				 ["rjmeno",/^.{2,100}$/,"Jméno musí mít 2 až 100 znaků, povoleny jsou všechny alfanumerické znaky, včetně čárky a tečky."],
				 ["rprijm",/^.{2,100}$/,"Příjmení musí mít 2 až 100 znaků, povoleny jsou všechny alfanumerické znaky, včetně čárky a tečky."],
				 ["rulice",/^.{0,150}$/,"Ulice může mít 0 až 150 znaků."],
				 ["rmesto",/^.{0,150}$/,"Město může mít 0 až 150 znaků."],
				 ["rpsc",/^([0-9]{5})?$/,"PSČ musí mít formát 99999."],
				 ["rtelefon",/^([0-9]{9})?$/,"Telefon musí mít formát 123456789."],
				 ["rfirma",/^.{0,150}$/,"Firma může mít 0 až 150 znaků."],
				 ["ric",/^([0-9]{3,9})?$/,"IČ musí mít formát 12345678."],
				 ["rdic",/^([A-Z]{2}[0-9]{8,10})?$/,"DIČ musí mít formát CZ1234567890."],
				 ["code",/^[a-zA-Z0-9]{2,15}$/,"Kontrolní kód musíte opsat."]];
				 			 
var LOGIN_FORM = [["clogin",/^[a-zA-Z0-9,.-]{5,50}$/,"Špatné přihlašovací jméno."],
				 ["cheslo",/^[a-zA-Z0-9,.-]{5,50}$/,"Špatné heslo."]];

var TIC_FORM_O = [["ticket_subject",/^[^.]+(\.[^.]+)*$/,"Musíte vyplnit předmět."],
				 ["ticket_oid",/^[0-9]{1,5}$/,"Špatné ID objednávky."],
				 ["code",/^[a-zA-Z0-9]{2,15}$/,"Kontrolní kód musíte opsat."]];
var TIC_FORM_P = [["ticket_subject",/^[^.]+(\.[^.]+)*$/,"Musíte vyplnit předmět."],
				 ["ticket_opid",/^[0-9]{1,5}$/,"Špatný PIC kód produktu."],
				 ["code",/^[a-zA-Z0-9]{2,15}$/,"Kontrolní kód musíte opsat."]];
var TIC_FORM_S = [["ticket_subject",/^[^.]+(\.[^.]+)*$/,"Musíte vyplnit předmět."],
				 ["code",/^[a-zA-Z0-9]{2,15}$/,"Kontrolní kód musíte opsat."]];

var LOPA_FORM = [["sp_login",/^[a-zA-Z0-9,.-]{5,50}$/,"Špatné přihlašovací jméno."],
				 ["code",/^[a-zA-Z0-9]{2,15}$/,"Kontrolní kód musíte opsat."]];

var EVENT_RESIZE_CONSTANT = 5;
var EVENT_LOOP_DELAY = 50;
var EVENT_MOVE_DELAY = 3000;

//alert(window.location);
function validateLoginForm(){
	/*
	*	validace login_form
	*/
	var r = true;
	var rs = validate_regexp(LOGIN_FORM);
	for(var i=0; i<rs.length; i++){
		var e = null;
		if((e = document.getElementById(LOGIN_FORM[rs[i][0]][0])) === null){ 
			break;
		}
		e.className = "";
		e.title = "";
		e.style.backgroundColor = "";
		if(rs[i][1] === false) {
			r = emphasizeBox(LOGIN_FORM[i][0],LOGIN_FORM[i][2]);
		}
	}
	return r;
}
function validateLostPasswordForm(){
	/*
	*	validace lost_password_form
	*/
	var r = true;
	var rs = validate_regexp(LOPA_FORM);
	for(var i=0; i<rs.length; i++){
		var e = null;
		if((e = document.getElementById(LOPA_FORM[rs[i][0]][0])) === null){ 
			break;
		}
		e.className = "";
		e.title = "";
		e.style.backgroundColor = "";
		if(rs[i][1] === false) {
			r = emphasizeBox(LOPA_FORM[i][0],LOPA_FORM[i][2]);
		}
	}
	return r;
}
function validateUserForm(){
	/*
	*	validace user_form
	*/
	var r = true;
	var rs = validate_regexp(USER_FORM);
	for(var i=0; i<rs.length; i++){
		var e = null;
		if((e = document.getElementById(USER_FORM[rs[i][0]][0])) === null){ 
			break;
		}
		e.className = "";
		e.title = "";
		if(rs[i][1] === false) {
			r = emphasizeBox(USER_FORM[i][0],USER_FORM[i][2]);
		}
	}
	var ln, p1, p2 = null;
	if((ln = document.getElementById(USER_FORM[0][0])) === null){ r = false;}
	if((p1 = document.getElementById(USER_FORM[1][0])) === null){ r = false;}
	if((p2 = document.getElementById(USER_FORM[2][0])) === null){ r = false;}
	if(p1.value !== p2.value && rs[1][1]===true && rs[2][1]===true){
		r = emphasizeBox(USER_FORM[1][0],"Hesla se musí shodovat.");
		r = emphasizeBox(USER_FORM[2][0],"Hesla se musí shodovat.");
	}
	if(ln.value === p1.value && rs[0][1]===true && rs[1][1]===true && rs[2][1]===true){
		r = emphasizeBox(USER_FORM[0][0],"Login a heslo nesmí být stejné.");
		r = emphasizeBox(USER_FORM[1][0],"Login a heslo nesmí být stejné.");
		r = emphasizeBox(USER_FORM[2][0],"Login a heslo nesmí být stejné.");
	}
	return r;
}
function validate_regexp(elements){ 
	/*
	*	provede otestovani podle regexpu ze zdrojoveho pole (USER_FORM,...)
	*	vraci [[id ze zdrojoveho pole, hodnota testu true/false],...]
	*/
	var a = new Array();
	for(var i=0; i<elements.length; i++){
		var e = null;
		var m = false;
		if((e = document.getElementById(elements[i][0])) !== null){ 
			m = elements[i][1].test(e.value);
		}
		a.push([i,m]);
	}
	return a;
}
function emphasizeBox(element,message){
	/*
	*	zvyrazni spatne vyplnene pole
	*	element = string element_id
	*	message = text zpravy, zobrazi do title
	*/
	var e;
	if((e = document.getElementById(element)) === null){ return false;}
	e.className = "uf_selected";
	e.title = message;
	return false;
}
function printPage(){
	/*
	*	tisk stranky
	*/
	window.print();
}
function changePhotoListView(event){
	/*
	*	rozbali nebo sbali fotku, na kterou se kliklo
	*/
	var parent;
	if(event.target) {
		parent = event.target.parentNode;
	}
	else{
		parent = event.srcElement.parentNode;
	}
	if(parent.nodeName == "TR" && parent.nodeType == ELEMENT_NODE && parent.className=="file_elm"){
		var t = parent;
		do{
			if((t = t.nextSibling) !== null && t.className != "file_elm"){
				if(t.nodeName=="TR" && t.nodeType == ELEMENT_NODE && t.className=="") {
					if(t.style.display == "table-row" || t.style.display == "") {
						t.style.display = "none";
					}
					else if(t.style.display == "none") {
						t.style.display = "table-row";
					}
				}
			}
			else t = null;
		}
		while(t);
	}
}
function changePhotoListAll(display){
	/*
	*	zmeni viditelnost vsech TR bez tridy
	*/
	var t;
	if((t = document.getElementById("file_tbl")) !== null){
		var tb = findNode(t,"TBODY",1);
		if(tb === undefined || tb === null) return;
		var c = tb.childNodes;
		for(var i=0; i<c.length; i++){
			if(c[i].nodeName == "TR" && c[i].nodeType == ELEMENT_NODE && c[i].className==""){
				c[i].style.display=display;
			}
		}
	}
}
function validateAddTicket(){
	/*
	*	validace vytvyreni tiketu
	*/
	var t;
	var r = true;
	if(document.getElementById("ticket_oid") !== null) {t = TIC_FORM_O;}
	else if(document.getElementById("ticket_opid") !== null) {t = TIC_FORM_P;}
	else {t = TIC_FORM_S;}
	var rs = validate_regexp(t);
	for(var i=0; i<rs.length; i++){
		var e = null;
		if((e = document.getElementById(t[rs[i][0]][0])) === null){ 
			break;
		}
		e.className = "";
		e.title = "";
		e.style.backgroundColor = "";
		if(rs[i][1] === false) {
			r = emphasizeBox(t[i][0],t[i][2]);
		}
	}
	
	
	return r;
}
function addListener(where, fce){
	var a;
	if((a = document.getElementById(where)) != null) {
		if(a.addEventListener) {					
			a.addEventListener("click",fce,false);		
		} 
		else if(a.attachEvent) {
			a.attachEvent("onclick", fce);
		}
	}
}

function findNode(element,name,position){
	var k = 0;
	for(var i=0; i<element.childNodes.length;i++){
		if(element.childNodes[i].nodeType==ELEMENT_NODE && element.childNodes[i].nodeName==name){ 
			k++;
			if(k==position){
				return element.childNodes[i];
			}
		}
	}
}
function aTarget(e){
	/*
	*	otevre odkaz v novem okne
	*/
	window.open(e.href);
	return false;
}
function hideEvent(){
	var e;
	if((e = document.getElementById("report_box_move")) === null) return;
	var height = parseInt(e.parentNode.clientHeight);
	var resize = 0;
	if(height < EVENT_RESIZE_CONSTANT) resize = height;
	else resize = EVENT_RESIZE_CONSTANT;
	e.parentNode.style.height = (height-resize)+"px";
	var top = (!parseInt(e.style.top)) ? 0 : parseInt(e.style.top);
	e.style.top = top-resize+"px";
	if(parseInt(e.parentNode.style.height) > 0) var t = setTimeout("hideEvent()",EVENT_LOOP_DELAY);
	else {
		if((r = document.getElementById("header_event")) === null) return;
		else r.style.display = "block";
		addListener("header_event",showEvent);
		return;
	}
}
function showEvent(){
	var e;
	if((e = document.getElementById("report_box_move")) === null) return;
	var height = parseInt(e.parentNode.clientHeight);
	var resize = 0;
	var t = height % EVENT_RESIZE_CONSTANT;
	if(t > 0) resize = t;
	else resize = EVENT_RESIZE_CONSTANT;
	e.parentNode.style.height = (height+resize)+"px";
	var top = (!parseInt(e.style.top)) ? 0 : parseInt(e.style.top);
	e.style.top = top+resize+"px";
	if(parseInt(e.style.top) < 0) var t = setTimeout("showEvent()",EVENT_LOOP_DELAY);
	else {
		if((r = document.getElementById("header_event")) === null) return;
		else r.style.display = "none";
		var ts = setTimeout("hideEvent()",EVENT_MOVE_DELAY);
		//addListener("header_event",hideEvent);
		return;
	}
}
function validateCountBox(){
	var gmin, gmax, e;
	if((gmin = document.getElementById("min_value")) === undefined || (gmax = document.getElementById("max_value")) === undefined || (e = document.getElementById("sopo_selected")) === undefined) return false;
	var gmin = parseInt(gmin.value);
	var gmax = parseInt(gmax.value);
	if(/^\d{1,3}$/.test(e.value) && e.value!="0"){
		if(parseInt(e.value)<=gmax && parseInt(e.value)>=gmin){
			e.style.backgroundColor="#00FF33";
			e.title = "";
			return true;
		}
		else{
			e.style.backgroundColor="#FF3333";
			e.title = "Musíte zadat číslo v platném rozsahu, který je uveden u produktu.";
			return false;
		}
	}
	else{
		e.style.backgroundColor="#FF3333";
		e.title = "Musíte zadat číslo v platném rozsahu, který je uveden u produktu.";
		return false;
	}
}
function addListenerUni(where, actionFF , fce){
	var a;
	if((a = document.getElementById(where)) != null) {
		if(a.addEventListener) {					
			a.addEventListener(actionFF,fce,false);		
		} 
		else if(a.attachEvent) {
			a.attachEvent("on"+actionFF, fce);
		}
	}
}
function appendSortingListener(){
	addListenerUni("sel_sorting", "change", function(){
		var o = document.getElementById("sel_sorting").value;
		if(o!="") window.location = document.getElementById("sort_url").value+"&o="+o;
	});
}


