var smallMapHeight=220;
var largeMapHeight=350;
var largeMapWidth=700;

function positionMap(_1) {
        var _2=document.getElementById("hotelmap");
        var _3=document.getElementById("hotelmapsm");
        var _4=document.getElementById("hotelmaplg");
        
        _2.style.display="block";
        
        if(_1==null||!_1) {
                isMapSmall=true;
                _3.style.height=smallMapHeight+"px";
                _3.style.display="block";
                _4.style.display="none";
                
                var _5=findPosX(_3);
                var _6=findPosY(_3);
                
                _2.style.top=_6+"px";
                _2.style.left=_5+"px";
                _2.style.width="235px";
                _2.style.height=smallMapHeight+"px";
                
                if(map1!=null){
                        map1.closeInfoWindow();
                        map1.addControl(smallMapControl);
                        map1.removeControl(largeMapControl);
                        map1.removeControl(mapTypeControl);
                }
                try{
                        document.getElementById("showBigLeft").style.display="inline";
                        document.getElementById("hideBigLeft").style.display="none";
                        document.getElementById("showBigRight").style.display="inline";
                        document.getElementById("hideBigRight").style.display="none";
                } catch(ignored){
                }
                
        } else {
                isMapSmall=false;               
                _4.style.height=largeMapHeight+"px";
                _4.style.width="100%"
                _3.style.display="none";
                _4.style.display="block";
                
                var _5=findPosX(_4);
                var _6=findPosY(_4);
                
                _2.style.top=_6+"px";
                _2.style.left=_5+"px";
                _2.style.height=largeMapHeight+"px";
                //largeMapWidth = document.getElementById("datelesssearchbox").offsetParent.offsetWidth - 9;
                //largeMapWidth = document.getElementById("searchUI").offsetParent.offsetWidth - 9;
		// edit by suchi 11Jan2008
		largeMapWidth = "520";
                _2.style.width=largeMapWidth+"px";
                
                if(map1!=null) {
                        map1.removeControl(smallMapControl);
                        map1.addControl(largeMapControl);
                        map1.addControl(mapTypeControl);
                }
                try{
                        document.getElementById("showBigLeft").style.display="none";
                        document.getElementById("hideBigLeft").style.display="inline";
                        document.getElementById("showBigRight").style.display="none";
                        document.getElementById("hideBigRight").style.display="inline";
                }catch(ignored){
                }
        }
        
        redrawMap();
        setHotelDisplayCookie();
}

var map1=null;
var tooltip=null;
var maxIconNum=20;
var isMapSmall=true;
var customZoom=null;
var smallMapControl=new GSmallMapControl();
var largeMapControl=new GSmallMapControl();
var mapTypeControl=new GMapTypeControl();

var baseIcon=new GIcon();
baseIcon.image=www_root+"/img/mapicons/iconr.png";
baseIcon.shadow=www_root+"/img/mapicons/iconshadow.png";
baseIcon.iconSize=new GSize(20,34);
baseIcon.shadowSize=new GSize(37,34);
baseIcon.iconAnchor=new GPoint(9,34);
baseIcon.infoWindowAnchor=new GPoint(9,2);
baseIcon.infoShadowAnchor=new GPoint(18,25);

var landmarkIcon=new GIcon();
landmarkIcon.image=www_root+"/img/mapicons/iconb-point.png";
landmarkIcon.shadow=www_root+"/img/mapicons/iconshadow.png";
landmarkIcon.iconSize=new GSize(20,34);
landmarkIcon.shadowSize=new GSize(37,34);
landmarkIcon.iconAnchor=new GPoint(9,34);
landmarkIcon.infoWindowAnchor=new GPoint(9,2);
landmarkIcon.infoShadowAnchor=new GPoint(18,25);

geocoder = new GClientGeocoder();

var $currLat;
var $currLon;

function getLatLngByAddress(address) {
        geocoder.getLatLng(address,
                function(point) {                       
                        if (!point) {
                                alert(address + " not found");                          
                                $currLat = 0.0;
                                $currLon = 0.0;
                        } else {                                
                                $currLat = point.lat();
                                $currLon = point.lng();                                 
                                //alert($currLat+"gatByAdress Lat");
                                //alert($currLon+"getByAdress Lon");
                        }                       
                }
        );
}

function setLatLngByAddress(address,idx) {
        geocoder.getLatLng(address,
                function(point) {                       
                        if (!point) {                           
                        } else {                                
                                _r[idx]._lat = point.lat();
                                _r[idx]._lon = point.lng();
                        }                       
                }
        );
}


