﻿var browser = new Browser();
var dragObj = new Object();

function dragStart(event, id) {
  var x, y;
  
 dragObj.elNode = getID(id);

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX; 
    y = event.clientY + window.scrollY;
  }

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(ElementPosition(id,'x'), 10);
  dragObj.elStartTop   = parseInt(ElementPosition(id,'y'),  10);
  dragObj.opacity   = dragObj.elNode.style.opacity = "0.75";

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;


  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {
  var x, y;

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";


  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
	

}

function dragStop(event) {
	var x,y;
 
  var newx = (dragObj.elStartLeft + x - dragObj.cursorStartX);
  var newy = (dragObj.elStartTop  + y - dragObj.cursorStartY);
  
  dragObj.elNode.style.left = (dragObj.elStartLeft) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop) + "px";
  dragObj.opacity   = dragObj.elNode.style.opacity = "1";

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
  var target = getID("basket");
    
  var xtarget =  ElementPosition("basket","x");
  var ytarget =  ElementPosition("basket","y");

  var width = parseInt(target.style.width);
  var height = parseInt('300');
  
  if(event.clientX > xtarget && event.clientX < xtarget+width && event.clientY > ytarget && event.clientY < ytarget+height ){
  
   	pid = dragObj.elNode.getAttribute('product');
		addToBasket(pid);
  }
}

function addToBasket(productId,type)
{
	fadeup('shopping_cart_items',255,153,0);
	ajaxAddProduct(productId,type);	
}

function showAjaxBasketContent(answer)
{

	var itemBox = document.getElementById('shopping_cart_items');
	var productItems = answer.split('|');

	document.getElementById('cart_none').style.display = "none";
	document.getElementById('cart_block').style.display = "block";
	
	if(document.getElementById('shopping_cart_items_product'+productItems[0])){
		var row = document.getElementById('shopping_cart_items_product'+productItems[0]);
		//var items = row.cells[1].innerHTML /1;
		//items = items + 1;
		row.cells[1].innerHTML = productItems[2];
	}else{
		var tr = itemBox.insertRow(-1);
		tr.id = 'shopping_cart_items_product'+productItems[0];
		tr.style.height = '20px';
		
		var td = tr.insertCell(-1);
		td.innerHTML =  productItems[1];
		
		var td = tr.insertCell(-1);
		td.style.textAlign = 'right';
		td.innerHTML = productItems[2];
		
		var td = tr.insertCell(-1);
		var a = document.createElement('A');
		td.appendChild(a);
		a.href = '#';
		a.onclick = function(){ removeProductFromBasket(productItems[0]); };
		var img = document.createElement('IMG');
		img.src = '/kernel/template/demo/images/basket_delete.gif';
		a.appendChild(img);
	} 

	updateTotalPrice();
}

function updateTotalPrice()
{
	var itemBox = document.getElementById('shopping_cart_items');
	var totalPrice = 0;
	if(document.getElementById('carttotal')){
		for(var no=1;no<itemBox.rows.length;no++){
			totalPrice = totalPrice + (itemBox.rows[no].cells[1].innerHTML.replace(/[^0-9]/g) *1);
		}		
		document.getElementById('carttotal').innerHTML = totalPrice;
	}	
}
function updateTotalPriceform()
{
		document.getElementById('summary_carttotal').innerHTML = document.getElementById('carttotal').innerHTML;
}
function removeProductFromBasket(productId)
{
	var productRow = document.getElementById('shopping_cart_items_product'+productId);
	
		productRow.parentNode.removeChild(productRow);	

	updateTotalPrice();
	ajaxRemoveProduct(productId);	
}
function removeProductform(productId)
{
	var productRow = document.getElementById('items_nums'+productId);
	
	if(productRow.innerHTML == 0){
	}else{
	productRow.innerHTML = productRow.innerHTML/1 - 1;
	updateTotalPriceform();
	ajaxRemoveProduct(productId);	
	}
}
function ajaxValidateRemovedProduct(answer)
{
	if(answer!='OK')alert('در حذف محصول از سبد خرید شما مشکلی بوجود آمده است'+answer);
	
}
function ajaxAddProduct(productId,type)
{

	 serverQuery('padd.php', 'loading_basket', 'ajax=yes&productId='+productId+'&type='+type+'', 'post','showAjaxBasketContent','');		
}
function ajaxRemoveProduct(productId)
{
	 serverQuery('premove.php', 'loading_basket', 'ajax=yes&productId='+productId+'', 'post','ajaxValidateRemovedProduct','');		
}


function ElementPosition(param,t){
var x=0, y=0;
	var obj = (typeof param == "string") ? getID(param) : param;
	if (obj) {
		x = obj.offsetLeft;
		y = obj.offsetTop;
	var body = document.getElementsByTagName('body')[0];
	
		while (obj.offsetParent && obj!=body){
		x += obj.offsetParent.offsetLeft;
		y += obj.offsetParent.offsetTop;
		obj = obj.offsetParent;
				}
	}
	if(t == "x"){
		return this.x = x;
	}else{
		return this.y = y;
	}
}
