var params='';
var lang;
var url;
function changeCombo(combo,index) {
params="";
loading('loading','search_query');
var q_freetext = document.getElementById('q_freetext').value;
if(q_freetext)params += 'q_freetext='+q_freetext+'&';
var q_tag = document.getElementById('q_tag').value;
if(q_tag)params += 'q_tag='+q_tag+'&';
var type = document.getElementById('type').options[document.getElementById('type').selectedIndex].value;
if(combo.name=='q_type' && !type){updatePage(index);return false}
else if(type)params += 'q_type='+type+'&';
var topic = document.getElementById('topic').options[document.getElementById('topic').selectedIndex].value;
if(combo.name=='q_theme' && !topic){updatePage(index);return false}
else if(topic)params += 'q_theme='+topic+'&';
var venue = document.getElementById('venue').options[document.getElementById('venue').selectedIndex].value;
if(combo.name=='q_venue' && !venue){updatePage(index);return false}
else if(venue)params += 'q_venue='+venue+'&';
updatePage(index);
}
function changeAdvContents(id,index){
var fvalue=document.getElementById(id);
var oldval=document.getElementById(id+'old');
if(fvalue.value && fvalue.value.length>2 && fvalue.value!=oldval.value){
params="";
loading('loading','search_query');
var q_freetext = document.getElementById('q_freetext').value;
if(q_freetext)params += 'q_freetext='+q_freetext+'&';
var type = document.getElementById('type').options[document.getElementById('type').selectedIndex].value;
if(type)params += 'q_type='+type+'&';
var topic = document.getElementById('topic').options[document.getElementById('topic').selectedIndex].value;
if(topic)params += 'q_theme='+topic+'&';
var q_tag = document.getElementById('q_tag').value;
if(q_tag)params += 'q_tag='+q_tag+'&';
updatePage(index);
}
}
function updatePage(index){
if(index){
var myRequest = new ajaxObject('/component/query/index-ajax.jhtml', processFirstTabData ,'search_query');
myRequest.update(params,'GET');
}else{
var myRequest = new ajaxObject('/component/query/advanced-ajax.jhtml', processFirstTabData ,'search_query');
myRequest.update(params,'GET');
myRequest = new ajaxObject('/component/query/small-ajax.jhtml', processData,'small_query');
myRequest.update(params,'GET');}
}
function getParams(){
return params;
}
function getY( oElement ){var iReturnValue = 0;while( oElement != null ) {iReturnValue += oElement.offsetTop;oElement = oElement.offsetParent;}return iReturnValue;} function getX( oElement){var iReturnValue = 0;while( oElement != null ){iReturnValue += oElement.offsetLeft;oElement = oElement.offsetParent;}return iReturnValue;}
function loading(load,container,width) {
var loading = document.getElementById(load);
var data = document.getElementById(container);
if(loading && data){
loading.style.height = data.offsetHeight+'px';
loading.style.left = getX(data) + 'px';
loading.style.top = getY(data) + 'px';
if(width)loading.style.width= width;
else loading.style.width= data.offsetWidth+'px';
loading.style.display = 'block';}
}
function processFirstTabData(responseText, responseStatus,responseXML,container) {
if (responseStatus==200) {
document.getElementById(container).innerHTML = responseText;
buildcombo();
} else {
}
}
var map;
var geocoder;
var baseIcon;
var gmarkers=[];
var accomarkers=[];
var bounds;
var autoadjust=false; var checkresize=false;
var changeUrl=true;
function load() {
if(document.getElementById("map")){
map = new google.maps.Map2(document.getElementById("map"));
var customUI = map.getDefaultUI();
map.setUI(customUI);
if(changeUrl==true){
url='/component/map/advanced-ajax.jx?map_height='+map.getSize().height+'&map_width='+map.getSize().width;
}
geocoder = new google.maps.ClientGeocoder();
map.setCenter(new google.maps.LatLng(20.00, 0.0), 2);
var mt = map.getMapTypes();
for (i=0; i < mt.length; i++) {
mt[i].getMinimumResolution = function() {return 2;}
}
map.setMapType(G_HYBRID_MAP) ;
google.maps.Event.addListener(map, "zoomend",
function() { zoomed(); }
);
google.maps.Event.addListener(map, "dragend",
function() { moveed(); }
);
baseIcon = new google.maps.Icon();
baseIcon.iconAnchor = new google.maps.Point(9, 20);
baseIcon.infoWindowAnchor = new google.maps.Point(9, 2);
baseIcon.infoShadowAnchor = new google.maps.Point(18, 25);
}
}
function processMapData(responseText, responseStatus,responseXML) {
var count = 0;var sincol='FF5A00';
if(typeof(markercoloursin) !== 'undefined' && markercoloursin) sincol=markercoloursin;
if (responseStatus==200) {
var mapnode = responseXML.documentElement.getElementsByTagName("map").item(0);
bounds = new GLatLngBounds();
if(mapnode.getElementsByTagName("point").item(0)){
var point = mapnode.getElementsByTagName("point");
for (var i = 0; i < point.length; i++) {
var cnt = getInnerText(point[i].getElementsByTagName("count").item(0));
var lat = getInnerText(point[i].getElementsByTagName("latitude").item(0));
var lng = getInnerText(point[i].getElementsByTagName("longitude").item(0));
var opt = "<p> There Are <b>"+cnt+"</b> Accommodations in this region</p>"
var loct = new GLatLng(lat,lng);
var marker = cm_createMarker(loct,cnt,opt,0,issmallmap);
map.addOverlay(marker);
bounds.extend(loct);
gmarkers.push(marker);accomarkers.push(marker);bounds.extend(loct);
count=count+cnt*1;
}
}
if(mapnode.getElementsByTagName("accommodation").item(0)){
var point = mapnode.getElementsByTagName("accommodation");
for (var i = 0; i < point.length; i++) {
var lat = getInnerText(point[i].getElementsByTagName("latitude").item(0));
var lng = getInnerText(point[i].getElementsByTagName("longitude").item(0));
var info = getInnerText(point[i].getElementsByTagName("info").item(0));
new AccoMarker("1", info, lat,lng,'/component/map/icons/marker.png?c='+sincol,issmallmap,(typeof accotitle != 'undefined')?accotitle:"Accommodation(s)");
count=count+1;
}
}
if(autoadjust){
if(map.getBoundsZoomLevel(bounds) >= 16) map.setZoom(16); else map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());autoadjust=false;}
if(checkresize){ map.checkResize(); checkresize=false;}
if(document.getElementById('loading'))
document.getElementById('loading').style.display='none';
if(document.getElementById('accocount')) document.getElementById('accocount').innerHTML=count;
} else {}
}
function cm_createMarker(point, title, html, rank,issmallmap) {
var iconm = new GIcon(); var zoom=1;var col='FF8A00';var colact = 'FF0000';
if(typeof(markercolour) !== 'undefined' && markercolour) col=markercolour; if(typeof(markercolouract) !== 'undefined' && markercolouract) colact=markercolouract; if(issmallmap) zoom=0.7;
var imgsize=findImageSize(title);
iconm.image='/component/map/icons/marker.png?c='+col+'&zoom='+zoom+'&w='+imgsize;iconm.iconAnchor = new GPoint(16, 16);
var widt;var heigh;
if(issmallmap){widt=-20+findOff(title);heigh=-12}
else{widt=-16+findOff(title);heigh=-11}
var markerOpts = {};
var accotitlelab = (typeof accotitle != 'undefined')?accotitle:"Accommodation(s)";
markerOpts = {"icon": iconm, "clickable": true, "title": title +" "+ accotitlelab, "labelText": title, "labelOffset": new GSize(widt, heigh)};
var newPoint = point;var marker = new LabeledMarker(newPoint, markerOpts);
google.maps.Event.addListener( marker, "click", function() {map.setCenter( point, map.getZoom() + 1 );
if(typeof articlemap != 'undefined' && articlemap){triggerMove();}
});
GEvent.addListener(marker, "mouseover", function() { marker.setImage('/component/map/icons/marker.png?c='+colact+'&zoom='+zoom+'&w='+imgsize); });
GEvent.addListener(marker, "mouseout", function() { marker.setImage('/component/map/icons/marker.png?c='+col+'&zoom='+zoom+'&w='+imgsize); });
GEvent.addListener(marker, "infowindowclose", function() { marker.setImage('/component/map/icons/marker.png?c='+col+'&zoom='+zoom+'&w='+imgsize); });
return marker;
}
function findImageSize(count){ if(count<100) { return '1'; }else if(count<1000) {return '7';} else return '10';}
function findOff(count){if(count<10) return -4; else if(count<100) return -3;if(count<1000) return -1; else return 0;}
function zoomed(){
if(!autoadjust){ for (var i=0;i<gmarkers.length;i++) { map.removeOverlay(gmarkers[i]); }
gmarkers=[];accomarkers=[];
var center = map.getCenter(); var span = map.getBounds().toSpan(); var zoom = map.getZoom();var latlngparams='';
if(zoom>2){ latlngparams = "longMin="+map.getBounds().getSouthWest().lng()+"&longMax="+map.getBounds().getNorthEast().lng();
latlngparams += "&latMin="+map.getBounds().getSouthWest().lat()+"&latMax="+map.getBounds().getNorthEast().lat(); if(getParams())latlngparams+='&' }
var myRequest = new ajaxObject(url, processMapData); myRequest.update(latlngparams+getParams(),'GET'); } }
function moveed(){
if(!autoadjust){
triggerMove();
}
}
function triggerMove(){
for (var i=0;i<gmarkers.length;i++) {
map.removeOverlay(gmarkers[i]);
}
gmarkers=[];
accomarkers=[];
var center = map.getCenter();
var span = map.getBounds().toSpan();
var zoom = map.getZoom();
var latlngparams='';
if(zoom>2){
latlngparams = "longMin="+map.getBounds().getSouthWest().lng()+"&longMax="+map.getBounds().getNorthEast().lng();
latlngparams += "&latMin="+map.getBounds().getSouthWest().lat()+"&latMax="+map.getBounds().getNorthEast().lat();
if(getParams())latlngparams+='&'
}
var myRequest = new ajaxObject(url, processMapData);
myRequest.update(latlngparams+getParams(),'GET');
}
var issmallmap=false;
function loadwithoutcontrols() {
issmallmap=true;
map = new google.maps.Map2(document.getElementById("map"));
url='/component/map/advanced-ajax.jx?map_height='+map.getSize().height+'&map_width='+map.getSize().width;
geocoder = new google.maps.ClientGeocoder();
map.setCenter(new google.maps.LatLng(20.00, 0.0), 0);
map.setMapType(G_HYBRID_MAP) ;
google.maps.Event.addListener(map, "zoomend",
function() { zoomed(); }
);
google.maps.Event.addListener(map, "dragend",
function() { moveed(); }
);
map.addControl(new google.maps.SmallZoomControl());
baseIcon = new google.maps.Icon();
baseIcon.iconAnchor = new google.maps.Point(5, 20);
baseIcon.infoWindowAnchor = new google.maps.Point(9, 2);
baseIcon.infoShadowAnchor = new google.maps.Point(18, 25);
if(document.getElementById('link')){
var str = document.getElementById('link').value;
if(str.indexOf('?')>0)params = str.substring(str.indexOf('?')+1);
autoadjust=true;
var myRequest = new ajaxObject(str, processMapData);
myRequest.update('','GET');
}
else if(document.getElementById('latitude') && document.getElementById('longitude')){
bounds = new GLatLngBounds();
autoadjust=true;
if(document.getElementById('latitude').value && document.getElementById('longitude').value){
var pro = new AccoMarker("1", document.getElementById('address').innerHTML, document.getElementById('latitude').value,document.getElementById('longitude').value,null,null,(typeof accotitle != 'undefined')?accotitle:"Accommodation(s)");
map.setCenter(pro.location,15);}
else{
showAddress(document.getElementById('address').innerHTML);
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());
}
}
}
function mapSearch(button){
params="";
autoadjust=true;
loading('loading','map');
var q_freetext = document.getElementById('q_freetext').value;
if(q_freetext) params += 'q_freetext='+q_freetext+'&';
var q_timemin = document.getElementsByName('q_timemin')[0].value;
if(q_timemin) params += 'q_timemin='+q_timemin+'&';
var q_timemax = document.getElementsByName('q_timemax')[0].value;
if(q_timemax) params += 'q_timemax='+q_timemax+'&';
var q_persons = document.getElementById('q_persons').value;
if(q_timemax) params += 'q_persons='+q_persons+'&';
params +='1=1';
for (var i=0;i<gmarkers.length;i++) {
map.removeOverlay(gmarkers[i]);
}
gmarkers=[];
accomarkers=[];
var myRequest = new ajaxObject(url, processMapData);
myRequest.update(getParams(),'GET');
button.disabled=false;
}
function getSimpleQueryMap(p,_url){
params = p;
autoadjust=true;
changeUrl=false;
url=_url;
loading('loading','map');
params +='1=1';
for (var i=0;i<gmarkers.length;i++) {
map.removeOverlay(gmarkers[i]);
}
gmarkers=[];
accomarkers=[];
var myRequest = new ajaxObject(url, processMapData);
myRequest.update(getParams(),'GET');
}
function showAddress(add) {
geocoder.getLatLng(
add,
function(point) {
if (point) {
new AccoMarker("1",add,point.lat(),point,lng(),null,null,(typeof accotitle != 'undefined')?accotitle:"Accommodation(s)");
}
}
);
}
var recentmarker;
function showhovermarker(id){
var ll=document.getElementById('latitude'+id);
var lnn=document.getElementById('longitude'+id);
if(ll && lnn && ll.value && lnn.value && parseInt(ll.value)!=0 && parseInt(lnn.value)!=0){
for (var i=0;i<gmarkers.length;i++) {
map.removeOverlay(gmarkers[i]);
}
recentmarker = new AccoMarker("1", "", ll.value,lnn.value,'/accommodation/icons/acco-add16.png',null,(typeof accotitle != 'undefined')?accotitle:"Accommodation(s)");
}
}
function removehovermarker(){
if(recentmarker){
map.removeOverlay(recentmarker.marker);
gmarkers.pop();
for (var i=0;i<gmarkers.length;i++) {
map.addOverlay(gmarkers[i]);
}
}
}
function addBookmark(e){
var myRequest = new ajaxObject(e.href,processData,"message");
myRequest.update(getParams(),'GET');
return false;
}
function customRange(input) {
var min = new Date(); /*Set this to your absolute minimum date*/var max = new Date(); /*Set this to your absolute max date*/
max.setMonth(max.getMonth() + 36); var dateMin = min; var dateMax = max; /*Set this to your absolute maximum date;*/
var rng = 120; /*Set this to the range of days you want to restrict to*/ var diff = 1; /*Differnece between the dates*/
if (input.id == "timemin" || input.id == "timeminprice")
{
var maxid= input.id=="timemin"?"#timemax":"#timemaxprice";
if ($(maxid).datepicker("getDate") != null)
{
dateMax = $(maxid).datepicker("getDate");
dateMax.setDate(dateMax.getDate() - diff);
dateMin = $(maxid).datepicker("getDate");
dateMin.setDate(dateMin.getDate() - rng);
if (dateMin < min)
{dateMin = min;}}}
else if (input.id == "timemax" || input.id == "timemaxprice")
{
var minid= input.id=="timemax"?"#timemin":"#timeminprice";
if ($(minid).datepicker("getDate") != null)
{
dateMin = $(minid).datepicker("getDate");
dateMin.setDate(dateMin.getDate() + diff);
var rangeMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + rng);
if(rangeMax < dateMax)
{ dateMax = rangeMax; }
}else{ dateMin.setDate(dateMin.getDate() + diff);}}
return {minDate: dateMin, maxDate: dateMax};
}
var tri = {
newajax: {}, newmap: {}, newreviews: {}, page: {}, newsettings: {}, site: {}, newstrings: {}, newui: {},
util: {
initSearchSwap: function(){
$(".input-keyword").each(function(){
var val = $(this).val();
var rel = $(this).attr("rel");
if(val == ""){
$(this).addClass("default");
$(this).val(rel);
}
else if(val != rel){
$(this).removeClass("default");
}
});
$(".input-keyword").focus(function(){
var val = $(this).val();
$(this).removeClass("default");
if($(this).attr("rel") == $(this).val()){
$(this).val("");
}
});
$(".input-keyword").blur(function(){
var val = $(this).val();
$(this).removeClass("default");
if($(this).val() == ""){
$(this).addClass("default");
$(this).val($(this).attr("rel"));
}
});
$('.input-keyword').keyup(function(e){
e = e || window.event;
var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if (keyCode == 13) {
tri.site.searchform.submit(e);
}
});
}
}
};
tri.page.home = {
init: function(){
tri.page.home.initSwapImages();
tri.util.initSearchSwap();
},
initSwapImages: function(){
var swapduration = 8000;
var timeout;
$(window).load(function(){
var layercount = 1;var maxlayercount = 1;
function hideTwo(){
if($('#layer'+(layercount+1)).length>0){
$('#layer'+layercount).fadeOut(1500);
timeout = setTimeout(hideTwo, swapduration);
layercount++;
maxlayercount =layercount;
}else{
$('#layer1').fadeIn(1500)
setTimeout(function(){
for (var i=2;i<maxlayercount;i++) {
$('#layer'+i).css({display:'block'});
}
}, 1501);
timeout = setTimeout(hideTwo, swapduration);
layercount=1;
}
}
timeout = setTimeout(hideTwo, swapduration);
});
}
};
tri.site.searchform = {
submit: function(e){
var formObj = $('form[name=searchform],form[name=refineSearchForm]');
if (e) formObj = $(e.target).parents('form');
var keywords = ($("input[name=q_freetext]", formObj).length > -1) ? $("input[name=q_freetext]", formObj).val() : "";
var defaultMessage = $("input[rel]", formObj).attr("rel");
if ($.trim(keywords) !="" && keywords!=defaultMessage) {
}
else{
$("input[name=q_freetext]", formObj).val("");
}
formObj.submit();
}
};
function chngdisp(layercnt){
var i=2;
for (i=2;i<=layercnt;i++) {
$('#layer'+i).css({display:'block'});
}
}
/*22787->16509*/
