window.sin={},_.extend(sin,Backbone.Events),sin.m={},sin.pages={},sin.pages.unload=function(){var a,b,c,d;c=sin.pages,d=[];for(a in c)b=c[a],d.push(typeof b.unload=="function"?b.unload():void 0);return d},sin.pages.load=function(){return $(".modulable").each(function(){var a;a=$(this).data("module");if(a!=null)return sin.pages[a].load()})},sin.util={assetPath:function(a){return"/assets/"+a},loadImage:function(a,b,c){var d;return c==null&&(c=b,b=a,a=null),d=_.once(function(){return c!=null?c.call(a):void 0}),a==null&&(a=new Image),a.src="",$(a).load(d),a.src=b,a}},function(){var a,b,c=function(a,b){return function(){return a.apply(b,arguments)}},d=Object.prototype.hasOwnProperty,e=function(a,b){function e(){this.constructor=a}for(var c in b)d.call(b,c)&&(a[c]=b[c]);return e.prototype=b.prototype,a.prototype=new e,a.__super__=b.prototype,a};b="naked",a=function(){function a(){this.update=c(this.update,this),this.getHandle=c(this.getHandle,this),this.setHandle=c(this.setHandle,this),a.__super__.constructor.apply(this,arguments)}return e(a,Backbone.Model),a.prototype.assetsToLoad={naked:["dressme.png","dressme_footer.png","doll.jpg","picture.png","menu/portfolio.png","menu/servizi.png","menu/contatti.png","menu/innovo.png"],romantic:["body.jpg","dressme.png","dressme_footer.jpg","doll.jpg","picture.png","menu/portfolio.png","menu/servizi.png","menu/contatti.png","menu/innovo.png"],business:["body.jpg","dressme.png","dressme_footer.jpg","doll.png","picture.png","menu/portfolio.png","menu/servizi.png","menu/contatti.png","menu/innovo.png"],ground:["body.png","dressme.png","dressme_footer.png","doll.png","picture.png","menu/portfolio.png","menu/servizi.png","menu/contatti.png","menu/innovo.png"],sand:["body.jpg","dressme.png","dressme_footer.jpg","doll.png","picture.png","menu/portfolio.png","menu/servizi.png","menu/contatti.png","menu/innovo.png"]},a.prototype.setHandle=function(a){var b;b=a!==this.getHandle(),this.set({handle:a});if(b)return this.update()},a.prototype.getHandle=function(){var a;return(a=this.get("handle"))!=null?a:b},a.prototype.update=function(a){var c,d,e=this;return c=!sin.m.spinner.isShown,d=function(){var d,f,g;return d=e.getHandle(),f=(g=$("body").data("dress"))!=null?g:b,e.loadAssetsFor(d,function(){var b=this;return $("body").removeClass(f).addClass(d).data("dress",d),setTimeout(function(){return sin.trigger("layout:changed"),c?sin.m.spinner.hide(a!=null?a:function(){}):typeof a=="function"?a():void 0},700)})},c?sin.m.spinner.show(d):d()},a.prototype.loadAssetsFor=function(a,b){var c,d,e,f,g,h,i,j;d=(i=this.assetsToLoad[a])!=null?i:[],e=_.after(d.length,_.once(function(){return typeof b=="function"?b():void 0})),j=[];for(g=0,h=d.length;g<h;g++)c=d[g],f="/assets/images/"+a+"/"+c,j.push(sin.util.loadImage(f,e));return j},a}(),sin.m.currentDress=new a}.call(this),function(){var a,b;b=function(a){var b,c;sin.m.spinner.show(),b=$("body").data("section");if(a===b)return;return c=a.replace("/","_"),$("body").data("section",c),$.get("/"+a+"/fragment",function(a){var d,e=this;return d=$("#dx_text > .wrapper"),sin.pages.unload(),d.empty().removeClass("section-"+b).html(a),sin.pages.load(),d.addClass("section-"+c),setTimeout(function(){return sin.trigger("layout:changed"),sin.m.spinner.hide()},200)})},a=Backbone.Router.extend({routes:{"":"home",home:"home",portfolio:"portfolio",servizi:"services",innovo:"innovo","contatti/new":"contacts"},start:function(){return Backbone.history.start({pushState:!0})},home:function(){return b("home")},portfolio:function(){return b("portfolio")},services:function(){return b("servizi")},innovo:function(){return b("innovo")},contacts:function(){return b("contatti/new")}}),sin.m.workspace=new a}.call(this),$(function(){var a,b,c,d;return a=function(a,b){var c,d,e,f,g,h;b==null&&(b={}),h=[];for(f=0,g=a.length;f<g;f++)e=a[f],b.complete!=null&&(c=$(e).data("hideCallbacks"),c.push(b.complete),$(e).data("hideCallbacks",c)),d=$(e).data("hidingTimeout"),d==null?h.push($(e).data("hidingTimeout",setTimeout(function(){var a,b,c,d;$(e).data("hidingTimeout",null),$(e).data("isShown",!1),d=$(e).data("hideCallbacks");for(b=0,c=d.length;b<c;b++)a=d[b],a();return $(e).data("hideCallbacks",[]),$(e).hide()},150))):h.push(void 0);return h},c=function(a,b){var c,e,f,g,h;b==null&&(b={}),h=[];for(f=0,g=a.length;f<g;f++)e=a[f],c=$(e).data("hidingTimeout"),c!=null&&(clearTimeout(c),$(e).data("hidingTimeout",null)),$(e).show(),$(e).data("isShown",!0),Modernizr.cssanimations||d($(e)),b.complete!=null?h.push(_.defer(b.complete)):h.push(void 0);return h},d=function(a){return $(a).each(function(a){var b=this;return $(a).children("img").rotate({angle:0,animateTo:360,duration:2e3,callback:function(){if(a.data("isShown"))return d(a)}})})},b=function(a,b){var c,d,e,f,g;g=[];for(e=0,f=a.length;e<f;e++)d=a[e],Modernizr.cssanimations?$(d).append('<div class="image animated"></div>'):(c=sin.util.loadImage(sin.util.assetPath("images/spinner.png")),$(d).append($(c).addClass("image"))),$(d).addClass("spinner"),$(d).data("hideCallbacks",[]),g.push($(d).hide());return g},$.fn.spinner=function(d,e){if(d==null)return b(this,e);switch(d){case"hide":return a(this,e);case"show":return c(this,e)}}}),function(){var a,b=function(a,b){return function(){return a.apply(b,arguments)}};a=function(){function a(){this.onWindowResize=b(this.onWindowResize,this),this.exec=b(this.exec,this),this.show=b(this.show,this),this.hide=b(this.hide,this),this.init=b(this.init,this),this.init=_.once(this.init)}return a.prototype.isShown=!1,a.prototype.hideCallbacks=[],a.prototype.init=function(){return $("#spinner").spinner(),this.onWindowResize=_.throttle(this.onWindowResize),$(window).resize(this.onWindowResize),$("body").scroll(this.onWindowResize),this},a.prototype.hide=function(a){return $("#spinner").spinner("hide",{complete:a}),this},a.prototype.show=function(a){return $("#spinner").spinner("show",{complete:a}),this.onWindowResize(),this},a.prototype.exec=function(a){var b=this;return this.show(function(){return a(),b.hide()}),this},a.prototype.onWindowResize=function(){return $("#spinner").css({width:$(window).width()+"px",height:$(document).height()+"px"})},a}(),sin.m.spinner=new a}.call(this),function(){var a,b=function(a,b){return function(){return a.apply(b,arguments)}};a=function(){function a(){this.update=b(this.update,this),this.onWindowResize=b(this.onWindowResize,this),this.init=b(this.init,this),this.init=_.once(this.init)}return a.prototype.footerFirstTime=!0,a.prototype.init=function(){return $(window).resize(this.onWindowResize),sin.bind("layout:changed",this.update),this.update()},a.prototype.onWindowResize=function(){var a,b,c,d;return a=$("#pagina"),d=$("#dx_text"),b=Math.max(a.offset().top+a.height()-20,d.offset().top+d.height()+40),c=Math.max($(window).height()+$("body").scrollTop(),b+$("#footer").height()),$("body").css({height:c})},a.prototype.update=function(){return this.onWindowResize()},a}(),sin.m.layout=new a}.call(this),function(){var a,b,c,d,e=function(a,b){return function(){return a.apply(b,arguments)}},f=Object.prototype.hasOwnProperty,g=function(a,b){function d(){this.constructor=a}for(var c in b)f.call(b,c)&&(a[c]=b[c]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};(c=sin.ns)==null&&(sin.ns={}),(d=(b=sin.ns).dresskit)==null&&(b.dresskit={}),a={src:sin.util.assetPath("images/dresskit/dummy.png"),left:0,width:94,height:349},sin.ns.dresskit.Doll=function(){function b(b,c){this.stage=b,c==null&&(c={}),this.init=e(this.init,this),_.extend(this,Backbone.Events),this.options=_.defaults(c,a),this.target=$('<div class="unit"></div>'),this.target.appendTo(this.stage)}return b.prototype.init=function(a){var b,c=this;return sin.util.loadImage(b=new Image,this.options.src,function(){var d,e;return c.target.data("dummy",c).css({backgroundImage:"url("+b.src+")",width:(d=b.naturalWidth)!=null?d:c.options.width,height:(e=b.naturalHeight)!=null?e:c.options.height,left:c.options.left}),typeof a=="function"?a():void 0})},b.prototype.left=function(){return this.options.left},b.prototype.top=function(){return 0},b.prototype.canAcceptDress=function(){return this.dress===null},b.prototype.setDress=function(a){if(a!=null){if(this.dress!=null)throw"Alredy a dress here";this.dress=a,this.trigger("dressAdd",this.dress)}else this.dress&&(this.trigger("dressRemove",this.dress),this.dress=null);return this.setDroppableEnabled()},b.prototype.setDroppableEnabled=function(){return this.target.droppable({disabled:!this.canAcceptDress()})},b}(),sin.ns.dresskit.Naked=function(){function a(b,c){a.__super__.constructor.call(this,b,c),this.target.addClass("naked")}return g(a,sin.ns.dresskit.Doll),a.prototype.canAcceptDress=function(){return!0},a}()}.call(this),function(){var a,b,c,d,e=function(a,b){return function(){return a.apply(b,arguments)}};(c=sin.ns)==null&&(sin.ns={}),(d=(b=sin.ns).dresskit)==null&&(b.dresskit={}),a={width:94,height:349},sin.ns.dresskit.Dress=function(){function b(b,c){this.stage=b,c==null&&(c={}),this.onMouseMove=e(this.onMouseMove,this),this.attachTo=e(this.attachTo,this),this.init=e(this.init,this),this.options=_.defaults(c,a),this.target=$('<canvas class="dress hover-alpha"></canvas>'),this.target.appendTo(this.stage.target)}return b.prototype.init=function(a){var b,c=this;return sin.util.loadImage(b=new Image,this.options.src,function(){var d,e;return c.target.data("dress",c).attr({width:(d=b.naturalWidth)!=null?d:c.options.width,height:(e=b.naturalheight)!=null?e:c.options.height}),c.target[0].getContext("2d").drawImage(b,0,0),c.target.mousemove(c.onMouseMove),typeof a=="function"?a():void 0})},b.prototype.attachTo=function(a,b){var c=this;return b==null&&(b=!1),b?this.target.addClass("moving").animate({left:a.left(),top:a.top()},function(){return c.attachTo(a,!1),c.target.removeClass("moving")}):(this.doll!=null&&this.doll.setDress(null),this.doll=a,this.doll.setDress(this),this.target.css({left:this.doll.left(),top:this.doll.top()}))},b.prototype.onMouseMove=function(a){var b,c,d,e,f,g,h,i,j,k,l;c=this.target[0].getContext("2d"),d=c.getImageData(0,0,this.options.width,this.options.height),g=(i=(j=a.offsetX)!=null?j:a.layerX)!=null?i:a.pageX-this.target.offset().left,h=(k=(l=a.offsetY)!=null?l:a.layerY)!=null?k:a.pageY-this.target.offset().top,e=(g+h*d.width)*4,b=d.data[e+3],f=b>0&&(this.stage.draggingObj==null||this.stage.draggingObj===this.target[0]);if(f&&this.target.hasClass("hover-alpha"))return this.target.addClass("hover-opaque").removeClass("hover-alpha");if(!f&&this.target.hasClass("hover-opaque"))return this.target.removeClass("hover-opaque").addClass("hover-alpha")},b}()}.call(this),function(){var a,b,c,d,e=function(a,b){return function(){return a.apply(b,arguments)}};(c=sin.ns)==null&&(sin.ns={}),(d=(b=sin.ns).dresskit)==null&&(b.dresskit={}),a={width:514,height:348},sin.ns.dresskit.Scene=function(){function b(b,c){this.target=b,c==null&&(c={}),this.nakedDressAddedHandler=e(this.nakedDressAddedHandler,this),this.nakedDressRemovedHandler=e(this.nakedDressRemovedHandler,this),this.onDressDrop=e(this.onDressDrop,this),_.extend(this,Backbone.Events),this.options=_.defaults(c,a),this.naked=new sin.ns.dresskit.Naked(this.target,{src:sin.util.assetPath("images/dresskit/naked.png")}),this.naked.bind("dressRemove",this.nakedDressRemovedHandler),this.naked.bind("dressAdd",this.nakedDressAddedHandler),this.initObjects({business:new sin.ns.dresskit.Dress(this,{src:sin.util.assetPath("images/dresskit/business.png"),left:122}),romantic:new sin.ns.dresskit.Dress(this,{src:sin.util.assetPath("images/dresskit/romantic.png"),left:234}),ground:new sin.ns.dresskit.Dress(this,{src:sin.util.assetPath("images/dresskit/ground.png"),left:329}),sand:new sin.ns.dresskit.Dress(this,{src:sin.util.assetPath("images/dresskit/sand.png"),left:411})})}return b.prototype.initObjects=function(a){var b,c,d,e,f,g,h,i,j=this;this.dolls=[],this.dresses={};for(e in a)d=a[e],c=new sin.ns.dresskit.Doll(this.target,{left:d.options.left}),this.dolls.push(c),this.dresses[d.handle=e]=d,d.attachTo(c);this.target.find("canvas.dress").draggable({handle:".hover-opaque",cancel:".hover-alpha",revert:"invalid",cursor:"move",start:function(a,b){return this.draggingObj=a.target,$(a.target).addClass("moving"),!0},stop:function(a,b){return this.draggingDress=null,$(a.target).removeClass("moving"),!0}}),this.target.find("div.unit").each(function(a,b){return $(b).droppable({accept:"canvas.dress",drop:function(a,c){return j.onDressDrop($(b),a,c)}})}),this.naked.setDroppableEnabled(),h=this.dolls,i=[];for(f=0,g=h.length;f<g;f++)b=h[f],i.push(b.setDroppableEnabled());return i},b.prototype.onDressDrop=function(a,b,c){var d;return this.ignoreNakedRemove=this.ignoreNakedAdd=!1,d=a.data("dummy"),d.dress!=null&&(this.ignoreNakedRemove=!0,d.dress.attachTo(this.getFirstFreeDoll(),!0)),c.draggable.data("dress").attachTo(d,!0)},b.prototype.init=function(a){var b,c,d,e,f,g,h,i,j;e=1+this.dolls.length+_(this.dresses).values().length,a=_.after(e,_.once(a)),this.naked.init(a),h=this.dolls;for(f=0,g=h.length;f<g;f++)b=h[f],b.init(a);i=this.dresses,j=[];for(d in i)c=i[d],j.push(c.init(a));return j},b.prototype.setCurrentDress=function(a){var b;b=this.dresses[a];if(b!=null||b===this.naked.dress)return;return this.ignoreNakedRemove=this.ignoreNakedAdd=!0,this.naked.dress!=null&&this.naked.dress.attachTo(this.getFirstFreedoll()),b.attachTo(this.naked)},b.prototype.getFirstFreeDoll=function(){var a,b,c,d,e;e=this.dolls;for(c=0,d=e.length;c<d;c++)a=e[c],a.dress==null&&(b=a);return b},b.prototype.nakedDressRemovedHandler=function(){if(!this.ignoreNakedRemove)return this.trigger("dresschange",null)},b.prototype.nakedDressAddedHandler=function(a){if(!this.ignoreNakedAdd)return this.trigger("dresschange",a.handle)},b}()}.call(this),function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}};(d=sin.ns)==null&&(sin.ns={}),(e=(c=sin.ns).dresskit)==null&&(c.dresskit={}),a="dresskit_swf",b={width:514,height:348},sin.ns.dresskit.Fallback=function(){function c(c,d){this.container=c,d==null&&(d={}),this.dressChanged=f(this.dressChanged,this),this.setCurrentDress=f(this.setCurrentDress,this),this.flashInited=f(this.flashInited,this),_.extend(this,Backbone.Events),this.options=_(d).defaults(b),this.container.append('<div id="'+a+'"><p>Installa il Flash Player per vedere il Dresskit</p></div>'),swfobject.embedSWF(sin.util.assetPath("dresskit.swf"),a,this.options.width,this.options.height,"10.0.0",{wmode:"transparent"})}return c.prototype.init=function(a){return typeof a=="function"?a():void 0},c.prototype.flashInited=function(){this.flashStarted=!0;if(this.dressInQueue!=null)return this.setCurrentDress(this.dressInQueue),this.dressInQueue=null},c.prototype.setCurrentDress=function(b){return this.flashStarted?$("#"+a).setCurrentDress(b):this.dressInQueue=b},c.prototype.dressChanged=function(a){return this.trigger("dresschange",a)},c}()}.call(this),function(){var a,b=function(a,b){return function(){return a.apply(b,arguments)}};a=function(){function a(){this.update=b(this.update,this),this.init=b(this.init,this),this.init=_.once(this.init)}return a.prototype.init=function(){return sin.m.currentDress.bind("change:handle",this.update)},a.prototype.update=function(){var a,b,c;return this.init(),b=sin.m.currentDress.getHandle(),c=$("#menu"),a=c.find(".card"),a.each(function(){var a,c,d;return a=$(this),c=a.data("resource"),Modernizr.csstransforms?d="/assets/images/"+b+"/menu/"+c+".png":d="/assets/images/"+b+"/menu/degraded/"+c+".png",a.empty().append('<img src="'+d+'" />')})},a}(),sin.m.menu=new a}.call(this),sin.pages.portfolio={items:["seasonm","gaddi","distretto","seaslibretto","natale","giorgione","lago","part","genio","rp","seassito"],wasLoadingImage:!1,initSidebar:function(){var a,b,c,d;this.sidebar=$('<div id="portfolio_sidebar" style="display: none"></div>'),$("body").append(this.sidebar),d=this.items;for(b=0,c=d.length;b<c;b++)a=d[b],this.sidebar.append('<div id="'+a+'" class="port"></div>');return $("body").append('<div id="portfolio_spinner"></div>'),this.spinner=$("#portfolio_spinner"),this.spinner.spinner()},load:function(){return this.sidebar=$("#portfolio_sidebar"),this.sidebar.length===0&&this.initSidebar(),this.sidebar.show(),this.target=$("#immagine"),this.reset(),sin.m.currentDress.bind("change:handle",this.reset),$(document).mousemove(this.onMouseMove).mouseleave(this.onMouseOut)},unload:function(){var a,b;return $(document).unbind("mousemove",this.onMouseMove).unbind("mouseleave",this.onMouseOut),(a=this.sidebar)!=null&&a.hide(),(b=this.spinner)!=null?b.spinner("hide"):void 0},onMouseMove:function(a){var b,c,d;d=$(a.target);if(!d.is(".port"))return this.onMouseOut();this.cover||(this.cover=this.target.css("background-image")),b=d.attr("id");if(this.currentZoomed!==b)return this.currentZoomed=b,this.showPortfolioImage(b),c=$(".section-portfolio .desc"),c.not("."+b).hide(),c.filter("."+b).show(),sin.trigger("layout:changed")},showPortfolioImage:function(a){var b,c=this;return this.target.css({backgroundImage:"none"}),this.wasLoadingImage=!0,this.spinner.spinner("show"),b=sin.util.assetPath("images/"+sin.m.currentDress.getHandle()+"/portfolio/"+a+".png"),sin.util.loadImage(b,function(){if(c.currentZoomed===a&&c.wasLoadingImage)return c.spinner.spinner("hide"),c.target.css({backgroundImage:"url("+b+")"}),c.wasLoadingImage=!1})},onMouseOut:function(a){return sin.m.spinner.hide(),this.wasLoadingImage&&(this.wasLoadingImage=!1),this.reset()},reset:function(){var a,b;return b=sin.m.currentDress.getHandle(),this.target.css({backgroundImage:"url(/assets/images/"+b+"/picture.png)"}),this.currentZoomed=null,a=$(".section-portfolio .desc"),a.not(".intro").hide(),a.filter(".intro").show(),sin.trigger("layout:changed")}},_.bindAll(sin.pages.portfolio),sin.pages.contact={load:function(){return this.target=$("#testo form"),this.target.ajaxForm({beforeSubmit:function(){return sin.m.spinner.show()},success:this.contactSent,dataType:"json"})},contactSent:function(a){var b,c,d,e,f,g,h,i;if(a.success)f=$("#testo"),f.empty(),f.append('<h4 class="big"><span>'+a.data+"</span></h4>");else{e=$("#testo .output"),e.empty(),b=$('<div class="error_explanation"></div>'),e.append(b),b.append("<h5>Il messaggio non pu&ograve; essere inviato</h5>"),c=$("<ul></ul>"),b.append(c),i=a.data;for(g=0,h=i.length;g<h;g++)d=i[g],c.append("<li>"+d+"</li>")}return sin.trigger("layout:changed"),sin.m.spinner.hide()},unload:function(){}},_.bindAll(sin.pages.contact),$(function(){var a,b,c,d,e,f,g,h;return $(document).bind("selectstart",function(a){if($(a.target).parentsUntil("canvas").length>0)return!1}),sin.m.spinner.init(),sin.m.spinner.show(),sin.m.layout.init(),b=$("#dress_me"),a=b.children(".kit"),c=b.children(".footer"),sin.m.menu.update(),f=function(b){var c=this;return a.hasClass("shown")?a.animate({height:0},500,function(){return a.removeClass("shown")}):a.animate({height:348},500,function(){return a.addClass("shown")})},h=function(b){var c=this;if(a.hasClass("shown"))return setTimeout(function(){return a.animate({height:0},500,function(){a.removeClass("shown");if(b!=null)return _.defer(b)})},100);if(b!=null)return _.defer(b)},e=function(a){var b=this;return h(function(){return sin.m.currentDress.setHandle(a)})},g=function(){return c.click(f),sin.dresskit.setCurrentDress(sin.m.currentDress.get("handle")),sin.dresskit.bind("dresschange",e),sin.pages.load()},sin.m.spinner.show(),sin.m.currentDress.update(),sin.m.workspace.start(),d=_.memoize(function(a){return a.substring(a.lastIndexOf("/")+1)}),$("#menu").find("a").click(function(a){var b=this;return h(function(){var a;return a=$(b).data("section")||d(b.href),sin.m.workspace.navigate(a,!0)}),a.preventDefault()}),b=$("#dress_me"),a=b.children(".kit"),Modernizr.canvas?sin.dresskit=new sin.ns.dresskit.Scene(a):sin.dresskit=new sin.ns.dresskit.Fallback(a),sin.dresskit.init(g),sin.m.spinner.hide()})
