$(document).ready(function()
{
    initProductDetailBuyButtons();
    
    /**
     * form#alertSignupForm.submit
     *
     * brand alert signup form ajax
     * submit
     */
    $('#alertSignupForm').submit(function()
    {
        if ($(this).find('input[name=email_address]').val() == '')
        {
            alert('Please enter your email address');
            return false;
        }
        else if (!$(this).find('input[name=email_address]').val().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/))
        {
            alert('Please enter a valid email address');
            return false;
        }
        
        /**
         * build data
         */
        var data = 
        {
            email_address: $(this).find('input[name=email_address]').val(),
            communication_signup: $(this).find('input[name=communication_signup]').val(),
            form_name: $(this).find('input[name=form_name]').val(),
            alert_type: $(this).find('input[name=alert_type]').val(),
            alert_value: $(this).find('input[name=alert_value]').val()
        }
        
        var currentForm = $(this);
        
        $.ajax(
        {
			type     : 'GET',
			url      : $(this).attr('action'),
			async    : false,
			data     : data,
			dataType : 'text',
			success  : function(response)
			{
			    currentForm.find('p.emailLine').hide();
			    currentForm.find('p.checkboxLine').hide();
			    currentForm.find('p.clearFloat').hide();
			    currentForm.find('p.formSentMessage').show();
			    return false;
			}
        });
        return false;
    });
	
	
	
	
	/**
     * form#alertSignupForm.submit
     *
     * brand alert signup form ajax
     * submit
     */
    $('#soldOutAlertForm').submit(function()
    {
        if ($(this).find('input[name=email_address]').val() == '')
        {
            alert('Please enter your email address');
            return false;
        }
        else if (!$(this).find('input[name=email_address]').val().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/))
        {
            alert('Please enter a valid email address');
            return false;
        }
        
        /**
         * build data
         */
        var data = 
        {
            email_address: $(this).find('input[name=email_address]').val(),
            communication_signup: $(this).find('input[name=communication_signup]').val(),
            form_name: $(this).find('input[name=form_name]').val(),
            alert_type: $(this).find('input[name=alert_type]').val(),
            alert_value: $(this).find('input[name=alert_value]').val()
        }
        
        var currentForm = $(this);
        
        $.ajax(
        {
			type     : 'GET',
			url      : $(this).attr('action'),
			async    : false,
			data     : data,
			dataType : 'text',
			success  : function(response)
			{
			    currentForm.find('p.emailLine').hide();
			    currentForm.find('p.checkboxLine').hide();
			    currentForm.find('p.formSentMessageSoldOut').show();
			    return false;
			}
        });
        return false;
    });
	
	
	
	
	
    
    /**
     * form#friendForwardForm.submit
     *
     * refer a friend ajax submission
     */
    $('#friendForwardForm').submit(function()
    {
        var data = 
        {
            friends_name: $(this).find('input[name=friends_name]').val(),
            friends_email: $(this).find('input[name=friends_email]').val(),
            your_name: $(this).find('input[name=your_name]').val(),
            your_message: $(this).find('textarea[name=your_message]').val(),
            product_sku: $(this).find('input[name=product_sku]').val(),
            form_name: $(this).find('input[name=form_name]').val()
        }
        
        if (data.friend_name == '')
        {
            alert('Please enter your friend\'s name');
            return false;
        }
        else if (data.friends_email == '')
        {
            alert('Please enter your friend\'s email');
            return false;
        }
        else if (!data.friends_email.match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/))
        {
            alert('Please enter a valid address for your friend\'s email');
            return false;
        }
        else if (data.your_name == '')
        {
            alert('Please enter your name');
            return false;
        }
        else if (data.your_message == '')
        {
            alert('Please enter your message');
            return false;
        }
        
        var currentForm = $(this);
        
        var form = $(this);
        $.ajax(
        {
			type     : 'GET',
			url      : form.attr('action'),
			async    : false,
			data     : data,
			dataType : 'text',
			success  : function(response)
			{
			    currentForm.hide();
			    currentForm.closest('div').find('p').not('.formSentMessage').hide();
			    currentForm.closest('div').find('div.clearFloat').hide();
			    currentForm.closest('div').find('p.formSentMessage').show();
			}
        });
        return false;
    });
    
    /**
     * a#conversionLink.click
     *
     * currency conversion on product detail page
     */
    $('a#conversionLink').click(function()
    {
        var currentLink = $(this);
        var currentCode = $(this).attr('rel');
        $.ajax(
        {
			type     : 'GET',
			url      : $(this).attr('href')+'?code='+$(this).attr('rel'),
			async    : false,
			dataType : 'text',
			success  : function(response)
			{
			    switch (currentCode)
			    {
			        case 'GBP':
			            currentLink.attr('rel', 'USD');
			            $('#dcProductMainPrice').html('koodos price: &pound;'+response);
			            break;
			        case 'USD':
			            currentLink.attr('rel', 'EUR');
			            $('#dcProductMainPrice').html('koodos price: $'+response);
			            break;
			        case 'EUR':
			            currentLink.attr('rel', 'GBP');
			            $('#dcProductMainPrice').html('koodos price: &euro;'+response);
			            break;
			    }
			    return false;
			}
        });
        return false;
    });

    
	
	$('#friendsName').focus(function() {
		if($(this).val()=="Friend's name...") {
			$(this).attr("value","");
		}
	});
	$('#friendsName').blur(function() {
		if($(this).val()=="") {
			$(this).val("Friend's name...");
		}
	});
	
	$('#friendsEmail').focus(function() {
		if($(this).val()=="Friend's email...") {
			$(this).attr("value","");
		}
	});
	$('#friendsEmail').blur(function() {
		if($(this).val()=="") {
			$(this).val("Friend's email...");
		}
	});
	
	$('#yourName').focus(function() {
		if($(this).val()=="Your name...") {
			$(this).attr("value","");
		}
	});
	$('#yourName').blur(function() {
		if($(this).val()=="") {
			$(this).val("Your name...");
		}
	});
	
	$('#yourMessage').blur(function() {
		if($(this).val()=="") {
			$(this).val("I love this!");
		}
	});
	/*
	$("#friendsName").focus(function() {
        if ( $("#friendsName").val() == "Friend's name..." )
        {
            $("#friendsName").val("");
        }
        if ( $("#friendsEmail").val() == "" )
        {
            $("#friendsEmail").val("Friend's email...");
        }
        if ( $("#yourName").val() == "" )
        {
            $("#yourName").val("Your name...");
        }
    });
    $(document).not("#friendsName").focus(function() {
        if ( $("#friendsName").val() == "" )
        {
            $("#friendsName").val("Friend's name...");
        }
    });
    
    $("#friendsEmail").focus(function() {
        if ( $("#friendsEmail").val() == "Friend's email..." )
        {
            $("#friendsEmail").val("");
        }
        if ( $("#friendsName").val() == "" )
        {
            $("#friendsName").val("Friend's name...");
        }
        if ( $("#yourName").val() == "" )
        {
            $("#yourName").val("Your name...");
        }
    });
    $(document).not("#friendsEmail").focus(function() {
        if ( $("#friendsEmail").val() == "" )
        {
            $("#friendsEmail").val("Friend's email...");
        }
    });
    
    $("#yourName").focus(function() {
        if ( $("#yourName").val() == "Your name..." )
        {
            $("#yourName").val("");
        }
        if ( $("#friendsName").val() == "" )
        {
            $("#friendsName").val("Friend's name...");
        }
        if ( $("#friendsEmail").val() == "" )
        {
            $("#friendsEmail").val("Friend's email...");
        }
    });
    $(document).not("#yourName").focus(function() {
        if ( $("#yourName").val() == "" )
        {
            $("#yourName").val("Your name...");
        }
    });
    
    $("#yourMessage").focus(function() {
        if ( $("#yourName").val() == "" )
        {
            $("#yourName").val("Your name...");
        }
        if ( $("#friendsName").val() == "" )
        {
            $("#friendsName").val("Friend's name...");
        }
        if ( $("#friendsEmail").val() == "" )
        {
            $("#friendsEmail").val("Friend's email...");
        }
    });
	*/
    
    $("#friendForwardPopup").find(".close").click(function() {
        setTimeout("resetFriendForwardPopup()",400);
    });
});

