    function loadCatalogue(url) {
        $('#catalogue-wrapper:hidden').slideDown(function() {
            curvyCorners.redraw();
        });
        $('#catalogue').empty();
        $('#catalogue').flash({
            swf: url.split('?')[0],
            height: 380,
            width: '100%',
            params: {
                allowfullscreen: true,
                menu: false,
                wmode: 'transparent',
                flashvars: url.split('?')[1] || {}
            }
        });
    }
    
    function loadMap(point) {
        var mapCanvas = document.getElementById("mapsearch");
        mapCanvas.style.height = '300px';
        var map = new GMap2(mapCanvas);
        map.setCenter(point, 13);
        map.setUIToDefault();
        var marker = new GMarker(point);
        map.addOverlay(marker);
        GEvent.addListener(marker, 'click', function() {
            this.openInfoWindowHtml("<b>Giupyland</b><br />Via E. Fermi 22, 80010 Villaricca (Na)");
        });        
        GEvent.trigger(marker, 'click');
        curvyCorners.redraw();
    }

    $(window).bind('load', function(){
        if ( $.browser.opera || $.browser.msie ) {
            curvyCorners({
                tl: { radius: 10 },
                tr: { radius: 10 },
                bl: { radius: 10 },
                br: { radius: 10 },
                antiAlias: true
            } , ".rounded");
            curvyCorners({
                tl: { radius: 6 },
                tr: { radius: 6 },
                bl: { radius: 6 },
                br: { radius: 6 },
                antiAlias: true
            } , ".small-label");
            curvyCorners({
                tl: { radius: 6 },
                tr: { radius: 6 },
                antiAlias: true
            } , "h2");
            curvyCorners({
                tl: { radius: 6 },
                tr: { radius: 6 },
                bl: { radius: 6 },
                br: { radius: 6 },
                antiAlias: true
            } , "#box-banner-12");
            curvyCorners({
                bl: { radius: 6 },
                br: { radius: 6 },
                antiAlias: true
            } , ".box-banner");
        }
        $.datepicker.setDefaults($.datepicker.regional['it']);
        $.datepicker.setDefaults({
            constrainInput: true,
            numberOfMonths: 2,
            showButtonPanel: true
        });
        $('#sidebar-departure_date').datepicker({minDate: +7});
        $('#arrival_date:not([readonly])').each(function() {
            var defaultMinDate = +7;
            var options = eval('(' + ($(this).attr('accept') || '{}') + ')');

            if ( options.min )
            {
                var defaultDate = new Date();
                defaultDate.setDate(defaultDate.getDate() + defaultMinDate);
                var minDate = new Date();
                minDate.setTime(options.min);

                if ( defaultDate.getDate() > minDate.getDate() )
                {
                    minDate = defaultDate;
                }
            }
            else
            {
                minDate = +7;
            }

            if ( options.max )
            {
                var maxDate = new Date();
                maxDate.setTime(options.max);
            }
            else
            {
                maxDate = null;
            }

            $(this).datepicker({minDate: minDate, maxDate: maxDate});
        });
        $('#departure_date').datepicker({minDate: +8});
        $('#nation').change(function() {
            if ( $(this).val() == 82 )
            {
                $('#city-field').show();
            }
            else
            {
                $('#city-field').hide();
            }
        });
        $('#nation').change();

        $('#children').keyup(function() {
            var childrenField = $('#children_field');
            var children      = parseInt($(this).val(), 10);
            var maxChildren   = 20;

            if( isNaN(children) )
            {
                for ( var i = 1; i <= maxChildren; i++ )
                {
                    $('#child_age_field_' + i).remove();
                }
            }
            else
            {
                children = Math.min(Math.max(children, 0), maxChildren);

                for ( var i = 1; i <= children; i ++ )
                {
                    if ( !$('#child_age_field_' + i).length )
                    {
                        var childAgeField = $(
                              '<label id="child_age_field_' + i + '" for="child_age_' + i + '">'
                            +     '<span>Età bambino ' + i + ' (richiesto)</span>'
                            +     '<input id="child_age_' + i + '" name="child_age_' + i + '" type="text" value="0" />'
                            + '</label>'
                        );

                        if ( i == 1 )
                        {
                            childAgeField.insertAfter(childrenField);
                        }
                        else
                        {
                            childAgeField.insertAfter($('#child_age_field_' + (i - 1)));
                        }
                    }
                }

                for ( var i = children + 1; i <= maxChildren; i++ )
                {
                    $('#child_age_field_' + i).remove();
                }
            }

            curvyCorners.redraw();
        });

        $('#quantity').keyup(function(){
            var price    = $('#price').val(),
                quantity = $(this).val();

            if ( isNaN(price) || isNaN(quantity) || quantity <= 0 )
            {
                $('span', '#total_price').text(0);

                return;
            }

            var decimals = Math.floor((price * quantity - Math.floor(price * quantity)) * 100);

            $('span', '#total_price').text(Math.floor(price * quantity) + ',' + ( decimals > 0 ? decimals : '00'));
        });
        $('#quantity').keyup();

        $('#catalogues a').click(function() {
            loadCatalogue($(this).attr('href'));

            return false;
        });
        $('a.external').click(function(){
            window.open($(this).attr('href'));

            return false;
        });
        
        var mapCanvas = $('#mapsearch');
        
        if ( mapCanvas.length && GBrowserIsCompatible() ) {
            var geocoder = new GClientGeocoder();
            geocoder.getLatLng('Via E.Fermi 22, 80010 Villaricca (Na)', loadMap) ;
        }
    });