// Two digit padding
function zero_pad(num, radix) {
   if(parseInt(num,radix) < radix) {
      return '0' + num;
   }
   return '' + num; // Force string type
}

function get_style(element, property) {
   if(typeof(element) == "string") {
      var elem = document.getElementById(element);
   }
   else
   {
      elem = element;
   }
   if(elem) {
      if(elem.currentStyle) { // Internet Explorer
         return elem.currentStyle[property];
      }
      else if(window.getComputedStyle) { // Opera
         return window.getComputedStyle(elem, null).getPropertyValue(property);
      }
   }
}

var fade_element = new Array();
function content_fade(element) {
   if(!element && !fade_element[element]) {
     return false;
   }
   if(!fade_element[element]) {
      fade_element[element] = document.getElementById(element);
      fade_element[element].style.color = get_style(element, 'backgroundColor');
   }
   var colour = get_style(element, 'color');
   var result = new Array(parseInt(colour.substring(1, 3), 16), parseInt(colour.substring(3, 5), 16), parseInt(colour.substring(5, 7), 16));
   result[0] -= 15;
   result[1] -= 15;
   result[2] -= 15;
   if(result[0] < 0) {
      result[0] = 0;
   }
   if(result[1] < 0) {
      result[1] = 0;
   }
   if(result[2] < 0) {
      result[2] = 0;
   }
   fade_element[element].style.color = "#" + zero_pad(result[0].toString(16), 16) + zero_pad(result[1].toString(16), 16) + zero_pad(result[2].toString(16), 16);
   if(fade_element[element].style.color != "#000000") {
      setTimeout('content_fade("' + fade_element[element].id + '")', result[0] / 3.2);
   }
   else
   {
      delete fade_element[element];
   }
}
function debug_print(input) {
   document.getElementById('debug').innerHTML += input + '<br />';
}

function opacity_fade(id, up) {
   var element = document.getElementById(id);
   if(up) {
      if(get_style(id, 'opacity') == 1) {
         element.style.opacity = 0;
      }
      element.style.opacity = parseFloat(element.style.opacity) + 0.1;
   }
   else
   {
      element.style.opacity = parseFloat(get_style(id, 'opacity')) - 0.1;
      if(element.style.opacity < 0) {
        element.style.opacity = 0;
      }
   }
   if(element.style.opacity != 1 && element.style.opacity != 0) {
      setTimeout('opacity_fade("' + id + '", ' + up + ')', 30);
   }
   if(element.style.opacity == 0) {
      element.style.display = 'none';
   }
}
function doSpoiler(button) {
   var element = button.parentNode.lastChild.previousSibling;
   if(button.value == "Show") {
      var width = get_style(element.id, 'width') / 10;
      var height = get_style(element.id, 'height') / 10;
      if(width > 100 && height > 10) {
         for(var i = 10; i > 0; --i) {
            element_rescale(element.id, width, height);
         }
      }
      element.style.display = 'block';
      opacity_fade(element.id, 1);
      button.value = "Hide";
      content_fade(element.id, 1);
      button.disabled = 'true';
      setTimeout('button_toggle("' + element.id + '");', 500);
   }
   else
   {
      opacity_fade(element.id, 0);
      button.disabled = 'true';
      button.value = "Show";
      setTimeout('button_toggle("' + element.id + '");', 500);
   }
}

function button_toggle(button) {
   if(document.getElementById(button).parentNode.getElementsByTagName('input')[0].disabled == true) {
      document.getElementById(button).parentNode.getElementsByTagName('input')[0].disabled = false;
   }
   else
   {
      document.getElementById(button).parentNode.getElementsByTagName('input')[0] = true;
   }
}

function image_rescale(element, up) {
   images = element.getElementsByTagName('img');
   if(images && images.length) {
      if(document.getElementsByClassName) {
         var width = element.clientWidth - element.parentNode.getElementsByClassName('commentprofile')[0].clientWidth;
      }
      else
      {
         var elements = element.parentNode.getElementsByTagName('div');
         for(var i = 0; i < elements.length; ++i) {
            if(elements[i].className == "commentprofile") {
               var width = element.clientWidth - elements[i].clientWidth;
               break;
            }
         }
      }
      for(var i = 0; i < images.length; ++i) {
         if(images[i].width > width) {
            images[i].style.width = "95%";
            images[i].onclick = new Function('image_overlay(this.parentNode.parentNode, ' + i + ');');
          //  images[i].onclick = 'image_overlay(this.parentNode.parentNode, ' + i + ');'; //this.style.width = this.style.width == 'auto' ? '95%' : 'auto'";
         }
      }
   }
}

var gallery = new Array();
function image_overlay(post, id) {
   var overlay;
   var width;
   var height;
   var navigation = '';
   var images;
   var content;
   if(typeof(post) == "string") {
      post = document.getElementById(post);
   }
   images = post.getElementsByTagName('img');
   if(images && images.length) {
      overlay = document.getElementById('overlay');
      width = document.getElementsByTagName('body')[0].clientWidth;
      height = document.getElementsByTagName('body')[0].clientWidth;
      if(overlay) {
         overlay.innerHTML = '';
         content = 'Viewing image: <b>' + images[id].src + '</b><br />';
         if(images.length > 1) {
            content += 'Image ' + (id + 1) + ' of ' + images.length + '<br /><br />';
         }
         if(id > 0) {
            navigation += '<div style="margin-left: 30%; float: left;"><a href="#" onclick="image_overlay(' + post.id + ', ' + (id - 1) + '); return false;">&laquo; Previous</a></div>';
         }
         if(id + 1 < images.length) {
            navigation += '<div style="margin-right: 30%; float: right;"><a href="#" onclick="image_overlay(' + post.id + ', ' + (id + 1) + '); return false;">Next &raquo;</a></div>';
         }
         if(navigation) {
            navigation += '<br /><br />';
         }
         content += navigation;
         content += '<a href="#" onclick="overlay_close(); return false;"><img id="overlay_img" src="' + images[id].src + '" /></a>';
         overlay.innerHTML = content;
         if(document.getElementById('overlay_img').width > width) {
            document.getElementById('overlay_img').style.width = "99%";
         }
         overlay.style.display = 'block';
         if(window.pageYOffset) {
            overlay.style.top = window.pageYOffset + 5;
         }
         else
         {
            overlay.style.top = document.documentElement.scrollTop + 5;
         }
         overlay.innerHTML += navigation;
         overlay.style.opacity = '1';
      }
   }
   document.getElementById('main').style.opacity = 0.3;
}

function overlay_close() {
   document.getElementById('main').style.opacity = 1;
   document.getElementById('overlay').style.display = 'none';
}
