var fixedX = -1;
var fixedY = -1;
var crossobj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear;
var bPageLoaded = false;
var today = new Date();
var dateNow  = today.getDate();
var monthNow = today.getMonth();
var yearNow  = today.getYear();
if (String(yearNow).length < 4) yearNow += 1900;
var bShow = false;
var checkInDate = false;

var ie = document.all;
var dom = document.getElementById;
var ns4 = document.layers;

DocumentRegisterEvents();

/* hides <select> and <applet> objects (for IE only) */
function hideCalElement(elmID, overDiv) {
  if (!ie) return;
  for (i = 0; i < document.all.tags( elmID ).length; i++) {
    obj = document.all.tags(elmID)[i];
    if(!obj || !obj.offsetParent) continue;

    // Find the element's offsetTop and offsetLeft relative to the BODY tag.
    objLeft   = obj.offsetLeft;
    objTop    = obj.offsetTop;
    objParent = obj.offsetParent;

    while (objParent.tagName.toUpperCase() != "BODY") {
      objLeft  += objParent.offsetLeft;
      objTop   += objParent.offsetTop;
      objParent = objParent.offsetParent;
    }

    objHeight = obj.offsetHeight;
    objWidth = obj.offsetWidth;

    if ((overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft);
    else if ((overDiv.offsetTop + overDiv.offsetHeight) <= objTop);
    else if (overDiv.offsetTop >= (objTop + objHeight));
    else if (overDiv.offsetLeft >= (objLeft + objWidth));
    else {
      obj.style.visibility = "hidden";
    }
  }
}

/*
 * unhides <select> and <applet> objects (for IE only)
 */
function showCalElement(elmID) {
  if (!ie) return;
  for (i = 0; i < document.all.tags(elmID).length; i++) {
    obj = document.all.tags(elmID)[i];

    if (!obj || !obj.offsetParent) continue;

    obj.style.visibility = "";
  }
}

if (dom) {
  document.write ("<div id='calendar' class='div-style'>\n");
  document.write ("<table width='140' class='table-style'>\n");
  document.write ("<tr class='title-background-style' >\n");
  document.write ("       <td width='100%'>\n");
  document.write ("       <table width='100%'>\n");
  document.write ("               <tr>\n");
  document.write ("                       <td class='title-style'>\n");
  document.write ("                               <span id='calendar_caption'></span>\n");
  document.write ("                       </td>\n");
  document.write ("               </tr>\n");
  document.write ("               </table>\n");
  document.write ("       </td>\n");
  document.write ("</tr>\n");
  document.write ("<tr>\n");
  document.write ("       <td width='100%' class='body-style'>\n");
  document.write ("               <span id='calendar_content'></span>\n");
  document.write ("       </td>\n");
  document.write ("</tr>");
  document.write ("</table>")
  document.write ("</div>");
}

function hideCalendar() {
  if (crossobj) crossobj.visibility = "hidden";
  showCalElement('SELECT');
  showCalElement('APPLET');
}

function padZero(num) {
  return (num < 10)? '0' + num : num;
}

function constructDate(d,m,y) {
  var shorty = String(y).substr(2, 3);
  sTmp = dateFormat;
  sTmp = sTmp.replace("dd", "<e>");
  sTmp = sTmp.replace("d", "<d>");
  sTmp = sTmp.replace("<e>", padZero(d));
  sTmp = sTmp.replace("<d>", d);
  sTmp = sTmp.replace("mmm", "<o>");
  sTmp = sTmp.replace("mm", "<n>");
  sTmp = sTmp.replace("m", "<m>");
  sTmp = sTmp.replace("<m>", m+1);
  sTmp = sTmp.replace("<n>", padZero(m+1));
  sTmp = sTmp.replace("<o>", monthName[m]);
  sTmp = sTmp.replace("yyyy", y);
  return sTmp.replace("yy", shorty);
}

function closeCalendar() {
  var sTmp;

  hideCalendar();
  ctlToPlaceValue.value = constructDate(dateSelected, monthSelected, yearSelected)
  ctlToPlaceValue.focus();
}

function incMonth () {
  monthSelected++;
  if (monthSelected > 11) {
    monthSelected = 0;
    yearSelected++;
  }
  constructCalendar();
}

function decMonth () {
  monthSelected--;
  if (monthSelected < 0) {
    monthSelected = 11;
    yearSelected--;
  }
  constructCalendar();
}

/*** calendar ***/

function constructCalendar () {
  var dateMessage;
  var startDate = new Date(yearSelected, monthSelected, 1);
  var endDate = new Date(yearSelected, monthSelected+1, 1);
  endDate = new Date(endDate - (24*60*60*1000));
  numDaysInMonth = endDate.getDate();

  var today = new Date;
  var weekDaysSequence, startAt;
  
  var dateFormat = (typeof(__stuffed) == "object" && __stuffed.dateFormat == "us" ? "us" : "euro");
  if (dateFormat == "us") {
  	startAt = 0;
	weekDaysSequence = [6, 0, 1, 2, 3, 4, 5];
  } else {
  	startAt = 1;
  	weekDaysSequence = [0, 1, 2, 3, 4, 5, 6];
  }
	
  datePointer = 0;
  dayPointer = startDate.getDay() - startAt;
  if (dayPointer < 0) dayPointer = 6;

  sHTML = "<table width='100%' border='0' cellpadding='1' cellspacing='1' class='body-style'><tr>";

  for (i = 0; i <= 6; i++) {
    sHTML += "<td width='15' align='center'><B>"+dayName[weekDaysSequence[i]]+"</B></td>"
  }
  sHTML +="</tr><tr>"

  for (var i = 1; i <= dayPointer; i++) {
    sHTML += "<td>&nbsp;</td>";
  }

  var today = new Date();
  today.setHours(0);
  today.setMinutes(0);
  today.setSeconds(0);
  today.setMilliseconds(0);

  var selectedDate = new Date(oyearSelected, omonthSelected, odateSelected, 0, 0, 0, 0);
  for (datePointer = 1; datePointer <= numDaysInMonth; datePointer++) {
    dayPointer++;
    sHTML += "<td width='15' align='center'>";

    var sStyle="normal-day-style"; //regular day

    var currentDate = new Date(yearSelected, monthSelected, datePointer, 0, 0, 0, 0);

    // this appears to be a bug in Date object? It compares 2 dates objects
    // incorrectly when we trying to find if they are equal (==), so we do
    // this deduction thing instead
    if ((currentDate - today) == 0) sStyle = "current-day-style"; 

    //selected day
    if ((currentDate - selectedDate) == 0) sStyle += " selected-day-style"; 

    if (currentDate >= today && currentDate >= checkInDate) {
      sHTML += "<a class='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'>";
    } else {
      sHTML += '<span class="disabled-day-style">';
    }

    sHTML += datePointer;
    if (currentDate >= today && currentDate >= checkInDate) {
      sHTML += "</a>";
    } else {
      sHTML += "</span>"
    }
    if ((dayPointer + startAt) % 7 == startAt) {
      sHTML += "</tr><tr>"
    }
  }

  document.getElementById("calendar_content").innerHTML = sHTML;
  document.getElementById("spanMonth").innerHTML = monthName[monthSelected];
  document.getElementById("spanYear").innerHTML = yearSelected;
}

function popUpCalendar(ctl, ctl2, format, check_in) {
  var leftpos = 0;
  var toppos = 0;

  calendarobj = dom ? document.getElementById("calendar") : ie ? document.all.calendar : document.calendar
  if (calendarobj) {
    calendarobj.onclick = function setbShow() {
      bShow = true;
    }
  }

  if (bPageLoaded) {
    if (crossobj.visibility == "hidden") {
      ctlToPlaceValue = ctl2;
      dateFormat = format;

      formatChar = " "
      aFormat = dateFormat.split(formatChar)
      if (aFormat.length < 3) {
        formatChar = "/";
        aFormat = dateFormat.split(formatChar);
        if (aFormat.length < 3) {
          formatChar = "."
          aFormat = dateFormat.split(formatChar)
          if (aFormat.length < 3) {
            formatChar = "-";
            aFormat = dateFormat.split(formatChar);
            if (aFormat.length < 3) {
               // invalid date format
               formatChar = "";
            }
          }
        }
      }
	  
	  var dateDayIdx, dateMonthIdx, dateYearIdx;

      tokensChanged = 0;
      if (formatChar != "") {
        // use user's date
        aData = ctl2.value.split(formatChar)

        for (i = 0; i < 3; i++) {
          if ((aFormat[i] == "d") || (aFormat[i] == "dd")) {
            dateSelected = parseInt(aData[i], 10);
            tokensChanged++;
			dateDayIdx = i;
          }
          else if ((aFormat[i] == "m") || (aFormat[i] == "mm")) {
            monthSelected = parseInt(aData[i], 10) - 1
            tokensChanged++
			dateMonthIdx = i;
          }
          else if (aFormat[i]=="yy") {
            yearSelected = parseInt(aData[i], 10)
            if (String(yearSelected).length < 4) yearSelected += 2000;
            tokensChanged++
			dateYearIdx = i;
          }
          else if (aFormat[i]=="yyyy") {
            yearSelected = parseInt(aData[i], 10)
            if (String(yearSelected).length < 4) yearSelected += 2000;
            tokensChanged++
			dateYearIdx = i;
          }
          else if (aFormat[i]=="mmm") {
            for (j = 0; j < 12; j++) {
              if (aData[i]==monthName[j]) {
                monthSelected = j;
                tokensChanged++;
				dateMonthIdx = i;
              }
            }
          }
        }
      }
	  
	  // check-in date considered to be in the same format as the original specified date
      if (check_in && check_in.value) {
        var value = check_in.value;
        var dateArray = new Array;
        var j;
        if (value.search('/') != -1) dateArray = value.split('/');
        if (value.search('-') != -1) dateArray = value.split('-');
        if (value.search('\\.') != -1) dateArray = value.split('\\.');
		
		var dateDay, dateMonth, dateYear;
		
		if (monthName && (value.search(' ') != -1)) {
			dateArray = value.split(' ');
		  	for (j = 0; j < 12; j++) {
		  		if (dateArray[dateMonthIdx] == monthName[j]) {
		  			dateArray[dateMonthIdx] = j + 1;
		  			break;
		  		}
		  	}
		}
        if (dateArray.length == 3 && dateArray[dateYearIdx].length == 2) {
          dateArray[dateYearIdx] = String(2000+Number(dateArray[dateYearIdx]));
        }
		
        checkInDate = new Date(dateArray[dateYearIdx], dateArray[dateMonthIdx]-1, dateArray[dateDayIdx], 0, 0, 0, 0);
        checkInDate = new Date(Number(checkInDate) + 24*60*60*1000);
      } else {
        checkInDate = false;
      }
	  
      if ((tokensChanged != 3) || isNaN(dateSelected) || isNaN(monthSelected) || isNaN(yearSelected)) {
        if (checkInDate) {
          dateSelected = checkInDate.getDate();
          monthSelected = checkInDate.getMonth();
          yearSelected = checkInDate.getYear();
          if (String(yearSelected).length < 4) yearSelected += 1900;
        } else {
          dateSelected = dateNow;
          monthSelected = monthNow;
          yearSelected = yearNow;
        }
      }

      odateSelected = dateSelected;
      omonthSelected = monthSelected;
      oyearSelected = yearSelected;

      aTag = ctl;
      do {
        aTag = aTag.offsetParent;
        leftpos += aTag.offsetLeft;
        toppos += aTag.offsetTop;
      } while(aTag.tagName != "BODY");

      crossobj.left = fixedX == -1 ? (ctl.offsetLeft + leftpos)+'px' : fixedX;
      crossobj.top = fixedY == -1 ? (ctl.offsetTop + toppos + ctl.offsetHeight + 2)+'px' : fixedY;
      
      constructCalendar(1, monthSelected, yearSelected);
      crossobj.visibility = (dom||ie) ? "visible" : "show";
      
      hideCalElement('SELECT', document.getElementById("calendar"));
      hideCalElement('APPLET', document.getElementById("calendar"));                   

      bShow = true;
    }
  }
  else {
    DateSelectorInit();
    popUpCalendar(ctl, ctl2, format, check_in);
  }
}

function DateSelectorInit() {
  if (ns4) return;

//  if (!ie) { yearNow += 1900 }

  crossobj = dom ? document.getElementById("calendar").style : ie ? document.all.calendar : document.calendar
  hideCalendar();
  
  monthConstructed = false;
  yearConstructed = false;

  sHTML1 = "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
  sHTML1 += "<tr>\n";
  sHTML1 += "     <td width='5'><span id='spanLeft' class='title-control-normal-style' onclick='javascript:decMonth()'>&laquo;&nbsp;&nbsp;</span></td>\n";
  sHTML1 += "     <td width='100%' align='center'><span id='spanMonth' class='title-control-normal-style'></span>&nbsp;<span id='spanYear' class='title-control-normal-style'></span></td>\n";
  sHTML1 += "     <td width='5'><span id='spanRight' class='title-control-normal-style' onclick='incMonth()'>&nbsp;&nbsp;&raquo;</span></td>\n";
  sHTML1 += "</tr>\n";
  sHTML1 += "</table>\n";

  document.getElementById("calendar_caption").innerHTML  = sHTML1

  bPageLoaded=true
}

function DocumentRegisterEvents() {
  document.onkeypress = function hideCalender_Trap1(event) {
    if (event && event.keyCode == 27) hideCalendar()
  }

  document.onclick = function hideCalender_Trap2() {
    if (!bShow) hideCalendar();
    bShow = false;
  }
}
 
function parseDate (date) {
 if (!date) return false;
 var dateArray = new Array;
 var j;
 if (date.search('/') != -1) dateArray = date.split('/');
 if (date.search('-') != -1) dateArray = date.split('-');
 if (date.search('\\.') != -1) dateArray = date.split('\\.');
 if (monthName && (date.search(' ') != -1)) {
   dateArray = date.split(' ');
   for (j = 0; j < 12; j++) {
     if (dateArray[1]==monthName[j]) {
       dateArray[1] = j+1;
       break;
     }
   }
 }
 if (dateArray.length == 3 && dateArray[2].length == 2) {
   dateArray[2] = String(2000+Number(dateArray[2]));
 }
 return dateArray;
}

function showError(errorId) {
  if (!errorId || !errorsDates || !errorsDates[errorId]) return false;
  var errLayer = document.getElementById('error');
  if (!errLayer) return false;
  
  // we want to write only in 'td' or 'p' tags
  var tagName = errLayer.tagName.toLowerCase();
  if (tagName == 'tr') {
		var children = errLayer.childNodes;
		var foundTd;
		for (var i = 0; i < children.length; i++) {
			if (!children[i].tagName || children[i].tagName.toLowerCase() != 'td') {
				continue;
			}
			foundTd = children[i];
			break;
		}  	
		if (foundTd) {
			foundTd.innerHTML = errorsDates[errorId];
		  errLayer.style.display = '';			
		}
  } else if (tagName == 'p' || tagName == 'td') {
	  errLayer.innerHTML = errorsDates[errorId];
	  errLayer.style.display = '';
  }
}

function hideError() {
  var errLayer = document.getElementById('error');
  if (!errLayer) return false;
  errLayer.style.display = 'none';
}

function initDate(date, type) {
  if (!date) return false;
  
  var dateFormat = 'euro';
  if (typeof(__stuffed) == 'object' && __stuffed.dateFormat) {
	dateFormat = __stuffed.dateFormat;  
  }

  var dateArray = parseDate(date);

  if (dateArray.length != 3) {
    showError('check_'+type+'_wrong_format');
    return false;
  }
  for (var i = 0; i < 2; i++) {
    if (dateArray[i] <= 0 || isNaN(dateArray[i])) {
      showError('check_'+type+'_wrong_format');
      return false;
    }
  }
  
  var dateDay, dateMonth, dateYear;
  if (dateFormat == 'us') {
  	dateDay = dateArray[1];
	dateMonth = dateArray[0];
	dateYear = dateArray[2];
  } else {
  	dateDay = dateArray[0];
	dateMonth = dateArray[1];
	dateYear = dateArray[2];
  }

  if (dateYear.length != 4) {
    showError('check_'+type+'_wrong_format');
    return false;
  }
  if (dateDay > 31) {
    showError('check_'+type+'_wrong_format');
    return false;
  }
  if (dateMonth > 12) {
    showError('check_'+type+'_wrong_format');
    return false;
  }
  var dateObj = new Date(dateYear, dateMonth-1, dateDay);
  if (isNaN(dateObj)) {
    showError('check_'+type+'_not_valid');
    return false;
  }

  var today = new Date();
  today.setHours(0);
  today.setMinutes(0);
  today.setSeconds(0);
  today.setMilliseconds(0);
  if (dateObj < today) {
    showError('check_'+type+'_in_past');
    return false;
  }

  return dateObj;
}

function addNights(form) {
  var checkIn = form.check_in_date.value;
	var dateIn;
  var nights = form.nights.value;
	if (nights == null || isNaN(nights)) {
		return false;
	}
  if (checkIn) {
    dateIn = initDate(checkIn, 'in');
    if (!dateIn) return false;
  }
	if (dateIn && nights) {
      var dateOut = new Date(Number(dateIn) + 1000 * 60 * 60 * 24 * nights);
      var day = dateOut.getDate();
      var month = dateOut.getMonth();
      var year = dateOut.getYear();
      if (String(year).length < 4) year += 1900;
      month += 1;
      if (day < 10) day = '0' + day;
      if (month < 10) month = String('0') + month;
      form.check_out_date.value = day+'/'+month+'/'+String(year).substr(2,3);
	}
	
  hideError();
}

function countNights(form, field) {
  var checkIn = form.check_in_date.value;
  var checkOut = form.check_out_date.value;
  var dateIn;
  var dateOut;

  if (checkIn) {
    dateIn = initDate(checkIn, 'in');
    if (!dateIn) return false;
  }

  if (checkOut) {
    dateOut = initDate(checkOut, 'out');
    if (!dateOut) return false;
  }

  if (dateIn && dateOut) {
    var nights = Math.round((dateOut - dateIn) / 1000 / 60 / 60 / 24);
    if (nights < 1) {
			// additional 2 hours added to fix what appears to be a day time zone problem,
			// when moving to a certain date an hour is lost and 23 hours are added
			// instead of 24, we add 2 additional hours just to be sure
      dateOut = new Date(Number(dateIn) + (1000 * 60 * 60 * 24) + (1000 * 60 * 60 * 2));
      var day = dateOut.getDate();
      var month = dateOut.getMonth();
      var year = dateOut.getYear();
      if (String(year).length < 4) year += 1900;
      month += 1;
      if (day < 10) day = '0' + day;
      if (month < 10) month = String('0') + month;

		var dateFormat = 'euro';
		if (typeof(__stuffed) == 'object' && __stuffed.dateFormat) {
			dateFormat = __stuffed.dateFormat;  
		}

		if (dateFormat == 'us') {
			form.check_out_date.value = month+'/'+day+'/'+String(year).substr(2,3);	
		} else {
			form.check_out_date.value = day+'/'+month+'/'+String(year).substr(2,3);
		}
      
      nights = 1;
    }
    if (field) field.value = nights;
  } else {
    if (field) field.value = 0;
  }

  hideError();
}

// show layer
function sl(id) {
  var obj = document.getElementById(id);
  if (!obj.style) return false;
  obj.style.display = '';
  return false;
}

// hide layer
function hl(id) {
  var obj = document.getElementById(id);
  if (!obj.style) return false;
  obj.style.display = 'none';
  return false;
}

function toggleRooms(max_rooms, max_childs) {
  var form = document.forms.avail;
  var room = form.rooms.value;
  if (!room) return false;
	if (room == 1) {
    hl('room_1_title');
	}
	else {
    sl('room_1_title');
		// show table rows for given room number and below
	  for (r = 2; r <= room; r++) {
	    sl('room_'+r);
	    var child = eval('form.child_'+r+'.value');
	    if (child > 0) {
	      sl('room_'+r+'_child');
	    }
	    if (eval(document.getElementById('room_'+r+'_adults'))) {
	      sl('room_'+r+'_adults');
	    }
	    if (eval(document.getElementById('room_'+r+'_children'))) {
	      sl('room_'+r+'_children');
	    }
	  }
	}
	if (max_rooms > room) {
		// hide table rows and child selects for given room number + 1 and greater
	  for (r = max_rooms; r > room; r--) {
	    hl('room_'+r);
	    hl('room_'+r+'_child');
	    if (eval(document.getElementById('room_'+r+'_adults'))) {
	      hl('room_'+r+'_adults');
	    }
	    if (eval(document.getElementById('room_'+r+'_children'))) {
	      hl('room_'+r+'_children');
	    }
	  }
	}  	
  toggleChild(max_rooms, max_childs);
}                    

function toggleChild(max_rooms,max_childs) {
//  if (!room || !child) return false;
  var form = document.forms.avail;
  for (room = 1; room <= form.rooms.value; room++) {
    var child = eval('form.child_'+room+'.value');
    if (child == 0) {
      hl('room_'+room+'_child');
    }
    else {
	    sl('room_'+room+'_child');
			for (ch = 1; ch <= child; ch++) {
	      sl('r_'+room+'_c_'+ch);
			}
   	}
		if (max_childs > child) {
			for (ch = max_childs; ch > child; ch--) {
	      hl('r_'+room+'_c_'+ch);
			}
		}
  }
  toggleChildForm(max_rooms);
}

function toggleChildForm(max_rooms) {
	if (!max_rooms) return;

  var main_flag = 1;
  for (room = 1; room <= max_rooms; room++) {
  	var r = document.getElementById('room_'+room+'_child');
		var flag = 0;
		if (room == 1) {
			if (r.style.display == 'none') flag = 1;
		}
		else if (!r || r.style.display == 'none') {
			flag = 1;
		}
		main_flag = main_flag && flag;
  }
  if (main_flag) {
    hl('child_numbers');
  } else {
    sl('child_numbers');
  }
}
/**
 * jQuery Lightbox
 * Version 0.5 - 11/29/2007
 * @author Warren Krewenki
 **/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9($){7 g;$.5.4=9(a){g=$.3n({},$.5.4.2E,a);$.5.4.2j();H G.1P(9(){$(G).J(9(){$(G).4.1G(G);H u})})};$.5.4.2j=9(){$(\'#M\').2B();$(\'#4\').2B();g.13=u;7 a=\'<k l="R"><k l="31"><1y l="1d"><k l="1B"><a D="16://" O="\'+g.w.1n+\'" l="1m"></a><a D="16://" l="1k" O="\'+g.w.1C+\'"></a></k><k l="1c"><a D="16://" l="2D"><1y W="\'+g.2r+\'"></a></k></k></k>\';7 b=\'<k l="12" 38="36"><k l="Z"><k l="34"><S l="23"></S><S l="21"></S></k><k l="2Y">\';6(g.2m)b+=\'<S l="2T">\'+g.w.1R+\'</S>\';b+=\'<a D="16://" l="1O" O="\'+g.w.1N+\'"><1y W="\'+g.1L+\'"></a></k></k></k>\';7 c;6(g.1J){c=\'<k l="M"></k><k l="4">\'+b+a+\'</k>\';$("s").1H(c);$("#12").2L(\'2K\')}r{c=\'<k l="M"></k><k l="4">\'+a+b+\'</k>\';$("s").1H(c)}$("#M").J(9(){$.5.4.U()}).t();$("#4").J(9(){$.5.4.U()}).t();$("#2D").J(9(){$.5.4.U();H u});$("#1O").J(9(){$.5.4.U();H u});$(\'#R\').A(g.T).y(g.14);$(\'#12\').A(g.T)};$.5.4.1i=9(){7 a,v;6(V.1f&&V.2z){a=V.2x+V.3g;v=V.1f+V.2z}r 6(h.s.2A>h.s.1A){a=h.s.3b;v=h.s.2A}r{a=h.s.2k;v=h.s.1A}7 b,K;6(Q.1f){6(h.C.19){b=h.C.19}r{b=Q.2x}K=Q.1f}r 6(h.C&&h.C.1x){b=h.C.19;K=h.C.1x}r 6(h.s){b=h.s.19;K=h.s.1x}6(v<K){1t=K}r{1t=v}6(a<b){1s=a}r{1s=b}7 c=B 11(1s,1t,b,K);H c};$.5.4.28=9(){7 a,v;6(Q.25){v=Q.25;a=Q.30}r 6(h.C&&h.C.1u){v=h.C.1u;a=h.C.20}r 6(h.s){v=h.s.1u;a=h.s.20}7 b=B 11(a,v);H b};$.5.4.1z=9(a){7 b=B 1X();7 c=1o;2W{c=B 1X()}2G(c-b<a)};$.5.4.1G=9(a){$("1T, 1S, 2s").t();7 b=$.5.4.1i();$("#M").t().2p({A:\'1h%\',y:b[1]+\'1q\',2O:g.1M}).1Q();g.m=[];18=0;7 c=h.2N(a.2M);6(!a.15||(a.15==\'\')){g.m.1I(B 11(a.D,g.1p?a.O:\'\'))}r{$("a").1P(9(){6(G.D&&(G.15==a.15)){g.m.1I(B 11(G.D,g.1p?G.O:\'\'))}});1Z(i=0;i<g.m.I;i++){1Z(j=g.m.I-1;j>i;j--){6(g.m[i][0]==g.m[j][0]){g.m.2J(j,1)}}}2G(g.m[18][0]!=a.D){18++}}7 d=$.5.4.28();7 e=d[1]+(b[3]/10);7 f=d[0];$(\'#4\').2p({3m:e+\'1q\',3l:f+\'1q\'}).E();6(!g.1l)$(\'#Z\').t();$.5.4.Y(18)};$.5.4.Y=9(a){6(g.13==u){g.13=1E;g.q=a;$(\'#1c\').E();$(\'#1d\').t();$(\'#1B\').t();$(\'#1m\').t();$(\'#1k\').t();6(g.1l){$(\'#12\').t();$(\'#Z\').t();$.5.1D()}r{$.5.1D()}}};$.5.1D=9(){z=B 1j();z.3k=9(){7 a=z.A;7 b=z.y;6(g.2I){7 c=$.5.4.1i();7 d;7 e=c[2]-2*g.1g;7 f=c[3]-3j;6(z.y>f){a=2H((f/z.y)*z.A);b=f}r 6(z.A>e){b=2H((e/z.A)*z.y);a=e}}$(\'#1d\').3i(\'W\',g.m[g.q][0]).A(a).y(b);$.5.4.2C(a,b)};z.W=g.m[g.q][0]};$.5.4.U=9(){$.5.4.1e();$(\'#4\').t();$(\'#M\').3h();$(\'1T, 2s, 1S\').E()};$.5.4.2w=9(){6((g.m.I-1)>g.q){2v=B 1j();2v.W=g.m[g.q+1][0]}6(g.q>0){2u=B 1j();2u.W=g.m[g.q-1][0]}};$.5.4.2t=9(e){6(e==1o){7 a=3f.2q;7 b=27}r{7 a=e.2q;7 b=e.3e}7 c=3d.3c(a).3a();6((c==\'x\')||(c==\'o\')||(c==\'c\')||(a==b)){$.5.4.U()}r 6((c==\'p\')||(a==37)){6(g.q!=0){$.5.4.1e();$.5.4.Y(g.q-1)}}r 6((c==\'n\')||(a==39)){6(g.q!=(g.m.I-1)){$.5.4.1e();$.5.4.Y(g.q+1)}}};$.5.4.2C=9(a,b){g.T=h.2i(\'R\').2k;g.14=h.2i(\'R\').1A;7 c=(a+(g.1g*2));7 d=(b+(g.1g*2));g.2h=(c/g.T)*1h;g.1K=(d/g.14)*1h;2f=g.T-c;2e=g.14-d;$(\'#12\').1r({A:c},g.17,\'1w\');$(\'#R\').1r({A:c},g.17,\'1w\',9(){$(\'#R\').1r({y:d},g.17,\'1w\',9(){$.5.4.2d()})});6((2e==0)&&(2f==0)){6(2c.35.33){$.5.4.1z(1v)}r{$.5.4.1z(1h)}}$(\'#1m\').y(b);$(\'#1k\').y(b)};$.5.4.2d=9(){$(\'#1c\').t();$(\'#1d\').1Q("32");$.5.4.29();$.5.4.2w();g.13=u};$.5.4.29=9(){6(g.m[g.q][1]){$(\'#23\').26(g.m[g.q][1]).E()}6(g.m.I>1){7 a;a=g.w.F+(g.q+1)+g.w.1F+g.m.I;6((g.q)>0){a=\'<a O="\'+g.w.1n+\'" D="#" l="1b">\'+g.w.1b+"</a>"+a}6((g.q+1)<g.m.I){a+=\'<a O="\'+g.w.1C+\'" D="#" l="1a">\'+g.w.1a+"</a>"}$(\'#21\').26(a).E()}6(g.1l){$("#Z").2Z(g.22)}r{$("#Z").E()}7 b=$.5.4.1i();$(\'#M\').y(b[1]);$.5.4.24()};$.5.4.24=9(){$(\'#1B\').E();6(g.q!=0){$(\'#1m,#1b\').E().J(9(){$.5.4.Y(g.q-1);H u})}6(g.q!=(g.m.I-1)){$(\'#1k,#1a\').E().J(9(){$.5.4.Y(g.q+1);H u})}$.5.4.2b()};$.5.4.2b=9(){h.2a=$.5.4.2t};$.5.4.1e=9(){h.2a=\'\'};$.5.4.2E={2r:\'/1Y/2g/1W/2l/4/1c.1V\',1L:\'/1Y/2g/1W/2l/4/2X.1V\',1M:0.8,1g:10,m:B 11,q:1o,13:u,17:1U,T:1v,14:1v,2h:1,1K:1,1p:1E,1J:u,1l:u,22:1U,2m:u,w:{1R:\' \\2V / P - 2o F\\L\\L\\L\\L\\2U / N - 2n F\\L\\L\\L\\2S / X - 2F F 2y\',1n:\'2o F\',1C:\'2n F\',1b:\'&2R; 2Q\',1a:\'2P &3o;\',1N:\'2F F 2y\',F:\'1j \',1F:\' 1F \'},2I:1E}})(2c);',62,211,'||||lightbox|fn|if|var||function||||||||document|||div|id|imageArray||||activeImage|else|body|hide|false|yScroll|strings||height|imgPreloader|width|new|documentElement|href|show|image|this|return|length|click|windowHeight|u00a0|overlay||title||self|outerImageContainer|span|widthCurrent|end|window|src||changeImage|imageData||Array|imageDataContainer|inprogress|heightCurrent|rel|javascript|resizeSpeed|imageNum|clientWidth|nextLinkText|prevLinkText|loading|lightboxImage|disableKeyboardNav|innerHeight|borderSize|100|getPageSize|Image|nextLink|slideNavBar|prevLink|prevLinkTitle|null|displayTitle|px|animate|pageWidth|pageHeight|scrollTop|250|linear|clientHeight|img|pause|offsetHeight|hoverNav|nextLinkTitle|doChangeImage|true|of|start|append|push|navbarOnTop|yScale|fileBottomNavCloseImage|overlayOpacity|closeTitle|bottomNavClose|each|fadeIn|help|embed|select|350|gif|js|Date|public|for|scrollLeft|numberDisplay|navBarSlideSpeed|caption|updateNav|pageYOffset|html||getPageScroll|updateDetails|onkeydown|enableKeyboardNav|jQuery|showImage|hDiff|wDiff|system|xScale|getElementById|initialize|offsetWidth|jquery|displayHelp|next|previous|css|keyCode|fileLoadingImage|object|keyboardAction|preloadPrevImage|preloadNextImage|preloadNeighborImages|innerWidth|gallery|scrollMaxY|scrollHeight|remove|resizeImageContainer|loadingLink|defaults|close|while|parseInt|fitToScreen|splice|ontop|addClass|tagName|getElementsByTagName|opacity|Next|Previous|laquo|u00a0ESC|helpDisplay|u2192|u2190|do|closelabel|bottomNav|slideDown|pageXOffset|imageContainer|fast|msie|imageDetails|browser|clearfix||class||toLowerCase|scrollWidth|fromCharCode|String|DOM_VK_ESCAPE|event|scrollMaxX|fadeOut|attr|200|onload|left|top|extend|raquo'.split('|'),0,{}))
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 1p=9;8 E(){3.1k=0};E.j.1O=9;E.j.2I=8(){7 a=3.1l();6(a?O:9)};E.j.1l=8(){7 a;5(1f.22){a=p 22()}q 5(1f.1R){a=p 1R("2M.2H")}6 a};E.j.2D=8(a){5(a==o)6 9;3.G=l.L(\'2h\');3.G.14=a;6 3};E.j.1B=8(){5(!3.G||!3.t)6 9;5(!3.G.1i)6 9;7 a=3.G.1i/2;7 b=3.G.1x/2;7 x,y;5(U.1W){x=U.2V;y=U.1W}q 5(l.1b&&l.1b.1q){x=l.1b.1P;y=l.1b.1q}q 5(l.B){x=l.B.1P;y=l.B.1q}5(U.1M){3.t.k.17=((U.1M/2)+x-a)+\'H\';3.t.k.15=((U.2x/2)+y-b)+\'H\'}q{3.t.k.17=((l.B.2t/2)+x-a)+\'H\';3.t.k.15=((l.B.2r/2)+y-b)+\'H\'}5(3.w){7 c=1E(3.t.k.17);3.w.k.17=c+\'H\';3.w.k.15=1E(3.t.k.15)+\'H\';3.w.k.1i=3.t.2n+\'H\';3.w.k.1x=3.t.2k+\'H\'}};E.j.1D=8(){5(!3.G)6 9;5(!3.t){A=l.L(\'A\');A.k.I=\'X\';A.k.2d=\'2b\';A.k.3m=\'3j\';3.t=l.B.29(A,l.B.28);A.27(3.G)}5(3.1O&&!3.w){7 a=l.L("3b");a.14=\'38:;\';a.37=0;a.36="35";a.k.I=\'X\';a.k.2d="2b";a.k.17=\'0\';a.k.15=\'0\';a.k.1i=\'0\';a.k.1x=\'0\';a.34=-1;3.w=l.B.29(a,l.B.28)}3.1B();5(3.w)3.w.k.I=\'\';3.t.k.I=\'\';3.1B()};E.j.20=8(){5(!3.t)6 9;5(3.1k)6 9;3.t.k.I=\'X\';5(3.w)3.w.k.I=\'X\'};E.j.2Z=8(){6 p D(3)};8 D(a){5(!a)6 9;3.Q=a;3.1X=\'2W=\'+2U.2T()*2R;3.N=9;3.1Q=\'2P\'};D.j.2O=8(a){5(a==o)6 9;3.N=a;6 3};D.j.2N=8(a,b){5(a==o)6 9;5(!b||!b.2L(/^(1v|1o)$/i))b=\'1v\';b=b.1K();3.v=3.Q.1l();7 c=3;7 d=p r();3.Q.1k+=1;3.Q.1D();3.v.2C=8(){5(c.v.2A!=4)6;c.Q.1k-=1;c.Q.20();5(c.v.1y==2w){d.1G(c.v)}q{d.1A(c)}};7 e=o;5(3.N)3.1F(3.1Q,3.N);5(b==\'1v\'){7 f=3.1m();5(f){a+=(a.1r(\'?\')==-1?\'?\':\'&\')+f}}q 5(b==\'1o\'){e=3.1m()}a+=(a.1r(\'?\')==-1?\'?\':\'&\')+3.1X;3.v.2q(b,a);5(b==\'1o\'){7 g=\'2p/x-2o-2m-2l\';5(3.N)g+=\'; N=\'+3.N;3.v.2j(\'2i-2g\',g)}3.v.2f(e);6 d};D.j.1F=8(a,b){5(a==o)6 9;5(!3.m)3.m=p Y();5(!3.m[a])3.m[a]=p K();5(b==o){3.m[a]=o}q{3.m[a].W(2e(b))}6 3};D.j.1C=8(b){5(b==o)6\'\';b=b.2c();b=b.1j(/([\\3p-\\3n])/g,8(a){6\'%3l\'+(a.3k(0)&3h).2c(16).1K()});6 3d(b).1j(/\\+/g,"%2B")};D.j.1m=8(a,b){5(!3.m)6 o;7 c=p K();J(a 3c 3.m){5(3.m[a]==o)26;J(i=0;i<3.m[a].u;i++){c.W(a+\'=\'+3.m[a][i])}}5(c.u){6 c.3a(\'&\')}q{6 o}};D.j.39=8(a,b){5(a==o)6 9;3.1g=a;3.24=b};D.j.18=8(a){5(a==o)6 9;7 b=9;5(3.18.P.u>1){b=p Y();J(7 i=1;i<3.18.P.u;i++){b[i-1]=3.18.P[i]}}7 c=p Y();c[\'23\']=a;c[\'Z\']=b;3.1w=c;6 3};8 r(){3.F=9};r.j.1A=8(a){5(!a||!a.v||!a.v.1y)6 9;7 b=a.v;5(a.1w){7 c=a.1w;7 d=11(c.23)(3,c.Z);5(!d)6 3}5(a.1g&&1p==9){7 e=a.24;5(e==o)e=\'33\';7 f=a.1g+(a.1g.1r(\'?\')==-1?\'?\':\'&\');f+=e+\'=\'+a.1C(b.C);1p=O;1f.32.31=f;6 3}5(b.1y==30){1Z("2Y!\\n\\n"+b.C)}q{1Z("2X 1A!\\n\\n"+b.C)}6 3};r.j.1e=8(a,b){5(a.1Y)6 a.1Y(b);5(a.z[b])6 a.z[b].T;5(a.z.1V(b))6 a.z.1V(b).T;6 9};r.j.1G=8(a){3.F=O;3.v=a;3.C=a.C;3.1U=a.1U;3.m=p 1d();7 b=l.L(\'A\');b.V=3.C;7 c=b.1T(\'A\');5(c){J(7 i=0;i<c.u;i++){7 d=c[i];5(!d.z)26;7 e=3.1e(d,\'2S\');7 f=3.1e(d,\'1S\');7 g=3.1e(d,\'12\');5(e==\'2Q\'&&d.z.12){3.m.1s(d.z.12.T,d.V)}q 5(e==\'T\'&&d.z.12){3.m.1s(d.z.12.T,d.z.1S.T)}q 5(e==\'1c\'){5(!3.S)3.S=p K();7 h=l.L(\'1c\');h.1u=d.V;3.S.W(h)}}}3.1t();6 3};r.j.1a=8(a){5(a==o)6 9;7 b=9;5(3.1a.P.u>1){7 b=p Y();J(7 i=1;i<3.1a.P.u;i++){b[i-1]=3.1a.P[i]}}3.R(a,O,b);6 3};r.j.R=8(a,b,c){5(a==o)6 9;5(!3.13)3.13=p K();7 d=p Y();d[\'M\']=a;d[\'1N\']=b;d[\'Z\']=c;3.13.W(d);5(3.F)3.1t();6 3};r.j.1t=8(){5(!3.13)6 9;7 a;25(a=3.13.2K()){5(a.1N){7 b;5(21(a.M)==\'8\'){b=a.M(a.Z)}q{b=11(a.M)(a.Z)}5(b==9)6 3}q{5(21(a.M)==\'8\'){a.M()}q{11(a.M)}}}6 3};r.j.2J=8(){6 3.F};r.j.1L=8(){5(!3.F){3.R(\'3.1L()\');6 3}7 a=l.L("A");a.V=3.C;5(3.S){J(7 i=0;i<3.S.u;i++){3.1n(3.S[i])}}7 b=a.1T(\'1c\');5(!b)6 3;J(i=0;i<b.u;i++){3.1n(b[i])}6 3};r.j.1n=8(a){5(!a)6 9;7 b=/8\\s+([^\\s\\(]+)/2G;5(a.14){7 c=l.L("1c");c.1J=a.1J;c.14=a.14;l.B.27(c)}q 5(a.1u){7 d=a.1u.1j(/^\\s*<!\\-\\-/,\'\').1j(/(\\/\\/)?\\-\\->\\s*$/,\'\');11(d);7 e=O;7 f=p K();25(e){7 e=b.2F(d);5(!e||!e[1])2E;f.W(e[1])}J(7 i=0;i<f.u;i++){1f[f[i]]=11(f[i])}}};r.j.1I=8(a,b){5(a==o)6 9;5(!3.F){3.R(\'3.1I("\'+a+\'", \'+(b?\'O\':\'9\')+\')\');6 3}5(3.C==\'\')6 3;7 c=l.10(a);5(!c)6 3;c.V=3.C;5(b)3.19(a);6 3};r.j.1H=8(a,b,c){5(a==o)6 9;5(!3.F){7 d=\'"\'+a+\'"\'+(b?\', "\'+b+\'"\':\', 9\')+(c?\', O\':\', 9\');3.R(\'3.1H(\'+d+\')\');6 3}7 e=l.10(a);5(!e)6 3;7 f=l.10(b);5(f)f.k.I=\'X\';e.k.I=\'\';e.V=3.C;5(c)3.19(a);6 3};7 1h=p K(\'3e\',\'#3f\',\'#2z\',\'#3g\',\'#2y\',\'#3i\',\'#2v\');r.j.19=8(a,b,c){5(a==o)6 9;5(!3.F){7 d=\'"\'+a+\'"\'+(b?\', "\'+b+\'"\':\'\');3.R(\'3.19(\'+d+\')\');6 3}7 e=l.10(a);5(!e)6 3;5(c==o)c=2u;5(b)1h[0]=b;7 f=1h.u-1;2a("1z(\'"+a+"\', "+f+")",c);6 3};8 1d(){};1d.j.1s=8(a,b){5(a==o)6 9;5(!3.m)3.m=p K();5(!3.m[a])3.m[a]=p K();3.m[a].W(b);6 3};1d.j.2s=8(a){5(a==o||!3.m||3.m[a]==o)6 9;5(3.m[a].u==1){6 3.m[a][0]}q{3.m[a]}};8 1z(a,b){5(a==o)6 9;7 c=l.10(a);5(!c||b==-1)6 9;c.k.3o=1h[b];b-=1;2a("1z(\'"+a+"\', "+b+")",3q)};',62,213,'|||this||if|return|var|function|false||||||||||prototype|style|document|params||null|new|else|StuffedAjaxResponse||loadingDiv|length|xmlhttp|loadingIFrame|||attributes|div|body|responseText|StuffedAjaxRequest|StuffedAjax|complete|loadingImage|px|display|for|Array|createElement|funcName|charset|true|arguments|ajax|addToCache|scripts|value|self|innerHTML|push|none|Object|args|getElementById|eval|ajaxName|cache|src|top||left|setErrorHandler|markElement|execFunction|documentElement|script|StuffedAjaxResponseParams|GetElementAttribute|window|error_url|Color|width|replace|runningRequests|newXMLHttp|getParamsString|__execScript|POST|StuffedAjaxRedirectPerformed|scrollTop|indexOf|__setParam|releaseCache|text|GET|customErrorHandler|height|status|markElementDoFade|error|positionLoading|urlEncode|showLoading|parseInt|setParam|handler|showAndInsertIn|insertIn|type|toUpperCase|runScripts|innerWidth|execFunc|useIFrame|scrollLeft|charsetParamId|ActiveXObject|ajaxValue|getElementsByTagName|responseXML|item|pageYOffset|uniqueRequestParam|getAttribute|alert|hideLoading|typeof|XMLHttpRequest|handlerName|error_param|while|continue|appendChild|firstChild|insertBefore|setTimeout|absolute|toString|position|encodeURIComponent|send|Type|img|Content|setRequestHeader|offsetHeight|urlencoded|form|offsetWidth|www|application|open|clientHeight|getParam|clientWidth|300|ff9|200|innerHeight|ffb|ffd|readyState||onreadystatechange|setLoadingImage|break|exec|gi|XMLHTTP|isAjaxAvailable|isComplete|shift|match|Microsoft|process|setCharset|__SACharset|html|1000|ajaxType|random|Math|pageXOffset|__SARandom|Unknown|Error|request|500|href|location|ajax_error|tabIndex|no|scrolling|frameBorder|javascript|setErrorURL|join|iframe|in|escape|transparent|ffe|ffc|0xFF|ffa|100|charCodeAt|u00|zIndex|xFF|backgroundColor|x90|150'.split('|'),0,{}))
/*

oAjax and sendRequestTo variables should be defined before the code below
is used.

*/

var states = new Object;

function handleVote(args) {
	if (!args) return false;
	var review_id = args[0];
	var response = args[1];
	if (!review_id) return false;
	var r_text = response.responseText;
	if (r_text.search(/^success/) == -1) {	
		alert(r_text);
		return false;	
	}
	showBlock(review_id);
	return true;
}

function showBlock(review_id) {
	if (!review_id) return false;
	var row = document.getElementById('thanks_'+review_id);
	if (!row) return false;
	row.style.display = 'block';
	states[review_id] = true;
}

function hideBlock(review_id) {
	if (!review_id) return false;
	var row = document.getElementById('thanks_'+review_id);
	if (!row) return false;
	row.style.display = 'none';
	states[review_id] = false;	
}

function vote(review_id, yes_or_no) {
	if (!yes_or_no || !review_id ) return false;

	if (states[review_id] == true) {
		hideBlock(review_id);
		return false;
	}	else if (states[review_id] != null) {
		showBlock(review_id);
		return false;
	}
	
	var request = oAjax.request();
	request.setParam('pkg', 'twibo');	
	request.setParam('action', 'hotel_review_vote');
	request.setParam('review_id', review_id);
	request.setParam('yes_or_no', yes_or_no);
	
	var response = request.process(sendRequestTo);	
	response.execFunction("handleVote", review_id, response);
	
	return false;	
}
