﻿function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{

    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    var imgUrl;
    if ((version >= 5.5) && (document.body.filters) && (version < 7)) 
    {
        for (var i = 0; i < document.images.length; i++)
        {
            var img = document.images[i]
            if (img.src.indexOf("?") > -1)
            {          	
                var src = img.src.split("?");
                var url = src[0];
                var pars = src[1].split("&");

                for (var j = 0; j < pars.length; j++)
                {
                    pars[j] = Url.encode(pars[j]);
                }
                imgUrl = url + "?" + pars.join("&");
            }
            else
            {
                imgUrl = img.src;
            }
         
            var imgName = img.src.toUpperCase();
            if (imgName.substring(imgName.length-3, imgName.length) == "PNG" || imgName.indexOf("IMAGEFORMAT=PNG") > -1)
            {
                var imgID = (img.id) ? "id='" + img.id + "' " : "";
                var imgClass = (img.className) ? "class='" + img.className + "' " : "";
                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
                var imgStyle = "display:inline-block;" + img.style.cssText;
                if (img.align == "left")
                    imgStyle = "float:left;" + imgStyle;
                if (img.align == "right")
                    imgStyle = "float:right;" + imgStyle;
                if (img.parentElement.href)
                    imgStyle = "cursor:hand;" + imgStyle;
                var strNewHTML = "<span " + imgID + imgClass + imgTitle
                    + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                    + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                    + "(src=\'" + imgUrl + "\', sizingMethod='scale');\"></span>";
                img.outerHTML = strNewHTML;
                i--;
            }
        }
    }    
}
window.attachEvent("onload", correctPNG);

  
  
var Url = {  
  
    // public method for url encoding  
    encode : function (string) {  
        return escape(this._utf8_encode(string));  
    },  
  
    // public method for url decoding  
    decode : function (string) {  
        return this._utf8_decode(unescape(string));  
    },  
  
    // private method for UTF-8 encoding  
    _utf8_encode : function (string) {  
        string = string.replace(/\r\n/g,"\n");  
        var utftext = "";  
  
        for (var n = 0; n < string.length; n++) {  
  
            var c = string.charCodeAt(n);  
  
            if (c < 128) {  
                utftext += String.fromCharCode(c);  
            }  
            else if((c > 127) && (c < 2048)) {  
                utftext += String.fromCharCode((c >> 6) | 192);  
                utftext += String.fromCharCode((c & 63) | 128);  
            }  
            else {  
                utftext += String.fromCharCode((c >> 12) | 224);  
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);  
                utftext += String.fromCharCode((c & 63) | 128);  
            }  
  
        }  
  
        return utftext;  
    },  
  
    // private method for UTF-8 decoding  
    _utf8_decode : function (utftext) {  
        var string = "";  
        var i = 0;  
        var c = c1 = c2 = 0;  
  
        while ( i < utftext.length ) {  
  
            c = utftext.charCodeAt(i);  
  
            if (c < 128) {  
                string += String.fromCharCode(c);  
                i++;  
            }  
            else if((c > 191) && (c < 224)) {  
                c2 = utftext.charCodeAt(i+1);  
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));  
                i += 2;  
            }  
            else {  
                c2 = utftext.charCodeAt(i+1);  
                c3 = utftext.charCodeAt(i+2);  
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));  
                i += 3;  
            }  
  
        }  
  
        return string;  
    }  
  
}  