// JavaScript Document
var gmapFunctions = ($("#map_canvas").length) ? {
    onSearchCompleate: function() {
        var defaultPos = gmapFunctions.getDefaultGLatLng();
        var stockist = null;
        var bounds = null;
        var __lat = gmapFunctions.getLatitudeFromURL();
        var __long = gmapFunctions.getLongitudeFromURL();

        if (__lat && __long) {
            var requestLatLong = new GLatLng(__lat, __long);
            for (i = 1; i < vars.stockist.length; i++) {
                if (requestLatLong.distanceFrom(gmapFunctions.getGLatLng(vars.stockist[i])) == 0) {
                    stockist = vars.stockist[i];
                }
            }
            if (stockist == null) {
                bounds = new GLatLngBounds();
                bounds.extend(requestLatLong);
            }
            else {
                defaultPos = requestLatLong;
            }
        }
        else {
            for (i = 1; i < vars.stockist.length; i++) {
                latest = gmapFunctions.getGLatLng(vars.stockist[i]);
                if (latest.distanceFrom(defaultPos) > latest.distanceFrom(defaultPos)) {
                    stockist = vars.stockist[i];
                }
            }
        }
        if (stockist != null) {
            var closest = gmapFunctions.getGLatLng(stockist);
            bounds = new GLatLngBounds();
            bounds.extend(closest);
            setTimeout(function() { GEvent.trigger(stockist[13], "click") }, 100);
        }
        if (bounds != null) {
            bounds.extend(vars.map.getCenter());
            vars.map.setZoom(vars.map.getBoundsZoomLevel(bounds) - 1);
            vars.map.setCenter(bounds.getCenter());
        }
    },

    dumpObj: function(object) {
        var message;
        for (obj in object) {
            message = message + obj + " = " + eval("object." + obj) + "\t\t";
        }
        alert(message);
    },

    getDefaultGLatLng: function() {
        return new GLatLng(dlat, dlng);
    },

    getGLatLng: function(stockist) {
        return new GLatLng(stockist[11], stockist[12]);
    },

    getInfoWindowHtml: function(stockist) {
        return "<h2>" + stockist[2] + "</h2>" + stockist[3] + "<br>" + stockist[4] + "<br>" + stockist[5] + "<br>" + stockist[6] + "<br>" + stockist[7] + "<br>";
    },

    addMarker: function(stockist) {
        var marker = new GMarker(new GLatLng(stockist[11], stockist[12])), that = this;
        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(that.getInfoWindowHtml(stockist));
        });
        stockist[13] = marker;
        return marker;
    },

    getAllMarkers: function() {
        var batch = [], that = this;
        for (var i = Number(0), n = Number(vars.stockist.length); i < n; i += 1) {
            batch.push(that.addMarker(vars.stockist[i]));
        }
        return batch;
    },

    getAddressFromURL: function() {
        var __url = String(window.location), __arr, __args, __val;
        __arr = __url.split("?");
        if (__arr[1]) {
            if (__arr[1].indexOf("&") != -1) {
                __args = __arr[1].split("&");
                for (var i = Number(__args.length); i > -1; i -= 1) {
                    if (__args[i] && __args[i].indexOf("search") != -1) {
                        __val = __args[i].split("=")[1];
                        break;
                    }
                }
            } else {
                if (__arr[1].indexOf("search") != -1) {
                    __val = __arr[1].split("=")[1];
                }
            }
            if (__val) {
                return __val;
            }
        }
        return false;
    },

    getLongitudeFromURL: function() {
        var __url = String(window.location), __arr, __args, __val;
        __arr = __url.split("?");
        if (__arr[1]) {
            if (__arr[1].indexOf("&") != -1) {
                __args = __arr[1].split("&");
                for (var i = Number(__args.length); i > -1; i -= 1) {
                    if (__args[i] && __args[i].indexOf("long") != -1) {
                        __val = __args[i].split("=")[1];
                        break;
                    }
                }
            } else {
                if (__arr[1].indexOf("long") != -1) {
                    __val = __arr[1].split("=")[1];
                }
            }
            if (__val) {
                return parseFloat(__val);
            }
        }
        return false;
    },

    getLatitudeFromURL: function() {
        var __url = String(window.location), __arr, __args, __val;
        __arr = __url.split("?");
        if (__arr[1]) {
            if (__arr[1].indexOf("&") != -1) {
                __args = __arr[1].split("&");
                for (var i = Number(__args.length); i > -1; i -= 1) {
                    if (__args[i] && __args[i].indexOf("lat") != -1) {
                        __val = __args[i].split("=")[1];
                        break;
                    }
                }
            } else {
                if (__arr[1].indexOf("lat") != -1) {
                    __val = __arr[1].split("=")[1];
                }
            }
            if (__val) {
                return parseFloat(__val);
            }
        }
        return false;
    }
} : null;

    $(function() {

        if ($("#map_canvas").length) {
            if (GBrowserIsCompatible()) {
                var options = {
                    suppressInitialResultSelection: true,
                    onMarkersSetCallback: function(markers) {
                        var elements = document.getElementsByTagName("img");
                        for (var i = Number(elements.length - 1); i > -1; i -= 1) {
                            if (elements[i].id.indexOf("mtgt_unnamed_") != -1) {
                                elements[i].style.display = "none";
                            }
                        }
                    }
                };
                //var __ls = new google.maps.LocalSearch(options)

                vars.map = new GMap2(document.getElementById("map_canvas")); // bind a search control to the map, suppress result list
                //vars.map.addControl(__ls, new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));
                //__ls.onMarkersSetCallback = gmapFunctions.onSearchCompleate;
                //GEvent.addListener(vars.map, "load", function() {
                //	var __val = gmapFunctions.getAddressFromURL();
                //	if (__val) {
                //		__ls.execute(__val); 
                //	}					    		
                //});

                vars.map.setCenter(gmapFunctions.getDefaultGLatLng(), 10);
                vars.map.addControl(new GLargeMapControl());
                vars.map.addControl(new GMapTypeControl());

                vars.map.setZoom(dzoom);

                vars.mgr = new MarkerManager(vars.map);
                vars.mgr.addMarkers(gmapFunctions.getAllMarkers(), 0, 17);
                vars.mgr.refresh();
            }
        }

        if ($('UL.drawers').length) {
            $('UL.drawers').accordion({
                // the drawer handle
                header: 'H2.drawer-handle',

                // our selected class
                selectedClass: 'open',

                // match the Apple slide out effect
                event: 'mousedown'

            });

            var strHref = window.location.href;
            if (strHref.indexOf("/Products/") > -1) {
                var activateAcc = 0;
            } else if (strHref.indexOf("/Where-to-Buy/") > -1) {
                var activateAcc = 1;
            } else if (strHref.indexOf("/About-Us/") > -1) {
                var activateAcc = 2;
            }

            $('UL.drawers').accordion("activate", activateAcc);
        }

        if ($("#tools").length) {
            $("#tools").find(".label").each(function(i) {
                $(this).addClass("position" + i);
            })

            $("#tools a").bind("click", function() {
                var el = $(this).parents()[2], s, us, usa;

                if (el.className != "selected") {
                    document.getElementById("tools").style.display = "none";

                    if (el.className != "unselected-alt") {
                        $(".unselected-alt").removeClass().addClass("unselected").children(".element").hide();
                    }

                    $(".selected").removeClass().addClass("unselected-alt").children(".element").hide();
                    $(el).removeClass().addClass("selected").children(".element").show();

                    document.getElementById("tools").style.display = "block";
                    return false;
                }
            })
        }

        if ($("#navigation").length) {
            $("#navigation > ul > li").each(function() {
                $(this).hover(
				function() {
				    $(this).addClass("sfhover");
				},
				function() {
				    $(this).removeClass("sfhover");
				}
			)
            });
        }
    });

    $(window).unload(function() {
        if ($("#map_canvas").length) {
            GUnload();
        }
    });

    // Print Friendly Version
    function PrintThisPage() {

        var newwindow;
        var sOption = "toolbar=yes,location=no,directories=yes,menubar=yes,";
        sOption += "scrollbars=yes,width=750,height=600,left=100,top=25";
        newwindow = window.open(parent.location.href, 'name', sOption);
       
         if (window.focus) { newwindow.focus() }
        
    } 

