var dba;var baseserverurl;var baseserverip;var oldhash=window.location.hash;var hashcheck=setInterval("checkHash()",500);var prefs="00000000000000000000000000000000000000000000000000";function checkHash(){if(oldhash!=window.location.hash){oldhash=window.location.hash;displayDashboard()}}var PERM_NOACCESS=10,PERM_CLIENT=20,PERM_TEAM=40,PERM_ADMIN=100;var STATUS_NONE=0,STATUS_INPROGRESS=1,STATUS_PROBLEM=2,STATUS_COMPLETE=3;var JSC_UPLOADSTATUS=0,JSC_LOGIN=1,JSC_LOGOUT=2,JSC_SIGNUP=3,JSC_SIGNUPEMAIL=4,JSC_FORGOTPASSWORD=5,JSC_DASHBOARD_PROJECTS=10,JSC_DASHBOARD_MESSAGES=11,JSC_DASHBOARD_ITEMS=12,JSC_PROJECT_PROJECT=13,JSC_PROJECT_ITEMS=14,JSC_PROJECT_MESSAGES=15,JSC_PROFILE=16,JSC_ADMIN_USERS=17,JSC_ITEM_ITEM=18,JSC_ITEM_REVISIONS=19,JSC_ITEM_MESSAGES=20,JSC_ADMIN_SUBSCRIPTION=21,JSC_DASHBOARD_WIDGET=22,JSC_THREAD_MESSAGES=23,JSC_ADDTHREADMESSAGE=24,JSC_ADDITEMMESSAGE=25,JSC_ADDPROJECTMESSAGE=26,JSC_ADMIN_NUMBERS=27,JSC_ADMIN_PROJECTS=28,JSC_DASHBOARD_MILESTONES=29,JSC_PROJECT_MILESTONES=30,JSC_EDITMILESTONE=31,JSC_DELETEMILESTONE=32,JSC_ADMIN_PREFS=33,JSC_SAVEPROJECT=100,JSC_EDITPROJECT=101,JSC_EDITITEM=102,JSC_SAVEITEM=103,JSC_SAVEITEM_FILE=104,JSC_DELETEPROJECT=105,JSC_DELETEITEM=106,JSC_DELETEREVISION=107,JSC_SAVEREVISION=108,JSC_SAVEREVISION_FILE=109,JSC_BADDOWNLOAD=110,JSC_ADDITEM=111,JSC_NONE=1000;var currjson,currprojjson,currpw,currprojects,currmessages,curritems,curritem,curruserid,currperm=0,myprofilejson,currrevisions,currwidget,isloggedin=false;var STATUS=new Array("None","In progress","Problem","Complete");var START=new Array();function includeCSS(B){var A=document.getElementsByTagName("head").item(0);if(!A){alert("Ooops. Your page must have a <head> element.")}if(document.getElementById(B)!=null){return}var C=document.createElement("link");C.setAttribute("rel","stylesheet");C.setAttribute("type","text/css");C.setAttribute("href",B);C.setAttribute("id",B);A.appendChild(C)}function includeJS(A,C){if(C){C=gEBI(C);empty(C)}else{C=document.getElementsByTagName("head").item(0);if(!C){alert("Ooops. Your page must have a <head> element.")}if(document.getElementById(A)!=null){return}}var B=document.createElement("script");B.setAttribute("language","javascript");B.setAttribute("type","text/javascript");B.setAttribute("id",A);if(A.charAt(0)=="/"){A="http://projectthingy.resources.s3.amazonaws.com"+A}B.setAttribute("src",A);C.appendChild(B)}function projectThingy(){var A=sitecode.indexOf(".");dba="s1";if(A!=-1){dba=sitecode.substring(0,A);sitecode=sitecode.substring(A+1)}baseserverurl="http://"+dba+".projectthingy.com";baseserverip=baseserverurl;includeJS("/projectthingy_tools.js");includeCSS("http://projectthingy.resources.s3.amazonaws.com/projectthingy_widget.css");includeJS("/projectthingy_dashboard.js");includeJS("/projectthingy_project.js");includeJS("/projectthingy_item.js");includeJS("/projectthingy_login.js")}function getStatus(B,A,C){if(currperm>=PERM_TEAM){return'<a href="javascript:editStatus('+B+",'"+A+"',"+C+');" id=href'+A+"status"+C+"><img src='http://projectthingy.images.s3.amazonaws.com/status_"+B+".gif' title='Status: "+STATUS[B]+", click to edit' border=0 width=14 height=14 id=image"+A+"status"+C+"></a> <span id=edit"+A+"status"+C+"></span><img src=http://projectthingy.images.s3.amazonaws.com/transparent.gif width=6>"}else{return"<img src='http://projectthingy.images.s3.amazonaws.com/status_"+B+".gif' title='Status: "+STATUS[B]+"' border=0 width=14 height=14></a><img src=http://projectthingy.images.s3.amazonaws.com/transparent.gif width=6>"}}function editStatus(C,B,D){if(gEBI("edit"+B+"status"+D).innerHTML.length==0){var A=" <select id=selectstatus"+B+"status"+D+" onchange=\"saveStatus('"+B+"',"+D+');">';for(i=0;i<STATUS.length;i++){A+="<option name=status"+i+" value="+i;if(C==i){A+=" selected"}A+=">"+STATUS[i]}A+="</select> ";setHTML("edit"+B+"status"+D,A)}else{setHTML("edit"+B+"status"+D,"")}}function saveStatus(type,id){var u="/widget?c="+sitecode+"&a="+type+"&d=savestatus";var s=gEBI("selectstatus"+type+"status"+id).value;u+="&status="+s;if(type=="project"){if(gEBI("selectstatus"+type+"status"+id).value==3){alert("You are setting the status of this project to 'complete'. Completed projects can't be edited or added to. You can always change it back to a status other than 'complete' if necessary.")}u+="&id="+id}else{if(type=="message"){u+="&messageid="+id}else{if(type=="milestone"){u+="&milestoneid="+id}else{u+="&itemid="+id}}}sendCommand(baseserverip,u);gEBI("href"+type+"status"+id).href="javascript:editStatus("+s+",'"+type+"',"+id+");";gEBI("image"+type+"status"+id).src="http://projectthingy.images.s3.amazonaws.com/status_"+s+".gif";gEBI("image"+type+"status"+id).title="Status: "+STATUS[eval(s)];setHTML("edit"+type+"status"+id,"")}function handleJSON(command,json,json2){if(--remainingcommands<=0){remainingcommands=0;setHTML("loading","");if(commandchecker!=null){clearTimeout(commandchecker)}commandchecker=null;currcommands=null;retrying=false}if(json.s){currjson=json;if(json.s=="badcode"){var m="Ooops. The sitecode supplied with this page will not work with this domain. Please make sure you entered the correct domain when you grabbed the code for this projectthingy at projectthingy.com.";setHTML("pt_apparea",m)}else{if(json.s=="notactive"){var m="Ooops. This ProjectThingy has been deactivated.";setHTML("pt_apparea",m)}else{if(json.s=="noauth"){logout(false);displayLogin(false);alert("Ooops. Your login failed or your session has expired.")}else{if(command==JSC_LOGIN){if(json.s=="pending"){logout(false);displayLogin(false);alert("Ooops. Your account has not yet been approved by the site administrator.")}else{curruserid=json.id;currperm=eval(json.permission);if(currperm>=PERM_ADMIN){includeJS("/projectthingy_admin.js")}isloggedin=true;displayDashboard()}}else{if(command==JSC_LOGOUT){displayLogin(false)}else{if(command==JSC_SIGNUP){if(json.s=="ok"){setHTML("pt_apparea","Thanks for signing up! Your account is awaiting approval by the site administrator. <br><br>Enter your email here if you wish to be notified when your account has been approved: <form onsubmit='signupEmail(); return false;'><input type=text id=signupemail><input type=hidden id=username value="+json.un+"><input type=submit value=Submit></form><br><br><a href='javascript:displayLogin(false)'>Login here</a>.")}else{displaySignup();alert("Oops. That username has already been registered")}}else{if(command==JSC_FORGOTPASSWORD){if(json.s=="ok"){setHTML("pt_apparea","Please check your email inbox for a message with your new password.<br><br><a href='javascript:displayLogin(false)'>Login here</a>.")}else{displayForgotPassword();alert("Oops. That couldn't find that email address.")}}else{if(command==JSC_SIGNUPEMAIL){setHTML("pt_apparea","Great! You'll be notified at "+json.em+" when your account has been approved. <a href='javascript:displayLogin(false)'>Login here</a>.")}else{if(command==JSC_NONE){}else{alert("Ooops. Something went wrong. Please try again.")}}}}}}}}}}else{if(command==JSC_DASHBOARD_PROJECTS){displayDashboardProjects(json.data)}else{if(command==JSC_DASHBOARD_MESSAGES){displayDashboardMessages(json.data)}else{if(command==JSC_DASHBOARD_ITEMS){displayDashboardItems(json.data)}else{if(command==JSC_DASHBOARD_WIDGET){displayDashboardDashboard(json)}else{if(command==JSC_DASHBOARD_MILESTONES){displayDashboardMilestones(json.data)}else{if(command==JSC_DELETEPROJECT){displayDashboard()}else{if(command==JSC_SAVEPROJECT){displayProject(json.id)}else{if(command==JSC_PROJECT_PROJECT){displayProjectProject(json)}else{if(command==JSC_PROJECT_ITEMS){displayProjectItems(json.data)}else{if(command==JSC_PROJECT_MESSAGES){displayProjectMessages(json.data)}else{if(command==JSC_PROJECT_MILESTONES){displayProjectMilestones(json.data)}else{if(command==JSC_EDITMILESTONE){displayEditMilestone(json)}else{if(command==JSC_DELETEMILESTONE){displayProjectMilestones(json.data)}else{if(command==JSC_DELETEITEM){displayProject(json.id)}else{if(command==JSC_DELETEREVISION){displayItem(json.id)}else{if(command==JSC_SAVEREVISION){displayItem(json.id)}else{if(command==JSC_SAVEREVISION_FILE){uploadFile(json,"revision")}else{if(command==JSC_SAVEITEM_FILE){uploadFile(json,"item")}else{if(command==JSC_ADDITEM){displayProject(json.id)}else{if(command==JSC_SAVEITEM){displayItem(json.id)}else{if(command==JSC_ITEM_ITEM){displayItemItem(json)}else{if(command==JSC_ITEM_REVISIONS){displayItemRevisions(json.data)}else{if(command==JSC_ITEM_MESSAGES){displayItemMessages(json.data)}else{if(command==JSC_THREAD_MESSAGES){displayThreadMessages(json.data,json2.data2)}else{if(command==JSC_PROFILE){displayProfileProfile(json)}else{if(command==JSC_EDITPROJECT){displayEditProject(json.data)}else{if(command==JSC_EDITITEM){displayEditItem(json.data)}else{if(command==JSC_ADMIN_USERS){displayAdminUsers(json.data)}else{if(command==JSC_ADMIN_PREFS){displayAdminPrefs(json)}else{if(command==JSC_ADMIN_PROJECTS){displayAdminProjects(json.data)}else{if(command==JSC_ADMIN_SUBSCRIPTION){displayAdminSubscription(json)}else{if(command==JSC_ADMIN_NUMBERS){displayAdminNumbers(json)}else{if(command==JSC_UPLOADSTATUS){uploadStatus(json)}else{if(command==JSC_ADDITEMMESSAGE){displayAddItemMessage(json.data)}else{if(command==JSC_ADDPROJECTMESSAGE){displayAddProjectMessage(json.data)}else{if(command==JSC_BADDOWNLOAD){alert("Ooops. Download failed: "+json.reason)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}function expand(D,C,B,A){if(C!=null){gEBI(B+C).innerHTML=doBRs(d(D[C][A]))}else{gEBI(B).innerHTML=doBRs(d(D[A]))}gEBI(B+"_l"+C).innerHTML=""}function getNav(A,C,D){var B="<table width=100%><tr valign=top><td><p style='margin-bottom:12px;'><a href='javascript:displayDashboard(0);' style='font-size:larger;'>Dashboard</a>";B+=" &nbsp; &nbsp;<a href=\"javascript:displayProfile('mine');\" style='font-size:larger;'>My Profile</a>";if(currperm>=PERM_ADMIN){B+=" &nbsp; &nbsp;<a href=\"javascript:displayAdmin();\" style='font-size:larger;'>Admin</a>"}B+=" &nbsp; &nbsp;<a href='http://www.projectthingy.com/faq.html' target='ptfaq' style='font-size:larger;' target=faq>FAQ</a>";B+=" &nbsp; &nbsp;<a href='javascript:logout(true);' style='font-size:larger;'>Logout</a>";B+="<span id=loading></span></p></td><td align=right><form onsubmit='search(); return false;' class=ptf><input type=text id=searchwords";if(searchwords!=null){B+=" value='"+searchwords+"'"}B+=" style='width:100px'> <input type=submit value=Search>&nbsp;</td></form></tr><tr><td colspan=2><span id=addnav></span></td></tr></table>";return B}function load(H,G,C,B,D,F,E){if(B==1){setHTML(G+"morelink",loadimage)}var A=START[H+G]+10*B;START[H+G]=A;if(G=="items"){C=itemfilter}else{if(G=="messages"){C=messagefilter}}var I="/widget?c="+sitecode+"&a="+H+"&d="+G+"&which="+C+"&start="+A;if(D){I+="&id="+D}if(F){I+="&itemid="+F}if(E){I+="&messageid="+E}if(H=="dashboard"&&searchwords!=null){I+="&search="+escape(searchwords)}sendCommand(baseserverip,I)}function pagination(C,G,F,A,E,B){if(START[C+G]==0&&F.length<11){return""}var D="<span id="+G+"list"+(START[C+G]+10)+"><br><center><span id="+G+"morelink>";D+='<a href="javascript:scroll(0,0);">[top]</a>';if(F.length==11){D+=" &nbsp; &nbsp; &nbsp <a href=\"javascript:load('"+C+"', '"+G+"', 'all', 1, "+A+","+E+","+B+');">[more...]</a>'}D+="</span></center></span>";return D}function mouseList(A,C,B){if(B=="in"){gEBI("ml_"+A+"_l"+C).style.display="block";gEBI("ml_"+A+"_n"+C).style.display="none"}else{if(B=="out"){gEBI("ml_"+A+"_l"+C).style.display="none";gEBI("ml_"+A+"_n"+C).style.display="block"}}}function filterItems(B,C){START.dashboarditems=0;START.projectitems=0;if(itemfilter=="all"){itemfilter="mine"}else{itemfilter="all"}var A=null;if(currprojjson){A=currprojjson.id}load(B,C,itemfilter,0,A)}function filterMessages(B,D){START.dashboardmessages=0;START.itemmessages=0;START.projectmessages=0;if(messagefilter=="all"){messagefilter="mine"}else{messagefilter="all"}var A=null,C=null;if(currprojjson){A=currprojjson.id}if(curritem){A=curritem.project_id;C=curritem.id}load(B,D,messagefilter,0,A,C)}function filterProjects(A,B){START.dashboardprojects=0;if(projectfilter=="active"){projectfilter="all"}else{projectfilter="active"}load(A,B,projectfilter,0,null,null)}function filterMilestones(A,B){START.projectmilestones=0;if(milestonesfilter=="active"){milestonesfilter="all"}else{milestonesfilter="active"}load(A,B,milestonesfilter,0,currprojjson.id)};
