window.log = function(){
  log.history = log.history || [];  
  log.history.push(arguments);
  arguments.callee = arguments.callee.caller;  
  if(this.console) console.log( Array.prototype.slice.call(arguments) );
};
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();)b[a]=b[a]||c})(window.console=window.console||{});




(function(jQuery) {
    jQuery.fn.selectTrigger = function(options) {
        // build main options before element iteration
        var opts = jQuery.extend({}, jQuery.fn.selectTrigger.defaults, options);

        return this.each(function() {
            var $s = jQuery(this);
            //  if the metadata plug-in is installed, use it to build the options
            var o = jQuery.metadata ? jQuery.extend({}, opts, button.metadata()) : opts;

            $s.bind('change',function(){
                var link = jQuery(this).val();
                location.href = link;
            })
        });
    };

    jQuery.fn.selectTrigger.defaults = {
        from: '#016bbd',
        to: '#b1ddff',
        className: 'blue',
        speed: 1000
    };

})(jQuery);




(function(jQuery) {
    jQuery.fn.readMore = function(options) {
        // build main options before element iteration
        var opts = jQuery.extend({}, jQuery.fn.readMore.defaults, options);

        return this.each(function() {
            var $s = jQuery(this);
            $s.removeClass('collapsible');
            //  if the metadata plug-in is installed, use it to build the options
            var o = jQuery.metadata ? jQuery.extend({}, opts, button.metadata()) : opts;

            var $trigger = jQuery('.readMore', $s);
            var $wrapper = jQuery('div.wrapper', $s);
            var $container = jQuery('.container', $s);
            var orHeight = $wrapper.height();
            var closeLabel = $trigger.attr('close');
            var openLabel = $trigger.text();

            var finalHeight = $container.outerHeight(true) + orHeight + 12;
            //calculate images height
            var skip = false;
            if(jQuery.browser.msie && jQuery.browser.version==7){
                skip = true;
                finalHeight+=40;
            }
            skip = true;
            if(!skip){
                var imgs = jQuery('img',$container);
                if(imgs.size() > 0){
                    imgs.each(function(i,val){
                        var img = jQuery(val);
                        console.log("IMG source: %s",img.attr('src'));
                   console.log("IMG outerHeight: %d",img.outerHeight(true));
                        finalHeight += img.outerHeight(true);
                    });
                }
            }
            console.log("final H: %d",finalHeight)
            

            $trigger.toggle(function(e){
                e.preventDefault();
                $wrapper.stop(true, true).animate({
                    'height':finalHeight
                },500);
                $trigger.text(closeLabel);
            },function(e){
                e.preventDefault();
                $wrapper.stop(true, true).animate({
                    'height':orHeight
                },300);
                $trigger.text(openLabel);
            });
        });
    };

    jQuery.fn.readMore.defaults = {
        from: '#016bbd',
        to: '#b1ddff',
        className: 'blue',
        speed: 1000
    };

})(jQuery);



(function(jQuery) {
    jQuery.fn.readMoreContent = function(options) {
        // build main options before element iteration
        var opts = jQuery.extend({}, jQuery.fn.readMoreContent.defaults, options);

        return this.each(function() {
            var $s = jQuery(this);
            
            //  if the metadata plug-in is installed, use it to build the options
            var o = jQuery.metadata ? jQuery.extend({}, opts, button.metadata()) : opts;

            

            $s.toggle(function(e){
                e.preventDefault();
                var $el = $s;
                var $target = $el.parent().next();
                var label = $el.attr('longdesc');
                var cLabel = $el.html();
                $el.attr('longdesc',cLabel);
                $el.addClass('triggered');
                $el.html(label);
                $target.fadeIn();
            },function(e){
                e.preventDefault();
                var $el = $s;
                $el.removeClass('triggered');
                var $target = $el.parent().next();
                var label = $el.attr('longdesc');
                var cLabel = $el.html();
                $el.attr('longdesc',cLabel);
                $el.html(label);
                $target.fadeOut();
            });
            
        });
    };

    jQuery.fn.readMoreContent.defaults = {
        from: '#016bbd',
        to: '#b1ddff',
        className: 'blue',
        speed: 1000
    };

})(jQuery);



(function(jQuery) {
    jQuery.fn.hideShow = function(options) {
        // build main options before element iteration
        var opts = jQuery.extend({}, jQuery.fn.hideShow.defaults, options);

        return this.each(function() {
            var $s = jQuery(this);
            
            //  if the metadata plug-in is installed, use it to build the options
            var o = jQuery.metadata ? jQuery.extend({}, opts, button.metadata()) : opts;

            var $target = jQuery( '#'+$s.attr('target') );

            $s.one('click',function(){
                $s.css('margin-bottom',0);
                $target.slideDown(500,function(){
                    o.callback.call();
                });                
            })
            
            
        });
    };

    jQuery.fn.hideShow.defaults = {
        callback: jQuery.emptyFn,
        speed: 1000
    };

})(jQuery);





