var alphabet = new Array("@", " ", ".", "!", "-", "_", "&#34;", "<", ">", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "á", "b", "c", "d", "e", "é", "f", "g", "h", "i", "í", "j", "k", "l", "m", "n", "o", "ó", "ö", "õ", "p", "q", "r", "s", "t", "u", "ú", "ü", "û", "v", "w", "x", "y", "z", "A", "Á", "B", "C", "D", "E", "É", "F", "G", "H", "I", "Í", "J", "K", "L", "M", "N", "O", "Ó", "Ö", "Õ", "P", "Q", "R", "S", "T", "U", "Ú", "Ü", "Û", "V", "W", "X", "Y", "Z");

function LinkActive(status_text, id, type) {
	if (status_text)
		window.status=status_text;
	type = (type) ? ".jpg" : ".gif";
	if (id) {
		g=document.getElementById(id);
		g.src="graphics/active/"+id+type;
	}
}

function LinkPassive(id, type) {
	window.status="";
	type = (type) ? ".jpg" : ".gif";
	if (id) {
		g=document.getElementById(id);
		g.src="graphics/"+id+type;
	}
}

function SmallActive(id) {
	window.status=short_texts["image_larger"];
	g=document.getElementById("small_"+id);
	g.width=91;
	g.height=91;
	g.style.left=-8;
	g.style.top=-8;
}

function SmallPassive(id) {
	window.status="";
	g=document.getElementById("small_"+id);
	g.width=75;
	g.height=75;
	g.style.left=0;
	g.style.top=0;
}

function SmallLarger(row, column) {
	active_row=Math.floor(active_element/4);
	active_column=active_element%4;
	small=small_passive;
	while (small.indexOf("[Image]")!=-1)
		small=small.replace(/\[Image\]/, images[active_element][0]);
	small=small.replace(/\[Caption\]/, images[active_element][1]);
	small=small.replace(/\[Row\]/, active_row);
	small=small.replace(/\[Column\]/, active_column);
	g=document.getElementById("layer_small_selected_"+active_row+"_"+active_column);
	g.style.visibility="hidden";
	g=document.getElementById("layer_small_"+active_row+"_"+active_column);
	g.innerHTML=small;

	element=4*row+column;
	active_element=element;
	small=small_active;
	while (small.indexOf("[Image]")!=-1)
		small=small.replace(/\[Image\]/, images[element][0]);
	small=small.replace(/\[Caption\]/, images[element][1]);
	g=document.getElementById("layer_small_"+row+"_"+column);
	g.innerHTML=small;
	g=document.getElementById("layer_small_selected_"+row+"_"+column);
	g.style.visibility="visible";

	g=document.getElementById("medium");
	g.src="images/medium/"+pagetype+"_"+images[element][0]+".jpg";
	g.alt=images[element][1];

	g=document.getElementById("large");
	g.src="images/large/"+pagetype+"_"+images[element][0]+".jpg";
	g.alt=images[element][1];
}

function MediumActive() {
	window.status=short_texts["image_larger"];
}

function MediumPassive() {
	window.status="";
}

function MediumLarger() {
	g=document.getElementById("layer_large");
	g.style.visibility="visible";
	g=document.getElementById("layer_large_left");
	g.style.visibility="visible";
	g=document.getElementById("layer_large_right");
	g.style.visibility="visible";
	g=document.getElementById("layer_large_corner");
	g.style.visibility="visible";
	g=document.getElementById("caption");
	g.innerHTML=EMailStringDecode(images[active_element][2]);
	g.style.visibility="visible";

	preload["previous"]=new Image();
	preload["previous"].src="large/"+pagetype+"_"+images[(active_element+15)%16][0]+".jpg";
	preload["next"]=new Image();
	preload["next"].src="large/"+pagetype+"_"+images[(active_element+1)%16][0]+".jpg";
}

function LargeActive(direction) {
	window.status=short_texts["image_"+direction];
	g=document.getElementById("button_background_"+direction);
	g.style.visibility="visible";
	g=document.getElementById("button_"+direction);
	g.style.visibility="visible";
}

function LargePassive(direction) {
	window.status="";
	g=document.getElementById("button_background_"+direction);
	g.style.visibility="hidden";
	g=document.getElementById("button_"+direction);
	g.style.visibility="hidden";
}

