// vim: set tabstop=4 shiftwidth=4 foldmethod=marker :
/**
 * Correctly handle PNG transparency in Win IE 5.5 or higher.
 *
 * @author Original code <http://homepage.ntlworld.com/bobosola>
 *      Updated 02-March-2004
 * @author Terry Chay <tychay@plaxo.com> Revised to fix image inputs
 * @todo escape attr.value
 */
var pngfix_blank = 'm/im/com/sp.gif';

// {{{ pngfix_xform(obj,src,shouldReplace)
function pngfix_xform(obj,src,shouldReplace)
{
    // Don't apply to non png {{{
    if (src.substring(src.length-3,src.length).toLowerCase() != 'png') {
        return;
    }
    // }}}
    //alert('PngFix_XForm: '+src);
    var blankImage = (shouldReplace) ? pngfix_blank : src;
    //var html = '<'+obj.tagName.toLowerCase();
    var style_string = '';
    var sizing_method = 'fixed';
    // transform all the attributes: {{{
    //for (name in obj) {
    for (i=0; i<obj.attributes.length; ++i) {
        var name = obj.attributes[i].name.toLowerCase();
        var value = obj[name];
        switch(name) {
            case 'src':
            obj.src = blankImage;
            //html += ' src="'+blankImage+'"';
            break;
            case 'sizing-method':
            sizing_method = value;
            break;
            case 'height':
            case 'width':
            if (!value) { break; }
            style_string += name.toLowerCase()+':'+value+'px;';
            break;
            case 'style':
            if (!value) { break; }
            style_string += value.cssText.toLowerCase()+';';
            break;
            default: break;
            //if (!value) { break; }
            //if (value=='null') { break; }
            //html += ' ' + name + '="' + value + '"';
        }
    }
    // }}}
    //html += ' style="'+style_string + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+ "',sizingMethod='" + sizing_method + "')" + '" />';
    obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"',sizingMethod='"+ sizing_method + "')";
    //obj.outerHTML = html;
    //alert(html);
}
// }}}
// {{{ pngfix()
function pngfix()
{
    // extra trap for Exploder < 7
    //if (!document.all) { return; }
    if (window.XMLHttpRequest) { return; }

    //var tags = document.getElementsByTagName('img');
    //for (var i=0; i<tags.length; ++i) {
        //var obj = tags.item(i); 
    for(var i=0; i<document.images.length; i++) {
        var obj = document.images[i];
        var src = obj.getAttribute('src');
        if (obj.getAttribute('src')) {
            pngfix_xform(obj,src,true);
        }
    }
    // We didn't get the form inputs
    var tags = document.getElementsByTagName('input');
    for (var i=0; i<tags.length; ++i) {
        var obj = tags.item(i);
        var src = obj.getAttribute('src');
        var input_type = obj.getAttribute('type');
        if (!input_type) { continue; }
        if (input_type.toLowerCase()!='image') { continue; }
        if (src) {
            pngfix_xform(obj,src,true);
        }
    }
}
// }}}
SafeAddOnload(pngfix);
