
var giftWrapAddUrl = 'ajax.php?act=giftWrapAdd&';
var giftWrapRemoveUrl = 'ajax.php?act=giftWrapRemove&';

var currentItemId = 0;
var deliveryCost = 0;
function addGiftWrap(rowIndex,cartId,currentValue) {
	currentItemId = cartId;
	if (currentValue==true) {
		//Add Gift Wrap
		deliveryCost = document.getElementById('deliveryCost').innerHTML;
		$.get(giftWrapAddUrl+'itemId='+cartId+'&deliveryCost='+deliveryCost, function (data) {
			ajaxCallBack('add', data);
		});
	} else {
		deliveryCost = document.getElementById('deliveryCost').innerHTML;
		$.get(giftWrapRemoveUrl+'itemId='+cartId+'&deliveryCost='+deliveryCost, function (data) {
			ajaxCallBack('remove', data);
		});
	}
}

function ajaxCallBack(type,data) {
	try {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(data);
	} catch(e) {
		try {
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(data,"text/xml");
		} catch(e){
		  alert('Your Browser Does Not Support Ajax Calls');
		  return false;
		}
	}
	if (xmlDoc.getElementsByTagName("error")[0].childNodes[0].nodeValue!=0) {
		alert('Error: ' + xmlDoc.getElementsByTagName("error")[0].childNodes[0].nodeValue);
	} else {
		if (type=='add') {
			document.getElementById('giftWrap'+currentItemId).checked = true;
			document.getElementById('price'+currentItemId).innerHTML = xmlDoc.getElementsByTagName("itemCost")[0].childNodes[0].nodeValue;
			document.getElementById('subtotal').innerHTML = '&pound;'+xmlDoc.getElementsByTagName("totalCost")[0].childNodes[0].nodeValue;
			document.getElementById('checkoutTotal').innerHTML = '&pound;'+xmlDoc.getElementsByTagName("grandTotal")[0].childNodes[0].nodeValue;
			document.getElementById('deliveryCost').innerHTML = xmlDoc.getElementsByTagName("deliveryCost")[0].childNodes[0].nodeValue;
			$("#message"+currentItemId).show();
		} else if (type=='remove') {
			document.getElementById('giftWrap'+currentItemId).checked = false;
			document.getElementById('price'+currentItemId).innerHTML = xmlDoc.getElementsByTagName("itemCost")[0].childNodes[0].nodeValue;
			document.getElementById('subtotal').innerHTML = '&pound;'+xmlDoc.getElementsByTagName("totalCost")[0].childNodes[0].nodeValue;
			document.getElementById('checkoutTotal').innerHTML = '&pound;'+xmlDoc.getElementsByTagName("grandTotal")[0].childNodes[0].nodeValue;
			document.getElementById('deliveryCost').innerHTML = xmlDoc.getElementsByTagName("deliveryCost")[0].childNodes[0].nodeValue;
			$("#message"+currentItemId).hide();
		}
	}
}


function checkMessagesBox() {
	var prodlist = document.getElementById('numProds').value;
	var prods = prodlist.split(";");
	showMessages = false;
	for (i=0;i<prods.length;i++) {
		if (prods[i]!= '') {
			var current = document.getElementById('giftWrap'+prods[i]).checked;
			if (current==true) showMessages = true;
		}
	}
	if (showMessages == true) $("#messages").show();
	else $("#messages").hide();
}




/* Drag And Drop Cart */


 var currentProductActive = false;
 var currentProduct = 0;
 var currentDelId = 0;
 $(document).ready(function()        
  {  
		$(".draggable").draggable({
			revert : true,
			revertDuration : 500,
			distance : 5,
			helper : 'clone',
			opacity: 0.5,
			zIndex: 9999
		});
		$(".droppable").droppable({
			hoverClass : 'droppableHover',
			tolerance : 'touch',
			drop: function(event, ui) {
				if (currentProductActive == false ) {
					currentProductActive = true;
					document.getElementById('loadingCart').innerHTML = '<img src="images/loading.gif" alt="Loading..." />';
					currentProduct = ui.draggable.attr('id');
					addProductToCart(currentProduct);
				}
			}
		});
	 	$("span#fbox_img a").fancybox({
				'zoomSpeedIn':	0, 
				'zoomSpeedOut':	0, 
				'overlayShow':	true
			});

  });