function LargeStep(direction) {
	switch (direction) {
		case "previous": element=active_element+15; break;
		case "next": element=active_element+1; break;
	}
	element%=16;

	g=document.getElementById("large");
	g.src="images/large/"+pagetype+"_"+images[element][0]+".jpg";
	g.alt=images[element][1];
	g=document.getElementById("caption");
	g.innerHTML=EMailStringDecode(images[element][2]);

	preload["previous"]=new Image();
	preload["previous"].src="large/"+pagetype+"_"+images[(element+15)%16][0]+".jpg";
	preload["next"]=new Image();
	preload["next"].src="large/"+pagetype+"_"+images[(element+1)%16][0]+".jpg";

	g=document.getElementById("medium");
	g.src="images/medium/"+pagetype+"_"+images[element][0]+".jpg";
	g.alt=images[element][1];

	active_row=Math.floor(active_element/4);
	active_column=active_element%4;
	small=small_passive;
	while (small.indexOf("[Image]")!=-1)
		small=small.replace(/\[Image\]/, images[active_element][0]);
	small=small.replace(/\[Caption\]/, images[active_element][1]);
	small=small.replace(/\[Row\]/, active_row);
	small=small.replace(/\[Column\]/, active_column);
	g=document.getElementById("layer_small_selected_"+active_row+"_"+active_column);
	g.style.visibility="hidden";
	g=document.getElementById("layer_small_"+active_row+"_"+active_column);
	g.innerHTML=small;

	row=Math.floor(element/4);
	column=element%4;
	small=small_active;
	while (small.indexOf("[Image]")!=-1)
		small=small.replace(/\[Image\]/, images[element][0]);
	small=small.replace(/\[Caption\]/, images[element][1]);
	g=document.getElementById("layer_small_"+row+"_"+column);
	g.innerHTML=small;
	g=document.getElementById("layer_small_selected_"+row+"_"+column);
	g.style.visibility="visible";

	active_element=element;
}

function LargeClose() {
	g=document.getElementById("layer_large_left");
	g.style.visibility="hidden";
	g=document.getElementById("layer_large_right");
	g.style.visibility="hidden";
	g=document.getElementById("layer_large_corner");
	g.style.visibility="hidden";
	g=document.getElementById("button_background_previous");
	g.style.visibility="hidden";
	g=document.getElementById("button_previous");
	g.style.visibility="hidden";
	g=document.getElementById("button_background_next");
	g.style.visibility="hidden";
	g=document.getElementById("button_next");
	g.style.visibility="hidden";
	g=document.getElementById("button_background_close");
	g.style.visibility="hidden";
	g=document.getElementById("button_close");
	g.style.visibility="hidden";
	g=document.getElementById("layer_large");
	g.style.visibility="hidden";
	g=document.getElementById("caption");
	g.innerHTML="";
	g.style.visibility="hidden";
}

function LargeEscape(event) {
	if (event.keyCode==27) {
		g=document.getElementById("layer_large");
		if (g && g.style.visibility=="visible")
			LargeClose();
	}
}

function Advert() {
	document.body.style.overflowX="hidden";
	document.body.style.overflowY="hidden";
	document_size=DocumentSize();
	g=document.getElementById("cover");
	g.style.width=document_size[0];
	g.style.height=document_size[1];
	g.style.visibility="visible";

	window_size=WindowSize();
	x=Math.round((window_size[0]-303)/2);
	if (x<0) x=0;
	y=Math.round((window_size[1]-303)/2);
	if (y<0) y=0;
	g=document.getElementById("advert");
	g.style.left=x;
	g.style.top=y;
	g.style.visibility="visible";

	g=document.getElementById("advert_close_button");
	g.style.left=x+303-54-12;
	g.style.top=y+303-38-12;
	g.style.visibility="visible";
}

function AdvertClose() {
	g=document.getElementById("advert_close_button");
	g.style.visibility="hidden";
	g=document.getElementById("advert");
	g.style.visibility="hidden";
	g=document.getElementById("cover");
	g.style.width=1;
	g.style.height=1;
	g.style.visibility="hidden";
	document.body.style.overflowX="auto";
	document.body.style.overflowY="auto";
	advert=false;
}

function AdvertEscape(event) {
	if (advert && event.keyCode==27)
		AdvertClose();
}

function CoverResize() {
	g=document.getElementById("cover");
	if (g.style.visibility=="visible") {
		document_size=DocumentSize();
		g.style.width=document_size[0];
		g.style.height=document_size[1];
	}
}

function EMailStringDecode(encoded_string) {
	regular_expression=new RegExp("(.*\<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text\/javascript\">EMailLink)(.*?)(<\/SCRIPT>.*)", "i");
	if (regular_expression.test(encoded_string)) {
		temp=encoded_string.replace(regular_expression, "$2");
		temp=temp.substring(2, temp.length-2);
		temp=temp.split("', '");
		name=temp[0];
		email_encoded=temp[1];
		subject=temp[2];
		style_class=temp[3];
		status_text=temp[4];
		graphic=temp[5];
		email=EMailDecode(email_encoded);
		name = (name && name!="-") ? name+" " : "";
		if (name) email="<"+email+">";
		subject = (subject && subject!="-") ? "?subject="+subject : "";
		style_class = (style_class && style_class!="-") ? " CLASS="+style_class : "";
		status_text = (status_text && status_text!="-") ? "'"+status_text+"'" : "";
		graphic = (graphic && graphic!="-") ? "'"+graphic+"'" : "";
		comma = (status_text && graphic) ? ", " : "";
		temp="<A HREF=\"mailto:"+name+email+subject+"\" TARGET=_blank"+style_class+" onMouseOver=\"LinkActive("+status_text+comma+graphic+"); return true;\" onMouseOut=\"LinkPassive("+graphic+"); return true;\">";
		regular_expression=new RegExp("\<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text\/javascript\">EMailLink.*?<\/SCRIPT>", "i");
		encoded_string=encoded_string.replace(regular_expression, temp);
	}
	return encoded_string;
}

