/* ECom functions */
function qsAddToBasket(params) {
	
	// DTA v430 26.8.2008
	if(typeof(params.lngDeliveryFactor) == 'undefined')
		params.lngDeliveryFactor = 1;
	
	$.ajax({
		'type':'POST'
		,'url':'/Ecom/ECBasket.asp'
		,'data':'Action=Add&lngDataNodeFK=' + params.lngDataNodeFK + 
				'&strExternalID=' + params.strExternalID + 
				'&strDescription=' + escape(params.strDescription) +
				'&dblUnitPrice=' + params.dblUnitPrice + 
				'&dblQuantity=' + params.dblQuantity + 
				'&dblTaxValue=' + params.dblTaxValue + 
				'&strBusinessData=' + escape(params.strBusinessData) + 
				'&strReferenceData=' + escape(params.strReferenceData) + 
				'&lngDeliveryFactor=' + params.lngDeliveryFactor + 
				'&SessionID=' + gobjSessionVar.sessionID
		,'async':false
		,'dataType':'html'
		,'error':function(req, error){alert('Error in Ajax Call ' + req.responseText);}
		,'success':function(res){
			qsInternRefreshBasket();
		}
	});		
}

function qsAddToBasketNoRefresh(params) {

	// DTA v430 26.8.2008
	if(typeof(params.lngDeliveryFactor) == 'undefined')
		params.lngDeliveryFactor = 1;
	
	$.ajax({
		'type':'POST'
		,'url':'/Ecom/ECBasket.asp'
		,'data':'Action=Add&lngDataNodeFK=' + params.lngDataNodeFK + 
				'&strExternalID=' + params.strExternalID + 
				'&strDescription=' + escape(params.strDescription) +
				'&dblUnitPrice=' + params.dblUnitPrice + 
				'&dblQuantity=' + params.dblQuantity + 
				'&dblTaxValue=' + params.dblTaxValue + 
				'&strBusinessData=' + params.strBusinessData + 
				'&strReferenceData=' + params.strReferenceData + 
				'&lngDeliveryFactor=' + params.lngDeliveryFactor + 
				'&SessionID=' + gobjSessionVar.sessionID
		,'dataType':'html'
		,'error':function(req, error){alert('Error in Ajax Call 2' + req.responseText);}
		,'success':function(res){
		}
	});		
}

//Hook up addToBasket to any appropriate button
$(document).ready(function() {
	$('.ECArt .ECAdd').click(qsECAdd);
	$('.ECUpdateBasket').click(qsUpdateBasket);
});

function qsECAdd(){
	//Find the enclosing div tag with a ECArt class
	var nodeId = $(this).parents('div.ECArt').get(0).id;
	//The id is supposed to be qsArtNNN
	//Extract the Node ID
	nodeId = nodeId.substring(5);
	var ECProperties = eval('ECProperties' + nodeId);
	var qty = 1
	//Find an element with ECQuantity class
	qty = $('#qsArt'+nodeId+' .ECQuantity').get(0);
	if (qty) {
		qty = qty.value;
		if (qty == undefined) {
			qty = 1;
		}
	}
	else {
		qty = 1;
	}
	
	if (qty == 0 || qty < 0) {
		alert('Please enter correct quantity');
	}
	else {
	
		//Extend the ECProperties
		ECProperties.dblQuantity = qty;
		ECProperties.divResult = 'ECBasket';			

		// DTA v424 4.3.2008
		// obtient le prix selon la quantité et la date
		dblOldUnitPrice = ECProperties.dblUnitPrice;

		dblUnitPrice = qsGetDiscountQuantity(ECProperties);
		if(dblUnitPrice > -1)
			ECProperties.dblUnitPrice = dblUnitPrice;

		dblUnitPrice = qsGetDiscountTime(ECProperties);
		if(dblUnitPrice > -1)
			ECProperties.dblUnitPrice = dblUnitPrice;

		qsAddToBasket(ECProperties);
		ECProperties.dblUnitPrice = dblOldUnitPrice ;
		
	}		
}	

// DTA v423 12.2.2008
// retourne le prix selon la quantité
function qsGetDiscountQuantity(pobjECProperties){

	var dblPrice = -1;
	var dblQuantity = pobjECProperties.dblQuantity;
	// DTA v425 1.4.2008 si le nombre d'interval existe, on le 
	// multiplie avec le nombre de jour dans la réservation
	if(typeof(pobjECProperties.lngNbrInterval) != 'undefined')
		dblQuantity *= pobjECProperties.lngNbrInterval;

	// prépare les paramètres d'envoi
	var arrParams = Array(
		{	name:'Ajax',				value:'ECDiscount' },
		{	name:'Action',				value:'PriceQuantity' },
		{	name:'lngDataNodeFK',		value:pobjECProperties.lngDataNodeFK },
		{	name:'dblQuantity',			value:dblQuantity },
		{   name: 'dblUnitPrice',		value:pobjECProperties.dblUnitPrice }
	);
	
	$.ajax({
		type:		'GET',
		cache:		false,
		dataType:	'html',
		async:		false,
		url:		'/qsPortal/Ajax/Get.asp',
		data:		$.fn.paramForm(arrParams),
		success:	function(req){
						dblPrice = req;
					},
		error:		function(req, err){
						alert(req.responseText);
					}
	});
	
	return dblPrice;
}

