$(document).ready (function ()
{
	$("#txtUsername").keypress (function (e){if (e.keyCode == 13){User.login ();}});
	$("#txtPassword").keypress (function (e){if (e.keyCode == 13){User.login ();}});
	$("#txtCaptcha").keypress (function (e){if (e.keyCode == 13){User.login ();}});
})

function User () {}

User.enterTxtUser = function ()
{
  if ($("#txtUsername").val () == $("#hddnUsername").val ())
  {
    $("#txtUsername").val ("");
  }
}

User.leaveTxtUser = function ()
{
  if ($("#txtUsername").val () == "")
  {
    $("#txtUsername").val ($("#hddnUsername").val ());
  }
}

User.enterTxtPass = function ()
{
  if ($("#txtPassword").val () == $("#hddnPassword").val ())
  {
    $("#tdUserPassword").html ('<input type="password" id="txtPassword" onfocus="User.enterTxtPass ();" onblur="User.leaveTxtPass ();">');
    $("#txtPassword").focus ();
    $("#txtPassword").keypress (function (e){if (e.keyCode == 13){User.login ();}});
  }
}

User.leaveTxtPass = function ()
{
  if ($("#txtPassword").val () == "")
  {
    $("#tdUserPassword").html ('<input type="text" id="txtPassword" onfocus="User.enterTxtPass ();" onblur="User.leaveTxtPass ();">');
    $("#txtPassword").val ($("#hddnPassword").val ());
    $("#txtPassword").keypress (function (e){if (e.keyCode == 13){User.login ();}});
  }
}

User.login = function ()
{
	var txtUsername = General.escape2 ($("#txtUsername").val ());
	var txtPassword = General.escape2 ($("#txtPassword").val ());
	var txtCaptcha = General.escape2 ($("#txtCaptcha").val ());
	var chkbUserRemember = General.escape2 ($("#chkbUserRemember:checked").val ());
	var redirect = "";
	
	if (document.location.toString ().match (/\&redirect=(.+)/) != null)
	{
		redirect = document.location.toString ().match (/\&redirect=(.+)/)[1];
	}

	if (jQuery.trim (txtUsername) != "")
	{
		$("input").css ({backgroundPosition : "0px 0px"});
		$.get (mainUrl + "mods/user/receiver.php?req=login&username=" + txtUsername + "&password=" + txtPassword + "&captcha=" + txtCaptcha + "&remember=" + chkbUserRemember + "&redirect=" + redirect, null,	function (data)
		{
			$("#divUserPanel").html (data);
			$("#txtUsername").keypress (function (e){if (e.keyCode == 13){User.login ();}});
			$("#txtPassword").keypress (function (e){if (e.keyCode == 13){User.login ();}});
			$("#txtCaptcha").keypress (function (e){if (e.keyCode == 13){User.login ();}});
		});
	}
}

User.logout = function ()
{
  General.eraseCookie ("user");
	$.get (mainUrl + "mods/user/receiver.php?req=logout", null,	function (data)
	{
		document.location.reload ();
	});
}

User.sendNewPassword = function ()
{
	var getData = "&email=" + General.escape2 ($("#txtEmail").val ());
	getData += "&captcha=" + General.escape2 ($("#txtCaptcha").val ());

	$.get (mainUrl + "mods/user/receiver.php?req=new_password" + getData, null,	function (data)
	{
		General.mildAlert (data, "General.reload");
	});
}

User.register = function ()
{
  var getQry = "";
	var username = $("#txtUserName").val ();
	var email = $("#txtUserEmail").val ().match (/^[^@]+@[^@]+.[a-z]{2,}$/i);

	getQry += "&txtUserName=" + General.escape2 (username);
	getQry += "&txtUserPassword=" + General.escape2 ($("#txtUserPassword").val ());
	getQry += "&txtUserPassword2=" + General.escape2 ($("#txtUserPassword2").val ());
	getQry += "&slctUserCountry=" + General.escape2 ($("#slctUserCountry").val ());
	getQry += "&txtUserFullName=" + General.escape2 ($("#txtUserFullName").val ());
	getQry += "&txtUserWebsite=" + General.escape2 ($("#txtUserWebsite").val ());
	getQry += "&txtUserEmail=" + General.escape2 (email);

	if (jQuery.trim (username).length < 6)
	{
		General.mildAlert ("Username must be at least 6 characters");
	}
	else
	{
		if (email == null)
		{
			General.mildAlert ("Please fill a correct email");
		}
		else
		{
			$.get (mainUrl + "mods/user/receiver.php?req=register" + getQry, null,	function (data)
			{
				General.mildAlert (data, "General.reload");
			});
		}
	}
}

