/*

    Custom check box


    Args^

    imgBase: base path for images : local: images/ or server: /images/

    imgOn: image on file name default : checkbox_on.png

    imgOff: image on file name default : checkbox_off.png

    imgW: width of image; 25

    imgH: height of image; 22

    instanceClass: css class of check box table, default 'checkbox_instance'

    containerClass: css class of check box div, default 'checkbox_container'

    

    attrib value_on,value_off

    

    excemple

    <div class="checkbox_container" value="xxx" onchange="alert('a');" value_on="true" value_off="false" name="sss" checked="">123</div>

*/

function CheckBoxCustom(Args)

{

    var me=this;

    var imgBase=Args.imgBase==undefined?'images/':Args.imgBase;

    var imgOn=Args.imgOn==undefined?'checkbox_on.png':Args.imgOn;

    var imgOff=Args.imgOff==undefined?'checkbox_off.png':Args.imgOff;

    var imgW=Args.imgOff==undefined?25:Args.imgW;

    var imgH=Args.imgOff==undefined?22:Args.imgH;

    var instanceClass=Args.instanceClass==undefined?'checkbox_instance':Args.instanceClass;

    var containerClass=Args.containerClass==undefined?'checkbox_container':Args.containerClass;

    var valueOn='true';

    var valueOff='false';

    

    CheckBoxCustom.prototype.GetHtml=function(name,caption,Checked)

    {

        var imgPath=imgOff;

        var imgVal= valueOff;

        if(Checked==true)

        {

            imgPath=imgOn;

            imgVal=valueOn;

        }

        var ret='';

        ret+='<table class="bn '+instanceClass+'" ><tr><td class="min"><img src="'+imgBase+imgPath+'" alt="" width="'+imgW+'" height="'+imgH+'" class="png" />';

        ret+='<input type="hidden" name="'+name+'" value="'+imgVal+'"/></td><td class="caption">';

        ret+='<span>'+caption+'</span></td></tr></table>';

        return ret;

    }

    CheckBoxCustom.prototype.Click=function ()

    {

        //alert('click'+img.attr('src')+' '+img.attr('oldSrc'));

        var par=$(this).parent().parent().parent().parent();

        var img=par.find('img');

        var inp=par.find('input');

     

        if(img.attr('src').indexOf(imgOff)>-1)

        {

            img.attr('src',img.attr('src').replace(imgOff,imgOn));

            inp.attr('value',valueOn);

        }

        else if (img.attr('src').indexOf(imgOn)>-1)

        {

            img.attr('src',img.attr('src').replace(imgOn,imgOff));

            inp.attr('value',valueOff);

        }

        

        if(img.attr('oldSrc')!=undefined) 

        {

        

            if(img.attr('oldSrc').indexOf(imgOff)>-1)

            {

                var newSrc=img.attr('oldSrc').replace(imgOff,imgOn);

                img.attr('oldSrc',newSrc);

                img.attr('runtimeStyle').filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + newSrc + "',sizingMethod='scale')";

                inp.attr('value',valueOn);

            }

            else if (img.attr('oldSrc').indexOf(imgOn)>-1)

            {

                var newSrc=img.attr('oldSrc').replace(imgOn,imgOff);

                img.attr('oldSrc',newSrc);

                img.attr('runtimeStyle').filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + newSrc + "',sizingMethod='scale')";

                inp.attr('value',valueOff);

            }

        }

        if(par.get(0).onchange!=undefined)

            if(typeof(par.get(0).onchange)=='function')par.get(0).onchange();

                else try{eval(par.get(0).onchange)} catch(ex){};

     }

     CheckBoxCustom.prototype.CreateCheckBox=function()

        {

            var checked_s=$(this).attr('checked');

            var checked=false;

            if(checked_s=='true') checked=true;

            

            if($(this).attr('value_on')!=undefined) valueOn=$(this).attr('value_on');

            if($(this).attr('value_off')!=undefined) valueOff=$(this).attr('value_off');

            

            var h=me.GetHtml($(this).attr('name'),$(this).html(),checked);

            var d=document.createElement('DIV');

            d.innerHTML=h;

            var elt=d.firstChild;

            $(elt).remove();

            

            var before=$(document.createElement("DIV"));

            $(this).after(before);

            $(this).remove();

            before.before(elt);

            

            var value=$(this).attr('value')

            //alert($(this).attr('onchange'));

            elt.value=value;

            

            var strOnchange=$(this).attr('onchange');

            var onchange=function(){this.value=value;;eval(strOnchange);};

            //var onchange=function(){alert('change');};

            //elt.onchange=$(this).attr('onchange');

            if($.browser.msie) elt.onchange=onchange; else elt.onchange=strOnchange;

            //elt.onchange=onchange;

            //elt.value="sss";

            //elt.value="value";

            //elt.value1="value1";

            //$(elt).oneTime(1000,function(){this.value1=value;alert(this.value1);});

            

        }

     CheckBoxCustom.prototype.Init=function()

     {

			//alert($('.'+containerClass).size());

            $('.'+containerClass).each(me.CreateCheckBox);

            $('.'+instanceClass).find('img,span').click(me.Click);

            $('.'+instanceClass).find('span').mousedown(function(){return false;});

     }     

     me.Init();

}








