if (typeof Manodo == 'undefined' || !Manodo)
	Manodo = {};
	
if (typeof Manodo.Server == 'undefined' || !Manodo.Server)
	Manodo.Server = {};
	
if (typeof Manodo.Server.Portal == 'undefined' || !Manodo.Server.Portal)
	Manodo.Server.Portal = {};
	
if (typeof Manodo.Server.Portal.Login == 'undefined' || !Manodo.Server.Portal.Login)
	Manodo.Server.Portal.Login = {};

Manodo.Server.Portal.Login.CookieInfo = function(lblHeaderId, pnlMessageId) {
	var _me = this;
	var _initialized = false;
	var _lblHeaderId = lblHeaderId;
	var _pnlMessageId = pnlMessageId;
	var _pnlCookieInfo;
	
	this.init = function() {
		_pnlCookieInfo = new YAHOO.widget.Panel("divCookieInfo", {
			width:"450px",
			fixedcenter: true, 
			constraintoviewport: true, 
			underlay:"shadow", 
			close:true, 
			visible:false, 
			draggable:true } );

		document.getElementById('divCookieInfo').style.display = 'block';
		_pnlCookieInfo.render();
		
		_pnlCookieInfo.showEvent.subscribe(_me.onShow, _me, true);
	};
	
	this.show = function() {
		_pnlCookieInfo.show();
	};
	
	this.onShow = function() {
		document.getElementById('divCookieInfo').focus();
		
		if (_initialized == false) {
			Manodo.Server.Portal.Login.ScriptService.LoginService.GetTranslatedStrings(
				'Manodo.Server.Portal.Login',
				[ 'CookieInfo.GetCookieInfoResult.Header', 'CookieInfo.GetCookieInfoResult.Message' ],
				_me.onGetTranslatedStringsComplete,
				_me.onGetTranslatedStringsError);
		}
	};
	
	this.onGetTranslatedStringsComplete = function(arg) {
		_me.setCookieInfo(arg['CookieInfo.GetCookieInfoResult.Header'], arg['CookieInfo.GetCookieInfoResult.Message']);
		_initialized = true;
	};
	
	this.onGetTranslatedStringsError = function(error) {
		var stackTrace = error.get_stackTrace();
		var message = error.get_message();
		var statusCode = error.get_statusCode();
		var exceptionType = error.get_exceptionType();
		var timedout = error.get_timedOut();
	   
		var msg =
			'<div>Stack Trace:</div><div>' +  stackTrace + '</div>' +
			'<div>Service Error:</div><div>' + message + '</div>' +
			'<div>Status Code:</div><div>' + statusCode + '</div>' +
			'<div>Exception Type:</div><div>' + exceptionType + '</div>' +
			'<div>Timedout:</div><div>' + timedout + '</div>';

		_me.setCookieInfo('[Error]', msg);
	};
	
	this.setCookieInfo = function(header, message) {
		var lblHeader = document.getElementById(_lblHeaderId);
		var pnlMessage = document.getElementById(_pnlMessageId);
		
		if (lblHeader)
			lblHeader.innerHTML = header;
		
		if (pnlMessage)
			pnlMessage.innerHTML = message;
			
		_pnlCookieInfo.center();
	};
	
	this.close = function() {
		_pnlCookieInfo.hide();
	};
	
	this.onKeyDown = function(e) {
		if (e.keyCode == 27) { // escape
			_me.close();
			return false;
		}
		return true;
	};
};
