/**
 * @author FC095051
 */
dojo.addOnLoad(function(){
	
    var params = window.location.search.split("?");
    for (var i = 0; i < params.length; i++) {
        if (params[i].indexOf("=") == -1) 
            pollId = params[i];
        else {
            var par = params[i].split("=");
            if (par[0] == "loc") locale = par[1];
        }
    }
    dojo.byId('participateTab').className = 'tabact';
    dojo.parser.parse(dojo.byId('container'));
	logoBg();
    getTable();
});
function getTable(){
    var res = dojo.xhrGet({
        handle: pollCallback,
        url: '/resources/pollData/' + pollId,
        handleAs: "json",
        content: pollId
    });
}

function pollCallback(data, type, evt){
    if (type == 'error') {
        dojo.byId('errorText').innerHTML='Error retrieving data from the server';
        dijit.byId('errorMsg').show();
    }
    else if (data != null && data.length == 1) {
        dojo.byId('errorText').innerHTML=data[0];
        dijit.byId('errorMsg').show();
    }
    else if (data != null) {
        if (locale == "") locale = data[4];
        dojo.requireLocalization("translate", "poll", locale);
        textResources = dojo.i18n.getLocalization("translate", "poll", locale);
        tableData = data[3];
        if (data[6] == 0) {
            editRow = -1;
            if (dijit.byId("seboetten")) dijit.byId('seboetten').destroyRecursive();
            pollClosed = true;
        }
        if (editRow != -1) {
            var choices = [];
            for (var i = 0; i < data[2].length; i++) 
                choices[i] = {
                    choice: -1
                };
            tableData[tableData.length] = {
                user: "",
                choices: choices
            };
            editRow = tableData.length - 1;
        }
        setPollInfo(data[0], data[1], data[5]);
        columns = data[2];
        for (var i = 0; i < columns.length; i++) 
            columns[i].name = trim(columns[i].name);
        writeTable();
		if(data[7] && data[7]!=null && data[7]!=""){
			dojo.byId("userNameInput").innerHTML = data[7];
			dojo.byId("pwdInput").innerHTML = "<a href='' onclick='doLogout()'> logout </a>";
		} else {
			dojo.byId("userNameInput").innerHTML = "";
			dojo.byId("pwdInput").innerHTML = "";
		}
        dojo.parser.parse(dojo.byId('polltable'));
        setLocalizedData();
        
            if (data[6] == 0) {
                dojo.byId("exceptionText").innerHTML=(textResources.closedPoll);
            }
            else {
                dojo.byId("exceptionText").innerHTML = "";
            }
    }
}

function checkExceptionCallback(data, type, evt){
    if (data != null && data.length == 1) {
        dojo.byId('errorText').innerHTML=(data[0]);
        dijit.byId('errorMsg').show();
    }
}

function submitCallback(data, type, evt){
	dojo.byId("exceptionText").innerHTML="";
    if (data != null && data.length == 1) {
        dojo.byId('errorText').innerHTML=(data[0]);
        dijit.byId('errorMsg').show();
    }
    else {
        newUser = false;
        if ((columns[0].type % 8) >= 4) {
            dojo.byId('msgText').innerHTML=(textResources.submittedEdit);
            dijit.byId('Msg').show();
        }
        else {
            dojo.byId('msgText').innerHTML=(textResources.submittedNoEdit);
            dijit.byId('Msg').show();
        }
        editRow = -1;
        if (dijit.byId("seboetten")) dijit.byId('seboetten').destroyRecursive();
        dojo.byId("submitOutDiv").innerHTML = "<div id='submitButtonDiv'></div>";
        getTable();
    }
}

function setPollInfo(name, user, desc){
    document.getElementById("pollName").innerHTML = name;
    document.getElementById("polldesc").innerHTML = desc;
    document.getElementById("creatorName").innerHTML = user;
}

