/************************************************************************************************************
(C) www.dhtmlgoodies.com, March 2006

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Version:
	1.0	Released	March. 3rd 2006

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/

var flyingSpeed = 20;
var url_addProductToBasket = 'webroot/addProduct.php';
var txt_totalPrice = ' Skupaj: ';
var txt_totalNumbers = ' Izdelkov v košarici: ';


var shopping_cart_div = false;
var flyingDiv = false;
var currentProductDiv = false;

var shopping_cart_x = false;
var shopping_cart_y = false;

var slide_xFactor = false;
var slide_yFactor = false;

var diffX = false;
var diffY = false;

var currentXPos = false;
var currentYPos = false;

var ajaxObjects = new Array();


function shoppingCart_getTopPos(inputObj)
{
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}

function shoppingCart_getLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}


function addToBasket(productId)
{
	if(!shopping_cart_div)shopping_cart_div = document.getElementById('shopping_cart');
	if(!flyingDiv){
		flyingDiv = document.createElement('DIV');
		flyingDiv.style.position = 'absolute';
		document.body.appendChild(flyingDiv);
	}

	shopping_cart_x = shoppingCart_getLeftPos(shopping_cart_div);
	shopping_cart_y = shoppingCart_getTopPos(shopping_cart_div);

	currentProductDiv = document.getElementById('slidingProduct' + productId);

	currentXPos = shoppingCart_getLeftPos(currentProductDiv);
	currentYPos = shoppingCart_getTopPos(currentProductDiv);

	diffX = shopping_cart_x - currentXPos;
	diffY = shopping_cart_y - currentYPos;



	var shoppingContentCopy = currentProductDiv.cloneNode(true);
	shoppingContentCopy.id='';
	flyingDiv.innerHTML = '';
	flyingDiv.style.left = currentXPos + 'px';
	flyingDiv.style.top = currentYPos + 'px';
	flyingDiv.appendChild(shoppingContentCopy);
	flyingDiv.style.display='block';
	flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';
	flyToBasket(productId);

}


function flyToBasket(productId)
{
	var maxDiff = Math.max(Math.abs(diffX),Math.abs(diffY));
	var moveX = (diffX / maxDiff) * flyingSpeed;;
	var moveY = (diffY / maxDiff) * flyingSpeed;

	currentXPos = currentXPos + moveX;
	currentYPos = currentYPos + moveY;

	flyingDiv.style.left = Math.round(currentXPos) + 'px';
	flyingDiv.style.top = Math.round(currentYPos) + 'px';


	if(moveX>0 && currentXPos > shopping_cart_x){
		flyingDiv.style.display='none';
	}
	if(moveX<0 && currentXPos < shopping_cart_x){
		flyingDiv.style.display='none';
	}

	if(flyingDiv.style.display=='block')setTimeout('flyToBasket("' + productId + '")',10); else ajaxAddProduct(productId);
}

function showAjaxBasketContent(ajaxIndex)
{

//alert(ajaxObjects[ajaxIndex].response);
	// Getting a reference to the shopping cart items table
	var itemBox = document.getElementById('shopping_cart_items');
	itemBox.style.display = '';
	var productItems = ajaxObjects[ajaxIndex].response.split('|||');	// Breaking response from Ajax into tokens

	if(document.getElementById('shoping_cart_items_product' + productItems[0])){	// A product with this id is allready in the basket - just add number items
		var row = document.getElementById('shoping_cart_items_product' + productItems[0]);
		var items = row.cells[0].innerHTML /1;
	//	alert(productItems[3]);
		if(findObj('qty' + productItems[3]).value)
		var qty =  findObj('qty' + productItems[3]).value;
		else
		var qty = 1;
		if(qty <=1) qty = 1;
		if(!IsNumeric(qty)) qty = 1;

		items = items + qty/1;
		row.cells[0].innerHTML = items;
	}else{	// Product isn't allready in the basket - add a new row
		var tr = itemBox.insertRow(-1);
		tr.id = 'shoping_cart_items_product' + productItems[0]
		var td = tr.insertCell(-1);
	//	alert(productItems[3]);
		if(findObj('qty' + productItems[3]).value)
		var qty =  findObj('qty' + productItems[3]).value;
		else
		var qty = 1;
		if(qty <=1) qty = 1;
		if(!IsNumeric(qty)) qty = 1;
		td.innerHTML = qty; 	// Number of items
		td.className  = 'center-align';
		var td = tr.insertCell(-1);
		td.innerHTML = productItems[1]; 	// Description

		var td = tr.insertCell(-1);
		td.className  = 'right-align';
		td.innerHTML = outputMoney(productItems[2]); 	// Price
	}

	// Calculating total price and showing it below the table with basket items
	var totalPrice = 0;
	var totalNumbers = 0;
	if(document.getElementById('shopping_cart_totalprice')){
		for(var no=1;no<itemBox.rows.length;no++){
			price = itemBox.rows[no].cells[2].innerHTML;
			numbers = itemBox.rows[no].cells[0].innerHTML.replace(/[^0-9]/g);
			if( numbers == undefined || numbers == 'undefined' || numbers <=1 || !IsNumeric(numbers)) {
				numbers = 1;

			}
		//	alert(numbers);
			if(price.indexOf(',')>0) {
				price= price.replace('.','');
				price= price.replace(',','.');
			}
			totalPrice = totalPrice + (itemBox.rows[no].cells[0].innerHTML.replace(/[^0-9]/g) * price);
			totalNumbers = totalNumbers/1 + numbers/1;
		}
		totalPriceEUR = totalPrice*239.640;

		totalPrice =  outputMoney(totalPrice);
		totalPriceEUR =  outputMoney(totalPriceEUR);
		document.getElementById('shopping_cart_totalprice').innerHTML = totalPrice+'  <span class="currency">EUR</span>';
		//document.getElementById('shopping_cart_totalprice').innerHTML = totalPrice+'  <span class="currency">EUR</span>'+'<br />'+totalPriceEUR+'  <span class="currency">SIT</span> ';

		document.getElementById('shopping_cart_totalnumbers').innerHTML = totalNumbers;


	}
	if(document.getElementById('shopping_cart_empty')){
		document.getElementById('shopping_cart_empty').innerHTML = '';
		document.getElementById('shopping_cart_empty').style.display = 'none';
	}
	ajaxObjects[ajaxIndex] = false;



}

function ajaxAddProduct(productId)
{

	var ajaxIndex = ajaxObjects.length;

	if(findObj('qty' + productId).value)
	var qty =  findObj('qty' + productId).value;
		else
	var qty = 1;

	if(findObj('size' + productId).value)
	var size =  findObj('size' + productId).value;
		else
	var size = 1;

	if(findObj('article_color') && findObj('article_color').value)
	var article_color =  findObj('article_color').value;
		else
	var article_color = '';

	if(findObj('fontColor') && findObj('fontColor').value)
	var fontColor =  findObj('fontColor').value;
		else
	var fontColor = '';

	if(findObj('fontSize') && findObj('fontSize').value)
	var fontSize =  findObj('fontSize').value;
		else
	var fontSize = '';

	if(findObj('fontFamily') && findObj('fontFamily').value)
	var fontFamily =  findObj('fontFamily').value;
		else
	var fontFamily = '';

	if(findObj('maijca') && findObj('maijca').value)
	var maijca =  findObj('maijca').value;
		else
	var maijca = '';

	if(findObj('notes') && findObj('notes').value)
	var notes =  findObj('notes').value;
		else
	var notes = '';

	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].setVar('color',hasASelection('color'+productId));
	ajaxObjects[ajaxIndex].setVar('qty',qty);
	ajaxObjects[ajaxIndex].setVar('size',size);
	ajaxObjects[ajaxIndex].setVar('productId',productId);

	ajaxObjects[ajaxIndex].setVar('article_color',article_color);
	ajaxObjects[ajaxIndex].setVar('fontColor',fontColor);
	ajaxObjects[ajaxIndex].setVar('fontSize',fontSize);
	ajaxObjects[ajaxIndex].setVar('fontFamily',fontFamily);
	ajaxObjects[ajaxIndex].setVar('maijca',maijca);
	ajaxObjects[ajaxIndex].setVar('notes',notes);
	//ajaxObjects[ajaxIndex].createURLString('1');
//	totalurlstring = url_addProductToBasket + ajaxObjects[ajaxIndex].queryStringSeparator + ajaxObjects[ajaxIndex].URLString;

	//ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket + '?productId=' + productId;	// Saving product in this file
	//ajaxObjects[ajaxIndex].requestFile = totalurlstring;	// Saving product in this file
	ajaxObjects[ajaxIndex].method = 'POST';	// Saving product in this file

	ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;	// Saving product in this file

	ajaxObjects[ajaxIndex].onCompletion = function(){ showAjaxBasketContent(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function

}

function IsNumeric(PossibleNumber){	var PNum = new String(PossibleNumber);	var regex = /[^0-9]/;	return !regex.test(PNum);}

