var flyingSpeed = 20;
var url_addProductToBasket = geturl()+'/pscripts/addbasket.pscripts.php';
var url_removeProductFromBasket = geturl()+'/pscripts/removeProduct.pscripts.php';
var txt_totalPrice = ' item in your trip';

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, etype, type, city){ 

    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(type + 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, etype, city);
       
}

function flyToBasket(productId, etype, city)
{
	var maxDiff = Math.max(Math.abs(diffX),Math.abs(diffY));
	var moveX = (diffX / maxDiff) * flyingSpeed;;
	var moveY = (diffY / maxDiff) * flyingSpeed;	
	
    document.getElementById('loadingcart').innerHTML = "<br/><img src=\""+geturl()+"/themes/default/images/indicator123.gif\">";
	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 + '", "' + etype + '", "' + city +'")',10); 
    } else {
    ajaxAddProduct(productId, etype, city);	
    }
}
                    
function showAjaxBasketContent(ajaxIndex){           
    var productElements = ajaxObjects[ajaxIndex].response;
    var url = geturl()+"/pscripts/tripcart.pscripts.php"; 
    httpEvent.open("GET", url + "?content=proCart", true); 
    httpEvent.onreadystatechange = handleHttpResponse_proCart; httpEvent.send(null);    
    
    ajaxObjects[ajaxIndex] = false;         
}

function updateTotalPrice()
{
	var itemBox = document.getElementById('shopping_cart_items');
    var titleBox = document.getElementById('shopping_cart_title'); 
    
    // Calculating total price and showing it below the table with basket items
	var totalPrice = 0;
	if(document.getElementById('shopping_cart_totalprice')){
		for(var no=0;no<itemBox.rows.length;no++){
			totalPrice = totalPrice + (itemBox.rows[no].cells[0].innerHTML.replace(/[^0-9]/g) * itemBox.rows[no].cells[2].innerHTML);
		}

        if(no > 1){
        txt_totalPrice = ' items in your cart';
        } else{
        txt_totalPrice = ' item in your cart'; 
        }
        
		//document.getElementById('shopping_cart_totalprice').innerHTML = txt_totalPrice + totalPrice.toFixed(2);
        if(no == 0){
        titleBox.innerHTML = '';
        }
        document.getElementById('shopping_cart_totalprice').innerHTML = no + txt_totalPrice;
		
	}	
	
}

function removeProductFromBasket(productId, type)
{
	var productRow = document.getElementById('shopping_cart_items_product' + productId);
	var numberOfItemCell = productRow.cells[0];
	if(numberOfItemCell.innerHTML == '1'){
		productRow.parentNode.removeChild(productRow);	
	} else{
		//numberOfItemCell.innerHTML = numberOfItemCell.innerHTML/1 - 1;
        productRow.parentNode.removeChild(productRow); 
	}
    
    if(type == 'Sights'){
    document.getElementById('checkSights' + productId).style.visibility = 'hidden';    
    document.getElementById('addSights' + productId).style.visibility = 'visible';
    } else if(type == 'Events'){
    document.getElementById('checkEvents' + productId).style.visibility = 'hidden';    
    document.getElementById('addEvents' + productId).style.visibility = 'visible';
    } else if(type == 'Hotels'){
    document.getElementById('checkHotels' + productId).style.visibility = 'hidden';    
    document.getElementById('addHotels' + productId).style.visibility = 'visible';
    } else if(type == 'Restaurants'){
    document.getElementById('checkRestaurants' + productId).style.visibility = 'hidden';    
    document.getElementById('addRestaurants' + productId).style.visibility = 'visible';
    }
            
	updateTotalPrice();
	ajaxRemoveProduct(productId);	
}

function ajaxValidateRemovedProduct(ajaxIndex){
    document.getElementById('loadingcart').innerHTML = "";
	if(ajaxObjects[ajaxIndex].response!='OK')alert('Error while removing product from the database');
	
}

function ajaxRemoveProduct(productId){
    document.getElementById('loadingcart').innerHTML = "<br/><img src=\""+geturl()+"/themes/default/images/indicator123.gif\">";
	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket;	// Saving product in this file
	ajaxObjects[ajaxIndex].setVar('productIdToRemove',productId);
	ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex); };	// Specify function that will be executed after file has been found
	ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function		
}