function setLocalizedData(){
    document.getElementById("descText").innerHTML = textResources.desc;
    document.getElementById("participateText").innerHTML = textResources.participate;
    document.getElementById("creatorText").innerHTML = textResources.created;
    document.getElementById("bestChoiceText").innerHTML = textResources.bestChoiceText;
    document.getElementById("pollnameText").innerHTML = textResources.pollnameText;
	dijit.byId('errorMsg').titleNode.innerHTML=(textResources.errorDialogTitle);
	dijit.byId('Msg').titleNode.innerHTML=(textResources.dialogTitle);
	dijit.byId('editMsg').titleNode.innerHTML=(textResources.editDialogTitle);
	dijit.byId('deleteMsg').titleNode.innerHTML=(textResources.deleteDialogTitle);
	dojo.byId('deleteText').innerHTML=(textResources.deleteDialog);
	dojo.byId('explainText').innerHTML=(textResources.editDialog);
    if (columns.length > 0) 
        comment = comment = (columns[0].type % 4) >= 2;
    else 
        comment = false;
    if (comment) {
        dojo.byId("commentText").innerHTML = textResources.commentText;
        dojo.byId("commentTextTT").innerHTML = textResources.commentTextTT;
        dojo.byId("commentFullText").innerHTML = textResources.commentFullText;
        if (!displayComments) {
            dojo.byId("commentFullText").innerHTML = "<a href='' onclick=setDisplayComments(true,event)>" + textResources.commentFullText + "</a>";
        }
        dojo.byId("commentFullTextTT").innerHTML = textResources.commentFullTextTT;
        dojo.byId("commentHideText").innerHTML = textResources.commentHideText;
        if (displayComments) {
            dojo.byId("commentHideText").innerHTML = "<a href='' onclick=setDisplayComments(false,event)>" + textResources.commentHideText + "</a>";
        }
        dojo.byId("commentHideTextTT").innerHTML = textResources.commentHideTextTT;
    }
    if (dijit.byId("seboetten")) dijit.byId("seboetten").setLabel(textResources.submit);
    var total = textResources.total;
    if ((columns[0].type % 2) == 1) total = textResources.totalRating;
    dojo.byId("totalDiv").innerHTML = total;
    if (editRow != -1) {
        if (dojo.byId("unameInput").value.length == 0) {
            dojo.byId("unameInput").value = textResources.name;
        }
        for (i = 0; i < columns.length; i++) {
            var cmtid = "cmt" + i;
            var setDefaultComment = (columns[i].type % 4) >= 2;
            if (!newUser) {
                if (!tableData[editRow].choices[i] || !tableData[editRow].choices[i].comment) {
                    setDefaultComment = true;
                }
                else {
                    if (tableData[editRow].choices[i].comment.length > 0 && tableData[editRow].choices[i].comment != "\n") {
                        setDefaultComment = false;
                    }
                }
                if (dijit.byId(cmtid).getValue().length > 0 && dijit.byId(cmtid).getValue() != "\n") {
                    setDefaultComment = false;
                }
            }
            if (setDefaultComment) {
                dijit.byId(cmtid).setValue(textResources.commentFor + " " + columns[i].name);
            }
        }
    }
    calculateBestRow();
    dojo.requireLocalization("translate", "apolloNls", locale);
    var apolloResources = dojo.i18n.getLocalization("translate", "apolloNls", locale);
    dojo.byId("createTab").innerHTML = "<a href='newPoll.html?loc=" + locale + "'>" + apolloResources.create + "</a>";
    dojo.byId("participateTab").innerHTML = "<a href='choosepoll.html?loc=" + locale + "'>" + apolloResources.participate + "</a>";
    dojo.byId("examplesTab").innerHTML = "<a href='example.html?loc=" + locale + "'>" + apolloResources.examples + "</a>";
    dojo.byId("aboutTab").innerHTML = "<a href='about.html?loc=" + locale + "'>" + apolloResources.about + "</a>";
    dojo.byId("whyTab").innerHTML = "<a href='why.html?loc=" + locale + "'>" + apolloResources.why + "</a>";
    dojo.byId("privacyTab").innerHTML = "<a href='policy.html?loc=" + locale + "'>" + apolloResources.privacy + "</a>";
    dojo.byId("helpTab").innerHTML = "<a href='help.html?loc=" + locale + "'>" + apolloResources.help + "</a>";
    dojo.byId("sampleTab").innerHTML = "<a href='samplePolls.html?loc=" + locale + "'>" + apolloResources.sample + "</a>";
    dojo.byId("bugTab").innerHTML = "<a href='bug.html?loc=" + locale + "'>" + apolloResources.bug + "</a>";
}

