var SiteFunction={path:$("base").attr("href"),loadingText:"",twitterFeed:"",nextTwitterItem:0,setLoading:function(a){document.body.style.cursor="wait";$("#status").addClass("loading").html("")},finishedLoading:function(){document.body.style.cursor="default";$("#status").removeClass()},toggleError:function(b,c,a){if(a){$(b).addClass("errorTooltip").attr("title","Error - "+c).html("?");$(b).tooltip({track:true,delay:0,showURL:false,opacity:1,fixPNG:true,showBody:" - ",extraClass:"errorTooltip",top:-15,left:5})}else{$(b).removeClass("errorTooltip").attr("title","").html("")}},toggleSuccess:function(b,c,a){if(a){$(b).text(c)}else{$(b).text("")}},displayDialog:function(b,a){$("#dialog p").text(a);$("#dialog").dialog("option","title",b);$("#dialog").dialog("open")},initDialog:function(){$("#dialog").dialog({draggable:false,autoOpen:false,open:function(a,b){setTimeout(function(){$("#dialog").dialog("close")},2000)}})}};var UserFunction={tabName:"",toggleLoggedIn:function(){UserFunction.toggleStatusBar(this.tabName);UserFunction.toggleTabs(this.tabName)},toggleStatusBar:function(a){$.get(SiteFunction.path+"template/status.php",{tabName:a},function(b){$("#status").html(b)})},toggleTabs:function(a){$.get(SiteFunction.path+"template/tabs.php",{tabName:a},function(b){$("#tabHolder").html(b)})},logout:function(a){$.getJSON(SiteFunction.path+"logout",{},function(b){if(b.errorCode===0){self.parent.UserFunction.toggleLoggedIn()}})},toggleStatus:function(){UserFunction.toggleStatusBar(this.tabName)},setTabName:function(a){this.tabName=a},displayLoginBox:function(){if($("div#retrievePasswordPanel").css("display")=="block"){$("div#retrievePasswordPanel").css("display","none")}if($("div#registerPanel").css("display")=="block"){$("div#registerPanel").css("display","none")}if($("div#backgroundPanel").css("display")=="none"){UserFunction.openLoginBox();$("div#loginPanel").fadeIn()}else{UserFunction.closeLoginBox()}},hideLoginBox:function(){if($("div#backgroundPanel").css("display")=="none"){UserFunction.openLoginBox();$("div#loginPanel").fadeIn()}else{UserFunction.closeLoginBox()}},openLoginBox:function(){$("div#backgroundPanel").height("110px");$("div#backgroundPanel").css("display","block");$("div.panel_button").css("display","block")},closeLoginBox:function(){var a;if($("div#backgroundPanel").height()==110){a="130px"}else{a="270px"}$("div#backgroundPanel").animate({height:a}).animate({height:"0px"},"fast","swing",function(){$("div.panel_button").css("display","none");$("div#backgroundPanel").css({display:"none",width:"230px"});UserFunction.hideSuccessAndError()})},hideSuccessAndError:function(){SiteFunction.toggleSuccess("#passwordReset","",false);SiteFunction.toggleSuccess("#registrationComplete","",false);SiteFunction.toggleError("#usernameError","",false);SiteFunction.toggleError("#passwordError","",false);SiteFunction.toggleError("#rp_usernameError","",false);SiteFunction.toggleError("#rp_emailAddressError","",false);SiteFunction.toggleSuccess("#registrationComplete","",false);SiteFunction.toggleError("#reg_usernameError","",false);SiteFunction.toggleError("#reg_emailError","",false);SiteFunction.toggleError("#reg_confirmEmailError","",false);SiteFunction.toggleError("#reg_nicknameError","",false)},initLoginForm:function(){var a={dataType:"json",beforeSubmit:UserFunction.validateLogin,success:UserFunction.completeLogin};$("#loginForm").ajaxForm(a)},validateLogin:function(e,c,a){isValid=true;SiteFunction.toggleError("#usernameError","",false);SiteFunction.toggleError("#passwordError","",false);for(var b=0;b<e.length;b++){var d=e[b];switch(d.name){case"username":if(!d.value){SiteFunction.toggleError("#usernameError","Please enter your username",true);isValid=false}break;case"password":if(!d.value){SiteFunction.toggleError("#passwordError","Please enter your password.",true);isValid=false}break}}if(!isValid){return false}else{SiteFunction.setLoading("login")}},completeLogin:function(a){if(a.errorCode===0){$("div#backgroundPanel").animate({height:"130px"}).animate({height:"0px"},"fast","swing",function(){$("div.panel_button").css("display","none");$("div#backgroundPanel").css("display","none");SiteFunction.finishedLoading();UserFunction.toggleStatus();UserFunction.toggleLoggedIn()})}else{SiteFunction.toggleError("#usernameError",a.errorMessage,true);SiteFunction.finishedLoading();UserFunction.toggleStatus()}},switchToRetrievePassword:function(){$("div#loginPanel").fadeOut("normal",function(){$("div#retrievePasswordPanel").fadeIn("normal");SiteFunction.toggleError("#rp_usernameError","",false);SiteFunction.toggleError("#rp_emailAddressError","",false)})},initRetrievePasswordForm:function(){var a={dataType:"json",beforeSubmit:UserFunction.validateRetrievePassword,success:UserFunction.completeRetrievePassword};$("#retrievePasswordForm").ajaxForm(a)},validateRetrievePassword:function(e,c,a){isValid=true;SiteFunction.toggleError("#rp_usernameError","",false);SiteFunction.toggleError("#rp_emailAddressError","",false);for(var b=0;b<e.length;b++){var d=e[b];switch(d.name){case"rp_username":if(!d.value){SiteFunction.toggleError("#rp_usernameError","Please enter your username",true);isValid=false}break;case"rp_emailAddress":if(!d.value){SiteFunction.toggleError("#rp_emailAddressError","Please enter your email address.",true);isValid=false}break}}if(!isValid){return false}else{SiteFunction.setLoading("retrievePassword")}},completeRetrievePassword:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.toggleSuccess("#passwordReset","Password reset. Please check your email.",true)}else{SiteFunction.toggleError("#rp_usernameError",a.errorMessage,true)}},switchToLogin:function(){$("div#retrievePasswordPanel").fadeOut("normal",function(){$("div#loginPanel").fadeIn("normal");SiteFunction.toggleError("#usernameError","",false);SiteFunction.toggleError("#passwordError","",false);SiteFunction.toggleSuccess("#passwordReset","",false)})},switchToRegister:function(){$("div#loginPanel").fadeOut("normal",function(){$("div#backgroundPanel").animate({height:"250px",width:"300px"},function(){$("div#registerPanel").fadeIn("normal")})})},initRegisterForm:function(){var a={dataType:"json",beforeSubmit:UserFunction.validateRegister,success:UserFunction.completeRegister};$("#registerForm").ajaxForm(a)},validateRegister:function(f,d,b){isValid=true;SiteFunction.toggleError("#reg_usernameError","",false);SiteFunction.toggleError("#reg_emailError","",false);SiteFunction.toggleError("#reg_confirmEmailError","",false);SiteFunction.toggleError("#reg_nicknameError","",false);var a=/^([a-zA-Z0-9_.\-])+@([a-zA-Z0-9_.\-])+\.([a-zA-Z])+([a-zA-Z])+/;var h="",g="";for(var c=0;c<f.length;c++){var e=f[c];switch(e.name){case"reg_username":if(!e.value){SiteFunction.toggleError("#reg_usernameError","Please enter a username",true);isValid=false}else{g=e.value}break;case"reg_email":if(!e.value||(e.value&&!a.test(e.value))){SiteFunction.toggleError("#reg_emailError","Please enter a valid email address.",true);isValid=false}break;case"reg_confirmEmail":if(!e.value||(e.value&&h.length>0&&e.value!=h)){SiteFunction.toggleError("#reg_confirmEmailError","Please confirm your email correctly",true);isValid=false}break;case"reg_nickname":if(!e.value){SiteFunction.toggleError("#reg_nicknameError","Please enter a nickname",true);isValid=false}else{if(e.value==g){SiteFunction.toggleError("#reg_usernameError","Your nickname and username cannot be the same. Please change your username.",true);isValid=false}}break}}if(!isValid){return false}else{SiteFunction.setLoading("register")}},completeRegister:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.toggleSuccess("#registrationComplete","Registration Complete. Please check your email for your password.",true)}else{SiteFunction.toggleError("#reg_usernameError",a.errorMessage,true)}},switchToLoginFromRegister:function(){$("div#registerPanel").fadeOut("normal",function(){$("div#backgroundPanel").animate({height:"110px",width:"230px"},function(){$("div#loginPanel").fadeIn("normal");SiteFunction.toggleSuccess("#registrationComplete","",false);SiteFunction.toggleError("#reg_usernameError","",false);SiteFunction.toggleError("#reg_emailError","",false);SiteFunction.toggleError("#reg_confirmEmailError","",false);SiteFunction.toggleError("#reg_nicknameError","",false)})})}};var Admin={busy:false,addGroupMember:function(b,a){if(!Admin.busy){Admin.busy=true;SiteFunction.setLoading("addGroupMember");$.post(SiteFunction.path+"admin/groupMember",{action:"add",groupId:b,memberId:a},function(c){$("#groupholder").html(c);$(".added").show().css({backgroundColor:"#51BF00"});$(".added").animate({backgroundColor:"#000"},1500);SiteFunction.finishedLoading();UserFunction.toggleStatus();Admin.busy=false})}},removeGroupMember:function(b,a){if(!Admin.busy){Admin.busy=true;$("#group"+b+"member"+a).animate({opacity:"0"},"slow","",function(){$("#group"+b+"member"+a).hide();SiteFunction.setLoading("removeGroupMember");$.ajax({type:"DELETE",url:SiteFunction.path+"admin/groupMember",data:{groupId:b,memberId:a},success:function(c){$("#groupholder").html(c);SiteFunction.finishedLoading();UserFunction.toggleStatus();Admin.busy=false}})})}},resetPassword:function(a){if(!Admin.busy){Admin.busy=true;SiteFunction.setLoading("resetPassword");$.ajax({type:"POST",url:SiteFunction.path+"admin/password",data:{action:"reset",memberId:a},dataType:"json",success:function(b){if(b.errorCode===0){SiteFunction.displayDialog("Password Reset","Please ask this user to check their email.")}else{SiteFunction.displayDialog("Unable to reset password","Please contact the CantFitMyN admins to resolve this issue.")}SiteFunction.finishedLoading();UserFunction.toggleStatus();Admin.busy=false}})}}};var Members={members:null,getMembersForAdmin:function(){if(Members.members===null){$.getJSON(SiteFunction.path+"members/admin",{},function(a){Members.members=a;if(Members.members.length>0){Members.filterMembers();$("#eventMembers").slideDown("slow")}})}},getMembersForEvents:function(a){if(Members.members===null||Members.members.length===0){$.getJSON(SiteFunction.path+"members/events",{eventDate:a},function(b){Members.members=b;if(Members.members.length>0){Members.filterMembers();$("#eventMembers").slideDown("slow")}})}},filterMembers:function(){var d=document.getElementById("searchMember");var b=new RegExp("^"+d.value+"(.*)","i");var f=[];var c=Members.members.length;for(var a=0;a<c;a++){var e=Members.members[a];if(b.test(e.username)&&f.length<10){f.push(e)}}Members.displayFilteredMembers(f);if(f.length==1&&Members.members.length==1){$("#searchMemberContainer").css("display","none")}Members.enableDraggable()},displayFilteredMembers:function(d){$("#searchMemberList").empty();var c=d.length;for(var a=0;a<c;a++){var b=d[a];$("#searchMemberList").append("<li class='draggable userDetails ui-draggable' id='member"+b.id+"'><div class='userDetailsHolder'><img src='"+b.avatar+"' height='32' width='32' alt='"+b.username+"' /><span class='nickname'>"+b.username+"</span></div></li>")}},enableDraggable:function(){$(".userDetails.draggable").draggable({revert:true,helper:"clone",opacity:0.6,start:function(a,b){$(".participantTypeSection").addClass("participantTypeSectionHighlight")},stop:function(a,b){$(".participantTypeSection").removeClass("participantTypeSectionHighlight")}})}};var Editor={editorOpen:false,editor1:null,originalText:"",displayEditor:function(a){if(Editor.editor1){CKEDITOR.remove(Editor.editor1);Editor.editor1=null}Editor.editor1=CKEDITOR.replace(a,{toolbar:"CFMN"});Editor.editorOpen=true},destroyEditor:function(){if(Editor.editor1){CKEDITOR.remove(Editor.editor1);Editor.editor1=null}Editor.editorOpen=false}};var Events={eventDates:null,showEventItem:function(a){SiteFunction.setLoading("showEventItem");$("#eventholder").fadeOut("slow",function(){$.get(SiteFunction.path+"events/"+a,{},function(b){SiteFunction.finishedLoading();UserFunction.toggleStatus();$("#eventholder").slideDown("slow").html(b)})});Members.getMembersForEvents(a)},updateEventItem:function(a){$.get(SiteFunction.path+"events/"+a,{},function(b){SiteFunction.finishedLoading();UserFunction.toggleStatus();$("#eventholder").html(b)})},addParticipant:function(b,c,a){eventId="";memberId="";memberId=c.substring(6);participantTypeCheck=b.indexOf("_participantType");if(participantTypeCheck>-1){eventId=b.substring(5,participantTypeCheck);participantTypeId=b.substring(participantTypeCheck+16)}else{eventId=b.substring(5);participantTypeId=0}SiteFunction.setLoading("addParticipant");$.ajax({type:"POST",url:SiteFunction.path+"events/"+eventId,data:{memberId:memberId,participantTypeId:participantTypeId,action:"addParticipant"},dataType:"json",success:function(d){if(d.errorCode===0){$.get(SiteFunction.path+"events/"+eventId,{eventDate:a,memberId:memberId,action:"addedParticipant"},function(e){$("#eventholder").html(e);$("#eventholder .added").show().css({backgroundColor:"#51BF00"}).animate({backgroundColor:"#000"},1500);SiteFunction.finishedLoading();UserFunction.toggleStatus()})}}})},removeParticipant:function(c,a,b){$("#event"+c+"participant"+a).animate({opacity:"0"},"slow","",function(){$("#event"+c+"participant"+a).hide();SiteFunction.setLoading("removeParticipant");$.ajax({type:"POST",url:SiteFunction.path+"events/"+c,data:{memberId:a,action:"removeParticipant"},dataType:"json",success:function(d){if(d.errorCode>0){SiteFunction.displayDialog("Unable to remove participant","Please contact the CantFitMyN admins to resolve this issue.")}URLDate=Events.convertToURLDate(b);Events.updateEventItem(URLDate)}})})},initEditEvent:function(){var a={dataType:"json",beforeSubmit:Events.validateEditEvent,success:Events.completeEditEvent};$("#editEventForm").ajaxForm(a)},validateEditEvent:function(g,d,b){isValid=true;SiteFunction.toggleError("#eventTitleError","",false);SiteFunction.toggleError("#eventDateError","",false);SiteFunction.toggleError("#eventDateError","",false);var a,f;for(var c=0;c<g.length;c++){var e=g[c];if(e.name=="eventNotes"){g[c]={name:"eventNotes",value:Editor.editor1.getData()}}}for(var c=0;c<g.length;c++){var e=g[c];switch(e.name){case"eventTitle":if(!e.value){SiteFunction.toggleError("#eventTitleError","Please enter a title for the event",true);isValid=false}break;case"eventStartDate":if(!e.value){SiteFunction.toggleError("#eventDateError","Please enter a from and to date for the event",true);isValid=false}else{a=$("#eventStartDate").datepicker("getDate")}break;case"eventStartTime":if(e.value){a.setHours(e.value[0]+""+e.value[1]);a.setMinutes(e.value[3]+""+e.value[4])}break;case"eventEndDate":if(!e.value){SiteFunction.toggleError("#eventDateError","Please enter a from and to date for the event",true);isValid=false}else{f=$("#eventEndDate").datepicker("getDate")}break;case"eventEndTime":if(e.value){f.setHours(e.value[0]+""+e.value[1]);f.setMinutes(e.value[3]+""+e.value[4])}break}}if(a>f){SiteFunction.toggleError("#eventDateError","The event start date cannot be after the end date.",true);isValid=false}if(!isValid){return false}},completeEditEvent:function(a){if(a.errorCode===0){URLDate=Events.convertDatePickerDateToURLDate($("#eventStartDate").datepicker("getDate"));Events.refreshEventDates();$("#inline").datepicker("setDate",$("#eventStartDate").datepicker("getDate"));Events.updateEventItem(URLDate);Editor.editorOpen=false;SiteFunction.finishedLoading();UserFunction.toggleStatus()}else{SiteFunction.displayDialog("Unable to save event","Please contact the CantFitMyN admins to resolve this issue.")}},editEvent:function(b,a){$.get(SiteFunction.path+"events/"+b,{eventDate:a,action:"edit"},function(c){$("#eventholder").html(c);Editor.displayEditor("eventNotes");Events.initEditEvent()})},createNewEvent:function(a){$.get(SiteFunction.path+"events/0",{eventDate:a,action:"edit"},function(b){$("#eventholder").html(b);Editor.displayEditor("eventNotes");Events.initEditEvent()})},removeEvent:function(b,a){$.ajax({type:"DELETE",url:SiteFunction.path+"events/"+b,dataType:"json",success:function(c){if(c.errorCode===0){SiteFunction.displayDialog("Event Removed","Returning to events on "+a+"...");Events.refreshEventDates();URLDate=Events.convertToURLDate(a);Events.updateEventItem(URLDate)}else{SiteFunction.displayDialog("Unable to remove event","Please contact the CantFitMyN admins to resolve this issue.")}}})},refreshEventDates:function(){$.ajax({type:"GET",url:SiteFunction.path+"events/dates",dataType:"json",success:function(a){Events.eventDates=a;$("#inline").datepicker("setDate",$("#inline").datepicker("getDate"))}})},updateEventDays:function(b){if(Events.eventDates!==null){var a=Events.eventDates.events.length;for(i=0;i<a;i++){var c=Events.eventDates.events[i];if(b.getDate()==c.day&&(b.getMonth()+1)==c.month&&b.getUTCFullYear()==c.year){return[true,"eventDate"]}}}return[true,""]},convertDatePickerDateToURLDate:function(a){formattedDate=a.getUTCFullYear()+"/"+(a.getMonth()+1)+"/"+a.getDate();return formattedDate},convertToURLDate:function(a){formattedDate=a.substr(6,4)+"/"+a.substr(3,2)+"/"+a.substr(0,2);return formattedDate}};var Wiki={editWikiEntry:function(a,b){if(Editor.editorOpen){alert("Please close the previous editor before editing another wiki entry.")}else{$.get("wiki/"+a,{action:"edit",wikiType:b},function(c){$("#wiki_"+a).html(c)})}},initEditWikiEntryForm:function(a){var b={target:"#wiki_"+a,beforeSubmit:Wiki.validateEditWikiEntry,success:Wiki.completeEditWikiEntry};$("#editWikiEntryForm").ajaxForm(b)},validateEditWikiEntry:function(e,c,a){SiteFunction.toggleError("#wikiContentError","",false);isValid=true;for(var b=0;b<e.length;b++){var d=e[b];if(d.name=="wikiContent"){e[b]={name:"wikiContent",value:Editor.editor1.getData()}}}for(var b=0;b<e.length;b++){var d=e[b];if(d.name=="wikiContent"){if(!d.value){SiteFunction.toggleError("#wikiContentError","Please enter some content for the wiki",true);isValid=false}}}if(!isValid){return false}else{SiteFunction.setLoading("saveBlog")}},completeEditWikiEntry:function(a){Editor.destroyEditor();SiteFunction.finishedLoading();UserFunction.toggleStatus();SiteFunction.displayDialog("Wiki Entry edited","Displaying edited wiki entry...")},cancelEdit:function(a,b){$.get("wiki/"+a,{wikiType:b},function(c){$("#wiki_"+a).html(c);Editor.destroyEditor()})}};var Blog={showAllBlogs:function(){SiteFunction.setLoading("showAllBlogs");$("#blogholder").fadeOut("slow",function(){$.get(SiteFunction.path+"blog",{},function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();$("#blogholder").fadeIn("slow").html(a)})})},showBlogItem:function(a){SiteFunction.setLoading("showBlogItem");$("#blogholder").fadeOut("slow",function(){$.get(SiteFunction.path+"blog/"+a,{},function(b){SiteFunction.finishedLoading();UserFunction.toggleStatus();$("#blogholder").slideDown("slow").html(b)})})},editBlogItem:function(a){$.get(SiteFunction.path+"blog/"+a,{action:"edit"},function(b){$("#blogholder").html(b);Editor.displayEditor("blogContent");Blog.initEditBlogForm()})},removeBlogItem:function(a){$.ajax({type:"DELETE",url:SiteFunction.path+"blog/"+a,dataType:"json",success:function(b){if(b.errorCode===0){SiteFunction.displayDialog("Blog Entry Removed","Returning to recent blog entries...");Blog.showAllBlogs()}else{SiteFunction.displayDialog("Unable to remove blog entry","Please contact the CantFitMyN admins to resolve this issue.")}}})},createNewBlogEntry:function(){$.get(SiteFunction.path+"blog/0",{action:"edit"},function(a){$("#blogholder").html(a);Editor.displayEditor("blogContent");Blog.initEditBlogForm()})},initEditBlogForm:function(){var a={target:"#blogholder",beforeSubmit:Blog.validateEditBlog,success:Blog.completeEditBlog};$("#editBlogForm").ajaxForm(a)},validateEditBlog:function(e,c,a){SiteFunction.toggleError("#blogTitleError","",false);SiteFunction.toggleError("#blogContentError","",false);isValid=true;for(var b=0;b<e.length;b++){var d=e[b];if(d.name=="blogContent"){e[b]={name:"blogContent",value:Editor.editor1.getData()};console.log(e[b])}}for(var b=0;b<e.length;b++){var d=e[b];switch(d.name){case"blogTitle":if(!d.value){SiteFunction.toggleError("#blogTitleError","Please enter a title for the blog",true);isValid=false}break;case"blogContent":if(!d.value){SiteFunction.toggleError("#blogContentError","Please enter some content for the blog",true);isValid=false}break}}if(!isValid){return false}else{SiteFunction.setLoading("saveBlog")}},completeEditBlog:function(a){Editor.destroyEditor();SiteFunction.finishedLoading();UserFunction.toggleStatus()}};var Profile={initChangePasswordForm:function(){var a={dataType:"json",beforeSubmit:Profile.validateChangePassword,success:Profile.completeChangePassword};$("#changePasswordForm").ajaxForm(a)},validateChangePassword:function(f,d,b){SiteFunction.toggleError("#currentPasswordError","",false);SiteFunction.toggleError("#newPasswordError","",false);SiteFunction.toggleError("#confirmPasswordError","",false);SiteFunction.toggleSuccess("#profilePasswordReset","",false);isValid=true;var g="";var a="";for(var c=0;c<f.length;c++){var e=f[c];switch(e.name){case"currentPassword":if(!e.value){SiteFunction.toggleError("#currentPasswordError","Please enter your current password",true);isValid=false}break;case"newPassword":if(!e.value){SiteFunction.toggleError("#newPasswordError","Please enter your new password",true);isValid=false}else{g=e.value}break;case"confirmPassword":if(e.value){a=e.value}break}}if(g!=a){SiteFunction.toggleError("#confirmPasswordError","Please confirm your password correctly",true);isValid=false}if(!isValid){return false}else{SiteFunction.setLoading("changePassword")}},completeChangePassword:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.toggleSuccess("#profilePasswordReset","Password changed. Please check your email for confirmation.",true)}else{SiteFunction.toggleError("#currentPasswordError",a.errorMessage,true)}},initChangeEmailForm:function(){var a={dataType:"json",beforeSubmit:Profile.validateChangeEmail,success:Profile.completeChangeEmail};$("#changeEmailForm").ajaxForm(a)},validateChangeEmail:function(h,f,c){SiteFunction.toggleError("#newEmailError","",false);SiteFunction.toggleError("#confirmEmailError","",false);SiteFunction.toggleSuccess("#profileEmailChange","",false);isValid=true;var b=/^([a-zA-Z0-9_.\-])+@([a-zA-Z0-9_.\-])+\.([a-zA-Z])+([a-zA-Z])+/;var e="";var a="";for(var d=0;d<h.length;d++){var g=h[d];switch(g.name){case"newEmail":if(!g.value||(g.value&&!b.test(g.value))){SiteFunction.toggleError("#newEmailError","Please enter a valid new email address",true);isValid=false}else{e=g.value}break;case"confirmEmail":if(g.value){a=g.value}break}}if(e!=a){SiteFunction.toggleError("#confirmEmailError","Please confirm your email correctly",true);isValid=false}if(!isValid){return false}else{SiteFunction.setLoading("changeEmail")}},completeChangeEmail:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.toggleSuccess("#profileEmailChange","Email changed. Please check your email for confirmation.",true)}else{SiteFunction.toggleError("#newEmailError",a.errorMessage,true)}},initPersonalProfileForm:function(){var a={dataType:"json",beforeSubmit:Profile.validatePersonalProfile,success:Profile.completePersonalProfile};$("#personalProfileForm").ajaxForm(a)},validatePersonalProfile:function(g,d,b){isValid=true;SiteFunction.toggleError("#dobError","",false);var a=$("#dobDay").val();var f=$("#dobMonth").val();var c=$("#dobYear").val();if(a!=""&&f!=""&&c!=""){var e=new Date();e.setFullYear(c,f-1,a);if(e.getUTCDate()!=a||e.getUTCMonth()+1!=f||e.getFullYear()!=c){SiteFunction.toggleError("#dobError","Invalid date of birth",true);isValid=false}}if(!isValid){return false}else{SiteFunction.setLoading("setPersonalProfile")}},completePersonalProfile:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.displayDialog("Profile Updated","Thank you for taking the time to update your profile.")}else{SiteFunction.displayDialog("Error whilst updating profile","Please contact the CantFitMyN admins to resolve this issue.")}},initGamesProfileForm:function(){var a={dataType:"json",beforeSubmit:Profile.validateGamesProfile,success:Profile.completeGamesProfile};$("#gamesProfileForm").ajaxForm(a)},validateGamesProfile:function(c,b,a){isValid=true;if(!isValid){return false}else{SiteFunction.setLoading("setGamesProfile")}},completeGamesProfile:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.displayDialog("Profile Updated","Thank you for taking the time to update your games profile.");Profile.updateAvatar()}else{SiteFunction.displayDialog("Error whilst updating profile","Please contact the CantFitMyN admins to resolve this issue.")}},initAddGameForm:function(){var a={dataType:"json",beforeSubmit:Profile.validateAddGame,success:Profile.completeAddGame};$("#addGamesForm").ajaxForm(a)},validateAddGame:function(d,c,b){isValid=true;SiteFunction.toggleError("#gameNameError","",false);var e=$("#gameName").val();var a=$("#gameList").val();if((e==""&&a=="")||(e!=""&&a!="")){SiteFunction.toggleError("#gameNameError","Please select one of the two options for adding a game.",true);isValid=false}if(!isValid){return false}else{SiteFunction.setLoading("addGamesForm")}},completeAddGame:function(a){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(a.errorCode===0){SiteFunction.displayDialog("Game added","Game added successfully.");Profile.updateGamesList()}else{SiteFunction.displayDialog("Error whilst adding game",a.errorMessage)}},updateGamesList:function(){$.get(SiteFunction.path+"profile/games/myGamesList",{},function(a){$("#myGamesList").html(a)})},removeGame:function(a){SiteFunction.setLoading("removeGame");$.ajax({type:"POST",url:SiteFunction.path+"profile/games/remove",data:{gameId:a},dataType:"json",success:function(b){SiteFunction.finishedLoading();UserFunction.toggleStatus();if(b.errorCode===0){SiteFunction.displayDialog("Game removed","Game removed successfully.");Profile.updateGamesList()}else{SiteFunction.displayDialog("Error whilst removing game",b.errorMessage)}}})},changeAvatarType:function(){var a=$("#avatarType").val();$("#steamAvatarInfo").hide();$("#CFMNAvatarLi").hide();if(a=="cfmn"){$("#CFMNAvatarLi").show()}if(a=="steam"){$("#steamAvatarInfo").show()}},updateAvatar:function(){$.getJSON(SiteFunction.path+"profile/games/updateAvatar",{},function(a){if(a.errorCode===0){$("#currentAvatar").attr("src",a.errorMessage)}})}};var Twitter={twitterFeed:"",nextTwitterItem:0,previousTwitterItem:0,animationLock:false,getTwitterFeed:function(){SiteFunction.setLoading("getTwitterFeed");$.jsonp({url:"http://twitter.com/statuses/user_timeline/CantFitMyN.json",dataType:"jsonp",callbackParameter:"callback",timeout:5000,success:function(b,a){twitterFeed=b;$("#twitterHolder").empty();for(i=0;i<3;i++){$("#twitterHolder").append("<li>"+Twitter.getTwitterItemData(i)+"</li>")}previousTwitterItem=-1;nextTwitterItem=4;Twitter.setIconStyle();SiteFunction.finishedLoading();UserFunction.toggleStatus()},error:function(a,c,b){$("#twitterHolder").prepend("<li>Unable to retrieve twitter feed at this time.</li>");SiteFunction.finishedLoading();UserFunction.toggleStatus()}})},showNextTwitterItem:function(){if(nextTwitterItem!=twitterFeed.length){if(!Twitter.animationLock){Twitter.animationLock=true;Twitter.smoothUp("twitterHolder",Twitter.getTwitterItemData(nextTwitterItem));nextTwitterItem++;previousTwitterItem++}}},showPreviousTwitterItem:function(){if(previousTwitterItem>-1){if(!Twitter.animationLock){Twitter.animationLock=true;Twitter.smoothDown("twitterHolder",Twitter.getTwitterItemData(previousTwitterItem));nextTwitterItem--;previousTwitterItem--}}},getTwitterItemData:function(b){var a=twitterFeed[b].created_at.split(" ");twitterDate=a[0]+" "+a[1]+" "+a[2]+" "+a[5]+" "+a[3]+" "+a[4];twitterDate=new Date(twitterDate);twitterText=twitterFeed[b].text;twitterText=twitterText.replace(new RegExp("(http://[^ ]+)","g"),"<a href='$1' target='_blank'>$1</a>");twitterText=twitterText.replace(new RegExp("#([^ ]+)","g"),"<a href='http://twitter.com/search?q=%23$1' target='_blank'>#$1</a>");twitterText=twitterText.replace(new RegExp("@([^ ']+)","g"),"@<a href='http://twitter.com/$1' target='_blank'>$1</a>");twitterSource=twitterFeed[b].source;twitterSource=twitterSource.replace(new RegExp("apiwiki.twitter.com/"),"www.cantfitmyn.net/chat");twitterSource=twitterSource.replace(new RegExp("API"),"IRC");return twitterText+"<div class='smalltext'>"+twitterDate.format("hh:MM tt mmm dS")+" from "+twitterSource+"</div><p></p>"},smoothDown:function(b,l){var c=$("#"+b);var g=c.height();c.css({height:g,overflow:"hidden"});var m=parseInt(c.css("padding-top"),10);var j=parseInt(c.css("padding-bottom"),10);c.prepend("<li>"+l+"</li>");var f=$("li:first",c);var k=$("li:last",c);var a=f.outerHeight();var e=a-k.outerHeight();var d=f.css("margin-top");f.css({marginTop:0-a,position:"relative",top:0-m});k.css("position","relative");c.animate({height:g+e},1500);f.animate({top:0},250,function(){f.animate({marginTop:d},1000,function(){k.animate({top:j},250,function(){k.remove();c.css({height:"auto",overflow:"visible"});Twitter.animationLock=false;Twitter.setIconStyle()})})})},smoothUp:function(a,j){var b=$("#"+a);var f=b.height();b.css({height:f,overflow:"hidden"});b.append("<li>"+j+"</li>");var e=$("li:first",b);var g=$("li:last",b);var c=g.outerHeight();var d=c-e.outerHeight();g.css({marginBottom:0+c,position:"relative",top:0});e.css("position","relative");var k=0-e.outerHeight();b.animate({height:f+d},1000);g.animate({top:0,marginBottom:0},250,function(){e.animate({marginTop:k},1000,function(){e.remove();b.css({height:"auto",overflow:"visible"});Twitter.animationLock=false;Twitter.setIconStyle()})})},setIconStyle:function(){if(previousTwitterItem>-1){$("#previousTweets").removeClass("disabled")}else{$("#previousTweets").addClass("disabled")}if(nextTwitterItem!=twitterFeed.length){$("#nextTweets").removeClass("disabled")}else{$("#nextTweets").addClass("disabled")}}};var Stats={lockStatsDisplay:false,currentDisplayed:new Array(),statsChangeDifference:10,setDisplayValues:function(d,b,c,a){Stats.currentDisplayed[d]={lock:false,minDisplay:b,maxDisplay:c,currentAmountToDisplay:a}},getDisplayValues:function(a){return Stats.currentDisplayed[a]},setCurrentDisplayed:function(b,a){Stats.currentDisplayed[b].currentAmountToDisplay=a},getCurrentDisplayed:function(a){return Stats.currentDisplayed[a].currentAmountToDisplay},showMoreStats:function(b,a){displayValues=Stats.getDisplayValues(b);if(displayValues.currentAmountToDisplay<displayValues.maxDisplay&&!displayValues.lock){Stats.setCurrentDisplayed(b,Stats.getCurrentDisplayed(b)+Stats.statsChangeDifference);Stats.showStats(b,a)}},showLessStats:function(b,a){displayValues=Stats.getDisplayValues(b);if(displayValues.currentAmountToDisplay>displayValues.minDisplay&&!displayValues.lock){Stats.setCurrentDisplayed(b,Stats.getCurrentDisplayed(b)-Stats.statsChangeDifference);Stats.showStats(b,a)}},showStats:function(b,a){displayValues=Stats.getDisplayValues(b);SiteFunction.setLoading("showStats");displayValues.lock=true;$("#"+b+" .gameName,#"+b+" .nickname").fadeOut("fast");$("#"+b).slideUp("slow",function(){$.get(SiteFunction.path+a,{display:displayValues.currentAmountToDisplay},function(c){SiteFunction.finishedLoading();UserFunction.toggleStatus();$("#"+b).html(c);$("#"+b+" .gameName,#"+b+" .nickname").hide();$("#"+b).slideDown("slow",function(){$("#"+b+" .gameName,#"+b+" .nickname").fadeIn("fast");displayValues.lock=false;Stats.setMoreLessIcons(b);Stats.applyCaption()})})})},setMoreLessIcons:function(a){displayValues=Stats.getDisplayValues(a);if(displayValues.currentAmountToDisplay<=displayValues.minDisplay){$("#"+a+"Less").addClass("disabled")}else{$("#"+a+"Less").removeClass("disabled")}if(displayValues.currentAmountToDisplay>=displayValues.maxDisplay){$("#"+a+"More").addClass("disabled")}else{$("#"+a+"More").removeClass("disabled")}},applyCaption:function(){$(".caption").hover(function(){$(this).children("div").stop().fadeTo(500,0.9)},function(){$(this).children("div").stop().fadeOut(500)})}};
