var LogincenterHeader = {
    
    init: function() {
    }

};

var LogincenterHome = {
    loggedIn: false,

    init: function() {
    },

    destroy: function() {
    },
    
    onload: function() {
        LogincenterHeader.init();
        LogincenterHome.init();
        LogincenterLogin.init();
    },
    /*
     * UI functions
     */
     waiting: function(isWaiting) {
        if (isWaiting) {
            $j("#processCoverFull").css("width", $("page").getWidth());
            $j("#processCoverFull").css("height", Control.Modal.getDocumentHeight());
            $j("#processCoverFull").show();

            if (Prototype.Browser.IE) {
                $j("select").css("visibility", "hidden");
            }
        } else {
            $j("#processCoverFull").hide();

            if (Prototype.Browser.IE && !Control.Modal.current) {
                $j("select").css("visibility", "visible");
            }
        }
     }
};

var LogincenterLogin = {

    init: function() {
        //LogincenterLogin.showLoginButton();
    },

    login: function() {
        var url = login_transaction_url;
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(transport) {
              tid = transport.responseText;
              var data = tid.evalJSON();
              tid = data.transid;
              // proxy needed? TODO: test it!
              $("loginFrame").src=logincenter_root_url+"/remote_login/"+tid;
              LogincenterLogin.showLoginPanel()
            }
          });
    },
    showLoginPanel: function() {
        var _modal = new Control.Modal(null,{
            loggedIn: LogincenterLogin.loginSuccess,
            opacity: .5,
            overlayCloseOnClick: false,
            contents: $("loginContent").innerHTML,
            containerClassName: 'login_modal_container'
        });
        _modal.open();
    },
    
    loginSuccess: function(userName) {
        $("loginFrame").src="";
        LogincenterLogin.loginSuccessFinish();
    },

    loginSuccessFinish: function() {
        Control.Modal.close();
        setTimeout("window.location.reload()", 500);
    },
    
    /*
      AJAX Logout call
    */
    logout: function(transaction_id) {
        LogincenterHome.waiting(true);
        
        var url = logout_url;

        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(transport) {
              result = transport.responseText;
              var data = result.evalJSON();
              if( data.logout ) {
                Message.display_message("Sikeres kijelentkezés","confirmation",false);
                LogincenterHeader.init();
              } else {
                Message.display_message("Sikertelen kijelentkezés","warning",false);
              }
            }
          });
        LogincenterHome.waiting(false);
        //setTimeout("LogincenterLogin.showLoginButton()",1250);
        $j("#startnextbutton").hide();
    }

};

var Message = {
    
    display_message : function(msg, type, hold) {
        this.message_time = 5000;
        var cont = msg;
        
        this.message = document.getElementById('globalmessage');
        if (type)
          cont = '<div class="'+type+'">'+cont+'</div>';
    
        this.message.innerHTML = cont;
        this.message.style.display = 'block';
     
        if (type!='loading')
          this.message.onmousedown = function(){ this.hide_message(); return true; };

        if (!hold)
          this.message_timer = setTimeout(function(){ Message.hide_message(); }, this.message_time);
    },
    
    hide_message : function() {
        if (this.message)
          {
          this.message.style.display = 'none';
          this.message.onmousedown = null;
          }
        }
};

function jquerynoconflict() {
    var $j = jQuery.noConflict();
}
/**
 * TODO: put it into one class
 */

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