function resetFriendForwardPopup()
{
    $("#friendForwardPopup").find("#friendsName").val("Friend's name...");
    $("#friendForwardPopup").find("#friendsEmail").val("Friend's email...");
    $("#friendForwardPopup").find("#yourName").val("Your name...");
    $("#friendForwardPopup").find("#yourMessage").val("");
    currentForm = $("#friendForwardForm");
    currentForm.show();
    currentForm.closest('div').find('p').not('.formSentMessage').show();
    currentForm.closest('div').find('div.clearFloat').show();
    currentForm.closest('div').find('p.formSentMessage').hide();
}

function initProductDetailBuyButtons()
{
    /**
     * a.gridBuyButton.click
     *
     * product detail buy button
     * event to make ajax based instead 
     * of static
     */
    $('a.gridBuyButton, #singleOptionBuyButton').unbind('click').click(function()
    {
        /**
         * save current html and show loading
         * animation
         */
        var currentContainer = $(this).parent();
        var previousHTML = currentContainer.html();
        
        currentContainer.html('<img src="/images/ajax-loader-bigger.gif" class="ajaxLoadImg" />');
        
        $.ajax(
        {
			type     : 'GET',
			url      : $(this).attr('href'),
			async    : false,
			dataType : 'text',
			success  : function(response)
			{
			    if (response == 'You have the maximum quantity of this item in your basket.')
			    {
			        alert('Sorry that item is no longer available');
			        currentContainer.html(previousHTML);
			        initProductDetailBuyButtons();
			        window.location = window.location;
			        return false;
			    }
			    else
			    {
    			    /**
    			     * get new basket contents and
    			     * update summary
    			     */
    			    $.ajax(
                    {
            			type     : 'GET',
            			url      : '/dcBasket/getCurrentContents?rand='+Math.random(),
            			async    : false,
            			dataType : 'html',
            			success  : function(response)
            			{        			    
            			    /**
            			     * show original html, scroll to top 
            			     * of window
            			     */
            			    currentContainer.html(previousHTML);
            			    
            			    var newHref = 'javascript:parent.listerCloseQuickView(\''+response+'\');';
                    	    window.location = newHref;
                    	    
                    	    initProductDetailBuyButtons();
            			}
                    });
                }
			}
        });
        return false;
    });
}

function initBasketSummary()
{
    $('a#basketLink').click(function() {
        $('#basketItemsPreview').slideToggle(600);
        return false;
      });
    
    $('a#basketSummaryClose').click(function() {
        $('#basketItemsPreview').slideUp(600);
        return false;
      });
}