⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multirates.js

📁 能够实现宾馆管理的基本功能。 例如删除
💻 JS
📖 第 1 页 / 共 3 页
字号:
/*** Objet javascript permettant de gérer les données d'affichage* de la page d'affichage des tarifs.*/var class_technique = "techPrice" ; var MultiRates = {      bookingEngineViewBean: null,  roomsListViewBean: null,  originViewBean: null,  /**  * Liste des noms d'objets à utiliser.  */  getBeans: function()   {    return "RoomsListViewBean;BookingEngineViewBean;OriginViewBean";  },  /**   * Initialisation de la variable JSON   */  initJSON: function()   {    var num;    try {      for( num in beans)      {        if("RoomsListViewBean" == beans[num].nom)         {          roomsListViewBean = beans[num].bean;        }        if("BookingEngineViewBean" == beans[num].nom)         {          bookingEngineViewBean = beans[num].bean;        }        if("OriginViewBean" == beans[num].nom)         {          originViewBean = beans[num].bean;        }      }    } catch(e)     {      alert(e);    }  },  /**  * Retourne la variable de classe instanciée.  */    getRoomsListViewBean: function()   {    return roomsListViewBean;  },   getBookingEngineViewBean: function()   {    return bookingEngineViewBean;  },	getMultirateCurrency: function() {		return this.beanRoomsListe[this.tab_type][0].currency ;	},  /**  * Ecrivez votre code sur l'initialisation des affichage de la page ici.  * Cette méthode est appelée sur le onload de la page.  */  rewrite: function()   {    this.loadRooms();    // chargement des chambres du bean    this.setRoomClick();    // bind de sélection d'une autre chambre    this.displayRoomsList();    this.tabClickControl();	  	  // Popups    this.setLegendRatesPopupLinks();    this.setRatesSalesPoliciesRatesDetailsLinks();    //this.setMoreInfosLinks();    // lien +infos supprimé du cahier des charges    this.setDescRoomsLinks();    // lien de descriptions des chambres d'hotels    this.setInfoRatesLinks();    this.switchDisplayInTarifIframe();    this.adaptTabIframeForContentHeight();        // enregistre la currency renvoyée    // ce code supplémentaire est obligé par le fait que l'iframe est reloadée sans consideration des changements de devise    // => il faut tout reconvertir si on clique sur "Autres chambres dispo"    var c = this.getMultirateCurrency();    Currencies.setOriginalCurrency(c) ;    Currencies.setCrtCurrency(c) ;    this.tarifsIframe = frames['tarifs'];   /*    if (navigator.userAgent.indexOf('Firefox/3') > -1) 	{    	frames['tarifs'].location.reload(true); // forces (re)load of frame in case FF3 and back (do you know how to detect a "back" loading ?  	}	   */ 	    //deals with re-assigning event handlers when the iframe has been reloaded    Event.observe(      $("tarifs"),      "load",      function()      {        this.loadRooms();                 this.displayRoomsList();        if(typeof(setupRollOversIframe) != "undefined")        {            setupRollOversIframe();        }        this.bindActiveTabAndContent();        this.setRatesSalesPoliciesRatesDetailsLinks();        this.switchDisplayInTarifIframe();				this.adaptPriceMarginHeight();        this.adaptTabIframeForContentHeight();        this.bindTheIframeFlexPopup();        this.bindTheIframeValidateButtons();    // bind des boutons "Valider" de l'iframe				this.changeStyles();        //toggle the action (fetch url) set on the extend stay validate link (based on the dates set in the arrival and departure fields)           //this is done here because it has to be done after the binding which is done in bindTheIframeValidateButtons (so that we unbind if necessary)        if(typeof(this.tab_type) != "undefined" && this.tab_type == "packages")        {            if(this.tarifsIframe.ExtendPackageStayDates)                   this.tarifsIframe.ExtendPackageStayDates.toggleExtendStayValidateButtonAction();        }		    var c = this.getMultirateCurrency();		    Currencies.setOriginalCurrency(c) ;          			Currencies.purgeTarifs(); // vide le tableau de tarifs  			Currencies.doSelectCurrency("s_devise", Currencies.CrtCurrency);                // renvoi des données apres conversion (ex : clic sur autre chambres apres avoir converti) 	 			Currencies.registerEverythingFromPage(Currencies.OriginalCurrency); // on enregistre les données non converties (renvoyées)	 			if (Currencies.CrtCurrency !=  Currencies.OriginalCurrency) {  			 	Currencies.convertEverythingFromPage(Currencies.OriginalCurrency, Currencies.CrtCurrency);  			}  			$("autre_devise").innerHTML = Currencies.CrtCurrency ;  			  			if(frames['tarifs'].$ != null)	 	Currencies.observeSelect(frames['tarifs'].$('s_devise'));  			          }.bind(this)    );        if(navigator.userAgent.indexOf('Safari') != -1)    {        if($('tarifs')){            //$('tarifs').style.width="695px";        }    }          },  changeStyles: function (){  	        if(            navigator.userAgent.search(/MSIE 6/) != -1            && navigator.userAgent.search(/opera/) == -1        )        {            for(var i = $("tarifs").contentWindow.document.getElementsByTagName("li").length - 1; i >= 0; i--)            {                var li = $("tarifs").contentWindow.document.getElementsByTagName("li")[i];                if(li.className.search(/chambre/) !== -1)                {                    var height = $(li).getHeight();                    var spanBottom = li.getElementsByTagName("span")[li.getElementsByTagName("span").length-1];                    spanBottom.style.bottom = "auto";                    spanBottom.style.top = (height-14)+"px";                }            }                        var last = $("tarifs").contentWindow.document.getElementsByTagName("span").length-1;            var span = $("tarifs").contentWindow.document.getElementsByTagName("span")[last];                if(span.className.search(/extra-bottom/) !== -1)                {                    var height = $("tarifs").getHeight();                    span.style.bottom = "auto";                    span.style.top = (height-14)+"px";                }        }  },  /**   * Gère les clics sur les onglet de la page   * L'iframe correspondant à l'onglet n'est pas rechargée si l'onglet est déjà sélectionné   */  tabClickControl: function()  {        if($("multirates_tabs")) {        for (var i = $("multirates_tabs").getElementsByTagName("a").length - 1; i >= 0; i--)        {          Event.observe(            $("multirates_tabs").getElementsByTagName("a")[i],            "click",            function(e)            {              if(!e.target && e.srcElement)/* Débuggage IE */              {                e.target = e.srcElement;              }              if(e.target.nodeName != "A")              {                    return;              }              var urlParts = e.target.href.split("?");              var params = urlParts[1].split("&");              var iframeAlreadyLoaded = true;              for (var j = params.length - 1; j >= 0; j--)              {                var paramData = params[j].split("=");                if(MultiRates.getTarifsIframeParam(paramData[0]) != paramData[1])                {                  iframeAlreadyLoaded = false;                }                if(paramData[0] == "type")                {                  MultiRates.tab_type = paramData[1];                }              };              if(iframeAlreadyLoaded === true)              {                Event.stop(e);              }            }          );        };    }  },  /**   * Lors du chargement de l'iframe, ajoute la classe "current" à l'onglet correspondant (pour mise en avant)   */  bindActiveTabAndContent: function()  {      var tabs = $("multirates_tabs").immediateDescendants("LI");    if(MultiRates.isTarifsIframeLoaded() === false)    {      tabs[0].className = "current";      tabs[1].className = "";    }    else    {      switch(MultiRates.getTarifsIframeParam('type'))      {        case 'packages':          tabs[0].className = "";          tabs[1].className = "current";          break;        case 'nopackages':        default:          tabs[0].className = "current";          tabs[1].className = "";          break;      }    }  },  /**   * Redimensionnement de l'iframe sous les onglets en fonction du contenu pour éviter les ascenseurs     */adaptTabIframeForContentHeight: function()  {    if(MultiRates.isTarifsIframeLoaded() === false)    {      return;    }        var height = $("tarifs").contentWindow.document.getElementsByTagName("body")[0].clientHeight;        $("tarifs").style.height = (height+10)+"px";        if(navigator.userAgent.search(/MSIE 7/) != -1 )    {        var height = $("tarifs").contentWindow.document.getElementsByTagName("body")[0].clientHeight;        $("tarifs").style.height = (height+10)+"px";    }    if(navigator.userAgent.search(/MSIE 6/) != -1 && navigator.userAgent.search(/opera/) == -1)    {            var last = $("tarifs").contentWindow.document.getElementsByTagName("span").length-1;            var span = $("tarifs").contentWindow.document.getElementsByTagName("span")[last];                if(span.className.search(/extra-bottom/) !== -1)                {                    var height2= $("tarifs").getHeight();                    span.style.bottom = "auto";                    span.style.top = (height2)+"px";                }    }        if(navigator.userAgent.search(/Safari/) != -1 )    {            var last = $("tarifs").contentWindow.document.getElementsByTagName("span").length-1;            var span = $("tarifs").contentWindow.document.getElementsByTagName("span")[last];                if(span.className.search(/extra-bottom/) !== -1)                {                    var height= $("tarifs").getHeight();                    span.style.bottom = "auto";                    span.style.top = (height-10)+"px";                }    }      },  /**   * Gère le texte à afficher dans l'iframe en fonction de l'onglet sélectionné   */  switchDisplayInTarifIframe: function()  {    if(MultiRates.isTarifsIframeLoaded() === false)    {      return;    }    $("tarifs").contentWindow.$("sort-"+MultiRates.getTarifsIframeParam('sort')).checked = true;    Event.observe(      $("tarifs").contentWindow.$("sort-tariff"),      "click",      function()      {         MultiRates.dealSorter(this);      }.bind($("tarifs").contentWindow.$("sort-tariff"))    );    Event.observe(      $("tarifs").contentWindow.$("sort-price"),      "click",      function()      {         MultiRates.dealSorter(this);      }.bind($("tarifs").contentWindow.$("sort-price"))    );    var currentTab = MultiRates.getTarifsIframeParam('type');    $("tarifs").contentWindow.document.getElementsByTagName("body")[0].className = currentTab;    switch(currentTab)    {      case "packages":        $("tarifs").contentWindow.$("nopackages").style.display = "none";        break;      case "nopackages":      default:        $("tarifs").contentWindow.$("packages").style.display = "none";        break;    }  },  /**   * Indique si l'iframe a déjà été chargée (ce n'est pas le cas lors du chargement initial de la page)   *    * @return boolean    */  isTarifsIframeLoaded: function()  {    if($("tarifs")) {        if($("tarifs").contentWindow.location.href == "about:blank")        {          return false;        }        return true;    }  },  /**   * Permet de récupérer l'ensemble des paramètres passés à l'iframe   *    * @return object    Objet contenant toute les paire pamètres / valeur présents dans l'url   */  getTarifsIframeParams: function()  {    if(MultiRates.isTarifsIframeLoaded() === false)    {      throw new Error("iframe not loaded");    }    var base_document = $("tarifs").contentWindow;    var portions = base_document.location.href.split("?");    var params = portions[1].split("&");    var paramList = {};    for (var i = params.length - 1; i >= 0; i--)    {      var paramData = params[i].split("=");      paramList[paramData[0]] = paramData[1];    }    return paramList;  },  /**   * Permet de récupérer la valeur d'un paramètre passé à l'iframe par son param   *    * @param  paramName Nom du paramètre à récupérer   * @return mixed    Contient la valeur correspondant au paramètre demandé (null si paramètre absent)   */  getTarifsIframeParam: function(paramName)  {    if(MultiRates.isTarifsIframeLoaded() === false)    {      throw new Error("iframe not loaded");    }    var base_document = $("tarifs").contentWindow;    var portions = base_document.location.href.split("?");    var params = portions[1].split("&");    for (var i = params.length - 1; i >= 0; i--)    {      var paramData = params[i].split("=");      if(paramData[0] == paramName)      {        return paramData[1];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -