/*
 Rounded.js by martin
*/

var d = document;

function roundedStyle(){
 var RS = d.getElementsByClassName("rounded");
 var RS_Content = [];
 var cord = 0.9;
 for(var i=0,l=RS.length;i<l;i++){
  var contents = RS[i].innerHTML;
  var upper = '<span><span></span><span><span></span></span><span><span></span></span>'
   + '<span><span></span></span><span><span></span></span></span>';
  var lower = '<span><span><span></span></span><span><span></span></span>'
   + '<span><span></span></span><span><span></span></span><span></span></span>';

  var pbg = backgroundRGB(RS[i].parentNode), bg = backgroundRGB(RS[i]);
  var border = "rgb("+parseInt(bg[0] * cord)+", "+parseInt(bg[1] * cord)+", "+parseInt(bg[2] * cord)+")";
  var alias = "rgb("+parseInt(bg[0]/cord)+", "+parseInt(bg[1]/cord)+", "+parseInt(bg[2]/cord)+")";
  var bg = "rgb("+bg[0]+","+bg[1]+","+bg[2]+")";
  RS[i].style.cssText += 'background-color:transparent; padding: 0;';

  RS[i].innerHTML = upper;
  var base = 'display:block; height:1px; overflow:hidden; font-size:1px; background:'+bg+';'
   + ' border-width:0 1px; border-color:'+border+'; border-style: solid;';
  
  var c = RS[i].getElementsByTagName("SPAN");
  c[0].style.cssText = 'display: block;';
  c[1].style.cssText = base + 'border-color:'+alias+'; padding:0 1px; margin:0 4px; background:'+border+';';
  c[2].style.cssText = base + 'border-color:'+alias+'; padding:0 2px; margin:0 2px; background:'+border+';';
  c[3].style.cssText = base + 'border-color: '+alias+';';
  c[4].style.cssText = base + 'border-color:'+alias+'; padding:0 1px; margin:0 1px; background:'+border+';';
  c[5].style.cssText = base + 'border-color: '+alias+';';
  c[6].style.cssText = base + 'margin:0 1px;'; c[7].style.cssText = base + 'border-color: '+alias+';';
  c[8].style.cssText = base + 'border-color: '+alias+';'; c[9].style.cssText = base + 'border-color: '+border+';';
  
  RS[i].innerHTML += lower;
  c[10].style.cssText = c[0].style.cssText;  c[11].style.cssText = c[8].style.cssText;
  c[12].style.cssText = c[9].style.cssText;  c[13].style.cssText = c[6].style.cssText;
  c[14].style.cssText = c[7].style.cssText;  c[15].style.cssText = c[4].style.cssText;
  c[16].style.cssText = c[5].style.cssText;  c[17].style.cssText = c[2].style.cssText;
  c[18].style.cssText = c[3].style.cssText;  c[19].style.cssText = c[1].style.cssText;
  
  if(arguments[0]){
   var pad = arguments[0];
  } else { var pad = '10px'; }
  RS_Content[i] = Element("DIV",
   { position:"relative", border:"solid 1px "+border, borderWidth:"0 1px", padding:""+pad, background:bg });
  RS_Content[i].innerHTML = contents;

  RS[i].insertBefore(RS_Content[i], c[10]);
 }
}

function backgroundRGB(ob){
 if(ob.currentStyle){
  var bg = ob.currentStyle.backgroundColor;
 } else if(window.getComputedStyle){
  var bg = window.getComputedStyle(ob, null).getPropertyValue('background-color');
 } else {
  var bg = ob.style.backgroundColor;
 }
 bg = (bg==''||bg=='transparent'||bg=='inherit') ? "rgb(246, 245, 247)" : bg;
 
 if(bg.toLowerCase().match(/#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/)){
  return [ Number(hex2dec(RegExp.$1)), Number(hex2dec(RegExp.$2)), Number(hex2dec(RegExp.$3)) ];
 }
 if(bg.toLowerCase().match(/rgb\((\d+?), (\d+?), (\d+?)\)/)){
  return [ Number(RegExp.$1), Number(RegExp.$2), Number(RegExp.$3) ];
 }
 return [ Number(246), Number(245), Number(247) ];
}
function dec2hex(d){ return (d < 16) ? ("0" + Number(d).toString(16)) : Number(d).toString(16);}
function hex2dec(h){ return Number(parseInt(h, 16));}
function o(a){
 if(typeof a == "object") return a;
 if(typeof a == "string"){
  if(a.match(/(^[a-zA-Z0-9_-]+$)/)){ // Unique ID
   return d.getElementById(a);
  } else if(a.match(/([a-zA-Z0-9\*]*?)\.([a-zA-Z0-9_-]+$)/)){ // tagName.className
   return d.getElementsByClassName($2, d, $1);
  }
 }
 return null;
};
function Element(tag, prop, parent, append){
 var el = d.createElement(tag.split(/[#\.]/)[0]);
 var es = el.style;
 es.position = "absolute";
 es.left = es.top = es.padding = es.margin = 0;
 es.width = el.offsetWidth || "auto" || 0;
 es.height = el.offsetHeight || "auto" || 0;
  
 if(tag.split(/#/)[1]) el.id = tag.split(/#/)[1];
 if(tag.split(/\./)[1]) el.className = tag.split(/\./)[1];
 if(prop) for (var i in prop) es[i] = prop[i];
 if(append){
  if(parent) parent.appendChild(el); else d.body.appendChild(el);
 }
 return el;
}
d.getElementsByClassName = function(className, tagName){
 var cls, gets = [];
 var obs = d.getElementsByTagName((!tagName?"*":tagName));
 for (var i=0,l=obs.length; i < l; i++){
  var cls = obs[i].className.split(/\s+/);
  for (var j=0,k=cls.length; j < k; j++){
   if(cls[j]==className){
    gets.push(obs[i]); break;
   }
  }
 }
 return gets;
}
