var _$ = $;
$= jQuery;


	var loginForm = "";

	if(typeof(CM) == 'undefined'){
		CM = {};
	}
	if(!CM.messaging){
		CM.messaging = {};
	}
	if(!CM.messaging.messages){
		CM.messaging.messages = {};
	}

	CM.messaging.messages['help'] = 'Click the "Save Changes" button on the right to save your changes. <span class="button save">Save Changes</span>';
	CM.messaging.messages['error'] = "Oops!";	
	CM.messaging.messages['success'] = "Your changes have been saved.";
	CM.messaging.messages['403'] = "You are either not logged in or are not permitted to perform this action.";
	CM.messaging.messages['500'] = "Oops.  An problem has occured and our developers have been notified.  Please try again later.";

	/*
	$C.handleError=function(_d,_e,_f,_10,_11,_12,_13){
		var msg=$L.format(_e,_10);
		if(_d){
			$L.error(msg,"http");
			if(!_11){
				_11=-1;
			}
			if(!_12){
				_12=msg;
			}
			_d(_11,_12);
		}else{
			if(_13){
				$L.error(msg,"http");
				throw msg;
			}else{
				$C.globalErrorHandler(msg,_f);
			}
		}
	};
	$C.handleError(null,"ajax.sendmessage.error","http",[req.status,req.statusText],req.status,req.statusText,_1f);
	_d = objects error handler.
	_e = cf message type
	_f = protocol ?
	_10 = [request.status, request.statusText]
	_11 = request.status
	_12 = request.statusText
	_13 = sync mode ?
	*/



	function OnSaveDataSuccess(msg, messenger)
	{
		displayMessage(messenger, 'success');
		//showMessage('Tag list has been saved.');
	};

	function Authenticate(username, password)
	{
		$.unblockUI();
		displayMessage(null, 'loading', "Authenticating...");
		//jQuery("div##MessengerContainer").show();
		jQuery.ajax({
			   url: "/elements/classes/security/SecurityService.cfc",
			   data: {method: "Login", username: username, password: password},
			   dataType:"text",
			   success: OnAuthenticationResult,
			   error: OnSaveDataError
			 });
		//$.blockUI("Authenticating...<img src="/elements/images/ajax/progress_indicator.gif" alt="Saving..." width="16" height="16" />" );
		//$.ajax();
	}

	function OnAuthenticationResult(msg)
	{
		//msg = WDDXDeserialize(msg);
		var loginForm = jQuery('#loginFormContainer');
		msg = msg.toLowerCase();
		if (msg)//(msg == "true")
		{
			displayMessage(null, 'success', 'Authentication Success! You may attempt to resubmit your request. <span class="button save">Save Changes</span>');		
			loginForm.dialog('close');
			$("input", loginForm).each(function(){$(this).val("");});
			//jQuery("div#MessengerContainer").animate({opacity:1},{duration:5,easing:"easeInCubic"}).animate({opacity:0.0}, {duration:2500,easing:"easeInCubic"});
		}
		else
		{
			$('h1', loginForm).html('Authentication Failed! Please try again later.');
			displayMessage(null, 'error', 'Authentication Failed! Please try again later.');
			//showLoginForm('Authentication Failed! Please try again later.');
			//jQuery("div#MessengerContainer").show();
			//document.location.href = "/authentication/logout.cfm";
		}
	}

	function OnAuthenticationError(msq)
	{
		//showError('Authentication Failed!&nbsp;&nbsp;Please try again later.');
		displayMessage(null, 'error', 'Authentication Failed!&nbsp;&nbsp;Please try again later.');
		showLoginForm('Authentication Failed!&nbsp;&nbsp;Please try again later.');
	}

	function displayMessage(messenger, type, message) {
		messenger = messenger ? messenger : $("#MessengerContainer");
		type = type ? type : 'help';
		message = message ? message : CM.messaging.messages[type];
		messenger.attr({'class':'messageBox ' + type}).html(message);
		$('.button.save', messenger).bind('click', function(){
			commitChanges(messenger);
			return false;
		});
		messenger.slideDown(750);
	}

	function isEnterPress(code){
		return code == 13;
	}

	function showLoginForm(msg)
	{
		var loginForm = jQuery('#loginFormContainer');
		jQuery(".message", loginForm).html(msg);
		loginForm.dialog({					 
			 autoOpen: false
			,modal: true
			,width: 600
			,buttons: {
				'Login': function() {
					var username = jQuery('#username', loginForm)[0].value;
					var password = jQuery('#password', loginForm)[0].value;
					Authenticate(username, password);	 
				}
				,'Close': function() {$(this).dialog('close'); $("input", this).each(function(){$(this).val("");});}
			}
			,zIndex:100000
			,title:msg
			,open:function(){
				loginForm.unbind("keydown");
				$('#password', loginForm).unbind("keydown");
				$('#password', loginForm).keydown(function(e){
					if(isEnterPress(e.keyCode)){
						var username = jQuery('#username', loginForm)[0].value;
						var password = jQuery('#password', loginForm)[0].value;
						Authenticate(username, password);
					}				
				});
			}
		});


		loginForm.dialog('open');

		/*
		var login = loginForm.cloneNode(true);
		var h1 = jQuery('h1', login)[0];
		h1.innerHTML = msg;
		var cancelButton = jQuery('#cancel', login);
		cancelButton.click(jQuery.unblockUI);	
		var loginButton = jQuery('#login', login);	
		loginButton.click(function(){
			var username = jQuery('#username', login)[0].value;
			var password = jQuery('#password', login)[0].value;
			Authenticate(username, password);
		});
		jQuery.blockUI(login, { width: '375px', padding: '5px' });
		*/
	}

	function OnSaveDataError(status, message, messenger)
	{
		/*
		var msg = XMLHttpRequest;
		if(typeof(XMLHttpRequest.statusText) != "undefined"){
			msg = XMLHttpRequest.statusText;
		}
		*/
		var type = "help";
		if(typeof(message) == "undefined" && parseInt(status) != 200)
		{
			var regex = /.*Forbidden/ig;
			type = "error";
			//alert(status);
			if(typeof(status.match) == "function" && status.match(regex))
			{
				status = 403;		
			}
			else if(typeof(CM.messaging.messages[status]) != "undefined")
			{
				message = CM.messaging.messages[status];
			}
			else if(typeof(status.message) != "undefined")
			{
				message = status.message;	
			}
			else
			{
				message = status;	
			}
		}
		displayMessage(null, type, message);
		//showError(msg);	
		if(status == 403)
		{
			showLoginForm("You are either not logged in or are not permitted to perform this action.");
		}
	};

	/*
	function initNotice(messenger, type, message) {
		messenger = messenger ? messenger : $("MessengerContainer");
		type = type ? type : 'help';
		message = message ? message : messages[type];
		messenger.attr({'class':'messageBox ' + type}).html(message);
		$('.button.save', messenger).bind('click', function(){
			commitChanges(messenger);
			return false;
		});
		messenger.slideDown(750);
	}
	*/


$= _$;