function setCenterByAddress(address,idx)
{       
        geocoder.getLatLng(address,
                function(point) {
                        window.setTimeout(hidemessage,1);
                        if (!point) {
                                alert(address + " not found");                          
                        } else {
                                map1.setCenter(point, 13);
                                _r[idx]._lat = point.lat();
                                _r[idx]._lon = point.lng();
                                var marker = createHotelMarker(point,_r[idx],idx,"r");                                
                                //var marker = createHotelMarker(point,_r[idx].iconindex,idx,"r");                                
                                map1.addOverlay(marker);
                                var _1c=new Object();
                                _1c.overlay=marker;
                                overlaylookup[idx]=_1c;
                                document.getElementById("mapcentertext").innerHTML = _r[idx]._addressLine;
                        }                       
                }
        );
}

var myPoint;
function setStartByAddress(address)
{       
        geocoder.getLatLng(address,
                function(point) {
                        window.setTimeout(hidemessage,1);
                        if (!point) {
                                //alert(address + " not found");
                        } else {                                
                                myPoint = point;
                                $indexLat = point.lat();
                                $indexLng = point.lng();
                                //alert($indexLat);
                                //alert($indexLng);
                                $indexAddressName = address;
                                setTimeout("mySetCenter(myPoint)",1000);                                
                        }                       
                }
        );
}

function mySetCenter(point)
{       
        map1.setCenter(point, 13);
}

var $indexLat;
var $indexLng;
var $indexAddressName;

function initMap(_7,_8,_10){    
        if(GBrowserIsCompatible()) {
                map1=new GMap2(document.getElementById("hotelmap"));
                map1.addControl(smallMapControl);
                //map1.enableDoubleClickZoom();
                
                if (!_7 || !_8) {
                        if (_10) {                              
                                setStartByAddress(_10);                                                         
                        }
                } else {
                        var _9=new GLatLng(_7,_8);
                        map1.setCenter(_9,13);
                        $indexLat = _9.lat();
                        $indexLng = _9.lng();
                        $indexAddressName = (_10 ? _10 : "Unknown Address");
                }       
                
                tooltip=document.createElement("div");
                
                map1.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);
                
                tooltip.style.visibility="hidden";
        }
}

function getBubbleHtml(id,_b){
        var _c="<span class='weak'>(<a target='hoteldetails' href='"+_r[id]._url+"'>details</a>)</span>";
        var _d="";
        var _e="";
        
        _d+="<div style='padding-right: 15px'><b>"+_r[id]._name+"</b>&nbsp;"+_c+"</div>";
        
        if(_r[id]._p.length>0) {
                _e="<b>$"+displayPrice(_r[id]._p[0]._price)+"</b>&nbsp;&nbsp;";
        }
        
        _d+="<div class='addressline'>"+_r[id]._desc.substring(0,80)+"...</div>";
        //_d+="<div class='amenitylist'>"+_e+((_r[id]._rtg>0)?displayRating(_r[id]._rtg):"")+" <img title='"+amenitytitle(id,"internet")+"Internet' src='../img/amenities/a-new-internet"+amenityicon(id,"internet")+".gif'><img title='"+amenitytitle(id,"fitness")+"Fitness Room' src='../img/amenities/a-new-fitness"+amenityicon(id,"fitness")+".gif'><img title='"+amenitytitle(id,"parking")+"Parking' src='../img/amenities/a-new-parking"+amenityicon(id,"parking")+".gif'><img title='"+amenitytitle(id,"pets")+"Pets' src='../img/amenities/a-new-pets"+amenityicon(id,"pets")+".gif'><img title='"+amenitytitle(id,"pool")+"Swimming Pool' src='../img/amenities/a-new-pool"+amenityicon(id,"pool")+".gif'><img title='"+amenitytitle(id,"restaurant")+"Restaurant' src='../img/amenities/a-new-restaurant"+amenityicon(id,"restaurant")+".gif'></div>";
        _d+="<br><a href='"+_r[id]._bookLink+"' target='_blank'>BOOK IT!!!</a>";
        _d+="<div class='bubblelinks'>"+getactionlinks(id,true)+"</div>";
        
        return _d;
}

function createHotelMarker(_f,_10,id,_12){      
        var _13=new GIcon(baseIcon);
        //_13.image=www_root+"/img/mapicons/iconr"+ (id+1) +".png";
        _13.image=www_root+"/img/mapicons/icon"+ _12 + _10 +".png";
//alert(_13.image);
        var _14=new GMarker(_f,_13);
        var _15=id;
        
        GEvent.addListener(_14,"click",function(){
                markerClicked(id);
        });
        
        GEvent.addListener(_14,"mouseover",function() {
                showTooltip(id);
        });
        
        GEvent.addListener(_14,"mouseout",function() {
                tooltip.style.visibility="hidden";
        });
        
        return _14;
}


