var pageBase;
var docBase;
var loginNameField;
var loginPassField;
var loginNameLabel;
var loginPassLabel;
var visibleLabelStyle = "position: absolute;margin: 0 0 0 5px;font-size: 12px; color: #1F1F1F;";
var hiddenLabelStyle = "position: absolute;left: -9999px;";
var statisticsFlash;
var statisticsTimer;
var statisticsInterval = 60;

function init() {
	loginNameField = document.getElementById("headerloginname");
	loginPassField = document.getElementById("headerloginpass");
	loginNameLabel = document.getElementById("headerloginnamelabel");
	loginPassLabel = document.getElementById("headerloginpasslabel");
	if (loginNameLabel && loginPassLabel) {
		loginNameLabel.setAttribute("style", visibleLabelStyle);
		loginPassLabel.setAttribute("style", visibleLabelStyle);
		addEvent(loginNameField, "focus", hideLoginName);
		addEvent(loginNameField, "blur", showLoginName);
		addEvent(loginPassField, "focus", hideLoginPassword);
		addEvent(loginPassField, "blur", showLoginPassword);
	}
	changeLanguageSelector();
	addCollapseToArchives();
	$(document).ready(function(){
		$.localScroll({
			hash:true,
			duration:300
		});
	});
	startStatisticsTimer();
	putWelcomeMessage();
}

function showLoginName() {
	if (loginNameField.value == "") {
		loginNameLabel.setAttribute("style", visibleLabelStyle);
	}
}

function hideLoginName() {
	loginNameLabel.setAttribute("style", hiddenLabelStyle);
}

function showLoginPassword() {
	if (loginPassField.value == "") {
		loginPassLabel.setAttribute("style", visibleLabelStyle);
	}
}

function hideLoginPassword() {
	loginPassLabel.setAttribute("style", hiddenLabelStyle);
}

function addEvent(obj, type, fn) {
	if (obj.addEventListener)
		obj.addEventListener(type, fn, false);
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() {obj["e"+type+fn](window.event);}
		obj.attachEvent("on"+type, obj[type+fn]);
	}
}

function changeLanguageSelector() {
	var languageSelector = document.getElementById("languageselector");
	var languageSelectorSelect = document.getElementById("languageselectorselect");
	var dropdownMenu = "<div id=\"languageselectormenu\">";
	dropdownMenu += "<img src=\"" + docBase + "_layout/" + languageSelectorSelect.options[languageSelectorSelect.selectedIndex].value + ".png\" alt=\"" + languageSelectorSelect.options[languageSelectorSelect.selectedIndex].text + "\" />";
	dropdownMenu += " <img src=\"" + docBase + "_layout/dropdown.languageselector.png\" alt=\"Dropdown\" /></div><div id=\"languageselectordropdown\">";
	for (var i=0; i<languageSelectorSelect.options.length; i++) {
		dropdownMenu += "<a href=\"?action=changelanguage&amp;language=" + languageSelectorSelect.options[i].value + "\"><img src=\"" + docBase + "_layout/" + languageSelectorSelect.options[i].value + ".png\" alt=\"" + languageSelectorSelect.options[i].text+ "\" /></a>";
	}
	dropdownMenu += "</div>";
	languageSelector.innerHTML = dropdownMenu;
	at_attach("languageselectormenu", "languageselectordropdown", "hover", "y", "pointer");
}

function addCollapseToArchives() {
	var archivesList = jQuery("#archiveslist");
	if (archivesList) {
		var items = archivesList.children(".month");
		for (var i=0; i<items.length; i++) {
			animatedcollapse.addDiv(items[i].getAttribute("id"), "fade=0,speed=400,group=months" + (i > 0 ? ",hide=1" : ""));
		}
		animatedcollapse.init();
	}
//	animatedcollapse.ontoggle=function($, divobj, state){ //fires each time a DIV is expanded/contracted
//		var a;
//		if (divobj.id.match("/^y[0-9]{4}$/")) {
//			a = document.getElementById("b"+divobj.id);
//		} else if (divobj.id == "searchdataform") {
//			a = document.getElementById("searchdatabutton");
//		}
//		if (a) {
//			a.setAttribute("class", (state=="block"?"collapse":"expand"));
//		}
//	}
}

function createXHR() {
	try {
		return new XMLHttpRequest();
	} catch(e) {
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			return false;
		}
	}
}

function startStatisticsTimer() {
	statisticsTimer = setInterval(refreshStatistics, statisticsInterval*1000);
}

function setStatisticsInterval(interval) {
	statisticsFlash = document.getElementById("statisticsflash");
	refreshStatistics();
	statisticsInterval = interval;
	clearInterval(statisticsTimer);
	statisticsTimer = setInterval(refreshProcesses, statisticsInterval*1000);
}

function refreshStatistics() {
	var url;
	url = docBase + "xmldata?type=statistics";
	var req = createXHR();
	if (req) {
		req.open("GET",url,true);
		req.onreadystatechange=function() {
			if (req.readyState==4) {
				if (req.responseXML) {
					setStatisticsData(req.responseXML);
				}
			}
		}
		req.send("");
	}
}

function setStatisticsData(xml) {
	if (statisticsFlash) {
		var xmlStr = xml2Str(xml);
		statisticsFlash.setStatus(xmlStr);
	}
}

function putWelcomeMessage() {
	var welcome = document.getElementById("welcomemessage");
	if (welcome) {
		welcome.setAttribute("style", "display: block; top: 200px; left: 60px; width: 400px; position: fixed; z-order: 99; padding: 10px; text-align: center; font-weight: bold; background: #E4E4E4; border: 5px solid #1857E5");
		welcome.innerHTML += "<p><a href=\"#\" onclick=\"javascript:hideWelcomeMessage();\">OK</a></p>";
	}
}

function hideWelcomeMessage() {
	var welcome = document.getElementById("welcomemessage");
	if (welcome) {
		welcome.setAttribute("style", "display: none;");
	}
}

function showInThickBox(caption, url, group) {
	tb_show(caption, url, group);
	return false;
}

function xml2Str(xmlNode) {
	try {
		return (new XMLSerializer()).serializeToString(xmlNode);
	} catch (e) {
		try {
			return xmlNode.xml;
		} catch (e) {
		}
	}
	return "<error />";
}

addEvent(window, "load", init);