// DTA v423 12.2.2008
// retourne le prix selon la date
function qsGetDiscountTime(pobjECProperties){

	var dblPrice = -1;

	// prépare les paramètres d'envoi
	var arrParams = Array(
		{	name:'Ajax',				value:'ECDiscount' },
		{	name:'Action',				value:'PriceTime' },
		{	name:'lngDataNodeFK',		value:pobjECProperties.lngDataNodeFK },
		{	name:'lngNbrInterval',		value:pobjECProperties.lngNbrInterval },
		{	name:'dblUnitPrice',		value:pobjECProperties.dblUnitPrice },
		{	name:'dtmFrom',				value:pobjECProperties.dtmFrom },
		{	name:'dtmTo',				value:pobjECProperties.dtmTo }
	);
	
	$.ajax({
		type:		'GET',
		cache:		false,
		dataType:	'html',
		async:		false,
		url:		'/qsPortal/Ajax/Get.asp',
		data:		$.fn.paramForm(arrParams),
		success:	function(req){
						dblPrice = req;
					},
		error:		function(req, err){
						alert(req.responseText);
					}
	});
	
	return dblPrice;
}

// DTA v423 12.2.2008
// retourne le prix fixe selon la date, la quantité et le nombre de personne
function qsGetFixPrice(pobjECProperties) {

	var objPrice = {};

	// prépare les paramètres d'envoi
	var arrParams = Array(
		{ name: 'Ajax', value: 'ECDiscount' },
		{ name: 'Action', value: 'FixPrice' },
		{ name: 'lngDataNodeFK', value: pobjECProperties.lngDataNodeFK },
		{ name: 'lngNbrInterval', value: pobjECProperties.lngNbrInterval },
		{ name: 'dblUnitPrice', value: pobjECProperties.dblUnitPrice },
		{ name: 'lngNumOfPerson', value: pobjECProperties.lngNumOfPerson },
		{ name: 'dtmFrom', value: pobjECProperties.dtmFrom },
		{ name: 'dtmTo', value: pobjECProperties.dtmTo }
	);

	$.ajax({
		type: 'GET',
		cache: false,
		dataType: 'json',
		async: false,
		url: '/qsPortal/Ajax/Get.asp',
		data: $.fn.paramForm(arrParams),
		success: function(req) {
			objPrice = req;
		},
		error: function(req, err) {
			alert(req.responseText);
		}
	});

	return objPrice;
}




function gotoCheckout(pblnPopup, plngOrderID)
{
	if(typeof(pblnPopup) == 'undefined') {
		setTimeout("document.location.href = '/qsPortal/Home.asp?Action=-7';", 400);
	}
	else {
		if(pblnPopup == true) {
			// si le div du checkout n'exite pas on le crée
			if(typeof($('.checkout-popup').get(0)) == 'undefined') {
				$('body').append('<div class="checkout-popup"></div>');
			}
			if (typeof (plngOrderID) == 'undefined') {
				plngOrderID = '';
			}
			$('.checkout-popup').html('<iframe frameborder="0" scrolling="horizontal" allowtransparency="true" vspace="0" hspace="0" marginwidth="0" marginheight="0" bottommargin="0" rightmargin="0" leftmargin="0" topmargin="0" src="/ECom/ECCheckoutPopup.asp?orderid=' + plngOrderID + '" />');
			$('.checkout-popup').dialog({dialogClass: 'ecom', height: 530, width: 750, resizable: false, modal: true });
			$('.checkout-popup').dialog( 'open' );
			if ($.browser.msie) {
				$('.checkout-popup iframe').height(530 - $('.checkout-popup').parent().find('.ui-dialog-titlebar').height() - 8);
			}
		}
		else
			setTimeout("document.location.href = '/qsPortal/Home.asp?Action=-7';", 400);
	}

}

function qsInternRefreshBasket() {
	// DTA v421 15.1.2008 Modification du test de l'existance de la fonction RefreshBasket
	//if (RefreshBasket) {
	if (typeof (RefreshBasket) != 'undefined') {
		RefreshBasket();
	}
	else {
		// DTA v428 21.7.2008 
		// La fonction loadIfModified a été suprimé de jquery. On utilise a présent que la fonction load
		//if ($.browser.msie)
		//	$('#' + params.divResult).loadIfModified('/Ecom/ECBasket.asp?Action=View&SessionID=' + gobjSessionVar.SessionID)
		//else
		$('#' + params.divResult).load('/Ecom/ECBasket.asp?Action=View&SessionID=' + gobjSessionVar.SessionID);
	}
}

function qsRemoveFromBasket(id) {
	$.ajax({ url: '/ECom/ECCheckoutPopup.asp', data: 'DelId=' + id, type: 'POST', cache: false, dataType: 'html', async: false });
	qsInternRefreshBasket();
}

function qsUpdateBasket() {
	$.ajax({ url: '/ECom/ECCheckoutPopup.asp', data: $("#frmBasket").formSerialize() + "&cmdECBasketUpdate=Update", type: 'POST', cache: false, dataType: 'html', async: false });
	qsInternRefreshBasket();
}

