var loginListeners = new Array();
var logoutListeners = new Array();
var ajaxLoginDisabled = true;
var logined = false;

function isLogined() {
    return 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 uyeNoSifreCheckAjax()
{   //LightView İçin
    var uyeNo = document.getElementById("uyeGirisi").j_username.value;
    var uyeSifre = document.getElementById("uyeGirisi").j_password.value;
    if (uyeNo.length != 8 || uyeSifre.length != 6 || !IsNumeric(uyeNo) || !IsNumeric(uyeSifre))
    {
        alert("Üye No/Şifre bilgilerinizi kontrol ediniz!");
        document.getElementById("uyeGirisi").j_username.focus();
        return false;
    }
    return true;
}

function doLogin(mainPage) {
    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;

    if(mainPage==true){
    	
    	if(uyeNoSifreCheckAjax()){
    		xmlHttpObject.open("POST", "/ajax-login?mainPage=true", true);
    	}else{
    		return false;
    	}
    }else{
    	xmlHttpObject.open("POST", "/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("/styles/themes") == 0) {
                    lnk.setAttribute("href", ts);
                }
            }
               //----------------menu
             var menuObj=menus[1];
             menuObj.load();
            //----------------------end of menu
             logined = document.getElementById("loginStatus").value;
            if(logined) {
                fireLoginEvent();
            }
            
            if(mainPage==true){
            	embedFlashInPage();
            	
            	if(logined){
            		parent.document.splashLoader.refresh();
            	}
            }
            
            // WORKAROUND: User account menu do not open on re-login            
        }
    };

    xmlHttpObject.send(params);

    return false;
}


function doLogout() {
    if(ajaxLoginDisabled) {
        return true;
    }

    var xmlHttpObject = getXmlHttpObject();
    if (xmlHttpObject == null) {
        return true;
    }

    xmlHttpObject.open("GET", "/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("/styles/themes") == 0) {
                    lnk.setAttribute("href", "/styles/themes/default.css");
                }
            }

            logined = false;
            fireLogoutEvent();
        }
    };

    xmlHttpObject.send(null);

    return false;
}

function doLogoutMain() {
	if (ajaxLoginDisabled) {
		return true;
	}

	var xmlHttpObject = getXmlHttpObject();
	if (xmlHttpObject == null) {
		return true;
	}

	xmlHttpObject.open("GET", "/ajax-logout?mainPage=true", 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("/styles/themes") == 0) {
					lnk.setAttribute("href", "/styles/themes/default.css");
				}
			}

			logined = false;
			fireLogoutEvent();	
			embedFlashInPage();
			parent.document.splashLoader.refresh();
		}
	};

	xmlHttpObject.send(null);
		
	return false;
}

function getXmlHttpObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }

    if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }

    return null;
}