function writeTable(){
    initialized = false;
    var rating = (columns[0].type % 2) == 1;
    var edit = (columns[0].type % 8) >= 4;
    var css = "bgBlu";
    var table = document.getElementById('polltable');
    for (var i = table.rows.length - 1; i >= 0; i--) 
        table.deleteRow(i);
    if (dijit.byId("unameInput")) dijit.byId("unameInput").destroyRecursive();
    for (var n = 0; n < columns.length; n++) {
        var id = "cmt" + n;
        if (dijit.byId(id)) dijit.byId(id).destroyRecursive();
    }
    for (var n = 0; n < columns.length; n++) {
        var id = "column" + n;
        if (dijit.byId(id)) dijit.byId(id).destroyRecursive();
    }
    table.insertRow(0);
    var headerrow = table.rows[0];
    headerrow.insertCell(0);
    headerrow.insertCell(1);
    var cell = headerrow.cells[1];
    var nameWidth = 120;
    var viewport = 0;
    if (window.innerWidth) 
        viewport = window.innerWidth;
    else 
        viewport = document.body.offsetWidth;
    viewport = viewport - 250;
    var width = viewport / columns.length;
    if (width < 60) width = 60;
    if (width > 120) width = 120;
    cell.width = nameWidth;
    cell.innerHTML = "<div style='height: 21px'/>";
    var maxLength = 0;
    for (i = 0; i < columns.length; i++) {
        if (columns[i].name.length > maxLength) maxLength = columns[i].name.length;
    }
    if (maxLength * 7 > width) {
        css = "bgBluS";
    }
    for (i = 0; i < columns.length; i++) {
        headerrow.insertCell(i + 2);
        var cell = headerrow.cells[i + 2];
        cell.innerHTML = "<b>" + columns[i].name + "</b>";
        cell.width = width;
        cell.className = css;
        cell.align = "center";
    }
    var rows = 1;
    for (userCt = 0; userCt < tableData.length; userCt++) {
        table.insertRow(rows);
        var userRow = table.rows[rows];
        if (userCt == editRow) {
            userRow.insertCell(0);
            userRow.cells[0].innerHTML = "<div style='height: 5px'/>";
            rows++;
            table.insertRow(rows);
            userRow = table.rows[rows];
            createEditRow(userRow, columns, rating, nameWidth, width);
            rows++;
            table.insertRow(rows);
            userRow = table.rows[rows];
            userRow.insertCell(0);
            userRow.cells[0].innerHTML = "<div style='height: 5px'/>";
        }
        else {
            createDisplayRow(userRow, columns, rating, edit, width);
        }
        rows++;
    }
    if (editRow == -1) {
        table.insertRow(rows);
        var emptyRow = table.rows[rows];
        emptyRow.insertCell(0);
        emptyRow.cells[0].innerHTML = "<div style='height: 5px'/>";
        rows++;
    }
    table.insertRow(rows);
    var totalRow = table.rows[rows];
    rows++;
    totalRow.insertCell(0);
    totalRow.cells[0].innerHTML = "<div style='height: 21px'/>";
    totalRow.insertCell(1);
    totalRow.cells[1].innerHTML = "<table><tr><td><b><div id=totalDiv></div></b></td></tr></table>";
    totalRow.cells[1].className = "bgBlu";
    var maxcolumn = 0;
    var maxrating = 0;
    for (i = 0; i < columns.length; i++) {
        totalRow.insertCell(i + 2);
        var ratingAvg = getRatingAvg(totalRow, i, rating);
        if (ratingAvg > maxrating) {
            maxrating = ratingAvg;
            maxcolumn = i;
        }
    }
    setBestChoice(maxcolumn, maxrating, rating);
    initialized = true;
}