function EMailLink(name, email_encoded, subject, style_class, status_text, graphic) {
	email=EMailDecode(email_encoded);
	name = (name && name!="-") ? MailtoName(name)+" " : "";
	if (name) email="<"+email+">";
	subject = (subject && subject!="-") ? "?subject="+subject : "";
	style_class = (style_class && style_class!="-") ? " CLASS="+style_class : "";
	status_text = (status_text && status_text!="-") ? "'"+status_text+"'" : "";
	graphic = (graphic && graphic!="-") ? "'"+graphic+"'" : "";
	comma = (status_text && graphic) ? ", " : "";
	document.write("<A HREF=\"mailto:"+name+email+subject+"\" TARGET=_blank"+style_class+" onMouseOver=\"LinkActive("+status_text+comma+graphic+"); return true;\" onMouseOut=\"LinkPassive("+graphic+"); return true;\">");
}

function EMailDecode(email_encoded) {
	var i;
	var j;
	email_encoded=email_encoded.split("#");
	email="";
	for (i in email_encoded) {
		j=email_encoded[i];
		email+=alphabet[j];
	}
	return email;
}

function MailtoName(input_string) {
	characters_with_punctuation = new Array(" ", "=", "?", "á", "é", "í", "ó", "ö", "õ", "ú", "ü", "û", "Á", "É", "Í", "Ó", "Ö", "Õ", "Ú", "Ü", "Û");
	for (i in characters_with_punctuation) {
		itemm=characters_with_punctuation[i];
		while (input_string.indexOf(itemm)!=-1)
			input_string=input_string.replace(itemm, escape(itemm));
	}
	return input_string;
}

var ajaxRequest=null;

function createXmlHttp() {
	var http_request=false;
	if (window.XMLHttpRequest) {
		http_request=new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType("text/html");
		}
	} else if (window.ActiveXObject) {
		try {
			http_request=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}
	return http_request;
}

function URLEncode(url) {
	url=escape(url);
	while (url.indexOf("*")!=-1) url=url.replace(/\*/, "%2A");
	while (url.indexOf("+")!=-1) url=url.replace(/\+/, "%2B");
	while (url.indexOf("/")!=-1) url=url.replace(/\//, "%2F");
	while (url.indexOf("@")!=-1) url=url.replace(/@/, "%40");
	while (url.indexOf("%20")!=-1) url=url.replace(/%20/, "+");
	return url;
}

function Browser(logging) {
	ajaxRequest=createXmlHttp();
	if (ajaxRequest) {
		ajaxRequest.open("get", "ajax.php?action=browser&logging="+logging+"&navigator_name="+URLEncode(navigator.appName)+"&navigator_version="+URLEncode(navigator.appVersion)+"&platform="+URLEncode(navigator.platform)+"&screen="+screen.availWidth+"x"+screen.availHeight, true);
		ajaxRequest.send(null);
	}
}

function WindowSize() {
	var width;
	var height;
	if (self.innerHeight) {
		width = (document.documentElement && document.documentElement.clientWidth) ? document.documentElement.clientWidth : self.innerWidth;
		height=self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight) {
		width=document.documentElement.clientWidth;
		height=document.documentElement.clientHeight;
	} else if (document.body) {
		width=document.body.clientWidth;
		height=document.body.clientHeight;
	} else {
		width=0;
		height=0;
	}
	return [width, height];
}

function DocumentSize() {
	var width;
	var height;
	if (window.innerHeight && window.scrollMaxY) {
		width=window.innerWidth+window.scrollMaxX;
		height=window.innerHeight+window.scrollMaxY;
	} else if (document.body.scrollHeight>document.body.offsetHeight) {
		width=document.body.scrollWidth;
		height=document.body.scrollHeight;
	} else {
		width=document.body.offsetWidth;
		height=document.body.offsetHeight;
	}
	return [width, height];
}

function Position() {
	var left;
	var top;
	if (self.pageXOffset || self.pageYOffset) {
		left=self.pageXOffset;
		top=self.pageYOffset;
	} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		left=document.documentElement.scrollLeft;
		top=document.documentElement.scrollTop;
	} else if (document.body.scrollLeft || document.body.scrollTop) {
		left=document.body.scrollLeft;
		top=document.body.scrollTop;
	} else {

		left=0;
		top=0;
	}
	return [left, top];
}

