	AJAX_LOAD_SLIDING_PANEL_URL = 'ajax.load_sliding_panel.php';	
	AJAX_AUTH_URL 				= 'ajax.auth.php';
	AJAX_SIGNUP_CHECK 			= 'ajax.signup_check.php';
	AJAX_CAPTCHA_CHECK 			= 'ajax.captcha_check.php';
//-----------------------------------------------------------------------
var CustomEvent = function() {
    this.eventName = arguments[0];
    var mEventName = this.eventName;
    var eventAction = null;
    this.subscribe = function(fn) {
        eventAction = fn;
    };
    this.fire = function(sender, eventArgs) {
        if(eventAction != null) {
            eventAction(sender, eventArgs);
        }
    };
};	

var sendEmail;

//-----------------------------------------------------------------------
var lpLoadedEvent = new CustomEvent("lpLoaded");
//-----------------------------------------------------------------------
	username = '';
	var redir = getQueryVariable('redir');
	if(redir!=undefined && redir!=false && redir!=true)
		redir = unescape(redir);
	else
		redir = false;
		
	function getChallenge(pass,username){
		$.ajax({
			url: 		AJAX_AUTH_URL,
			dataType: 	'json',
			type: 		'post',
			data:{
						action: 'get_challenge'
			},
			success: 	function(data){
							if(data.status="ok")
								sendPassword(pass,data,username);
			}
		});
	};

	function getQueryVariable(variable) {
	var query = window.location.search.substring(1);
		var vars = query.split("&");
		for (var i = 0; i < vars.length; i++) {
			var pair = vars[i].split("=");
			if (pair[0] == variable) {
				if(pair[1]==undefined)
					return true;
				return pair[1];
			}
		} 
		return false;
	}





	
	function checkTrueEmail(username,email){
		$.ajax({
			url: AJAX_SIGNUP_CHECK,
			type: 'post',
			dataType: 'json',
			data:{
				action:		'check_true_email',
				username:	username,
				email:		email
			},
			success : function(data){
				if(data==true)
					setNewPassword();
				else{
					$('#check_true_email_answer').css('color','red');
					$('#check_true_email_answer').text(LANGS['wrong_email']);
				}
			}
		});
	}
	
	function checkUsername(){
		$('#login_response').text('');
		$('#login_response').css('color','#CCCCCC');
		if($('#username').val()!=""){
			$.ajax({
				url: AJAX_SIGNUP_CHECK,
				type: 'post',
				dataType: 'json',
				data:{
					action: 'validate_check_name',
					signup: $('#username').val()
				},
				success: function(data){
					if(data==false){
						//$('#hidden_enter_email_link').trigger('click');
						sendEmail.mw("show");
					}
					else{
						$('#login_response').css('color','red');
						$('#login_response').text(LANGS['wrong_u']);
					}
				}
			});
		}
		else{
			$('#login_response').css('color','red');
			$('#login_response').text(LANGS['specify_name']);	
		}
	}
	
	function setNewPassword(){
		$.ajax({
			url:	AJAX_AUTH_URL,
			type: 'post',
			dataType: 'json',
			data:{
				action: 	'lost_password',
				username:	$('#username').val(),
				email:		$('input#lost_pass_input').val()//заменить ИД инпута на свой!!!!!!!!!!!!!!!!1
			},
			success: function(data){
				data = JSON.parse(data);
				if(data.status==true){
					////!!!!!!!!!спрятать свой блок
					sendEmail.mw('hide');
					/*$('#lp_email').hide();
					$('#enter_your_email').hide();
					$('#enter_email_confirm_button').hide();
					$('#enter_email_cancel_button').hide();
					$('#check_true_email_answer').css('color','black');*/
				}
				else 
					$('#check_true_email_answer').css('color','red');	
					
				$('#check_true_email_answer').text(data.answer);	
			}
		});	
	};
	
	function sendPassword(pass,chal,username){
		$('#login_response').text('');
		$('#login_response').css('color','#CCCCCC');
		
		var md5pass = hex_md5(hex_md5(pass));
		var pass_chal = hex_md5(md5pass+chal.challenge);
		$.ajax({
			url:	AJAX_AUTH_URL,
			dataType:	'json',
			type: 'post',			
			data: {
				action:		'login',
				username:	username,
				pass_chal:	pass_chal,
				chal_id:	chal.challenge_id,
				remember:	$('#remember_me').is(':checked')				
			},
			success:	function(data){
				if(data)
				{
					if(data.status != 'redirect')
					{
						$('#login_response').css('color','red');
						$('#login_response').text(data.message);
					}
					else
						if(redir)
							window.location.href = redir;
						else
							window.location.replace(data.redirect);
				}					
			}
		});
		return pass_chal;
	};
	
	function keyPressed(e){
		e = e || window.event;   
		var code = e.keyCode || e.which;    
		if(code == 13){
			if($('#username').val()!='' && $('#password').val()!=''){
				login();
			}
			return false;
		}
	}
	
	function loadCapLP(){
		$('.captcha_pic img').remove();
		var cap = new Image();
		cap.src="kcaptcha/kcaptcha.php?target=lp&kill_cache="+Math.random();
		cap.onload = function(){
			$('.captcha_pic').append(this);
		};
	};

	function login()
	{
		validator.resetForm();
		if($('#username').val()!="" && $('#password').val()!="")
			if($.cookie('autologin')!=null && $('#password').val()=='111111111111111111111111111111' && $('#username').val()==username)
					$.ajax({
						url: AJAX_AUTH_URL,
						dataType: 	'json',
						type: 		'post',
						data: {
							action: 	'enter',
							username:	$('#username').val(),
							remember: 	$('#remember_me').is(':checked')
						},
						success: function(data){
							if(data.status=='redirect')
							{
								window.location.replace(data.redirect);
							}
						}
					});
			else
				getChallenge($.trim($('#password').val()),$('#username').val());
		else{
				$('#login_response').css('color','red');
				$('#login_response').text(LANGS['specify_up']);	
			}
	}	
	function afterLoad(){
		loginSlideScript();
		loadCapLP();
		//getNews();
		lpLoadedEvent.fire();
		validator = initValidator();
		
		$('.captcha_pic img').live('click',loadCapLP);
		$('.trust_place,.mcaffee').css({'z-index':100});
		//$("div#toppanel").css({'z-index':120}).find('#panel').slideDown("slow");
		
		$('.proceed_to_reg').live('click',function(){
			
			
			$('.trust_place,.mcaffee').css({'z-index':100});
			$("div#toppanel").css({'z-index':120}).find('#panel').slideDown("slow");
			if($('#open').css('display')!='none')	$("#toggle div").toggle();
		});

		$("#open a").live('click',function(){
			
			$('.trust_place,.mcaffee').css({'z-index':100});
			$("div#toppanel").css({'z-index':120}).find('#panel').slideDown("slow");

		});	
		
		$("#close a").live('click',function(){

			$("div#panel").slideUp("slow",function(){ 
				$(this).parent().css({'z-index':100}); 
				$('.trust_place,.mcaffee').css({'z-index':9999});
			});
		});		
		

		$("#toggle a").live('click',function (e) {
			e.preventDefault();
			$("#toggle div").toggle();
		});
		
		//----------------lost password click-------------------
		$('#lost_password').live('click',function(){
			checkUsername();
		});

				//----------------submit click event-------------------
		$('#submit').live('click',login);
				//----------------enter pressed event------------------
		$('#toppanel').keypress(keyPressed);
		
		
		
		function resetSignupForm(){
					$('#signup, #email,#captcha').val('');
					$("#terms").parent().css('color',"rgb(204, 204, 204)");
					$("#terms").attr('checked',0);
					$('#signup, #email,#captcha').next("span").removeClass('icon_error').removeClass('icon_done');
		}
		
		$('#username, #password, #remember_me, #submit, #lost_password').live('focus',resetSignupForm);
		
		
		function resetLoginForm(){
			$('#username, #password').val('');
			$('#login_response').text('');
			$('#login_response').css('color','#CCCCCC');
		}
		
		$('#signup, #email, #captcha, #terms, .bt_register').live('focus',resetLoginForm);
		
		//login_response

				//---------------- `enter email` fancybox
		/*$('#hidden_enter_email_link').fancybox({
			onStart:function(){
				$('#ui_mw_input').val('');
				$('#lp_email').show();
				$('#enter_your_email').show();
				$('#enter_email_confirm_button').show();
				$('#enter_email_cancel_button').show();
				$('#check_true_email_answer').text('');		
				$('#check_true_email_answer').css('color','black');		
			}
		});
		$('#enter_email_cancel_button').live('click',function(){
			$.fancybox.close();
		});*/
		

		
		
	}
	
	function loadTopPanel(){
	
			$.ajax({
				url: 	AJAX_LOAD_SLIDING_PANEL_URL,
				type:	'post',
				success:  function(data){
						//$('#toppanel').html(data);
						document.getElementById('toppanel').innerHTML = data;
						afterLoad();
				}
			});
	}
	function loginSlideScript(){

		if($.cookie('autologin')!=null && $.cookie('autologin')!="")
		{
			$.ajax({
				url: AJAX_AUTH_URL,
				dataType: 'json',
				type: 'post',
				data: {
					action: 'get_username'
				},
				success: function(data){
					if(data.status=='ok')
					{
						$('#username').val(data.username);
						username = data.username;
						$('#password').val('111111111111111111111111111111');
					}	
				}
				
			});	
		}
	}
	
	/*----------------------------------------------------------------------------------------------------*/
	/*									          Validation											  */	
	/*----------------------------------------------------------------------------------------------------*/
		function initValidator(){
			validator=$('#signup_form').validate({
				debug:			true,
				focusInvalid:	false,
				validClass:		'icon_done',
				errorClass:		'icon_error',
				//errorElement:	'div',
				/*errorPlacement : function(er,el){
						$('#panel').html(er);
				},*/
				rules:{
					signup:{
						required:	true,
						remote: {
							url: 		AJAX_SIGNUP_CHECK,
							type:		'post',
							dataType:	'json',
							data: {
								action:		'validate_check_name'
							}
						}
					},
					email:{
						required:	true,

						remote:	{
							url: 		AJAX_SIGNUP_CHECK,
							type:		'post',
							dataType:	'json',
							data: {
								action:		'validate_check_email'
							}
						}				
					},
					captcha:{
						remote:	{
							url:	AJAX_CAPTCHA_CHECK,
							dataType:	'json',
							data: {
								action:	'check',
								target:	'lp'
							}
						},
						required:	true
					},
					terms: "required"
				},
				messages:{
					signup: {
						required:		false,
						check_name:		false
					},
					email:	{
						required:	false,
						email:		false,
						remote:		false
					}
				},
				highlight:	function(element, errorClass, validClass) {
								if ($(element).attr('id')=='terms') 
									$("#terms").parent().css('color','red')
								else
									$(element).next("span").addClass(errorClass).removeClass(validClass).show();
							},
				unhighlight:	function(element, errorClass, validClass) {
								if ($(element).attr('id')=='terms') 
									$("#terms").parent().css('color',"rgb(204, 204, 204)")
								else
									$(element).next("span").addClass(validClass).removeClass(errorClass).show();
							},
				submitHandler: function(form) {
					form.submit();
				},
				
				showErrors: function(el) {
					if (this.settings.highlight) {
						for (var i = 0; this.errorList[i]; ++i) {
							this.settings.highlight.call(this, this.errorList[i].element,
								this.settings.errorClass, this.settings.validClass);
						}
					}
					if (this.settings.unhighlight) {
						for (var i = 0, elements = this.validElements(); elements[i]; ++i) {
							this.settings.unhighlight.call(this, elements[i],
								this.settings.errorClass, this.settings.validClass);
						}
					}
				}
			});
			
			return validator;
		}
	/*-----------------------------------------------------------------------------*/	
	
$(document).ready(function(){
	loadTopPanel();
	sendEmail = $('<div>').appendTo('body').mw({
		sourceId:'check_email'
	});
	$('input#lost_pass_submit').bind('click',function(){
		if($('input#lost_pass_input').val()!="")
			checkTrueEmail($('#username').val(),$('input#lost_pass_input').val());
	});	
	});	

