(function($){var _opciones;$.fn.gtm=function(opciones,args){if($.gtm_activo()){if(typeof opciones=="string"){return eval(opciones)(args)}else{if(typeof _opciones=="undefined"&&typeof opciones!="undefined"){_opciones=opciones}else{click($(this))}}}};$.gtm_activo=function(){return typeof dataLayer!="undefined"};function getVariable(k){for(i=dataLayer.length-1;i>=0;i--){if(typeof dataLayer[i][k]!="undefined"){return dataLayer[i][k]}}}function click(elements){if(typeof $(elements).data("gtm-event")!="undefined"){$(elements).click(function(){var data={};$.each($(this).data(),function(k,v){idx=k.indexOf("gtm");if(idx!=-1){k2=_dataAttr2DataLayer(k);data[k2]=v}});dataLayer.push(data)})}}function scroll(args){data={event:"scroll",eAction:"scroll"+args["percent"],eLabel:getVariable("device"),eValue:args["percent"]};dataLayer.push(data)}function add_room(args){data={event:"Booking",eAction:"add_room",eCategory:"Availability search",eLabel:args["cod_hab"],eValue:"1",dayNumber:_opciones["dayNumber"],checkinDate:_opciones["checkinDate"],checkoutDate:_opciones["checkoutDate"],hotelCode:_opciones["hotelCode"],roomCode:args["cod_hab"],rateCode:args["cod_tar"],penCode:args["cod_pen"],ocupCode:args["cod_ocup"],popleNumber:_peopleNumber(args["cod_ocup"]),roomOffers:args["es_oferta"]?1:0,roomPrice:args["precio"]};dataLayer.push(data)}function add_pack(args){var N=864e5;var checkin=_dateFromString(args["checkinDate"]);var noches=0;if(typeof args["checkoutDate"]!="undefined"){var checkout=_dateFromString(args["checkoutDate"]);noches=Math.round((checkout-checkin)/N)}data={event:"Booking",eAction:"add_pack",eCategory:"Package search",eLabel:args["nombre"],eValue:"1",dayNumber:noches,checkinDate:args["checkinDate"],checkoutDate:args["checkoutDate"],hotelCode:_opciones["hotelCode"],packId:args["id_pack"]};dataLayer.push(data)}function validate_form(args){data={event:"Booking",eCategory:"Confirmation-form",eAction:"validate_form",eLabel:args["id_campo"],eValue:args["error"]?0:1};dataLayer.push(data)}function _dateFromString(dtstr){var dt=dtstr.split("-");return new Date(parseInt(dt[0]),parseInt(dt[1])-1,parseInt(dt[2]))}function _peopleNumber(cod_ocup){return cod_ocup.split("-").reduce(function(prevVal,currVal){return parseInt(prevVal)+parseInt(currVal)})}function _dataAttr2DataLayer(k){k2=k.substring(3);return k2.charAt(0).toLowerCase()+k2.slice(1)}})(jQuery);