Date.prototype.getDOY = function() { var onejan = new Date(this.getFullYear(),0,1); return Math.ceil((this - onejan) / 86400000); } var Cookie = { set: function(name, value, daysToExpire) { var expire = ''; if (daysToExpire != undefined) { //var d = new Date(); //d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire))); expire = '; expires=' + daysToExpire.toGMTString(); } return (document.cookie = escape(name) + '=' + escape(value || '') + expire + "; path=/;"); }, get: function(name) { var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)')); return (cookie ? unescape(cookie[2]) : null); }, erase: function(name) { var cookie = Cookie.get(name) || true; Cookie.set(name, '', -1); return cookie; }, accept: function() { if (typeof navigator.cookieEnabled == 'boolean') { return navigator.cookieEnabled; } Cookie.set('_test', '1'); return (Cookie.erase('_test') === '1'); } }; var abs_path = "http://web.archive.org/web/20071222104633/http://www.dailytelegraphdatafeed.com.au/"; var ipAddress = "64.208.172.181"; var unique; if (Cookie.accept()) { unique = Cookie.get("unique_id"); if (!unique) { unique = "77947705-6C4F-4BB2-9EF5-5313B2067289"; var end = new Date(); end.setSeconds(0); end.setMinutes(0); end.setHours(18); end.setDate(24); end.setMonth(2); end.setFullYear(2007); Cookie.set("unique_id", unique, end); } } var tickerInterval; var issueDraggers = 0; var firstday = 49; var today = new Date(); today = today.getDOY(); var endday = 83; if (today < endday) { endday = today; } var graphoptions = { padding: {left: -1, right: -1, top: 1, bottom: -1}, xAxis: [firstday,endday], drawBackground: false, shouldFill: false, strokeColor: "#0000FF", strokeColors: ["#0000FF", "#FF0000", "#009900", "#990099"], strokeWidth: 2, colorScheme: 'black', drawXAxis: false, drawYAxis: false }; function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } function getSelectedRadio(buttonGroup) { if (buttonGroup[0]) { for (var i=0; i"; new Ajax.Updater( finder, abs_path+'finder/default.asp', { method: 'get', onComplete: function() { initFinderItems(finder); } }); } function initFinderItems(finder) { var postcode = finder.getElementsByClassName("postcode")[0]; var suburb = finder.getElementsByClassName("suburb")[0]; var electorate = finder.getElementsByClassName("electorate")[0]; postcode.getElementsByClassName("button")[0].getElementsByTagName("a")[0].onclick = function() { searchFinder(postcode, suburb, electorate); return false; } postcode.getElementsByTagName("input")[0].onkeypress = function(e) { var ev; var characterCode; if(e && e.which) { ev = e; characterCode = ev.which; } else { ev = window.event; if (ev) { characterCode = ev.keyCode; } } if(characterCode == 13) { searchFinder(postcode, suburb, electorate); return false; } else { return true; } } suburb.getElementsByClassName("button")[0].getElementsByTagName("a")[0].onclick = function() { var subbox = suburb.getElementsByTagName("select")[0]; var sub = subbox.options[subbox.selectedIndex].value; if (sub != "") { electorate.getElementsByClassName("input")[0].innerHTML = ""; electorate.getElementsByTagName("select")[0].setAttribute("disabled", "true"); var pars = "data=electorates&suburb="+sub; var electorates = new Ajax.Request( abs_path+'finder/default.asp', { method: 'get', parameters: pars, onSuccess: function(electorates) { electorate.getElementsByClassName("input")[0].innerHTML = electorates.responseText; } }); } else { alert("Please select a suburb first"); } return false; } electorate.getElementsByClassName("button")[0].getElementsByTagName("a")[0].onclick = function() { var elecbox = electorate.getElementsByTagName("select")[0]; var elec = elecbox.options[elecbox.selectedIndex].value; if (elec != "") { this.setAttribute("href", elec); return true; } else { alert("Please select an electorate"); return false; } } } function searchFinder(postcode, suburb, electorate) { var pcode = postcode.getElementsByTagName("input")[0].value; if (pcode != "" && !isNaN(pcode) && pcode.length == 4) { suburb.getElementsByClassName("input")[0].innerHTML = ""; suburb.getElementsByTagName("select")[0].setAttribute("disabled", "true"); electorate.getElementsByTagName("select")[0].setAttribute("disabled", "true"); var pars = "data=suburbs&postcode="+pcode; var suburbs = new Ajax.Request( abs_path+'finder/default.asp', { method: 'get', parameters: pars, onSuccess: function(suburbs) { suburb.getElementsByClassName("input")[0].innerHTML = suburbs.responseText; } }); } else { alert("Please enter a valid postcode to search for"); } } function initPromo(promo) { promo.innerHTML = ""; new Ajax.Updater( promo, abs_path+'promo/default.asp', { method: 'get' }); } function initTicker(ticker) { ticker.innerHTML = ""; new Ajax.Updater( ticker, abs_path+'ticker/default.asp', { method: 'get', onComplete: function() { initTickerItems(ticker); } }); } function initTickerItems(ticker) { var items = ticker.getElementsByClassName("item"); items.each( function(tickerItem) { tickerItem.hide(); tickerItem.onmouseover = function() { clearInterval(tickerInterval); } tickerItem.onmouseout = function() { tickerInterval = setTimeout(function() { tickerChanger(items); tickerInterval = setInterval(function() { tickerChanger(items); }, 3500); }, 500); } }); items[0].show(); tickerInterval = setInterval(function() { tickerChanger(items); }, 3500); } function tickerChanger(items) { var it; var itplus; items.each( function(tickerItem, i) { if (tickerItem.style.display != "none") { it = i; itplus = (i == items.length - 1) ? 0 : it+1; } }); new Effect.DropOut(items[it], {queue: 'start'}); new Effect.SlideDown(items[itplus], {queue: 'end'}); } function initVote(vote) { vote.innerHTML = ""; var voteType = vote.getAttribute("id").split("vote_")[1]; voteType = voteType.substring(0,voteType.indexOf("_")); var voteID = vote.getAttribute("id").split(voteType+"_")[1]; var hasheader = vote.hasClassName("hasheader"); var voted; var midnight = new Date(); midnight.setHours(23); midnight.setMinutes(59); midnight.setSeconds(59); if (Cookie.accept()) { voted = Cookie.get(voteType); if (voted) { voted = voted.split(","); var votedVal; for (i = 0; i < voted.length; i++) { if (voted[i].split("-")[0] == voteID) { votedVal = voted[i].split("-")[1]; break; } } if (votedVal) { voted = votedVal } else { votedVal = voteID+"-false"; voted = voted.join(","); voted += ","+votedVal; Cookie.set(voteType, voted, midnight); } } else { Cookie.set(voteType, voteID+"-false", midnight); voted = "false"; } } else { voted = "true"; } var pars = "voteType="+voteType+"&voteID="+voteID+"&hasheader="+hasheader+"&ipAddress="+ipAddress+"&unique="+unique+"&voted="+voted; new Ajax.Updater( vote, abs_path+'vote/default.asp', { method: 'get', parameters: pars, onComplete: function() { initVoteItems(vote); } }); } function initVoteItems(vote) { var voting = vote.getElementsByClassName("vote")[0]; var display = vote.getElementsByClassName("display")[0]; if (voting) { display.hide(); var voteType = vote.getAttribute("id").split("vote_")[1]; voteType = voteType.substring(0,voteType.indexOf("_")); if (voteType == "elecissue") { initIssueRanking(voting); } voting.getElementsByClassName("votebutton")[0].getElementsByTagName("a")[0].onclick = function() { var voteType = vote.getAttribute("id").split("vote_")[1]; voteType = voteType.substring(0,voteType.indexOf("_")); var voteQuestion = vote.getAttribute("id").split(voteType+"_")[1]; var voteAnswer; var voted = Cookie.get(voteType); voted = voted.split(","); var votedVal; for (i = 0; i < voted.length; i++) { if (voted[i].split("-")[0] == voteQuestion) { votedVal = voted[i].split("-")[1]; break; } } if (votedVal && votedVal != "true") { switch (voteType) { case "issue": case "party": voteAnswer = getSelectedRadioValue(voting.getElementsByTagName("form")[0].getInputs("radio", "party")); break; case "leader": voteAnswer = getSelectedRadioValue(voting.getElementsByTagName("form")[0].getInputs("radio", "leader")); break; case "elecissue": voteAnswer = voting.getElementsByClassName("elecissues")[0].getElementsByClassName("issue"); var voteAnswerTemp = new Array(); for (i = 0; i < voteAnswer.length; i++) { voteAnswerTemp[i] = voteAnswer[i].getAttribute("id"); } voteAnswer = voteAnswerTemp.toString(); break; } if (voteAnswer != "") { voting.getElementsByClassName("voting")[0].innerHTML = ""; var midnight = new Date(); midnight.setHours(23); midnight.setMinutes(59); midnight.setSeconds(59); voted = Cookie.get(voteType); voted = voted.split(","); var votedVal; for (i = 0; i < voted.length; i++) { if (voted[i].split("-")[0] == voteQuestion) { voted[i] = voteQuestion+"-true"; break; } } voted = voted.join(","); Cookie.set(voteType, voted, midnight); var pars = "voteType="+voteType+"&voteQuestion="+voteQuestion+"&voteAnswer="+voteAnswer+"&ipAddress="+ipAddress+"&unique="+unique; new Ajax.Request( abs_path+'vote/vote.asp', { method: 'get', parameters: pars, onSuccess: function() { initVote(vote); } }); } else { alert("Please select an option"); } } return false; } voting.getElementsByClassName("link")[0].getElementsByTagName("a")[0].onclick = function() { voting.hide(); display.show(); return false; } display.getElementsByClassName("link")[0].getElementsByTagName("a")[0].onclick = function() { display.hide(); voting.show(); return false; } } var canvas = display.getElementsByTagName("canvas")[0]; if (canvas) { var voteType = vote.getAttribute("id").split("vote_")[1]; voteType = voteType.substring(0,voteType.indexOf("_")); var voteQuestion = vote.getAttribute("id").split(voteType+"_")[1]; var wormpars = "voteType="+voteType+"&voteID="+voteQuestion; var graphdata = new Ajax.Request( abs_path+'worm/default.asp', { method: 'get', parameters: wormpars, requestHeaders:{ Accept:'text/javascript' }, onSuccess: function(response) { eval(response.responseText); initGraph(canvas,graphoptions,graphdataset); } }); } var tabs = display.getElementsByClassName("tabs")[0].getElementsByTagName("a"); var stats = display.getElementsByClassName("stats"); if (tabs && stats) { initTabs(tabs, stats); } } function initTabs(tabs, stats) { stats.each( function(stat) { stat.hide(); }); stats[0].show(); tabs[0].addClassName("active"); for (i = 0; i < tabs.length; i++) { tabs[i].index = i; tabs[i].onclick = function() { stats.each( function(stat) { stat.hide(); }); stats[this.index].show(); for (i = 0; i< tabs.length; i++) { tabs[i].removeClassName("active"); } this.addClassName("active"); return false; } } } function initGraph(canvas, graphoptions, graphdataset) { var line = new Plotr.LineChart(canvas,graphoptions); line.addDataset(graphdataset); line.render(); } function initIssueRanking(voting) { var issues = voting.getElementsByClassName("elecissues")[0]; issues.id = "issueDragger_"+issueDraggers; issueDraggers++; Sortable.create(issues.id,{tag:'div',only:'issue',containment:issues,handle:'handle'}); } function initView(view) { view.innerHTML = ""; var viewType = view.getAttribute("id").split("view_")[1]; var pars = "viewType="+viewType; new Ajax.Updater( view, abs_path+'view/default.asp', { method: 'get', parameters: pars, onComplete: function() { initViewItems(view); } }); } function initViewItems(view) { var content = view.getElementsByClassName("content")[0]; var results = view.getElementsByClassName("results")[0]; var graphing = content.getElementsByClassName("graphing")[0]; var values = results.getElementsByClassName("values")[0]; var titles = content.getElementsByClassName("title"); titles.each( function(titleItem) { titleItem.hide(); }); titles[0].show(); var vals = values.getElementsByClassName("option"); vals.each( function(valueItem) { valueItem.hide(); }); vals[0].show(); var switching = content.getElementsByClassName("itemswitching")[0]; if (switching != undefined) { switching.getElementsByClassName("prev")[0].getElementsByTagName("a")[0].onclick = function() { viewChanger(view, false); return false; } switching.getElementsByClassName("next")[0].getElementsByTagName("a")[0].onclick = function() { viewChanger(view, true); return false; } } } function viewChanger(view,dir) { var content = view.getElementsByClassName("content")[0]; var results = view.getElementsByClassName("results")[0]; var graphing = content.getElementsByClassName("graphing")[0]; var values = results.getElementsByClassName("values")[0]; var it; var itplus; var titles = content.getElementsByClassName("title"); var vals = values.getElementsByClassName("option"); vals.each( function(valueItem, i) { if (valueItem.style.display != "none") { it = i; if (dir) { itplus = (i == vals.length - 1) ? 0 : it+1; } else { itplus = (i == 0) ? vals.length - 1 : it-1; } } }); titles[it].hide(); titles[itplus].show(); vals[it].hide(); vals[itplus].show(); } function init_NSW_election_2007() { var loading = new Image(); loading.src = abs_path+"images/load.gif"; var blueload = new Image(); loading.src = abs_path+"images/blueload.gif"; document.getElementsByClassName("nsw_election_2007_virtual_voting").each(function(virtual) { initVirtual(virtual); }); document.getElementsByClassName("nsw_election_2007_finder").each(function(finder) { initFinder(finder); }); document.getElementsByClassName("nsw_election_2007_promo").each(function(promo) { initPromo(promo); }); document.getElementsByClassName("nsw_election_2007_ticker").each(function(ticker) { initTicker(ticker); }); document.getElementsByClassName("nsw_election_2007_vote").each(function(vote) { initVote(vote); }); document.getElementsByClassName("nsw_election_2007_view").each(function(view) { initView(view); }); } function includeJS(script) { document.write(''); return true; } includeJS('js/prototype.js'); includeJS('js/xmlhttp.js'); includeJS('js/scriptaculous.js?load=effects,dragdrop'); includeJS('js/swfobject.js'); includeJS('js/plotr_custom.js'); includeJS('js/excanvas.js'); addLoadEvent(init_NSW_election_2007);