'use strict';
(function ()
{
    var YD = YAHOO.util.Dom, me = {};
    function MPR(o)
    {
        var w2 = 0, i = 0, j = 0, tw = 0,
        p = o.parentNode,
        w = parseInt(YD.getStyle(p, 'width'), 10),
        h = p.offsetHeight;

        //YD.setStyle(p, 'height', h + 'px');

        //dom Event change width
        tw = Math.round(w / 8);
        for (j = (w - tw); j >= 50; j = j - tw)
        {
            YD.setStyle(p, 'width', j + 'px');

            if (p.offsetHeight > h)
            {
                tw = j + tw;
                //YD.setStyle(p, 'width', tw + 'px');
                break;
            }
        }

        tw -= 4;
        for (i = tw; i >= 50; i = i - 4)
        {
            YD.setStyle(p, 'width', i + 'px');

            if (p.offsetHeight > h)
            {
                w2 = 4 + i;
                YD.setStyle(p, 'width', w2 + 'px');
                break;
            }
        }

        if ((parseInt(o.innerHTML, 10) === 1) && w2)
        {
            YD.setStyle(p.parentNode.parentNode, 'width', (w2 + 6) + 'px');
        }
    }

    function bdoblink(id)
    {
        var o = YD.get(id), d = o.lastChild;

        YD.setStyle(o, 'width', o.offsetWidth + 'px');
        YD.setStyle(o, 'height', o.offsetHeight + 'px');

        function Step()
        {
            if (YD.getStyle(d, 'display') === 'none')
            {
                YD.setStyle(d, 'display', '');
                setTimeout(Step, 1000);
            }
            else
            {
                YD.setStyle(d, 'display', 'none');
                setTimeout(Step, 500);
            }
        }

        return new Step();
    }

    function Parse_bdo()
    {
        var doc = document, i, attrclass,
        elements = doc.getElementsByTagName('bdo'),
        nrelements = elements.length;

        for (i = 0; i < nrelements; i += 1)
        {
            attrclass = YD.getAttribute(elements[i], 'className');
            if (attrclass)
            {
                switch (attrclass)
                {
                    case 'bdogasida':
                        //gasidas[embeds.length] = {o : elements[i]};
                        MPR(elements[i]);
                        break;

                    case 'bdoblink':
                        bdoblink(elements[i].innerHTML);
                        break;
                }
            }
        }

        /*if (gasidas.length > 0)
        {
            for (i = 0; i < gasidas.length; i += 1)
            {
                gasidas[i].o.parentNode.removeChild(gasidas[i].o);
            }
        }*/
    }

    mwagasida = me;

    return new Parse_bdo();

}());

