/*
Externe musi byt nadefinovano:

BASE_PATH
*/

var BAR_OPEN_ACTIVE_IMG = BASE_PATH+'images/tab/down_active.gif';
var BAR_CLOSE_ACTIVE_IMG = BASE_PATH+'images/tab/up_active.gif';
var BAR_OPEN_PASSIVE_IMG = BASE_PATH+'images/tab/down_passive.gif';
var BAR_CLOSE_PASSIVE_IMG = BASE_PATH+'images/tab/up_passive.gif';

var BAR_RIGHT_ACTIVE_IMG = BASE_PATH+'images/tab/right_active.gif';
var BAR_RIGHT_PASSIVE_IMG = BASE_PATH+'images/tab/right_passive.gif';


function checkLength(e, idInput, idMsg, maxLength)
{
	if (!e) var e = window.event;
	if (e.stopPropagation) e.stopPropagation();
	e.cancelBubble = true;
	
	var ta = idInput;
	var mc = document.getElementById(idMsg);
	var l = maxLength - ta.value.length;
	
	mc.innerHTML = l;
	
	if (l >= 0) {
		mc.style.color = "#000000";
	} else {
		ta.value = ta.value.substring(0, maxLength);
		mc.style.color = "#FF0000";
	}
}

function toggleBar(name)
{
	if (name instanceof Array) {
		for (var i=0; i<name.length; i++) {
			toggleBar(name[i]);
		}
		return false;
	}
	
	var objOpened = getObj(name+"_Opened");
	var objClosed = getObj(name+"_Closed");
	var objState = getObj(name+"_State");
	
	if (!objOpened || objOpened.animating) {
		return false;
	}
	
	if (objOpened.style.display == 'none') {
		var animProp = new Object();
		objOpened.style.position = 'relative';
		objOpened.style.left = '-10000px';
		objOpened.style.display = 'block';
		animProp.height = objOpened.offsetHeight;
		objOpened.style.display = 'none';
		objOpened.style.left = '0px';
		objOpened.style.position = 'static';
		
		if (objClosed) {
			objOpened.style.height = objClosed.offsetHeight+'px';
			objOpened.style.display = 'block';
			objClosed.style.display = 'none';
		} else {
			objOpened.style.height = 0;
		}
		
		objOpened.animating = true;
		$('#'+name+'_Opened').animate(animProp, 'normal', function () {
			if (objState) {
				if (objState.src.indexOf(BAR_OPEN_ACTIVE_IMG) != -1) {
					objState.src = BAR_CLOSE_ACTIVE_IMG;
				} else {
					objState.src = BAR_CLOSE_PASSIVE_IMG;
				}
			}
			setCookie("toggle["+name+"]", "1", null, BASE_LOC_PATH);
			objOpened.animating = false;
		});
	} else {
		var animProp = new Object();
		animProp.height = 0;
		if (objClosed) {
			objClosed.style.position = 'relative';
			objClosed.style.left = '-10000px';
			objClosed.style.display = 'block';
			animProp.height = objClosed.offsetHeight;
			objClosed.style.display = 'none';
			objClosed.style.left = '0px';
			objClosed.style.position = 'static';
		}
		
		var openedHeight = objOpened.offsetHeight;
		objOpened.animating = true;
		$('#'+name+'_Opened').animate(animProp, 'normal', function () {
			this.style.display = 'none';
			this.style.height = openedHeight+'px';
			if (objClosed) {
				objClosed.style.display = 'block';
			}
			if (objState) {
				if (objState.src.indexOf(BAR_CLOSE_ACTIVE_IMG) != -1) {
					objState.src = BAR_OPEN_ACTIVE_IMG;
				} else {
					objState.src = BAR_OPEN_PASSIVE_IMG;
				}
			}
			setCookie("toggle["+name+"]", "0", null, BASE_LOC_PATH);
			objOpened.animating = false;
		});
	}
	return false;
}

function initBar(name, type, initState)
{
	var objState = getObj(name+"_State");
	var cookie = getCookie("toggle["+name+"]");
	var open = false;
	
	if (type == 0) { // Otevreny panel
		if (cookie == null) {
			open = (initState == undefined || initState) ? true : false;
		} else { // cookie = 1: otevrit hlavni
			open = parseInt(cookie) ? true : false;
		}
	
		if (open) { // Otevrit
			getObj(name+"_Opened").style.display="block";
			
			if (objState) {
				objState.src = BAR_CLOSE_PASSIVE_IMG;
			}
		} else { // Zavrit
			getObj(name+"_Opened").style.display="none";
			
			if (objState) {
				objState.src = BAR_OPEN_PASSIVE_IMG;
			}
		}
	} else { // Zavreny panel
		if (cookie == null) {
			open = (initState != undefined && initState) ? true : false;
		} else { // cookie = 1: zavrit hlavni
			open = parseInt(cookie) ? false : true;
		}
	
		if (open) { // Zavrit (hlavni je otevreny)
			getObj(name+"_Closed").style.display="block";
			
			if (objState) {
				objState.src = BAR_OPEN_PASSIVE_IMG;
			}
		} else { // Otevrit (hlavni je zavreny)
			getObj(name+"_Closed").style.display="none";
			
			if (objState) {
				objState.src = BAR_CLOSE_PASSIVE_IMG;
			}
		}
	}
}

