if(typeof strSorry=="undefined"){                                             //ER: make language-pack optional; was: if(!bLanguageDefined){
   strSorry="I'm Sorry, your cart is full; please proceed to checkout.";
//   strRemove="Click 'OK' to remove this product from your shopping cart.";
   strILabel="Product ID &nbsp; &nbsp; ";
   strDLabel="Product Name";
   strQLabel="Qty";
   strPLabel="Price";
   strRLabel="&nbsp;";                                                        //ER: was: "Remove from Cart"  (Netscape-4 needs NBSP rather than EMPTYSTRING)
   strRButton="Remove from Cart";                                              //ER: was: "Remove"
   strTOT="TOTAL";
   strCartEmpty="Your cart is empty";                                         //ER: new;  needed by the original NopDesign version
   strTotalNaN="Your browser's javascript appears to be broken; another browser may help; a reboot may help; if problem persists, please inform our webmaster.";
}
OutputItemId="ID_";
OutputItemQuantity="QUANTITY_";
OutputItemPrice="PRICE_";
OutputItemName="NAME_";
OutputOrderTotal="TOTAL";
AppendItemNumToOutput=true;
CartID="";
Debug=0;               //suppress DEBUG alerts
function DEBUG(str)   {if(Debug)   alert(str);}         //any nonzero value produces the DEBUG (sanity-test) alerts
function DEBUG1(str)  {if(Debug&1) alert(str);}         //the  1-bit controls DEBUG1  alerts
function DEBUG2(str)  {if(Debug&2) alert(str);}         //the  2-bit controls DEBUG2  alerts
function DEBUG4(str)  {if(Debug&4) alert(str);}         //the  4-bit controls DEBUG4  alerts
function DEBUG8(str)  {if(Debug&8) alert(str);}         //the  8-bit controls DEBUG8  alerts
function DEBUG16(str) {if(Debug&16)alert(str);}         //the 16-bit controls DEBUG16 alerts
if(window.location.href.substring(0,5)=="file:") Debug|=256;  else Debug=0;     //2008-02-20: smart (Opera-like) behaviour wrt Debug-alerts...

