﻿/**** Const Variables of Panels Pages ASPX ***/
var pagePanelPassportTickets = "/shoppingcart/passportparktickets.aspx";
var pagePanelPartnerParks = "/shoppingcart/passportpartnerparks.aspx";
var pagePanelHotels = "/shoppingcart/passporthotels.aspx";
var pageAddOns = "/shoppingcart/PassportAddOns.aspx";
var pageAnnualPass = "/ShoppingCart/PassportAnnualPass.aspx";
var pagePanelUserControls = "/shoppingcart/passportmenu.aspx";

var _positionLeft; //20090914
var _catalogNameFlexPay = 'Ecommerce - UO FlexPay';
var _idMiniShoppingCart = 'content_right_usercontrol_upShoppingCartDetail';

var blnLoadMenuPassportProcess = false;
var _glbExternPanelPassport;
var title="";
var qsParm = new Array();

function showMenuPassport()
{
		showPassport("","","","");
		if($('dvMenuPanel') != null)
		{	
			$('dvMenuPanel').style.display = "none";
			$('lblMenuTitleName').innerHTML = "BUY NOW";		
		}
}

function initEffectPanels(_idItemPanel, _idContainerPanel, _idDiv, _arrParams)
{
    idContainer = _idContainerPanel; 
    
    var objContainerPanels = $(_idContainerPanel).select(".content_panel");
    
    if(objContainerPanels[0]!=null)
        idContainer = objContainerPanels[0].id;
    
    loadPanelEffects(idContainer);
    loadTicketEffects(idContainer, _arrParams);
    
    initializaBuyTickets(_idContainerPanel, _idDiv);

    if(_idItemPanel==pagePanelPassportTickets)
    {
        if($(idContainer).select(".priceparameters").length>0)    
                GetCommercePriceJS("SelectPark", 0, 0, $(idContainer).select(".priceparameters")[0].value);
    }
        
}

function switchPanel(_idhead, _iddetail, _dataDetail, _index) {

	var dataContDetail = $('content_menu_panel').select(".ticket_panel_detail");
    var bldisplaydetail = false; 
    var _idheaditem;
    var _iddetailitem;
    var objDivRef;
    
    objDivRef = new Element("DIV");
    objDivRef.id = "DivRefPanel";
	objDivRef.style.display = "none";
    
    
    dataContDetail.each(function(item, index){
		
		if(item.style.display != "none")
		{
		    bldisplaydetail = true;
		    _idheaditem = dataContentHead[index].id;
            _iddetailitem = item.id;
		}
		
	});
	
	initmbFD(objDivRef,null,null,-1);
	
	Effect.BlindDown(_iddetail, 
	{
	    afterFinish: function(element){
            hmFD();
        },
		 duration: 0.8
	});
	
	if (bldisplaydetail)
	{ 
	    Effect.BlindDown(_idheaditem, {
		 duration: 0.5});
    } 
	
	Effect.BlindUp(_idhead, {
		 duration: 0.5
	});
	
	if (bldisplaydetail)
	{ 
	     Effect.BlindUp(_iddetailitem, {
		 duration: 0.8});
    }
    
}


function CloseCartConfirm()
{
  switchEmailBox(false, $('dvSaveCartConfirm'));
  closeContent(); 
  return false;
}    

function closeTotalContent()
{
   if(UserLogged == "N")
   {
	    if($('content_right_usercontrol_dvSaveCartControl') != null)
	    {
	    	if($('content_right_usercontrol_dvSaveCartControl').style.display == "block")
       	    {    
			    switchEmailBox(false, $('content_right_usercontrol_dvSaveCartControl'));
	    	}
   	    }

   	    if($('dvSaveCartConfirm') != null)
   	    {	
		    if ($('btnClose').value == "Close")
		    {
	   		    closeContent();		
		    }
		    else
		    {
	 		    switchEmailBox(true, $('dvSaveCartConfirm'));   
		    }
   	    }
   	    else
   	    {
		    closeContent();
   	    }
   }
   else
   {
	closeContent();
   }
   return false;

}

function closeContent()
{
   _divContainer = $("content_menu_panel");
    
	var objContainerPanels = _divContainer.select(".contentMenuDetail");
	objContainerPanels[0].style.display="none";
	var contentMenuDetailItem = _divContainer.select(".contentMenuDetailItem");
	contentMenuDetailItem[0].style.display="none";
    
    var objdivContentRight = _divContainer.select(".content_right_sc_principal");
    
    objdivContentRight[0].innerHTML="";
    objdivContentRight[0].style.display="none";
    
    $('lblMenuTitleName').innerHTML = "";

    getCartItems();
    hm();
    InitializeVariables();	
    
}

