﻿// Scroll div part //
var scrollSteps = 10;
var timer="";

function scrollDiv(id)
{
   
    if( typeof( isMapPage )!='undefined' ) 
    {
        setTimeout(  "window.location = homePageUrl+'?cat="+id.replace("c","")+"'" , 100);
        return false;
    }
    clearTimeout(timer);
    scrollingDiv=document.getElementById("scrolling_div");
    if(document.defaultView && document.defaultView.getComputedStyle(scrollingDiv, '').getPropertyValue("position")!="absolute")
    {
        browserOffset=scrollingDiv.offsetTop;
    }
    else
    {
        browserOffset=0;
    }

    if(scrollingDiv.scrollTop <= document.getElementById(id).offsetTop-scrollSteps-browserOffset)
    {
        scrollingDiv.scrollTop=document.getElementById("scrolling_div").scrollTop+scrollSteps;
        timer=setTimeout("scrollDiv('"+id+"')",10);
        // if bottom of page reached before anchor point
        if(scrollingDiv.scrollTop>(scrollingDiv.scrollHeight-scrollingDiv.offsetHeight)-scrollSteps)
        {
            clearTimeout(timer);
            scrollingDiv.scrollTop=document.getElementById("scrolling_div").scrollHeight-scrollingDiv.offsetHeight;
        }

    }
    else
    {
        if(scrollingDiv.scrollTop >= document.getElementById(id).offsetTop+scrollSteps-browserOffset)
        {
            scrollingDiv.scrollTop=document.getElementById("scrolling_div").scrollTop-scrollSteps;
            timer=setTimeout("scrollDiv('"+id+"')",10);
        }
        else
        {
            clearTimeout(timer);
            scrollingDiv.scrollTop=document.getElementById(id).offsetTop-browserOffset;
        }

    }
    
    return true;

}

function toTop()
{
    scrollingDiv=document.getElementById("scrolling_div");
    clearTimeout(timer);
    if(scrollingDiv.scrollTop >= scrollSteps)
    {
        scrollingDiv.scrollTop=document.getElementById("scrolling_div").scrollTop-scrollSteps;
        timer=setTimeout("toTop()",10);
    }
    else{
        clearTimeout(timer);
        scrollingDiv.scrollTop=0;
    }

}

var SmoData = new Array();

// SMO object //
var smoinfo = { center : null , currentrange : 0 ,count :0   };
var mgr;
// Shows SMO //
function ShowSMO()
{
    map.setZoom(9);
    
    
    smoinfo.center = map.getCenter();
    var bounds = map.getBounds();
    smoinfo.currentrange = GetRangeForCurrentZoom(); // default zone //
    
    GEvent.addListener(map, "moveend", function() {
       LoadMoreSmo(false);
      });
    
    GEvent.addListener(map, "zoomend", function(oldLevel,  newLevel) {
       LoadMoreSmo(newLevel<oldLevel);
      });
    
    MakeSmoDataLoad();
}




function GetRangeForCurrentZoom()
{
    var bnds = map.getBounds();
    var sw = bnds.getSouthWest();
    var center = bnds.getCenter();
    var res = sw.distanceFrom(center)/1000;
    
    return res;
}

// Loads next bunch //
function LoadMoreSmo(force)
{
    smoinfo.currentrange = GetRangeForCurrentZoom();
    MakeSmoDataLoad();
}