function calculateBestRow(){
    var rating = (columns[0].type % 2) == 1;
    var table = dojo.byId('polltable');
    var totalRow = table.rows[table.rows.length - 1];
    var maxcolumn = 0;
    var maxrating = 0;
    for (i = 0; i < columns.length; i++) {
        var ratingAvg = getRatingAvg(totalRow, i, rating);
        if (ratingAvg > maxrating) {
            maxrating = ratingAvg;
            maxcolumn = i;
        }
    }
    setBestChoice(maxcolumn, maxrating, rating);
}

function createDisplayRow(userRow, columns, rating, edit, width){
    css = "bgBlu";
    userRow.insertCell(0);
    var cancelHtml = "";
    var userSpan1 = "";
    var userSpan2 = "";
    if (edit) {
        cancelHtml = "<a href='' class=\"cancelbutton\" onclick=\"deleteUser('" + tableData[userCt].user + "', event);\"\"> </a>";
        userSpan1 = "<span onclick=\"editUser(" + userCt + ");\"><table><tr><td><b>";
        userSpan2 = "</b></td></tr></table></span>";
    }
    userRow.cells[0].innerHTML = cancelHtml;
    userRow.cells[0].vAlign = "top";
    userRow.insertCell(1);
    userRow.cells[1].innerHTML = userSpan1 + tableData[userCt].user + userSpan2;
    userRow.cells[1].className = css;
    userRow.cells[1].vAlign = "top";
    for (ct = 0; ct < columns.length; ct++) {
        var c = -1;
        if (tableData[userCt].choices[ct]) c = tableData[userCt].choices[ct].choice;
        var comment = (columns[ct].type % 4) >= 2;
        css = "bgRed";
        var html = c;
        if (!rating) {
            html = "<img src='/images/checkboxDisabled.png' alt='checkbox inactive'>";
            if (c > 0) html = "<img src='/images/checkboxActive.png' alt='checkbox active'>";
        }
        var thiscomment = "";
        if (tableData[userCt].choices[ct] && tableData[userCt].choices[ct].comment) thiscomment = tableData[userCt].choices[ct].comment;
        if (comment) {
            if (displayComments) {
                html = "<table ><tr height=21px  ><td width='" + width + "px' align='center'>" + html + "</td></tr><tr><td  width='" + width + "px'>" + thiscomment + "</td></table>";
            }
            else if (thiscomment != "" && thiscomment != "\n") {
                var html0 = "<img src='images/comment_empty.gif'>";
                var html1 = "<span id='nameTooltip" + userCt + "" + ct + "'><img src='images/comment.gif'>";
                var html2 = "</span><span dojotype='dijit.Tooltip' connectid='nameTooltip" + userCt + "" + ct + "' style='display:none;'>" + thiscomment + "</span>";
                html = html0 + html + html1 + html2;
            }
        }
        userRow.insertCell(ct + 2);
        if (tableData[userCt].choices.length > ct) {
            userRow.cells[ct + 2].innerHTML = html;
            userRow.cells[ct + 2].className = getCss(c, rating);
            userRow.cells[ct + 2].align = "center";
            if (thiscomment != "" && thiscomment != "\n") userRow.cells[ct + 2].vAlign = "top";
        }
    }
    userRow.insertCell(userRow.cells.length);
    userRow.cells[userRow.cells.length - 1].innerHTML = "<div style='height: 21px'/>";
}

function getCss(c, rating){
    var css = "bgRed";
    if (c == -1)         
        return "bgGrey";
    if (rating) {
        if (c > 2) css = "bgOra";
        if (c > 5) css = "bgYel";
        if (c > 8) css = "bgOk";
    }
    else {
        if (c > 0.5) css = "bgOk";
    }
    
    return css;
}

