var Page=new (new Class({Implements:Events,EVENTS:{VIEWERSNAP:"viewersnap"},options:{constrainGridSize:{x:0,y:3}},settings:{itemSize:{x:173,y:153}},initialize:function(){if(!MAXOMEDIA.debug.settings.get("javascript")){return false}},setup:function(){this.build();this.initModules();this.guestbook.init()},build:function(){$("body-container").addClass("box");new Element("div",{id:"guestbook-viewport","class":"miniflick-viewport"}).wraps($("guestbook-element"));$$("#guestbook-element > li").addClass("miniflick-item");$("guestbook-element").addClass("miniflick-element").removeProperty("id")},initModules:function(){this.container=$("guestbook-viewport");this.element=$(document.body).getElement(".miniflick-element");this.items=this.element.getElements("li");this.items.forEach(function(a){a.set("title",a.get("text"))},this);this.tips=new Tips(this.items,{className:"tooltip"});$(document.body).getElement(".tooltip").setStyle("opacity",0.9);this.setupFlicker();this.initFlicker()},initFlicker:function(){this.flicker=new Drag.Flick(this.element,{container:this.container,onStart:function(){}.bind(this)},{onComplete:this.adjust.bind(this)})},setupFlicker:function(){this.settings.gridSize=this.getFlickerGridSize();this.settings.elementSize={x:this.settings.itemSize.x*this.settings.gridSize.x,y:this.settings.itemSize.y*this.settings.gridSize.y};this.element.setStyle("width",this.settings.elementSize.x)},getFlickerGridSize:function(){var a={};if(this.options.constrainGridSize.x){a.x=this.options.constrainGridSize.x}if(this.options.constrainGridSize.y){a.y=this.options.constrainGridSize.y}if(a.x){a.y=(this.items.length/a.x).ceil()}else{if(a.y){a.x=(this.items.length/a.y).ceil()}else{a.x=this.items.length.sqrt().toInt();while(this.items.length%a.x!==0){if(a.x-(this.items.length%a.x)<=2){break}a.x++}a.y=(this.items.length/a.x).toInt();if(this.items.length%a.y>0){a.y++}}}a.r=(a.x*a.y)-this.items.length;return a},adjust:function(){this.scrollToOffset(this.getOffsetFromPosition())},getOffsetFromPosition:function(){var a=(-this.flicker.element.getPosition(this.flicker.viewport).x/this.settings.itemSize.x).round();var b=(-this.flicker.element.getPosition(this.flicker.viewport).y/this.settings.itemSize.y).round();return{x:a,y:b}},scrollToOffset:function(a){this.flicker.fx.start({left:-(a.x*this.settings.itemSize.x),top:-(a.y*this.settings.itemSize.y)})}}));Page.guestbook={init:function(){this.elementsLoggedOut=$$(".fb-logged-out");this.elementsLoggedIn=$$(".fb-logged-in");this.form=$("frm-guestbook");this.previewContainer=$("fb-pic-preview-container");this.preview=$("fb-pic-preview");this.inputs=new Hash({name:$("guestbook_name"),text:$("guestbook_text")});this.offset={x:0,y:0};this.btnLogin=$("fb-connect").addEvent("click",this.login.bind(this));this.btnLogout=$("fb-logout").addEvent("click",this.logout.bind(this));this.btnSubmit=$("guestbook_submit").addEvent("click",this.submit.bind(this));this.checkFBState()},checkFBState:function(){FB.Connect.get_status().waitUntilReady(function(a){switch(a){case FB.ConnectState.connected:this.showFBLogout();this.getFBData();break;case FB.ConnectState.userNotLoggedIn:this.showFBLogin();break;case FB.ConnectState.appNotAuthorized:this.showFBLogin();break}Site.fireEvent("ready")}.bind(this))},showFBLogin:function(){this.hideFBLogout();this.elementsLoggedOut.setStyle("display","block");Site.fireEvent("resize")},hideFBLogin:function(){this.elementsLoggedOut.setStyle("display","none")},showFBLogout:function(){this.hideFBLogin();this.elementsLoggedIn.setStyle("display","block");Site.fireEvent("resize")},hideFBLogout:function(){this.elementsLoggedIn.setStyle("display","none")},login:function(){FB.Connect.requireSession(this.checkFBState.bind(this))},logout:function(){FB.Connect.logout(this.checkFBState.bind(this))},getFBData:function(){var a=FB.Facebook.apiClient.get_session().uid;FB.Facebook.apiClient.users_getInfo(a,["name","pic_big"],function(b){var c=b[0];if(this.inputs.name.get("value").length==0){this.inputs.name.set("value",c.name)}if(c.pic_big){this.picURL=c.pic_big;this.previewPic=new Asset.image(this.picURL,{onload:this.setupPreviewImage.bind(this)})}}.bind(this))},setupPreviewImage:function(){this.previewPic.setStyle("visibility","hidden").inject($(document.body));this.preview.setStyles({width:this.previewPic.getSize().x,height:this.previewPic.getSize().y,"background-image":"url("+this.picURL+")"});var a=new Drag.Flick(this.preview,{container:this.previewContainer});a.removeEvents("complete");a.addEvent("complete",function(b){this.offset.x=-b.getStyle("left").toInt();this.offset.y=-b.getStyle("top").toInt()}.bind(this));this.previewContainer.setStyle("display","block");this.previewPic.destroy()},submit:function(){var a="";this.inputs.forEach(function(b,c){a+="&"+c+"="+b.get("value")},this);if(this.picURL){a+="&pic="+this.picURL}a+="&width=173&height=153";a+="&offsetx="+this.offset.x;a+="&offsety="+this.offset.y;new Request.JSON({url:"/_service/GetGuestFacebook.ashx",data:a.substring(1),onSuccess:function(c,b){this.addItem(c)}.bind(this)}).send()},addItem:function(b){var c=b.Text;if(b.Name){c+=" - "+b.Name}var a=new Element("li",{"class":"miniflick-item",title:c,styles:{"background-image":"url("+b.Pic+")"}}).inject(Page.element,"top");Page.items.push(a);Page.tips.attach(a);Page.setupFlicker();Page.flicker.calcLimits();Page.scrollToOffset({x:0,y:0});this.form.setStyle("display","none");Site.fireEvent("resize")}};