var overlaylookup=null;

function redrawMap(){
        if(map1!=null) {
                map1.clearOverlays();
                map1.checkResize();  
/*
gs = new GSize(100,  100);
gs = map1.getSize();
    alert(gs.width);
    alert(gs.height);                
*/    
                overlaylookup=new Object();
                
                var max=parseInt(_numrows);
                var _17=0;
                var _18=0;
                var _19=new GLatLngBounds();
                
                for(var p=0;p<pinnedResultList.length;p++) {
                        var _1b=p+1;
                        var _1c=new Object();
                        
                        _1c.resultnum=-1;
                        
                        var i=pinnedResultList[p];
                        
                        if(_r[i].gpoint==null&&_r[i]._lat!=0) {
                                _r[i].gpoint=new GLatLng(_r[i]._lat,_r[i]._lon);
                        }
                        if(_r[i].gpoint!=null) {
                                var _1e=createHotelMarker(_r[i].gpoint,_1b,""+i,"y");
                                _19.extend(_r[i].gpoint);
                                map1.addOverlay(_1e);
                                _1c.overlay=_1e;
                                overlaylookup[i]=_1c;
                        }
                        if(!isNaN(_r[i]._dist)) {
                                try{
                                        if(_r[i]._dist<=250&&_r[i]._dist>0&&_r[i]._dist>_18){
                                                _18=_r[i]._dist;
                                        }
                                }
                                        catch(ignored){
                                }
                        }
                }
                
                if(document.resultUI.onlymapfav==null||document.resultUI.onlymapfav.value=="N") {
                        for(var j=0;j<_filtered.length&&_17<max;j++){
                                if(j>=pageOffsets[_currentPageNum]) {
                                        var _1b=(_17+1);                                        
                                        var _1c=new Object();
                                        _1c.resultnum=j;
                                        var i=_filtered[j];
                                        _r[i].iconindex = _1b;
                                        if(isPinned(i)) {
                                                continue;
                                        }
                                        
                                        if(_r[i]._vs<0) {
                                                continue;
                                        }
                                        
                                        if(_r[i].gpoint==null&&_r[i]._lat!=0&&_r[i]._lat!=0.0){
                                                _r[i].gpoint=new GLatLng(_r[i]._lat,_r[i]._lon);
                                        } else {                                                
                                                setLatLngByAddress(_r[i]._addressLine, i);
                                                if(_r[i].gpoint==null&&_r[i]._lat!=0&&_r[i]._lat!=0.0){
                                                        _r[i].gpoint=new GLatLng(_r[i]._lat,_r[i]._lon);
                                                }
                                        }
                                        if(_r[i].gpoint!=null) {
                                                var _1e=createHotelMarker(_r[i].gpoint,_1b,""+i,"r");
                                                _19.extend(_r[i].gpoint);
                                                map1.addOverlay(_1e);
                                                _1c.overlay=_1e;
                                                overlaylookup[i]=_1c;
                                        }
                                        
                                        if(!isNaN(_r[i]._dist)){
                                                try{
                                                        if(_r[i]._dist<=250&&_r[i]._dist>0&&_r[i]._dist>_18){
                                                        _18=_r[i]._dist;
                                                        }
                                                }
                                                        catch(ignored){
                                                }
                                        }
                                        _17++;
                                }
                        }
                }
                
                var _20=new GLatLng($indexLat, $indexLng);              
                var _21=new GMarker(_20,landmarkIcon);
                                
                _19.extend(_20);
                
                if(customZoom==null||isNaN(customZoom)||customZoom<0) {
                        var _22=_19.getCenter();
                        var _23=map1.getBoundsZoomLevel(_19);
                        map1.setCenter(_22,_23);
                }else{
                        map1.setCenter(_22,customZoom);
                        customZOOM=null;
                }
                
                map1.addOverlay(_21);
                
                /*var _24=(document.getElementById("distanceselect").value-0);
                var _24=null;
                if(_24<100.1) {
                        map1.addOverlay(drawCircle(_20.lng(),_20.lat(),_24,"#cccccc",2,0.8,"#000000",0.15));
                }*/
                
                GEvent.addListener(_21,"mouseover",function(){
                        showLMTooltip($indexAddressName,_21);
                });
                GEvent.addListener(_21,"mouseout",function(){
                        tooltip.style.visibility="hidden";
                });             
        }
}

function recenteronlandmark(){
        if(map1) {
                var _25=new GLatLng($indexLat, $indexLng);
                map1.panTo(_25);
        }
        
}

