
var valid = 365;
var day = 86400;
var cn = "___srv";

function sendVote() {

    var theForm = document.getElementById('surveyForm');
    jQuery(theForm).submit(function() { 
      return false;
    });
    jQuery(theForm).ajaxSubmit({
      success: showResults,
      dataType: 'json'
    });
  
}

function errorHandler(type, error) {
    //var msg = "Something went horribly wrong ...\n" +
    //error.message;
    //alert(msg);
}

function showResults(data) {
    if (readCookie(cn)) {
        cleanUpCookie(readCookie(cn));
    }
    var temp;
    var now = new Date();
    var date = Math.round(now.getTime() / 1000);
    var str = data.id + "-" + date;
    if (readCookie(cn)) {
        temp = readCookie(cn);
        temp += "," + str;
    } else {
        temp = str;
    }
    createCookie(cn, temp, valid);
    handleJSON(data);
    return data;
}


				
						function handleJSON(survey, otherDiv) {
							var root = document.getElementById('surveyDiv');
	
							if (!root) {
								root = document.getElementById(otherDiv);
								var other = document.createElement('div');
								other.id = 'surveyDiv';
								root.appendChild(other);
								root = other;
							}
							
	
							while (root.firstChild) {
								root.removeChild(root.firstChild);
							}
							
							var headerBox = document.createElement('div');
							headerBox.className = "survey_head";
							root.appendChild(headerBox);
							
							var outer_ul = document.createElement('ul');
							if (survey.single) {
								outer_ul.id = "single";
							} else {
								outer_ul.id = "multi";
							}
							if (survey.questions) {
								for (var i = 0; i < survey.questions.length; i++) {
									var outer_li = document.createElement('li');
									var q = survey.questions[i];
									
									var divQT = document.createElement('div');
									divQT.className = "survey_quest_text";
									divQT.appendChild(document.createTextNode(q.question));
									
									var divABody = document.createElement('div');
									divABody.className = "survey_opt_body";
									
									var inner_ul = document.createElement('ul');
									if (q.answers) {
										for (var j = 0; j < q.answers.length; j++) {
											var inner_li = document.createElement('li');
											var a = q.answers[j];
											var span = document.createElement('span');
											var text = document.createTextNode(a.percentage + '% ');
											span.appendChild(text);
											text = document.createTextNode(a.answer);
											if (survey.single) {
												inner_li.appendChild(span);
												inner_li.appendChild(text);
											} else {
												inner_li.appendChild(text);
												inner_li.appendChild(span);
											}
											if (!survey.single) {
												var percentage = document.createElement('div');
												span.className = 'beam';
												var style = percentage.style;
												style.display = 'block';
												style.width = (10 + a.percentage * 2) + 'px';
												style.paddingLeft = '1em';
												percentage.className = 'vbar';
												percentage.appendChild(document.createTextNode('\u00a0'));
												inner_li.appendChild(percentage);
											}
											inner_ul.appendChild(inner_li);
										}
									}
									
									outer_li.appendChild(divQT);
									divABody.appendChild(inner_ul);
									outer_li.appendChild(divABody);

									outer_ul.appendChild(outer_li);
								}
							}
							
							var span = document.createElement('div');
							span.className = "survey_results";
							<!--span.appendChild(document.createTextNode('Votes: ' + survey.votes));-->
							
							root.appendChild(outer_ul);
							root.appendChild(span);
						}
				
			



function loadSurvey(surveyId) {
    var cookie = checkCookie(surveyId);
    if (!cookie) {
      jQuery.ajax({
          url: unescape(displayURL) + "surveyId=" + surveyId,
          success: showSurvey,
          type: "POST"
      });
    } else {
      jQuery.ajax({
          url: unescape(displayURL) + "surveyId=" + surveyId + (cookie ? "&cookie=true" : ""),
          success: intermediate,
          dataType: "json",
          type: "POST"
      });
    }
}

function intermediate(data) {
    handleJSON(data, 'surveyDisplay');
}

function showSurvey(data) {
		// JSON data starts with "{"
		if ((data.indexOf("{")>=0) && (data.indexOf("{")<3)) {
	    handleJSON(eval('('+data+')'), 'surveyDisplay');
		} else {
	    var div = document.getElementById('surveyDisplay');
	    while (div.firstChild) {
	        div.removeChild(div.firstChild);
	    }
	    div.innerHTML = data;
		}
}

function cleanUpCookie(val) {
    var lines = val.split(",");
    var temp;
    var resval;
    var now = new Date();
    var date = Math.round(now.getTime() / 1000);
    var result = new Array();
    for (var i = 0; i < lines.length; i++) {
        temp = lines[i].split("-");
        if (temp[1] > date - (valid * day)) {
            result.push(lines[i]);
        }
    }
    if (lines.length != result.length) {
        if (result[0]) {
            resval = result[0];
        }
        for (var i = 1; i < result.length; i++) {
            resval += "," + result[i];
        }
        createCookie(cn, resval, valid);
    }
}

function checkCookie(id) {
    if (readCookie(cn)) {
        var lines = readCookie(cn).split(",");
        for (i = 0; i < lines.length; i++) {
            temp = lines[i].split("-");
            if (temp[0] == id) {
                return true;
            }
        }
    }
    return false;
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else {
        var expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1,c.length);
        }
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
}

var displayURL = encodeURIComponent("/surveys/survey?");