User.registerRemote = function ()
{
  var getQry = "";

  $("input[id^='txtUser'], select[id^='slctUser'], input[id^='hddnUser']").each (function ()
  {
    getQry += "&" + $(this).attr ("id") + "=" + General.escape2 ($(this).val ());
  });

  $.get (mainUrl + "mods/user/receiver.php?req=register_remote" + getQry, null,	function (data)
  {
    General.mildAlert (data, "User.remoteRegistration");
  });
}

User.savePanel = function (refPanel)
{
  $("#divUserDetails_" + refPanel + " input,#divUserDetails_" + refPanel + " select").css ({backgroundPosition : "0px 0px"});
	var fields = $("#divUserDetails_" + refPanel + " input,#divUserDetails_" + refPanel + " select");
	var request = "";
  var i;
	for (i = 0;i < fields.length;i++)
	{
    if ($("#" + fields[i].id).attr ("type") == "checkbox")
    {
      request += "&" + fields[i].id + "=" + (($("#" + fields[i].id).attr ("checked") === true) ? (1) : (0));
    }
    else
    {
      request += "&" + fields[i].id + "=" + General.escape2 ($("#" + fields[i].id).val ());
    }
	}
	$.get (mainUrl + "mods/user/receiver.php?req=save_panel&ref=" + refPanel + request, null,	function (data)
	{
    $("#divUserDetails_" + refPanel + " input,#divUserDetails_" + refPanel + " select").css ({backgroundPosition : "0px 40px"});
		General.mildAlert (data, "General.reload");
	});
}

User.togglePanel = function (refPanel)
{
	$("div[id^='divUserDetails_']").each (function ()
	{
		if ($(this).attr ("id") == "divUserDetails_" + refPanel)
		{
			$(this).show ();
		}
		else
		{
			$(this).hide ();
		}
	});
}

User.remoteLogin = function (refRemote)
{
  childWindow = window.open(mainUrl + 'mods/user/remote.php?remote=' + refRemote, 'remoteLogin', 'width=800,height=500,location=0')
	if (childWindow.opener == null)
	{
		childWindow.opener = self;
	}
}

User.remoteRegistration = function ()
{
  if ($("#hddnUserRegistrationSuccess").val () == $("#divMildAlertText").text ())
  {
    document.location = mainUrl + currLang + "/my_hema";
  }
  General.closeMildAlert ();
}

User.toggleServicePanel = function (refPanel)
{
	$("#ulServicePanels li[rel='service']").each (function ()
	{
		if ($(this).attr ("id") == "liServicePanel_" + refPanel)
		{
			$(this).show ();
		}
		else
		{
			$(this).hide ();
		}
	});
	$("#ulServiceList li a").removeClass ("selected");
	$("#hrefService" + refPanel).addClass ("selected");
}

User.enableService = function (refService)
{
	if (confirm ("Are you sure?") === true)
	{
		$.get (mainUrl + "mods/user/receiver.php?req=enable_service&name=" + General.escape2 (refService), null,	function (data)
		{
			General.mildAlert (data, "General.reload");
		});
	}
}

User.disableService = function (refService)
{
	if (confirm ("Are you sure?") === true)
	{
		$.get (mainUrl + "mods/user/receiver.php?req=disable_service&name=" + General.escape2 (refService), null,	function (data)
		{
			General.mildAlert (data, "General.reload");
		});
	}
}

User.initUpload = function ()
{
  var button = $("#hrefChangeAvatar"), interval;

  new AjaxUpload (button,
  {
    action: mainUrl + "mods/user/receiver.php?req=change_avatar",
    name: "avatar",
    onSubmit : function (file, ext)
    {
      button.text ("Uploading");
      this.disable ();
      interval = window.setInterval (function()
      {
        var text = button.text ();
        if (text.length < 13)
        {
          button.text (text + ".");
        }
        else
        {
          button.text ("Uploading");
        }
      }, 200);
    },
    onComplete: function (file, response)
    {
      button.text ("Change");
      window.clearInterval (interval);
      $("#divUserAvatar").html (response);
      this.enable ();
			General.mildAlert ($("#hddnUserAvatarChanged").val ());
    }
  });
}

User.deleteAvatar = function ()
{
	$.get (mainUrl + "mods/user/receiver.php?req=delete_avatar", null,	function (data)
	{
		$("#divUserAvatar").html (data);
		General.mildAlert ($("#hddnUserAvatarChanged").val ());
	});
}

