var cartEmptyText = new Array();
cartEmptyText["ca"] = "El carret&#243; est&#224; vuit.";
cartEmptyText["es"] = "El carro esta vacio.";
cartEmptyText["en"] = "The cart is empty.";

var popupTitleText = new Array();
popupTitleText["ca"] = "Instruccions especials";
popupTitleText["es"] = "Instrucciones especiales";
popupTitleText["en"] = "Special Instructions";

var popupDescText = new Array();
popupDescText["ca"] = "Pot escriure una nota per dir-nos com vol aquest producte.";
popupDescText["es"] = "Puede escribir una nota para decirnos como quiere este producto.";
popupDescText["en"] = "You may write us a note about how you want this product.";

var popupCloseText = new Array();
popupCloseText["ca"] = "Tancar";
popupCloseText["es"] = "Cerrar";
popupCloseText["en"] = "Close";

var popupNoShowText = new Array();
popupNoShowText["ca"] = "No mostrar més";
popupNoShowText["es"] = "No mostrar más";
popupNoShowText["en"] = "Don't show this";

var itemLabelText = new Array();
itemLabelText["ca"] = "Article";
itemLabelText["es"] = "Artículo";
itemLabelText["en"] = "Item";

var itemQtyText = new Array();
itemQtyText["ca"] = "Quant.";
itemQtyText["es"] = "Cant.";
itemQtyText["en"] = "Qty.";

var itemTotalText = new Array();
itemTotalText["ca"] = "Total";
itemTotalText["es"] = "Total";
itemTotalText["en"] = "Total";

var itemEachText = new Array();
itemEachText["ca"] = "c/u";
itemEachText["es"] = "c/u";
itemEachText["en"] = "each";

var itemIVAText = new Array();
itemIVAText["ca"] = "IVA";
itemIVAText["es"] = "IVA";
itemIVAText["en"] = "VAT";

var itemBaseText = new Array();
itemBaseText["ca"] = "Base";
itemBaseText["es"] = "Base";
itemBaseText["en"] = "Base";

var itemCurrPriceText = new Array();
itemCurrPriceText["ca"] = "Preu actual";
itemCurrPriceText["es"] = "Precio actual";
itemCurrPriceText["en"] = "Current price";

var itemNDText = new Array();
itemNDText["ca"] = "No disponible";
itemNDText["es"] = "No disponible";
itemNDText["en"] = "Not available";

var showDetailText = new Array();
showDetailText["ca"] = "Mostrar detalls";
showDetailText["es"] = "Mostrar detalles";
showDetailText["en"] = "View details";

var hideDetailText = new Array();
hideDetailText["ca"] = "Amagar detalls";
hideDetailText["es"] = "Esconder detalles";
hideDetailText["en"] = "Hide details";

var confirmDropFavObj = new Array();
confirmDropFavObj["ca"] = "Eliminar aquesta comanda de forma definitiva?";
confirmDropFavObj["es"] = "Eliminar este pedido de manera definitiva?";
confirmDropFavObj["en"] = "Delete this order permanantly?";



var ieVers;

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
	ieVers = new Number(RegExp.$1);
}

//alert (ieVers);

function addEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla 
// By Scott Andrew 
{
  if (elm.addEventListener) { 
    elm.addEventListener(evType, fn, useCapture); 
    return true; 
  } else if (elm.attachEvent) { 
    var r = elm.attachEvent('on' + evType, fn); 
    return r; 
  } else {
    elm['on' + evType] = fn;
  }
}

function dropEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla 
// By Greg Robbins :P 
{
  if (elm.removeEventListener) { 
    elm.removeEventListener(evType, fn, useCapture); 
    return true; 
  } else if (elm.detachEvent) { 
    var r = elm.detachEvent('on' + evType, fn); 
    return r; 
  } else {
    elm['on' + evType] = null;
  }
}

// climb up the tree to the supplied tag.
function ascendDOM(e, target) {
  while (e.nodeName.toLowerCase() != target && e.nodeName.toLowerCase() != 'html')
  {
  	e = e.parentNode;
  	alert(e);
  }
  return (e.nodeName.toLowerCase() == 'html') ? null : e;
}

