// OBJECT PREFIX: PKF
map = null;
None = null;
SELECTED_MARKER = null;
MAP_MARKS = {};
USE_MAP_FILTER = false;
NOT_LOADED = true;

function checkquery(){
    var qs = (window.location + '').split('#');
    if(qs.length==2 && qs[1]!="mapstartpos"){
        var url = qs[0].split('?')[0];
        var iframe = '';
        if (('' + window.location).split('iframe').length > 1) {
            iframe = '&iframe=1';
        } else {
            iframe = '';
        }
        window.location = qs[0].split('?')[0] + '?' + qs[1] + iframe;
	    return true;
    }
    return false;
}

function copyfields(frm1,frm2){
    var inps1 = frm1.getElementsByTagName('input');
    var inps2 = frm2.getElementsByTagName('input');
    var d1 = {}
    for(var i = 0; i<inps1.length; i++){
        d1[inps1[i].name] = inps1[i];
    }
    for (var i = 0; i < inps2.length; i++) if (inps2[i].type.toLowerCase() == 'text') {
        try{// Maybe the field does not exist on the other side
            inps2[i].value = d1[inps2[i].name].value;
        }catch(e){}
    }
}

if(!NO_AJAX) checkquery();

LAST_SUMBITTED_FORM = null;
window.addEvent('domready', function() {
    if ($("allcontent")) $("allcontent").addEvent('mousemove', function(e) {
        MOUSE_X = e.page.x;
        MOUSE_Y = e.page.y;
    });

    if (!NO_AJAX && $('park_filter')) {
        $('park_filter').addEvent('submit', function(e) {
            (new Event(e)).stop();
            var qi = this.getElements('input[name=q]')[0];
            if (qi.value == SEARCH_HELPTEXT) {
                qi.value = '';
            }
            copyfields(this, $('park_filter2'))
            search();
            LAST_SUMBITTED_FORM = this;

            if (qi.value == '') {
                qi.value = SEARCH_HELPTEXT;
            }
        });

        $("park_filter2").addEvent('submit', function(e) {
            (new Event(e)).stop();
            copyfields(this, $('park_filter'))
            search();
            LAST_SUMBITTED_FORM = this;
            blurinp($('park_filter').getElements('input[name=q]')[0], SEARCH_HELPTEXT);
        });
    }

    if ($('frm_upload_photo')) {
        $('frm_upload_photo').addEvent('submit', function(e) {
            var inp = this.getElements('input[type=file]')[0];
            var html = $("updimgbtn").innerHTML;
            $("updimgbtn").innerHTML = '<img src="' + DJ_MEDIA_URL + 'images/ajax-loader-small.gif" alt="[loading]" />';
            var rt = AIM.submit(this, {
                'onStart': function() { return true; },
                'onComplete': function(response) {
                    $("updimgbtn").innerHTML = html;
                    $("uploadmsg").style.display = '';
                    $("uploadmsg").innerHTML = response;
                    inp.value = '';
                    inp.parentNode.innerHTML = inp.parentNode.innerHTML.replace('value=', 'valuexx=');
                    $('talesx').value = '';
                }
            });

            if (!rt) (new Event(e)).stop();
        });
    }

    if (GBrowserIsCompatible()) {
        map = new GMap2($("map"));
        map.setMapType(G_HYBRID_MAP);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.enableScrollWheelZoom();

        var icon = new GIcon();
        icon.image = DJ_MEDIA_URL + "images/map_park_icon.png";
        icon.iconSize = new GSize(20, 30);
        icon.shadowSize = new GSize(110, 24);
        icon.iconAnchor = new GPoint(6, 20);
        icon.infoWindowAnchor = new GPoint(5, 1);
        map.PARK_ICON = icon;
        if (!NO_AJAX) checkquery();
        update_map();
    }

    var prk = $("parkimgs");
    if (prk) {
        prk.style.width = $("map").offsetWidth + 'px';
        prk.style.display = '';
    }

    //    window.setTimeout("load_google_maps()",500);
});