function getCartItems()
{
    PageMethods.GetCartItems(function(response){
        var objMenu = $("header").select(".printmap span");
        if(objMenu.length==0)
            return;
        objMenu[1].innerHTML = response;
    },function(result){
        alert("Error in GetCartItems (server side): " + result);
    });

}

function showPassport(_idMenuPanel, _idDiv, _arrParams, objPos)
{
    if(blnLoadMenuPassportProcess)
		         return;
    
    var  content_menu_right_panel = $("content_menu_right_panel");
        
    if(content_menu_right_panel!=null){
          
          if(content_menu_right_panel.style.display!="none")  
                Effect.SlideUp(content_menu_right_panel.id, { duration: 0.2 });
    }
    
    if((objPos=="") || (objPos==null))
    {
        var objPos = $("header").select(".t_c1 img")[0];
    
        if(objPos==null)
            return;    
    }
    
    ObjectPosition(objPos); 
    getUCMenuPanels(_idMenuPanel, _idDiv, _arrParams);    
    
}

function showMenuPanelMain()
{
    var _divContainer;

    $('lblMenuTitleName').innerHTML = "BUY NOW";
	_divContainer = $("content_menu_panel");

    _divContainer.select(".contentMenuDetailItem")[0].style.display="none";
    
    var objContainerPanels = _divContainer.select(".contentMenuDetail");
    objContainerPanels[0].style.display="block";

    var objdivContentRight = $("content_menu_panel").select(".content_right_sc_principal");
    objdivContentRight[0].innerHTML="";
    objdivContentRight[0].style.display="none";
    
    InitializeVariables();
    $('dvMenuPanel').style.display = "none";
    
}
function GetContentXml(xmldata)
{
    var result = '';
    if (Prototype.Browser.IE)
        result = xmldata.documentElement.lastChild.nodeValue;
    else
        result = xmldata.documentElement.lastChild.wholeText;
    
    return result;
}

function showPassportContent(_idMenuPanel, _idDiv, _arrParams)
{	        
		    var _sHtml;
	        var _sHtmlPanelTicket;
            var _divContainer;
            
	        //created a dynamic div
	        _divContainer = $("content_menu_panel");

	        var objContainerPanels = _divContainer.select(".contentMenuDetail");
	        objContainerPanels[0].style.display="none";
	        
	        var objContainerPanelsDetail = _divContainer.select(".contentMenuDetailItem");
	        
	        $('dvMenuPanel').style.display = "block";
            
            var objContainerPanelRight = _divContainer.select(".content_right_sc_principal")[0];
	        var objContainerPanelRightUC = $("content_menu_right_panel");
	        objContainerPanelRight.style.display = "block";
	        
	        var params = '';
	        
	        objContainerPanelsDetail[0].style.display="block";
	        
	        new Ajax.Request(_idMenuPanel, {        
		    method: 'get', 
		    parameters: params,        
		    onSuccess: function(transport) {
			     if(transport.responseText.length > 0){                
    		            
		                _sHtml = transport.responseText;
    		            
		                var _posbegin;
		                var _posend;
            		    
		                _posbegin = _sHtml.indexOf('<!--PassportTicketsStart-->');
		                _posend = _sHtml.lastIndexOf('<!--PassportTicketsEnd-->');
            		    
		                _sHtmlPanelTicket = _sHtml.slice(_posbegin, _posend); 
		           	    objContainerPanelsDetail[0].innerHTML = '<!--Begin Tridion Panel--><span id="spanTridionPanelTicket">' + _sHtmlPanelTicket + '</span><!--Ending Tridion Panel-->';
		           	    		           	
		                var pageLocation = "/shoppingcart/ViewCartInfo.aspx";
    		            PageMethods.GetHtmlContent(pageLocation, function(response){
                            //success
                            response = GetContentXml(response);
    
                            var posBegin;
                            var posEnd;
                            
                            posBegin = response.indexOf('<!--StartContent-->');
                            posEnd = response.lastIndexOf('<!--EndContent-->');
                            
                            response = response.slice(posBegin, posEnd);
                            
                            var objContainerPanelRight = $("content_menu_panel").select(".content_right_sc_principal")[0];
                            
                            objContainerPanelRight.innerHTML = response;
                            _glbCatalogNameSC = GetDiscount(false);
                                                       	                        
	                        initEffectPanels(_idMenuPanel, _divContainer.id, _idDiv, _arrParams);
	                        
	                        if((_glbExternPanelPassport!="") && (_glbExternPanelPassport!=undefined))
	                                showPanelFromPassportTicket();
                            
                            objContainerPanelRight.style.display = "block";
                        }, getViewCartInfoFailed);
    		            
                        productDetailBoxClose();
                        
                        for(var key in panelsAddToCart){
                                panelsAddToCart[key]=false;   
                            }
                            
                        getCallExpressPassFailed("");
                        
                        enabledButtonsAddToCarts(false);
                        
                        enabledButtonsNumberOfDays(false);

			     }
		    },
			onFailure: function(response) { 
                        alert(response); 
            }, 
            onException: function(request,error) { 
                        //alert(error.message); 
            } 	    
	  });

		$('lblMenuTitleName').innerHTML = title;
}

