﻿var maxQty=99;
/*
window.onclose = shoppingcart_OnClose;

function shoppingcart_OnClose() {
	alert("cart closed");
	deleteCookie("TotalCached");
}
*/
//shoppingcart_ChangeTotal('2_2166amount',0,'2_2166Total',99,true,2)

function shoppingcart_ChangeTotal(sQtyFormID,iIncrementAmount,sSubTotalFormID,iPrice,bUpdateTotal,iAttractionID) {
	oInput=document.getElementById(sQtyFormID);
	iOldAmount=oInput.value.replace(/^0+/, ''); ;
	
	if(iOldAmount=="") iOldAmount=0;
	if (!isNaN(iOldAmount)) {
		iNewAmount = parseInt(iOldAmount) + iIncrementAmount;
		if(iNewAmount<=0) iNewAmount=0;
		if(iNewAmount>maxQty) iNewAmount=maxQty;
	}
	oInput.value=iNewAmount;
	if(bUpdateTotal) {
		shoppingcart_SetProductTotal(sSubTotalFormID,iNewAmount,iPrice);
	}
	if(iAttractionID>0) $("AttErrMsg" + iAttractionID).style.display="none";
}

function shoppingcart_SetProductTotal(sSubTotalFormID,iQty,iPrice) {
	iTotal = iQty * parseFloat(iPrice);
	sTotal = round(iTotal) + ""
	//alert(sTotal);
	if(sTotal.indexOf(".")>-1) {
		aTotal=sTotal.split(".");
		if (aTotal[1].length<2) aTotal[1]=aTotal[1]+"0";
		if (aTotal[1].length<2) aTotal[1]=aTotal[1]+"0";
		aTotal[1]=aTotal[1].substr(0,2);
		sTotal=aTotal.join(".");
	} else {
		sTotal=sTotal+".00";
	}
	
	//alert(sTotal);
	document.getElementById(sSubTotalFormID).innerHTML='$' + sTotal;
}

function shoppingcart_NumbersOnly(e,el){
	var unicode=e.charCode? e.charCode : e.keyCode
	if (unicode==8) { //if the key is the backspace key (which we should allow)
		return true;
	}
	if (unicode<48||unicode>57) {//if not a number
		return false; //disable key press
	}
	var val = $(el).value;
	if(val.length>0 && (val < 0 || val > 99))
	{
		return false;
	}   
}

function shoppingCart_OpenCart() {
	hs.htmlExpand($('btnCartOpen'), { objectType: 'ajax',  targetX: 'shoppingCart -334px', targetY: 'shoppingCart 60px',cacheAjax: false, wrapperClassName: 'wrapper-cart', width: 475} );
	return false;
 	//hs.htmlExpand($('btnCartOpen'), { objectType: 'ajax',  targetX: 'shoppingCart -334px', targetY: 'shoppingCart 60px',cacheAjax: false, wrapperClassName: 'wrapper-cart', width: 475} );
}

hs.Expander.prototype.onBeforeExpand = function(sender){
        // var expander = hs.getExpander('ykmeerinfo'); 
   //if (expander) closeagain();
	//alert("OnBeforeExpand");
	if (sender.wrapperClassName=="wrapper-cart") {
		//alert("OnBeforeExpandCart");
		//MM 10 MAR 2009 to track clicks
		dcsMultiTrack('dcssip', 'admin.staging.shop.myfun.com.au', 'dcsuri', 'ShoppingCart.asp?action=display', 'WT.ti', 'Open Cart');
		sender.reflow();
	} 
} 