(function(jQuery) {
    jQuery.fn.placeHolder = function(options) {
        // build main options before element iteration
        var opts = jQuery.extend({}, jQuery.fn.placeHolder.defaults, options);

        return this.each(function() {
            var $s = jQuery(this);

            //  if the metadata plug-in is installed, use it to build the options
            var o = jQuery.metadata ? jQuery.extend({}, opts, button.metadata()) : opts;

            var placeholder = $s.attr('placeholder') ;

            $s.bind('focus',function(){
                var v = $s.val();
                if(v==placeholder)$s.val('');
            });

            $s.bind('blur',function(){
                var v = $s.val();
                if(v=='')$s.val(placeholder);
            });


        });
    };

    jQuery.fn.placeHolder.defaults = {
        callback: jQuery.emptyFn,
        speed: 1000
    };

})(jQuery);









(function(jQuery) {
    jQuery.fn.styleTables = function(options) {
        // build main options before element iteration
        var opts = jQuery.extend({}, jQuery.fn.styleTables.defaults, options);

        return this.each(function() {
            var $s = jQuery(this);

            //  if the metadata plug-in is installed, use it to build the options
            var o = jQuery.metadata ? jQuery.extend({}, opts, button.metadata()) : opts;

            var $rows = jQuery('tr',$s);
            var $head = $rows.eq(0);
            $head.addClass('header');

            jQuery.each($rows, function(i,el){
                var c = (i%2==0) ? 'odd':'even';
                jQuery(el).addClass(c);
            });


        });
    };

    jQuery.fn.styleTables.defaults = {
        callback: jQuery.emptyFn,
        speed: 1000
    };

})(jQuery);







var GM = {

    lat:null,
    lng:null,
    zoom:null,
    name:null,
    desc:null,
    css:null,
    
    initMap: function(lat,lng,zoom,name,desc,css,img,icon){

        GM.lat = lat;
        GM.lng = lng;
        GM.zoom = zoom;
        GM.name = name;
        GM.desc = desc;
        GM.css = css;
        GM.img = img;
        GM.icon = icon;

        jQuery("a.w1").click(function(e){
            var $el = jQuery(this);
            var mutex = parseInt($el.attr('mutex'));
            if(mutex==1)return;
            var label = $el.text();
            if(label=='Mappa' || label=='Map'){
                setTimeout(GM.buildMaps,500);
                $el.attr('mutex',1);
            }
        });

        

    },

    buildMaps: function(){
        var lat = GM.lat;
        var lng = GM.lng;
        var zoom = GM.zoom;
        var name = GM.name;
        var desc = GM.desc;
        var css = GM.css;
        var img = GM.img;
        var icon = GM.icon;

        var map = new GMap2(document.getElementById("google-map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(lat,lng), zoom);
        //map.enableGoogleBar();

        var html_img = '';
        
        if(img){
            html_img = '<img src="'+ASAP.LIVESITE.URL+'/'+img+'" />';
        }

        var html = '<div class="map-balloon '+css+'"><span class="title"><strong>' + name + '</strong></span>'+html_img+'<span class="text">'+desc+'</span></div>';
        var z = 17 - zoom;
        var panoramioUrl = 'http://www.panoramio.com/plugin/?lt='+lat+'&amp;ln='+lng+'&amp;z='+z+'&amp;k=2';

        //Panoramio
        var panoBlock = jQuery('#panoramio-map');
        jQuery('iframe',panoBlock).attr('src', panoramioUrl);

        //custom icon
        var cIcon = new GIcon();
        cIcon.image = ASAP.LIVESITE.URL+'/'+icon;
        cIcon.iconSize = new GSize(32,37);
        cIcon.iconAnchor = new GPoint(0,18);
        cIcon.infoWindowAnchor = new GPoint(16, 18);

        // Place a marker in the center of the map and open the info window
        var marker = new GMarker(map.getCenter() , cIcon);
        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(html);
        });
        map.addOverlay(marker);
        marker.openInfoWindowHtml(html);

        var point = new GLatLng(lat,lng);
        var panoramaOptions = {
            latlng:point,
            features: {
                streetView: true,
                userPhotos: true
            },
            userPhotoOptions: {
                photoRepositories: [ 'panoramio', 'picasa']
            }
        };
        var pano = new GStreetviewPanorama(document.getElementById("street-view"), panoramaOptions);
 
        GEvent.addListener(pano);
        GEvent.addListener(pano,'error',function(errorCode){
            jQuery("#street-view").hide();
        });
    }
}