function createEditRow(insertRow, columns, rating, nameWidth, width){
    insertRow.insertCell(0);
    insertRow.cells[0].innerHTML = "<div style='height: 21px'/>";
    insertRow.insertCell(1);
    var disabled = "";
    if (!newUser) disabled = "disabled='true'";
    var cmt = "<div style='width: " + width + "px'/>";
    var cmttable = "";
    var uname = tableData[userCt].user;
    insertRow.cells[1].innerHTML = "<input id='unameInput' type='text' dojoType='dijit.form.TextBox' name='user' " + disabled + " value='" + uname + "' style='width: " + nameWidth + "px' onfocus='deleteTextboxContents(\"user\")'>";
    insertRow.cells[1].vAlign = "top";
    numColumns = 0;
    if (document.getElementById('pollForm').column) numColumns = document.getElementById('pollForm').column.length;
    for (i = 0; i < columns.length; i++) {
        comment = (columns[i].type % 4) >= 2;
        var c = -1
        if (tableData[userCt].choices[i]) c = tableData[userCt].choices[i].choice;
        var checkedStr = "dummy";
        if (c > 0) checkedStr = "checked='true'";
        var entry = "<input type='checkbox' dojoType='dijit.form.CheckBox' onchange='changeValue(" + i + ")' id='column" + i + "' " + checkedStr + "'>";
        var empty = "<img src='images/comment_empty.gif'>";
        if (comment) {
            var thiscomment = "";
            if (tableData[userCt].choices[i] && tableData[userCt].choices[i].comment) thiscomment = tableData[userCt].choices[i].comment;
            cmttable = "<table><tr><td align='center'><div style='height: 21px'/>";
            var boxId = "cmt" + i;
            cmt = "</td></tr><tr><td><textarea id='" + boxId + "' dojoType='dijit.form.Textarea' name='comment' style='width: " + width + "px' onfocus='deleteCmt(\"" + boxId + "\"," + i + ")' onblur='resetCmt(\"" + boxId + "\"," + i + ")'>" + thiscomment + "</textarea> </td></tr>";
        }
        if (rating) {
            var tmpc = c; //if c==-1, we still want to put 0 in the field.
            if (tmpc < 0) tmpc = 0;
            entry = "<input  style='width: " + width + "px' onchange='changeValue(" + i + ")' dojoType='dijit.form.NumberSpinner' id='column" + i + "'" +
            "value='" +
            tmpc +
            "'" +
            "smallDelta='1' " +
            "constraints='{min:0,max:10}' " +
            "size=1'>";
        }
        insertRow.insertCell(i + 2);
        insertRow.cells[i + 2].innerHTML = cmttable + entry + cmt;
        insertRow.cells[i + 2].className = getCss(c, rating);
        insertRow.cells[i + 2].width = width;
        insertRow.cells[i + 2].align = "center";
        insertRow.cells[i + 2].vAlign = "top";
        if (!rating) {
            document.getElementById("column" + i).checked = (c > 0);
        }
    }
}


function submitUser(){
    if (pollClosed) {
        dojo.byId('errorText').innerHTML = (textResources.closedPoll);
        dijit.byId('errorMsg').show();
    }
    if (!newUser) {
        dijit.byId('editMsg').show();
    }
    else {
        dojo.byId("exceptionText").innerHTML = "Please wait while the page is loading";
        var data = getUserData();
        var error = false;
        if (data != null && !pollClosed) {
            var res = dojo.xhrPost({
                handle: submitCallback,
                url: '/resources/userChoices',
                handleAs: 'json',
                content: data,
                sync: true
            });
        }
        else {
            dojo.byId("exceptionText").innerHTML = "";
        }
    }
    
    return false;
}

function updateUser(){
	dojo.byId("exceptionText").innerHTML = "Please wait while the page is loading";
	  var data = getUserData();
    var error = false;
    if (data != null && !pollClosed) {
		var res = dojo.xhrPut({
			handle: submitCallback,
			url: '/resources/userChoices/1',
			handleAs: 'json',
			content: data,
			sync: true
		});
	}
}

