﻿
//support functions

var urlParams = {};
(function () {
    var e,
        a = /\+/g,  // Regex for replacing addition symbol with a space
        r = /([^&;=]+)=?([^&;]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = window.location.search.substring(1);

    while (e = r.exec(q))
        urlParams[d(e[1])] = d(e[2]);
})();

function is_numeric(input)
{
   return (input - 0) == input && input.length > 0;
}

Array.prototype.shuffle = function () {
    for (var rnd, tmp, i = this.length; i; rnd = parseInt(Math.random() * i), tmp = this[--i], this[i] = this[rnd], this[rnd] = tmp);
};

(function ($) {
    jQuery.fn.liveDraggable = function (opts) {
        this.live("mouseover", function () {
            if (!$(this).data("init")) {
                $(this).data("init", true).draggable(opts);
            }
        });
    };
})(jQuery);

$(document).ready(function () {

    //login box
    var login = false;
    $('.loginmodalclose, .modalclose').live('click', function () {
        login = false;
        $('.loginmodal, .modaldiv').remove();
        return false;
    });
    $('.loginbutton').click(function () {
        if (!login) {
            login = true;
            $('body').append('<div class="loginmodal"><a class="loginmodalclose" href="#" title="close">[x]</a><h2>Member Login</h2><p class="modal_message modal_information">Enter your username/email and password to login.</p><fieldset class="form"><form id="modal_loginform" method="post" action="/user/login"><div class="editor-label"><label>Username/Email</label></div><div class="editor-field"><input type="text" name="username" id="modal_username" /></div><div class="editor-label"><label>Password</label></div><div class="editor-field"><input type="password" name="password" id="modal_password" /></div><div class="editor-field"><input type="submit" class="submit button" value="Login" id="loginsubmit" /><a class="forgotten-password" href="/user/forgottenpassword">Forgotten your password?</a></div></form></fieldset></div>');
        } else {
            login = false;
            $('.loginmodal').remove();
        }
        return false;
    });

    $('.confirm').click(function () {
        return confirm('Are you sure?');
        return false;
    });

    // login modal
    $('.loginmodal').liveDraggable();
    $('#modal_loginform').live('submit', function (e) {
        var IsLoggedIn = false;
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "/user/login",
            data: { username: $('#modal_username').val(), password: $('#modal_password').val() },
            dataType: 'json',
            success: function (result) {
                if (result['LoggedIn']) {
                    $('p.modal_message').removeClass('modal_information').addClass('modal_success');
                    $('p.modal_message').html('Welcome, ' + result['FirstName']);
                    $('.loginbutton').removeClass('loginbutton').addClass('accountdetails').text("Account details").attr('href', '/user').unbind('click');
                    $('.registerbutton').removeClass('registerbutton').text("Logout").attr({ 'href': '/user/logout', 'style': 'position: absolute; left: 182px;' }).unbind('click');
                    $('#checkout_disabled_remove').remove();
                    $('#login_checkout_swap').html('<a href="/basket/selectaddress" class="button submit"><strong>CHECKOUT</strong></a>');
                    $('.loginmodal').delay(1700).queue(function () {
                        $(this).remove();
                    });
                } else {
                    $('p.modal_message').removeClass('modal_information').addClass('modal_error');
                    $('p.modal_message').html(result['Error']);
                }
            },
            complete: function () {
                //er?
            }
        }, "json");
    });

    //shop hover function - displays the "highlight"
    $('.shop_item').hover(
        function () {
            $(this).css('position', 'relative');
            var a = $('<a class="hover" href="' + $(this).find('h4 a').attr('href') + '" title="' + $(this).find('h4 a').attr('title') + '"></a>');
            $(this).append(a);
//                        $(this).append('<a class="hover" href="' + $(this).find('h4 a').attr('href') + '" title="' + $(this).find('h4 a').attr('title') + '"></a>');
//                        $(this).find('.hover').css({ display: 'block', zIndex: 1000, width: '230px', height: '230px',
//                            position: 'absolute',
//                            left: '50%', top: '10px', opacity: .2,
//                            marginLeft: '-115px',
//                            border: 'solid 1px black'
//                        });
//                        $(this).find('.hover').animate({ width: '230px', opacity: 0.35, marginLeft: '-115px ' }, 400);
//                        a.css({ display: 'block', zIndex: 1000, width: '230px', height: '230px', position: 'absolute', left: '0px', top: '0px' });
//                        var shadow = '3px 3px 8px #666';
//                        a.css('box-shadow', shadow).css('-moz-box-shadow', shadow).css('-webkit-box-shadow', shadow);
//                        $(this).find('img').css({margin: '-3px 0px 0px -3px', padding: '0 3px 3px 0'});
        },
        function () {
//            $(this).find('.hover').remove();
//            $(this).find('img').css({ margin: '0px 0px 0px 0px', padding: '0px 0 0 0px' });
        }
    );

    $('#send_this_page').click(function () {
        form = '<form id="modal_sendtofriendform" method="post" action="/user/sendtofriend"><div class="editor-label"><label>Your Name</label></div><div class="editor-field"><input type="text" name="yourname" id="modal_yourname" /></div><div class="editor-label"><label>Friends Name</label></div><div class="editor-field"><input type="text" name="name" id="modal_name" /></div><div class="editor-label"><label>Friend\'s Email Address</label></div><div class="editor-field"><input type="text" name="email" id="modal_email" /></div><div class="editor-label"><label>Your Message</label></div><div class="editor-field"><input type="text" name="message" id="modal_message" /></div><div class="editor-field"><input type="submit" class="submit button" value="Send email" id="loginsubmit" /><input type="hidden" id="modal_url" name="url" value="' + window.location + '" /> </div></form>'
        GenerateModal("send_to_friend", "Send To A Friend", "Enter your friends details below", form);
        $('.send_to_friend').liveDraggable();
        //alert(window.location);
        return false;
    });
    $('#modal_sendtofriendform').live('submit', function (e) {
        var IsLoggedIn = false;
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "/user/sendtofriend",
            data: { your_name: $('#modal_yourname').val(), name: $('#modal_name').val(), email: $('#modal_email').val(), url: $('#modal_url').val(), themessage: $('#modal_message').val() },
            dataType: 'json',
            success: function (result) {
                if (result['Success']) {
                    $('p.modal_message').removeClass('modal_information').addClass('modal_success');
                    $('p.modal_message').html('Thanks, ' + result['YourName'] + '. <br /><br /> The email has been sent to ' + result["Name"] + ' (' + result["Email"] + ')');
                    $('.loginbutton').removeClass('loginbutton').addClass('accountdetails').text("Account details").attr('href', '/user').unbind('click');
                } else {
                    $('p.modal_message').removeClass('modal_information').addClass('modal_error');
                    $('p.modal_message').html(result['ErrorMessage']);
                }
            },
            complete: function () {
                // tidy up display...
            }
        }, "json");
    });

    $('#emailupdates').live('submit', function (e) {
        var IsLoggedIn = false;
        var status = $('#emailupdate_status');
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "/user/emailupdates",
            data: { emailaddress: $('#emailupdate_email').val() },
            dataType: 'json',
            success: function (result) {
                if (result['Success']) {
                    status.removeClass("error").addClass("success").css({ display: 'block' }).html("Your details have been saved.");
                } else {
                    status.removeClass("success").addClass("error").css({ display: 'block' }).html("There was an error saving your details.  Try again later ");
                }
            },
            complete: function () {
                // tidy up display...
            }
        }, "json");
    });

	if ($.browser.msie && $.browser.version == 7.0){
		var zIndexNumber = 1000;
			$('div').each(function() {
				$(this).css('zIndex', zIndexNumber);
				zIndexNumber -= 10;
			});
	}
	
	// Sizing guide
	var fadeout_time = 300;
    var fade_in_time = 300;
	
	var sizingGuide = $('.shop_list_container #sizing-guide').clone();
	$('.shop_list_container #sizing-guide').hide();
	
	var sizing = false;
    $('.sizingmodalclose, .modalclose').live('click', function () {
        sizing = false;
        $('.sizingmodal, .modaldiv').remove();
        return false;
    });
    $('.sizing-guide').click(function (e) {
        if (!sizing) {
            sizing = true;
            $('body').append('<div class="sizingmodal" style="width: 600px; padding-top: 15px; height: 1020px; margin-left: -300px; top: 100px;"><a class="sizingmodalclose" href="#" title="close">[x]</a><div></div></div>');
			$('.sizingmodal div').html(sizingGuide);
        } else {
            sizing = false;
            $('.loginmodal').remove();
        }
        return false;
		e.preventDefault();
    });

    $('.sizingmodal').liveDraggable();
	
	$('.darkbox_bg, .sizingmodalclose .close').live('click', function (e) {
        $('.sizingmodalclose').remove();
        e.preventDefault();
    });

	if ($.browser.webkit) {
		$('.form').addClass('webkit');
	}

});

function GenerateModal(class_name, title, info_message, form) {
    
    //generate html
    if ($('.' + class_name).length == 0) {
        $('body').append('<div class="' + class_name + ' modaldiv"><a class="' + class_name + 'close modalclose" href="#" title="close">[x]</a><h2>' + title + '</h2><p class="modal_message modal_information">' + info_message + '</p><fieldset class="form">' + form + '</fieldset></div>');
        $('.' + class_name).liveDraggable();
    }
    //move modal to view screen
    $('.' + class_name).css({ position: 'absolute', top: $(this).scrollTop() + 100 + 'px', left: '50%' });

}

