/*
   // Copyright (C) 2006, 2007 - SYNTAXXX - Alex. HANNEL
   // info@syntaxxx.at

	// syn_func_png.js
*/

	function syn_page_png()
	{
      if(typeof(syn_js_support_png) == 'undefined' || !syn_js_support_png)
      {
         return false;
      }
      
		if(!document.images)
		{
			alert("NO IMAGE SUPPORT");
		}
			else
		{
			var ver = parseInt(navigator.appVersion, 10);

			if ((navigator.appName == "Microsoft Internet Explorer") && (ver >= 4))
			{
            var stop   = false;
            var index  = 0;

            while(stop == false)
            {
               try
               {
                  if(typeof(document.images[index]) != 'undefined')
                  {
               	  throw "true";
                  }
               	  else
                  {
               	  throw "false";
                  }
               }

               catch(e)
               {
                  if(e == "true")
                  {
                     syn_png_replace(document.images[index], "img");
                  }
                     else
                  {
                     break;
                  }
               }

               index++;
            }

            var index  = 0;

            if(typeof(document.getElementsByTagName("div")) != 'undefined')
            {
               for(var idx in document.getElementsByTagName("div"))
               {
                  if(idx == 'length' || idx == '')
                  {
                     continue;
                  }

                  if(typeof(document.getElementsByTagName("div")[idx].style.backgroundImage) != 'undefined')
                  {
                     syn_png_replace(document.getElementsByTagName("div")[idx], "div");
                  }
               }
            }
               else
            {
               stop = true;
            }

			}
		}
   		
      return true;
	}
	
	function syn_png_replace(tag, mode)
	{
      var ver = parseInt(navigator.appVersion, 10);

      if ((navigator.appName != "Microsoft Internet Explorer") || (ver < 4))
      {
         return false;
      }
      
      if(typeof(syn_js_support_png) == 'undefined' || !syn_js_support_png)
      {
         return false;
      }

      if(typeof(mode) == 'undefined' || !mode)
      {
         return false;
      }
      
      if(typeof(tag) == 'string')
      {
         if(typeof(document.getElementById(tag)) == 'object')
         {
            if(typeof(document.getElementById(tag).style) == 'undefined')
            {
               return false;
            }
               else
            {
               tag = document.getElementById(tag);
            }
         }
            else
         {
            return false;
         }
      }

      switch(mode)
      {
         case "img":
            src = tag.src.toLowerCase();
            
            if(src.match(/.png/i))
            {
               f_begin = 'progid:DXImageTransform.Microsoft.';
               f_name  = 'AlphaImageLoader(src=\'';
               f_end   = '\', sizingMethod=scale, enabled=true)';

               with(tag)
               {
                  source = src;

                  src    = syn_js_support_png_spacer;

                  style.filter = f_begin + f_name + source + f_end;
               }
            }
            break;

         case "table":
         case "tr":
         case "td":
         case "div":
            source = tag.style.backgroundImage;

            if(source && source.match(/.png/i))
            {
               f_begin = 'progid:DXImageTransform.Microsoft.';
               f_name  = 'AlphaImageLoader(src=\'';
               f_end   = '\', sizingMethod=scale, enabled=true)';

               with(tag.style)
               {
                  source = source.replace(/\s/gi, '');
                  source = source.replace(/url\([\'|\"]*/gi, '');
                  source = source.replace(/[\'|\"]*\);/gi, '');
                  source = source.replace(/\)/gi, '');

                  if(typeof(tag.id) != 'undefined')
                  {
                     if(tag.id == 'nav' || tag.id == 'main')
                     {
                        source = '';
                     }
                  }
                  
                  removeAttribute('backgroundImage');
                  setAttribute('filter', f_begin + f_name + source + f_end, false);
               }
            }

            break;

         default:
            return false;
      }
      
      return true;
   }

