// tjs 
// setting Opacity for CSS3 and non-CSS3 compliant browsers
// no tjs-dependency
//
// tjs (c) 2009 Konstantin Kirillov. MIT License.

tj$ = window.tj$ || {};

tj$.opacity = new ( function () {

  var UNKNOWN=0;
  var CSS3=1;
  var MOZILLA=2;
  var KHTML=3;
  var IE55P=4;

  var opacity=null; //do1L Make sure not to call too early.
  //Big credit to Tigirlas Igor: http://www.tigir.com/opacity.htm
  //kvk? now shure can run this function before page is loaded.
  function getOpacity(){
    //con("AppV="+navigator.appVersion);
    var t='string';
    var b=document.body;
    var s=b.style;
    //con("ver="+navigator.appVersion.match(/MSIE ([\d.]+);/)[1]);
    if (typeof s.opacity == t)return CSS3;        // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9)
    if (typeof s.MozOpacity == t)return MOZILLA;  // Mozilla 1.6 and less, Firefox 0.8 
    if (typeof s.KhtmlOpacity == t)return KHTML;  // Konqueror 3.1, Safari 1.1
    if (b.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5)return IE55P; // Internet Exploder 5.5+
    return UNKNOWN;
  }
  //Return 0 if no success, 1 if no problems:
  //Calls browser estimaiont only once and only after page is loaded.
  this.set = function (translucency,htmlEl){
     //Reference: http://www.w3schools.com/Css/css_image_transparency.asp
     //Thorough: http://www.tigir.com/opacity.htm
     //object.style.filter = 'alpha(opacity='+number+')' //alpha is not a null or an object
     //object.style.filter = "progid:DXImageTransform.Microsoft.Alpha(ñòðîêà ïàðàìåòðîâ)"
     //Samples: http://www.design-ireland.net/index.php?http%3A//www.design-ireland.net/alpha/controller/view_article.php%3Foid%3D00000000062
     if(opacity==null){
        opacity=getOpacity();
        if( opacity == null ) return;
     }   
  
     if(opacity==UNKNOWN)return 0;  //Give up. Do nothing.
     var tIE=translucency*100.0;
     try{
           var s=htmlEl.style;
           switch(opacity)
           {
                  case CSS3: s.opacity=translucency;
                            break;
                  case MOZILLA: s.MozOpacity=translucency;
                            break;
                  case IE55P: 
                           var alpha=htmlEl.filters['DXImageTransform.Microsoft.alpha'] || htmlEl.filters.alpha;
                           if(alpha) {
                              alpha.opacity=tIE;
                           }else{
                              s.filter+="progid:DXImageTransform.Microsoft.Alpha(opacity="+tIE+")";
                           }
                           break;
           } 
     }catch(err){
        //con("Failed to set opacity. "+err.description );
        return 0;
     } 
     return 1;
  };
})();