MoneySymbol="$";
DisplayPopupOnAdd=false;
//DisplayPopupOnRemove=false;
MoneyPLACES=2;
PaymentProcessor="ap";
AllInOne=false;
function NumberZ(s){var N=Number(s);if(isNaN(N))N=0;return(N);}
function Integer(s){return Math.round(NumberZ(s));}
MoneyROUND_FRA=Math.pow(10,+MoneyPLACES);
MoneyROUND_NOF=Math.pow(10,-MoneyPLACES);
function CentsFRA(f){return  Math.round(f*MoneyROUND_FRA)/MoneyROUND_FRA;}
function CentsNOF(f){return  Math.round(f/MoneyROUND_NOF)*MoneyROUND_NOF;}
Cents=(MoneyPLACES>0?CentsFRA:CentsNOF);
function AddToCart(thisForm){
  var iNumberOrdered=0;
  var bAlreadyInCart=false;
  var notice="";
  var ELE,ATR;
  ELE=thisForm;
  sID="";if(ATR=ELE._ID||ELE.ID||ELE.ID_NUM ) sID=ATR.value;
  sQUANTITY="1";if(ATR=ELE._QUANTITY||ELE.QUANTITY) sQUANTITY=ATR.value;
  sPRICE="0.00";if(ATR=ELE._PRICE||ELE.PRICE) sPRICE=ATR.value;
  sNAME="";if(ATR=ELE._NAME||ELE.NAME) sNAME=ATR.value;
  sPROMPT="";
  for(var i=0;i<thisForm.elements.length;++i){
    ELE=thisForm.elements[i];
    if(ELE.type!="hidden") continue;
    if(!ELE.getAttribute) continue;
    if(ATR=ELE.getAttribute("_ID")||ELE.getAttribute("ID_NUM")) sID=ATR;
    if(ATR=ELE.getAttribute("_QUANTITY")||ELE.getAttribute("QUANTITY")) sQUANTITY=ATR;
    if(ATR=ELE.getAttribute("_PRICE")||ELE.getAttribute("PRICE")) sPRICE=ATR;
    if(ATR=ELE.getAttribute("_NAME")) sNAME=ATR;
  }
  for(var N=0;N<=2;++N) for(var n=0;n<=9;++n){
    var selname=["ADDITIONALINFO","USERCHOICE","_USERCHOICE"][N]+(n?n:"");
    var selector=thisForm[selname];
    if(selector==null) continue;
    if(typeof selector.selectedIndex=="undefined"){
      for(var i=0;i<selector.length;++i) if(selector[i].checked) ELE=selector[i];
    }else{ELE=selector[selector.selectedIndex];}
    function NewStr(OLD,NEW) {return (NEW.substring(0,1)=="+" ? OLD + NEW.substring(1,NEW.length):NEW);}
    function NewNum(OLD,NEW) {return ""+(NEW.substring(0,1)=="+" ?NumberZ(OLD)+NumberZ(NEW.substring(1,NEW.length)):NEW);}
    if(!ELE.getAttribute) if(ATR= ELE.value) sNAME+=" "+ATR;
    if(!ELE.getAttribute) continue;
    if(ATR=ELE.getAttribute("_ID")||ELE.getAttribute("ID")) sID=NewStr(sID,ATR);
    else if(ATR=ELE.getAttribute("ID_NUM")) sID=NewStr(sID,ATR);
    if(ATR=ELE.getAttribute("_QUANTITY")||ELE.getAttribute("QUANTITY")) sQUANTITY=NewNum(sQUANTITY,ATR);
    if(ATR=ELE.getAttribute("_PRICE")||ELE.getAttribute("PRICE")) sPRICE=NewNum(sPRICE,ATR);
    if(ATR=ELE.getAttribute("_NAME")) sNAME=NewStr(sNAME,ATR); 
    else if(ATR=ELE.value) sNAME+=" "+ATR;
    if(ATR=ELE.getAttribute("_PROMPT")||ELE.getAttribute("PROMPT")) sPROMPT+=(sPROMPT?"; ":"")+ATR;
  }
  sID=thisForm.ap_itemcode.value;
  sPRICE=thisForm.ap_amount.value;
  sNAME=thisForm.ap_description.value;
  if(sID+sNAME=="" && sPROMPT=="") sPrompt="Please select an option";
  if(sPROMPT!=""){alert(sPROMPT); return false;}
  if(ATR=thisForm._USERTEXT||thisForm.USERTEXT){if(ATR.value)sNAME+= "; "+ATR.value;}
  else if(ATR=thisForm.USERENTRY) {if(ATR.value)sNAME+= "; "+ATR.value;}
  iNumberOrdered= iGetCookie("NumberOrdered",0);
  if(!bAlreadyInCart){
    iNumberOrdered++;
    if(iNumberOrdered>15) alert(strSorry);
    else
    {
      dbUpdatedOrder=sID+"|"+sQUANTITY+"|"+sPRICE+"|"+sNAME;
      sNewOrder="Order."+iNumberOrdered;
      SetCookie(sNewOrder,dbUpdatedOrder,null,"/");
      SetCookie("NumberOrdered",iNumberOrdered,null,"/");
//      notice=strAdded+"\n-------------------------------------\n"+strAddedQuantity+sQUANTITY+"\n"+strAddedProduct+sNAME;
    }
  }
//  if(DisplayPopupOnAdd&&notice!="") alert(notice);
  return true;
}
function moneyFormatFRA(input){
  var cents=""+Math.round(input*MoneyROUND_FRA);
  while(cents.length<MoneyPLACES+1) cents="0"+cents;
  return cents.substring(0,cents.length-MoneyPLACES)+"."+cents.substring(cents.length-MoneyPLACES,cents.length);
}
function moneyFormatNOF(input){return ""+Cents(input);}
moneyFormat=(MoneyPLACES>0?moneyFormatFRA:moneyFormatNOF);
function SetCookie(name,value,expires,path,domain,secure)
{document.cookie=CartID+name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?";path="+path:"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");}
function DeleteCookie(name,path,domain)
{if(GetCookie(name)){document.cookie=CartID+name+"="+((path)?"; path="+path:"")+((domain)?"; domain="+domain:"")+";expires=Thu, 01-Jan-70 00:00:01 GMT";}}
function getCookieVal(offset){
  var endstr=document.cookie.indexOf(";",offset);
  if(endstr==-1)endstr=document.cookie.length;
  return unescape(document.cookie.substring(offset,endstr));
}
function GetCookie(name){
  var arg=CartID+name+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while(i<clen){
    var j=i+alen;
    if(document.cookie.substring(i,j)==arg) return(getCookieVal(j));
    i=document.cookie.indexOf(" ",i)+1;
    if(i==0) break;
  }
  return(null);
}
function iGetCookie(name,DEF){if(DEF==null)DEF=null;
  var r=GetCookie(name);return (r==null?DEF:Integer(r));}