function productDetailBoxClose()
{
    var objdivFullDetail = $('dvProductDetailBox');
                        
    if((objdivFullDetail!=null) || (objdivFullDetail!=undefined))
    {
        var objButtonCloseFullDetail =  objdivFullDetail.select(".close_button");
        
        if(objButtonCloseFullDetail.length>0)
        {
            objButtonCloseFullDetail[0].onclick = function(){
                    hmFD();
            }
        }
    }
}

function setPromoCode(_divContent)
{
    var objContainer = $(_divContent)   
    var objContainerRight =  objContainer.select(".content_right");
    var objTextPromoCode = objContainerRight[0].select(".content_right_promocode_detailEdit input");
    var objButtonPromoCode = objContainerRight[0].select(".content_right_promocode_detailButton input");
    
    objButtonPromoCode[0].onclick = function(){
    
        var _sPromoCode = objTextPromoCode[0].value;
        
        if(_sPromoCode=="")
            return;
            
        alert("Enter to ApplyPromoCode: " + _sPromoCode);
    };
}

function _switchCover(_top, _left, _width, _height, isOn) {
		// keep the loading image in the center of the map container
		// even if the size of the container is changed
		
		var divCover;
		divCover = document.getElementById("div_cover_R2");
		
		if (divCover==null) {
			// build a cover to prevent operations before the map is ready to run.
			divCover = new Element("div");
			divCover.addClassName("cover_R2");
			divCover.id = "div_cover_R2"
			divCover.setStyle({
				width: _width + "px",
				height: _height + "px",
				opacity: 0.7
			});
			
			$("content_menu_panel").insert(divCover);
			
			var loading = new Element("img");
			divCover.appendChild(loading);
			loading.alt = "loading...";
			loading.addClassName("loading_icon_R2");
			loading.src = "/images/loading.gif";
		}
		divCover.style.top = _top + "px";
		divCover.style.left = _left + "px";
		divCover.style.width = _width + "px";
		divCover.style.height = _height + "px";
		divCover.style.verticalAlign = "middle";
		divCover.style.textAlign = "center";
		
		if(isOn)
		    divCover.style.display = "block";
		else
	        divCover.style.display = "none";
}

/*20090914 begin*/
function getOuter(ele) 
{ 
    var parent = ele.parentNode; 
    var el = document.createElement(parent.tagName); 
    el.appendChild(ele); 
    var shtml = el.innerHTML; 
    parent.appendChild(ele); 
    return shtml; 
}

function getAbsoluteElementPositionTop(element) {
  if (typeof element == "string")
    element = document.getElementById(element)
    
  if (!element) 
    return 0;
  
  var y = 0;
  var x = 0;
  while (element.offsetParent) {
    x += element.offsetLeft;
    y += element.offsetTop;
    element = element.offsetParent;
  }
  return y;
}

function getAbsoluteElementPositionLeft(element) {
  if (typeof element == "string")
    element = document.getElementById(element)
    
  if (!element) 
    return 0;
  
  var y = 0;
  var x = 0;
  while (element.offsetParent) {
    x += element.offsetLeft;
    y += element.offsetTop;
    element = element.offsetParent;
  }
  return x;
}

function ObjectPosition(obj) {
        var curleft = 0;
          var curtop = 0;
          if (obj.offsetParent) {
             do{
               curleft += obj.offsetLeft;
               curtop += obj.offsetTop;
             } while (obj = obj.offsetParent);
          }
          _positionLeft = curleft;
          
}

