
//------------------------------- SHOP FUNCTIONS ----------------------------




//----------  BASKET  ------------

// deprecated : replaced by setBasketFormParams
// still used by submitBasketFormWithTarget(targetURL) below
function setBasketFormTarget(targetURL)
{
	if	( (targetURL == null ) || (targetURL == '' )) return;

	var  basketForm = document.getElementById('basketForm');
	// set target URL	
	basketForm.action = targetURL;

	return basketForm;
} 

// 11.11.2008 for admin Order
function setBasketFormParams(targetURL, oneBasketAction, oneAdminAction)
{
	if	( (targetURL == null ) || (targetURL == '' )) return;

	var  basketForm = document.getElementById('basketForm');
	// set target URL	
	basketForm.action = targetURL;
	
	basketForm.basketAction.value = oneBasketAction;
	basketForm.adminAction.value = oneAdminAction;

	return basketForm;
} 

function submitBasketFormWithTarget(targetURL)
{
	var basketForm =  setBasketFormTarget(targetURL);
	basketForm.submit();
}

//------ used to keep current flower visible on screen, after basket incrementation
function setCurrentFlowerLocation(currentFlowerID)
{
	// version OK pour Firefox et Safari
	//window.location.hash='#' + currentFlowerID;
	
	// 13.08.2008 : modif pour fixedMenu
	scrollToElementWithID('flower_' + currentFlowerID);
}

// version MSIE for "absolute" menu
function setCurrentFlowerLocationForMSIE(currentFlowerID)
{
	// uses anchor NAME, not ID
	window.location.hash='#' + currentFlowerID;
}






//---------  TEST -------------

function displayBasketFormTarget( displayEventString)
{
	var basketForm = document.getElementById('basketForm');
	// set target URL	
	targetURL = basketForm.action;
	
	alert ( displayEventString +  ' : ' + targetURL);
	
}

function alertMSIE( message)
{
	alert ('alertMSIE : ' + message);
}





//--------------  DETAILS -------------

function  postBasketContentFromDetails (popUpWindow, targetURL)
{
	// identify main window
	var mainWindow = popUpWindow.opener;

	while	(  mainWindow.opener != null )
		{ mainWindow = mainWindow.opener;
		}
	
	// close popUp
	popUpWindow.close();
	// post basket content
	mainWindow.location = targetURL;
}

function  postBasketContentFromMainWindow (mainWindow, targetURL)
{
	// post basket content
	mainWindow.location = targetURL;
}


//------------  SHOP MANAGER ----------------

function selectCategory(oneCategory)
{
	var selectionForm = document.getElementById('categorySelectionForm');
	// set target URL	
	selectionForm.elements['selectedCategory'].value = oneCategory;
	// submit form
	selectionForm.submit();
	
} 

//---------- quantity BTN's in shopManager

function addOneToProductInputField(managerWindow, oneProductRef)
{	addQuantityToInputField( managerWindow, 1, oneProductRef, 'productsSelectionForm');
}
function subtractOneFromProductInputField(managerWindow, oneProductRef)
{	addQuantityToInputField( managerWindow, -1, oneProductRef, 'productsSelectionForm');
}
//---------- quantity BTN's in Basket Content

function addOneToBasketInputField(basketWindow, oneProductRef)
{	addQuantityToInputField( basketWindow, 1, oneProductRef, 'basketForm');
}
function subtractOneFromBasketInputField(basketWindow, oneProductRef)
{	addQuantityToInputField( basketWindow, -1, oneProductRef, 'basketForm');
}

//------- common to shop and basket content

function addQuantityToInputField(sourceWindow, oneQuantity, oneProductRef, oneFormID)
{
	var  inputFieldName = 'qty[' + oneProductRef + ']';
	var  currentForm = sourceWindow.document.getElementById(oneFormID);
	var  productInputField = currentForm.elements[inputFieldName];
	var  newQuantity = parseInt(productInputField.value) + oneQuantity;
	newQuantity = ( newQuantity <0 ) ? 0: newQuantity;
	productInputField.value = newQuantity;
	
	// enable update BTN
	var  updateBTNID = oneProductRef + '_BTN';
	enableBasketUpdateBTN ( sourceWindow, updateBTNID);
}

function enableBasketUpdateBTN ( sourceWindow, oneBTNID)
{
	var updateBTN = sourceWindow.document.getElementById(oneBTNID);
	// enabled image URL is set in shopManager proc.
	updateBTN.src = basketUpdateBTNSource;
	updateBTN.disabled = false;

}

// synchronize products selection List in shopManager with Basket
// called by detailsPopUp  (sourceWindow)
function addOneToManagerProductInputFieldFromDetails(sourceWindow, oneProductRef)
{	
	// check whether sourceWindow has been opened by shopManager
	if	( sourceWindow.name != 'shopDetailsWIN' ) return;
	
	// identify shopManager window
	var shopManagerWindow = sourceWindow.opener;
	// update input field
	addOneToProductInputField(shopManagerWindow, oneProductRef);
}


