var input = 0;
var quant = new Array();
var shipping_zip = 0;
var shipping_method = 0;
var shipping_state = '';
var coupon = '';


$(document).ready(function() {
	// Cart
	$("#shipping_state").bind('change', updateState);
	$("#shipping_method").bind('change', updateShipping);
	
	updateGift();
	$("#is_gift").bind('change', updateGift);
	
	$(".qty").each(function(index) {
		
		id = $(this).attr('id').split("-");
		id = id[1];
		
		registerQuantity(id, $(this).val());
	});

	checkCart();
	
	$("#sameAsBilling").bind('click', sameAsBilling);
	
	// Find ALL <form> tags on your page
	$('form').submit(function(){
	    // On submit disable its submit button
	    $('input[type=submit]', this).attr('disabled', 'disabled');
	});
	
	$('#giftMessage').limit('300','#charsLeft');
	
});

$(window).scroll(function(e){ 
	
	var $el = $('.fixedElement'); 
	  
	var p = $('#cart-body-wrapper').position();
	var top = p.top;
	

	if ($(this).scrollTop() > top && $el.css('position') != 'fixed'){ 
		$('.fixedElement').css({'position': 'fixed', 'top': '20px', 'left': '50%', 'margin-left': '198px'}); 
	} 
	if ($(this).scrollTop() < top && $el.css('position') != 'absolute'){ 
		$('.fixedElement').css({'position': 'absolute', 'top': top + 'px', 'left': '50%', 'margin-left': '198px'}); 
	} 
});


function sameAsBilling() {
	
	$("#shipping_title").val($("#title").val());
	$("#shipping_first_name").val($("#first_name").val());
	$("#shipping_last_name").val($("#last_name").val());
	$("#shipping_company").val($("#billing_company").val());
	$("#shipping_address").val($("#billing_address").val());
	$("#shipping_address_2").val($("#billing_address_2").val());
	$("#shipping_city").val($("#billing_city").val());
	$("#shipping_state").val($("#billing_state").val());
	$("#shipping_zip").val($("#billing_zip").val());
	
	$("label").inFieldLabels('init');
	
}

function checkCart() {
	checkQuantity();
	checkCoupon();
}

function checkQuantity() {
	
	$.each(quant, function(id, value) {
		if($("#qty-" + id).val()) {
			if($("#qty-" + id).val() != value) {
				value = $("#qty-" + id).val();
				registerQuantity(id, value);
				updateQuantity(id, value);
			}
		}
	});
	
	setTimeout('checkQuantity()', 300);
}

function checkCoupon() {
	
	if(coupon != $("#coupon").val()) {
		coupon = $("#coupon").val()
		updateCoupon();
		
	}
	
	setTimeout('checkCoupon()', 400);
}

function checkShipping() {
	
	if(shipping_method != $("#shipping_method").val()) {
		updateShipping();
		shipping_method = $("#shipping_method").val();
	}
	
	setTimeout('checkShipping()', 400);
}

function checkZip() {
	
	if(shipping_zip != $("#shipping_zip").val()) {
		updateTotals();
		shipping_zip = $("#shipping_zip").val();
	}
	
	setTimeout('checkZip()', 400);
}

function registerQuantity(id, value) {
	if(id) quant[id] = value;
}

function updateQuantity(id, value) {

	if(value == 0) {
		window.location = '/cart/remove/' + id + '/';
		return;
	}
	
	var price = $("#price_" + id).val();
	price = price * value;
	price = price.toFixed(2);
	
	var char = 0.00;
	
	$.getJSON('/cart/update_quantity/' + id + '/' + value + '/', function(data) {
		updateDisplay("subtotal_display", data.subtotal.toFixed(2));
		updateDisplay("shipping_display", data.shipping.toFixed(2));
		updateDisplay("discount_display", data.discount.toFixed(2));
		updateDisplay("tax_display", data.tax);
		updateDisplay("total_display", data.total.toFixed(2));
		
		char = 5 * data.quantity;
		updateDisplay("charity_display", char.toFixed(2));
		
		$("#qty-" + id).val(data.quantity);
		
		updateDisplay("product_total_display_" + id, price);
	});
}

function update()
{
  if($("#shipping_zip").val().length == 5) {
	  if(input != $("#shipping_zip").val()) {
		updateShipping();
	 	input = $("#shipping_zip").val();
	  }
  }
    
  setTimeout('update()', 400);
}

function updateTotals() {
	
	$.getJSON('/cart/get_totals/', function(data) {
		updateDisplay("subtotal_display", data.subtotal.toFixed(2));
		updateDisplay("discount_display", data.discount.toFixed(2));
		updateDisplay("shipping_display", data.shipping.toFixed(2));
		updateDisplay("tax_display", data.tax);
		updateDisplay("total_display", data.total.toFixed(2));
	});
	
}

function updateCoupon() {
	
	$.getJSON('/cart/use_coupon/' + coupon + '/', function(data) {
		
	});
	
	updateTotals();
}

function updateDisplay(id, value) {
	
	if(value > 0) 
		$('#' + id).html(value); 
	else 
		$('#' + id).html("0.00");
	
}

function updateGift() {

	if($('#is_gift').attr('checked')) {
		$('#gift_message_wrapper').show();
	}
	else $('#gift_message_wrapper').hide();

}

function updateState() {
	updateTax();

}

function updateTax() {

	var ship_state = $("#shipping_state").val();
	
	$.getJSON('/cart/get_tax/' + ship_state + '/', function(data) {
				
		if(data.tax > 0)
			$('#tax_display').html(data.tax);
		else $('#tax_display').html("0.00");
		
		$('#total_display').html(data.total.toFixed(2));
	});
}

function updateShipping() {

	//var ship_state = $("#shipping_state").val();
	var ship_method = $("#shipping_method").val();
	//var ship_zip = $("#shipping_zip").val();
		
	$.getJSON('/cart/get_shipping/' + ship_method + '/', function(data) {
		
		if(data.shipping > 0) 
			$('#shipping_display').html(data.shipping.toFixed(2)); 
		else 
			$('#shipping_display').html("0.00");
		
		//$('#shipping_method_display').html(data.name);
		$('#total_display').html(data.total.toFixed(2));
		$('#final_total_display').html(data.total.toFixed(2));
	});
}

