var showCartTimer = 0;

function getCurrentTimeStamp(){
	var timeStamp = new Date();
	return timeStamp.getTime() + '.' + (Math.random() * 1234567);	
}

function fnInitCart(){
	
	// handle buy now clicks
	$('.buy-now-lnk').bind('click', function(event){
		var oElem = event.target;
		var oLink = $(oElem).parent('a');
		event.preventDefault();
		// scroll page to top so user can see 
		// item being placed in the cart
		
		var siblings = oLink.siblings('span');
		for (x=0;x<siblings.length; x++){
			if ($(siblings[x]).attr('id').length > 0){
				$(siblings[x]).show();
			}
		}
								
		$.get($(oLink).attr('href') + '&ajax=true&ts=' + getCurrentTimeStamp(),fnHandleCartChangeEvent);
	
	});
	
	fnBindCartLinks();
}

function fnBindCartLinks(){
	
	$('.link-qcart-tab, .promocode-thickbox, .link-qcart-close').unbind();
	
	
	$('.link-qcart-tab').hover(
		function(event){
			if (!shitBrowser) {
				$('#qcart').effect("bounce", {
					times: 3
				}, 300);
			}
		},
		function(event){}
	);
	/*
	$('.link-qcart-tab').bind('mouseenter', function(event){
		if ($('#qcart-content').css('display') != 'block') {
			$('#qcart').effect("bounce", {
				times: 3,
				distance: 5
			}, 300);
		}
	});*/
	/*
	$('.link-qcart-tab, .link-qcart-close').bind('click', function(event){
		event.preventDefault();
		toggleCart();
		clearTimeout(showCartTimer);
	});*/
	
	
	
	$('.promocode-thickbox').bind('click', function(event){
		event.preventDefault();
		tb_show('', $(event.target).attr('href'));
	});
	
	$('.remove-promocode').bind('click', function(event){
		var oElem = event.target;
		event.preventDefault();
		
		// send the cart request
		$.get(
			$(oElem).attr('href') + '&ajax=true&ts=' + getCurrentTimeStamp(), fnHandleCartChangeEvent);
	});
	
	$('.link-cart-remove').unbind();
	$('.link-cart-remove').bind('click', function(event){
		var oElem = event.target;
		// var oLink = $(oElem).parent('a');
		event.preventDefault();
		
		// send the cart request
		$.get(
			$(oElem).attr('href') + '&ajax=true&ts=' + getCurrentTimeStamp(), fnHandleCartChangeEvent);
	});
	
}

function fnHandleCartChangeEvent(oResponse){
	$.scrollTo('#qcart', 500);
	$('#qcart-view').html(oResponse);
	fnBindCartLinks();
	toggleCart();
	$('.loading').hide();
	clearTimeout(showCartTimer);
	showCartTimer = setTimeout("toggleCart()", 5000);
}

function fnHandleEventCartRemove(oResponse){
	if (oResponse['SUCCESS']){
		var aCartInfo = oResponse['DATA'][0];
		$('#cart_item_' + aCartInfo['PRODSUBID']).slideUp('fast').remove();
		
		// update the cart summary
		if (aCartInfo['NUMITEMS'] > 0){
			//$('#qcart-total-summary').html('(' + aCartInfo['NUMITEMS'] + ' items. ' + aCartInfo['CARTTOTAL'] + ')');
		}
		else{
			strEmpty = '';
			strEmpty += '<div id="qcart-top-actions"><div>Your cart is currently empty.</div></div>';
			strEmpty += '<div class="cart-empty">';
			strEmpty += '<p class="black">Sorry! There are currently no items in your shopping cart.</p>';
			strEmpty += '<p>If you are having trouble please call us on <strong>020 7199 0161</strong> and we\'ll do our best to help you.</p>';
			strEmpty += '<p>If you have attempted to add items to your cart and they are still not showing then please ensure that your web browser is set to accept cookies (as they are required to order with iSUBSCRiBE).</p>';
			strEmpty += '<p><div class="center"><a href="##" class="link-qcart-close">CLOSE</a></div></p></div>';
			$('#qcart-content').html(strEmpty);
			//$('#qcart-total-summary').html('(0 items. &pound;0.00)');
			clearTimeout(showCartTimer);
			showCartTimer = setTimeout("toggleCart()", 5000);
			
		}
		// show/hide the different sections
		if (aCartInfo['SHIPPING'] == 1){
			// show the shipping area	
			$('#qcart-delivery div.total').html(aCartInfo['SHIPPINGTOTAL']);		
			$('#qcart-delivery').removeClass('hide');		
		}
		else{
			$('#qcart-delivery').addClass('hide');			
		}
		
		if (aCartInfo['DISCOUNT'] == 0){
			// show the shipping area
			if (aCartInfo['COUPONS'] == 1){
				$('#qcart-delivery div.total').html(aCartInfo['COUPONTOTAL']);
				$('#qcart-promo-value').removeClass('hide');	
				$('#qcart-promo-add').addClass('hide');				
			}
			else{
				// set the promocode add link	
				$('#qcart-promo-add').removeClass('hide');			
			}	
			$('#qcart-discount').addClass('hide');		
		}
		else{
			// set the discount
			$('#qcart-discount div.total').html(aCartInfo['DISCOUNTTOTAL']);	
			$('#qcart-discount').removeClass('hide');
			$('#qcart-promo-add').addClass('hide');	
			$('#qcart-promo-value').addClass('hide');			
		}
		$('#qcart-total-summary').html('(' + aCartInfo['NUMITEMS'] + ' items. ' + aCartInfo['CARTTOTAL'] + ')');
		
	}
	else{
		alert(oResponse['MESSAGE'][0]);
	}
}

function toggleCart(){
	$('#qcart-content').bgiframe().slideToggle("slow");
	if (shitBrowser) {
		$('#qlogin').toggle();
	}
	
}


// load the cart
$(document).ready(function(){
	$('#iptSearch').focus();
	fnInitCart();
});