function GetRow(i){
  RowKey="Order."+i;
  dbrow="";
  dbrow=GetCookie(RowKey);
  Token0=dbrow.indexOf("|",0);
  Token1=dbrow.indexOf("|",Token0+1);
  Token2=dbrow.indexOf("|",Token1+1);
  fields=[];
  fields[0]=dbrow.substring(0,Token0);
  fields[1]=dbrow.substring(Token0+1,Token1);
  fields[2]=dbrow.substring(Token1+1,Token2);
  fields[3]=dbrow.substring(Token2+1,dbrow.length);
}
function RemoveFromCart(RemOrder){
//  if((DisplayPopupOnRemove?confirm(strRemove):true)){
    NumberOrdered=iGetCookie("NumberOrdered",0);
    for(var i=RemOrder;i<NumberOrdered;++i){
      NewOrder1="Order."+(i+1);
      NewOrder2="Order."+(i);
      database=GetCookie(NewOrder1);
      SetCookie(NewOrder2,database,null,"/");
    }
    NewOrder="Order."+NumberOrdered;
    SetCookie("NumberOrdered",(NumberOrdered>0?NumberOrdered-1:0),null,"/");
    DeleteCookie(NewOrder,"/");
    location.href=location.href;
//  }
}
function EmptyTheCart(){
  if (location.search.indexOf("EmptyCart")>0)
  {
    NumberOrdered=iGetCookie("NumberOrdered",0);
    for(var i=1;i<=NumberOrdered;++i){
      NewOrder="Order."+i;
      DeleteCookie(NewOrder,"/");
    }
    SetCookie("NumberOrdered",0,null,"/");
  }
}
function ReadCartComputePrices(){
  var i,C;
  function Pparse(priceparm){
    C=0;
    for(var price=priceparm.split(","),J=0;J<price.length;++J){
      var T=price[J];
      C=NumberZ(T);
    }
  }
  Cart=[];
  iNumberOrdered=iGetCookie("NumberOrdered",0);
  for(i=1;i<=iNumberOrdered;++i){
    GetRow(i);
    Pparse(fields[2]);
    Cart[i]={ID:fields[0],QUANTITY:Integer(fields[1]),PRICE:fields[2],NAME:fields[3],C:C,PRICEAVG:null}
  }
  for(i=1;i<=iNumberOrdered;++i){
    if(Cart[i].PRICEAVG!=null) continue;
    C=Cart[i].C;
    Cart[i].PRICEAVG=Cents(C);
  }
  fTotal=0;
  for(i=1;i<=iNumberOrdered;++i){fTotal+=Cart[i].QUANTITY*Cart[i].PRICEAVG;}
  g_TotalCost = fTotal;
}
function AddPaymentProcessorFieldsForOneRow(PP,i){
  var sN="";if(AppendItemNumToOutput) sN=""+i;
  var SEP=";&nbsp;&nbsp;";
  var ProdNAME=Cart[i].NAME;
  sDescAIO+=Cart[i].ID+" "+ProdNAME+(i<iNumberOrdered?SEP:"");
}
function AddPaymentProcessorFieldsFinal(PP){
  sOutPP+="<input type=hidden name=\"ap_purchasetype\" value=\""+"item"+"\">";
  sOutPP+="<input type=hidden name=\"ap_itemname\" value=\""+"Hospedaje Los Jardines"+"\">";
  sOutPP+="<input type=hidden name=\"ap_description\" value=\""+sDescAIO+"\">";
  sOutPP+="<input type=hidden name=\"ap_quantity\" value=\""+"1"+"\">";
  sOutPP+="<input type=hidden name=\"ap_amount\" value=\""+moneyFormat(fTotal)+"\">";
  sOutPP+="<input type=hidden name=\"ap_totalamount\" value=\""+moneyFormat(fTotal)+"\">";
}
function ManageCart(){
  ReadCartComputePrices();
  sDescAIO="";
  sOutPP="";
  sOutput="<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=0 CLASS=\"nopcart\"><TR>"
  +"<TD CLASS=\"nopheader\" ALIGN=CENTER><B>"+strILabel+"</B></TD>"
  +"<TD CLASS=\"nopheader\" ALIGN=CENTER><B>"+strDLabel+"</B></TD>"
  +"<TD CLASS=\"nopheader\" ALIGN=CENTER><B>"+strQLabel+"</B></TD>"
  +"<TD CLASS=\"nopheader\" ALIGN=CENTER><B>"+strPLabel+"</B></TD>"
  +"<TD CLASS=\"nopheader\" ALIGN=CENTER><B>"+strRLabel+"</B></TD></TR>";
  if(iNumberOrdered==0)sOutput+="<TR><TD COLSPAN=7 CLASS=\"nopentry\"><CENTER><BR><B>"+strCartEmpty+"</B><BR><BR></CENTER></TD></TR>";
  for(var i=1;i<=iNumberOrdered;++i){
    var sCLASS="nopentry";if(Math.round(i/2)==(i/2)) sCLASS="nopeven";
    sOutput+="<TR><TD CLASS=\""+sCLASS+"\" ALIGN=CENTER>"+Cart[i].ID+"</TD>";
    sOutput+="<TD CLASS=\""+sCLASS+"\">"+Cart[i].NAME+"</TD>";
    sOutput+="<TD CLASS=\""+sCLASS+"\" ALIGN=CENTER>"+Cart[i].QUANTITY+"</TD>";
    sOutput+="<TD CLASS=\""+sCLASS+"\" ALIGN=RIGHT>"+MoneySymbol+moneyFormat(Cart[i].PRICEAVG)+"</TD>";
    sOutput+="<TD CLASS=\""+sCLASS+"\"></TD>";
    sOutput+="<TD CLASS=\""+sCLASS+"\"></TD>";
    sOutput+="<TD CLASS=\""+sCLASS+"\" ALIGN=RIGHT>&nbsp; <input type=button value=\""+strRButton+"\" onClick=\"RemoveFromCart("+i+")\" class=\"nopbutton\"></TD>";
    sOutput+="</TR>";
    AddPaymentProcessorFieldsForOneRow(PaymentProcessor,i);
  }
  sOutput+="<TR><TD CLASS=\"noptotal\" COLSPAN=6><B>"+strTOT+"</B></TD>";
  sOutput+="<TD CLASS=\"noptotal\" ALIGN=RIGHT><B>"+MoneySymbol+moneyFormat(fTotal)+"</B></TD></TR>";
  sOutput+="</TABLE>";
  AddPaymentProcessorFieldsFinal(PaymentProcessor);
  document.write(sOutput+sOutPP);
  document.close();
}
function ValidateCart(theForm){
  if(isNaN(g_TotalCost)){
    alert(strTotalNaN);
    return false;
  }
  var strQs=location.search;
  if(strQs!="")
  {
    strQs=strQs.substring(1);
    var parms=strQs.split('&');
    for(var i=0;i<parms.length;i++)
    {
      var KeyAndVal=parms[i].split("=");
      if(KeyAndVal[0]=="ap_returnurl")
      {
        strVal = new String(KeyAndVal[1]);
        strVal=strVal.replace(/%3A/g,":");
        strVal=strVal.replace(/%2F/g,"/");
        strVal=strVal.replace(/%3F/g,"?");
        strVal=strVal.replace(/%3D/g,"=");
        strVal=strVal.replace(/[+]/g," ");
        strVal=strVal.replace(/%2C/g,",");
        strVal=strVal.replace(/%26/g,"&");
        strVal=strVal.replace(/%23/g,"#");
        theForm.ap_cancelurl.value=strVal;
        var pos=strVal.indexOf("#");
        strVal=strVal.substring(0,pos)+"&EmptyCart=Y"+strVal.substring(pos,strVal.length)
        theForm.ap_returnurl.value=strVal;
        break;
      }
    }
  }
  return true;
}