function changeControlClass(element)
{
	var img = null;
	var elems = element.getElementsByTagName('IMG');
	if (elems.length) {
		img = elems[0];
	}
	
	if (element.className == 'tabHeaderControlOPassive') {
		element.className = 'tabHeaderControlOActive';
		if (img) {
			if (img.src.indexOf(BAR_RIGHT_PASSIVE_IMG) != -1) {
				img.src = BAR_RIGHT_ACTIVE_IMG;
			} else if (img.src.indexOf(BAR_OPEN_PASSIVE_IMG) != -1) {
				img.src = BAR_OPEN_ACTIVE_IMG;
			} else if (img.src.indexOf(BAR_CLOSE_PASSIVE_IMG) != -1) {
				img.src = BAR_CLOSE_ACTIVE_IMG;
			}
		}
	} else {
		element.className = 'tabHeaderControlOPassive';
		if (img) {
			if (img.src.indexOf(BAR_RIGHT_ACTIVE_IMG) != -1) {
				img.src = BAR_RIGHT_PASSIVE_IMG;
			} else if (img.src.indexOf(BAR_OPEN_ACTIVE_IMG) != -1) {
				img.src = BAR_OPEN_PASSIVE_IMG;
			} else if (img.src.indexOf(BAR_CLOSE_ACTIVE_IMG) != -1) {
				img.src = BAR_CLOSE_PASSIVE_IMG;
			}
		}
	}
}

function changeTitleOver(e, element, tabID)
{
	if (!e) var e = window.event;
	if (e.stopPropagation) e.stopPropagation();
	e.cancelBubble = true;
	
	wantedElement = getObj('TabIDTitle_'+tabID);
	if (wantedElement == null) return;
	
	wantedElement.innerHTML = element.title ? element.title : '';
}

function changeTitleOut(e, element, tabID)
{
	if (!e) var e = window.event;
	if (e.stopPropagation) e.stopPropagation();
	e.cancelBubble = true;
	
	wantedElement = getObj('TabIDTitle_'+tabID);
	if (wantedElement == null) return;
	
	wantedElement.innerHTML = '';
}

function setImageMainTitles()
{
	// Kazdy element ma id="TabIDTitle_[tab_id]". Jeho previousSibling
	// je nazev zalozky. Tento nazev nastavim previousSiblingu id="TabIDPos_[tab_id]"
	// pres udalosti onmouseover a out - kvuli pozicovani ctverecku.
	$('div.tab span.tabHeaderTextTitle').each(function() {
		var tabId = this.id.substr(this.id.lastIndexOf('_')+1);
		var span = document.getElementById('TabIDPos_'+tabId);
		if (span) {
			span.innerHTML = this.previousSibling.nodeValue;
			var a = span.previousSibling;
			while (a.nodeName != 'A' && a.nodeName != 'BODY') a = a.previousSibling;
			if (a) {
				a.onmouseover = function() {
					span.style.display = 'inline';
				}
				a.onmouseout = function() {
					span.style.display = 'none';
				}
			}
		}
	});
}

function antiSpamEmails()
{
	var needle1 = BASE_PATH+'tomail.php?m='; // Viz nize scapovani regularniho vyrazu!
	var needle2 = '(a)';
	var elements = document.getElementsByTagName('A');
	
	for (var i=0; i<elements.length; ++i) {
		a = elements[i];
		
		if (!a.href || a.href.indexOf(needle1) == -1 || a.href.indexOf(escape(needle2)) == -1) {
			continue;
		}
		// Musim ulozit mimo, prvni prima zmena v href elementu v Opere odescapuje retezec
		var newHref = a.href;
		// Odstranim prohlizecem pridanou domenu, pridam protokol a zavinac
		newHref = 'mailto:'+newHref.replace(new RegExp('.*'+needle1.replace('?','\\?')), '');
		newHref = newHref.replace(escape(needle2), '@');
		a.href = newHref;
		// Nahradim viditelny text
		a.innerHTML = a.innerHTML.replace(needle2, '@');
	}
}

function registerControlClass()
{
	// Vsem temto tridam zaregitruji onmouseover a onmouseout eventy
	$(".tabHeaderControlOPassive").each(function(){
	
		this.onmouseover = function (){
			changeControlClass(this)
		};
		this.onmouseout = function (){
			changeControlClass(this)
		};
	});	
}

function setLanguageOpacity()
{
	$("#Language a").css('opacity', 0.4);
	
	$("#Language a").hover(function() {
		$(this).css('opacity', 1.0);
	},function(){
  		$(this).css('opacity', 0.4);
	});
}

// Inicializace ///////////////////////////////////////////////////////////////
$(document).ready(function() {
	setLanguageOpacity();
	antiSpamEmails();
	setImageMainTitles();
	registerControlClass();
});

