
//SEE <http://www.json.org/>

var Json = {
	evaluate: function(str, secure){
		return ((typeof(str) != 'string') || (secure && !str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/))) ? null : eval('(' + str + ')');
	}

};

(function($){
	$.fn.loginWindow = function(options) {
		var $trigger = $(options.trigger);		
		var $loginWindow = this;
		
		var firstInput = $loginWindow.find('input[type=text]:first');
		$loginWindow.hide();
		var isActive = false;
		
		var setVisible = function(event){
			firstInput.blur();
			var state = !isActive;
			var position = $trigger.offset();			
			var css = {
				display: state ? 'none' : 'block',
				top: position.top + $trigger.height(),
				left: position.left - $loginWindow.width() + $trigger.width()
			}
			var fadeFn = 'fade' + (state ? 'In' : 'Out');
			
			$loginWindow.css(css)[fadeFn](250, function(){
				if(state){
					firstInput.focus();
				};
				
				$(document.body)[state ? 'bind' : 'unbind']('click', setVisible);
				
			});
			isActive = state;
			return false;
		};

		$loginWindow.click(function(event){
			event.stopPropagation();
			var $target = $(event.target).closest('.close-login-window');
			if($target.length){
				isActive = true;
				setVisible();
			};
			//return false;
		});
		
		$trigger.click(setVisible);		
		
		return this;
	}
})(jQuery);


