var ccErrorNo=0;var ccErrors=new Array();ccErrors[0]="Unknown card type";ccErrors[1]="No card number provided";ccErrors[2]="Credit card number is in invalid format";ccErrors[3]="Credit card number is invalid";ccErrors[4]="Credit card number has an inappropriate number of digits";function checkCreditCard(M,C){var B=new Array();B[0]={name:"Visa",length:"16",prefixes:"4",checkdigit:true};B[1]={name:"MasterCard",length:"16",prefixes:"51,52,53,54,55",checkdigit:true};B[2]={name:"DinersClub",length:"14,16",prefixes:"305, 36, 38, 54,55",checkdigit:true};B[3]={name:"CarteBlanche",length:"14",prefixes:"300,301,302,303,304,305",checkdigit:true};B[4]={name:"AmEx",length:"15",prefixes:"34,37",checkdigit:true};B[5]={name:"Discover",length:"16",prefixes:"6011,622,64,65",checkdigit:true};B[6]={name:"JCB",length:"16",prefixes:"35",checkdigit:true};B[7]={name:"enRoute",length:"15",prefixes:"2014,2149",checkdigit:true};B[8]={name:"Solo",length:"16,18,19",prefixes:"6334, 6767",checkdigit:true};B[9]={name:"Switch",length:"16,18,19",prefixes:"4903,4905,4911,4936,564182,633110,6333,6759",checkdigit:true};B[10]={name:"Maestro",length:"12,13,14,15,16,18,19",prefixes:"5018,5020,5038,6304,6759,6761",checkdigit:true};B[11]={name:"VisaElectron",length:"16",prefixes:"417500,4917,4913,4508,4844",checkdigit:true};B[12]={name:"LaserCard",length:"16,17,18,19",prefixes:"6304,6706,6771,6709",checkdigit:true};var A=-1;for(var J=0;J<B.length;J++){if(C.toLowerCase()==B[J].name.toLowerCase()){A=J;break}}if(A==-1){ccErrorNo=0;return false}if(M.length==0){ccErrorNo=1;return false}M=M.replace(/\s/g,"");var Q=M;var N=/^[0-9]{13,19}$/;if(!N.exec(Q)){ccErrorNo=2;return false}if(B[A].checkdigit){var L=0;var P="";var I=1;var H;for(J=Q.length-1;J>=0;J--){H=Number(Q.charAt(J))*I;if(H>9){L=L+1;H=H-10}L=L+H;if(I==1){I=2}else{I=1}}if(L%10!=0){ccErrorNo=3;return false}}var G=false;var O=false;var D;var K=new Array();var E=new Array();K=B[A].prefixes.split(",");for(J=0;J<K.length;J++){var F=new RegExp("^"+K[J]);if(F.test(Q)){O=true}}if(!O){ccErrorNo=3;return false}E=B[A].length.split(",");for(I=0;I<E.length;I++){if(Q.length==E[I]){G=true}}if(!G){ccErrorNo=4;return false}return true}var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(D){for(var A=0;A<D.length;A++){var B=D[A].string;var C=D[A].prop;this.versionSearchString=D[A].versionSearch||D[A].identity;if(B){if(B.indexOf(D[A].subString)!=-1){return D[A].identity}}else{if(C){return D[A].identity}}}},searchVersion:function(B){var A=B.indexOf(this.versionSearchString);if(A==-1){return}return parseFloat(B.substring(A+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();Ext.ns("Kohive","Kohive.ux");Kohive.onLaunch=function(){Kohive.historyManager=new Ext.ux.History();if(Ext.getBody().select("#contentNavSprite > div").elements.length>0){Kohive.tabManager=new Kohive.ux.TabManager()}if(Ext.getBody().select("div.slice").elements.length>0){Kohive.sliceManager=new Kohive.ux.SliceManager()}if(Ext.getBody().select("table.main").elements.length>0){Kohive.pricePlans=new Kohive.ux.PricePlans()}if(Ext.getBody().select("#headerLogin").elements.length>0){Kohive.login=new Kohive.ux.Login()}if(Ext.getBody().select("table.main").elements.length>0){Kohive.instant=new Kohive.ux.Instant()}if(Ext.getBody().select("table.main").elements.length==0){Ext.get("highlight").setVisibilityMode(Ext.Element.DISPLAY);Ext.get("contentNav").setVisibilityMode(Ext.Element.DISPLAY);Ext.get("highlight").hide();Ext.get("contentNav").hide();var B=Ext.getBody(),F=B.child("h4"),D=Ext.get("msgs"),E=Ext.get("footer"),C=Ext.get("headerLogin");C.remove();E.remove();if(F){D.createChild({id:"status",children:[{cls:"margins",children:[{tag:"h1",html:F.dom.innerHTML}]}]});F.remove()}}if(Ext.getBody().select("table.main").elements.length>0){Kohive.lightboxManager=new Ext.ux.Lightbox()}if(Ext.get("reset_password")){Kohive.resetPassword=new Kohive.ux.ResetPassword()}if(Ext.getBody().select("table.main").elements.length>0){Kohive.scrolling=new Kohive.ux.Scrolling()}var A=Ext.getBody().select("input");A.each(function(G){var G=Ext.get(G.dom);if(!G.parent().hasClass("field")){return}G.on("focus",function(){G.parent().addClass("focus")},this);G.on("blur",function(){G.parent().removeClass("focus")},this)},this)};Ext.extend(Kohive,Ext.util.Observable);Ext.ns("Ext.ux");Ext.ux.History=function(){Ext.ux.History.superclass.constructor.call(this)};Ext.extend(Ext.ux.History,Ext.util.Observable,{set:function(A){window.location.hash=A},get:function(){return window.location.hash.split("#")[1]}});Ext.ns("Ext.ux");Ext.ux.Lightbox=function(){Ext.ux.Lightbox.superclass.constructor.call(this);this.initListeners()};Ext.extend(Ext.ux.Lightbox,Ext.util.Observable,{initListeners:function(){var D=Ext.getBody().child(".terms-link"),C=Ext.getBody().child(".privacy-link"),B=Ext.getBody().child(".terms-link2"),A=Ext.getBody().child(".privacy-link2");D.on("click",function(){this.build("terms")},this);C.on("click",function(){this.build("policy")},this);B.on("click",function(){this.build("terms")},this);A.on("click",function(){this.build("policy")},this)},build:function(C){var A=Ext.getBody();var E=A.createChild({cls:(C=="ie"||C=="res")?"x-lightbox ie":"x-lightbox",children:[{cls:"inner",children:[{tag:"div",children:[{html:this.get(C)}]}]}]});if(C=="ie"||C=="res"){var B=480;var D=150;E.setWidth("auto");E.setHeight("auto");E.child(".inner").setWidth(B);E.child(".inner").setHeight(D)}else{E.setWidth(A.getWidth()/2);E.setHeight(A.getHeight()/2);E.child(".inner").setWidth(A.getWidth()/2);E.child(".inner").setHeight(A.getHeight()/2)}$(".x-lightbox").css("margin-top",Math.round(A.getHeight()/2/2*-1));$(".x-lightbox").css("margin-left",Math.round(A.getWidth()/2/2*-1));E.hide();E.fadeIn();this.addMask();this.box=E},remove:function(){this.box.fadeOut({scope:this,callback:function(){this.box.remove()}});this.removeMask()},anchor:function(D){if(!D){return}var A=Ext.getBody();var F=A.getWidth(),B=A.getHeight(),C=D.getWidth(),E=D.getHeight();D.setTop((B/2)-(E/2));D.setLeft((F/2)-(C/2))},addMask:function(){var A=Ext.getBody();this.mask=A.createChild({cls:"mask"});this.mask.hide();this.mask.fadeIn({endOpacity:0.8});this.mask.on("click",this.remove,this)},removeMask:function(){this.mask.fadeOut({scope:this,callback:function(){this.mask.remove()}})},get:function(A){if(A=="terms"){return Ext.getBody().child(".hidden.terms").dom.innerHTML}if(A=="policy"){return Ext.getBody().child(".hidden.policy").dom.innerHTML}if(A=="macbookterms"){return Ext.getBody().child(".hidden.macbookterms").dom.innerHTML}}});Kohive.ux.Instant=function(){Kohive.ux.Instant.superclass.constructor.call(this);this.initValidations();this.initListeners();this.initCurrency();var A=Ext.getBody().child(".signUp2");A.hide()};Ext.extend(Kohive.ux.Instant,Ext.util.Observable,{invalidCls:"invalid",emailRegExp:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,initListeners:function(){this.nameField.on("keyup",this.onKeyUp,this);this.emailField.on("keyup",this.onKeyUp,this);this.passwordField.on("keyup",this.onKeyUp,this)},initValidations:function(){this.initName();this.initEmail();this.initPassword();this.initButton();var A=Ext.get("box-introduction").child("a");A.on("click",this.showSignUp,this);if(window.location.pathname=="/complete_invitation"){this.showSignUp()}},shown:false,showSignUp:function(){if(this.shown){setTimeout(function(){$("#instant_name").focus()},1000);return}this.shown=true;var B=Ext.get("box-introduction"),A=Ext.get("box-signup"),C=Ext.getBody().child(".signUp2");B.fadeOut({scope:this,callback:function(){B.remove();C.fadeIn();A.fadeIn({callback:function(){setTimeout(function(){$("#instant_name").focus()},1000)}})}})},initName:function(){this.nameField=Ext.get("instant_name");this.nameField.on("keyup",this.validateName,this);this.nameField.on("focus",function(){if(!this.nameFieldEmptied){this.nameField.dom.value="";this.nameFieldEmptied=true}},this)},nameFieldEmptied:false,validateName:function(A){var C=this.nameField.dom.value,B=C.length>0&&C!="full name";this.nameField.removeClass("valid");this.nameField.removeClass("invalid");if(B){this.nameField.removeClass(this.invalidCls);this.nameField.addClass("valid")}else{if(C!="full name"&&C.length!=0){this.nameField.removeClass("valid");this.nameField.addClass(this.invalidCls)}}return B},initEmail:function(){this.emailField=Ext.get("instant_email");if(window.location.pathname=="/complete_invitation"){this.emailField.dom.disabled=true}this.emailField.on("keyup",this.validateEmail,this);this.emailField.on("focus",function(){if(!this.emailFieldEmptied){this.emailField.dom.value="";this.emailFieldEmptied=true}},this)},emailFieldEmptied:false,checkedEmail:false,emailTimer:null,emailTimer2:null,emailValid:false,validateEmail:function(A){var D=this.emailField.dom.value,B=D.length>0&&this.emailRegExp.test(D),C=this;this.emailField.removeClass("valid");this.emailField.removeClass("invalid");if(C.checkEmailConn){C.checkEmailConn.abort()}if(B&&C.checkedEmail===false){C.emailField.addClass("loading");clearTimeout(this.emailTimer);this.emailTimer=setTimeout(function(){if(!C.checkEmailConn){C.checkEmailConn=new Ext.data.Connection({})}C.checkEmailConn.request({url:"/emails?user="+D,scope:C,callback:function(H,J,F){var E=(F.responseText=="true")?true:false;(C.isValid())?C.enableButton():C.disableButton();C.emailField.removeClass("loading");var I=C.emailField.dom.value,G=I.length>0&&C.emailRegExp.test(I);if(E&&G){C.emailValid=true;C.emailField.addClass("valid");C.emailField.removeClass(C.invalidCls)}else{C.emailValid=false;C.emailField.removeClass("valid");C.emailField.addClass(C.invalidCls)}}})},1000)}else{if(B){C.emailField.removeClass(C.invalidCls);C.emailField.addClass("valid");C.emailValid=true}else{C.emailField.removeClass("valid");clearTimeout(this.emailTimer2);this.emailTimer2=setTimeout(function(){if(D!="email"){C.emailField.addClass(C.invalidCls)}},1000)}C.emailValid=false;(this.isValid())?this.enableButton():this.disableButton();return B}},initPassword:function(){$("#instant_password").dPassword();this.passwordField=Ext.get("password_instant_password");this.passwordField.on("keyup",this.validatePassword,this);this.passwordField.on("focus",function(){var B=Ext.get("instant_password"),A=Ext.get("password_instant_password");if(B.dom.value=="password"){if(!this.passwordFieldEmptied){A.dom.value="";this.passwordFieldEmptied=true}}},this)},passwordFieldEmptied:false,validatePassword:function(A){var C=Ext.get("instant_password").dom.value,B=C.length>5&&C!="password";this.passwordField.removeClass("valid");this.passwordField.removeClass("invalid");if(B){this.passwordField.removeClass(this.invalidCls);this.passwordField.addClass("valid")}else{if(C!="password"&&C.length!=0){this.passwordField.addClass(this.invalidCls);this.passwordField.removeClass("valid")}}return B},isValid:function(){this.validateName();this.validatePassword();if(this.validateName()&&this.validatePassword()&&this.emailValid){return true}return false},initButton:function(){this.button=Ext.get("instant_submit");this.button.on("click",this.onSubmit,this);this.nameField.on("keyup",function(){(this.isValid())?this.enableButton():this.disableButton()},this);this.disableButton()},enableButton:function(){this.button.parent().removeClass("disabled")},disableButton:function(){},isPaymentPlanSelected:function(){return this.pricePlan.dom.value!="free"&&this.pricePlan.dom.value!="bronze-trial"},isBillingInfoRequired:function(){if(this.inviteHashcodeField.dom.value=="sixrevisions"&&this.pricePlan.dom.value=="silver"){return false}else{return this.isPaymentPlanSelected()}},onSubmit:function(){this.nameField.addClass("loading");this.emailField.addClass("loading");Ext.get("password_instant_password").addClass("loading");var A={"id_card[full_name]":this.nameField.dom.value,"user[email]":this.emailField.dom.value,"user[password]":Ext.get("instant_password").dom.value,selected_plan_type:"free"};var B=(new RegExp("complete_invitation")).test(location.href)?"/users/accept_invitation":"/users/instant_signup";var C=new Ext.data.Connection({url:B});C.request({scope:this,params:A,success:this.onSuccess,failure:this.onFailure,timeout:180000})},onSuccess:function(A,B){document.location="/hives#n"},onFailure:function(A,B){this.nameField.removeClass("loading");this.emailField.removeClass("loading");Ext.get("password_instant_password").removeClass("loading")},initCurrency:function(){this.currency={};this.currency.dollar=Ext.getBody().child(".contentMainPricing-Currency .dollar");this.currency.pound=Ext.getBody().child(".contentMainPricing-Currency .pound");this.currency.euro=Ext.getBody().child(".contentMainPricing-Currency .euro");this.currency.dollar.on("click",function(){this.selectCurrency(this.currency.dollar.dom.className.replace("active","").replace(" ",""))},this);this.currency.pound.on("click",function(){this.selectCurrency(this.currency.pound.dom.className.replace("active","").replace(" ",""))},this);this.currency.euro.on("click",function(){this.selectCurrency(this.currency.euro.dom.className.replace("active","").replace(" ",""))},this);this.selectCurrency(this.currency.dollar.dom.className.replace("active","").replace(" ",""))},selectCurrency:function(A){var B="active";if(!this.currency[A]||this.currency[A].hasClass(B)){return}this.currency.dollar.removeClass(B);this.currency.pound.removeClass(B);this.currency.euro.removeClass(B);this.currency[A].addClass(B);if(A=="dollar"){this.setCurrencyDollar()}if(A=="pound"){this.setCurrencyPound()}if(A=="euro"){this.setCurrencyEuro()}},setCurrencyDollar:function(){var A=Ext.getBody();A.child(".row2 .col2").update("$0");A.child(".row2 .col3").update("$15");A.child(".row2 .col4").update("$30");A.child(".row2 .col5").update("$75");A.child(".row3 .col2").update("$0");A.child(".row3 .col3").update("$150");A.child(".row3 .col4").update("$300");A.child(".row3 .col5").update("$750")},setCurrencyPound:function(){var A=Ext.getBody();A.child(".row2 .col2").update("&pound;0");A.child(".row2 .col3").update("&pound;10");A.child(".row2 .col4").update("&pound;20");A.child(".row2 .col5").update("&pound;50");A.child(".row3 .col2").update("&pound;0");A.child(".row3 .col3").update("&pound;100");A.child(".row3 .col4").update("&pound;200");A.child(".row3 .col5").update("&pound;500")},setCurrencyEuro:function(){var A=Ext.getBody();A.child(".row2 .col2").update("&euro;0");A.child(".row2 .col3").update("&euro;11");A.child(".row2 .col4").update("&euro;22");A.child(".row2 .col5").update("&euro;55");A.child(".row3 .col2").update("&euro;0");A.child(".row3 .col3").update("&euro;110");A.child(".row3 .col4").update("&euro;220");A.child(".row3 .col5").update("&euro;550")},onKeyUp:function(C){var B=C.getKey(),A=(B)?B==13:false;if(A){this.onSubmit()}}});Kohive.ux.SliceManager=function(){Kohive.ux.SliceManager.superclass.constructor.call(this);this.initEvents();this.initListeners();this.initSlices()};Ext.extend(Kohive.ux.SliceManager,Ext.util.Observable,{slices:null,activeSlice:null,defaultAnimationDuration:0.3,initEvents:function(){this.addEvents("before-init","init","found-slice","before-slice-activated","slice-activated")},initListeners:function(){this.on("before-slice-activated",this.hideSlices,this);Kohive.tabManager.on("tab-click",this.onTabClick,this)},initSlices:function(){this.fireEvent("before-init",this);this.findSlices();this.activateDefaultSlice();this.fireEvent("init",this)},findSlices:function(){this.slices=Ext.getBody().select("div.slice");this.slices.each(function(B){var A=this.getName(B);this.fireEvent("found-slice",B,A)},this)},findSliceByName:function(B){if(!this.slices){return}var A=null,B=B.replace(" ","");this.slices.each(function(D){var C=this.getName(D);if(C==B){A=D.dom}},this);return Ext.get(A)},getName:function(B){if(!B){return}var A=B.dom.className;if(!A){return}A=A.replace("slice","");A=A.replace("hidden","");A=A.replace(" ","");return A},hideSlices:function(B,A){if(!this.slices){return}this.slices.each(function(C){C.setVisibilityMode(Ext.Element.DISPLAY);if(A===true){C.fadeOut({duration:this.defaultAnimationDuration,scope:this})}else{C.hide()}},this)},activateDefaultSlice:function(){var A=null;if(!Kohive.historyManager.get()){A=this.findSliceByName("overview")}else{if(!this.findSliceByName(Kohive.historyManager.get())){A=this.findSliceByName("overview")}else{A=this.findSliceByName(Kohive.historyManager.get())}}if(!A){return}this.activateSlice(A)},activateSlice:function(B,A){var A=false;if(!B){return}if(this.getName(B)==this.activeSlice){return}this.fireEvent("before-slice-activated",B,A);if(A===true){B.fadeIn({duration:this.defaultAnimationDuration,scope:this})}else{B.show()}this.activeSlice=this.getName(B);this.fireEvent("activated",B)},onTabClick:function(B,A){var C=this.findSliceByName(A);if(!C){return}this.activateSlice(C,true)}});Kohive.ux.Scrolling=function(){Kohive.ux.Scrolling.superclass.constructor.call(this);this.initScrolling();this.initListeners()};Ext.extend(Kohive.ux.Scrolling,Ext.util.Observable,{initScrolling:function(){this.msgs=Ext.get("msgs");this.black=Ext.get("highlight");this.content=Ext.get("content");this.menu=Ext.get("contentNav");this.scrollUp=Ext.get("scrollUp");this.scrollUp.hide();this.scrollUp.on("click",this.showBlack,this);this.msgs.setVisibilityMode(Ext.Element.DISPLAY);this.black.setVisibilityMode(Ext.Element.DISPLAY)},initListeners:function(){var A=this;setTimeout(function(){setInterval(function(){A.update()},100)},1500)},hidden:false,update:function(){var B=this.getY();var A=this.msgs.getHeight()+this.black.getHeight();if(B>A){this.msgs.hide();this.black.hide();if(!this.hidden){window.scrollTo(0,B-A);this.topHeight=A}this.hidden=true;if(!this.scrollUp.isVisible()){this.scrollUp.fadeIn()}if(!this.content.hasClass("fixed")){this.content.addClass("fixed")}}else{this.hidden=false;if(this.content.hasClass("fixed")&&this.msgs.isVisible()){this.content.removeClass("fixed")}}if(B>A&&window.document.height-window.innerHeight==B){this.msgs.hide();this.black.hide();if(!this.scrollUp.isVisible()){this.scrollUp.fadeIn()}}},showBlack:function(){this.msgs.slideIn();this.black.slideIn();this.scrollToTop();this.scrollUp.fadeOut();Kohive.instant.showSignUp()},getY:function(){if(self.pageYOffset){return self.pageYOffset}if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement.scrollTop}if(document.body.scrollTop){return document.body.scrollTop}return 0},scrollToTop:function(){var A=this.getY();var H=0;var G=H>A?H-A:A-H;if(G<100){scrollTo(0,H);return}var E=Math.round(G/100);var D=Math.round(G/100);var B=H>A?A+D:A-D;var F=0;if(H>A){for(var C=A;C<H;C+=D){setTimeout("window.scrollTo(0, "+B+")",F*E);B+=D;if(B>H){B=H}F++}return}for(var C=A;C>H;C-=D){setTimeout("window.scrollTo(0, "+B+")",F*E);B-=D;if(B<H){B=H}F++}}});Kohive.ux.TabManager=function(){Kohive.ux.TabManager.superclass.constructor.call(this);this.initEvents();this.initTabs()};Ext.extend(Kohive.ux.TabManager,Ext.util.Observable,{tabs:null,activeCls:"active",initEvents:function(){this.addEvents("before-init","init","found-tab","tab-click")},initTabs:function(){this.fireEvent("before-init",this);this.findTabs();this.initTabListeners();this.fireEvent("init",this)},findTabs:function(){var A=Ext.getBody().child("#contentNavSprite");if(!A){return}this.tabs=A.select("span");this.tabs.each(function(C){var B=this.getName(C);this.fireEvent("found-tab",C,B)},this)},initTabListeners:function(){this.tabs.each(function(B){var B=Ext.get(B.dom);var A=this.getName(B);B.on("click",function(){this.onClick(B,A)},this)},this)},getName:function(A){if(!A){return}return A.dom.className.replace("tab","").replace("active","").replace(" ","")},onClick:function(B,A){this.fireEvent("tab-click",B,A);this.setActive(B)},clearActive:function(){this.tabs.each(function(A){A.removeClass(this.activeCls)},this)},setActive:function(A){if(!A){return}this.clearActive();A.addClass(this.activeCls)}});Kohive.ux.ResetPassword=function(){Kohive.ux.ResetPassword.superclass.constructor.call(this);this.initForm();this.initValidations();this.initListeners()};Ext.extend(Kohive.ux.ResetPassword,Ext.util.Observable,{invalidCls:"invalid",emailRegExp:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,initForm:function(){var A=Ext.getBody();this.passwordField=Ext.get("user_password");this.confirmPasswordField=Ext.get("user_confirm_password");this.button=Ext.get("reset_password_form_submit");var B=this;setTimeout(function(){B.passwordField.dom.focus()},1000)},initValidations:function(){this.initPassword();this.initConfirmPassword();this.initButton()},initListeners:function(){this.passwordField.on("keypress",function(B){var A=Ext.EventObject.getKey();if(A==13){this.onSubmit()}},this);this.confirmPasswordField.on("keypress",function(B){var A=Ext.EventObject.getKey();if(A==13){this.onSubmit()}},this)},initPassword:function(){this.passwordField.on("keyup",this.validatePassword,this)},validatePassword:function(A){var C=this.passwordField.dom.value,B=C.length>5;if(A!==true){if(B){this.passwordField.parent().removeClass(this.invalidCls)}else{this.passwordField.parent().addClass(this.invalidCls)}}this.validateConfirmPassword();return B},initConfirmPassword:function(){this.confirmPasswordField.on("keyup",this.validateConfirmPassword,this)},validateConfirmPassword:function(A){var C=this.confirmPasswordField.dom.value,B=C.length>5;if(B&&this.passwordField.dom.value!=this.confirmPasswordField.dom.value){B=false}if(A!==true){if(B){this.confirmPasswordField.parent().removeClass(this.invalidCls)}else{this.confirmPasswordField.parent().addClass(this.invalidCls)}}return B},isValid:function(A){if(!A){var A=false}this.validatePassword(A);this.validateConfirmPassword(A);if(this.validatePassword(A)&&this.validateConfirmPassword(A)){return true}return false},initButton:function(){this.button.on("click",this.onSubmit,this);this.passwordField.on("keyup",function(){(this.isValid(true))?this.enableButton():this.disableButton()},this);this.confirmPasswordField.on("keyup",function(){(this.isValid(true))?this.enableButton():this.disableButton()},this);this.disableButton()},enableButton:function(){this.button.parent().removeClass("disabled")},disableButton:function(){this.button.parent().addClass("disabled")},onSubmit:function(){if(!this.isValid()){return}this.disableButton();this.button.parent().addClass("sent");var A={"user[password]":this.passwordField.dom.value,reset_code:Ext.get("reset_code").dom.value};var B=new Ext.data.Connection({url:"/passwords/update_after_forgetting"});B.request({scope:this,params:A,success:this.onSuccess,failure:this.onFailure,timeout:180000})},onSuccess:function(A,B){document.location="/hives"},onFailure:function(A,B){this.enableButton();this.button.parent().removeClass("sent")}});Kohive.ux.PricePlans=function(){Kohive.ux.PricePlans.superclass.constructor.call(this);this.initEvents();this.findButtons();this.initTooltips()};Ext.extend(Kohive.ux.PricePlans,Ext.util.Observable,{initEvents:function(){this.addEvents("submit")},findButtons:function(){var A=Ext.getBody().select("table.buttons input");A.each(function(B){var B=Ext.get(B.dom);B.on("click",this.onClick,this)},this)},onClick:function(C,B){var B=Ext.get(B),A=B.dom.name;this.fireEvent("submit",B,A)},initTooltips:function(){this.toolTipEl=Ext.get("contentMainPricing-Sidebar");this.toolTipHeaderEl=this.toolTipEl.child("h1");this.toolTipConentEl=this.toolTipEl.child("div");this.pricePlansEl=Ext.get("contentMainPricing-Table");this.toolTipHeaderEl.setVisibilityMode(Ext.Element.DISPLAY);this.onTooltipRollout();this.initTooltipListeners()},initTooltipListeners:function(){var A=Ext.get("contentMainPricing-Table").select("table tr");A.each(function(C){var B=Ext.get(C.dom);if(!B.hasClass("row1")){B.on("mouseover",this.onTooltipRollover,this)}},this);this.pricePlansEl.on("mouseout",this.onTooltipRollout,this)},onTooltipRollover:function(B){var A=Ext.get(B.getTarget());if(A.dom.className.replace(/([0-9])/,"")=="row"){A=A}if(A.parent().dom.className.replace(/([0-9])/,"")=="row"){A=A.parent()}if(A.parent().parent().dom.className.replace(/([0-9])/,"")=="row"){A=A.parent().parent()}var E=A.child(".col1 span:last-child").dom.innerHTML,D=E.replace(" ","_").replace("/","").toLowerCase(),C=this.getString(D);this.toolTipHeaderEl.update(E);this.toolTipConentEl.update(C);this.toolTipHeaderEl.show();this.toolTipEl.show()},onTooltipRollout:function(){this.toolTipHeaderEl.update("");this.toolTipHeaderEl.hide();this.toolTipConentEl.update(this.getString())},getString:function(B){var A=null;switch(B){case"monthly_price":A="<p>If you would rather have flexibility you can pay monthly and cancel at any time.</p>";break;case"annual_price":A="<p>Paying annually saves you a lot of money! And with our introductory discount you get 12 months for the price of 5!</p>";break;case"storage":A="<p>You can upload and download any type of files to your hive. The more files you have the more storage you'll need.</p><p>Storage space is shared between hives, so if you use 70% of your limit on 1 hive, you'll have 30% left across the other hives.</p>";break;case"memberspro_hive":A="<p>Unlike Regular Hives, Pro hives have a limit of members that you can invite into them. So if you have a large team that you want to work with on a project you will need a higher plan.</p>";break;case"hives":A="<p>Hives are unique workspaces in the shape of a desktop where you can invite others to work on applications together with them.</p>";break;case"identities":A="<p>Identities let you have a different photo, different contact details and different interests. That way, in each hive that you're in you can present yourself differently.</p>";break;case"iphone_app":A="<p>Our iPhone app is currently being built. It'll initially give you push notifications of new things that happen in the hives but in future it'll be a full featured app.</p>";break;default:A="<p>There's a plan to suit everyone's needs.<br />You can start off as a free member and upgrade at any time!</p><p>Roll over the items to learn more about them.</p>"}return A}});Kohive.ux.Login=function(){Kohive.ux.Login.superclass.constructor.call(this);this.initValidations();this.initListeners();this.initLogin()};Ext.extend(Kohive.ux.Login,Ext.util.Observable,{invalidCls:"invalid",emailRegExp:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,initLogin:function(){var A=Ext.getBody();this.loginEl=A.child(".headerLogin.form");this.resetEl=A.child(".headerLogin.reset");this.infoEl=A.child(".headerLogin.info");this.loginEmailField=Ext.get("login_form_email");this.loginPasswordField=Ext.get("login_form_password");this.loginForgotEmailField=Ext.get("login_form_forgot_email");this.inviteHashcodeField=Ext.get("login_form_invite_hashcode");this.loginEl.setVisibilityMode(Ext.Element.DISPLAY);this.resetEl.setVisibilityMode(Ext.Element.DISPLAY);this.infoEl.setVisibilityMode(Ext.Element.DISPLAY);this.resetEl.hide();this.infoEl.hide();this.forgotButton=A.child("#header p span.forgot");this.forgotButton.on("click",this.showReset,this);this.forgotBackButton=Ext.get("login_form_back_button");this.forgotBackButton.on("click",this.showLogin,this)},showReset:function(){if(this.resetEl.isVisible()){return}this.loginForgotEmailField.dom.value=this.loginEmailField.dom.value;if(this.loginForgotEmailField.dom.value!=""){this.enableButton2()}this.loginEl.fadeOut({scope:this,callback:function(){this.resetEl.fadeIn({scope:this,callback:function(){this.loginForgotEmailField.dom.select()}})}})},showLogin:function(){if(this.loginEl.isVisible()){return}var A=null;(this.resetEl.isVisible())?A=this.resetEl:A=this.infoEl;A.fadeOut({scope:this,callback:function(){this.loginEl.fadeIn()}})},showInfo:function(){if(this.infoEl.isVisible()){return}var A=null;(this.loginEl.isVisible())?A=this.loginEl:A=this.resetEl;A.fadeOut({scope:this,callback:function(){this.infoEl.fadeIn();var B=this;setTimeout(function(){B.showLogin()},5000)}})},initValidations:function(){this.initEmail();this.initEmail2();this.initPassword();this.initButton();this.initButton2()},initListeners:function(){this.emailField.on("keypress",function(B){var A=Ext.EventObject.getKey();if(A==13){this.onSubmit()}},this);this.passwordField.on("keypress",function(B){var A=Ext.EventObject.getKey();if(A==13){this.onSubmit()}},this);this.resetEmailField.on("keypress",function(B){var A=Ext.EventObject.getKey();if(A==13){this.onSubmit2()}},this)},initEmail:function(){this.emailField=Ext.get("login_form_email");this.emailField.on("keyup",this.validateEmail,this);this.emailField.on("focus",function(){this.emailField.dom.value=""},this)},initEmail2:function(){this.resetEmailField=Ext.get("login_form_forgot_email");this.resetEmailField.on("keyup",this.validateEmail2,this);this.resetEmailField.on("focus",function(){this.resetEmailField.dom.select()},this)},emailTimer:null,emailTimer2:null,validateEmail:function(A){var D=this.emailField.dom.value,B=D.length>0&&this.emailRegExp.test(D),C=this;C.emailField.removeClass(C.invalidCls);if(A!==true){if(B){clearTimeout(this.emailTimer);C.emailField.removeClass(C.invalidCls)}else{clearTimeout(this.emailTimer);this.emailTimer=setTimeout(function(){C.emailField.addClass(C.invalidCls)},1000)}}return B},validateEmail2:function(A){var D=this.resetEmailField.dom.value,B=D.length>0&&this.emailRegExp.test(D),C=this;C.resetEmailField.removeClass(C.invalidCls);if(A!==true){if(B){clearTimeout(this.emailTimer2);C.resetEmailField.removeClass(C.invalidCls)}else{clearTimeout(this.emailTimer2);this.emailTimer2=setTimeout(function(){C.resetEmailField.addClass(C.invalidCls)},1000)}}return B},clearedPassword:false,initPassword:function(){this.passwordField=Ext.get("login_form_password");this.passwordField.on("keyup",this.validatePassword,this);this.passwordField.on("focus",function(){if(!this.clearedPassword){this.passwordField.dom.value="";this.clearedPassword=true}},this)},validatePassword:function(A){var C=this.passwordField.dom.value,B=C.length>5;if(A!==true){if(B||C==""){this.passwordField.removeClass(this.invalidCls)}else{this.passwordField.addClass(this.invalidCls)}}return B},isValid:function(A){if(!A){var A=false}this.validateEmail(A);this.validatePassword(A);if(this.validatePassword(A)&&this.validateEmail(A)){return true}return false},isValid2:function(A){if(!A){var A=false}this.validateEmail2(A);if(this.validateEmail2(A)){return true}return false},initButton:function(){this.button=Ext.get("login_form_button");this.button.on("click",this.onSubmit,this);this.emailField.on("keyup",function(){(this.isValid(true))?this.enableButton():this.disableButton()},this);this.passwordField.on("keyup",function(){(this.isValid(true))?this.enableButton():this.disableButton()},this);this.disableButton()},enableButton:function(){this.button.parent().removeClass("disabled")},disableButton:function(){this.button.parent().addClass("disabled")},initButton2:function(){this.button2=Ext.get("login_form_reset_button");this.button2.on("click",this.onSubmit2,this);this.resetEmailField.on("keyup",function(){(this.isValid2(true))?this.enableButton2():this.disableButton2()},this);this.disableButton2()},enableButton2:function(){this.button2.parent().removeClass("disabled")},disableButton2:function(){this.button2.parent().addClass("disabled")},onSubmit:function(){if(!this.isValid()){return}this.emailField.addClass("loading");var A={email:this.emailField.dom.value,password:this.passwordField.dom.value,invite_hashcode:this.inviteHashcodeField.dom.value};var B=new Ext.data.Connection({url:"/session"});B.request({scope:this,params:A,success:this.onSuccess,failure:this.onFailure,timeout:180000})},onSuccess:function(A,B){document.location="/hives"},onFailure:function(A,C){this.emailField.removeClass("loading");try{var B=Ext.util.JSON.decode(A.responseText)}catch(D){}if(B&&B.message&&B.message=="resent"){}else{this.emailField.addClass(this.invalidCls);this.passwordField.addClass(this.invalidCls)}},onSubmit2:function(){if(!this.isValid2()){return}this.loginForgotEmailField.addClass("loading");var A={"password[email]":this.resetEmailField.dom.value};var B=new Ext.data.Connection({url:"/forgot_password"});B.request({scope:this,params:A,success:this.onSuccess2,failure:this.onFailure2,timeout:180000});return false},onSuccess2:function(A,C){try{var B=Ext.util.JSON.decode(A.responseText)}catch(D){}this.loginForgotEmailField.removeClass("loading");if(B&&B.message){this.infoEl.update(B.message);this.showInfo()}},onFailure2:function(A,B){this.infoEl.update("Sorry, that email address wasn't found.");this.showInfo();this.loginForgotEmailField.removeClass("loading")}});Ext.onReady(function(){var A=BrowserDetect.browser;if(A=="Explorer"||A=="Opera"){$(".browser-error").show()}Kohive.onLaunch();setTimeout(function(){$("#wrapper").show();Ext.get("loading-mask").fadeOut({remove:true});swfobject.embedSWF("swf/desktop.swf","overview-desktop","180","160","9.0.0");swfobject.embedSWF("swf/hives.swf","overview-hives","180","160","9.0.0");swfobject.embedSWF("swf/filter.swf","overview-filter","180","160","9.0.0");swfobject.embedSWF("swf/apps.swf","overview-apps","180","160","9.0.0");swfobject.embedSWF("swf/ids.swf","overview-ids","180","160","9.0.0");swfobject.embedSWF("swf/realtime.swf","overview-realtime","180","160","9.0.0")},250)});