//MM 10 MAR 2009
hs.Expander.prototype.onAfterExpand = function () {
   
	if (this.a.id=="combo-ticketing") {
		//alert("OnBeforeExpandComboTIx");
		var url_split=this.a.href.match(/(\w+):\/\/([\w.]+)(\/\S*)/);
		var wt_domain=url_split[2];
		var wt_uri=url_split[3];
		var wt_title=this.a.title
		dcsMultiTrack('dcssip', wt_domain, 'dcsuri', wt_uri, 'WT.ti', wt_title);
		//alert('The actual tracking link: ['+wt_domain+wt_uri+']. WebTrends Title:['+wt_title+']');
	}
	if (this.a.id=="gift-cards") {
		//alert("OnBeforeExpandGiftCards");
		var url_split=this.a.href.match(/(\w+):\/\/([\w.]+)(\/\S*)/);
		var wt_domain=url_split[2];
		var wt_uri=url_split[3];
		var wt_title=this.a.title
		dcsMultiTrack('dcssip', wt_domain, 'dcsuri', wt_uri, 'WT.ti', wt_title);
		//alert('The actual tracking link: ['+wt_domain+wt_uri+']. WebTrends Title:['+wt_title+']');
	}
	if (this.a.id=="annual-pass") {
		//alert("OnBeforeExpandAnnualPass");
		var url_split=this.a.href.match(/(\w+):\/\/([\w.]+)(\/\S*)/);
		var wt_domain=url_split[2];
		var wt_uri=url_split[3];
		var wt_title=this.a.title
		dcsMultiTrack('dcssip', wt_domain, 'dcsuri', wt_uri, 'WT.ti', wt_title);
		//alert('The actual tracking link: ['+wt_domain+wt_uri+']. WebTrends Title:['+wt_title+']');
	}
}
//MM 10 MAR 2009 Code ends here

function shoppingcart_ForceRefresh() { //DEPRECATED
	 $("div4").style.visibility="hidden";
	 shoppingCart_OpenCart();
	 shoppingcart_Reflow(); //df IMPORTANT!!!
	 hs.close($('btnCartOpen'));
	 $("div4").style.visibility="visible";
}

function shoppingcart_Reflow() {
	shoppingcart_TimedReflow();
	//var t=setTimeout("shoppingcart_TimedReflow()",20);
	//var t2=setTimeout("shoppingcart_TimedReflow()",40);
	var t3=setTimeout("shoppingcart_TimedReflow()",80);
}

function shoppingcart_TimedReflow() {
	try {
		//alert("shoppingcart_TimedReflow");
		//alert("reflow1");
		  var slot = document.getElementById("div4");
		  //var newNode = document.createTextNode(" ...and more, ");
		  //slot.appendChild(newNode);
		//alert("reflow2");
		  var expander = hs.getExpander(slot);
		//alert("reflow3");
		  expander.reflow();
		//alert("reflow4");
	} catch(e) { 
		//alert("reflow error");
	}
}


