var Lazzo={};Lazzo.Catching=Class.create({initialize:function(){},error:function(b,a){try{console.log(b+" throws error:");console.log(a)}catch(c){}}});Lazzo.catching=new Lazzo.Catching();Lazzo.BroadCast=Class.create({initialize:function(){this.handlers=$H()},addHandler:function(b,c){if(this.handlers.get(b)){var a=this.handlers.get(b)}else{var a=$A()}a.push(c);this.handlers.set(b,a)},broadCast:function(c,b){var a=this.handlers.get(c);if(a){a.each(function(d){var e=function(){try{d(b)}catch(f){Lazzo.catching.error("Listener for "+c,f)}};e.defer()})}},hasHandlersFor:function(a){return this.handlers.get(a)},removeHandlersFor:function(a){this.handlers.unset(a)}});Lazzo.broadCast=new Lazzo.BroadCast();Lazzo.Mixin=Class.create({log:function(a){try{console.log(a)}catch(b){}},broadcast:function(b,a){Lazzo.broadCast.broadCast(b,a)},listen:function(a,b){Lazzo.broadCast.addHandler(a,b)},resetAndListen:function(a,b){Lazzo.broadCast.removeHandlersFor(a);Lazzo.broadCast.addHandler(a,b)},hasListenersFor:function(a){return typeof Lazzo.broadCast.hasHandlersFor(a)!="undefined"},setGlobal:function(a,b){Lazzo.Mixin.global.set(a,b)},getGlobal:function(a){return Lazzo.Mixin.global.get(a)},handle:function(b,c){var a=[];c.each(function(d){a.push(b.on(d,this["handle"+d.capitalize()].bind(this)))}.bind(this));return a},readConfig:function(c,b){var a=c.readAttribute("data-widget-config");if(!a){return{}}a=a.gsub("'",'"');if(!a.isJSON()){throw"No valid json config";return}var d=a.evalJSON();if(!d[b]){throw"No valid config key";return}return d[b]},onchangedo:function(a,b){return a.on("change",b.bind(this))},getScrollContainer:function(b){if(this.scrollcontainer){return this.scrollcontainer}var b=b;var a=null;while((b=b.parentNode)&&b!==document.body){if(b.getStyle("overflow")!="visible"&&b.getStyle("overflow")!="hidden"){a=b}}if(!a){a=$(document.body)}this.scrollcontainer=a;return this.scrollcontainer}});Lazzo.Mixin.global=new Hash();Lazzo.ScrollToContent=Class.create(Lazzo.Mixin,{initialize:function(){var b=($$("html")[0].scrollHeight);var a=document.viewport.getHeight();if(b-a<262){$$("footer")[0].setStyle({paddingTop:400-(b-a)+"px"})}if(window.sessionStorage.getItem("has-scrolled")){$$("html")[0].scrollTop=262;document.body.scrollTop=262}else{$$("a").each(this.attachHandler.bind(this))}},attachHandler:function(a){a.on("click",this.doLinkClick.bind(this))},doLinkClick:function(a){var b,e=0,d=$$("html")[0],c=a.findElement("a");a.stop();b=setInterval(function(){e+=10;d.scrollTop=e;document.body.scrollTop=e;if(e>262){clearInterval(b);window.sessionStorage.setItem("has-scrolled","true");location.href=c.readAttribute("href")}},20)}});Lazzo.RunScrollToContent=function(){try{new Lazzo.ScrollToContent()}catch(a){Lazzo.catching.error("ScrollToContent",a)}};Lazzo.PhotoFader=Class.create(Lazzo.Mixin,{initialize:function(b){this.element=b;this.element.down("img").addClassName("active");var a=this.doFade.bind(this);setInterval(a,8000)},doFade:function(){var a=this.element.down(".active"),b;if(!a){a=this.element.down("img");a.addClassName("active")}b=a.next("img");if(!b){b=this.element.down("img")}this.element.select("img").invoke("removeClassName","active");b.addClassName("active")}});Lazzo.RunPhotoFader=function(){try{$$("*[data-widget~=photo-fader]").each(function(b){new Lazzo.PhotoFader(b)})}catch(a){Lazzo.catching.error("PhotoFader",a)}};Lazzo.ImageViewer=Class.create(Lazzo.Mixin,{initialize:function(a){this.element=a;this.image=this.element.down("img");this.imageStartSrc=this.image.readAttribute("src");this.element.select("ul li a").each(this.attach.bind(this));this.element.down("ul").on("mouseleave",this.loadStartImage.bind(this))},attach:function(a){a.on("mouseenter",this.loadImage.bind(this,a));a.on("click",function(b){b.stop()})},loadImage:function(b,a){a.stop();var c=b.down("img").readAttribute("src");this.image.writeAttribute("src",c);this.element.select("ul li").invoke("removeClassName","active");b.up("li").addClassName("active")},loadStartImage:function(){this.image.writeAttribute("src",this.imageStartSrc)}});Lazzo.RunImageViewer=function(){try{$$("*[data-widget~=image-viewer]").each(function(b){new Lazzo.ImageViewer(b)})}catch(a){Lazzo.catching.error("ImageViewer",a)}};Lazzo.AudioPlayer=Class.create(Lazzo.Mixin,{initialize:function(a){this.element=a;this.audio=this.element.down("audio");this.element.select("a").each(this.attach.bind(this))},attach:function(a){a.on("click",this.loadImage.bind(this,a))},createAudioSnippet:function(e,c){var b=new Element("audio",{autoplay:"true"});var d=new Element("source",{src:e,type:"audio/ogg"});var a=new Element("source",{src:c,type:"audio/mp3"});return b.insert(d).insert(a)},loadImage:function(b,a){a.stop();this.audio.remove();this.audio=this.createAudioSnippet(b.readAttribute("href"),b.readAttribute("data-mp3"));this.element.insert({top:this.audio});this.element.select("a").invoke("removeClassName","active");b.addClassName("active");this.audio.load();this.audio.play()}});Lazzo.RunAudioPlayer=function(){try{$$("*[data-widget~=audio-player]").each(function(b){new Lazzo.AudioPlayer(b)})}catch(a){Lazzo.catching.error("AudioPlayer",a)}};Lazzo.AjaxGet=Class.create(Lazzo.Mixin,{initialize:function(a){this.element=a;this.config=this.readConfig(this.element,"ajax-get");this.getAjax()},getAjax:function(){new Ajax.Request(this.config.url,{onSuccess:this.handleResponse.bind(this)})},handleResponse:function(e){if(e.responseText.isJSON()){var b=e.responseText.evalJSON();var a=b.items;var d=this.element;var f=this.config.shop}if(!a||a.size()==0){var c=$(this.config.emptyResultText).innerHTML;this.element.insert(c);return}a.each(function(m){var g=new Element("li");var l=new Element("span").update("&nbsp;");if(m.vega){l.addClassName("list2-v").update("v")}var k=new Element("span",{className:"price-1"}).update((m.price)?m.price:"&nbsp;");if(m.price=="2"){k.removeClassName("price-1");k.addClassName("price-2")}if(m.price=="3"){k.removeClassName("price-1");k.addClassName("price-3")}var j=new Element("span").update(m.title);var i=new Element("span").update(m.title_en);var h=new Element("a",{href:"http://twitter.com/#!/search/realtime/%23soupenzo"+m.id+" %23"+f+" "+m.title,target:"_blank"}).update("Twitter");g.insert(l).insert(k).insert(j).insert(i).insert(h);d.insert(g)})}});Lazzo.RunAjaxGet=function(){try{$$("*[data-widget~=ajax-get]").each(function(b){new Lazzo.AjaxGet(b)})}catch(a){Lazzo.catching.error("AjaxGet",a)}};var pad=function(b,a){var c="0";b=b+"";while(b.length<a){b=c+b}return b};var changeColor=function(b,e,h){b=b.replace(/^\s*|\s*$/,"");b=b.replace(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i,"#$1$1$2$2$3$3");var g=Math.round(e*256)*(h?-1:1),c=b.match(new RegExp("^rgba?\\(\\s*(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\s*,\\s*(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\s*,\\s*(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])(?:\\s*,\\s*(0|1|0?\\.\\d+))?\\s*\\)$","i")),f=!!c&&c[4]!=null?c[4]:null,a=!!c?[c[1],c[2],c[3]]:b.replace(/^#?([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])/i,function(){return parseInt(arguments[1],16)+","+parseInt(arguments[2],16)+","+parseInt(arguments[3],16)}).split(/,/),d;return !!c?"rgb"+(f!==null?"a":"")+"("+Math[h?"max":"min"](parseInt(a[0],10)+g,h?0:255)+", "+Math[h?"max":"min"](parseInt(a[1],10)+g,h?0:255)+", "+Math[h?"max":"min"](parseInt(a[2],10)+g,h?0:255)+(f!==null?", "+f:"")+")":["#",pad(Math[h?"max":"min"](parseInt(a[0],10)+g,h?0:255).toString(16),2),pad(Math[h?"max":"min"](parseInt(a[1],10)+g,h?0:255).toString(16),2),pad(Math[h?"max":"min"](parseInt(a[2],10)+g,h?0:255).toString(16),2)].join("")};var lighterColor=function(a,b){return changeColor(a,b,false)};var darkerColor=function(a,b){return changeColor(a,b,true)};Lazzo.Bootstrap=function(){Lazzo.RunScrollToContent();Lazzo.RunPhotoFader();Lazzo.RunImageViewer();Lazzo.RunAudioPlayer();Lazzo.RunAjaxGet()};document.on("dom:loaded",function(){Lazzo.Bootstrap()});