function ObjectPositionTop(obj) {
        var curleft = 0;
          var curtop = 0;
          if (obj.offsetParent) {
             do{
               curleft += obj.offsetLeft;
               curtop += obj.offsetTop;
             } while (obj = obj.offsetParent);
          }
          return curtop;
          
}

function ObjectPositionLeft(obj) {
        var curleft = 0;
          var curtop = 0;
          if (obj.offsetParent) {
             do{
               curleft += obj.offsetLeft;
               curtop += obj.offsetTop;
             } while (obj = obj.offsetParent);
          }
          return curleft;
}


function getKeyCode(e){
    e= (window.event)? event : e;
    intKey = (e.keyCode)? e.keyCode: e.charCode;
    return intKey;
}
    
function loadPanelEffects(contentTickets){

	var dataContent = $(contentTickets)
    
    if(dataContent==null)
        return;
    
    dataContentHead = dataContent.select(".ticket_panel_head");
    dataContentDetail = dataContent.select(".ticket_panel_detail");

    dataContentDetail.each(function(item){
		item.style.display = "none";
	});
	
	dataContentHead.each(function(itemHead, index){

        var headTitle = itemHead.select(".ticket_panel_head_title a");
        
	    headTitle[0].onclick = function() {
	        switchPanel(itemHead.id, dataContentDetail[index].id);
        };
        
        headTitle[0].onmouseover = function() {
            headTitle[0].style.cursor = "pointer";
            headTitle[0].style.textDecoration = "underline";
        };
        
        headTitle[0].onmouseout = function() {
            headTitle[0].style.textDecoration = "none";
        };
        
        var headTitle01 = itemHead.select(".ticket_panel_head_title_01 a");
        if(headTitle01.length>0)
            headTitle01[0].innerHTML=""
	   
        var headTitle02 = itemHead.select(".ticket_panel_head_title_02 a");
        if(headTitle02.length>0)
            headTitle02[0].innerHTML = ""; 
    });
	
}

function isNumericKeyStroke(e)
{
    if(window.event){// IE
        keynum = e.keyCode;
    }else{
        keynum = e.which;
    }
    
    //if((keynum>47 && keynum<58) || (keynum>36 && keynum<41) || (keynum>44 && keynum<47) || (keynum>32 && keynum<37))
    if((keynum>47 && keynum<58) || (keynum==8 || keynum==0))
        return true; 
    else
        return false;
}

function ShowDivPopup(DivName,DivTop,DivLeft) 
{
	$(DivName).setStyle({
		top: DivTop,
		left: DivLeft,
		display: "",
		"float": "none"
	});	
	
}
function CloseDivPopup(DivName) {
	
	$(DivName).setStyle({
		display: "none"
	});	
	
}

function getCodePanel(objPanel)
{
    var objCodePanel = objPanel.select("div");
    
    if(objCodePanel.length == 0)
        return "";
    else
        return objCodePanel[0].innerHTML;       

}

function InitializeVariables()
{
    NmbParksMealDeal = 0;
    qtyAdultsMealDeal = 1;
    qtyKidsMealDeal = 0;
    qtyCupMealDeal = 0;

    _glbPassType = "";
    
    NmbAdults = 1;
   
    _glbExternPanelPassport = ""
}
function loadEventsUserControlMenu(idMenuPanel)
{
       var objUCMenu;
       if(idMenuPanel!=null)
            objUCMenu = $(idMenuPanel); 
       else
            objUCMenu = $("divContentMenu"); 
        
       //settings the onclicks events:
       var objcontentMenu_itemMenu_detail = objUCMenu.select(".contentMenu_itemMenu_detail");
       
       objcontentMenu_itemMenu_detail.each(function(item, index){

               item.className = "contentMenu_itemMenu_" + index; 

               item.onclick = function(){
                       
                       var passportLink = item.select(".PassportLink");
                       var panelLink = item.select(".PanelLink");
                       
                       if(passportLink.length==0)
                                return;
                       if(panelLink.length==0)
                                return;

                       var titlePanel = item.select(".contentMenu_itemMenu_title span")[0].innerHTML;
                       title=titlePanel;

                       showPassportContent(passportLink[0].value,panelLink[0].value, "");
               };
        });
}