function getUserData(){
    var form = document.getElementById('pollForm');
	if(form.user.value==textResources.name){
		    dojo.byId('errorText').innerHTML=textResources.ExNoUser;
            dijit.byId('errorMsg').show();
            return null;
	}
    for (userCt = 0; userCt < tableData.length; userCt++) {
        if (newUser && (tableData[userCt].user == form.user.value)) {

            dojo.byId('errorText').innerHTML=textResources.ExUserTaken;
            dijit.byId('errorMsg').show();
            return null;
        }
    }

    var data = {
        user: form.user.value,
        pollId: pollId,
        choices: new Array(),
        comments: new Array(),
        optIds: new Array(),
		updateComment: dijit.byId('explanationEdit').getValue()
    };
    var commentCt = 0;
    for (i = 0; i < columns.length; i++) {
        var form = document.getElementById('pollForm');
        var input = document.getElementById("column" + i);
        var value = input.value;
        if (value == 'on') {
            if (input.checked) 
                value = 1;
            else 
                value = 0;
        }
        else {
            spinnerCt++;
        }
        data.choices.push(value);
        var hasComment = (columns[i].type % 4) >= 2;
        var comment = "";
        if (hasComment) {
            comment = form.comment[commentCt].value;
        }
        if (comment == textResources.commentFor + " " + columns[i].name || !hasComment) comment = "";
        data.comments.push(comment);
        if (hasComment) commentCt++;
        data.optIds.push(columns[i].optid);
    }
    
    return data;
}

function editUser(user){
    dojo.byId("exceptionText").innerHTML = "";
    if (pollClosed) {
        dojo.byId('errorText').innerHTML=(textResources.closedPoll);
        dijit.byId('errorMsg').show();
        
        return;
    }
    if (newUser) tableData.pop();
    for (ct = 0; ct < columns.length; ct++) {
        if ((columns[ct].type % 2) == 1) spinnerCt++;
    }
    if (!dijit.byId("seboetten")) {
        var params = {
            onClick: submitUser,
            id: "seboetten"
        };
        new dijit.form.Button(params, dojo.byId("submitButtonDiv"));
    }
    editRow = user;
    newUser = false;
    writeTable();
    dojo.parser.parse(dojo.byId('polltable'));
    setLocalizedData();
}

function deleteUser(userName, event){
    dojo.byId("exceptionText").innerHTML = "";
    dojo.stopEvent(event);
	deleteUsername=userName
	dijit.byId('deleteMsg').show();
}

function deleteConfirmed(){
	   
        var data = {
            user: deleteUsername,
            pollId: pollId,
			deleteCmt: dijit.byId('explanationDelete').getValue()
        };
        var res = dojo.xhrDelete({
            handle: checkExceptionCallback,
            url: '/resources/userChoices',
            handleAs: 'json',
            content: data,
            sync: true
        });
        getTable();
}

function changeValue(editCol){
    var columnid = "column" + editCol;
    var inputelem = document.getElementById(columnid);
    if (!initialized)         
        return;
    var form = document.getElementById('pollForm');
    var dummyCt = 0;
    for (var i = 0; i < editCol; i++) {
        if ((columns[i].type % 2) == 1) {
            dummyCt++;
        }
    }
    var value = inputelem.value;
    var rating = true;
    if (value == 'on') {
        rating = false;
        if (inputelem.checked) 
            value = 1;
        else {
            if (!tableData[editRow].choices[editCol] || tableData[editRow].choices[editCol].choice == -1) 
                value = -1;
            else 
                value = 0;
        }
    }
    var table = document.getElementById('polltable');
    if (tableData[editRow].choices[editCol]) tableData[editRow].choices[editCol].choice = value;
    editCol += 2;
    table.rows[editRow + 2].cells[editCol].className = getCss(value, rating);
    calculateBestRow();
}

function setBestChoice(maxcolumn, maxrating, rating){
    var bc = columns[maxcolumn].name + " (" + maxrating + " " + textResources.bestChoiceVote + ")";
    if (rating) bc = columns[maxcolumn].name + " (" + textResources.bestChoiceRating + " " + maxrating + ")";
    document.getElementById("bestChoice").innerHTML = bc;
}

