function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
	elm.addEventListener(evType, fn, useCapture);
	return true;
	} else if (elm.attachEvent) {
	var r = elm.attachEvent('on' + evType, fn);
	return r;
	} else {
	elm['on' + evType] = fn;
	}
}

//* tabs function on */
function Tabs(ulId, divId, activeN){
	var UL,DIV,T = this;
	
	this.show = function(n){
		hideAll();
		getChildren(DIV)[n].style.display="block";
		var c = getChildren(UL);
		c[n].className="active "+(n==0?"activeL":((n==c.length-1)?"activeR":"activeC"));
		
	}
	
	function hideAll(){
		var ulc = getChildren(UL);
		var divc = getChildren(DIV);
		for(var i=0;i<ulc.length;i++){
			ulc[i].className="";
			divc[i].style.display="none";
		}
	}
	
	function getChildren(o){
		var arr=[], c = o.childNodes;
		for(var i=0;i<c.length;i++) if(c[i].tagName) arr.push(c[i]);
		return arr;
	}
	
	function init(){
		UL = document.getElementById(ulId);
		DIV = document.getElementById(divId);
		if(!UL || !DIV) return;
		var fix=0,i,li = getChildren(UL),w = Math.ceil(UL.offsetWidth/li.length), f = UL.offsetWidth%li.length;
		
		for(i=0;i<li.length;i++){
			li[i].onclick = new Function("this.tabs.show("+i+")");
			li[i].tabs = T;
			fix = (i==li.length-1)?f:0;
			if(f==0) fix+=1;
			li[i].style.width=(w + fix)+"px";
		}
		T.show(activeN||0)
	}
	init();
}

/* tabs function off */
function showComment(id){
var react = document.getElementById(id);
if (react.style.display == "none") {react.style.display = "block"}
else {react.style.display = "none"}
}

var Effect = {
  _elementDoesNotExistError: {
    name: 'ElementDoesNotExistError',
    message: 'The specified DOM element does not exist, but is required for this effect to operate'
  },
  tagifyText: function(element) {
    if(typeof Builder == 'undefined')
      throw("Effect.tagifyText requires including script.aculo.us' builder.js library");
      
    var tagifyStyle = 'position:relative';
    if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle += ';zoom:1';
    
    element = $(element);
    $A(element.childNodes).each( function(child) {
      if(child.nodeType==3) {
        child.nodeValue.toArray().each( function(character) {
          element.insertBefore(
            Builder.node('span',{style: tagifyStyle},
              character == ' ' ? String.fromCharCode(160) : character), 
              child);
        });
        Element.remove(child);
      }
    });
  },
  multiple: function(element, effect) {
    var elements;
    if(((typeof element == 'object') || 
        (typeof element == 'function')) && 
       (element.length))
      elements = element;
    else
      elements = $(element).childNodes;
      
    var options = Object.extend({
      speed: 0.1,
      delay: 0.0
    }, arguments[2] || {});
    var masterDelay = options.delay;

    $A(elements).each( function(element, index) {
      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
    });
  },
  PAIRS: {
    'slide':  ['SlideDown','SlideUp'],
    'blind':  ['BlindDown','BlindUp'],
    'appear': ['Appear','Fade']
  },
  toggle: function(element, effect) {
    element = $(element);
    effect = (effect || 'appear').toLowerCase();
    var options = Object.extend({
      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
    }, arguments[2] || {});
    Effect[element.visible() ? 
      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
  }
};
