var BUZZVOTE_BLOG = { html: "
", show_percentages:function(vote) { var total_percentage = 0; var poll_items = BUZZVOTE_POLL.poll.poll_items; var total_votes = 0; var poll_type = BUZZVOTE_POLL.poll.poll_type; var old_vote = BUZZVOTE_POLL.poll.old_vote; // if it's a single poll... if(poll_type == 1) { // trying to get around looking like a user voted twice in the faking percentages... if(old_vote) { if(old_vote.vote_type == 1 && poll_items[0].num_pos_votes > 0){ poll_items[0].num_pos_votes--; } else if(old_vote.vote_type == 2 && poll_items[0].num_neg_votes > 0){ poll_items[0].num_neg_votes--; } } if(vote == 1) { // thumbs up poll_items[0].num_pos_votes++; } else if(vote == 2) { // thumbs down poll_items[0].num_neg_votes++; } var total_votes = poll_items[0].num_pos_votes + poll_items[0].num_neg_votes; var pos_percentage = total_votes == 0 ? 0 : Math.floor(poll_items[0].num_pos_votes*100/total_votes); var neg_percentage = total_votes == 0 ? 0 : 100 - pos_percentage; document.getElementById('buzzvote_percentage_up').innerHTML = pos_percentage+"%"; document.getElementById('buzzvote_percentage_down').innerHTML = neg_percentage+"%"; return; } if(old_vote){ for(var k=0; k < poll_items.length; k++) { if(poll_items[k].page_location == old_vote.page_location) { if(poll_type == 2) { poll_items[k].num_pos_votes--; } else { poll_items[k].num_neg_votes--; } } } } // ..otherwise it's a multi-item poll, positive or negative // this quick for loop adds the item just voted on in order to calculate the correct totals without another db call for(var j=0; j < poll_items.length; j++) { if(poll_items[j].page_location == vote) { if(poll_type == 2) { poll_items[j].num_pos_votes++; } else { poll_items[j].num_neg_votes++; } break; } } if (poll_type == 2) { for(var i=0; i < poll_items.length; i++) { total_votes += poll_items[i].num_pos_votes; } } else { for(var i=0; i < poll_items.length; i++) { total_votes += poll_items[i].num_neg_votes; } } for(var i=0; i < poll_items.length; i++) { poll_items[i].percentage = 0; if(i+1 == poll_items.length) { // Check here to see if there were any votes for this item, otherwise set it to 0 if(total_votes != 0) { if( total_percentage != 100 && ((poll_type == 2 && poll_items[i].num_pos_votes == 0) || (poll_type == 3 && poll_items[i].num_neg_votes == 0)) ) { for (var k=i; k > -1; k--) { if(poll_items[k].percentage > 0 && poll_items[k].percentage != 100) { poll_items[k].percentage += 1; break; } } } else { poll_items[i].percentage = 100 - total_percentage; } } else if(vote == i+1) { poll_items[i].percentage = 100; } } else { if(poll_type == 2) { // positive poll_items[i].percentage = total_votes == 0 ? 0 : Math.floor(poll_items[i].num_pos_votes*100/total_votes); } else { // negative poll_items[i].percentage = total_votes == 0 ? 0 : Math.floor(poll_items[i].num_neg_votes*100/total_votes); } total_percentage += poll_items[i].percentage; } } for(var j=0; j < poll_items.length; j++) { document.getElementById('buzzvote_percentage_'+poll_items[j].page_location).innerHTML = poll_items[j].percentage+"%"; } }, vote:function (poll_id, my_vote, page_location) { var head = document.getElementsByTagName('head').item(0); var old = document.getElementById('lastLoadedCmds'); if (old) head.removeChild(old); var script = document.createElement('script'); var today=new Date(); var jran=today.getTime(); script.src = "http://www.buzzvote.com/get_blog_poll/chefsonthenet?time="+jran; if(poll_id && my_vote && page_location) { script.src += "&poll_id="+poll_id+"&vote="+my_vote+"&page_location="+page_location; } script.type = 'text/javascript'; script.defer = true; script.id = 'lastLoadedCmds'; void(head.appendChild(script)); } }; document.write(BUZZVOTE_BLOG.html);