var Polls={id:"Polls",title:"Polls",image:"polls16.png",allowItems:true,allowFolders:true,allowDrag:true,allowComments:true,itemName:"Poll",sendUpdateRequestMenuLabel:"Send Poll Request...",itemClassName:"polls",EditDialog:"EditDialog/48533051.js",UpdateSection:"UpdateSection/37324937.js",UserVotesDialog:"UserVotesDialog/37747674.js",defaultLayout:"List",detailLayout:"ItemDetail",itemLayout:"ItemLayout",sectionDetailLayout:"SectionDetail",getUserVotesCommand:"polls/getuservotes",_0:new ImageSizer(80,80,{minWidth:40,minHeight:40,minFileSize:100}),renderStyle:function(w){w(".pollGraph{background-color: #000080}",".pollsMaxSelect {",FontSize.xs,"white-space:nowrap; text-overflow:ellipsis; overflow: hidden;}",".pollsInfoLine {",FontSize.xs,"}")},sendUpdateRequest:function(item,dlg){var t=Polls;var now=new Date();var endTimeUtc=Date.fromSeconds(item.endTimeUtc);var isPollClosed=(item.endTimeUtc>0&&endTimeUtc&&now>endTimeUtc);if(isPollClosed){Dialog.alert("The poll is closed and can not be sent.");dlg.cancel=true}else{dlg.subject="Poll: "+item.question;dlg.to="";dlg.intro="";dlg.bodyRender=t._10;dlg.action="polls/mailvote"}},layouts:{List:{itemTagName:"DIV",isItemRendered:function(item){var now=new Date();var displayStartTimeUtc=Date.fromSeconds(item.displayStartTimeUtc);var displayEndTimeUtc=Date.fromSeconds(item.displayEndTimeUtc);var isPollQueued=(item.displayStartTimeUtc>0&&displayStartTimeUtc&&now<displayStartTimeUtc);var isPollArchived=(item.displayEndTimeUtc>0&&displayEndTimeUtc&&now>displayEndTimeUtc);return(!isPollArchived&&(!isPollQueued||item.permissions.edit))},renderItemsHeader:function(w,s,items){},renderItemsFooter:function(w,s,items){},renderItemContent:function(w,item){Polls.renderItemContent(w,item)},renderContentFooter:function(w,s){var now=new Date();var archivedCount=0;if(s.items){for(var i=0;i<s.items.length;i++){var item=s.items[i];now=new Date();var displayEndTimeUtc=Date.fromSeconds(item.displayEndTimeUtc);if(item.displayEndTimeUtc>0&&displayEndTimeUtc&&now>displayEndTimeUtc){archivedCount++}}}if(archivedCount>0){w("<div class='section-padding section-view'>","<a href='",Section.formatHref(s),"' >",archivedCount+" Archived Polls","</a>","</div>")}},renderItemDivider:function(w,s){w("<div class='hr divider' style='font-size: 4px;'>&nbsp;</div>")}},ItemDetail:{kind:1,renderItemContent:function(w,item,index){var t=Polls;var p=new ItemPanel(w,item);p.property("Question",item.question);p.property("Description",item.text);var sd=Date.fromSeconds(item.displayStartTimeUtc);p.property("Polls Starts",(item.displayStartTimeUtc&&sd?sd.toString1():null));var ed=Date.fromSeconds(item.endTimeUtc);p.property("Polls Ends",(item.displayStartTimeUtc&&ed?ed.toString1():null));var sb=new StringBuilder();sb.write("<div style='border:1px solid gray;padding:4px;'>");t._2(sb.write,item,true);sb.write("</div>");p.property("Results",sb.toString(),{"vertical-align":"top"});if(!item.created)item.created=page.created;if(!item.hideIndividualVotes||item.created==ServerData.user.userName){p.property("Votes",t._1(item))}p.created();p.modified();p.close()}},ItemLayout:{kind:1,renderItemContent:function(w,item,index){var t=Polls;var p=new ItemPanel(w,item);p.property("Question",item.question);p.property("Description",item.text);var sb=new StringBuilder();sb.write("<div style='border:1px solid gray;padding:4px;'>");t._2(sb.write,item,true);sb.write("</div>");p.property("Results",sb.toString(),{"vertical-align":"top"});if(!item.created)item.created=page.created;if(!item.hideIndividualVotes||item.created==ServerData.user.userName){p.property("Votes",t._1(item))}p.itemCommentList();var sd=Date.fromSeconds(item.displayStartTimeUtc);p.property("Polls Starts",(item.displayStartTimeUtc&&sd?sd.toString1():null));var ed=Date.fromSeconds(item.endTimeUtc);p.property("Polls Ends",(item.displayStartTimeUtc&&ed?ed.toString1():null));p.close()}},SectionDetail:{kind:1,itemTagName:"DIV",isItemRendered:function(item){return true},renderItemContent:function(w,item){Polls.renderItemContent(w,item)},renderItemDivider:function(w,s){w("<div class='hr divider' style='font-size: 4px;'>&nbsp;</div>")}}},createItemMenuItems:function(menu,item,src){if(item.permissions.edit){var now=new Date();var displayEndTimeUtc=Date.fromSeconds(item.displayEndTimeUtc);var endTimeUtc=Date.fromSeconds(item.endTimeUtc);if(!item.endTimeUtc||!endTimeUtc||endTimeUtc>now){menu.add("Close Poll",Polls._5,item.nodeId)}if(!item.displayEndTimeUtc||!displayEndTimeUtc||displayEndTimeUtc>now){menu.add("Archive Poll",Polls._6,item.nodeId)}}},addItems:function(id,beforeId){Module.showDialog(Polls,"EditDialog",{parentId:id,beforeId:beforeId})},updateItem:function(i){if(i){Module.showDialog(Polls,"EditDialog",{item:page.nodes[i]})}},deleteItem:function(id){ContentItem.deleteItem(id)},_11:function(i){if(i){Module.showDialog(Polls,"UserVotesDialog",{item:page.nodes[i]})}},_5:function(nodeId){var item=page.nodes[nodeId];var d=new Date();item.endTimeUtc=d.toSeconds()-1;Section.refreshInnerHtml(item.section);var msg={item:nodeId};C.beginExec("polls/close",msg)},_6:function(nodeId){var item=page.nodes[nodeId];var d=new Date();item.displayEndTimeUtc=d.toSeconds()-1;Section.refreshInnerHtml(item.section);var msg={item:nodeId};C.beginExec("polls/archive",msg)},_15:function(response){var result=response.result;var text="";if(result){var votes=result.votes;var itemId=result.item;var item=page.nodes[itemId];text=Polls.formatVotesTable(item,votes)}var el=Dom.getElement("userVotesDiv");if(el){el.innerHTML=text}},formatVotesTable:function(item,votes){var t=Polls;var choices={};var i;for(i=0;i<item.choices.length;i++){var choice=item.choices[i];choices[choice.choiceId]=choice.title}var sb=new StringBuilder();var w=sb.write;w("<table cellspacing='1px' style='width:264px;float:left;'>","<col width=26>","<col width=1>","<col>","<thead>","<tr style='position:relative;background-color:white;'>","<th></th>","<th style='font-weightx:bold;padding-right:10px;padding-left:0px;padding-top:0px;'>User</th>","<th style='font-weightx:bold;padding-left:0px;padding-top:0px;'>Vote</th>","</tr>","</thead>","<tbody>");votes.sort(t._7);for(var j=0;j<votes.length;j++){var voteItem=votes[j];var userOrEmail=voteItem[0];var displayName=voteItem[1];var image=voteItem[2];var voteList=voteItem[3];w("<tr>","<td style='text-align:center;'>",(image?"<img width=20px height=20px src='"+A.userStaticBase+userOrEmail+"/"+image+"' align=absMiddle /> ":""),"</td>","<td style='padding-left:0px;padding-right:10px;'>","<span style='white-space:nowrap;'>",((userOrEmail.contains("@"))?userOrEmail:Html.optionalA(WebPath.fromPathKey(userOrEmail),displayName||userOrEmail)),"</span>","</td>","<td style='padding-left:0px;'>");for(i=0;i<voteList.length;i++){var voteId=voteList[i];var voteString=choices[voteId];w(voteString);if(i<voteList.length-1){w(", ")}}w("</td>","</tr>")}w("</tbody>","</table>");return sb.toString()},_7:function(a,b){var aName=(a[1]||a[0]).toLowerCase();var bName=(b[1]||b[0]).toLowerCase();if(aName<bName)return-1;if(aName>bName)return 1;return 0},renderItemContent:function(w,item,args){var t=Polls;var now=new Date();args=args||{};var isItemDetail=args.isItemDetail;var isSendPollRequest=args.isSendPollRequest;var displayStartTimeUtc=Date.fromSeconds(item.displayStartTimeUtc);var displayEndTimeUtc=Date.fromSeconds(item.displayEndTimeUtc);var endTimeUtc=Date.fromSeconds(item.endTimeUtc);var isPollClosed=(item.endTimeUtc>0&&endTimeUtc&&now>endTimeUtc);var isPollQueued=(item.displayStartTimeUtc>0&&displayStartTimeUtc&&now<displayStartTimeUtc);var isPollArchived=(item.displayEndTimeUtc>0&&displayEndTimeUtc&&now>displayEndTimeUtc);var isPollClosedSet=(item.endTimeUtc>0);item.userVote=item.userVote||{};var userHasVoted=false;for(var choice in item.userVote){if(item.userVote[choice]){userHasVoted=true;break}}var showResults=(!isSendPollRequest&&(userHasVoted||isPollClosed));if(item.state){if(item.state=="changeVote"){showResults=false}else if(item.state=="showResults"){showResults=true}}w("<div>",ImageEx.formatImg(A.imagesBase+"trianglebullet.png",5,9,{"class":"trianglebullet"}));PageNode.renderLink(w,item,{},{},item.question);w("<img class='button hoverVisible' align=absMiddle alt='",Style.formatCollapseText(item.isCollapsed,"Poll"),"' src='",Style.formatCollapseSrc(item.isCollapsed),"' onclick='Polls._3(this,",item.nodeId,");' />","</div>");var singleSelect=(item.maxChoices==1);var inputType=singleSelect?"radio":"checkbox";var inputLabelClass=singleSelect?"input-l-radio":"input-l-checkbox";w("<div style='width:100%;'>");var message;if(isPollQueued){message="[Poll starts "+displayStartTimeUtc.toString1()+"]"}else if(isPollClosed){message="[Poll Closed]"}else if(isPollClosedSet){var ageElement=new AgeBinding(endTimeUtc,null,true);message="[Poll closes in "+"<span id='"+ageElement.id+"'>"+ageElement.text+"</span>"+"]"}if(message){w("<div class='pollsMaxSelect color-red'>",message,"</div>")}w("<div style='margin-left:10px;margin-top:10px;'>");if(item.text&&item.text.length>0){w("<div style='margin-bottom:10px;'>",item.text,"</div>")}if(showResults){t._2(w,item,isItemDetail);w("</div>","<table>","<tr>","<td colspan=2 style='white-space:nowrap;'>");if(!isPollClosed&&(item.allowVoteChange||!userHasVoted)){w("<a href='' onclick='Polls._12("+item.nodeId+");return false;' class='pollsInfoLine'>",(userHasVoted?"Change Vote":"Vote"),"</a>"," | ")}if(!item.hideIndividualVotes){w(t._1(item)," | ")}ItemComment.renderCount(w,item,1);w("</td>","</tr>","</table>")}else{if(isPollClosed){w("<p><span class='pollsMaxSelect color-red' >Poll is Closed.</span></p>")}else if(item.maxChoices>1){w("<p><span class='pollsMaxSelect color-red' >Select up to "+item.maxChoices+" choices.</span></p>")}w("<form id='poll"+item.nodeId+"'>","<table width=100% cellspacing='2px' style='table-layout:fixed;'>","<col width=20/>");for(var i=0;i<item.choices.length;i++){choice=item.choices[i];var isChecked=(item.userVote[i]==true);w("<tr class=input-row>","<td widthx=20px vAlign=middle >","<input type=",inputType," name='choiceItems' value='",choice.choiceId,"' "+(isChecked?"checked":"")+" "+(isPollClosed?"disabled":"")+" style='cursor:pointer;'>","</td>","<td style='text-align: left;padding-top:3px;"+(isPollClosed?"color:gray;":"")+"'>");if(item.choiceType=="Picture"&&choice.image&&choice.image.length>0){t._0.render(w,{align:"absMiddle",src:choice.image});w("<br/>")}w(choice.title,"</td>","</tr>")}w("<tr style='height:5px;'></tr>","<tr>");if(!item.permissions.addComment){w("<td colspan=2>","<div class=helpLabel>",(!ServerData.user.userName?"You must be signed in to vote.":"You do not have privileges to vote."),"</div>","</td>")}else{w("<td></td>","<td>","<input class='inputButton"+(isPollClosed?" button-disabled":"")+"' type=button onclick='Polls._8("+item.nodeId+");return false;' value='Vote'/>","</td>")}w("</tr>","</table>","</form>","</div>","<table>","<tr>");if(item.permissions.edit||item.pollResultOption=="Always"||(item.pollResultOption=="AfterVote"&&userHasVoted)||(item.pollResultOption=="AfterClose"&&isPollClosed)){w("<td style='white-space:nowrap;'>","<a href=# onclick='Polls._13("+item.nodeId+");return false;' class='pollsInfoLine'>Show Results</a>","</td>")}w("<td></td>","</tr>","</table>")}w("</div>")},_4:function(item){var v=0;if(item.choices){for(var i=0;i<item.choices.length;i++){var choice=item.choices[i];v+=choice.votes}}return v},_1:function(item){var t=Polls;var sb=new StringBuilder();sb.write("<a href='' onclick='Polls._14("+item.nodeId+");return false;' class='pollsInfoLine'>",(item.hideAbsoluteVoteCount?"Show":t._4(item))," Votes","</a>");return sb.toString()},_2:function(w,item,isItemDetail){var t=Polls;var now=new Date();var endTimeUtc=Date.fromSeconds(item.endTimeUtc);var isPollClosed=(item.endTimeUtc>0&&endTimeUtc&&now>endTimeUtc);var isNarrow=(isItemDetail?false:item.section.zone.layout=="n");var hideChoiceResults=false;if(item.pollResultOption=="Never"){w("<p><span class='pollsMaxSelect color-red' >Thank you for voting.</span></p>");hideChoiceResults=true}else if(item.pollResultOption=="AfterClose"&&!isPollClosed){if(!item.endTimeUtc||item.endTimeUtc==0||!endTimeUtc){w("<p><span class='pollsMaxSelect color-red' >Poll results available at poll close.</span></p>")}else{w("<p><span class='pollsMaxSelect color-red' >Poll results available "+endTimeUtc.toString1()+".</span></p>")}hideChoiceResults=true}if(!hideChoiceResults){var totalVotes=0;var maxVotes=0;var i;var choice;var maxVotesIndex=0;for(i=0;i<item.choices.length;i++){choice=item.choices[i];totalVotes+=choice.votes;if(choice.votes>maxVotes){maxVotes=choice.votes}}var maxBarPerc=55;var scale=maxBarPerc/maxVotes;if(!isNarrow){w("<table width=100% style='table-layout:fixed;'>","<col align='right' style='padding-right:10px;width:100px;'/>","<col width='100%' />")}for(i=0;i<item.choices.length;i++){choice=item.choices[i];var voteText="";if(!item.hideAbsoluteVoteCount){voteText+="&nbsp;"+choice.votes.toCount("vote")}var votePercent=0;if(totalVotes>0){votePercent=Math.round(choice.votes/totalVotes*100);voteText+=(voteText.length>0?"&nbsp;/&nbsp;":"&nbsp;")+votePercent.toString()+"%"}var widthString;if(votePercent==0){widthString="2px"}else{widthString=choice.votes*scale+"%"}var barImgSrc=(choice.votes==maxVotes)?"barchart2.png":"barchart.png";if(!isNarrow){}var hasImage=(item.choiceType=="Picture"&&choice.image&&choice.image.length>0);if(!isNarrow){w("<tr>","<td>","<div>");if(choice.image){t._0.render(w,{align:"absMiddle",src:choice.image})}w("</div>","<span>",choice.title,"</span>","</td>","<td>","<img src='",A.imagesBase,barImgSrc,"' style='width:",widthString,";height:12px;vertical-align:middle;'/>","<span style='white-space:nowrap;vertical-align:middle;' class='pollsMaxSelect color-red'>",voteText,"</span>","</td>","</tr>")}else{if(hasImage){w("<div>");t._0.render(w,{align:"absMiddle",src:choice.image});w("</div>")}w("<div>",choice.title,"</div>","<div style='margin-bottom:8px;'>","<img src='",A.imagesBase,barImgSrc,"' style='width:",widthString,";height:12px;vertical-align:middle;'/>","<span style='white-space:nowrap;vertical-align:middle;' class='pollsMaxSelect color-red'>",voteText,"</span>","</div>")}}if(!isNarrow){w("</table>")}}},_3:function(e,id){var item=page.nodes[id];if(item&&item.isCollapsed){item.isCollapsed=false}else{item.isCollapsed=true}Dom.collapse(e)},_13:function(nodeId){var item=page.nodes[nodeId];item.state="showResults";Section.refreshContentHtml(item.section)},_12:function(nodeId){var item=page.nodes[nodeId];item.state="changeVote";Section.refreshContentHtml(item.section)},_14:function(nodeId){Polls._11(nodeId)},_8:function(nodeId){var pollItem=page.nodes[nodeId];var pollForm=Dom.getElement("poll"+nodeId);if(pollForm){var vote={};if(pollItem.maxChoices==1){var singleChoice=Dom.getRadioValue(pollForm.choiceItems);if(!singleChoice){Dialog.alert("You must first select a choice before voting.");return}else{vote[singleChoice]=true}}else{vote=Polls._9(pollForm.choiceItems);var choiceCount=0;for(var voteChoice in vote){choiceCount++}if(choiceCount==0){Dialog.alert("You must first select a choice before voting.");return}else if(pollItem.maxChoices!=0&&choiceCount>pollItem.maxChoices){Dialog.alert("You can only select up to "+pollItem.maxChoices+" choices.");return}}var voteArray=[];for(var i in vote){voteArray.push(i)}var msg={item:nodeId,vote:voteArray};C.beginExec("polls/vote",msg);pollItem.userVote=vote;pollItem.state="showResults"}},_9:function(e){var voteIds={};if(e){if(e.length){for(var i=0;i<e.length;i++){var checkbox=e[i];if(checkbox.checked){voteIds[checkbox.value]=true}}}else{if(e.checked){voteIds[checkbox.value]=true}}}return voteIds},renderEmpty:function(w,s){Section.renderEmpty(w,s,"Add "+Polls.itemName)},_10:function(item,disabled){var sb=new StringBuilder();var w=sb.write;var now=new Date();var displayStartTimeUtc=Date.fromSeconds(item.displayStartTimeUtc);var displayEndTimeUtc=Date.fromSeconds(item.displayEndTimeUtc);var endTimeUtc=Date.fromSeconds(item.endTimeUtc);var isPollClosed=(item.endTimeUtc>0&&endTimeUtc&&now>endTimeUtc);var isPollQueued=(item.displayStartTimeUtc>0&&displayStartTimeUtc&&now<displayStartTimeUtc);var isPollArchived=(item.displayEndTimeUtc>0&&displayEndTimeUtc&&now>displayEndTimeUtc);var isPollClosedSet=(item.endTimeUtc>0);w("<div>","<span>",item.question,"</span>");var message;if(isPollQueued){message="[Poll starts "+displayStartTimeUtc.toString1();if(isPollClosedSet){message+=" and ends "+endTimeUtc.toString1()}message+="]"}else if(isPollClosed){message="[Poll Closed]"}else if(isPollClosedSet){message="[Poll closes "+endTimeUtc.toString1()+"]"}if(message){w("<div class=color-red style='font-size:77%;'>",message,"</div>")}w("</div>");var singleSelect=(item.maxChoices==1);var inputType=singleSelect?"radio":"checkbox";var inputLabelClass=singleSelect?"input-l-radio":"input-l-checkbox";w("<div style='width:100%;'>","<div style='margin-left:10px;margin-top:10px;'>");if(item.text&&item.text.length>0){w("<div style='margin-bottom:10px;'>",item.text,"</div>")}if(item.maxChoices>1){w("<div class='color-red' style='font-size:77%;' >Select up to "+item.maxChoices+" choices.</div>")}w("<table width=100% cellspacing='2px' >");for(var i=0;i<item.choices.length;i++){var choice=item.choices[i];w("<tr class=input-row>","<td width=20px vAlign=middle >","<input type=",inputType," name='choiceItems' value='",choice.choiceId,"'",(disabled?" disabled":"")+" style='cursor:pointer;'>","</td>","<td style='text-align: left;padding-top:3px;"+(isPollClosed?"color:gray;":"")+"'>");if(item.choiceType=="Picture"&&choice.image&&choice.image.length>0){Polls._0.render(w,{align:"absMiddle",src:choice.image});w("<br/>")}w(choice.title,"</td>","</tr>")}w("</table>","<span style='font-size:77%;'>Comment:</span>","<br/>","<textarea name='comments.add'",(disabled?" class=disabled disabled":"")," rows=3 cols=80 >","","</textarea>","<br/>","<br/>","<input name=go class='inputButton",(disabled?" button-disabled":""),"' type=submit value='Submit Vote' />","</div>","</div>");return sb.toString()}};Module.add(Polls);