/*
*	Interface
*/

function User() {

}

User.prototype.initialze = User_Initialize;
User.prototype.changePass = User_ChangePass;
User.prototype.checkStatus = User_CheckStatus;
User.prototype.basketLogin = User_BasketLogin;
User.prototype.details = User_Details;
User.prototype.detailsLoad = User_DetailsLoad;
User.prototype.login = User_Login;
User.prototype.lostPass = User_LostPass;
User.prototype.register = User_Register;

User.prototype.logged = false;
User.prototype.firstName = '';
User.prototype.lastName = '';
User.prototype.address = '';
User.prototype.town = '';
User.prototype.email = '';

/*
*	Implementation
*/

function User_Initialize() 
{

}

/**
* Check user status
*/
function User_CheckStatus(func)
{
	$j.ajax({
		url: base_path + "/shop/index.php/user/status",
		type: "POST",
		dataType: 'json',
		success: function(data){
			try {
				if (data.success == 1) {
					shop.user.logged = data.logged;
					if (data.logged) {
						$j.ajax({
							url: base_path + "/shop/index.php/user/data",
							type: "POST",
							dataType: 'json',
							success: function(data){
								try {
									$j('#actions .message').html('Dobrodošli, ' + data.user.first_name + ' ' + data.user.last_name);
									$j('#actions .message').show();
									$j('#actions .account').show();
									$j('#actions .logout span').html('Odjava');
									shop.user.firstName = data.user.first_name;
									shop.user.lastName = data.user.last_name;
									if (func != undefined) {
										func();
									}
								} catch (ex) {
									console.error(ex);
								}
							}
						});
					} else {
						$j('#actions .logout span').html('Prijava');
						$j('#actions .message').hide();
						$j('#actions .account').hide();
					}
				}
			} catch (ex) {
				console.error(ex);
			}
		}
	});
}

function User_BasketLogin()
{
	if (shop.user.logged) {
		var html = '\
		<table class="pregled">\
		<thead>\
		</thead>\
		<tbody>\
		<tr>\
		<td>Prijavljeni ste kao ' + shop.user.firstName + ' ' + shop.user.lastName + '.</td>\
		</tr>\
		</tbody>\
		<tfoot>\
		<tr class="btns">\
        <td><a class="step-2" href="#">Odaberi dostavu</a> <a class="custom logout" href="#">Odjavi se</a></td>\
      	</tr>\
		</tfoot>\
		</table>\
		';
		basketLoginHtml = $j('.cart-item-wrap.login').html();
		$j('.cart-item-wrap.login').html(html);
		
		$j('.cart .logout').click(function() {
			if (shop.user.logged) {
				$j.ajax({
					url: base_path + "/shop/index.php/user/logout",
					type: "POST",
					dataType: 'json',
					success: function(data){
						try {
							$j('.cart-item-wrap.login').html(basketLoginHtml);
							shop.user.login();
							shop.user.checkStatus();
						} catch (ex) {
							console.error(ex);
						}
					}
				});
			} else {
				window.location = base_path + '/prijava';
			}
			return false;
		});
		
		$j('#actions .account a').click(function() {
			window.location = base_path + '/moj-racun';
			return false;		
		});
		
		$j('.cart .step-2').click(function() {
			$j('.cart h3:eq(1)').addClass('minimize');
			$j('.cart h3:eq(1)').click();
			
			$j('.cart h3:eq(2)').removeClass('minimize');
			$j('.cart h3:eq(2)').click();
		});
		
	}
}

function User_ChangePass()
{
	$j('#change-pass-form').ajaxForm();
	$j('#change-pass-form .change-password').click(function() {
		var button = $j(this);
		if (button.hasClass('loading')) return false;
		$j('#change-pass-form').ajaxSubmit({
			dataType:  'json', 
		    success: function(data) {
				button.removeClass('loading');
				if (data.success == 1) {
					$j('.success p').html('Vaša lozinka je uspješno izmjenjena! Kliknite <a href="' + base_path + '">ovdje</a> za povratak na naslovnu stranicu.');
					$j('.success').fadeIn();
					$j('.message').fadeOut();
					$j('.form').fadeOut();
					if ($j('.cart').length > 0) {
						if ($j('.cart.login').length == 0) {
							$j('.success').stop();
							$j('.success').hide();
						}
					}
					shop.user.checkStatus(function() {
						if ($j('.cart').length > 0) {
							shop.user.basketLogin();
						}
					});
				} else {
					$j('.message p').html(data.message);
					$j('.message').fadeIn();
				}
		    }
		});
	});
}

