/* Usage:
* pngFixer.path('http://www.cssispoetry.com/live/images/blank.gif'); - set the blank gif path
* pngFixer.init('img', 'div'); - feed nodeNames to be fixed - IDs and classes not yet supported
*
*/
(function() {
     // pngFixer v1.01 for Microsoft Internet Explorer
     // (c) 2009 Meder Omuraliev [url]http://www.medero.org[/url]
 
    var imagePath = 'images/blank.gif', // set the 1x1 transparent blank gif path
    ie6 = /*@cc_on!@*/false && !window.XMLHttpRequest,
    regex = {
        bg:/url\((.*)\)/,
        quotes:/['"]/g
    }
 
 
    var pngFixer = window.pngFixer =  {
    path: function( path ) {
        // setter method to change default image.
        imagePath = path;
    },
    init: function( s ) {
            if ( !ie6 ) { return; } // do not run unless it's IE6
        if ( !s.length ) { return; }
        s = s.split(',');
        for ( var i = 0, l = s.length, e; i<l; ++i ) {
        e = s[i].replace(/ /, ''); // trim whitespace
        // skip if not a string object/literal. duplicate nodes are not accounted for.
        if ( typeof e !== 'string' || e.constructor !== String ) { continue; }
 
        var els = document.getElementsByTagName( e );
        if ( !els.length ) { continue; }
 
        for ( var j = 0, jl = els.length, el; j<jl; ++j ) {
            el = els[j];
            pngFixer.fix( el );
        }
        }
    },
    fix: function ( el ) {
        var node = el.nodeName.toLowerCase(), replaced = el.nodeName.toLowerCase().match(/img|input/) && el.src && el.src.length;
        if ( replaced ) {
        var pngSrc = el.src;
        if ( pngSrc.indexOf('png') == -1 ) { return; }
        el.src = imagePath;
        el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pngSrc + '", sizingMethod="crop")';
        } else {
        var bg = el.currentStyle.backgroundImage;
        if ( bg.indexOf('png') == -1 ) { return; }
        var repeat = !(el.currentStyle.backgroundRepeat.match(/no-repeat|none/));
        if ( repeat ) {
            var pngSrc = el.currentStyle.backgroundImage.match(regex.bg);
            if ( !pngSrc || pngSrc.length < 1 ) { return; }
            pngSrc = pngSrc[1].replace(regex.quotes, '');
            el.style.backgroundImage = 'url(' + imagePath + ')';
            el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pngSrc + '", sizingMethod="scale")';
        } else {
            var pngSrc = el.currentStyle.backgroundImage.match(regex.bg);
            if ( !pngSrc || pngSrc.length < 1 ) { return; }
            pngSrc = pngSrc[1].replace(regex.quotes, '');
            el.style.backgroundImage = 'url(' + imagePath + ')';
            el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + pngSrc + '", sizingMethod="crop")';
        }
        }
    }
    }
   
})();