/* begin Page */
var artEventHelper = {
  'bind' : function (obj, evt, fn) {
    if (obj.addEventListener)
      obj.addEventListener(evt, fn, false);
    else if (obj.attachEvent)
      obj.attachEvent('on' + evt, fn);
    else
      obj['on' + evt] = fn;
  }
};

var artLoadEvent = (function() {
  var userAgent = navigator.userAgent.toLowerCase();
  var browser = {
    version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
    safari: /webkit/.test(userAgent),
    opera: /opera/.test(userAgent),
    msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
    mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
  };

  var list = [];

  var done = false;
  var ready = function () {
    if (done) return;
    done = true;
    for (var i = 0; i < list.length; i++)
      list[i]();
  };
  
  if (document.addEventListener && !browser.opera)
    document.addEventListener('DOMContentLoaded', ready, false);
  
  if (browser.msie && window == top) {
    (function () {
      try {
        document.documentElement.doScroll('left');
      } catch (e) {
        setTimeout(arguments.callee, 10);
        return;
      }
      ready();
    })();
  }
  
  if (browser.opera) {
    document.addEventListener('DOMContentLoaded', function () {
      for (var i = 0; i < document.styleSheets.length; i++) {
        if (document.styleSheets[i].disabled) {
          setTimeout(arguments.callee, 10);
          return;
        }
      }
      ready();
    }, false);
  }
  
  if (browser.safari) {
    var numStyles;
    (function(){
      if (document.readyState != 'loaded' && document.readyState != 'complete') {
        setTimeout(arguments.callee, 10);
        return;
      }
      if ('undefined' == typeof numStyles) {
        numStyles = document.getElementsByTagName('style').length;
        var links = document.getElementsByTagName('link');
        for (var i = 0; i < links.length; i++) {
          numStyles += (links[i].getAttribute('rel') == 'stylesheet') ? 1 : 0;
        }
        if (document.styleSheets.length != numStyles) {
          setTimeout(arguments.callee, 0);
          return;
        }
      }
      ready();
    })();
  }

  artEventHelper.bind(window, 'load', ready);

  return ({
    add: function(f) {
      list.push(f);
    }
  })
})();

(function () {
  // fix ie blinking
  var m = document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand;
  try{ if(!!m) { m("BackgroundImageCache", false, true); } }
  catch(oh){};
})();

function xGetElementsByClassName(clsName, parentEle, tagName) {
  var elements = null;
  var found = [];
  var slash = String.fromCharCode(92);
  var re = new RegExp(slash + "b" + clsName + slash + "b");
  if (!parentEle) parentEle = document;
  if (!tagName) tagName = '*';
  elements = parentEle.getElementsByTagName(tagName);
  if (elements) {
    for (var i = 0; i < elements.length; ++i) {
      if (elements[i].className.search(re) != -1) {
        found[found.length] = elements[i];
      }
    }
  }
  return found;
}

var styleUrlCached = null;
function GetStyleUrl() {
  if (null == styleUrlCached) {
    var ns;
    styleUrlCached = '';
    ns = document.getElementsByTagName('link');
    for (var i = 0; i < ns.length; i++) {
      var l = ns[i];
      if (l.href && /style\.css(\?.*)?$/.test(l.href)){
        return styleUrlCached = l.href.replace(/style\.css(\?.*)?$/,'');
	  }
    }
    
	ns = document.getElementsByTagName('style');
	for (var i = 0; i < ns.length; i++) {
      var matches = new RegExp('import\\s+"([^"]+\\/)style\\.css"').exec(ns[i].innerHTML);
      if (null != matches && matches.length > 0)
        return styleUrlCached = matches[1];
    }
  }
  return styleUrlCached;
}


function artButtonSetupJsHover(btn)
{
  artEventHelper.bind(btn, 'mouseover', function() {
    var spans = btn.getElementsByTagName("span");
    if (spans.length > 0)
      spans[0].className += " hover";
  });
  artEventHelper.bind(btn, 'mouseout', function() {
    var spans = btn.getElementsByTagName("span");
    if (spans.length > 0)
      spans[0].className = spans[0].className.replace(/hover/, "");
  });
}

function artButtonsSetupJsHover() {
  var elements = xGetElementsByClassName("btn", document, "span");
  for (var i = 0; i < elements.length; i++) {
    if (!elements[i].tagName) continue;
    artButtonSetupJsHover(elements[i].parentNode);
  }
}
artLoadEvent.add(artButtonsSetupJsHover);

/* end Page */

/* begin Menu */
function Insert_Separators()
{
  var menus = xGetElementsByClassName("artmenu", document);
  for (var i = 0; i < menus.length; i++) {
    var menu = menus[i];
    var childs = menu.childNodes;
    var listItems = [];
    for (var j = 0; j < childs.length; j++){
      var el = childs[j];
      if (String(el.tagName).toLowerCase() == "li")listItems.push(el);
    }
    for (var j = 0; j < listItems.length - 1; j++){
      var span = document.createElement('span');
      span.className = 'separator';
      var li = document.createElement('li');
      li.appendChild(span);
      listItems[j].parentNode.insertBefore(li, listItems[j].nextSibling);
    }
  }
}
artLoadEvent.add(Insert_Separators);

