jQuery.noConflict( );
jQuery.fn.ajaxSubmit.debug=true; 

var basketOpen = false;
var basketReturnToState = '';
var activeTab;
var oldAction = '';

jQuery(document).ready(function() { 
	
    // bind 'myForm' and provide a simple callback function
    jQuery('.add-to-cart button').click(function()
    {

    	var options = {  
    	        success:       showResponse,  // post-submit callback 
    	        beforeSubmit: showUpdaters,
    	        // other available options: 
    	        //url:       url         // override for form's 'action' attribute 
    	        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
    	        dataType:  'html'        // 'xml', 'script', or 'json' (expected server response type) 
    	        //clearForm: true        // clear all form fields after successful submit 
    	        //resetForm: true        // reset the form after successful submit 
    	 
    	        // $.ajax options can be used here too, for example: 
    	        //timeout:   3000 
    	    }; 
    	
    	// because there are some option fields outside of the form, we need to include them
    	// serialising them and adding them to the action as get params
    	oldAction = jQuery("#product_addtocart_form").attr('action');
    	jQuery("#product_addtocart_form").attr('action', oldAction+'?'+jQuery('.product-custom-option,.super-attribute-select, fieldset.add-to-cart .qty').fieldSerialize());

    	jQuery("#product_addtocart_form").ajaxSubmit(options);
    	return false;

    });
    
    jQuery('.open-basket').toggle(function(){
    	//jQuery('.header .links').show('slow');
    	//jQuery('.block-cart .block-title').show('slow');
    	openBasket();
    	
    	return false;
    },function(){
    	//jQuery('.header .links').hide('slow');
    	closeBasket();
    	return false;
    });
    
    // if there are tabbed info on this product page, sort them out
    jQuery('.tabbed-info h3').click(function()
    {
    	activeTab = jQuery(this);
    	
    	jQuery('.tabbed-info .active .std').hide();
    	jQuery('.tabbed-info .active').removeClass('active');
    	if (jQuery.browser.msie)
    	{
    		activeTab.parent().addClass('active').find('.std').show();
    	}
    	else
    	{
    		activeTab.parent().addClass('active').find('.std').slideDown();
    	}	
    	
    	
    });
    
    setupDelete();
    
    jQuery('#convertINCHtoCM').click(function()
    {
    	if( isNaN( parseFloat( jQuery('#inchIN').val() ) ) ) 
    	{
    		alert('Please only enter numbers in the inches field');
    	}
    	else
    	{
    		jQuery('#cmOUT').html(  parseFloat(jQuery('#inchIN').val()*2.54).toFixed(2)   );
    	}
    });
    
    jQuery('#KongDog').change(function()
	{
    	if (jQuery('#KongDog').val()!='') jQuery("#issize").html(' is size <b>'+jQuery('#KongDog').val()+'</b>');
    	else jQuery("#issize").html('');
	});
    
    jQuery('.products-grid tr td').hover(
    		function() {
    			jQuery(this).addClass('mouseover');
    		},
    		function() {
    			jQuery(this).removeClass('mouseover');
    		}
    );
    
}); 




// post-submit callback 

function setupDelete(){
	  jQuery('.product-details .btn-remove').click(function(){
		  prepareBasketForUpdate();
		  
		  var url = jQuery(this).attr('href');
	    	
	    	jQuery.get(url, function(data){
	    		var basket = jQuery('.block-cart .open-close p',data);
	    		var biggerbasket = jQuery('.block-cart .block-content',data);
	    		var checkout = jQuery('.block-cart .open-close .actions',data);
	    		   
	    		jQuery('.block-cart .open-close p').replaceWith(basket);
	    		jQuery('.block-cart .block-content').replaceWith(biggerbasket);

	    		   if(jQuery('block-cart .open-close .actions'))
	    		   {

	    			   jQuery('.block-cart .open-close .actions').replaceWith(checkout);
	    		   }
	    		   else
	    		   {
	    			   
	    			   jQuery('.block-cart .open-close').prepend(checkout);
	    		   }
	    		
	    		
	    		returnBasketAfterUpdate();
	    		
	    	});
	    	
	    	return false;
	    });
}

