﻿var poll = new function () {
    var self = this;
    var submit = function (e) {
        var form = this.related_form;
        var isAnyValueSelected = false;
        $(form).find('input[name="Answers"]').each(function () {
            if (!this.checked) return;
            isAnyValueSelected = true;
            return false;
        });
        if (isAnyValueSelected) {
            var leftPosition = (screen.width) ? (screen.width - 300) / 2 : 100;
            var topPosition = (screen.height) ? (screen.height - 200) / 2 : 100;
            var settings = 'width=300,height=200,top=' + topPosition + ',left=' + leftPosition + ',scrollbars=0,location=0,directories=0,status=1,menubar=0,toolbar=0,resizable=0';
            var opened = window.open('', null, settings, false);
            $.post(form.action, $(form).serialize(), function (data) {
                opened.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Голосование</title><link rel="Shortcut Icon" href="http://www.kommersant.ru/favicon.ico" /></head><body style="margin: 0px;" bgcolor="#e6f0f5">');
                opened.document.write(data);
                opened.document.write('</body></html>');
            });
        }
        e.preventDefault();
    };
    var parseContainerOnConfirm = function (container, data, clickMethod) {
        $(container).empty();
        $(container).append(data);
        var form = container.find('form')[0];
        if (!form)
            return;
        $(container).find(".poll_submit").each(function () {
            this.related_form = form;
            this.related_container = container;
            $(this).click(clickMethod);
        });
    };
    var confirm = function (e) {
        e.preventDefault();
        var form = this.related_form;
        var container = this.related_container;
        $.post(form.action, $(form).serialize(), function (data) {
            parseContainerOnConfirm(container, data, confirm);
        });
    };
    var specifiedSubmit = function (e) {
        e.preventDefault();
        var form = this.related_form;
        var container = this.related_container;
        var isAnyValueSelected = false;
        $(form).find('input[name="Answers"]').each(function () {
            if (!this.checked) return;
            isAnyValueSelected = true;
            return false;
        });
        if (!isAnyValueSelected)
            return;
        $.post(form.action, $(form).serialize(), function (data) {
            parseContainerOnConfirm(container, data, confirm);
        });
    };
    var bindSubmit = function (container, form) {
        $(container).find(".poll_submit").each(function () {
            this.related_form = form;
            this.related_container = container;
            if ($(container).hasClass('poll_specified'))
                $(this).click(specifiedSubmit);
            else
                $(this).click(submit);
        });
    };
    var pastePixel = function (container) {
        var input = $(container).find('.pixel_container input[name="pixel"]')[0];
        if (!input)
            return;
        if (typeof (pr) == 'undefined') {
            var pr = Math.floor(Math.random() * 1000000);
        }
        $(input).parent().append('<img src="' + input.value + '&amp;prrrr=' + pr + '" border="0" alt="" />');
    };
    this.parseContainer = function (container) {
        var form = container.find('form')[0];
        if (!form)
            return;
        bindSubmit(container, form);
        pastePixel(container);
    };
};

$(function () {
    $(".poll.lazyloading").each(function () {
        var container = $(this);
        var input = container.children('input[type=hidden]')[0];
        if (!input) return;
        var currentDate = new Date();
        container.load(input.value + '?nocache=' + currentDate.getTime(), function () {
            if (inputsToDiv)
                inputsToDiv.init(container);
            poll.parseContainer(container);
        });
    });
    $(".document_vote").each(function () {
        var container = $(this);
        poll.parseContainer(container);
    });
});