function ajaxAddProduct(productId, etype, city){  
    if(getCookie2('ind_id') == ''){
    document.getElementById('loadingcart').innerHTML = ""; 

    Dialog.alert("<center>You must be logged in to add elements to your trip planner.<br/><div id=\"errorboxPopUp\" style=\"height:20px;\"></div><form method=\"post\" action=\"javascript:void(0);\" name=\"formLogPopUp\" id=\"formLogPopUp\"><table><tr><td colspan=\"2\" style=\"color:#0399f8; font-weight:bold;\">Login here</td></tr><tr><td>Email Address:</td><td><input type=\"text\" name=\"emailAdd\" id=\"emailAdd\" value=\"\" class=\"textBox\" size=\"30\"></td></tr><tr><td>Password:</td><td><input type=\"password\" name=\"pass\" id=\"pass\" value=\"\" class=\"textBox\" size=\"30\"></td></tr><tr><td>&nbsp;</td><td><span class=\"orange-button\"><a href=\"javascript:void(0);\" onclick=\"checkLoginPopUp();\"><span>Sign In</span></a></td></tr><tr><td>&nbsp;</td><td align=\"left\">Not yet Registered?</td></tr><tr><td>&nbsp;</td><td align=\"left\"><a href=\"javascript:void(0);\" onclick=\"Dialog.okCallback();displayRegisterBox('" + geturl() + "/pscripts/register.pscripts.php');\"><span>Register here, it's free!</span></a></span></td></tr></table></form></center>",
                       {top: 320, width:400, className: "alphacube", okLabel: "Close"
                       });

/*
    Dialog.alert("You must be logged in to add elements to your trip planner.<br/><center><div class=\"blue-box\" style=\"background:none;background-color:#007BC0;\"><div class=\"inner\" style=\"background:none;background-color:#007BC0;\"><h3>Login now</h3><p id=\"errorbox\"></p><p id=\"regerrorbox\"></p><form method=\"post\" action=\"self\" name=\"formLogPop\" id=\"formLogPop\"><table width=\"100%\" style=\"padding-left:3px;\"><tr><td colspan=\"2\" align=\"left\"></td></tr><tr><td nowrap=\"nowrap\"><div align=\"left\"><span style=\"color:#fff;\">Email:</span></div></td><td><input type=\"text\" name=\"emailAdd\" id=\"emailAdd\" size=\"25\" value=\"\"/></td></tr><tr><td></td><td align=\"left\"> </td></tr><tr><td align=\"left\"><span style=\"color:#fff;\">Password:</span></td><td valign=\"bottom\"><input type=\"password\" name=\"pass\" id=\"pass\" size=\"25\"/></td></td></tr><tr><td></td><td align=\"left\"></td> </tr><tr><td></td><td align=\"right\" style=\"padding-right:55px;\"><a href='forgotpass' style='text-decoration:none; color:#fff;'>Forget password?</a></td> </tr></table><div style=\"float:left;clear:both;\"><div style=\"float:left;\"><span class=\"orange-button\"><a href=\"javascript:void(0);\" onclick=\" document.formLogPop.submit();\"><span>Sign In</span></a></span></div><div style=\"float:left;\">&nbsp;</div> <div style=\"float:left;\"><span class=\"orange-button\"><a href=\"javascript:void(0);\" onclick=\"displayRegisterBox('pscripts/register.pscripts.php');\"><span>Register now for a FREE account!</span></a></span></div></div></form><div style=\"clear:both;\"></div></div></div></center>",
                       {top: 320, width:400, className: "alphacube"
                       });
*/                       
    /*
    Dialog.alert("You must be logged to add elements to your trip planner.", 
                       {top: 320, width:250, className: "alphacube", okLabel: "Ok", 
                       ok:function(win) {
                       //openRegisterForm();
                       displayRegisterBox("pscripts/register.pscripts.php");
                       return true;  }
                       });
    */                                  
     
    } else{
         if(getCookie2('currenttrip') == ''){
         
         document.getElementById('loadingcart').innerHTML = "";
         setCookie2('withouttripprodid', productId, 1);  
         setCookie2('withouttripetype', etype, 1);  
         setCookie2('withouttripcity', city, 1);  
         //createNewTrip();
         displayMessage(geturl() + '/pscripts/createtrip.pscripts.php');
         } else{
	     
         var ajaxIndex = ajaxObjects.length;
	     ajaxObjects[ajaxIndex] = new sack();
	     ajaxObjects[ajaxIndex].requestFile = url_addProductToBasket;	// Saving product in this file
	     ajaxObjects[ajaxIndex].setVar('productId',productId);
         ajaxObjects[ajaxIndex].setVar('etype',etype);
         ajaxObjects[ajaxIndex].setVar('city',city);
	     ajaxObjects[ajaxIndex].onCompletion = function(){ showAjaxBasketContent(ajaxIndex); };	// Specify function that will be executed after file has been found
	     ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function	
        
        }
    }	
}