function  validateOrder () 
{
	// sales terms checkBox
	if   ( isCheckBoxIDChecked ('salesTermsValidateCB') == false )
		 { // box is not checked
		   alert ( ERR_MES_SALES_TERMS );
		   return false;
		 }
	return true;
}

//--------------------------  ADMIN Orders -------------------------------

// 12.12.2008 : default packShip is set in adminHeader.inc
//function updatePackShipAmountInBasketForm(oneDefaultAmount)
function updatePackShipAmountInBasketForm()
{
	// get basket form
	var  basketForm = document.getElementById('basketForm');

	var  adminOrderShipmentMode = basketForm.elements['adminOrderShipmentMode'];
	// oneDefaultAmount : value when goods are shipped (depends on country)
	var  myPackShipAmount = adminOrderDefaultPackShip;
	// order is picked up : mode = 9
	if	(adminOrderShipmentMode.value == 9) myPackShipAmount = 0.00;

	// set packShipValue	
	var  myPackShipValue = new Number (myPackShipAmount);
	basketForm.elements['adminOrderPackShip'].value = myPackShipValue.toFixed(2);
	// update totals accordingly : NOT done by onChange (packShip)
	refreshTotalInBasketForm();
	
} 

// 
function refreshTotalInBasketForm()
{
	// get basket form
	var  basketForm = document.getElementById('basketForm');
	//basketForm.elements['adminOrderPackShip'].value
	
	var  myTotalProducts = 1.0 * basketForm.elements['adminOrderTotalProducts'].value;
	var  myTotalPackShip = 1.0 * basketForm.elements['adminOrderPackShip'].value;
	var  myTotal = new Number (myTotalProducts + myTotalPackShip);
	
	// refresh total
	document.getElementById('basketContentTotalsAmountFinal').innerHTML = myTotal.toFixed(2);
	
}


function processChangeInPaymentStatus()
{
	// free sample params are set in common admin Header (maiaflorPageHeader.inc)
	// get basket form
	var  basketForm = document.getElementById('basketForm');
	// get free sample RB with value 'ON'
	var  freeSamplesRB_ON = document.getElementById('adminOrderFreeSamplesRB_V1');
	// get free sample RB with value 'ON'
	var  freeSamplesRB_OFF = document.getElementById('adminOrderFreeSamplesRB_V0');
	// get payment status
	var  paymentStatus = document.getElementById('adminOrderPaymentStatus');

	// get payment status (788 : free samples)
	if	( paymentStatus.value == adminOrderFreeSamplePaymentStatus )
		{ 
		// set free samples to ON
		basketForm.elements['adminOrderPaymentMode'].value = adminOrderFreeSamplePaymentMode;
		basketForm.elements['adminOrderShipmentMode'].value = adminOrderFreeSampleShipmentMode;
		freeSamplesRB_ON.checked = true;
		}
	else	{
		// set free samples to OFF
		basketForm.elements['adminOrderPaymentMode'].value = adminOrderDefaultPaymentMode;
		basketForm.elements['adminOrderShipmentMode'].value = adminOrderDefaultShipmentMode;
		freeSamplesRB_OFF.checked = true;
		}
		
	// ask for basket content refresh with actual prices (or zero)
	updatePackShipAmountInBasketForm();
	setBasketFormParams(adminOrderFreeSampleRefreshURL, adminOrderFreeSampleBasketAction, adminOrderFreeSampleAdminAction);
	// submit form
	document.getElementById('basketForm').submit();
}



function processFreeSamplesRBClick(newValue)
{
	// free sample params are set in common admin Header (maiaflorPageHeader.inc)

	// get basket form
	var  basketForm = document.getElementById('basketForm');

	// get Radio Field label
	var  freeSamplesRBLabel = document.getElementById('adminOrderFreeSamplesRBLabel');
	if	( newValue == '1' )
		{ // free samples are ON
		   basketForm.elements['adminOrderPaymentStatus'].value = adminOrderFreeSamplePaymentStatus;
		   basketForm.elements['adminOrderPaymentMode'].value = adminOrderFreeSamplePaymentMode;
		   basketForm.elements['adminOrderShipmentMode'].value = adminOrderFreeSampleShipmentMode;
		 }
	if	( newValue == '0' )
		{ // free samples are OFF
		   basketForm.elements['adminOrderPaymentStatus'].value = adminOrderDefaultPaymentStatus;
		   basketForm.elements['adminOrderPaymentMode'].value = adminOrderDefaultPaymentMode;
		   basketForm.elements['adminOrderShipmentMode'].value = adminOrderDefaultShipmentMode;
		 }
		 
	// ask for basket content refresh with actual prices (or zero)
	updatePackShipAmountInBasketForm();
	setBasketFormParams(adminOrderFreeSampleRefreshURL, adminOrderFreeSampleBasketAction, adminOrderFreeSampleAdminAction);
	// submit form
	document.getElementById('basketForm').submit();
}




