/**
class to create the css_borderInput input
*/

css_borderInputs = new Array();

function css_borderInput(id, target, value)
{
    
    this.init = function()
    {
        dv_target = findObj(target);
        dv_target.style.padding = "0px";
        dv_target.style.border = "0px";
        dv_target.innerHTML = me.gethtml();
        css_borderInputs[me.id] = me;
        //me.setallthesame(true);
        me.parsevalue(value);
        me.updatedisplayvalue();
    }
    
    this.getdisplayvalue = function()
    {
        ats = findObj("border_" + me.id + "_allthesame");
        
        mts = findObj("border_" + me.id + "_top_size");
        mtu = findObj("border_" + me.id + "_top_units");
        
        if (ats.checked)
        {
            ret = mts.value + mtu.options[mtu.selectedIndex].value;
        }
        else
        {
            mrs = findObj("border_" + me.id + "_right_size");
            mru = findObj("border_" + me.id + "_right_units");

            mbs = findObj("border_" + me.id + "_bottom_size");
            mbu = findObj("border_" + me.id + "_bottom_units");

            mls = findObj("border_" + me.id + "_left_size");
            mlu = findObj("border_" + me.id + "_left_units");

            if (!mts.value) mts.value = 0;
            if (!mrs.value) mrs.value = 0;
            if (!mbs.value) mbs.value = 0;
            if (!mls.value) mls.value = 0;

            ret = mts.value + mtu.options[mtu.selectedIndex].value + " ";
            ret += mrs.value + mru.options[mru.selectedIndex].value + " ";
            ret += mbs.value + mbu.options[mbu.selectedIndex].value + " ";
            ret += mls.value + mlu.options[mlu.selectedIndex].value + " ";
        }
        
        return ret;
    }
    
    this.gethtml = function()
    {
        var ret = "";
        
        ret = "<input id=\"border_display_" + id + "\" disabled=\"disabled\"  onclick=\"cmi = css_borderInputs['" + me.id + "'];cmi.setdisplay('');\"  onfocus=\"cmi = css_borderInputs['" + me.id + "'];cmi.setdisplay('');\" value=\"" + this.value + "\" /><input type=\"hidden\" id=\"" + id + "\" name=\"" + id + "\" size=\"25\" value=\"" + this.value + "\" /><a onclick=\"toggledisplay('dv_border_" + id + "');\" style=\"cursor: pointer\">&raquo;</a><div id=\"dv_border_" + id + "\" style=\"display: none; z-index: 150;\">";
        ret += "<div style=\"display: inline; position: absolute; border-left: 190px; background-color: #eeeeee; border: 1px solid #999999; width: 220 px; padding: 3 px; text-align: right\">";
        ret += "<p><label for=\"border_" + id + "_top_size\" style=\"width: 70px\">Top</label><input size=\"3\" name=\"border_" + id + "_top_size\" /><select name=\"border_" + id + "_top_units\"><option value=\"px\">px</option><option value=\"pt\">pt</option><option value=\"em\">em</option><option value=\"%\">%</option></select><select name=\"border_" + id + "_top_style\"><option value=\"solid\">Solid</option><option value=\"dashed\">Dashed</option><option value=\"dotted\">Dotted</option></select><input id=\"border_" + id + "_top_color\" name=\"border_" + id + "_top_color\" title=\"Colour\" size=\"10\" /></p>";
        ret += "<p><label for=\"border_" + id + "_right_size\" style=\"width: 70px\">Right</label><input size=\"3\" name=\"border_" + id + "_right_size\" /><select name=\"border_" + id + "_right_units\"><option value=\"px\">px</option><option value=\"pt\">pt</option><option value=\"em\">em</option><option value=\"%\">%</option></select><select name=\"border_" + id + "_right_style\"><option value=\"solid\">Solid</option><option value=\"dashed\">Dashed</option><option value=\"dotted\">Dotted</option></select><input id=\"border_" + id + "_right_color\" name=\"border_" + id + "_right_color\" title=\"Colour\" size=\"10\" /></p>";
        ret += "<p><label for=\"border_" + id + "_bottom_size\" style=\"width: 70px\">Bottom</label><input size=\"3\" name=\"border_" + id + "_bottom_size\" /><select name=\"border_" + id + "_bottom_units\"><option value=\"px\">px</option><option value=\"pt\">pt</option><option value=\"em\">em</option><option value=\"%\">%</option></select><select name=\"border_" + id + "_bottom_style\"><option value=\"solid\">Solid</option><option value=\"dashed\">Dashed</option><option value=\"dotted\">Dotted</option></select><input id=\"border_" + id + "_bottom_color\" name=\"border_" + id + "_bottom_color\" title=\"Colour\" size=\"10\" /></p>";
        ret += "<p><label for=\"border_" + id + "_left_size\" style=\"width: 70px\">Left</label><input size=\"3\" name=\"border_" + id + "_left_size\" /><select name=\"border_" + id + "_left_units\"><option value=\"px\">px</option><option value=\"pt\">pt</option><option value=\"em\">em</option><option value=\"%\">%</option></select><select name=\"border_" + id + "_left_style\"><option value=\"solid\">Solid</option><option value=\"dashed\">Dashed</option><option value=\"dotted\">Dotted</option></select><input id=\"border_" + id + "_left_color\" name=\"border_" + id + "_left_color\" title=\"Colour\" size=\"10\" /></p>";
        ret += "<p><label for=\"border_" + id + "_allthesame\" style=\"width: 70px\">All the same</label><input type=\"checkbox\" name=\"border_" + id + "_allthesame\"  onchange=\"cmi = css_borderInputs['" + me.id + "'];cmi.toggleallthesame()\" /></p>";
        ret += "<p><input type=\"button\" name=\"submit\" onclick=\"cmi = css_borderInputs['" + me.id + "'];cmi.updateandclose()\" value=\" OK \" /></p>";
        ret += "</div></div>";
        
        return ret;
    }
    
    this.getvalue = function()
    {
        ats = findObj("border_" + me.id + "_allthesame");
        
        mts = findObj("border_" + me.id + "_top_size");
        mtu = findObj("border_" + me.id + "_top_units");
        mtst = findObj("border_" + me.id + "_top_style");
        mtc = findObj("border_" + me.id + "_top_color");
        
        if (ats.checked)
        {
            ret = "border: " + mts.value + mtu.options[mtu.selectedIndex].value + " " + mtst.options[mtst.selectedIndex].value + " " + mtc.value + ";";
        }
        else
        {
            mrs = findObj("border_" + me.id + "_right_size");
            mru = findObj("border_" + me.id + "_right_units");
            mrst = findObj("border_" + me.id + "_right_style");
            mrc = findObj("border_" + me.id + "_right_color");

            mbs = findObj("border_" + me.id + "_bottom_size");
            mbu = findObj("border_" + me.id + "_bottom_units");
            mbst = findObj("border_" + me.id + "_bottom_style");
            mbc = findObj("border_" + me.id + "_bottom_color");

            mls = findObj("border_" + me.id + "_left_size");
            mlu = findObj("border_" + me.id + "_left_units");
            mlst = findObj("border_" + me.id + "_left_style");
            mlc = findObj("border_" + me.id + "_left_color");

            if (!mts.value) mts.value = 0;
            if (!mrs.value) mrs.value = 0;
            if (!mbs.value) mbs.value = 0;
            if (!mls.value) mls.value = 0;

            ret = "border-top: " + mts.value + mtu.options[mtu.selectedIndex].value +  " " + mtst.options[mtst.selectedIndex].value + " " + mtc.value + ";";
            ret += "border-right: " + mrs.value + mru.options[mru.selectedIndex].value +  " " + mrst.options[mrst.selectedIndex].value + " " + mrc.value + ";";
            ret += "border-bottom: " + mbs.value + mbu.options[mbu.selectedIndex].value +  " " + mbst.options[mbst.selectedIndex].value + " " + mbc.value + ";";
            ret += "border-left: " + mls.value + mlu.options[mlu.selectedIndex].value +  " " + mlst.options[mlst.selectedIndex].value + " " + mlc.value + ";";
        }
        
        return ret;
    }
    
    this.parsevalue = function(value)
    {
        cmi = findObj(me.id);
 
        mts = findObj("border_" + me.id + "_top_size");
        mtu = findObj("border_" + me.id + "_top_units");
        mtst = findObj("border_" + me.id + "_top_style");
        mtc = findObj("border_" + me.id + "_top_color");

        mrs = findObj("border_" + me.id + "_right_size");
        mru = findObj("border_" + me.id + "_right_units");
        mrst = findObj("border_" + me.id + "_right_style");
        mrc = findObj("border_" + me.id + "_right_color");

        mbs = findObj("border_" + me.id + "_bottom_size");
        mbu = findObj("border_" + me.id + "_bottom_units");
        mbst = findObj("border_" + me.id + "_bottom_style");
        mbc = findObj("border_" + me.id + "_bottom_color");

        mls = findObj("border_" + me.id + "_left_size");
        mlu = findObj("border_" + me.id + "_left_units");
        mlst = findObj("border_" + me.id + "_left_style");
        mlc = findObj("border_" + me.id + "_left_color");

        vsplit = value.split(";");
        
        if ((vsplit.length == 1)||((vsplit.length==2)&&(vsplit[1]=="")))
        {
            vsplit2 = vsplit[0].split(":");
            me.setallthesame(true);
            
            vs21trim = vsplit2[1].trim();
            vsplit3 = vs21trim.split(" ");
            
            /*
            vsplit3 = vs21trim.split(" ");
            mts.value = vsplit3[0].trim();
            */
            
            vs30trim = vsplit3[0].trim();
            
            vsval = String(parseFloat(vs30trim));
            vsunits = vs30trim.substring(vsval.length);
            vsunits = vsunits.trim();
            
            if (!vsval) vsval = 0;
            mts.value = vsval;
            
            for (i=0; i<mtu.options.length; i++)
            {
                if (mtu.options[i].value == vsunits)
                {
                    mtu.selectedIndex = i;
                    break;
                }
            }

            for (i=0; i<mtst.options.length; i++)
            {
                if (mtst.options[i].value == vsplit3[1])
                {
                    mtst.selectedIndex = i;
                    break;
                }
            }

            mtc.value = vsplit3[2];

        }
        else
        {
            for (mi = 0; mi<vsplit.length; mi++)
            {
                if (vsplit[mi])
                {
                    vsplit2 = vsplit[mi].split(":");
                    me.setallthesame(false);
                    vs20trim = vsplit2[0].trim();
                    vs20split = vs20trim.split("-");
                    
                    tgs = findObj("border_" + me.id + "_" + vs20split[1] + "_size");
                    tgu = findObj("border_" + me.id + "_" + vs20split[1] + "_units");
                    tgst = findObj("border_" + me.id + "_" + vs20split[1] + "_style");
                    tgc = findObj("border_" + me.id + "_" + vs20split[1] + "_color");
                    
                    vs21trim = vsplit2[1].trim();
                    vsplit3 = vs21trim.split(" ");
                    /*
                    vsplit3 = vs21trim.split(" ");
                    tgs.value = vsplit3[0].trim();
                    
                    for (i=0; i<tgu.options.length; i++)
                    {
                        if (tgu.options[i].value == vsplit3[1].trim())
                        {
                            tgu.selectedIndex = i;
                            break;
                        }
                    }
                    */
                    vs30trim = vsplit3[0].trim();
                    
                    vsval = String(parseFloat(vs30trim));
                    vsunits = vs30trim.substring(vsval.length);
                    vsunits = vsunits.trim();
            
                    if (!vsval) vsval = 0;
                    tgs.value = vsval;
                    
                    for (i=0; i<tgu.options.length; i++)
                    {
                        if (tgu.options[i].value == vsunits)
                        {
                            tgu.selectedIndex = i;
                            break;
                        }
                    }
                    
                    for (i=0; i<tgst.options.length; i++)
                    {
                        if (tgst.options[i].value == vsplit3[1])
                        {
                            tgst.selectedIndex = i;
                            break;
                        }
                    }

                    tgc.value = vsplit3[2];

                }
            }
        }
        
        cmi.value = value;
    }
    
    this.setallthesame = function(newvalue)
    {
        
        ats = findObj("border_" + me.id + "_allthesame");

        mrs = findObj("border_" + me.id + "_right_size");
        mru = findObj("border_" + me.id + "_right_units");
        mrst = findObj("border_" + me.id + "_right_style");
        mrc = findObj("border_" + me.id + "_right_color");

        mbs = findObj("border_" + me.id + "_bottom_size");
        mbu = findObj("border_" + me.id + "_bottom_units");
        mbst = findObj("border_" + me.id + "_bottom_style");
        mbc = findObj("border_" + me.id + "_bottom_color");

        mls = findObj("border_" + me.id + "_left_size");
        mlu = findObj("border_" + me.id + "_left_units");
        mlst = findObj("border_" + me.id + "_left_style");
        mlc = findObj("border_" + me.id + "_left_color");

      if (newvalue)
        {
            
            mrs.disabled = true;
            mru.disabled = true;
            mrst.disabled = true;
            mrc.disabled = true;

            mbs.disabled = true;
            mbu.disabled = true;
            mbst.disabled = true;
            mbc.disabled = true;

            mls.disabled = true;
            mlu.disabled = true;
            mlst.disabled = true;
            mlc.disabled = true;
            
            ats.checked = true;
        }
        else
        {
            mrs.disabled = false;
            mru.disabled = false;
            mrst.disabled = false;
            mrc.disabled = false;

            mbs.disabled = false;
            mbu.disabled = false;
            mbst.disabled = false;
            mbc.disabled = false;

            mls.disabled = false;
            mlu.disabled = false;
            mlst.disabled = false;
            mlc.disabled = false;

            ats.checked = false;
       }
    }
    
    this.setdisplay = function(displayvalue)
    {
        dvm = findObj("dv_border_" + id);
        dvm.style.display = displayvalue;
    }
    
    this.toggleallthesame = function()
    {
        ats = findObj("border_" + me.id + "_allthesame");
        
        newval = (ats.checked) ? true : false;
        me.setallthesame(newval);
    }
    
    this.update = function()
    {
        imv = findObj(me.id);
        imv.value = me.getvalue();
        
        me.updatedisplayvalue();
    }
    
    this.updateandclose = function()
    {
        me.update();
        
        dvm = findObj("dv_border_ " + me.id);
        this.setdisplay("none");   
    }
    
    this.updatedisplayvalue = function()
    {
        imd = findObj("border_display_" + me.id);
        
        imd.value = me.getdisplayvalue();
    }
    
    var me = this;
    me.id = id;
    me.target = target;
    me.value = value;
    me.init();    
}