function getRatingAvg(totalRow, i, rating){
    var totalrating = 0;
    var numUsers = 0;
    for (user = 0; user < tableData.length; user++) {
        if (tableData[user].choices.length > i && tableData[user].choices[i].choice > -1) {
            totalrating += parseInt(tableData[user].choices[i].choice);
            numUsers++;
        }
    }
    var avg = Math.round(totalrating * 10 / numUsers) / 10;
    if (numUsers == 0) avg = 0;
    if (!rating) 
        avg = avg * 10;
    else 
        totalrating = avg;
    totalRow.cells[i + 2].innerHTML = "<b>" + totalrating + "</b>";
    totalRow.cells[i + 2].align = "center";
    totalRow.cells[i + 2].className = getCss(avg, true);
    
    return totalrating;
}

function deleteTextboxContents(textboxid){
    var form = document.getElementById('pollForm');
    var textbox = "";
    if (textboxid == "user") {
        textbox = form.user;
    }
    if (textbox.value == textResources.name) textbox.value = "";
    textbox.focus();
}

function deleteCmt(textareaid, ct){
    var area = dijit.byId(textareaid);
    if (area.getValue() == textResources.commentFor + " " + columns[ct].name) {
        area.setValue("");
    }
    area.focus();
}

function resetCmt(textareaid, ct){
    var area = dijit.byId(textareaid);
    if (area.getValue() == "") {
        area.setValue(textResources.commentFor + " " + columns[ct].name);
    }
}

function setDisplayComments(disp, e){
    dojo.stopEvent(e);
    dojo.byId("exceptionText").innerHTML = "";
    displayComments = disp;
    writeTable();
    if (!displayComments) {
        dojo.byId("commentFullText").innerHTML = "<a href='' onclick=setDisplayComments(true,event)>" + textResources.commentFullText + "</a>";
        dojo.byId("commentHideText").innerHTML = textResources.commentHideText;
    }
    if (displayComments) {
        dojo.byId("commentHideText").innerHTML = "<a href='' onclick=setDisplayComments(false,event)>" + textResources.commentHideText + "</a>";
        dojo.byId("commentFullText").innerHTML = textResources.commentFullText;
    }
    dojo.parser.parse(dojo.byId('polltable'));
    setLocalizedData();
}

function changeLoc(loc, event){
    dojo.byId("exceptionText").innerHTML = "";
    var form = dojo.byId('pollForm');
    for (i = 0; i < columns.length; i++) {
        var cmtid = "cmt" + i;
        comment = (columns[i].type % 4) >= 2;
        if (comment) {
            if (form.comment[i].value == textResources.commentFor + " " + columns[i].name) dijit.byId(cmtid).setValue("");
        }
    }
    if (dojo.byId("unameInput").value == textResources.name) dojo.byId("unameInput").value = "";
    locale = loc;
    dojo.requireLocalization("translate", "poll", locale);
    textResources = dojo.i18n.getLocalization("translate", "poll", locale);
    setLocalizedData();
    var dummy = "dumm";
    dojo.stopEvent(event);
}

function trim(s){
    if (!s.length || s.length == 0)         
        return s;
    while (s.substring(0, 1) == ' ') {
        s = s.substring(1, s.length);
    }
    while (s.substring(s.length - 1, s.length) == ' ') {
        s = s.substring(0, s.length - 1);
    }
    
    return s;
}


function doLogout(){
	     dojo.xhrPost({
            url: '/resources/Logout',
            handleAs: "json",
            content: locale,
			handle: logoutCallback
        });
		dojo.byId("userNameInput").innerHTML = "";
		dojo.byId("pwdInput").innerHTML = "";		
    	dojo.stopEvent(event);
	
}

function logoutCallback(){
}

function logoBg(){

    var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
    var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
    var img = dojo.byId('logo');
    if (itsAllGood && img) {
        var div = document.createElement("DIV");
        div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "', sizing='scale')"
        div.style.width = img.width + "px";
        div.style.height = img.height + "px";
        img.replaceNode(div);
    }
}

