(function() {
    var window = this,
		document = window.document,
		$ = jQuery,
		isIE = jQuery.browser.msie,
		controller,
		view;

    controller = {
        createGmap: function() {
            if ($('#miniCords').length) {
                var mainMap = $('#miniCords').val();
            }
            else if ($("#unitLocation").length) {
                var mainMap = $("#unitLocation").val();
            }

            var cords = mainMap.split(","),
			    latlng = new google.maps.LatLng(cords[0], cords[1]),
			    h1 = $('#topFullWidthArea h1').text(),
			    map, marker;

            opts = {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControl: true,
                mapTypeControlOptions: {
                    style: google.maps.MapTypeControlStyle.DEFAULT,
                    position: google.maps.ControlPosition.TOP_LEFT
                }
            };

            if ($('#miniCords').length) {
                map = new google.maps.Map(document.getElementById("miniMap"), opts),

                marker = new google.maps.Marker({
                    position: latlng,
                    map: map,
                    title: h1
                });
            }
            else if ($('#unitLocation').length) {
                map = new google.maps.Map(document.getElementById("gMap"), opts),

                marker = new google.maps.Marker({
                    position: latlng,
                    map: map,
                    title: h1
                });
            }

            if ($('#showMap').length) {
                var miniMap = $('#miniMapWrap'),
                    parnts = miniMap.parents(),
                    l = parnts.length,
                    i, setVpos, clickedElem,
                    setHPos = $('#showMap').position().left;

                for (i = 0; i < l; i += 1) {
                    if (parnts[i].className === 'smallBox') {
                        setVpos = $(parnts[i]).position().top;
                    }
                }

                miniMap.css({
                    'top': setVpos + 'px',
                    'left': (setHPos - 256) + 'px' //-230px cause it's the width of the map container, -26px so it doesnt lay on top of the link
                });

                miniMap.addClass('hidden');

                $('#showMap, #miniMapWrap button').click(function(e) {
                    e.preventDefault();
                    if (miniMap.hasClass('hidden')) {
                        miniMap.css('visibility', 'visible');
                        miniMap.removeClass('hidden');
                    }
                    else {
                        miniMap.css('visibility', 'hidden');
                        miniMap.addClass('hidden');
                    }
                });
            }
        }
    };

    view = {
        init: function() {
            if ($('#unitLocation').length || $('#miniCords').length) {
                controller.createGmap();
            }
        }
    };

    $.extend(true, $.view, view);

    $(document).ready(function() {
        view.init();
    });

})();