//shoppingcart actions	 remove item	
		
     var removeItem = function (pid)
        {
                
                $("action").value = "remove" ;
                $("ProductId").value = pid;
                
                   //alert($F("ProductId"));  
                   
           new Ajax.Updater('div4','ShoppingCart.asp', 
             { 
                method:'post', 
                parameters: $('frmShoppingCart').serialize(),
                onSuccess:function()
               {
                updateShoppingCartTotal();
                  }
                }); 
}


      var updateItem = function(pid)
      {
		  
		  	
            $("action").value = "update";
            $("ProductId").value = pid;
            
			//alert("updating");
			
            var qtyInput = $("qty"+pid);
            
			var ival,oldval
			ival = parseInt(qtyInput.value);
			oldVal = parseInt(qtyInput.oldValue);
			
			if(ival != oldVal) // if there is no channge in qty. no need to update the cart
			{
				//alert("updating");
						
			
            var val = qtyInput.value;
                if(val < 0 || val > maxQty)
                {
                    qtyInput.value = qtyInput.oldValue;
                    return false;
                }   
            
            $("ProductCount").value = qtyInput.value;
            
            //var rx = /^[\d]+$/;
            
           //if(!rx.test(qtyInput.value))
           //{
               // return false;
           //}
           if($("ProductCount").value != "0")
		   {
		   		//update cart
           $("action").value = "update" ;
           $("ProductId").value = pid;
                
                   //alert($F("ProductId"));  
                   
           new Ajax.Updater('div4','ShoppingCart.asp',{
               method:'post', 
                parameters: $('frmShoppingCart').serialize(),
                onSuccess:function(transport)
                   {
                   updateShoppingCartTotal();
                   var sResponseText=getResponseText(transport);
				if(sResponseText!="") {
					shoppingcart_Reflow();
					alert(sResponseText);
					//alert(transport.responseText.substr(transport.responseText.length-555));
					//$("CartErrMsg").innerHTML="<h6>" + sResponseText + "</h6>";
					//$("CartErrMsg").style.display="block";
					
				}
               }
              
             }); 
             }
			else
			{
				//0 means remove item from the cart
				removeItem(pid);
				
			}
            }   
      }
      
      function numbersOnly(e,el){
            var unicode=e.charCode? e.charCode : e.keyCode
            if (unicode==8) { //if the key is the backspace key (which we should allow)
				return true;
			}
			if (unicode<48||unicode>57) {//if not a number
				return false; //disable key press
			}
            var val = $(el).value;
			if(val.length>0 && (val < 1 || val > 99))
			{
				return false;
			}   
      }

      
      var updateShoppingCartTotal = function()
      {
            if(getCookie("TotalCached")) {
				displayShoppingCartTotal();
			} else {
				//alert("refresh ShoppingCartTotal");
				$("action").value = "display";
				$("ProductId").value = "";
				$("ProductCount").value = "";
				$("VenueId").value = "";
				$("AttractionId").value = "";
				
				new Ajax.Updater('div4','ShoppingCart.asp', 
                      { 
                     method:'post', 
                       parameters: $('frmShoppingCart').serialize(),
                        onSuccess:function(transport)
                        {
							displayShoppingCartTotal();
                        },
                         onFailure:function(transport)
						{
							alert(transport.responseText);
						}
                      }); 
			}    
      }
	  
	  
	  
      var displayShoppingCartTotal = function()
      {
            new Ajax.Updater('cartTotal','cookieCartTotal.asp?' + Number(new Date), 
              { 
                method:'post',
				onSuccess:function(transport) {
					if (transport.responseText.indexOf("$0.00")>-1) {
						$("checkoutCart").style.display="none";
					} else {
						$("checkoutCart").style.display="block";
					}
					shoppingcart_Reflow();
				},
				onFailure:function(transport) {
					if (transport.responseText.indexOf("$0.00")>-1) {
						$("checkoutCart").style.display="none";
					} else {
						$("checkoutCart").style.display="block";
					}
					shoppingcart_Reflow();
				}
 			}); 
	  }
      
	  
	  
      
      var changeQty = function(pid,action)
      {
        var el = $("qty" + pid)
        var val = el.value;
        
        if(action == "increase" && val < 99 )
        {
            val++;
            el.value = val;
            //updateItem(pid);
            return false;
        }
        
        if(action == "decrease" && val > 0 )
        {
            val--;
            el.value = val;
            //updateItem(pid);
            return false;
        }
      }
 
    var storeOldValue = function(el)
    {
        el = $(el);
        el.oldValue = el.value;
        //alert(el.oldValue);
    }


  var addItemsToCart = function(f)
  {
    	if(!testCookie()) {
			alert("You do not have cookies enabled in your browser. This shopping cart requires that cookies be enabled.");
			return;
		}
  		//alert(f);
		var iform=$(f);
		var aproducts=new Array();
		var aproductcounts=new Array();
		var bfound=false;
		for (i=0;i<iform.elements.length;i++) {
			if(iform.elements[i].name=="ProdID") {
				aproducts[aproducts.length]=iform.elements[i].value;
			} else if (iform.elements[i].name=="ProdCount") {
				aproductcounts[aproductcounts.length]=iform.elements[i].value;
				if(iform.elements[i].value>0) bfound=true;
			} else if (iform.elements[i].name=="AttractionID") {
				var sattractionid=iform.elements[i].value;
			} else if (iform.elements[i].name=="VenueID") {
				var svenueid=iform.elements[i].value;
			}
		}
		if(bfound) {
	
			sproducts=aproducts.join(", ");
			sproductcounts=aproductcounts.join(", ");
			//alert(sproducts);
			//alert(sproductcounts);
	
			$("action").value = "add";
			$("ProductId").value = sproducts;
			$("ProductCount").value = sproductcounts;
			$("VenueId").value = svenueid;
			$("AttractionId").value = sattractionid;
			
			new Ajax.Updater('div4','ShoppingCart.asp', 
                  { 
                    method:'post', 
                    parameters: $('frmShoppingCart').serialize(),
                    onSuccess:function(transport)
                    {
					var sResponseText=getResponseText(transport);
					if(sResponseText!="") {
						$("AttErrMsg" + sattractionid).innerHTML="<h6>" + sResponseText + "</h6>";
						$("AttErrMsg" + sattractionid).style.display="block";
						//shoppingcart_ForceRefresh();
						alert(sResponseText);
					} else {
						$("AttErrMsg" + sattractionid).style.display="none";
						//alert("The selected items have been added to your cart");
						clearProductCounts(f);
						showAddConfirm();
						//shoppingcart_Reflow();

					}
					//hs.htmlExpand($('btnCartOpen'), { objectType: 'ajax',  targetX: 'shoppingCart -334px', targetY: 'shoppingCart 60px',cacheAjax: false, wrapperClassName: 'wrapper-cart', width: 475} );
                   updateShoppingCartTotal();
					//shoppingcart_ForceRefresh();
                    },
                    onFailure:function(transport)
					{
						alert(transport.responseText);
					}
                  }); 
		} else {
			alert("No products were selected to add to the cart.");
		}
		
  }

  function getResponseText(transport) {
	var sResMarker="<!--strResponseMessage=";
	var sText=transport.responseText;
	iResponseIndex=sText.indexOf(sResMarker);
	if(iResponseIndex>-1) {
		sResponseText=sText.substr(iResponseIndex+sResMarker.length);
		sResponseText=sResponseText.substr(0,sResponseText.indexOf("-->"));
		return sResponseText;
	} else {
		return "";
	}
   }
   
   function clearProductCounts(f) {
		var iform=$(f);
		for (i=0;i<iform.elements.length;i++) {
			if (iform.elements[i].name=="ProdCount") {
				iform.elements[i].value="0";
				iform.elements[i].onchange();
			}
		}
	}

