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);