function Menu_IE6Setup() {
  var isIE6 = navigator.userAgent.toLowerCase().indexOf("msie") != -1 
    && navigator.userAgent.toLowerCase().indexOf("msie 7") == -1;
  if (!isIE6) return;
  var aTmp2, i, j, oLI, aUL, aA;
  var aTmp = xGetElementsByClassName("artmenu", document, "ul");
  for (i=0;i<aTmp.length;i++) {
    aTmp2 = aTmp[i].getElementsByTagName("li");
    for (j=0;j<aTmp2.length;j++) {
      oLI = aTmp2[j];
      aUL = oLI.getElementsByTagName("ul");
      if (aUL && aUL.length) {
        oLI.UL = aUL[0];
        aA = oLI.getElementsByTagName("a");
        if (aA && aA.length)
          oLI.A = aA[0];
        oLI.onmouseenter = function() {
          this.className += " artmenuhover";
          this.UL.className += " artmenuhoverUL";
          if (this.A) this.A.className += " artmenuhoverA";
        };
        oLI.onmouseleave = function() {
          this.className = this.className.replace(/menuhover/,"");
          this.UL.className = this.UL.className.replace(/menuhoverUL/,"");
          if (this.A) this.A.className = this.A.className.replace(/menuhoverA/,"");
        };
      }
    }
  }
}
artLoadEvent.add(Menu_IE6Setup);
/* end Menu */

/* CONFIGURATION AREA */
/**
 *	html structure should be like this:
 *	<container id="<tab_prefix>_menu">
 *		<a href="#" class="active" rel="<tab identifier1>">Link1</a>
 *		<a href="#" rel="<tab identifier2>">Link2</a>
 *		...
 *	</container>
 *	<container id="<tab_prefix>_content">
 *		<container id="<tab_prefix>_<tab identifier1>">
 *				Tab 1 content
 *		</container>
 *		<container id="<tab_prefix>_<tab identifier2>">
 *				Tab 2 content
 *		</container>
 *		... 
 *	</container>       
 *
 *	Variables:
 *	
 *	prefix:  <tab_prefix>
 *	activeTag: 'this' (will add class to current element) / 'tag' (first parent with such tag will be taken)
 *  activeClass: 'active'
*/

var config = {
	tabs: new Array(
		{
			prefix:'_tabtoggler1',
			activeTag: 'this',
			activeClass: 'active', 
			contentTag: 'div'
		},

		{
			prefix:'_tabtoggler2',
			activeTag: 'this', 
			activeClass: 'active', 
			contentTag: 'div'
		}
	)
};

addEvent('load', initTabs);


/* CODE AREA */
var TabsToggler = {};
function initTabs(){
	if(!config.tabs) return;
	for(var i=0; i < config.tabs.length; i++){
		var tab = config.tabs[i];
		var menu = document.getElementById( tab.prefix + '_menu' );
		var content = document.getElementById( tab.prefix + '_content' );
		if( !menu || !content ) continue;
		
		var oTab = tab;
		oTab.active = null;
		oTab.elements = {};
		
		var links = menu.getElementsByTagName("A");
		for(var j=0; j<links.length; j++){
			var linkEl = links[j];
			var activeEl = (tab.activeTag == 'this')? linkEl : getParentByTag(linkEl, tab.activeTag);
			var tabID = linkEl.getAttribute('rel');
			if( activeEl.className.lastIndexOf(tab.activeClass) > -1 ){
				oTab.active = tabID;
			}
			var tabContent = document.getElementById( tab.prefix + '_' + tabID );
			if( tabContent ){
				tabContent.style.display = (oTab.active && oTab.active == tabID)? 'block' : 'none';
			}
			
			linkEl.setAttribute('prefix', tab.prefix);
			oTab.elements[tabID] = {
				tabID: tabID,
				linkEl: linkEl,
				activeEl: activeEl,
				content: tabContent
			};
			
			linkEl.onclick = function(){
				var prefix = this.getAttribute('prefix');
				var tabID = this.getAttribute('rel');
				var oTab = TabsToggler[prefix];
				
				var activeTab = oTab.elements[ oTab.active ];
				activeTab.activeEl.className = activeTab.activeEl.className.replace(' '+oTab.activeClass, '').replace(oTab.activeClass, '');
				activeTab.content.style.display = 'none';
				
				oTab.active = tabID;
				var activeTab = oTab.elements[ oTab.active ];
				if( activeTab.activeEl.className.lastIndexOf(oTab.activeClass) == -1  )
					activeTab.activeEl.className = ' ' + oTab.activeClass;
				activeTab.content.style.display = 'block';
				
					// added by David Singer ot handle resize event
					pos = jQuery('.sidebar-middle-ads-holder').position();
					jQuery(".sidebar-middle-ads").css({
						"left": pos.left + 10 +"px",
						"top":  pos.top + 10 +"px",
						"position": 'absolute'
					});
				return false;
			}
		} // end for( links )

		TabsToggler[ tab.prefix ] = oTab;
		
	} // end for( config.tabs )

		// added by David Singer ot handle resize event
		pos = jQuery('.sidebar-middle-ads-holder').position();
		jQuery(".sidebar-middle-ads").css({
			"left": pos.left + 10 +"px",
			"top":  pos.top + 10 +"px",
			"position": 'absolute'
		});
}

function getParentByTag( node, tag ){
	if(typeof(node.tagName) != 'undefined'){
		if(node.tagName.toUpperCase() == tag.toUpperCase()){
			return node;
		}
		else if(typeof(node.parentNode) != 'undefined'){
			return getParentByTag(node.parentNode, tag);
		}
	}
	return null;
}

/* common */
function addEvent(event,initMethod) {
	if (window.addEventListener){
		window.addEventListener(event, initMethod, false);
	}
	else if (window.attachEvent){
		window.attachEvent("on" + event, initMethod);
	}
}
