var loginListeners = new Array(); var logoutListeners = new Array(); var ajaxLoginDisabled = true; var logined = false; function isLogined() { return logined || parent.logined; } function addLoginListener(listener) { loginListeners[loginListeners.length] = listener; } function addLogoutListener(listener) { logoutListeners[logoutListeners.length] = listener; } function addFlashLoginListener(flashName) { eval('addLoginListener(function() {flashLoginListener("' + flashName + '");});'); } function addFlashLogoutListener(flashName) { eval('addLogoutListener(function() {flashLogoutListener("' + flashName + '");});'); } function fireLoginEvent() { for(var i = 0; i < loginListeners.length; i++) { try { loginListeners[i](); } catch(err) { } } } function fireLogoutEvent() { for(var i = 0; i < logoutListeners.length; i++) { try { logoutListeners[i](); } catch(err) { } } } function flashLoginListener(flashName) { var flashMovie = getFlashMovie(flashName); flashMovie.refresh(); } function flashLogoutListener(flashName) { var flashMovie = getFlashMovie(flashName); flashMovie.refresh(); } function getFlashMovie(flashName) { if (window.document[flashName]) { return window.document[flashName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1 && document.embeds && document.embeds[flashName]) { return document.embeds[flashName]; } return document.getElementById(flashName); } function enableAjaxLogin() { ajaxLoginDisabled = false; } function disableAjaxLogin() { ajaxLoginDisabled = true; } function doLogin() { if(ajaxLoginDisabled) { return true; } var frm = document.forms['login']; var username = frm.j_username.value; var password = frm.j_password.value; var xmlHttpObject = getXmlHttpObject(); if (xmlHttpObject == null) { return true; } var params = 'j_username=' + username + '&j_password=' + password; xmlHttpObject.open("POST", "/iddaa/ajax-login", true); xmlHttpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttpObject.setRequestHeader("Content-length", params.length); xmlHttpObject.setRequestHeader("Connection", "close"); xmlHttpObject.onreadystatechange = function() { if (xmlHttpObject.readyState == 4 && xmlHttpObject.status == 200) { var container = document.getElementById('login-container'); var newContainer = container.cloneNode(false); newContainer.innerHTML = xmlHttpObject.responseText; container.parentNode.replaceChild(newContainer, container); var ts = document.getElementById("themeStyle").value; var count = document.getElementsByTagName("link").length; for (var i = 0; i < count; i++) { var lnk = document.getElementsByTagName("link")[i]; if (lnk.getAttribute("rel").indexOf("style") != -1 && lnk.getAttribute("href").indexOf("/iddaa/styles/themes") == 0) { lnk.setAttribute("href", ts); } } logined = document.getElementById("loginStatus").value; if(logined) { fireLoginEvent(); } } }; xmlHttpObject.send(params); return false; } function doLogout() { if(ajaxLoginDisabled) { return true; } var xmlHttpObject = getXmlHttpObject(); if (xmlHttpObject == null) { return true; } xmlHttpObject.open("GET", "/iddaa/ajax-logout", true); xmlHttpObject.onreadystatechange = function() { if (xmlHttpObject.readyState == 4 && xmlHttpObject.status == 200) { var container = document.getElementById('login-container'); var newContainer = container.cloneNode(false); newContainer.innerHTML = xmlHttpObject.responseText; container.parentNode.replaceChild(newContainer, container); var count = document.getElementsByTagName("link").length; for (var i = 0; i < count; i++) { var lnk = document.getElementsByTagName("link")[i]; if (lnk.getAttribute("rel").indexOf("style") != -1 && lnk.getAttribute("href").indexOf("/iddaa/styles/themes") == 0) { lnk.setAttribute("href", "/iddaa/styles/themes/default.css"); } } logined = false; fireLogoutEvent(); } }; xmlHttpObject.send(null); return false; } function getXmlHttpObject() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } return null; }