function load_google_maps(){
    var span = new Element('SPAN');
    span.style.display = 'none';
    var scripts = "<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=" + GOOGLE_MAPS_KEY + "' ></script>"
    scripts += "<script src='" + DJ_MEDIA_URL + "js/onmapload.js' ></script>"
    span.innerHTML = scripts;
    document.body.appendChild(span);
}

TURN_OFF_ICON = null;

function update_map(){
    if(!map) return;
    if(!USE_MAP_FILTER || NOT_LOADED){
        NOT_LOADED = false;
        var bnds = new GLatLngBounds();
        var zoom = 9;
        if (DJ_ZOOM){
            zoom = DJ_ZOOM;
        }else if (lg_bnds[1] != ''){
            bnds.extend(new GLatLng(lg_bnds[1], lg_bnds[3]));
            bnds.extend(new GLatLng(lg_bnds[0], lg_bnds[2]));
            zoom = map.getBoundsZoomLevel(bnds);
            lg_init.x = (lg_bnds[1] + lg_bnds[0]) / 2.0;
            lg_init.y = (lg_bnds[3] + lg_bnds[2]) / 2.0;
        }
        map.setCenter(new GLatLng(lg_init.x,lg_init.y), zoom);
    }
    MAP_MARKS = {};
    SELECTED_MARKER = null;
    load_marks();   //Loads the marks into the map

    $$("TABLE.item_tbl").each(function(item, index){
        var marker = MAP_MARKS[item.id];
        if(marker) marker.item_id = item.id;
        item.addEvent('mouseover', function(e) {
            this.addClass('item-rollover');
            return; //Disable amenity-icon bar
            var ico = $(this.id + "_icons");
            if(!ico) return;
            ico.setStyle('top',window.getScroll().y);
            ico.setStyle('display','block');
            if(TURN_OFF_ICON && TURN_OFF_ICON != ico)
                TURN_OFF_ICON.setStyle('display','none');
            TURN_OFF_ICON = null;
        });
        item.addEvent('mouseout', function(e) {
            this.removeClass('item-rollover');
            return; //Disable amenity-icon bar
            var ico = $(this.id + "_icons");
            if(!ico) return;
            TURN_OFF_ICON = ico;
            window.setTimeout("if(TURN_OFF_ICON){TURN_OFF_ICON.setStyle('display','none'); TURN_OFF_ICON == null;}",100);
        });
        if(marker){
            item.addEvent('click', function(e) {
                if(SELECTED_MARKER){
                    SELECTED_MARKER.setImage(DJ_MEDIA_URL + "images/map_park_icon.png");
                    $(SELECTED_MARKER.item_id).removeClass('item-selected');
                }
                SELECTED_MARKER = marker;
                marker.setImage(DJ_MEDIA_URL + "images/map_park_iconsel.png");
                var html = "<div class='bubble_content'>" + this.getElements("A")[0].innerHTML + "</div>";
                marker.openInfoWindowHtml(html);
                //if(e != 'nocenter') map.setCenter(marker.getLatLng());
                this.addClass('item-selected');
            });
            GEvent.addListener(marker, "click", function() {
                item.fireEvent('click', 'nocenter', 0);
                window.location = (window.location + '').split('#')[0] + '#mapstartpos';
                /*
                if($(item.marker.item_id)){
                    window.location = (window.location + '').split('#')[0] + '#mapstartpos'
                }else{
                    marker.openInfoWindowHtml("<div align='center'><b><a href='"+ url_main + "'>"  + name + "</a></b><br/></div><div style='font-size: 9pt; text-align: center;'>"+address+"<br/>"+phone+"</div>");
                }
                */
            });
        }
    });
}