function getUCMenuPanels(_idMenuPanel, _idDiv, _arrParams)
{
   var params = '';

   new Ajax.Request(pagePanelUserControls, {        
		        method: 'get', 
		        parameters: params,        
		        onSuccess: function(transport) {
			        if(transport.responseText.length > 0){  
			        
			            try{
			                var responseText = transport.responseText;
            	            
	                        var posBegin;
	                        var posEnd;
                		    
	                        posBegin = responseText.indexOf('<!--content_menu_panel_start-->');
	                        posEnd = responseText.lastIndexOf('<!--content_menu_panel_end-->');
                		    
    		                responseText = responseText.slice(posBegin, posEnd); 
                            $("content_menu_panel").innerHTML = responseText;
                            
                            $("content_menu_panel").select(".contentMenuDetailItem")[0].style.display="none";
                            
                            if(_idMenuPanel!="")
                                    showPassportContent(_idMenuPanel, _idDiv, _arrParams);
                            
                            loadEventsUserControlMenu(null);
                                        
                            initmb($("content_menu_panel"),null,null,_positionLeft);

                            blnLoadMenuPassportProcess = false;
                            
			            }catch(e){
			                hm();
			            }
			         }
		        },
		        onFailure: function(response) { 
                            //alert(response); 
                }, 
                onException: function(request,error) { 
                            //alert(error.message); 
                } 
    });
}

function findArrayValue(_arrParams ,_variable)
{
    if((_arrParams=="") || (_arrParams==null))
        return null;
    
    var arrParam01 = _arrParams.split(',');
    var _valueVariable = null;
    
    if(arrParam01.length==0)
        return null;
    
    var i;
    for(i=0;i<=arrParam01.length;i++)
    {
        var idx = arrParam01[i].indexOf('=');
        if(_variable==arrParam01[i].substr(0,idx))
        {
            _valueVariable = arrParam01[i].substr(idx + 1, arrParam01[i].length);
            break;           
        }
    }
    return _valueVariable;

}

function changeCatalogFromMiniShoppingCart()
{
        _glbCatalogNameSC=GetDiscount(false);
        
        GetCommercePriceJS("SelectPark", NmbParks, NmbDays, $("content_menu_panel").select(".priceparameters")[0].value);
        GetCommercePriceJS("NumberOfDays", NmbParks, NmbDays, $("content_menu_panel").select(".priceparameters")[0].value);
        GetCommercePriceJS("NumberOfGuests", NmbParks, NmbDays, $("content_menu_panel").select(".priceparameters")[0].value);        
        GetCommercePriceAnnualPassJS("NumberOfPasses", _glbPassType, $("content_menu_panel").select(".priceparameters")[0].value);
        sendDataServer(NmbParks, NmbAdults, NmbKids, NmbDays);

}

function GetInformationProductFD(virtualCatalogName, productID, variantID) 
{  
    initmbFD($('dvProductDetailBox'),null,null,-1);
    PageMethods.GetInformationProduct(virtualCatalogName,productID,variantID, onProductComplete2, onUnSuccessfull);
}
function onProductComplete2(result) 
{
    if(result != "")
    {
        var args = result.split('|');
        $('lblFullDetailTitle').innerHTML = args[0];
        $('lblFullDetailSubTitle').innerHTML = args[0];
        $('dvProductDetail').innerHTML = args[1];
    }    
}

function switchEmailBox2(isOn, control) {
    
	control = $(control);
	if (isOn) {
		switchCover(isOn);
		control.remove();
		coverContainer.insert(control);
		var html = document.documentElement;
		control.setStyle({
			top:(html.clientHeight - control.getHeight()) / 2 
				+ (isIE6 ? html.scrollTop : 0) + "px",
			left:(html.clientWidth - control.getWidth()) / 2
				+ (isIE6 ? html.scrollLeft : 0) + "px",
			display: "block",
			position: "relative", //isIE6 ? "absolute" : "fixed",
			"z-index": 99 //20001

        });    
        disableTabIndexes();
        restoreTabIndexesCurrentPopup(control);
		
	}
	else
	{
	    if (hideContainer != null) 
	    {
	        control.remove();
	        hideContainer.insert(control);
	        switchCover(isOn);
	        restoreTabIndexes();
	    }
	    else 
	    {
	        PromoXYClick();
	    }
	}
}

function qs() {
    var query = window.location.search.substring(1);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0,pos);
            var val = parms[i].substring(pos+1);
            qsParm[key] = val;
        }
    }
} 