function centeronhotel(idx,_27){
        showmessage(getUpdateMessage("Wait, GMap is searching a Hotel"));
        if(map1){                               
                if(_r[idx]._lat!=0.0&&_r[idx]._lat!=0) {
                        //alert(_r[idx]._lat+"=lat, "+_r[idx]._lon+"=lon");
                        document.getElementById("mapcentertext").innerHTML = _r[idx]._addressLine;
                        if(isMapSmall){
                                positionMap(true);
                        }
                        //alert(_r[idx]._addressLine);
                        try{
                                document.getElementById(((isMapSmall)?"hotelmapsm":"hotelmaplg")).scrollIntoView();
                        }
                        catch(ignored){
                                alert("error");
                        }
                        var _28=new GLatLng(_r[idx]._lat,_r[idx]._lon);
                        map1.panTo(_28);
                        markerClicked(idx);
                        window.setTimeout(hidemessage,1);
                } else {                        
                        setCenterByAddress(_r[idx]._addressLine, idx);                                          
                }                       
        }       
}

function markerClicked(id){
	if(isMapSmall){
		positionMap(true);
	}
        if(GBrowserIsCompatible()){
                var _2a = (overlaylookup[id] ? overlaylookup[id].overlay : null);
                if(_2a!=null){
                        _2a.openInfoWindowHtml(getBubbleHtml(id,overlaylookup[id].resultnum));
                }
                document.getElementById("mapcentertext").innerHTML = _r[id]._addressLine;
        }
}

function _unloadPageMap(){
        try{
                GUnload();
        }
                catch(ignored){
        }
}

function showTooltip(id){
        var _2c=overlaylookup[id].overlay;
        tooltip.innerHTML="<div class='gmapstooltip'>"+_r[id]._name+"</div>";
        
        var _2d=map1.getCurrentMapType().getProjection().fromLatLngToPixel(map1.fromDivPixelToLatLng(new GPoint(0,0),true),map1.getZoom());
        var _2e=map1.getCurrentMapType().getProjection().fromLatLngToPixel(_2c.getPoint(),map1.getZoom());
        var _2f=_2c.getIcon().iconAnchor;
        var _30=_2c.getIcon().iconSize.width;
        var _31=tooltip.clientHeight;
        
        var pos=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(_2e.x-_2d.x-_2f.x+_30,_2e.y-_2d.y-_2f.y-_31));
        pos.apply(tooltip);
        tooltip.style.visibility="visible";
}

/*function showLMTooltip(id,_34){
        tooltip.innerHTML="<div class='gmapstooltip'>"+_lm[id][0]+"</div>";
        var _35=map1.getCurrentMapType().getProjection().fromLatLngToPixel(map1.fromDivPixelToLatLng(new GPoint(0,0),true),map1.getZoom());
        var _36=map1.getCurrentMapType().getProjection().fromLatLngToPixel(_34.getPoint(),map1.getZoom());
        var _37=_34.getIcon().iconAnchor;
        var _38=_34.getIcon().iconSize.width;
        var _39=tooltip.clientHeight;
        var pos=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(_36.x-_35.x-_37.x+_38,_36.y-_35.y-_37.y-_39));
        pos.apply(tooltip);
        tooltip.style.visibility="visible";
}*/

function showLMTooltip(address,_34){
        tooltip.innerHTML="<div class='gmapstooltip'>"+address+"</div>";
        var _35=map1.getCurrentMapType().getProjection().fromLatLngToPixel(map1.fromDivPixelToLatLng(new GPoint(0,0),true),map1.getZoom());
        var _36=map1.getCurrentMapType().getProjection().fromLatLngToPixel(_34.getPoint(),map1.getZoom());
        var _37=_34.getIcon().iconAnchor;
        var _38=_34.getIcon().iconSize.width;
        var _39=tooltip.clientHeight;
        var pos=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(_36.x-_35.x-_37.x+_38,_36.y-_35.y-_37.y-_39));
        pos.apply(tooltip);
        tooltip.style.visibility="visible";
}

function drawCircle(lng,lat,_3d,_3e,_3f,_40,_41,_42){
        var d2r=Math.PI/180;
        var r2d=180/Math.PI;
        var _45=(_3d/3963)*r2d;
        var _46=_45/Math.cos(lat*d2r);
        var _47=[];
        for(var i=0;i<65;i++){
                var _49=Math.PI*(i/32);
                Cx=lng+(_46*Math.cos(_49));
                Cy=lat+(_45*Math.sin(_49));
                var P=new GPoint(Cx,Cy);
                _47.push(P);
        }
        return new GPolygon(_47,_3e,_3f,_40,_41,_42);
}
// r9compressed