function putMark(media_url, name,x,y, phone, address,id, url_main, auto_jump) {
    var marker;
    if(DJ_PARK_SEL != (id+'')){
        marker = new GMarker(new GLatLng(x, y),map.PARK_ICON);
    }else{
        SEL_ICON =  new GIcon();
        SEL_ICON.image = DJ_MEDIA_URL + "images/map_park_iconsel.png";
        SEL_ICON.iconSize = new GSize(18,30);
        SEL_ICON.shadowSize = new GSize(110,24 );
        SEL_ICON.iconAnchor = new GPoint(6, 20);
        SEL_ICON.infoWindowAnchor = new GPoint(5, 1);
        marker = new GMarker(new GLatLng(x, y),SEL_ICON);
    }
    map.addOverlay(marker);
    MAP_MARKS["parkitem_" + id] = marker;
    
    if(auto_jump){
        GEvent.addListener(marker, "mouseover", function() {
            if(! $("map_label")){
                var elx = Element('DIV');
                elx.disabled = 'disabled';
                elx.id='map_label';
                elx.setStyles({
                    'position':'absolute',
                    'background-color':'#FFFFAA',
                    'border':'Solid 1px #444444',
                    'color':'black',
                    'z-index':'1000',
                    'font-size':'0.8em',
                    'padding':'3px'
                });
                elx.innerHTML = name;
                elx.setStyles({
                    'left': (MOUSE_X + 5) + 'px',
                    'top': (MOUSE_Y + 5) + 'px'
                });
                document.body.appendChild(elx);
            }
        })
        GEvent.addListener(marker, "mouseout", function() {
            if($("map_label"))
                $("map_label").destroy();
        })
        GEvent.addListener(marker, "click", function() {
            window.location = url_main;
        })
    }
}

function search(p){
    var qi = $('park_filter').getElements('input[name=q]')[0];
    if (qi.value == SEARCH_HELPTEXT) {
        qi.value = '';
    }
    var frm = LAST_SUMBITTED_FORM;
    if(!frm) frm = $("park_filter");
    var HH = $('park_list').style.height;
    $('park_list').style.height = $('park_list').offsetHeight + 'px';
    var results = $('park_list').empty().addClass('ajax-loading');
    var urlx;
	if(p){
	    urlx = "?page=" + p;
    }else{
        urlx = "";
    }
    if (('' + window.location).split('iframe').length > 1) {
        if (urlx.length) {
            urlx += '&iframe=1';
        } else {
            urlx = '?iframe=1';
        }
    }
    
    if(map) map.clearOverlays();
    
    USE_MAP_FILTER = false;//$('fld_zipcode').value.length==0;
    if(USE_MAP_FILTER && map){
        if(!urlx.length)
            urlx += '?';
        else
            urlx += '&';
        var bnds = map.getBounds();
        var p0 = bnds.getSouthWest();
        var pf = bnds.getNorthEast();
        urlx += 'x0='+ p0.lat() + '&y0=' + p0.lng() + '&xf='+ pf.lat() + '&yf=' + pf.lng();
    }
    
    if(PARK_SELECTION != ''){
        if(!urlx.length)
            urlx += '?';
        else
            urlx += '&';
        urlx += 'sel=1';
    }

    var html_req = new Request.HTML({
        url:APP_ROOT + 'laparks/parklist' + urlx, 
		update: results,
		onComplete: function() {
            $('park_list').style.height = HH;
			results.removeClass('ajax-loading');
		    window.setTimeout("update_map();",500);
		}
	}).post(frm);

    var qs = '';
    var inps = frm.getElements("input");
    for(var i=0;i<inps.length;i++) if(inps[i].name.length && inps[i].value.length){
        qs += '&' + inps[i].name + '=' + escape(inps[i].value);
    }
    if(qs.length) qs= qs.substring(1);
    window.location = (window.location + '').split('#')[0] + '#'+qs;

    blurinp($('park_filter').getElements('input[name=q]')[0], SEARCH_HELPTEXT);
}

searchx = search;



function show_image(url){
    $('parkimg').src = DJ_MEDIA_URL + "images/ajax-loader-small.gif";
    $('parkimg').style.border='Solid 1px Gray';
    var myImage = new Asset.image(url, {onload: function(){$('parkimg').src=url;$('parkimg').style.border='';} });
}