﻿var ChkIndex;
var ChkPrefix;
var RdIndex;
var RdPrefix;

function GraphicsInit()
{        
    ChkIndex = 1;
    ChkPrefix = 'chk_G_';
    RdIndex = 1;
    RdPrefix = 'rd_G_';
    var Ctrls;
    var Ctrl;
    var CtrlType;
    Ctrls = document.getElementsByTagName('input');
    for(var i=0;i<Ctrls.length;i++)
    {
        Ctrl = Ctrls[i];
        CtrlType = Ctrl.type;
        if(CtrlType == 'checkbox')
            MakeStyleCheckBox(Ctrl);
        else if(CtrlType == 'radio')
            MakeStyleRadio(Ctrl);
    }
}

function MakeStyleRadio(Ctrl)
{
    var Ctrl;
    var Img;
    
    if(Ctrl.id == '')
    {
        Ctrl.id = RdPrefix + RdIndex;
        RdIndex++;
    }
    
    Img = document.createElement('img');
    Img.id = 'img' + Ctrl.id; 
    Ctrl.parentNode.insertBefore(Img,Ctrl);            
    SetImage(Ctrl)
    Ctrl.style.display = 'none';  
    
    Img.onclick = RadioChange;
}

function RadioChange(e)
{
    var Img;
    var Ctrl;
    if (window.event) e = window.event; 
    Img = e.srcElement? e.srcElement : e.target; 
    
    Ctrl = document.getElementById(Img.id.replace('img',''));
    if(Ctrl.checked == true)
        Ctrl.checked = false;
    else 
        Ctrl.checked = true;
    
    Reinit();
    
    if(Ctrl.onclick != null)
        Ctrl.onclick();            
}

function Reinit()
{
    var Ctrls;
    var Ctrl;
    var Img;
    var CtrlType;
    Ctrls = document.getElementsByTagName('input');
    for(var i=0;i<Ctrls.length;i++)
    {
        Ctrl = Ctrls[i];
        SetImage(Ctrl)
    }
}

function MakeStyleCheckBox(Ctrl)
{
    var Img;
    var Ctrl;
    var CtrlType;
    
    if(Ctrl.id == '')
    {
        Ctrl.id = ChkPrefix + ChkIndex;
        ChkIndex++;
    }
    
    Img = document.createElement('img');
    Img.id = 'img' + Ctrl.id; 
    Ctrl.parentNode.insertBefore(Img,Ctrl);
    SetImage(Ctrl)
    Ctrl.style.display = 'none';  
    
    CtrlType = Ctrl.type;
    
    if(CtrlType == 'checkbox')
        Img.onclick = CheckBoxChange;
    else
        Img.onclick = RadioButtonChange;
}

function CheckBoxChange(e)
{
    var Img;
    var Ctrl;
    if (window.event) e = window.event; 
    Img = e.srcElement? e.srcElement : e.target; 
    
    Ctrl = document.getElementById(Img.id.replace('img',''));
    if(Ctrl.checked == true)
    {
        Ctrl.checked = false;
    }
    else
    {
        Ctrl.checked = true;
    }
    SetImage(Ctrl)
    
    if(Ctrl.onclick != null)
        Ctrl.onclick();            
}
        
function SetImage(Ctrl)
{
    var Img;
    var CtrlType;
    
    CtrlType = Ctrl.type;
    Img = document.getElementById('img' + Ctrl.id);
    
    if(CtrlType == 'checkbox')
    {                    
        if(Ctrl.checked == true)
        {
            Img.src = '../images/cb_Checked.gif';
        }
        else
        {
            Img.src = '../images/cb_Unchecked.gif';
        }
    }
    
    if(CtrlType == 'radio')
    {
        if(Ctrl.checked == true)
        {
            Img.src = '../images/rd_Checked.gif';
        }
        else
        {
            Img.src = '../images/rd_Unchecked.gif';
        }
    }
}

function CheckAll(sCriteriaName,ObjName,MainID)
{
    var ctrl;
    var Main;
    var IDCollection;
    ctrl = document.getElementsByName(ObjName);
    Main = document.getElementById(MainID);
    IDCollection = "";
    
    for(var i=0;i<ctrl.length;i++)
    {
        if(ctrl[i].type == 'checkbox')
        {
            img = document.getElementById('img' + ctrl[i].id);
            if(Main.checked == true)
            {
                img.src = '../images/cb_Checked.gif';
                ctrl[i].checked = true;
            }
            else
            {
                img.src = '../images/cb_Unchecked.gif';
                ctrl[i].checked = false;
            }
            
			if(IDCollection.length>0)
				IDCollection = IDCollection + ',';
				
            IDCollection = IDCollection + ctrl[i].id;
        }
    }
    
    if(Main.checked == true)
        RemoveAllCriteria(sCriteriaName, IDCollection, "");
    else
        RemoveAllCriteria(sCriteriaName, IDCollection, "R");
}

function CheckAllBoolean(ObjName,lvBoolean)
{
    var ctrl;
    var IDCollection;
    ctrl = document.getElementsByName(ObjName);
    IDCollection = "";
    
    for(var i=0;i<ctrl.length;i++)
    {
        if(ctrl[i].type == 'checkbox')
        {
            img = document.getElementById('img' + ctrl[i].id);
            if(lvBoolean == true)
            {
                img.src = '../images/cb_Checked.gif';
                ctrl[i].checked = true;
            }
            else
            {
                img.src = '../images/cb_Unchecked.gif';
                ctrl[i].checked = false;
            }
            
			if(IDCollection.length>0)
				IDCollection = IDCollection + ',';
				
            IDCollection = IDCollection + ctrl[i].id;
        }
    }
}

function RadioButtonChange(e)
{
    var img;
    var ctrl;
    
    if (window.event) e = window.event; 
        
    img = e.srcElement? e.srcElement : e.target; 

    ctrl = document.getElementById(img.id.replace('img',''));
    
    if(ctrl.checked == true)
        ctrl.checked = false;
    else
        ctrl.checked = true;
    
    Reset(ctrl.name);
    
    if(ctrl.onclick != null)
        ctrl.onclick();
    
}

function Reset(ObjName)
{
    var ctrl;
    ctrl = document.getElementsByName(ObjName);
    
    for(var i=0;i<ctrl.length;i++)
    {
        if(ctrl[i].type == 'radio' && ctrl[i].className == 'style')
        {
            img = document.getElementById('img' + ctrl[i].id);
            
            if(ctrl[i].checked == true)
            {
                img.src = '../images/rd_Checked.gif';
                ctrl[i].checked = true;
            }
            else
            {
                img.src = '../images/rd_UnChecked.gif';
                ctrl[i].checked = false;
            }
        }
    }
}
window.onload = GraphicsInit;