function toUpperCase(ctrl){
var text = new String(ctrl.value);
ctrl.value = text.toUpperCase();
}
//Sets the checOutDate with the checkInDate + 1 day
function setCheckOutDate(checkIn,checkOut){
if(checkIn.value!=''&&isValidDate(checkIn.value,'/')){
var date = checkIn.value.substring(0,2);
var month = checkIn.value.substring(3,5);
var year = checkIn.value.substring(6,10);
if(new Date(year,month-1,date)!=null){
checkOut.value=getDateAsString(addDays(new Date(year,month-1,date),1));
}
}
}
function isValidDate (myDate,sep) {
// checks if date passed is in valid dd/mm/yyyy format
if (myDate.length == 10) {
if (myDate.substring(2,3) == sep && myDate.substring(5,6) == sep) {
var date = myDate.substring(0,2);
var month = myDate.substring(3,5);
var year = myDate.substring(6,10);
var test = new Date(year,month-1,date);
if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
reason = '';
return true;
}
else {
reason = 'valid format but an invalid date';
return false;
}
}
else {
reason = 'invalid spearators';
return false;
}
}
else {
reason = 'invalid length';
return false;
}
}
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
//Adds the given number of days to the given date
function addDays(myDate,days) {
//Se agrega una hora por problemas con horario de verano.
//return new Date(myDate.getTime() + days*24*60*60*1000);
var fecha = new Date(myDate.getTime() + days*24*60*60*1000);
fecha = new Date(fecha.getTime()+60*60*1000);
return fecha;
}
//Returns a String with format dd/mm/yyyy
function getDateAsString(date){
dd = date.getDate();
mm = date.getMonth()+1; // 0 based
yy = date.getYear();
if (yy < 1000) yy +=1900; // Y2K fix
if(dd<10)
dd='0'+dd;
if(mm<10)
mm='0'+mm;
return dd+'/'+mm+'/'+yy;
}
//convierte a mayuscula el texto de un objeto
function toUpperCase(obj){
var valor = obj.value;
obj.value = valor.toUpperCase();
}
function getOpcionesIdioma(){
var keyIdioma = new Array();
var idioma = new Array();
var texto = "";
keyIdioma[0]="es_MX";
keyIdioma[1]="en_MX";
if(marcaActual=="CB" || marcaActual=="CP"){
keyIdioma[2]="pt_MX";
}
idioma[0]="Español";
idioma[1]="English";
if(marcaActual=="CB" || marcaActual=="CP"){
idioma[2]="Português";
}
if(idiomaActual=="es_MX") texto="Español";
if(idiomaActual=="en_MX") texto="English";
if(idiomaActual=="pt_MX") texto="Português";
maximo=keyIdioma.length-2;
document.write("");
}
function cambiarURL(idioma){
parametro="idioma=";
url=document.location.href;
if(url.indexOf("/p/")>-1){
url=reemplazar(url,idiomaActual,idioma);
document.location.href=url;
}else{
cambiarIdioma(idioma);
}
}
function conseguirnombre(str)
{
texto = new Array();
var contador=-1;
var variable=1;
texto[0]="showRates.do";
texto[1]="showRateHotelInformation.do";
texto[2]="cambiarIdioma.do";
texto[3]="show_contenido_html.do";
while((contador-1){
texto = texto.replace(de,por);
}
return texto;
}
function cambiarIdioma(idioma){
parametro="idioma=";
url=document.location.href;
if(url.indexOf("?")>-1)pre="&";
else pre="?";
if(url.indexOf(parametro)>-1){
url=url.substring(0,url.indexOf(parametro))+parametro+idioma+url.substring(url.indexOf(parametro)+parametro.length+5);
document.location.href=url;
}
else
document.location.href+=pre+parametro+idioma;
}
var TEMP_ROW_ID = "tempRowId";
var IMAGE_INFO = "imageInfo_";
function AssignPosition(d, x, y, offsetX, offsetY) {
d.style.left = (x+offsetX+4) + "px";
d.style.top = (y+offsetY) + "px";
}
function findPosX(obj)
{
var curleft = 0;
if (obj.offsetParent)
{
while (obj.offsetParent)
{
curleft += obj.offsetLeft
obj = obj.offsetParent;
}
}
else if (obj.x)
curleft += obj.x;
return curleft;
}
function findPosY(obj)
{
var curtop = 0;
if (obj.offsetParent)
{
while (obj.offsetParent)
{
curtop += obj.offsetTop
obj = obj.offsetParent;
}
}
else if (obj.y)
curtop += obj.y;
return curtop;
}
function getDescription(rowId){
var div = 'showPupUp'+rowId;
var image = $(IMAGE_INFO + rowId);
var _x = findPosX(image);
var _y = findPosY(image);
$(TEMP_ROW_ID).value = rowId;
var width = image.width;
var height = image.height;
var dd = document.getElementById(div);
AssignPosition(dd, _x, _y, width, 0);
if(dd.style.display == "none") {
dd.style.display = "";
}
else {
dd.style.display = "none";
}
}
function desaparecer(x){
var div = 'showPupUp'+x;
var dd = document.getElementById(div);
dd.style.display = "none";
}
function showGlobo( rowId ){
var div = 'showPupUp'+rowId;
var dd = document.getElementById(div);
if(dd.style.display=='none'){
dd.style.display = "";
dd.style.visible = "hidden";
var image = $(IMAGE_INFO + rowId);
var image1 = $(IMAGE_INFO + '998' + rowId);
var image2 = $(IMAGE_INFO + '999' + rowId);
var _xy = findPos(image);
var _xy1 = findPos(image1);
var _xy2 = findPos(image2);
var _x = _xy[0] - 50;
//alert('image1 y: ' +_xy2[1]+ ' image2 y: ' + _xy1[1]);
var rest = _xy2[1] - _xy1[1];
//alert('rest:' +rest);
var _y = _xy[1] - rest;
//alert('y: '+_y);
$(TEMP_ROW_ID).value = rowId;
var width = image.width;
var height = image.height;
AssignPosition(dd, _x, _y, width, 0);
dd.style.visible = "show";
}
else{
dd.style.visible = "hidden";
dd.style.display = "none";
}
}
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
function cargarCombos(seccionId){
var urlCombos = 'showCombos.do?seccionId='+seccionId;
new Ajax.Request(urlCombos, {onSuccess:handlerFuncCombos});
}
var errFunc = function(t) {
alert('Error ' + t.status + ' -- ' + t.statusText);
}
var handlerFuncCombos = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
document.getElementById('combos').style.display='block';
document.getElementById("combos").innerHTML=texto;
}
function cargarCombosExcluyentes(seccionId){
var urlCombos = 'showCombosExcluyentes.do?seccionId='+seccionId;
new Ajax.Request(urlCombos, {onSuccess:handlerFuncCombosExcluyentes});
}
var handlerFuncCombosExcluyentes = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
document.getElementById('combosExcluyentes').style.display='block';
document.getElementById("combosExcluyentes").innerHTML=texto;
}
function cargarPartners( comboId ){
var urlPartners = 'showPartners.do?comboId='+comboId;
new Ajax.Request(urlPartners, {onSuccess:handlerFuncPartners});
}
var errFunc = function(t) {
alert('Error ' + t.status + ' -- ' + t.statusText);
}
var handlerFuncPartners = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
document.getElementById('posadasTemplate').style.display='none';
document.getElementById('partners').style.display='block';
document.getElementById("partners").innerHTML=texto;
}
function cargarPartnersExcluyentes( comboId ){
var urlPartners = 'showPartnersExcluyentes.do?comboId='+comboId;
new Ajax.Request(urlPartners, {onSuccess:handlerFuncPartnersExcluyentes});
}
var handlerFuncPartnersExcluyentes = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
document.getElementById('partnersExcluyentes').style.display='block';
document.getElementById("partnersExcluyentes").innerHTML=texto;
}
function validatePartners( formId, validate ){
for(var i=0; i< document.forms.length; i++){
if(document.forms[i].id==formId){
break;
}
}
var auxName = '';
var partnersType = 0;
var checked = 0;
for(var j=0; j< document.forms[i].elements.length; j++){
if(auxName!=document.forms[i].elements[j].name){
partnersType++;
}
auxName=document.forms[i].elements[j].name;
}
for(var j = 0; j< document.forms[i].elements.length; j++ ){
if(document.forms[i].elements[j].checked){
checked++;
}
}
if( (validate == 'S' && checked < partnersType)
|| (validate == 'N' && checked <= 0)
){
document.getElementById('partner_error').style.display='block';
}
else {
document.forms[i].action='showCombosAvailability.do';
document.forms[i].submit();
}
}
var section = '';
function showExtras( typeSection ){
var urlCombos = 'showBuildCustomCombos.do';
new Ajax.Request(urlCombos, {onSuccess:handlerFuncExtras});
if(typeSection=='A'){
section='combos';
}
else{
section='partners';
}
}
var errFunc = function(t) {
alert('Error ' + t.status + ' -- ' + t.statusText);
}
var handlerFuncExtras = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
document.getElementById(section).style.display='block';
document.getElementById(section).innerHTML=texto;
}
function clearCombosForm(formId){
var idxi = 0;
for(var i=0; i< document.forms.length; i++){
//alert(document.forms[i].id);
if(document.forms[i].id==formId){
break;
}
idxi=0;
}
var auxName = '';
var partnersType = 0;
for(var j=0; j< document.forms[idxi].elements.length; j++){
if(document.forms[idxi].elements[j].type=='checkbox' || document.forms[idxi].elements[j].type=='radio'){
auxName=document.forms[idxi].elements[j].name;
if(document.forms[idxi].elements[j].checked && auxName!='optHotel'){
document.forms[idxi].elements[j].checked=false;
}
}
}
document.getElementById('posadasTemplate').style.display='block';
document.getElementById("partnersTemplate").innerHTML='';
document.getElementById('partners').style.display='none';
document.getElementById('partnersTemplate').style.display='none';
//cargarCombos();
}
function showTemplate( partnerId ){
var urlCombos = 'showTemplate.do?partnerId='+partnerId;
new Ajax.Request(urlCombos, {onSuccess:handlerFuncTemplate,onError:errFunc});
}
var errFunc = function(t) {
alert('Error ' + t.status + ' -- ' + t.statusText);
}
var handlerFuncTemplate = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
if(texto.length>1){
document.getElementById('partnersTemplate').style.display='block';
document.getElementById('posadasTemplate').style.display='none';
document.getElementById('partnersTemplate').innerHTML=texto;
}
else{
document.getElementById('posadasTemplate').style.display='block';
document.getElementById('partnersTemplate').style.display='none';
}
}
function showTemplateExcluyentes( partnerId ){
var urlCombos = 'showTemplate.do?partnerId='+partnerId;
new Ajax.Request(urlCombos, {onSuccess:handlerFuncTemplateExcluyentes,onError:errFunc});
}
var handlerFuncTemplateExcluyentes = function(t){
var texto=t.responseText;
texto=texto.substring(texto.indexOf('\">')+2,texto.indexOf(''));
if(texto.length>1){
document.getElementById('partnersTemplate').innerHTML='';
document.getElementById('partnersTemplate').style.display='none';
document.getElementById('transactionBox').style.display='none';
document.getElementById('partnersExcluyentesTemplate').style.display='block';
document.getElementById('partnersExcluyentesTemplate').innerHTML=texto;
}
else{
document.getElementById('partnersExcluyentesTemplate').style.display='none';
}
}
function showHideLayer( id ){
if(document.getElementById(id)){
if(document.getElementById(id).style.display=='none'){
document.getElementById(id).style.display='block';
}
else{
document.getElementById(id).style.display='none';
}
}
}
var errFunc = function(t) {
alert('Error ' + t.status + ' -- ' + t.statusText);
}
var handlerFuncNewSearch = function(t){
showHideLayer( 'transactionBox' );
showHideLayer( 'shoppingCar' );
cambioPais('All');
cargarCombos('1');
}
function showIncludedSupplementsProducts(seccionId,paymentTypePartner){
var urlIncludedSupplements = 'showIncludedSupplementsProducts.do?seccionId='+seccionId+'&paymentTypePartner='+paymentTypePartner;
new Ajax.Request(urlIncludedSupplements,{onSuccess:handlerFuncIncludeSupp});
}
var handlerFuncIncludeSupp = function(t){
var texto = t.responseText;
texto=texto.substring(texto.indexOf('
')+5,texto.indexOf('
')-1);
var element = document.getElementById('seccionIncluded');
texto = texto.replace( RegExp( "[\r\n]{2}", "g" ) , " ");
//alert("::"+texto);
element.innerHTML = texto;
element.style.display='block';
showBoughtProducts();
}
function showSupplementsProductsByCategory( category, allCategories ){
var urlTripSupplements = 'showSupplementsProductsByCategory.do?category='+category;
new Ajax.Request(urlTripSupplements,{onSuccess:handlerFuncTripSupp});
}
var handlerFuncTripSupp = function(t){
var texto = t.responseText;
texto=texto.substring(texto.indexOf('
')+5,texto.indexOf('
')-1);
var element = document.getElementById('seccion1');
texto = texto.replace( RegExp( "[\r\n]{2}", "g" ) , " ");
//alert(texto);
element.innerHTML = texto;
element.style.display='block';
launchJavascript(texto);
}
function closeOther( prefix, thisCategory, allCategories ){
var categories = allCategories.split(",");
for(var i=0; i")+22;
var index2 = texto.indexOf('')+24;
texto = texto.substring(index1,index2);
// alert(texto);
document.getElementById('leftMenu').innerHTML=texto;
document.getElementById('shoppingCar').style.display='block';
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
winName='';
window.open(theURL,winName,features);
}
function showTaxesAndExtras( transactionId, partnerId ){
MM_openBrWindow('showTaxesAndExtras.do?transactionId='+transactionId+'&partnerId='+partnerId,'Taxes And Extras','status=yes,scrollbars=yes,width=310,height=250');
}
function launchJavascript(responseText) {
// RegExp from prototype.sonio.net
var ScriptFragment = '(?:)((\n|.)*?)(?:)';
var match = new RegExp(ScriptFragment, 'img');
var scripts = responseText.match(match);
if(scripts) {
var js = '';
for(var s = 0; s < scripts.length; s++) {
var match = new RegExp(ScriptFragment, 'im');
js += scripts[s].match(match)[1];
}
eval(js);
}
}
function activeAnchorTemplate(){
var anch = (document.getElementById('templateAnchor'));
//alert('::'+anch);
location.href=anch;
}
function isDigit(event){
if ( (event.keyCode < 48) || (event.keyCode > 57 ) )
event.returnValue = false;
}
//Valida si son dígitos, pero esta vez devuelve un flag independiente del evento. Se usa en el método isAlphaOrNumber.
function isValueDigit( event ){
if ( (event.keyCode < 48) || (event.keyCode > 57 ) ){
return false;
}
return true;
}
//Para validar si son solo letras o numeros
function isAlphaOrNumber(value, event, valida){
value = validateTextOfInputTypes(value,valida);
if(!value && isValueDigit(event) ){
value = event.keyCode;
}
return value;
}
function validateTextOfInputTypes(value, valida){
if( value == 193 || value == (193+32) ) //? o ?
value = 65;
else if(value == 201 || value == (201+32)) //? o ?
value = 69;
else if(value == 205 || value == (205+32)) //? o i
value = 73;
else if(value == 211 || value == (211+32)) //? o ?
value = 79;
else if(value == 218 || value == (218+32)) //? o ?
value = 85;
else if(value == 241 ) //?
value = 209;
if (value > 96 && value < 123 ) //a-z
return value-32;
else if (value > 64 && value < 91 || value == 209 || value == 32) //? y espacio
return value;
else if (valida && (value == 35 || value == 44 || value == 45 ||
value == 46 || value == 59 || (value>47 && value<58 ) ) )
return value;
else
return false;
}
//Valida acentos y caracteres especiales de una cadena (type 0).. asi como que se introduzcan solo numero (type 1)
function isValidField(work, type){
var checkOK;
if(type==0)
checkOK = "abcdefghijklmnopqrstuvwxyz"+" "+"ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"0123456789"+"+-()!#$%&=?'{}[]";
else
checkOK ="0123456789";
var checkStr = work;
var allValid = true;
var ch;
var lengthStr = checkStr.length;
var lengthStrOK = checkOK.length;
for (i=0;i= 48 && code <= 57) || (code >= 96 && code <= 105) || code == 8 || code == 9){
return true;
}
return false;
}