var sortBy = 2;
var byPrice = 4;
var curr_default = 1;
var hotelPerPage = 10;
var dataLength = 1;
var priceFromArray = new Array('2', '26', '51', '101', '201', '0');
var priceToArray = new Array('25', '50', '100', '200', '999999', '2');
var starRateArray = new Array('5', '4', '3', '2');
var priceTabArray = new Array();
var starTabArray = new Array();
var hotelArray = new Array();
var hotelFilterArray = new Array();
var hotelSortArray = new Array();
function selectSortBy(sortType) {
location.href = sortType;
}
function clearVariable() {
top.page = 1;
top.alphabet = 'All';
top.price = 0;
top.star = 0;
top.area = 'All';
}
function hotelList(url) {
top.url = url;
var xmlHttp;
try {
xmlHttp=new XMLHttpRequest();
} catch (e) {
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function() {
if(xmlHttp.readyState==4) {
if (xmlHttp.status < 400) {
httext = xmlHttp.responseText;
tempArray=xmlHttp.responseText.split("\n");
top.dataLength = tempArray.length;
for (index = 0; index < top.dataLength; index++) {
top.hotelArray[index] = tempArray[index].split("\t");
}
for (index = 0; index < hotelArray[0].length; index++) {
top.hotelArray[top.dataLength - 1][index] = CRates(2, top.hotelArray[8][index], top.hotelArray[7][index], 0);
}
tabPriceFilter();
tabStarFilter();
setTimeout("divideByPrice(0)", 0);
setTimeout("divideByPrice(1)", 0);
setTimeout("divideByPrice(2)", 0);
setTimeout("divideByPrice(3)", 0);
setTimeout("divideByPrice(4)", 0);
setTimeout("divideByPrice(5)", 0);
}
}
}
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function printStarRating(starRating) {
var text = '';
for (i = 1; i <= Math.ceil(starRating); i++) {
text += '
';
}
return text;
}
function printHead() {
var text = '';
return text;
}
function printTitle() {
var text = '';
return text;
}
function printTable(table, index) {
var text = '';
text += ' ';
text += eval('top.' + table + '[0][' + index + ']').substring(0, 30);
if(eval('top.' + table + '[3][' + index + ']') == 1){
text += '
';
}
if(eval('top.' + table + '[4][' + index + ']') == 1){
text += '
';
}
if(eval('top.' + table + '[5][' + index + ']') == 1){
text += '
';
}
if(eval('top.' + table + '[6][' + index + ']') == 1){
text += '
';
}
//text += ''+CRates(getCurr(), eval('top.' + table + '[8][' + index + ']'), eval('top.' + table + '[7][' + index + ']'), 1);
text += ' ';
return text;
}
function tabPageNo(itemTotal, pageTotal, itemFrom, itemTo, inner) {
if (itemTotal == 0) {
itemFrom = 0;
itemTo = 0;
}
var displayByPageNo = '';
/*displayByPageNo += '
';
displayByPageNo += ' Hotels in All Locations with Approx. Under Range (Under 25 USD)';
displayByPageNo += '
';*/
if(inner == 0){
txtRange = 'Hotels in ' + RangeName + ' with Approx. Under USD 25 Range';
} else if (inner == 1){
txtRange = 'Hotels in ' + RangeName + ' with Approx. USD 25 - USD 50 Range';
} else if (inner == 2){
txtRange = 'Hotels in ' + RangeName + ' with Approx. USD 51 - USD 100 Range';
} else if (inner == 3){
txtRange = 'Hotels in ' + RangeName + ' with Approx. USD 101 - USD 200 Range';
} else if ( inner == 4){
txtRange = 'Hotels in ' + RangeName + ' with Approx. Up USD 201 Range';
} else if (inner == 5){
txtRange = 'If you are interested in the rates for the below hotels, please send in your request.';
}
displayByPageNo += '' + txtRange + '
';
displayByPageNo += '';
displayByPageNo += '';
displayByPageNo += '
';
displayByPageNo += ' Found : ' + itemTotal + ' Hotels';
displayByPageNo += '
';
displayByPageNo += '
';
displayByPageNo += ' Display hotels ' + itemFrom + ' - ' + itemTo + ' of ' + itemTotal;
if (page != 1) {
displayByPageNo += ' ';
displayByPageNo += '
< Previous';
}
if (page != pageTotal && itemTotal != 0) {
displayByPageNo += ' ';
displayByPageNo += '
Next >';
}
displayByPageNo += ' ';
displayByPageNo += '
';
displayByPageNo += '
';
return displayByPageNo;
}
function divideByPageNo(page, inner) {
top.page = page;
var table = '';
var tab = '';
var type = 0;
switch(sortBy) {
case 2 : table = 'hotelFilterArray';
tab = tabPrice();
type = 1;
break;
}
sortProcess(table, type);
var hotelTotal = eval('top.' + table + '[0].length');
//alert(hotelTotal);
var pageTotal = Math.ceil(hotelTotal / hotelPerPage);
var pageMod = hotelTotal % hotelPerPage;
var hotelFrom = (top.page - 1) * hotelPerPage;
var hotelTo = hotelFrom + hotelPerPage;
if (top.page == pageTotal && hotelTotal < hotelTo) {
hotelTo = hotelFrom + pageMod;
}
//alert(hotelFrom);
//alert(hotelTo);
var displayHotelList = printHead() + tabPageNo(hotelTotal, pageTotal, hotelFrom + 1, hotelTo, inner) + printTitle();
displayHotelList += '';
if (hotelTotal != 0) {
if(hotelFrom < Math.ceil((hotelFrom+hotelTo)/2)){
displayHotelList += '- ';
for (index = hotelFrom; index < Math.ceil((hotelFrom+hotelTo)/2); index++) {
displayHotelList += printTable(table, top.hotelSortArray[type][index]);
}
displayHotelList += '
';
}
displayHotelList += '- ';
for (index = Math.floor((hotelFrom + 1 + hotelTo)/2); index < hotelTo; index++) {
displayHotelList += printTable(table, top.hotelSortArray[type][index]);
}
if(hotelTo%2 == 1){
displayHotelList += '';
}
displayHotelList += '
';
}
displayHotelList += '
';
displayHotelList += '';
if( inner == 0){
//prompt(displayHotelList,'');
ListHotel0.innerHTML= /*tab + '
' +*/ displayHotelList /*+ tabPageNo(hotelTotal, pageTotal, hotelFrom + 1, hotelTo)*/;
} else if ( inner == 1){
//prompt(displayHotelList,'');
ListHotel1.innerHTML= displayHotelList;
} else if ( inner == 2){
ListHotel2.innerHTML= displayHotelList;
} else if ( inner == 3){
ListHotel3.innerHTML= displayHotelList;
} else if ( inner == 4){
ListHotel4.innerHTML= displayHotelList;
} else if ( inner == 5){
ListHotel5.innerHTML= displayHotelList;
}
if (sortBy == 2) {
var objectName = deleteLastTab('price');
if (eval('document.getElementById("' + objectName + '")') != null) {
eval(objectName + '.style.display=\'none\'');
}
} else if (sortBy == 3) {
var objectName = deleteLastTab('star');
if (eval('document.getElementById("' + objectName + '")') != null) {
eval(objectName + '.style.display=\'none\'');
}
}
}
function deleteLastTab(table) {
var lastTab = 0;
for (index = 0; index < eval(table + 'TabArray.length'); index++) {
if (eval(table + 'TabArray[index]') == 1) {
lastTab = index;
}
}
return table + lastTab;
}
function tabPriceFilter() {
for (index = 0; index < priceFromArray.length; index++) {
var priceFrom = priceFromArray[index];
var priceTo = priceToArray[index];
var isFound = 0;
var subIndex = 0;
while (subIndex < top.hotelArray[0].length && isFound == 0) {
var hotelMinRate = top.hotelArray[top.dataLength - 1][subIndex];
if (hotelMinRate >= priceFrom && hotelMinRate < priceTo) {
isFound = 1;
}
subIndex++;
}
priceTabArray[index] = isFound;
}
}
function tabPrice() {/*
var priceTitleArray = new Array('100-200 USD', '50-100 USD', '25-50 USD', 'Under 25 USD', '200 USD up');
var divideByPrice = '';
return divideByPrice;*/
}
function divideByPrice(price) {
top.price = price;
var priceFrom = priceFromArray[price];
var priceTo = priceToArray[price];
var hotelTotal = top.hotelArray[0].length;
var hotelListArray = new Array();
var countIndex = 0;
for (subIndex = 0; subIndex < top.dataLength; subIndex++) {
hotelListArray[subIndex] = '';
}
for (index = 0; index < hotelTotal; index++) {
var hotelMinRate = top.hotelArray[top.dataLength - 1][index];
if (hotelMinRate >= priceFrom && hotelMinRate < priceTo) {
for (subIndex = 0; subIndex < top.dataLength; subIndex++) {
hotelListArray[subIndex] += top.hotelArray[subIndex][index] + '\t';
}
countIndex++;
}
}
for (subIndex = 0; subIndex < top.dataLength; subIndex++) {
top.hotelFilterArray[subIndex] = hotelListArray[subIndex].split('\t');
top.hotelFilterArray[subIndex].length = countIndex;
}
if (countIndex != 0) {
divideByPageNo(1, price);
} else {
price++;
if (price < priceFromArray.length) {
divideByPrice(price);
} else {
divideByPageNo(1, price);
}
}
}
function tabStarFilter() {
for (index = 0; index < starRateArray.length; index++) {
var starFrom = Math.floor(starRateArray[index]);
var starTo = starFrom + 1;
var isFound = 0;
var subIndex = 0;
while (subIndex < top.hotelArray[9].length && isFound == 0) {
var hotelStar = top.hotelArray[9][subIndex];
if (hotelStar >= starFrom && hotelStar < starTo) {
isFound = 1;
}
subIndex++;
}
starTabArray[index] = isFound;
}
}
function sortProcess(table, type) {
top.hotelSortArray[type] = new Array();
if (type == 0) {
for (index = 0; index < eval(table + '[0].length'); index++) {
top.hotelSortArray[0][index] = index + '@' + eval(table + '[0][' + index + ']');
}
} else if (type == 1) {
for (index = 0; index < eval(table + '[0].length'); index++) {
top.hotelSortArray[1][index] = index + '@' + CRates(2, eval(table + '[8][' + index + ']'), eval(table + '[7][' + index + ']'), 0);
}
} else if (type == 2) {
for (index = 0; index < eval(table + '[0].length'); index++) {
top.hotelSortArray[2][index] = index + '@' + eval(table + '[9][' + index + ']');
}
}
switch (type) {
case 0 : hotelSortArray[type].sort(sortByAlphabet); // Sort by Hotel name
break;
case 1 : hotelSortArray[type].sort(sortByNumber); // Sort by Price
break;
case 2 : hotelSortArray[type].sort(sortByNumber); // Sort by Star rating
break;
}
for (index = 0; index < hotelSortArray[type].length; index++) {
top.hotelSortArray[type][index] = top.hotelSortArray[type][index].substring(0, top.hotelSortArray[type][index].indexOf('@'));
}
}
function sortByNumber(first, second) {
first = parseFloat(first.substring(first.indexOf('@') + 1));
second = parseFloat(second.substring(second.indexOf('@') + 1));
return (first - second);
}
function sortByAlphabet(first, second) {
first += '';
second += '';
first = first.substring(first.indexOf('@') + 1);
second = second.substring(second.indexOf('@') + 1);
return first>second?1:first