function User_Details()
{
	$j('#user-details-form').ajaxForm();
	
	$j('#user-details-form .register').click(function() {
		var button = $j(this);
		if (button.hasClass('loading')) return false;
		$j('#user-details-form').ajaxSubmit({
			dataType:  'json', 
		    success: function(data) {
				button.removeClass('loading');
				if (data.success == 1) {
					$j('.success p').html('Vaš korisnički podaci su uspješno izmjenjeni. Kliknite <a href="' + base_path + '">ovdje</a> za povratak na naslovnu stranicu.');
					$j('.success').fadeIn();
					$j('.form').fadeOut();
					if ($j('.cart').length > 0) {
						if ($j('.cart.login').length == 0) {
							$j('.success').stop();
							$j('.success').hide();
						}
					}
					shop.user.checkStatus(function() {
						if ($j('.cart').length > 0) {
							shop.user.basketLogin();
						}
					});
				} else {
					$j('.message p').html(data.message);
					$j('.message').fadeIn();
				}
		    }
		});
	});
}

function User_DetailsLoad()
{
	if ($j('#user-details-form').length > 0) {
		$j.ajax({
			url: base_path + "/shop/index.php/user/details",
			type: "POST",
			dataType: 'json',
			success: function(data){
				try {
					$j('#user-details-form .register-customer-first').val(data.data.first);
					$j('#user-details-form .register-customer-last').val(data.data.last);
					$j('#user-details-form .register-customer-address').val(data.data.street);
					$j('#user-details-form .register-customer-town').val(data.data.town);
					$j('#user-details-form .register-customer-postal').val(data.data.postal);
					$j('#user-details-form .register-customer-phone').val(data.data.tel);
				} catch (ex) {
					console.error(ex);
				}
			}
		});
	}
}

function User_Login()
{
	$j('#login-form').ajaxForm();
	$j('#login-form .login').click(function() {
		var button = $j(this);
		if (button.hasClass('loading')) return false;
		$j('#login-form').ajaxSubmit({
			dataType:  'json', 
		    success: function(data) {
				button.removeClass('loading');
				if (data.success == 1) {
					$j('.success p').html('Dobrodošli! Kliknite <a href="' + base_path + '">ovdje</a> za povratak na naslovnu stranicu.');
					$j('.success').fadeIn();
					$j('.message').fadeOut();
					$j('.form').fadeOut();
					if ($j('.cart').length > 0) {
						if ($j('.cart.login').length == 0) {
							$j('.success').stop();
							$j('.success').hide();
						}
					}
					shop.user.checkStatus(function() {
						if ($j('.cart').length > 0) {
							shop.user.basketLogin();
						}
					});
				} else {
					$j('.message p').html(data.message);
					$j('.message').fadeIn();
				}
		    }
		});
	});
}

function User_LostPass()
{
	$j('#lost-pass-form').ajaxForm();
	$j('#lost-pass-form .recover-password').click(function() {
		var button = $j(this);
		if (button.hasClass('loading')) return false;
		$j('#lost-pass-form').ajaxSubmit({
			dataType:  'json', 
		    success: function(data) {
				button.removeClass('loading');
				if (data.success == 1) {
					$j('.success p').html('Na Vašu e-mail adresu poslan je link za promjenu lozinke! Kliknite <a href="' + base_path + '">ovdje</a> za povratak na naslovnu stranicu.');
					$j('.success').fadeIn();
					$j('.message').fadeOut();
					$j('.form').fadeOut();
					if ($j('.cart').length > 0) {
						if ($j('.cart.login').length == 0) {
							$j('.success').stop();
							$j('.success').hide();
						}
					}
					shop.user.checkStatus(function() {
						if ($j('.cart').length > 0) {
							shop.user.basketLogin();
						}
					});
				} else {
					$j('.message p').html(data.message);
					$j('.message').fadeIn();
				}
		    }
		});
	});
}

function User_Register()
{
	$j('#register-form').ajaxForm();
	
	$j('#register-form .register').click(function() {
		var button = $j(this);
		if (button.hasClass('loading')) return false;
		$j('#register-form').ajaxSubmit({
			dataType:  'json', 
		    success: function(data) {
				button.removeClass('loading');
				if (data.success == 1) {
					$j('.success p').html('Vaš korisnički račun je uspješno kreiran. Kliknite <a href="' + base_path + '">ovdje</a> za povratak na naslovnu stranicu.');
					$j('.success').fadeIn();
					$j('.form').fadeOut();
					if ($j('.cart').length > 0) {
						if ($j('.cart.login').length == 0) {
							$j('.success').stop();
							$j('.success').hide();
						}
					}
					shop.user.checkStatus(function() {
						if ($j('.cart').length > 0) {
							shop.user.basketLogin();
						}
					});
				} else {
					$j('.message p').html(data.message);
					$j('.message').fadeIn();
				}
		    }
		});
	});
}
