﻿/*============================================================
Filename:       basket.js
Created:        25/01/2010
Modified:        29/01/2010
Description:    Controls the shopping cart
============================================================*/
$(document).ready(function() {

	var itemID="",quantity=0,price=0,success="",mess="",count="0",total="0";
	
	//gets and set the needed variables
	var btnAdd=$("#AddToCart");
	var SessionID=$("#sessionID").val();

	 $("[name='DeliveryAddress']").attr("readonly","readonly");
	 $("[name='DeliveryPostcode']").attr("readonly","readonly");
	 $("[name='DeliveryTel']").attr("readonly","readonly");
	 $("[name='DeliveryName']").attr("readonly","readonly");

	//display the small basket details
	DisplayBasket();

	/*
		Create the method for the add button
	*/
	btnAdd.click(function() {
		itemID=$("#txtItemID").val();
		quantity=$("#txtQuantity");
		price=$("#txtItemPrice").text();

		if(quantity.val()!="" && quantity.val()>0) {

			$.ajax ({
				type: 'POST',
				url: '/_cmsSystem/_shop/WS_addToBasket.asp',
				dataType: 'xml',
				data: ({ID: itemID,qnty: quantity.val(),prc:price,nd:new Date().getTime()}),
				success: function(xml) {
					
					$("details",xml).each(function(i) {
						success=$(this).find("success").text();
						mess=$(this).find("message").text();
	
						//checks to see if the item was added to the basket
						if(success) {
							
							//reset the quantity
							quantity.val("1");
							alert("Item added to basket");
							
							//rebuild the basket
							DisplayBasket();
							
						} else {
							alert(mess);
						}
	
					});
					
				},
				error: function(msg) {
						alert('ERROR, btnAdd:\n'+msg.statusText);
				}
			});
			
		} else {
			alert("Please enter a quanity greater than zero");					
		}

	});

	//Updates the baskets and lists the user details
	function DisplayBasket() {
			$("#GotoCheckOut").hide();
			$.ajax({
				   
					type: 'POST',
					url: '/_cmsSystem/_shop/WS_displayBasket.asp',	   
					dataType: 'xml',
					data: ({sessID:SessionID,nd:new Date().getTime()}),
					success: function(xml) {

					$("basket",xml).each(function(i) {

							success=$(this).find("success").text();
							mess=$(this).find("message").text();
							
							if(success) {
								
								count=$(this).find("cnt").text();
								total=$(this).find("ttl").text();
								
								//checks to see if there is any useful data returned, if not set zero defaults
								count=(count!="") ? count : 0;
								total=(total!="") ? total : 0;
								
								//clears the basket to start with
								$('#basketItems').text("");
								
								//updates the basket
								$("<p><strong>Items:</strong> "+count+"<br/><strong>Total:  </strong>&pound;"+$.format("{0:.2f}",total)+"</p>").appendTo('#basketItems');
								
								//checks to see if there are any items
								if(count>0) {
									$("#shopCheckOut").show();
									$("#GotoCheckOut").show();
								}
								
							} else {
								alert(mess);
							}
							
						});
					   
				   },
				   error: function(msg){
					   	alert('ERROR, DisplayBasket:\n'+msg.statusText);
				   }
			});
	}	
	
	
	//Used to handle the copying of addresses on the registration page
	$("#btnCopy").click(function() {
								 
		var invAddress=$("[name='InvoiceAddress']").val();
		var invPC=$("[name='InvoicePostcode']").val();
		var invTel=$("[name='InvoiceTel']").val();
		var invName=$("[name='InvoiceName']").val();
		
		var delAddress=$("[name='DeliveryAddress']");
		var delPC=$("[name='DeliveryPostcode']");
		var delTel=$("[name='DeliveryTel']");
		var delName=$("[name='DeliveryName']");
		
		delAddress.val(invAddress);
		delPC.val(invPC);
		delTel.val(invTel);
		delName.val(invName);
	 
	 });
	 
	 //sets the fields so you can change the delivery details
	$("#btnChange").click(function() {

		if($("#btnChange").attr("checked")) {
			$("[name='DeliveryName']").attr("readonly","").addClass("edit").focus();
			$("[name='DeliveryAddress']").attr("readonly","").addClass("edit");
			$("[name='DeliveryPostcode']").attr("readonly","").addClass("edit");
			$("[name='DeliveryTel']").attr("readonly","").addClass("edit");
		} else{
			$("[name='DeliveryName']").attr("readonly","readonly").removeClass("edit")
			$("[name='DeliveryAddress']").attr("readonly","readonly").removeClass("edit");
			$("[name='DeliveryPostcode']").attr("readonly","readonly").removeClass("edit");
			$("[name='DeliveryTel']").attr("readonly","readonly").removeClass("edit");
		}
						 
	 });
	 
	 //some validation for the login box
	 $("#btnLogin").click(function() {
		 var txtUsername=$("#txtUsername").val();
		 var txtPassword=$("#txtPassword").val();
		 var ret=false;
		 
		 if(txtUsername.length==0 && txtPassword.length>0) {
			 alert("Please enter a user name");
		 }else if(txtUsername.length>0 && txtPassword.length==0) {
			 alert("Please enter a password");
		 }else if(txtUsername.length==0 && txtPassword.length==0) {
			 alert("Please enter a user name and password");
		 } else {
			 ret=true;
		 }
		 
		return ret;
		 
	 });
	 
	 $("#btnPlus").click(function(){
		 var qu=$("#txtQuantity").val();
		 
		 qu=(qu=="" || qu=="0") ? 1 : qu;
		 
		 qu++;
		 $("#txtQuantity").val(qu);
	 });
	 $("#btnMinus").click(function(){
		 var qu=$("#txtQuantity").val();
		 qu=(qu=="" || qu=="0") ? 1 : qu;
		 
		 qu--;
		 qu=(qu=="0") ? 1 : qu;
		 
		 $("#txtQuantity").val(qu);
	 });
});