function fetchTarget(e)
{
	if(window.event && window.event.srcElement)
	{
		return window.event.srcElement;
	}
	else if(e && e.target)
	{
		return e.target;
	}
	else
	{
		return;
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		//alert(curleft);
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			//alert(obj.tagName);
			curleft += obj.offsetLeft
			//alert(obj.tagName + "(" + obj.id + "): " + obj.offsetLeft)
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function cancelClick(e)
{
	if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.stopPropagation && e.preventDefault) {
      e.stopPropagation();
      e.preventDefault();
    }
	return false;
}

function euroNumberFormat(myval)
{
	newVal = myval.toFixed(2) + "";
	newVal = newVal.replace(/\./g, ",");
	return newVal;
}


function addAllEvents()
{
	fetchCartButtons();
	fetchCartSelects();
	fetchDropButtons();
	loadClientArea();
	fetchItemSelects();
	fetchItemAltQtys();
	fetchCartAltQtys();
	fetchTextAreas();
}

var allowPopups = false;

function fetchTextAreas()
{
	textAreasArr = document.getElementsByTagName("TEXTAREA");
	for(i = 0; i < textAreasArr.length; i++)
	{
		if(textAreasArr[i].id.match(/cartComment_([0-9]+)/) || textAreasArr[i].id.match(/user_comment/))
		{
			addEvent(textAreasArr[i], "keyup", limitTextArea, false);
		}
		
	}
}
function limitTextArea(e)
{
	maxText = 50;
	target = fetchTarget(e);
	if(target.value.length > maxText)
	{
		target.value = target.value.substring(0, maxText);
	}
	
}

function detectEvents(str)
{
	data = str.split("_");
	return data;
}

function fetchCartButtons()
{
	allButtons = document.getElementsByTagName("INPUT");
	for(i = 0; i < allButtons.length; i++)
	{
		if(allButtons[i].id.match(/addCart_([0-9]+)/))
		{
			addEvent(allButtons[i], "click", addCart, false);
			addEvent(allButtons[i], "mouseover", cartButtonRollOn, false);
			addEvent(allButtons[i], "mouseout", cartButtonRollOff, false);
			allButtons[i].onclick = cancelClick;
		}
	}
}

function cartButtonRollOn(e)
{
	target = fetchTarget(e);
	target.src = "img_std/cart_button_on.gif";
	return;
}

function cartButtonRollOff(e)
{
	target = fetchTarget(e);
	target.src = "img_std/cart_button_off.gif";
	return;
}

function fetchCartSelects()
{
	cartItemsObj = document.getElementById("cartItems");
	if(cartItemsObj)
	{
		cartSelects = cartItemsObj.getElementsByTagName("SELECT");
		for(i = 0; i < cartSelects.length; i++)
		{
			addEvent(cartSelects[i], "change", changeCartItemQty, false);
		}
	}
}

function fetchItemSelects()
{
	contentObj = document.getElementById("contentContainer");
	isCheckout = null == document.getElementById("checkoutCartContainer") ? false : true;
	if(isCheckout) return;
	if(contentObj)
	{
		itemSelects = contentObj.getElementsByTagName("SELECT");
		for(i = 0; i < itemSelects.length; i++)
		{
			addEvent(itemSelects[i], "change", selectOtherQty, false);
		}
	}
}

function fetchItemAltQtys()
{
	contentObj = document.getElementById("contentContainer");
	isCheckout = null == document.getElementById("checkoutCartContainer") ? false : true;
	if(isCheckout) return;
	if(contentObj)
	{
		itemAltQtys = contentObj.getElementsByTagName("INPUT");
		for(i = 0; i < itemAltQtys.length; i++)
		{
			if (itemAltQtys[i].className == "itemAltQty")
			{
				addEvent(itemAltQtys[i], "blur", hideAltQty, false);
				addEvent(itemAltQtys[i], "keyup", detectKeyCode, false);
			}
		}
	}
}

function fetchCartAltQtys()
{
	cartItemsObj = document.getElementById("cartItems");
	
	if(cartItemsObj)
	{
		itemAltQtys = cartItemsObj.getElementsByTagName("INPUT");
		for(i = 0; i < itemAltQtys.length; i++)
		{
			if (itemAltQtys[i].className == "itemAltQty")
			{
				addEvent(itemAltQtys[i], "keyup", detectKeyCode, false);
				addEvent(itemAltQtys[i], "keyup", submitCartAltQty, false);
				addEvent(itemAltQtys[i], "blur", hideCartAltQty, false);
			}
		}
	}
}

function detectKeyCode(e)
{
	//alert(e.keyCode);
	if(e.keyCode > 47 && e.keyCode < 58)
	{
		return;
	}
	//return false;
	target = fetchTarget(e);
	target.value = target.value.replace(/[^0-9]/, "");
}

function hideAltQty(e)
{
	target = fetchTarget(e);
	myValue = target.value;
	//alert(myValue);
	idItem = target.id.match(/itemAltQty_([0-9]+)/)[1];
	itemQtyObj = document.getElementById("itemQty_" + idItem);
	for(i = 0; i < itemQtyObj.options.length; i++)
	{
		if(myValue == itemQtyObj.options[i].value)
		{
			target.style.display = "none";
			itemQtyObj.style.display = "inline";
			itemQtyObj.selectedIndex = i;
		}
	}
}

function hideCartAltQty(e)
{
	//alert("blur");
	target = fetchTarget(e);
	myValue = target.value;
	//alert(myValue);
	idItem = target.id.match(/cartItemAltQty_([0-9]+)/)[1];
	itemQtyObj = document.getElementById("cartItemQty_" + idItem);
	//alert(itemQtyObj.id);
	for(i = 0; i < itemQtyObj.options.length; i++)
	{
		if(myValue == itemQtyObj.options[i].value)
		{
			target.style.display = "none";
			itemQtyObj.style.display = "inline";
			itemQtyObj.selectedIndex = i;
			break;
		}
	}
}

function selectOtherQty(e)
{
	target = fetchTarget(e);
	idItem = target.id.match(/itemQty_([0-9]+)/)[1];
	selectedVal = target.options[target.selectedIndex].value;
	itemAltQtyObj = document.getElementById("itemAltQty_" + idItem);
	if(selectedVal == "y")
	{
		target.style.display="none";
		itemAltQtyObj.style.display = "inline";
		itemAltQtyObj.focus();
	}
}

function addCart(e)
{
	target = fetchTarget(e);
	match = target.id.match(/addCart_([0-9]+)/);
	idItem = match[1];
	
	itemQtyObj = document.getElementById("itemQty_" + idItem);
	itemQtyVal = itemQtyObj.options[itemQtyObj.selectedIndex].value;
	
	itemAltQtyObj = document.getElementById("itemAltQty_" + idItem);
	itemAltQtyVal = itemAltQtyObj.value;
	
	if(itemQtyObj.style.display == "none")
	{
		myValue = itemAltQtyVal;
	}
	else
	{
		myValue = itemQtyVal;
	}
	
	ajaxObj.call("action=ajaxCart&myAction=addCart&idItem=" + idItem + "&qty=" + myValue, addCartResp);
	
	if(window.event)
	{
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if(e && e.stopPropagation && e.preventDefault)
	{
		e.stopPropagation();
		e.preventDefault();
	}
}

function changeCartItemQty(e)
{
	target = fetchTarget(e);
	if (target.options[target.options.selectedIndex].value == "y")
	{
		idItem = target.id.match(/cartItemQty_([0-9]+)/)[1];
		cartItemAltQtyObj = document.getElementById("cartItemAltQty_" + idItem);
		target.style.display = "none";
		cartItemAltQtyObj.style.display = "inline";
	}
	else
	{
		changeCart(e);
	}
}

function submitCartAltQty(e)
{
	target = fetchTarget(e);
	target.value = parseInt(target.value);
	if (target.value == "NaN")
	{
		target.value = "";
		return;
	}
	//window.setTimeout(function(){alert(e);}, 1000);
	if (document.all) {
		//window.setTimeout(function(){changeCart(e);}, 1000);
		elementId = target.id;
		window.setTimeout(function(){changeCart(elementId);}, 1000);
	}
	else {
		window.setTimeout(function(){changeCart(e);}, 1000, e);
	}
	//changeCart(e);
}

function changeCart(e)
{
	if("string" == typeof e)
	{
		target = document.getElementById(e);
	}
	else
	{
		target = fetchTarget(e);
	}
	
	parts = target.id.split("_");
	
	isDrop = parts[0] == "drop" ? true : false;
	myTagName = target.tagName;
	idItem = parts[1];
	
	if(!isDrop)
	{
		if (myTagName == "SELECT")
		{
			itemQtyVal = target.options[target.selectedIndex].value;
			useAction = itemQtyVal == "x" ? "dropCart" : "updateCart";
		}
		else if (myTagName == "INPUT")
		{
			itemQtyVal = target.value;
			useAction = itemQtyVal == "0" ? "dropCart" : "updateCart";
		}
	}
	else
	{
		itemQtyVal = "x";
		useAction = "dropCart";
	}
	ajaxObj.call("action=ajaxCart&myAction=" + useAction + "&idItem=" + idItem + "&qty=" + itemQtyVal, addCartResp);
	
	if(window.event)
	{
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if(e && e.stopPropagation && e.preventDefault)
	{
		e.stopPropagation();
		e.preventDefault();
	}
}



function addCartResp(resp)
{
	idItem = resp.idItem;
	qty = resp.qty;
	//alert(resp.item.amount);
	myAction = resp.myAction;
	//alert(resp);
	
	itemContainerObjId = "cartItem_" + idItem;
	
	//find item in cart
	itemContainerObj = document.getElementById(itemContainerObjId);
	
	//if found
	if(itemContainerObj)
	{
		if(qty == "x")
		{
			cartListObj = document.getElementById("cartItems");
			cartListObj.removeChild(itemContainerObj);
			
			cartListItems = cartListObj.getElementsByTagName("LI");
			//alert(cartListItems.length);
			if(cartListItems.length == 0)
			{
				cartEmpty = document.createElement("LI");
				cartEmpty.id = "emptyCart";
				cartEmpty.innerHTML = cartEmptyText[pageLang];
				cartListObj.appendChild(cartEmpty);
			}
		}
		else
		{
			//alert("Found itemContainerObj: " + itemContainerObjId);
			selectObj = document.getElementById("cartItemQty_" + idItem);
			altQtyObj = document.getElementById("cartItemAltQty_" + idItem);
			altQtyObj.value = qty;
			myFound = false;
			for(i = 0; i < selectObj.options.length; i++)
			{
				if(qty == selectObj.options[i].value)
				{
					selectObj.selectedIndex = i;
					myFound = true;
					break;
				}
			}
			//which to show?
			if(myFound == true)
			{
				selectObj.style.display = "inline";
				altQtyObj.style.display = "none";
			}
			else
			{
				selectObj.style.display = "none";
				altQtyObj.style.display = "inline";
			}
			
			cartPriceObj = document.getElementById("itemPrice_" + idItem);
			if (cartPriceObj) {
				newItemAmountVal = resp.item.amount.toFixed(2) + "";
				newItemAmount = newItemAmountVal.replace(/\./g, ",") + " &euro;";
				cartPriceObj.innerHTML = newItemAmount;
			}
			//update IVA
			ivaObj = document.getElementById("itemAmountIVA_" + idItem);
			if(ivaObj)
			{
				newIvaAmountVal = resp.item.amountIVA.toFixed(2) + "";
				newIvaAmount = newIvaAmountVal.replace(/\./g, ",") + " &euro;";
				ivaObj.innerHTML = newIvaAmount;
			}
			//update Recargo
			recObj = document.getElementById("itemAmountRecargo_" + idItem);
			if(recObj)
			{
				newRecAmountVal = resp.item.amountRecargo.toFixed(2) + "";
				newRecAmount = newRecAmountVal.replace(/\./g, ",") + " &euro;";
				recObj.innerHTML = newRecAmount;
			}
			//update allIncAmount
			allIncObj = document.getElementById("itemAmountAllIncl_" + idItem);
			if(allIncObj)
			{
				newAllIncAmountVal = resp.item.amountAllIncl.toFixed(2) + "";
				newAllIncAmount = newAllIncAmountVal.replace(/\./g, ",") + " &euro;";
				allIncObj.innerHTML = newAllIncAmount;
			}
		}
	}
	else
	{
		//alert("Not found: " + itemContainerObjId);
		cartItemObj = createCartItem(resp.item);
		cartListObj = document.getElementById("cartItems");
		cartListObj.insertBefore(cartItemObj, cartListObj.firstChild);
		
		emptyCartObj = document.getElementById("emptyCart");
		if(emptyCartObj)
		{
			cartListObj.removeChild(emptyCartObj);
		}
	}
	
	cartTotalAmountObj = document.getElementById("cartTotalAmount");
	cartTotalAmountCheckoutObj = document.getElementById("cartTotalAmountCheckout");
	
	//alert(resp.cartTotal);
	cartTotalVal = resp.cartTotal.toFixed(2) + "";
	cartTotalAmountObj.innerHTML = cartTotalVal.replace(/\./g, ",");
	
	//use this on checkout
	cartTotalTaxObj = document.getElementById("totalAmountIVA");
	cartTotalAmountAllInclObj = document.getElementById("totalAmountAllIncl");
	
	if(cartTotalTaxObj && cartTotalAmountAllInclObj)
	{
		cartTotalTaxVal = resp.cartTotalTax.toFixed(2) + "";
		cartTotalTaxObj.innerHTML = cartTotalTaxVal.replace(/\./g, ",");
		cartTotalAmountAllInclVal = resp.cartTotalAllIncl.toFixed(2) + "";
		cartTotalAmountAllInclObj.innerHTML = cartTotalAmountAllInclVal.replace(/\./g, ",");
	}
	
	
	/*
	if (myAction == "addCart") {
		cartButtonObj = document.getElementById("addCart_" + idItem);
		if(cartButtonObj)
		{
			createCartCommentPopup(cartButtonObj);
		}
	}
	*/
}

function createCartItem(itemObj)
{
	//alert(typeof itemObj.amount);
	
	cartItemObj = document.createElement('LI');
	cartItemObj.className = 'cartItem';
	cartItemObj.id = "cartItem_" + itemObj.id;
	//title of item
	escTitle = unescape(itemObj.title);
	itemTitle = document.createTextNode(escTitle);
	cartItemObj.appendChild(itemTitle);
	cartItemObj.appendChild(document.createElement('BR'));
	//price
	cartPriceObj = document.createElement("DIV");
	cartPriceObj.className = "price";
	cartPriceObj.id = "itemPrice_" + itemObj.id;
	cartPriceVal = itemObj.amount.toFixed(2) + "";
	cartPriceObj.innerHTML = cartPriceVal.replace(/\./g, ",");
	cartPriceObj.innerHTML += " &euro;";
	cartItemObj.appendChild(cartPriceObj);
	//delete button
	dropObj = document.createElement("IMG");
	dropObj.setAttribute('id', "drop_" + itemObj.id);
	dropObj.setAttribute('name', "drop_" + itemObj.id);
	dropObj.setAttribute('class', "drop");
	dropObj.setAttribute('style', "float:left;");
	dropObj.setAttribute('src', "img_std/drop_off.gif");
	addEvent(dropObj, "click", changeCart, false);
	addEvent(dropObj, "mouseover", cartDropOn, false);
	addEvent(dropObj, "mouseout", cartDropOff, false);
	cartItemObj.appendChild(dropObj);

	//select menu
	selectObj = document.createElement('SELECT');
	selectObj.setAttribute('id', "cartItemQty_" + itemObj.id);
	selectObj.setAttribute('name', "cartItemQty_" + itemObj.id);
	for(sProp in itemObj.menu)
	{
		newOption = createCartItemOption(itemObj.qty, sProp, itemObj.menu[sProp]);
		selectObj.appendChild(newOption);
	}
	addEvent(selectObj, "change", changeCartItemQty, false);
	
	//altQty Menu
	altQtyObj = document.createElement("INPUT");
	altQtyObj.setAttribute('id', "cartItemAltQty_" + itemObj.id);
	altQtyObj.setAttribute('name', "cartItemAltQty_" + itemObj.id);
	altQtyObj.value = itemObj.qty;
	altQtyObj.className = "itemAltQty";
	addEvent(altQtyObj, "keyup", detectKeyCode, false);
	addEvent(altQtyObj, "keyup", submitCartAltQty, false);
	addEvent(altQtyObj, "blur", hideCartAltQty, false);
	
	
	//show which?
	myFound = false;
	for(sProp in itemObj.menu)
	{
		//alert(sProp)
		if(sProp == itemObj.qty)
		{
			myFound = true;
			break;
		}
	}
	if(myFound)
	{
		selectObj.style.display = "inline";
		altQtyObj.style.display = "none";
	}
	else
	{
		selectObj.style.display = "none";
		altQtyObj.style.display = "inline";
	}
	
	cartItemObj.appendChild(selectObj);
	cartItemObj.appendChild(altQtyObj);
	
	return cartItemObj;
}

function createCartItemOption(qty, key, val)
{
	optionObj = document.createElement('OPTION');
	optionObj.setAttribute('label', val);
	optionObj.setAttribute('value', key);
	optionObj.innerHTML = val;
	if(qty == key)
	{
		optionObj.selected = true;
	}
	
	return optionObj;
}


function alertClick(e)
{
	target = fetchTarget(e);
	alert(target.id);
}

function clientLogout()
{
	ajaxObj.call("action=ajaxCustomerLogin&myAction=logout&lang=" + pageLang, clientLoginResp);
}



function loadConstantDivs()
{
	allTds = document.getElementsByTagName("TD");
	for(i = 0; i < allTds.length; i++)
	{
		myTd = allTds[i];
		match = myTd.id.match(/const_(ca|es|en)_([0-9]+)/)
		if(match)
		{
			myTd.lang = match[1];
			myTd.constId = match[2];
		}
	}
}

function loadConstantControls()
{
	allButtons = document.getElementsByTagName("A");
	for(i = 0; i < allButtons.length; i++)
	{
		myButton = allButtons[i];
		match = myButton.id.match(/control_([0-9]+)/)
		if(match)
		{
			myButton.constId = match[1];
			addEvent(myButton, "click", editConst, false);
		}
	}
}

function editConst(e)
{
	target = fetchTarget(e);
	
	caConstId = "const_ca_" + target.constId;
	constObj = document.getElementById(caConstId);
	
	dropEvent(constObj, "click", editConst, false);
	constVal = constObj.innerHTML;
	textAreaObj = document.createElement("Textarea");
	textAreaObj.innerHTML = unescape(constVal);
	textAreaObj.className = "constEditTextArea";
	textAreaObj.id = "editConst_ca_" + constObj.constId;
	constObj.innerHTML = null;
	constObj.appendChild(textAreaObj);
	
	esConstId = "const_es_" + target.constId;
	constObj = document.getElementById(esConstId);
	
	dropEvent(constObj, "click", editConst, false);
	constVal = constObj.innerHTML;
	textAreaObj = document.createElement("Textarea");
	textAreaObj.innerHTML = unescape(constVal);
	textAreaObj.className = "constEditTextArea";
	textAreaObj.id = "editConst_es_" + constObj.constId;
	constObj.innerHTML = null;
	constObj.appendChild(textAreaObj);
	
	enConstId = "const_en_" + target.constId;
	constObj = document.getElementById(enConstId);
	
	dropEvent(constObj, "click", editConst, false);
	constVal = constObj.innerHTML;
	textAreaObj = document.createElement("Textarea");
	textAreaObj.innerHTML = unescape(constVal);
	textAreaObj.className = "constEditTextArea";
	textAreaObj.id = "editConst_en_" + constObj.constId;
	constObj.innerHTML = null;
	constObj.appendChild(textAreaObj);
	
	target.innerHTML = "Guardar";
	dropEvent(target, "click", editConst, false);
	addEvent(target, "click", saveConst, false);
}

function saveConst(e)
{
	target = fetchTarget(e);
	
	caEditConstObj = document.getElementById("editConst_ca_" + target.constId);
	caConstVal = caEditConstObj.value;
	esEditConstObj = document.getElementById("editConst_es_" + target.constId);
	esConstVal = esEditConstObj.value;
	enEditConstObj = document.getElementById("editConst_en_" + target.constId);
	enConstVal = enEditConstObj.value;
	
	ajaxObj.call("action=ajaxUpdateConst&id=" + target.constId + "&es=" + escape(esConstVal) + "&ca=" + escape(caConstVal) + "&en=" + escape(enConstVal), updateConstResp);
}

function updateConstResp(resp)
{
	if(resp["result"] != true) return;
	id = resp["id"];
	
	caTd = document.getElementById("const_ca_" + id);
	caEditConstObj = document.getElementById("editConst_ca_" + id);
	caConstVal = caEditConstObj.value;
	caTd.removeChild(caEditConstObj);
	caTd.innerHTML = caConstVal;
	
	esTd = document.getElementById("const_es_" + id);
	esEditConstObj = document.getElementById("editConst_es_" + id);
	esConstVal = esEditConstObj.value;
	esTd.removeChild(esEditConstObj);
	esTd.innerHTML = esConstVal;
	
	enTd = document.getElementById("const_en_" + id);
	enEditConstObj = document.getElementById("editConst_en_" + id);
	enConstVal = enEditConstObj.value;
	enTd.removeChild(enEditConstObj);
	enTd.innerHTML = enConstVal;
	
	controlObj = document.getElementById("control_" + id);
	controlObj.innerHTML = "Editar";
	dropEvent(controlObj, "click", saveConst, false);
	addEvent(controlObj, "click", editConst, false);
}


function fetchLoginActivate()
{
	loginActivateObj = document.getElementById("loginActivate");
	loginDeactivateObj = document.getElementById("loginDeactivate");
	
	if(!loginActivateObj) return;
	addEvent(loginActivateObj, "click", loginActivateSwitch, false);
	if(!loginDeactivateObj) return;
	addEvent(loginDeactivateObj, "click", loginActivateSwitch, false);
}

function loginActivateSwitch()
{
	loginOnObj = document.getElementById("loginOn");
	loginOffObj = document.getElementById("loginOff");
	
	//alert(loginOffObj.style.display);
	
	if(loginOffObj.style.display == "block")
	{
		loginOffObj.style.display = "none";
		loginOnObj.style.display = "block";
	}
	else
	{
		loginOffObj.style.display = "block";
		loginOnObj.style.display = "none";
	}
}



function fetchDropButtons()
{
	cartItemsObj = document.getElementById("cartItems");
	if(cartItemsObj)
	{
		cartDrops = cartItemsObj.getElementsByTagName("IMG");
		for(i = 0; i < cartDrops.length; i++)
		{
			if(!cartDrops[i].id.match(/^drop_/)) continue;
			addEvent(cartDrops[i], "mouseover", cartDropOn, false);
			addEvent(cartDrops[i], "mouseout", cartDropOff, false);
			addEvent(cartDrops[i], "click", changeCart, false);
		}
	}
}

function cartDropOn(e)
{
	target = fetchTarget(e);
	target.src = "img_std/drop_on.gif";
}

function cartDropOff(e)
{
	target = fetchTarget(e);
	target.src = "img_std/drop_off.gif";
}

function noShowPopups()
{
	allowPopups = false;
}

function createCartCommentPopup(buttonObj)
{
	if (allowPopups == false) return;
	
	popupObj = document.createElement("div");
	popupObj.className = "cartCommentPopup";
	buttonPos = findPos(buttonObj);
	idItem = buttonObj.id.match(/addCart_([0-9]+)/)[1];
	popupObj.id = "cartCommentPopup_" + idItem;
	
	popupObjContainer = document.createElement("div");
	popupObjContainer.className = "cartCommentPopupContainer";
	popupObj.appendChild(popupObjContainer);
	
	closeButton = document.createElement("img");
	closeButton.src = "img_std/drop_off.gif";
	closeButton.id = "cartCommentPopupClose_" + idItem;
	closeButton.className = "closeButton";
	addEvent(closeButton, "click", closeCartCommentPopup, false);
	addEvent(closeButton, "mouseover", cartDropOn, false);
	addEvent(closeButton, "mouseout", cartDropOff, false);
	popupObj.appendChild(closeButton);
	
	popupTitleObj = document.createElement("h3");
	popupTitleObj.innerHTML = popupTitleText[pageLang];
	popupObjContainer.appendChild(popupTitleObj);
	
	popupDescObj = document.createElement("p");
	popupDescObj.innerHTML = popupDescText[pageLang];
	popupObjContainer.appendChild(popupDescObj);
	
	popupCommentBox = document.createElement("textarea");
	popupCommentBox.id = "comment_" + idItem;
	popupObjContainer.appendChild(popupCommentBox);
	
	popupSaveButton = document.createElement("a");
	popupSaveButton.href = "#";
	addEvent(popupSaveButton, "click", cancelClick, false);
	popupSaveButton.className = "sendButton";
	popupSaveButton.innerHTML = "OK";
	popupSaveButton.id = "commentSave_" + idItem;
	addEvent(popupSaveButton, "click", savePopupComment, false);
	popupObjContainer.appendChild(popupSaveButton);
	
	popupFooterObj = document.createElement("p");
	popupFooterObj.className = "footer";
	
	popupCloseObj = document.createElement("a");
	popupCloseObj.href = "#";
	addEvent(popupCloseObj, "click", cancelClick, false);
	popupCloseObj.innerHTML = popupCloseText[pageLang];
	popupCloseObj.id = "link_cartCommentPopupClose_" + idItem;
	addEvent(popupCloseObj, "click", closeCartCommentPopup, false);
	
	popupFooterObj.appendChild(popupCloseObj);
	
	//brObj = document.createElement("br");
	brObj = document.createTextNode(" | ");
	popupFooterObj.appendChild(brObj);
	
	popupNoShowObj = document.createElement("a");
	popupNoShowObj.href = "#";
	addEvent(popupNoShowObj, "click", cancelClick, false);
	popupNoShowObj.innerHTML = popupNoShowText[pageLang];
	popupNoShowObj.id = "noshow_cartCommentPopupClose_" + idItem;
	addEvent(popupNoShowObj, "click", closeCartCommentPopup, false);
	addEvent(popupNoShowObj, "click", noShowPopups, false);
	popupFooterObj.appendChild(popupNoShowObj);
	
	popupObjContainer.appendChild(popupFooterObj);
	
	
	if(ieVers >= 7)
	{
		popupObj.style.left = (buttonPos[0]- 218) + "px";
	}
	else
	{
		popupObj.style.left = buttonPos[0] + "px";
	}
	
	popupObj.style.left = (buttonPos[0] + 20) + "px";
	
	popupObj.style.top = (buttonPos[1]) + "px";
	document.body.appendChild(popupObj);
	popupObj.style.zIndex = 10;
	
	popupCommentBox.focus();
}


function savePopupComment(e)
{
	target = fetchTarget(e);
	//alert(target.id);
	idItem = target.id.match(/commentSave_([0-9]+)/)[1];
	commentObj = document.getElementById("comment_" + idItem);
	commentText = escape(commentObj.value);
	//commentText = commentObj.value;
	//alert(commentText);
	ajaxObj.call("action=ajaxCartComment&idItem=" + idItem + "&comment=" + commentText, savePopupCommentResp);
	
	popupObj = document.getElementById("cartCommentPopup_" + idItem);
	document.body.removeChild(popupObj);
}

function savePopupCommentResp(resp)
{
	
}

function closeCartCommentPopup(e)
{
	target = fetchTarget(e);
	idItem = target.id.match(/cartCommentPopupClose_([0-9]+)/)[1];
	popupObj = document.getElementById("cartCommentPopup_" + idItem);
	document.body.removeChild(popupObj);
}

function setupCheckoutComments()
{
	taArr = document.getElementsByTagName("textarea");
	for(i = 0; i < taArr.length; i++)
	{
		if(taArr[i].id.match(/cartComment_([0-9]+)/))
		{
			addEvent(taArr[i], "change", updateCartComment, false);
		}
	}
}

function updateCartComment(e)
{
	target = fetchTarget(e);
	idItem = target.id.match(/cartComment_([0-9]+)/)[1];
	commentText = escape(target.value);
	ajaxObj.call("action=ajaxCartComment&idItem=" + idItem + "&comment=" + commentText, savePopupCommentResp);
}


function loadClientArea()
{
	loadForgotPwd();
	loadClientLoginButton();
	loadOrderDetailsButtons();
	loadFavOrderDetailButtons();
	loadRecoverFavOrderButtons();
	loadCreateFavOrderFromCart();
	loadDropFavOrderButtons();
	loadFavOrderChangeButtons();
}

function loadForgotPwd()
{
	forgotPwdLinkObj = document.getElementById("forgotPasswordLink");
	if(!forgotPwdLinkObj) return;
	addEvent(forgotPwdLinkObj, "click", openForgotPwd, false);
}

function openForgotPwd(e)
{
	ajaxObj.call("action=ajaxOpenForgotPwd&lang=" + pageLang, openForgotPwdResp);
}

function openForgotPwdResp(resp)
{
	forgotPwdObj = document.getElementById("forgot_pwd");
	forgotPwdObj.innerHTML = resp;
	recover_pwd_buttonObj = document.getElementById("recover_pwd_button");
	addEvent(recover_pwd_buttonObj, "click", recoverPwd, false);
	
	forgotPwdLinkObj = document.getElementById("forgotPasswordLink");
	dropEvent(forgotPwdLinkObj, "click", openForgotPwd, false);
}

function recoverPwd(e)
{
	recover_emailObj = document.getElementById("recover_email");
	emailVal = recover_emailObj.value;
	ajaxObj.call("action=ajaxRecoverPwd&email=" + escape(emailVal) + "&lang=" + pageLang, recoverPwdResp);
}

function recoverPwdResp(resp)
{
	if(resp["success"] == 0)
	{
		recoverPwdErrObj = document.getElementById("recoverPwdErr");
		recoverPwdErrObj.innerHTML = resp["errMsg"];
	}
	else
	{
		forgotPwdObj = document.getElementById("forgot_pwd");
		forgotPwdObj.innerHTML = resp["successMsg"];
		forgotPwdLinkObj = document.getElementById("forgotPasswordLink");
		if(!forgotPwdLinkObj) return;
		addEvent(forgotPwdLinkObj, "click", openForgotPwd, false);
	}
}


function loadClientLoginButton()
{
	clientLoginButtonObj = document.getElementById("clientLoginButton");
	if(!clientLoginButtonObj) return;
	addEvent(clientLoginButtonObj, "click", clientAreaLogin, false);
}

function clientAreaLogin()
{
	emailObj = document.getElementById("email");
	passwdObj = document.getElementById("passwd");
	email = emailObj.value;
	passwd = passwdObj.value;
	ajaxObj.call("action=ajaxClientAreaLogin&email=" + email + "&passwd=" + passwd + "&lang=" + pageLang, clientAreaLoginResp);
}

function clientAreaLoginResp(resp)
{
	if(resp["success"] == 0)
	{
		loginErrorObj = document.getElementById("loginError");
		loginErrorObj.innerHTML = resp["loginErr"];
	}
	else
	{
		client_area_containerObj = document.getElementById("client_area_container");
		client_area_containerObj.innerHTML = resp["pageContent"];
		loadOrderDetailsButtons();
	}
}

function loadOrderDetailsButtons()
{
	anchorsArr = document.getElementsByTagName("a");
	for(i = 0; i < anchorsArr.length; i++)
	{
		if(anchorsArr[i].id.match(/orderDetail_([0-9]+)/))
		{
			addEvent(anchorsArr[i], "click", loadOrderDetails, false);
		}
		if(anchorsArr[i].id.match(/recoverOrder_([0-9]+)/))
		{
			addEvent(anchorsArr[i], "click", recoverOrder, false);
		}
	}
}

function loadOrderDetails(e)
{
	target = fetchTarget(e);
	idOrder = target.id.match(/orderDetail_([0-9]+)/)[1];
	//alert(idOrder);
	ajaxObj.call("action=ajaxLoadOrderDetails&idOrder=" + idOrder + "&lang=" + pageLang, loadOrderDetailsResp);
}

function loadOrderDetailsRespX(resp)
{
	orderDivObj = document.getElementById("orderDiv_" + resp["idOrder"]);
	orderItemListObj = document.createElement("ul");
	orderItemListObj.id = "orderItemList_" + resp["idOrder"];
	items = resp["items"];
	for(i = 0; i < items.length; i++)
	{
		itemsLiObj = document.createElement("li");
		itemsLiObj.innerHTML = items[i]["title"] + ": " + items[i]["quantity"];
		orderItemListObj.appendChild(itemsLiObj);
	}
	orderDivObj.appendChild(orderItemListObj);
	
	orderControlText = document.getElementById("orderDetail_" + resp["idOrder"]);
	orderControlText.revertText = orderControlText.innerHTML;
	orderControlText.innerHTML = resp["closeText"];
	
	dropEvent(orderControlText, "click", loadOrderDetails, false);
	addEvent(orderControlText, "click", closeOrderDetails, false);
}

function loadOrderDetailsResp(resp)
{
	//create table
	tableObj = document.createElement("table");
	tableObj.className = "favOrder";
	tableObj.id = "orderDetailTable_" + resp["idOrder"];
	tableObj.setAttribute("cellSpacing", 0);
	tableObj.setAttribute("cellPadding", 0);
	tableObj.setAttribute("border", 0);
	
	tBodyObj = document.createElement("tbody");
	//create header row
	trObjHd = document.createElement("tr");
	//create header cells
	thObj_1 = document.createElement("th");
	thObj_1.innerHTML = itemLabelText[pageLang];
	trObjHd.appendChild(thObj_1);
	
	thObj_2 = document.createElement("th");
	thObj_2.innerHTML = itemQtyText[pageLang];
	trObjHd.appendChild(thObj_2);
	
	thObj_3 = document.createElement("th");
	thObj_3.innerHTML = itemBaseText[pageLang];
	trObjHd.appendChild(thObj_3);
	
	thObj_4 = document.createElement("th");
	thObj_4.innerHTML = itemIVAText[pageLang];
	trObjHd.appendChild(thObj_4);
	
	thObj_5 = document.createElement("th");
	thObj_5.innerHTML = itemTotalText[pageLang];
	trObjHd.appendChild(thObj_5);
	
	tBodyObj.appendChild(trObjHd);
	
	
	//loop thru items
	for(i = 0; i < resp["items"].length; i++)
	{
		myItem = resp["items"][i];
		//create image
		imgObj = document.createElement("img");
		imgObj.src = "img_xs/" + myItem["image"];
		//create link to item
		if (myItem["is_visible"] == 0) {
			itemLink = document.createElement("strong");
			itemLink.innerHTML = myItem["title"] + "<br />" + itemNDText[pageLang];
		}
		else {
			itemLink = document.createElement("a");
			itemLink.href = "a/" + myItem["label"] + ".html";
			itemLink.innerHTML = myItem["title"];
		}
		//create price
		itemPrice = document.createElement("span");
		priceVal = myItem["price"];
		itemPrice.innerHTML = priceVal + " &euro; " + itemEachText[pageLang];
		
		//get current price
		if(myItem["price"] != myItem["currentPrice"] && myItem["is_visible"] == 1)
		{
			itemPrice.innerHTML += "<br /><em>" + itemCurrPriceText[pageLang] + ": " + myItem["currentPrice"] + " &euro; " + itemEachText[pageLang] + "</em>";
		}
		
		//create row
		trObj = document.createElement("tr");
		//style row
		trObj.className = i%2 ? "lt" : "dk";
		if(myItem["is_visible"] == 0)
		{
			trObj.className += " invis";
		}
		//create 1st cell
		tdObj_1 = document.createElement("td");
		tdObj_1.appendChild(imgObj);
		tdObj_1.appendChild(itemLink);
		tdObj_1.appendChild(itemPrice);
		trObj.appendChild(tdObj_1);
		//create 2nd cell
		tdObj_2 = document.createElement("td");
		tdObj_2.innerHTML = myItem["qty"];
		trObj.appendChild(tdObj_2);
		//create 3rd cell
		tdObj_3 = document.createElement("td");
		tdObj_3.innerHTML = myItem["totalItemAmount"];
		trObj.appendChild(tdObj_3);
		//create 4th cell
		tdObj_4 = document.createElement("td");
		ivaValue = parseFloat(myItem["amtIVA"]) + parseFloat(myItem["amtRecargo"]);
		tdObj_4.innerHTML = ivaValue.toFixed(2) + "&nbsp;&euro;";
		trObj.appendChild(tdObj_4);
		//create 5th cell
		tdObj_5 = document.createElement("td");
		tdObj_5.innerHTML = myItem["totalAllIncl"] + "&nbsp;&euro;";
		trObj.appendChild(tdObj_5);
		//append Row
		tBodyObj.appendChild(trObj);
	}
	
	
	tableObj.appendChild(tBodyObj);
	
	//get place to load table
	containerObj = document.getElementById("orderDiv_" + resp["idOrder"]);
	containerObj.appendChild(tableObj);
	
	//change button behavior
	detailsButton = document.getElementById("orderDetail_" + resp["idOrder"]);
	dropEvent(detailsButton, "click", loadOrderDetails, false);
	addEvent(detailsButton, "click", closeOrderDetails, false);
	detailsButton.innerHTML = hideDetailText[pageLang];
}

function closeOrderDetails(e)
{
	/*
	target = fetchTarget(e);
	idOrder = target.id.match(/orderDetail_([0-9]+)/)[1];
	dropEvent(orderControlText, "click", closeOrderDetails, false);
	addEvent(orderControlText, "click", loadOrderDetails, false);
	orderItemListObj = document.getElementById("orderItemList_" + idOrder);
	orderItemListObj.parentNode.removeChild(orderItemListObj);
	target.innerHTML = target.revertText;
	*/
	
	target = fetchTarget(e);
	idFavOrder = target.id.match(/orderDetail_([0-9]+)/)[1];
	tableObj = document.getElementById("orderDetailTable_" + idFavOrder);
	tableObj.parentNode.removeChild(tableObj);
	//change button behavior
	detailsButton = document.getElementById("orderDetail_" + idFavOrder);
	dropEvent(detailsButton, "click", closeOrderDetails, false);
	addEvent(detailsButton, "click", loadOrderDetails, false);
	detailsButton.innerHTML = showDetailText[pageLang];
}

function recoverOrder(e)
{
	target = fetchTarget(e);
	idOrder = target.id.match(/recoverOrder_([0-9]+)/)[1];
	ajaxObj.call("action=ajaxRecoverOrder&idOrder=" + idOrder + "&lang=" + pageLang, recoverOrderResp);
}

function recoverOrderResp(resp)
{
	cartContentObj = document.getElementById("cartContent");
	cartContentObj.innerHTML = resp["cartContent"];
	
	cartTotalObj = document.getElementById("cartTotalAmount");
	cartTotalObj.innerHTML = resp["cartTotal"];
	
	fetchCartSelects();
	fetchDropButtons();
}

function loadFavOrderDetailButtons()
{
	anchorArr = document.getElementsByTagName("A");
	for(i = 0; i < anchorArr.length; i++)
	{
		if(anchorArr[i].id.match(/favOrderDetail_([0-9]+)/))
		{
			addEvent(anchorArr[i], "click", loadFavOrderDetail, false);
		}
	}
}

function loadFavOrderDetail(e)
{
	target = fetchTarget(e);
	idFavOrder = target.id.match(/favOrderDetail_([0-9]+)/)[1];
	ajaxObj.call("action=ajaxLoadFavOrderDetails&idFavOrder=" + idFavOrder + "&lang=" + pageLang + "&custType=" + custType, loadFavOrderDetailResp);
}

function loadFavOrderDetailResp(resp)
{
	//create table
	tableObj = document.createElement("table");
	tableObj.className = "favOrder";
	tableObj.id = "favOrderDetailTable_" + resp["favOrder"]["id"];
	tableObj.setAttribute("cellSpacing", 0);
	tableObj.setAttribute("cellPadding", 0);
	tableObj.setAttribute("border", 0);
	
	tBodyObj = document.createElement("tbody");
	//create header row
	trObjHd = document.createElement("tr");
	//create header cells
	thObj_1 = document.createElement("th");
	thObj_1.innerHTML = itemLabelText[pageLang];
	trObjHd.appendChild(thObj_1);
	
	thObj_2 = document.createElement("th");
	thObj_2.innerHTML = itemQtyText[pageLang];
	trObjHd.appendChild(thObj_2);
	
	thObj_3 = document.createElement("th");
	thObj_3.innerHTML = itemTotalText[pageLang];
	trObjHd.appendChild(thObj_3);
	
	tBodyObj.appendChild(trObjHd);
	
	//loop thru items
	for(i = 0; i < resp["favOrder"]["items"].length; i++)
	{
		myItem = resp["favOrder"]["items"][i];
		//create image
		imgObj = document.createElement("img");
		imgObj.src = "img_xs/" + myItem["image"];
		//create link to item
		if (myItem["is_visible"] == 0) {
			itemLink = document.createElement("strong");
			itemLink.innerHTML = myItem["title"] + "<br />" + itemNDText[pageLang];
		}
		else {
			itemLink = document.createElement("a");
			itemLink.href = "a/" + myItem["label"] + ".html";
			itemLink.innerHTML = myItem["title"];
		}
		//create price
		itemPrice = document.createElement("span");
		priceVal = myItem["price"];
		itemPrice.innerHTML = priceVal + " &euro;";
		
		//create row
		trObj = document.createElement("tr");
		//style row
		trObj.className = i%2 ? "lt" : "dk";
		if(myItem["is_visible"] == 0)
		{
			trObj.className += " invis";
		}
		//create 1st cell
		tdObj_1 = document.createElement("td");
		tdObj_1.appendChild(imgObj);
		tdObj_1.appendChild(itemLink);
		tdObj_1.appendChild(itemPrice);
		trObj.appendChild(tdObj_1);
		//create 2nd cell
		tdObj_2 = document.createElement("td");
		tdObj_2.innerHTML = myItem["qty"];
		trObj.appendChild(tdObj_2);
		//create 3rd cell
		tdObj_3 = document.createElement("td");
		tdObj_3.innerHTML = myItem["totalItemAmount"] + " &euro;";
		trObj.appendChild(tdObj_3);
		//append Row
		tBodyObj.appendChild(trObj);
	}
	tableObj.appendChild(tBodyObj);
	
	//get place to load table
	containerObj = document.getElementById("favDiv_" + resp["favOrder"]["id"]);
	containerObj.appendChild(tableObj);
	
	//change button behavior
	detailsButton = document.getElementById("favOrderDetail_" + resp["favOrder"]["id"]);
	dropEvent(detailsButton, "click", loadFavOrderDetail, false);
	addEvent(detailsButton, "click", hideFavOrderDetail, false);
	detailsButton.innerHTML = hideDetailText[pageLang];
}

function hideFavOrderDetail(e)
{
	target = fetchTarget(e);
	idFavOrder = target.id.match(/favOrderDetail_([0-9]+)/)[1];
	tableObj = document.getElementById("favOrderDetailTable_" + idFavOrder);
	tableObj.parentNode.removeChild(tableObj);
	//change button behavior
	detailsButton = document.getElementById("favOrderDetail_" + idFavOrder);
	dropEvent(detailsButton, "click", hideFavOrderDetail, false);
	addEvent(detailsButton, "click", loadFavOrderDetail, false);
	detailsButton.innerHTML = showDetailText[pageLang];
}


function loadRecoverFavOrderButtons()
{
	anchorArr = document.getElementsByTagName("a");
	for(i = 0; i < anchorArr.length; i++)
	{
		if(anchorArr[i].id.match(/recoverFavOrder_([0-9]+)/))
		{
			addEvent(anchorArr[i], "click", recoverFavOrder, false);
		}
	}
}

function recoverFavOrder(e)
{
	target = fetchTarget(e);
	idFavOrder = target.id.match(/recoverFavOrder_([0-9]+)/)[1];
	ajaxObj.call("action=ajaxRecoverFavOrder&idFavOrder=" + idFavOrder + "&lang=" + pageLang, recoverOrderResp);	
}


function loadCreateFavOrderFromCart()
{
	linkObj = document.getElementById("createFavOrderFromCart");
	if(!linkObj) return;
	addEvent(linkObj, "click", createFavOrderFromCart, false);
}

function createFavOrderFromCart(e)
{
	ajaxObj.call("action=ajaxCreateFavOrderFromCart&lang=" + pageLang, createFavOrderFromCartResp);
}

function createFavOrderFromCartResp(resp)
{
	if(!resp) return;
	
	idFavOrder = resp["favOrder"]["id"];
	htmlContent = resp["html"];
	favDiv = document.createElement("div");
	favDiv.id = "favDiv_" + idFavOrder;
	favDiv.className = "favDiv";
	favDiv.innerHTML = htmlContent;
	
	containerObj = document.getElementById("favOrdersContainer");
	divArr = containerObj.getElementsByTagName("div");
	existingFavObj = false;
	for(i = 0; i < divArr.length; i++)
	{
		if(divArr[i].id.match(/favDiv_([0-9])+/))
		{
			existingFavObj = divArr[i];
			break;
		}
	}
	if(existingFavObj)
	{
		containerObj.insertBefore(favDiv, existingFavObj);
	}
	else
	{
		containerObj.appendChild(favDiv);
	}
	//setup buttons
	dropButton = document.getElementById("dropFavOrder_" + idFavOrder);
	addEvent(dropButton, "click", dropFavOrder, false);
	detailButton = document.getElementById("favOrderDetail_" + idFavOrder);
	addEvent(detailButton, "click", loadFavOrderDetail, false);
	editButton = document.getElementById("favOrderEditTitle_" + idFavOrder);
	addEvent(editButton, "click", changeFavOrder, false);
	saveButton = document.getElementById("favOrderSaveTitle_" + idFavOrder);
	addEvent(saveButton, "click", saveFavOrder, false);
	
	inputObj = document.getElementById("favOrderInput_" + idFavOrder);
	inputObj.focus();
	
	checkNoFavOrders();
}

function loadDropFavOrderButtons()
{
	anchorArr = document.getElementsByTagName("a");
	for(i = 0; i < anchorArr.length; i++)
	{
		if(anchorArr[i].id.match(/dropFavOrder_([0-9]+)/))
		{
			addEvent(anchorArr[i], "click", dropFavOrder, false);
		}
	}
}

function dropFavOrder(e){
	target = fetchTarget(e);
	idFavOrder = target.id.match(/dropFavOrder_([0-9]+)/)[1];
	if (confirm(confirmDropFavObj[pageLang])) {
		ajaxObj.call("action=ajaxDropFavOrder&idFavOrder=" + idFavOrder, dropFavOrderResp);
	}
}

function dropFavOrderResp(resp)
{
	divObj = document.getElementById("favDiv_" + resp);
	divObj.parentNode.removeChild(divObj);
	checkNoFavOrders();
}


function loadFavOrderChangeButtons()
{
	anchorArr = document.getElementsByTagName("a");
	for(i = 0; i < anchorArr.length; i++)
	{
		if(anchorArr[i].id.match(/favOrderEditTitle_([0-9]+)/))
		{
			addEvent(anchorArr[i], "click", changeFavOrder, false);
		}
		if(anchorArr[i].id.match(/favOrderSaveTitle_([0-9]+)/))
		{
			addEvent(anchorArr[i], "click", saveFavOrder, false);
		}
	}
}

function changeFavOrder(e)
{
	target = fetchTarget(e);
	idFavOrder = target.id.match(/favOrderEditTitle_([0-9]+)/)[1];
	//get objects
	titleObj = document.getElementById("favOrderTitle_" + idFavOrder);
	inputObj = document.getElementById("favOrderInput_" + idFavOrder);
	editButtonObj = document.getElementById("favOrderEditTitle_" + idFavOrder);
	saveButtonObj = document.getElementById("favOrderSaveTitle_" + idFavOrder);
	
	titleObj.style.display = "none";
	inputObj.style.display = "inline";
	editButtonObj.style.display = "none";
	saveButtonObj.style.display = "inline";
	
	inputObj.focus();
}

function saveFavOrder(e)
{
	target = fetchTarget(e);
	idFavOrder = target.id.match(/favOrderSaveTitle_([0-9]+)/)[1];
	inputObj = document.getElementById("favOrderInput_" + idFavOrder);
	ajaxObj.call("action=ajaxUpdateFavOrder&idFavOrder=" + idFavOrder + "&title=" + inputObj.value + "&lang=" + pageLang + "&custType=" + custType, saveFavOrderResp);
}

function saveFavOrderResp(resp)
{
	idFavOrder = resp;
	//get objects
	titleObj = document.getElementById("favOrderTitle_" + idFavOrder);
	inputObj = document.getElementById("favOrderInput_" + idFavOrder);
	editButtonObj = document.getElementById("favOrderEditTitle_" + idFavOrder);
	saveButtonObj = document.getElementById("favOrderSaveTitle_" + idFavOrder);
	
	titleObj.innerHTML = inputObj.value;
	
	titleObj.style.display = "inline";
	inputObj.style.display = "none";
	editButtonObj.style.display = "inline";
	saveButtonObj.style.display = "none";
}

function checkNoFavOrders()
{
	favOrdersEmptyObj = document.getElementById("favOrdersEmpty");
	
	divArr = document.getElementsByTagName("div");
	divCount = 0;
	for(i = 0; i < divArr.length; i++)
	{
		if(divArr[i].id.match(/favDiv_([0-9]+)/))
		{
			divCount++;
		}
	}
	if(divCount < 1)
	{
		favOrdersEmptyObj.style.display = "block";
	}
	else
	{
		favOrdersEmptyObj.style.display = "none";
	}
	
}

addEvent(window, "load", addAllEvents, false);








