﻿var map;
var mapdata;
var map_mjd;
var mapmode = "itm~close";
var mapicons;
var sv;
var mapshowareas = false;
var pdiv;

function initmap(override) 
{
    mapdata = document.getElementById("mapData").value.split('|');
    if( !map )
    {
        if (GBrowserIsCompatible()) 
        {
            map = new GMap2(document.getElementById("mapctrl"));  
            map.addControl(new GMapTypeControl());
            map.setUIToDefault();
            map.enableGoogleBar();
            map.setCenter(new GLatLng(parseFloat(mapdata[2]),parseFloat(mapdata[3])),parseInt(mapdata[4]));  
            admanager = new GAdsManager(map, 'pub-5349229001447033',  {maxAdsOnMap:5, channel: "2364218894"});
            genmap();
        }
    }
    else
    {
        map.checkResize();
    }
    
    if( override.length > 0)
    {              
        mapmode = override;
        $("#dmopt2 li a").css('font-weight', 'normal');$("#dmopt1 li a").css('font-weight', 'normal');
        $("#dmopt1lbl").html( $('#' + override.split('~')[0]).css('font-weight', 'bold').html());
        $("#dmopt2lbl").html( $('#' + override.split('~')[1]).css('font-weight', 'bold').html());
        genmap();
    }
}  

function mappick(i)
{
    $('.btable tbody tr').removeClass('selected');
    $('#maptr' + i + '').addClass('selected');
 
    for( var x = 1; x < mapicons.length; x++ )
    {
        mapicons[x].setImage('/images/map/iflag_t40.png');
    }

    mapicons[i].setImage('/images/map/iflag.png');
   
    
    return false;
}

function dottedmax( str, max )
{
    if( str.length > max )
    {
        return str.substring(0, max ) + "...";  
    }
    
    return str;
}

function genmap()
{
    var flgIco=new GIcon();
    flgIco.shadow = "/images/map/iflag_s.png";
    flgIco.image = "/images/map/iflag_t40.png";
    flgIco.iconSize = new GSize(35, 35);
    flgIco.shadowSize = new GSize(52, 35);
    flgIco.iconAnchor = new GPoint(20, 34);
    flgIco.infoWindowAnchor = new GPoint(20, 14);
    flgIco.infoShadowAnchor = new GPoint(20, 14); 
    
    $('#dmopt1').slideUp();
    $('#dmopt2').slideUp();  
    $("#mapctrl").fadeOut('fast');
    $("#mapload").html('<div style="padding-top:15px;text-align:center;"><img src="/images/ajax_loading_small.gif" /> Loading... please wait.</div>');
    
    jax_xsend(5, mapdata[6] + "|" + mapmode + "~" + mapshowareas, function(r) 
    { 
        
        admanager.disable();
        map.clearOverlays();
        
        var args = r.split('|');
        //render icons
        var iargs = args[0].split('!');
        $("#mapitems tbody").empty();
        map_mjd = Array();
        mapicons = Array();
        var odd = false;
        for( var i = 0; i < iargs.length; i++ )
        {
            if( iargs[i].length > 0 )
            {
                var idata = iargs[i].split('~');
                map_mjd[i] = idata;
                var marker = new GMarker(new GLatLng(parseFloat(idata[2]),parseFloat(idata[3])), { icon: flgIco, title: idata[0] } );
                map.addOverlay(marker);
                marker.title = i;
                GEvent.addListener(marker, "click", function() {
                    mappick(this.title);
                 });
                 mapicons[i] = marker;
                
                var oddinject = "";
                if( odd )
                {
                    oddinject = "odd";
                }
                odd = !odd;
                $("#mapitems tbody").append("<tr id='maptr" + i + "' class='" + oddinject + "'><td><a href='" + idata[4] + "' title='" + idata[0] + "'>" + dottedmax(idata[0],18) + "</a><div> " + dottedmax(idata[5],25) + "</div></td><td><a href='#' onclick='return mappick(\"" + i + "\");'><img style='padding:5px;' src='/images/bullet_right.png' /></a></a></td></tr>");
                
            }
        }

        var zargs = args[1].split('~');
        
        //set map pos
        var pargs = args[2].split('!');
        setTimeout("map.setCenter(new GLatLng(" + parseFloat(zargs[0]) + ", " + parseFloat(zargs[1]) + "), " + parseInt(zargs[2]) + ")", 100);          
        
        admanager.enable();
        
        //render areas
        for( var i = 0; i < pargs.length; i++ )
        {
            if( pargs[i].length > 0 )
            {
                var poly = pargs[i].split('~');
                var polyp = poly[4].split('@');
                
                try
                {
                    var gpoly = new GPolygon([], "#f33f00", 1, 1, "#ff0000", 0.2, { clickable: true });
                    map.addOverlay(gpoly);
                    
                     GEvent.addListener(gpoly, "click", function() {
                        
                    });
                    
                     GEvent.addListener(gpoly, "mouseover", function() {
                        this.setFillStyle({color: "#f33f00", opacity: 0.7});
                        
                    });
                    
                    GEvent.addListener(gpoly, "mouseout", function() {
                        //this.show();
                        this.setFillStyle({color: "#f33f00", opacity: 0.2});
                    });
                             
                    for( var x = 0; x < polyp.length; x++ )
                    {
                        var pts = polyp[x].replace('(','').replace(')','').split(',');
                        gpoly.insertVertex(x, new GLatLng(pts[0], pts[1]));
                    }
                    
                    var pts = polyp[0].replace('(','').replace(')','').split(',');
                    gpoly.insertVertex(polyp.length+1, new GLatLng(pts[0], pts[1]));
                }
                catch(ex)
                {
                    alert(ex);
                }
            }
        }

        $("#mapload").html('');
        $("#mapctrl").fadeIn('fast');
        
        mappick(1);
                 
    }
    );
   
   
        
}

function mapaop()
{
    mapshowareas = !mapshowareas;
    genmap();
}


function mapop(data,jqthis)
{
    $("#dmopt1 li a").css('font-weight', 'normal');
    jqthis.css('font-weight', 'bold');
    $("#dmopt1lbl").html( jqthis.html() );
    mapmode = data + "~" + mapmode.split('~')[1];
    genmap();
    return false;
}

function mapop2(data,jqthis)
{
    $("#dmopt2 li a").css('font-weight', 'normal');
    jqthis.css('font-weight', 'bold');
    $("#dmopt2lbl").html( jqthis.html() );
    mapmode = mapmode.split('~')[0] + "~" + data;    
    genmap();
    return false;
}