function addProductToCart(prodId) {
	//setTimeout('allowDrop()',1000);
	var str = randStr();
	$.get("addProductAjax.php?productId="+prodId+'&amp;rn='+str, function(data) {
		
		doAddProduct(data);
	},'xml');
}

function doAddProduct(data) {
	try {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(data);
	} catch(e) {
		try {
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(data,"text/xml");
		} catch(e){
		  alert('Your Browser Does Not Support Ajax Calls');
		  return false;
		}
	}
	if (xmlDoc.getElementsByTagName("error")[0].childNodes[0].nodeValue!=0) {
		alert('Error: '+xmlDoc.getElementsByTagName("error")[0].childNodes[0].nodeValue);
	} else {
		
		addProductToDiv(
						xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue, 
						xmlDoc.getElementsByTagName("price")[0].childNodes[0].nodeValue, 
						xmlDoc.getElementsByTagName("desc")[0].childNodes[0].nodeValue,
						xmlDoc.getElementsByTagName("total")[0].childNodes[0].nodeValue,
						xmlDoc.getElementsByTagName("qty")[0].childNodes[0].nodeValue
		)
	}
}
function addProductToDiv(id,price,desc,total,qty) {
	var tableDiv = document.getElementById('checkoutTable');
	var rows = tableDiv.rows.length;
	var row = tableDiv.insertRow(rows);
	row.id = 'row_'+id;
	var cellImg = row.insertCell(0);
	var cellText = row.insertCell(1);
	cellText.className = 'checkoutItem';
	cellImg.className = 'checkoutItemLeft';
	var textNode = document.createElement('span');
	var imgNode = document.createElement('span');
	var img = new Image();
	img.src = 'inc/prodOverlay.php?radius=0&inFile=uploads/prod/'+currentProduct+'s.jpg&tX=25&tY=25&square=0&matte=FFFFFF&inOverlay=0&inPosition=top_left';
	cellImg.appendChild(img);
	textNode.innerHTML = '1 X '+desc+' (&pound;'+price+') <a href="#" onClick="deleteProduct('+id+')">X</a>';
	document.getElementById('checkoutTotal').innerHTML = '&pound;'+total;
	cellText.appendChild(textNode);
	document.getElementById('loadingCart').innerHTML = '';
	document.getElementById('checkoutQty').innerHTML = qty;
	allowDrop();
}


function deleteProduct(cid) {
	document.getElementById('loadingCart').innerHTML = '<img src="images/loading.gif" alt="Loading..." />';
	$.get("delProductAjax.php?cid="+cid+'&rn='+randStr(), function(data) {
		doDelProduct(data,cid);
	},'xml');
}
function doDelProduct(data,id) {
	try {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(data);
	} catch(e) {
		try {
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(data,"text/xml");
		} catch(e){
		  alert('Your Browser Does Not Support Ajax Calls');
		  return false;
		}
	}
	if (xmlDoc.getElementsByTagName("error")[0].childNodes[0].nodeValue!=0) {
		alert('Error: '+xmlDoc.getElementsByTagName("error")[0].childNodes[0].nodeValue);
	} else {
		document.getElementById('checkoutQty').innerHTML = xmlDoc.getElementsByTagName("qty")[0].childNodes[0].nodeValue;
		document.getElementById('checkoutTotal').innerHTML = '&pound;'+xmlDoc.getElementsByTagName("total")[0].childNodes[0].nodeValue;
		document.getElementById('loadingCart').innerHTML = '';
		var location = new String(document.location);
		var pos = location.lastIndexOf('/');
		var pageName = location.substr(pos);
		removeProductFromDiv(id);
		if (pageName=='/checkout.php#' || pageName=='/cart.php#') window.location.reload();
	}
}
function removeProductFromDiv(id) {
	var tableDiv = document.getElementById('checkoutTable');
	var tableId = document.getElementById('row_'+id).rowIndex;
	var res = tableDiv.deleteRow(tableId);
}
function allowDrop() {
	currentProductActive = false;
}

function changeLoc(url) {
	if (currentProductActive==false) window.location = url;
}


function randStr() {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}
