

var set=function() {

function gallery() {

    var _cont=false,
        _gall=false,
        _cimg=false,
        onanim=false,
        first,last,
        interval=-1,

    resizeImg=function(el,lf) {
        var ax,bool,imw,imh;
        ax=$(el).attr('data').split(',');

        bool=$('#gallery').width()/$('#gallery').height()<ax[0]/ax[1]?0:1;

        if(bool) {
            imw=$('#gallery').width();
            imh=ax[1]*imw/ax[0];
        }
        else {
            imh=$('#gallery').height();
            imw=ax[0]*imh/ax[1];
        }

        ax=lf?lf:($('#gallery').width()-imw)/2;
        $(el).css({
            left:   ax+'px',
            width:  imw+'px',
            height: imh+'px'
        }).find('img').css({
            width:  imw+'px',
            height: imh+'px'
        });
    },

    checkCurrent=function(el) {
        $('#gallery_tool_cont').children('.current').removeClass('current');
        $('#gallery_tool_cont').children().eq(_gall.index(el)).addClass('current');
    },

    go=function(to,anm) {
        if(onanim) return;
        onanim=true;

        var time=1600,
            hide=_cimg,

        f_mdd=function() {
            _cimg=to;
            checkCurrent(_cimg);
        },

        f_end=function() {
            $(hide).hide();
            onanim=false;
        };

        if(anm==1 || anm==2) {
            if(anm==1) {
                resizeImg(to,$(window).width());
                $(_cimg).animate({ left: -$(to).width() }, { duration: time, easing: 'easeOutQuint' });
            }
            else if(anm==2) {
                resizeImg(to,-$(to).width());
                $(_cimg).animate({ left: $(window).width() }, { duration: time-400, easing: 'easeOutQuint' });
            }
            f_mdd();
            $(_cimg).fadeTo(0,1).animate({ left: ($(window).width()-$(_cimg).width())/2 },
            { duration: time, easing: 'easeOutQuint', complete: function() {
                f_end();
            }});
        }
        else {
            resizeImg(to);
            $(_cimg).fadeTo(100,0);
            f_mdd();
            $(_cimg).fadeTo(1000,1, function() {
                f_end();
            });
        }
    },

    prev=function(anim) {
        var el=$(_cimg).prev();
        if(!el.length) go(_gall.last(),anim);
        else go(el,anim);
    },

    next=function(anim) {
        var el=$(_cimg).next();
        if(!el.length) go(_gall.first(),anim);
        else go(el,anim);
    },

    play=function() {
        if(!interval) {
            interval=setInterval(function() {
                if(_gall && 1<_gall.length) next();
            },10000);
        }
    },

    stop=function() {
        if(interval) {
            clearInterval(interval);
            interval=false;
        }
    },

    stoppa=function() {
        if(interval) $('#gallery_tool_slide').click().mouseleave();
        toggleSlide(2);
    };

    this.setGallery=function(id) {
        stop();
        _cont=false;
        _gall=false;
        _cimg=false;
        $('#gallery, #gallery_controls, .gallery_container, .gallery_image').hide();
        var len=$(id).find('.gallery_image').length;
        if(0<len) {
            $('#gallery').show();
            _cont=$(id);
            _cont.show();
            _gall=_cont.find('.gallery_image');
            _cimg=_gall.first();
            _cimg.show();
            resizeImg(_cimg);

            if(1<len) {

                var imgs=_cont.find('img');

                imgs.fadeTo(0,0);
                $('#gallery_tool_cont').html('');
                $('#gallery_controls').show();
                $('#gallery_tool_slide').mouseleave();
                $('#gallery_controls').show();

                
                imgs.each(function() {
                    var fk=$(this).attr('src');
                    $(this).attr('fksrc', fk).attr('src','');
                });

                var floader=function(a) {
                    if(0<a.length) {
                        var el=a.first();
                        a.first().load(function(e) {
                            if(!el.parents('.gallery_container').is(':visible')) return;
                            if(interval==-1) {
                                interval=false;
                                $('#gallery_tool_cont').children().first().addClass('current');
                            }
                            var i=Math.abs(a.length-imgs.length);
                            $('<div/>').addClass('glltool'+(a==imgs?' current':'')).html((i<9?'0':'')+(i+1)).css('top',40*i+'px').appendTo('#gallery_tool_cont').fadeTo(0,0.8).click(function(e) { if($(this).hasClass('current')) return; stoppa(); go(el.parent()); });
                            el.show().fadeTo(800,1);
                            floader(a.not(el));
                        }).attr('src',el.attr('fksrc'));
                    }
                    else if(1<imgs.length && !interval) $('#gallery_tool_slide').click().mouseleave();
                }

                floader(imgs);
            }
            else {
                var x=_cont.find('.gallery_image').find('img');
                x.attr('src',x.attr('fksrc'));
            }
        }
    };

    this.resizeCurrent=function(id) {
        if(_cimg) resizeImg(_cimg);
    };

    $('.gallery_image_over').mouseenter(function(e) {
        $('#follower').fadeTo(300,1);
    }).mouseleave(function(e) {
        $('#follower').fadeTo(300,0);
    });

    $('#gallery_image_over_sx').click(function(e) {
        stoppa();
        prev(2);
    }).mousemove(function(e) {
        $('#follower').css({
            left: e.pageX+10+'px',
            top: e.pageY-$('#follower').height()/2+'px',
            backgroundImage: "url('/images/cmm/cursorIndOff.png')"
        });
    });

    $('#gallery_image_over_dx').click(function(e) {
        stoppa();
        next(1);
    }).mousemove(function(e) {
        $('#follower').css({
            left: e.pageX-$('#follower').width()-10+'px',
            top: e.pageY-$('#follower').height()/2+'px',
            backgroundImage: "url('/images/cmm/cursorAvOff.png')"
        });
    });
    
    $('#gallery_tool_slide').click(function(e) {
        if(interval) {
            stop();
            $(this).css('backgroundImage',"url('/images/tool/SlideShowPauseOv.png')");
        }
        else {
            play();
            $(this).css('backgroundImage',"url('/images/tool/SlideShowPlayOv.png')");
        }
    }).mouseenter(function(e) {
        if(interval) $(this).css('backgroundImage',"url('/images/tool/SlideShowPlayOv.png')");
        else $(this).css('backgroundImage',"url('/images/tool/SlideShowPauseOv.png')");
    }).mouseleave(function(e) {
        if(interval) $(this).css('backgroundImage',"url('/images/tool/SlideShowPlay.png')");
        else $(this).css('backgroundImage',"url('/images/tool/SlideShowPause.png')");
    });

}

    var gll=new gallery();

var wndw=function() {
    $(window).resize(function() {
		if($(window).width()<960) { $('#container').width('960px'); }
		else { $('#container').width('100%'); }
		if($(window).height()<580) { $('#container').height('580px'); }
		else { $('#container').height('100%'); }
        var x=$(window).height()-$('#box').height();
        $('#box').css('top',(0<x?x/2:0)+'px');
        if(gll) gll.resizeCurrent();
    }).resize();
}

var getHashParam = function(key,rt) {
    var h=window.location.hash,n=false;
    if(0<h.length) {
        var a,i=0;
        a=h.split('&');
        if($.isArray(a)) {
            while(!n && i<a.length) {
                if(a[i].split('=')[0]==key) n=a[i].split('=')[1];
                i++;
            }
        }
    }
    if(n) return n;
    else return rt;
}

var setHashParam = function(key,val) {
    var i=0,n=-1,h=window.location.hash,a=h.split('&'),nh=false;
    if($.isArray(a)) {
            while(n<0 && i<a.length) {
                if(a[i].split('=')[0]==key) n=i;
                i++;
            }
            if(-1<n) {
                a[n]=key+'='+val;
                nh=a.join('&');
            }
    }
    if(!nh) {
            nh=h+'&'+key+'='+val;
    }
    window.location.hash=nh;
    $('#input_url').val(nh);
}

    var crr=false,
        status=2,
        upHeight=$('#contents_box').height(),
        timeSlide=1000,
        timeCntStrips=2000,

    slideUp=function(f) {
        $('.sliderOut').hide();
        $('#contents_box').animate({
            height: upHeight+'px'
        },timeSlide,'swing',function() {
            $('.content').hide();
            $('#content_strip_btt').mouseenter(function(e) {
                $(this).css('background-image','url(/images/cmm/barTopOv.png)');
            }).mouseleave(function(e) {
                $(this).css('background-image','url(/images/cmm/barTop.png)');
            }).mouseleave();
            if($.isFunction(f)) f();
        });
    },

    slideDown=function(f) {
        $('.content').hide();
        $(crr).show();
        $('#contents_box').animate({
            height: '100%'
        },timeSlide,'swing',function() {
            $('.sliderOut').show();
            $('#content_strip_btt').mouseenter(function(e) {
                $(this).css('background-image','url(/images/cmm/barDwnOv.png)');
            }).mouseleave(function(e) {
                $(this).css('background-image','url(/images/cmm/barDwn.png)');
            }).mouseleave();
            if($.isFunction(f)) f();
        });
    },

    toggleSlide=function(dw,f) {
        if(status==2) { status=1; return 0; }
        $('#content_strip_btt').unbind('mouseenter mouseleave');
        if((dw==1 && status) || (!dw && status)) {
            status=0;
            slideDown(f);
            return timeSlide;
        }
        else if((dw==2 && !status) || (!dw && !status)) {
            status=1;
            slideUp(f);
            return timeSlide;
        }
        else return 0;
    },

    setStrips=function(w,f) {
        if(w) {
            $('.content_strip').stop().fadeTo(0,1).show(300).animate({
                width: w
            },timeCntStrips,'swing',function() {
                if($.isFunction(f)) f();
            });
        }
        else {
            $('.content_strip').stop().fadeTo(400,0,function() {
                $('.content_strip').hide();
                if($.isFunction(f)) f();
            });
        }
    },

    showPopup=function(el, error) {
        $('.popup').hide();
        $('#pop2').show();
        $('.pop_text').hide();
        var id=0;
        if(error) id=3;
        else if($(el).attr('id')=='form1') id=1;
        else if($(el).attr('id')=='form2') id=2;
        $('#pop_text'+id).show();
    },

    goContent=function(cnt) {
        if(crr==cnt) return;
        $('#gallery').hide();
        var orzzTime=1400,fixtm=100;
        $('#contents_box').css({ width: $('#box').width()*94/100-100+'px', height: '100%' });
        if($(crr).hasClass('fixed')) {
            $(crr).animate({ right: '100%' }, { duration: orzzTime, easing: 'easeOutQuint' });
            fixtm+=orzzTime;
        }
        fixtm+=toggleSlide(2);
        setTimeout(function() {
            var url=cnt.split('_')[1],
            go=function(_cnt) {
                var after=function() {
                    gll.setGallery('#gall_'+url);
                    $('.slider').show();
                    $('#contents_box').css({ width: $(_cnt).width()+'px' });
                };
                crr=_cnt;
                $('.content').hide();
                if(2<$('.content').not(crr).length) {
                    $('.content').not(crr).last().remove();
                    var id=$(crr).attr('id').split('_')[1];
                    id='#gall_'+id;
                    $('.gallery_container').not(id).last().remove();
                }
                var wd=$(_cnt).hasClass('fixed')?0:$(_cnt).css('width');
                $('#contents_box').css({ height: upHeight+'px' });
                setStrips(wd,function() {
                    setHashParam('page',url);
                    if(!$(_cnt).find('.contentBg').length) $('<div/>').addClass('contentBg').prependTo(_cnt);
                    $('.slider').each(function() {
                        if($(this).attr('nivosld')!='nivosld') {
                            $(this).nivoSlider({
                                pauseTime: 5000
                            }).attr('nivosld','nivosld').wrap('<div/>').parent().addClass('sliderOut');
                        }
                    }).hide();
                    $('.drawer').each(function() {
                        $(this).click(function() {
                            $('.camereOpen').removeClass('camereOpen');
                            $('.drawer_box').hide();
                            $(this).addClass('camereOpen').next().show();
                        });
                    }).first().click();
                    $('.contatti_form').each(function(i,el) {
                        if(!$(el).attr('bnd')) $(el).submit(function(e) {
                            e.preventDefault();
                            $(el).find('#contact_submit').hide();
                            $(el).find('#contact_reset').hide();
                            $.ajax({
                                url: $(el).attr('action'),
                                type: 'post',
                                data: {
                                    'contact[name]': $(el).find('#contact_name').val(),
                                    'contact[surname]': $(el).find('#contact_surname').val(),
                                    'contact[address]': $(el).find('#contact_address').val(),
                                    'contact[city]': $(el).find('#contact_city').val(),
                                    'contact[state]': $(el).find('#contact_state').val(),
                                    'contact[cap]': $(el).find('#contact_cap').val(),
                                    'contact[tel]': $(el).find('#contact_tel').val(),
                                    'contact[fax]': $(el).find('#contact_fax').val(),
                                    'contact[email]': $(el).find('#contact_email').val(),
                                    'contact[arrive_at][day]': $(el).find('#contact_arrive_at_day').val(),
                                    'contact[arrive_at][month]': $(el).find('#contact_arrive_at_month').val(),
                                    'contact[arrive_at][year]': $(el).find('#contact_arrive_at_year').val(),
                                    'contact[depart_at][day]': $(el).find('#contact_depart_at_day').val(),
                                    'contact[depart_at][month]': $(el).find('#contact_depart_at_month').val(),
                                    'contact[depart_at][year]': $(el).find('#contact_depart_at_year').val(),
                                    'contact[adults]': $(el).find('#contact_adults').val(),
                                    'contact[youngs]': $(el).find('#contact_youngs').val(),
                                    'contact[yage]': $(el).find('#contact_yage').val(),
                                    'contact[type]': $(el).find('#contact_type_1').is(':checked')?$(el).find('#contact_type_1').val():$(el).find('#contact_type_0').val(),
                                    'nltt': $(el).find('#contact_nltt_join').is(':checked') || $(el).attr('id')=='form2',
                                    'contact[email]': $(el).find('#contact_email').val(),
                                    'contact[message]': $(el).find('#contact_message').val(),
                                    'contact[_csrf_token]': $(el).find('#contact__csrf_token').val()
                                },
                                success: function(dat,statusReq) {
                                    if(dat=='OK') showPopup(el);
                                    else showPopup(el, true);
                                    $(el).find('#contact_submit').show();
                                    $(el).find('#contact_reset').show().click();
                                },
                                error: function (r,st,err) {
                                    showPopup(el, true);
                                    $(el).find('#contact_submit').show();
                                    $(el).find('#contact_reset').show();
                                }
                            });
                        }).attr('bnd','bnd');
                    }); 
                    if(wd) {
                        toggleSlide(1,function() {
                            after();
                        });
                    }
                    else {
                        $('#contents_box').css({ height: '100%' });
                        $(_cnt).css({ right: '100%' }).show().animate({ right: '0' },
                            { duration: orzzTime, easing: 'easeOutQuint', complete: function() {
                                after();
                            }
                        });
                    }
                });
            };
            if($(cnt).length) {
                go(cnt);
            }
            else {
                $.ajax({
                    url: './'+(url=='index'?'':url),
                    success: function(dat,statusReq) {
                        $(dat).appendTo('#contents_container');
                        var g=$('#contents_container').find('.gallery_container');
                        g.prependTo('#gallery');
                        $('.gallery_container').not(g).hide();
                        var el=$('.content').last().css('backgroundImage', 'none');
                        $('<div/>').addClass('contentBg').prependTo(el);
                        go('#'+$(el).attr('id'));
                    },
                    error: function (r,st,err) {
                        alert('Errore ['+st+','+err+']');
                        toggleSlide(1);
                    }
                });
            }
        },fixtm);
    };

    $('.menu_item').each(function(i,el) {
        $(el).click(function(e) {
            e.preventDefault();
            $('.popup').hide();
            $('.submenu').stop().animate({
                left: 0
            },400,'swing');
            var bold=$('.menu_item[sub=#'+$(el).parent().attr('id')+']');
            if(bold.length) bold.addClass('current');
            if($(el).attr('sub')) {
                $('.menu_item').removeClass('sub');
                $(el).addClass('sub');
                $($(el).attr('sub')).stop().animate({
                    left: '170px'
                },800,'swing');
            }
            if($(el).attr('data')) {
                $('.menu_item').removeClass('current sub');
                $(el).addClass('current');
                goContent('#content_'+$(el).attr('data'));
                if($(el).parent().hasClass('submenu')) $('.menu_item[sub=#'+$(el).parent().attr('id')+']').addClass('current');
            }
        });
    });

    $('#content_strip_btt').click(function(e) {
        toggleSlide();
    });

    var a=getHashParam('page')?getHashParam('page'):$('.content').length?$('.content').first().attr('id').split('_')[1]:false;
    if(a) $('.menu_item[data='+a+']').click();
    else $('#mnItemHome').click();
    
    new wndw();

    $('#change_lang_form a').click(function(e) {
        e.preventDefault();
        $('#input_language').val($(this).attr('href'));
        $('#change_lang_form').submit();
    });

    $('#newsletter').click(function(e) {
        $('.popup').not('#pop0').hide();
        $('#pop0').toggle();
    });

    $('#login').click(function(e) {
        $('.popup').not('#pop1').hide();
        $('#pop1').toggle();
    });

    $('.popup_close, #pop2_close').click(function(e) {
        $('.popup').hide();
    });
}

$(document).ready(function(e) {
    $('#contents_box').css({ width: 0, height: '33px' });
    $('.submenu').css({ left: 0 });
    $('.menu_item').removeClass('sub_cont');
    $('.content').css('backgroundImage', 'none');
    var preloaded=0,loaded=0,prog=0;
    $('#loader_line').show();
    setLine=function() {
        prog=((preloaded+loaded)/2)/loader_arr.length*100;
        $('#loader_line').stop().animate({
            width: prog+'%'
        },400,'linear');
    }
    fldr=function(img) {
        preloaded++;
        setLine();
        $('<img/>').appendTo('#loader').hide().load(function(e) {
            loaded++;
            setLine();
            if(prog==100)  {
                $('#loader').fadeTo(800,0,function() {
                    $('#loader').remove();
                    new set();
                    $('#menu_footer').fadeTo(0,0.8);
                });
            }
        }).attr('src',img);
    }
    for(var i=0;i<loader_arr.length; i++) fldr(loader_arr[i]);
});

