var req;

function loadXMLDocV(url, data) {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChangeV;
req.open("POST", url, true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req){
req.onreadystatechange = processReqChangeV;
req.open("POST", url, true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
}
}

function processReqChangeV() {
if (req.readyState == 4) {
if (req.status == 200) {
response = req.responseXML.documentElement;
method = response.getElementsByTagName('method')[0].firstChild.data;
result = response.getElementsByTagName('result')[0].firstChild.data;
fdata = response.getElementsByTagName('fdata')[0].firstChild.data;
eval(method + '(fdata, result)');
}}}

function validateVote(voteForm) {
var scoreit = voteForm.scoreit.value;
var storyid = voteForm.id.value;
var errDiv;
if (scoreit == 'zz'){
errDiv = document.getElementById('voteErrorDiv');
errDiv.innerHTML = '<span style=\"background-color: yellow;\">You must select a score</span>';
return false;
} else {
if (window.XMLHttpRequest || window.ActiveXObject) {
var myData = new Array(2);
myData[0] = storyid;
myData[1] = scoreit;
doVote(myData, '');
return false;
}
else { return true;}
}
}

function doVote(myData, response) {
var div;
var url;
if (response != '') { 
if (response == '1') {
div = document.getElementById('vote-form');
div.innerHTML = myData;
}else {
div = document.getElementById('vote-form');
div.innerHTML = '';
}
}
else {
div = document.getElementById('vote-form');
div.innerHTML = '<p class="center">Voting; Please Wait.</p>';

url	= 'scorej.php?id=' + myData[0] + '&scoreit=' + myData[1];
loadXMLDocV(url, "");
}}

function validateMail(mailForm) {
var errDiv, body, email, cookie;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
body = mailForm.body.value.replace(/^\s+|\s+$/g,"");
email = mailForm.email.value.replace(/^\s+|\s+$/g,"");
cookie = GetCookie('cookie');

if (body == ''){
errDiv = document.getElementById('mailErrorDiv');
errDiv.innerHTML = '<span style=\"background-color: yellow;\">You must say something in your message</span>';
return false;
} else if ((email != '') && (reg.test(email) == false)) {
errDiv = document.getElementById('mailErrorDiv');
errDiv.innerHTML = '<span style=\"background-color: yellow;\">Invalid email address</span>';
return false;
} else if (cookie == null) {
errDiv = document.getElementById('mailErrorDiv');
errDiv.innerHTML = '<span style=\"background-color: yellow;\">You must be logged in to send emails</span>';
return false;
} else {
if (window.XMLHttpRequest || window.ActiveXObject) {
doMail(mailForm, '');
return false;
}
else { return true; }
}
}

function doMail(mailForm, response) {
var div;
if (response != '') { 
if (response == '1') {
div = document.getElementById('mailerDiv');
div.innerHTML = mailForm;
}
else {
div = document.getElementById('mailerDiv');
div.innerHTML = '';
}}else {
var theRequest;
var url;

theRequest = "mSource=" + mailForm.mSource.value + "&id=" + mailForm.id.value + "&subject=" + escapeAll(mailForm.subject.value) +
"&clientVersion=" + mailForm.clientVersion.value + "&name=" +
escapeAll(mailForm.name.value) + "&email=" + escapeAll(mailForm.email.value) + "&java=1&body=" +
escapeAll(mailForm.body.value);

div = document.getElementById('mailerDiv');
div.innerHTML = '<table id="mail-form"><tr><td><h4 class="center">Sending message: Please Wait!</h4></td></tr></table>';

url	= '/mail.php';
loadXMLDocV(url, theRequest);
}}

function retrySendingMail() {
var theRequest;
var theCounter;
var url;
var div;

theRequest = unescape(document.retryForm.xml.value); 
theCounter = document.retryForm.theCounter.value; 
theCounter++;

div = document.getElementById('mailerDiv');
div.innerHTML = '<table id="mail-form"><tr><td><h4 class="center">Sending message: Please Wait!<br><form id="retryForm" name="retryForm"><input type="hidden" name="xml" id="xml" value="' + escape(theRequest) + '">\n<input type="hidden" name="theCounter" id="theCounter" value="' + theCounter + '"></form><a href="javascript:retrySendingMail()">Retry[' + theCounter + ']</a></h4></td></tr></table>';

url	= '/mail.php';
loadXMLDocV(url, theRequest);
}

function validateExpVote(voteForm) {
var tScore = voteForm.tScore.value;
var pScore = voteForm.pScore.value;
var aScore = voteForm.aScore.value;
var storyid = voteForm.id.value;
if ((tScore == 'zz') || (pScore == 'zz')||(aScore == 'zz')){
errDiv = document.getElementById('voteErrorDiv');
errDiv.innerHTML = '<span style=\"background-color: yellow;\">You must select a score for all three criteria</span>';
return false;
} else {
if (window.XMLHttpRequest || window.ActiveXObject) {
var myData = new Array(4);
myData[0] = storyid;
myData[1] = tScore;
myData[2] = pScore;
myData[3] = aScore;
doExpVote(myData, '');
return false;
}
else { return true;}
}
}

function doExpVote(myData, response) {
var div;
var url;
if (response != '') { 
if (response == '1') {
div = document.getElementById('vote-form');
div.innerHTML = myData;
}else {
div = document.getElementById('vote-form');
div.innerHTML = '';
}
}
else {
div = document.getElementById('vote-form');
div.innerHTML = '<p class="center">Voting; Please Wait.</p>';

url	= 'scoreExp.php?id=' + myData[0] + '&tScore=' + myData[1]+ '&pScore=' + myData[2]+ '&aScore=' + myData[3] + '&withJava=1';
loadXMLDocV(url, "");
}}
function switchToExpandedForm(id, title) {
var theForm, div;
theForm = "<form action=\"\/library\/scoreExp.php\" method=\"post\" name=\"voteForm\" id=\"voteForm\" onsubmit=\"return validateExpVote(this);\" style=\"margin-bottom:0px\">\n<div>\n<input type=\"hidden\" name=\"id\" value=\"" + id + "\">\nCast your detailed vote for: \"<b>" + title + "<\/b>\"<br><br>\n<table cellspacing=\"0\">\n<tr>\n<th>Technical Merit:<\/th><td class=\"vSel\"><select id=\"tScore\" name=\"tScore\">\n<option value=\"zz\">Select Score<\/option>\n<option value=\"1\">1 - Bunch of Jumbled words<\/option>\n<option value=\"2\">2<\/option>\n<option value=\"3\">3<\/option>\n<option value=\"4\">4<\/option>\n<option value=\"5\">5<\/option>\n<option value=\"6\">6<\/option>\n<option value=\"7\">7<\/option>\n<option value=\"8\">8<\/option>\n<option value=\"9\">9<\/option>\n<option value=\"10\">10 - Perfect<\/option>\n<\/select><\/td><\/tr>\n<tr><td colspan=\"2\" class=\"vDesc\">Spelling, grammar and overall readability<\/td><\/tr>\n<tr><th>Plot:<\/th><td class=\"vSel\"><select id=\"pScore\" name=\"pScore\">\n<option value=\"zz\">Select Score<\/option>\n<option value=\"1\">1 - Bad<\/option>\n<option value=\"2\">2<\/option>\n<option value=\"3\">3<\/option>\n<option value=\"4\">4<\/option>\n<option value=\"5\">5<\/option>\n<option value=\"6\">6<\/option>\n<option value=\"7\">7<\/option>\n<option value=\"8\">8<\/option>\n<option value=\"9\">9<\/option>\n<option value=\"10\">10 - Great<\/option>\n<\/select><\/td><\/tr>\n<tr><td colspan=\"2\" class=\"vDesc\">Creativity, storyline and character development<\/td><\/tr>\n<tr><th>Personal Appeal:<\/th><td class=\"vSel\"><select id=\"aScore\" name=\"aScore\">\n<option value=\"zz\">Select Score<\/option>\n<option value=\"1\">1 - Hated it<\/option>\n<option value=\"2\">2<\/option>\n<option value=\"3\">3<\/option>\n<option value=\"4\">4<\/option>\n<option value=\"5\">5<\/option>\n<option value=\"6\">6<\/option>\n<option value=\"7\">7<\/option>\n<option value=\"8\">8<\/option>\n<option value=\"9\">9<\/option>\n<option value=\"10\">10 - Loved it<\/option>\n<\/select><\/td><\/tr>\n<tr><td colspan=\"2\" class=\"vDesc\">Story&rsquo;s emotional and\/or intellectual impact on you<\/td><\/tr><\/table>\n<input type=\"submit\" name=\"cmd\" value=\"Submit Vote\"><br>\n<a href=\"javascript:switchToBasic(" + id + ",'" + title.replace(/\'/,"\\'") + "')\" style=\"font-size: small;font-weight:bold\">Switch to Basic voting form<\/a><br>\n<a href=\"javascript:setExpAsDefault('1','')\" style=\"font-size: small;font-weight:bold\">Set as Default<\/a>\n<\/div>\n<\/form>\n<div id=\"voteErrorDiv\"><\/div>";
div = document.getElementById('vote-form');
div.innerHTML = theForm;

}
function switchToBasic(id, title) {
var theForm, div;
theForm = "<form action=\"\/library\/score.php\" method=\"post\" name=\"voteForm\" id=\"voteForm\"  onsubmit=\"return validateVote(this);\">\n<div>\n<input type=\"hidden\" name=\"id\" value=\"" + id + "\">\n<small>Your opinion is <strong>important<\/strong>:<br>\nShare with the others what you think about<br>\n\"<b>" + title + "<\/b>\"<\/small><br>\n<select id=\"scoreit\" name=\"scoreit\">\n<option value=\"zz\">Select Score<\/option>\n<option value=\"1\">You Call this a Story!?<\/option>\n<option value=\"2\">Hated it<\/option>\n<option value=\"3\">Pretty Bad<\/option>\n<option value=\"4\">Not Good<\/option>\n<option value=\"5\">Some Good, Some Bad<\/option>\n<option value=\"6\">Not Bad<\/option>\n<option value=\"7\">Good<\/option>\n<option value=\"8\">Very Good<\/option>\n<option value=\"9\">Great<\/option>\n<option value=\"10\">Most Amazing Story<\/option>\n<\/select>&nbsp; &nbsp; &nbsp;\n<input type=\"submit\" name=\"Score\" value=\"Vote\"><\/div>\n<a href=\"javascript:switchToExpandedForm(" + id + ",'" + title.replace(/\'/,"\\'") + "')\" style=\"font-size: small;font-weight:bold\">Switch to Expanded voting form<\/a><br>\n<a href=\"javascript:setExpAsDefault('0','')\" style=\"font-size: small;font-weight:bold\">Set as Default<\/a>\n<\/form>\n<div id=\"voteErrorDiv\"><\/div>";
div = document.getElementById('vote-form');
div.innerHTML = theForm;
}

function setExpAsDefault(myData, response) {
var div;
var url;
if (response != '') { 
if (response == '1') {
div = document.getElementById('voteErrorDiv');
div.innerHTML = myData;
} else {
div = document.getElementById('voteErrorDiv');
div.innerHTML = '';
}
}
else {
div = document.getElementById('voteErrorDiv');
div.innerHTML = '';
url	= '/user/setExpVote.php?exp=' + myData;
loadXMLDocV(url, "");
}}


function escapeAll(theString) {
return encodeURIComponent(theString);
}

function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) { endstr = document.cookie.length; }
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i,j) == arg) {
return getCookieVal(j);
}
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) {break;}
}
return null;
}