/*-------------------------------------------------------------/*
	displaying two versions of add confirm popup goes here.
	
	variable popuoVersion is getting initialized in attraction-highlight.asp page
/*-------------------------------------------------------------*/


var sCurrentPopup = "";

var showAddConfirm = function()
{
	sCurrentPopup = getNewPopupId();
	Event.observe(window,"scroll",positionAddConfirm);
 	$(sCurrentPopup).show();
	//SD Commented on 24/03/2009 - Lightbox effect should not be there.
	$('overLay').show();
	$('overLay').setOpacity(0.8);	
	positionOverLay();
	positionAddConfirm();
	//popupVersion++;
}

var getNewPopupId = function()
{	
 //return (popupVersion % 2 == 0) ? "addConfirm0" : "addConfirm1";
 return "addConfirm0";
}

var positionAddConfirm = function()
{
	 positionOverLay();
	  var xxx = ((document.viewport.getWidth()/ 2) - ($(sCurrentPopup).getWidth() / 2)) - 100;
	  var yyy = (document.viewport.getHeight() / 2) - ($(sCurrentPopup).getHeight()/ 2);              
	  yyy = (yyy + document.viewport.getScrollOffsets().top) - 100;	 
	  yyy = yyy + "px"; // 400px  required for FireFox
	  xxx = xxx + "px";	  
	  $(sCurrentPopup).setStyle({top: yyy, left: xxx,zIndex:1001});
	  $('addConfirm').style.display="block";
}

var positionOverLay = function()
{	
	var w = document.viewport.getWidth();
	var h = document.viewport.getHeight();
	var l = 0;
	var t = document.viewport.getScrollOffsets().top;
	
	w = w + "px";
	h = h + "px";
	l = l + "px";
	t = t + "px";
	
	$('overLay').setStyle({width:w, height:h,left:l,top:t,zIndex:1000});
}

var hideAddConfirm = function(act,buttonTrackingValue,dialogueID)
{
	Event.stopObserving(window,"scroll",positionAddConfirm);
	$(sCurrentPopup).hide();	
	$('overLay').hide();
	
	if(act == "viewCart")
		showCart();		

	
	/*
		Logic of button click tracking code will go here:		
		Need to call webtrend function and pass the value of buttonTrackingValue to that function
		
		dcsMultiTrack('WT.ti', 'Button clicked after adding items in shopping cart', 'DCS.dcsuri', '/attraction-highlight.asp', 'DCSext.Button', '[value to pass]')
	*/
	
	//dcsMultiTrack('WT.ti', 'Shopping cart ITEM ADDED popup', 'DCS.dcsuri', '/AddToCartDialogue' + dialogueID +'-attraction-highlight.asp', 'DCSext.Button', buttonTrackingValue)
	
	// SD Changed 10/03/2009 - DCSext.Button to DCSext.MyFunShopAddToCartButton 
	//dcsMultiTrack('WT.ti', 'Shopping cart ITEM ADDED popup', 'DCS.dcsuri', '/AddToCartDialogue' + dialogueID +'-attraction-highlight.asp', 'DCSext.MyFunShopAddToCartButton', buttonTrackingValue)
}

var showCart = function(){
	 $('addConfirm').hide();
	 shoppingCart_OpenCart();
	 shoppingcart_Reflow(); //df IMPORTANT!!!
	 $('shoppingCart').scrollTo();
}