function MakeSmoDataLoad()
{
    //
    var centerPoint = map.getCenter();
    var aParams = "&range="+smoinfo.currentrange+"&lat="+centerPoint.lat()+"&long="+centerPoint.lng() ;
    //
    GDownloadUrl(items_url+aParams, function(data, responseCode) 
            {
               
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("smoDataView");
                  for (var i = 0; i < markers.length; i++) 
                                {
                                    var point = new GLatLng(parseFloat(markers[i].getAttribute("Lat")),parseFloat(markers[i].getAttribute("Long"))
                                                 );
                                    if( parseFloat(markers[i].getAttribute("Lat"))<= 0) continue;
                                    var uid = parseInt(markers[i].getAttribute("uid"));
                                                                   
                                                                       
                                    if( typeof(SmoData[uid])=="undefined" )
                                    {
                                        SmoData[parseInt(markers[i].getAttribute("uid"))]=markers[i];
                                        var p_icon = G_DEFAULT_ICON;
                                        if(markers[i].getAttribute("ListingType")=="20") 
                                        {
                                             p_icon = new GIcon();
                                             p_icon.image = "http://showmeontario.com/images/marker_blue.png";
                                             p_icon.shadow = "http://showmeontario.com/images/shadow50.png";
                                             p_icon.shadowSize =new GSize(37, 34);
                                             p_icon.iconSize = new GSize(20, 34);
                                             p_icon.iconAnchor = new GPoint(10, 34 );
                                             p_icon.infoWindowAnchor = new GPoint(10, 34 ); 
                                             
                                        }

                                        if(markers[i].getAttribute("ListingType")=="30") 
                                        {
                                             p_icon = new GIcon();
                                             p_icon.image = "http://showmeontario.com/images/marker_blue.png";
                                             p_icon.shadow = "http://showmeontario.com/images/shadow50.png";
                                             p_icon.shadowSize =new GSize(37, 34);
                                             p_icon.iconSize = new GSize(20, 34);
                                             p_icon.iconAnchor = new GPoint(10, 34 );
                                             p_icon.infoWindowAnchor = new GPoint(10, 34 ); 
                                             
                                        }


                                         if(markers[i].getAttribute("ListingType")=="1") 
                                        {
                                             p_icon = new GIcon();
                                             p_icon.image = "http://showmeontario.com/images/marker_ylw.png";
                                             p_icon.iconSize = new GSize(20, 34);
                                             p_icon.iconAnchor = new GPoint(10, 34 );
                                             p_icon.infoWindowAnchor = new GPoint(10, 34 ); 
                                             
                                        }
                                        map.addOverlay( createMarkerBalloonSmo(parseInt(markers[i].getAttribute("uid")),point,p_icon) );
                                                                              
                                       smoinfo.count++;
                                     
                                    }
                                    

                                  }
                             
                     
                                
          });
          
}



function createMarkerBalloonSmo(uid,point,icon)
{
    var marker = new GMarker(point,icon);
  
    
 GEvent.addListener(marker, "click", function() {
       lastpoint = point;
       showInfoBalloonSmo( uid );
      });
    return marker;    
}

function showInfoBalloonSmo( uid )
{
    // make request //
  //  PageMethods.GetJSONForPoint( uid , OnSucceededSmo, OnFailedSmo);
    info.GetJSONForPoint( uid , OnSucceededSmo, OnFailedSmo);
}

function OnSucceededSmo(result) {
    eval(result);
    var point = new GLatLng( aLat , aLong );
    title = aBusinessName;
    
    text="<div style='font-weight:normal;color:#000;padding-top:5px;'>"+aAddress1+"<br />"+aAddress2+"<br/>"+aPhone;
    if(aListingType>=20)
    {
        if( aPhone2.length > 3 )
        {
        text+=", <span>"+aPhone2+"</span>";
        }
        if( aUrl.length > 3 )
        {
        text+="<div style='height:25px;padding-top:3px;'><a href='"+aUrl+"' target='_blank'><img style='border:none;' src='http://showmeontario.com/images/public/buttons/bizdir/website.gif' /></a></div>";
        }
       
    }
    if( isAdmin )
    {
        text+="<a style='display:block;' href='http://"+window.location.host+aAdmin+"'>Admin</a>";
    }
    text+="</div>";
    showInfoBalloon(point,title,text);
    }

function OnFailedSmo(error) {
   // Alert user to the error.
   alert(error.get_message());
}

function LocateSmo(uid,aLat,aLong)
{
    map.panTo(new GLatLng( aLat, aLong ) );
    showInfoBalloonSmo( uid );
}


if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded(); 