var map, mapsx, maps = new Array(), geocoder, google, googleAttached = 0;

function loadGMap(callback) {

    if(!googleAttached) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "http://maps.google.com/maps/api/js?sensor=false" + (callback ? "&callback=" + callback : "");
        document.body.appendChild(script);

        googleAttached = 1;	
    }

}

function attachGMap() {
    var mapOptions = {
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        disableDefaultUI: false,
        center: new google.maps.LatLng(56.8379, 60.5983)
    };

    geocoder = new google.maps.Geocoder();

    $.each($(".gmap"), function(i){
        var $this = $(this);
        var coords = $this.data('coords');
        var geoAddress = $('.feed .addr');
        
        
        /**
         * MYMAP.init = function(selector, latLng, zoom) {
  var myOptions = {
    zoom:zoom,
    center: latLng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  this.map = new google.maps.Map($(selector)[0], myOptions);
	this.bounds = new google.maps.LatLngBounds();
}
         */
        
        mapsx = new google.maps.Map(this, mapOptions);
        if(coords && coords.latitude && coords.longitude) {
            var point = new google.maps.LatLng(coords.latitude, coords.longitude);
            marker = new google.maps.Marker({
                map: mapsx,
                position: point
            });
            mapsx.setCenter(point);
        }
        else if(geoAddress.length) {
            geoAddress.each(function(n,e){
                geocoder.geocode({
                    'address': $(e).text()
                    }, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        mapsx.setCenter(results[0].geometry.location);
                        var marker= new google.maps.Marker({
                            map: mapsx,
                            position: results[0].geometry.location
                        });
                        var infoWindow = new google.maps.InfoWindow();
			var html='<br/>' + $(e).text();
			google.maps.event.addListener(marker, 'click', function() {
				infoWindow.setContent(html);
				infoWindow.open(mapsx, marker);
			});
                       //alert(results[0].geometry.location);
                       //mapsx.fitBounds(results[0].geometry.location)
                    }
                })

            })


        }
    });
}

$(function(){
    loadGMap("attachGMap");
    Shadowbox.init({
        skipSetup: true
    });
    Shadowbox.setup("a.popup", {
        gallery: "grinvich"
    });

    var $calendar = $("#calendar");
    if($calendar.length) {
        $calendar.find(".prev, .next").live("click", function(e){
            e.preventDefault();
            var $link = $(this);
            var url = $link.attr('href') + '&c';
            $.get(url, {}, function(r){
                $calendar.html(r);
            });
        })
    };

	
    $("#language .rus a").click(function(){
        var jparant = $(this).closest("#language");
        if(jparant.is(".english")) {
            jparant.removeClass("english").addClass("russian");
        }
    });
    $("#language .eng a").click(function(){
        var jparant = $(this).closest("#language");
        if(jparant.is(".russian")) {
            jparant.removeClass("russian").addClass("english");
        }
    });
	
    //inset
    $(".inset .ilinks a").click(function(){
        var $parent = $(this).closest("li");
        var $praparent = $(this).closest(".inset");
        var ind = $parent.index();
        $praparent.find(".ilinks .active").removeClass("active");
        $parent.addClass("active");
		
        if( $praparent.find(".ibox:eq("+ind+")").is(":hidden") ) {
            $praparent.find(".ibox.active").hide().removeClass("active");
            $praparent.find(".ibox:eq("+ind+")").show().addClass("active");
        } else {
        }
        return false;
    });
    //style select
    $("select.select").css({
        opacity:'0', 
        filter:'alpha(opacity=0)'
    });
    $("<span/>").addClass("styled").insertBefore("select.select");
    $("select.select").change(function () {
        var str = "";
        var dataVals = "";
        $(this).closest('.mokselect').find('select.select option:selected').each(function(){
            dataVals += $(this).text() + " ";
        });
        $(this).closest('.mokselect').find('span.styled').html(
            "<span class='selecttext'>" + dataVals + "</span><span class='selectbutton'></span>"
            );
    }).change();
    //class width***px = width="***px" or width***pr = width="***%"
    var pattern = /width(\d+)(px|pr)/;
    $("*[class*=width]").each(function(index, item) {
        var res = $(item).attr("class").match(pattern);
        if (res === null) return;
        $(item).css('width', res[1]+''+(res[2]=='px'?'px':'%'));
    });
	
    $(".mc_carousel").each(mc_carousel);
	
    function mc_carousel(){
        //global
        var qShift = 1;
        var mc_item = $(".mc_box li", $(this));
        var mc_item_width = 591;
        if( $(".mc_box", $(this)).position("left") == 0 ){
            $(".prev", $(this)).addClass("disable");
        }
        $(".mc_carousel .prev").addClass("disable");
        var mc_cut_width = $(".mc_cut", $(this)).width();
		
        $(".mc_box", $(this)).width( mc_item.length * mc_item_width );
        var mc_box_width = $(".mc_box", $(this)).width();
		
        $(".next", $(this)).click(function(){
            var $parent = $(this).closest(".mc_carousel");
            var $parentbox = $(".mc_box", $parent);
            var mc_item_visible = Math.ceil(mc_cut_width / mc_item_width);
            var $position = $parentbox.position();
            var maxShift = mc_box_width - mc_item_visible * mc_item_width;
            var n_Shift = $position.left - mc_item_width * qShift;
            if( n_Shift < -maxShift ){
                n_Shift = -maxShift;
                mc_Shift($parentbox, n_Shift);
                $(this).addClass("disable");
            } else {
                mc_Shift($parentbox, n_Shift);
                $parent.find(".disable").removeClass("disable");
            }
            return false;
        });
		
        $(".prev", $(this)).click(function(){
            var $parent = $(this).closest(".mc_carousel");
            var $parentbox = $(".mc_box", $parent);
            var mc_item_visible = Math.ceil(mc_cut_width / mc_item_width);
            var $position = $parentbox.position();
            var maxShift = mc_box_width - mc_item_visible * mc_item_width;
            var n_Shift = $position.left + mc_item_width * qShift;
            if( n_Shift >= 0 ){
                n_Shift = 0;
                mc_Shift($parentbox, n_Shift);
                $(this).addClass("disable");
            } else {
                mc_Shift($parentbox, n_Shift);
                $parent.find(".disable").removeClass("disable");
            }
            return false;
        });
		
        //shift function
        function mc_Shift($parentbox, n_Shift){
            $parentbox.animate({
                left: n_Shift
            }, 300);
        }	
    }//mc_carousel(end);
        
        
    $('.submit').click(function(){
        $(this).parents('form').submit();
    });
        
    $(".date-time-input").mask("99-99-9999 99:99",{
        placeholder:"0"
    });
    $(".time-input").mask("99:99",{
        placeholder:"0"
    });
    $(".date-input").mask("99.99.9999");
    $(".calendar").datepicker({
        dateFormat: 'dd.mm.yy', 
        monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
        firstDay:1,
        dayNamesMin: ['вс','пн', 'вт', 'ср', 'чт', 'пт', 'суб']
    });
    $(".datepicker").datepicker({
        showOn: "button",
        buttonImage: "/template/images/calendar.gif",
        buttonImageOnly: true,
        dateFormat: 'dd.mm.yy', 
        monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
        firstDay:1,
        dayNamesMin: ['вс','пн', 'вт', 'ср', 'чт', 'пт', 'суб']
		
    });
//$(".generated_form").validator();
})



