﻿var CHECKBOX_WIN    = 'chkWin';
var CHECKBOX_PLACE  = 'chkPlace';
var CHECKBOX_SHOW   = 'chkShow';
var CHECKBOX_FOURTH = 'chkFourth';
var CHECKBOX_BOX    = 'chkBox';

var CHECKBOX_ALL_WIN    = 'chkWinAll';
var CHECKBOX_ALL_PLACE  = 'chkPlaceAll';
var CHECKBOX_ALL_SHOW   = 'chkShowAll';
var CHECKBOX_ALL_FOURTH = 'chkFourthAll';
var CHECKBOX_ALL_BOX = 'chkBoxAll';

var STYLE_CHECKBOX_ENABLED  = 'enabled-checkbox';
var STYLE_CHECKBOX_DISABLED = 'disabled-checkbox';

function CheckboxAll_OnClick($checkboxall, $repeatername, $itemscount, $checkboxname) {
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     * Gets the checkbox all checked value and sets it to each checkox above it  *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    var $checked = $checkboxall.checked;

    for (var $itemindex = 1; $itemindex <= $itemscount; $itemindex++) {
        var $controlname = $repeatername + '_ctl' + String(($itemindex < 10 ? '0' : '')) + String($itemindex) + '_' + $checkboxname;
        var $control = document.all ? document.all[$controlname] : document.getElementById($controlname);
        if ($control != null && $control != undefined) {
            $control.checked = $checked;
            if ($checkboxname == CHECKBOX_BOX)
                CheckboxBox_OnClick($control, $repeatername, $itemscount, $itemindex);
        }
        $control = null;
    }
}

function SetCheckboxChecked($checkboxname, $checked) {
    var $checkox = document.all ? document.all[$checkboxname] : document.getElementById($checkboxname);
    if ($checkox != null && $checkox != undefined)
        $checkox.checked = $checked;
    $checkox = null;
}

function CheckboxBox_OnClick($checkbox, $repeatername, $itemscount, $itemcurrent) {
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     * Sets the checked value for checkboxes next to box's checkbox  *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    var $checked = $checkbox.checked;
    var $controlname = $repeatername + '_ctl' + String(($itemcurrent < 10 ? '0' : '')) + String($itemcurrent) + '_';
    
    SetCheckboxChecked($controlname + CHECKBOX_WIN, $checked);
    SetCheckboxChecked($controlname + CHECKBOX_PLACE, $checked);
    SetCheckboxChecked($controlname + CHECKBOX_SHOW, $checked);
    SetCheckboxChecked($controlname + CHECKBOX_FOURTH, $checked);

    Checkbox_OnClick($repeatername, $itemscount, CHECKBOX_BOX)
}

function SetCheckboxClassName($checkboxname, $classname) {
    var $checkox = document.all ? document.all[$checkboxname] : document.getElementById($checkboxname);
    if ($checkox != null && $checkox != undefined) {
        $checkox.className = $classname;
        $checkox.checked = false;
    }
    $checkox = null;
}

function LinkButtonBox_OnClick($repeatername, $itemscount, $hiddenname) {
    var $hidden = document.all ? document.all[$hiddenname] : document.getElementById($hiddenname);
    if ($hidden != null && $hidden != undefined) {
        var $enable = (Number($hidden.value) == 0);
        var $checkboxname;

        for (var $itemindex = 1; $itemindex <= $itemscount; $itemindex++) {
            $checkboxname = $repeatername + '_ctl' + String(($itemindex < 10 ? '0' : '')) + String($itemindex) + '_';

            SetCheckboxClassName($checkboxname + CHECKBOX_BOX, ($enable == true ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
            SetCheckboxClassName($checkboxname + CHECKBOX_WIN, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
            SetCheckboxClassName($checkboxname + CHECKBOX_PLACE, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
            SetCheckboxClassName($checkboxname + CHECKBOX_SHOW, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
            SetCheckboxClassName($checkboxname + CHECKBOX_FOURTH, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
        }

        $itemscount++;
        $checkboxname = $repeatername + '_ctl' + String(($itemscount < 10 ? '0' : '')) + String($itemscount) + '_';
        SetCheckboxClassName($checkboxname + CHECKBOX_ALL_BOX, ($enable == true ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
        SetCheckboxClassName($checkboxname + CHECKBOX_ALL_WIN, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
        SetCheckboxClassName($checkboxname + CHECKBOX_ALL_PLACE, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
        SetCheckboxClassName($checkboxname + CHECKBOX_ALL_SHOW, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
        SetCheckboxClassName($checkboxname + CHECKBOX_ALL_FOURTH, ($enable == false ? STYLE_CHECKBOX_ENABLED : STYLE_CHECKBOX_DISABLED));
        
        
        $hidden.value = String($enable == true ? 1 : 0);
    }
    $hidden = null;
    
    return false;
}

function Checkbox_OnClick($repeatername, $itemscount, $checkboxname) {
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     * Validates if all checkbox from same columns are checked in order  *
     * to check or uncheck the all checkbox placed at the footer         *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    var $checked = true;
    var $controlname;
    var $control;
    
    for (var $itemindex = 1; $itemindex <= $itemscount; $itemindex++) {
        $controlname = $repeatername + '_ctl' + String(($itemindex < 10 ? '0' : '')) + String($itemindex) + '_' + $checkboxname;
        $control = document.all ? document.all[$controlname] : document.getElementById($controlname);
        if ($control != null && $control != undefined)
            $checked = ($control.checked && $checked);
        $control = null;
    }

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     * Footer item is the itemcount + 1. In there checkbox all is placed *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    $itemscount++;
    
    switch ($checkboxname) {
        case CHECKBOX_WIN:
            $checkboxname = CHECKBOX_ALL_WIN;
            break;
        case CHECKBOX_PLACE:
            $checkboxname = CHECKBOX_ALL_PLACE;
            break;
        case CHECKBOX_SHOW:
            $checkboxname = CHECKBOX_ALL_SHOW;
            break;
        case CHECKBOX_FOURTH:
            $checkboxname = CHECKBOX_ALL_FOURTH;
            break;
        case CHECKBOX_BOX:
            $checkboxname = CHECKBOX_ALL_BOX;
            break;
    }
    
    $controlname = $repeatername + '_ctl' + String(($itemscount < 10 ? '0' : '')) + String($itemscount) + '_' + $checkboxname;
    $control = document.all ? document.all[$controlname] : document.getElementById($controlname);
    if ($control != null && $control != undefined)
        $control.checked = $checked;
    $control = null;
}