function showResponse(responseText, statusText)  {
	
   scrollTo(0,0);

   // put the action on the form back to normal
   jQuery("#product_addtocart_form").attr('action', oldAction);
	
   var message = jQuery('#messages_product_view',responseText).html();
   var checkout = jQuery('.block-cart .open-close .actions',responseText);
   var basket = jQuery('.block-cart .block-content',responseText);
   var amount = jQuery('.block-cart .open-close .amount',responseText);
   jQuery('.add-to-cart .button span').text('Add to Basket');
   jQuery('.block-cart .block-content').replaceWith(basket);
   jQuery('.block-cart .open-close .amount').replaceWith(amount);
   
   
   if(jQuery('.block-cart .open-close .actions').get(0))
   {
	   jQuery('.block-cart .open-close .actions').replaceWith(checkout);
   }
   else
   {
	   jQuery('.block-cart .open-close').prepend(checkout);
   }
   
   jQuery('.product-back').after(message);
   setupDelete();
   returnBasketAfterUpdate();
   //showHideBasket();
} 

function showUpdaters(){
	jQuery('.add-to-cart .button span').text('Adding...');
	prepareBasketForUpdate();
}

function prepareBasketForUpdate()
{
	if (basketOpen) basketReturnToState = 'Open';
	else basketReturnToState = 'Closed';
	
	closeBasket();
	//jQuery('.block-cart .block-content').text("Updating...");
	jQuery('.block-cart .open-close .amount').text("Updating...");
	jQuery('ul.messages').slideUp(function(){
		jQuery('ul.messages').remove();
	})
}

function returnBasketAfterUpdate()
{
	if (jQuery('.block-cart .open-close .amount').is('.empty-basket'))
	{
		closeBasket();
	}
	else if (basketReturnToState=='Open') 
   	{
		openBasket();
   	}
   else openBasket(function()
	{	   
	   setTimeout(closeBasket, 1000); 
   	}
   );
}

function setLocationAjax(button, url){
	jQuery(button).text('Adding...');
	jQuery('.block-cart .open-close p').text("Updating...");
	jQuery.get(url, function(data){
		var basket = jQuery('.block-cart .open-close p',data);
		var biggerbasket = jQuery('.block-cart .block-content',data);
		jQuery('.block-cart .open-close p').replaceWith(basket);
		jQuery('.block-cart .block-content').replaceWith(biggerbasket);
		jQuery(button).text('Add another to your Basket');
		showHideBasket();
		 setupDelete();
	});
}

function openBasket(callback)
{
	jQuery('.block-cart').addClass('block-cart-open');
	jQuery('.open-basket').text('Close Basket').blur();

	jQuery('.block-cart .block-content').slideDown(function() {
		jQuery('.block-cart').addClass('block-cart-opened');
		jQuery('.block-cart .checkout-button').css('display', 'block');
		basketOpen=true;
		if (callback != null)
			callback();
	});
	
}

function closeBasket()
{
	jQuery('.block-cart .block-title').hide();
	jQuery('.block-cart .checkout-button').hide();
	jQuery('.block-cart').removeClass('block-cart-opened');
	jQuery('.block-cart .block-content').slideUp( function()
		{		
			jQuery('.block-cart').removeClass('block-cart-open');
			basketOpen=false;
		});
	jQuery('.open-basket').text('Open Basket').blur();
}

function showHideBasket(){
	jQuery('.header .links').show('slow',function(){
		jQuery('.block-cart .block-title').show('slow',function(){
			jQuery('.block-cart .block-content').show('slow',function(){
				jQuery('.block-cart .block-content').hide('slow',function(){
					jQuery('.block-cart .block-title').hide('slow',function(){
						jQuery('.header .links').hide('slow');
					});
				});
			});
		});
	});
}
