function hideElement(id) {
    var a = document.getElementById(id);
    if (a) a.style.display = 'none';
}

function showElement(id) {
    var a = document.getElementById(id);
    if (a) a.style.display = 'block';
}

function checkVote(id) {
    var type  = document.getElementById('type_' + id).value;
    var voted = readCookie( type + '_id' );
    if (!voted) {
        return;
    }
    var voted_array = voted.split(',');
    for (var poll in voted_array) {
        if (voted_array[poll] == id) {
            var form_name = type + '-form-' + id;
            var results = type + '-results-' + id;
            hideElement( form_name );
            var div = document.getElementById(results);
            if (!div.innerHTML) {
                document.forms[form_name].results_only.value = '1';
                submitVote(id);
            }
        }
    }
}

function viewResults(id) {
    var type = document.getElementById('type_' + id).value;
    var form_name = type + '-form-' + id;
    document.forms[form_name].results_only.value = '1';
    submitVote(id);
    showElement( form_name );
}

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 = "";
    }
    var cur = readCookie(name);
    if (cur) {
        value = cur + ',' + value;
    }
    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 Action;

function submitVote(id) {
    var type = document.getElementById('type_' + id).value;
    var handleSuccess = function(o) {
        var results = type + '-results-' + id;
        var div = document.getElementById(results);
        if(o.responseText !== undefined){
            if ( o.responseText.match('unpublished') ) {
                div.innerHTML = '<p class="unpublished">' + o.responseText + '</p>';
            }
            else if ( o.responseText.match('currently closed') ) {
                div.innerHTML = '<p class="currently-closed">' + o.responseText + '</p>';
            }
            else if ( o.responseText.match('not a valid option') ) {
                showElement( type + '-form-' + id );
                div.innerHTML = '<p class="error">' + o.responseText + '</p>';
            }
            else { // Successful vote
                div.innerHTML = o.responseText;
                var form_name = type + '-form-' + id;
                if (document.forms[form_name].results_only.value=='0') {
                    createCookie(type +'_id',id,999);
                }
                document.forms[form_name].results_only.value = '0';
            }
        }
    };

    var handleFailure = function(o) {
        showElement( type + '-form-' + id );
        var results = type + '-results-' + id;
        var div = document.getElementById(results);
        if (o.responseText !== undefined) {
            div.innerHTML =  "<p><strong>Error</strong><br />";
            div.innerHTML += "Transaction id: " + o.tId + "<br />";
            div.innerHTML += "HTTP status: " + o.status + "</br />";
            div.innerHTML += "Status code message: " + o.statusText + "</p>";
        }
    };

    var callback =
    {
        success:handleSuccess,
        failure:handleFailure
    };

    var form_name = type + '-form-' + id;
    // Check that visitor has selected an option before submitting
    for (var i = 0; i < document.forms[form_name].poll_choice.length; i++) {
        if (document.forms[form_name].poll_choice[i].checked) {
            var selected = 1;
        }
    }
    if ( selected || (document.forms[form_name].results_only.value == '1') ) {
        var formObject = document.getElementById(form_name);
        YAHOO.util.Connect.setForm(formObject);
        var sUrl = "http://www.saabsunited.com/cgi-bin/mt/plugins/PollPosition/vote.cgi";
        var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback);
        var results = type + '-results-' + id;
        document.getElementById(results).innerHTML = '<img src="http://www.saabsunited.com/mt-static/images/indicator.gif" width="66" height="66" />';
        hideElement( type + '-form-' + id );
        return false;
    }
    else {
        alert('Please make a selection before submitting to this ' + type);
        return false;
    }
}
