var funcDomReady='';
function onDomReady(func) {
        var oldonload = funcDomReady;
        if (typeof funcDomReady != 'function')
                funcDomReady = func;
        else {
                funcDomReady = function() {
                        oldonload();
                        func();
                }
        }
}
function init() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;
    if(funcDomReady)funcDomReady();
};
if (document.addEventListener) document.addEventListener("DOMContentLoaded", init, false);
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=\"__ie_onload\" defer=\"defer\" src=\"javascript:void(0)\"><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
    if (this.readyState == "complete")
	init();};
/*@end @*/
if (/WebKit/i.test(navigator.userAgent)) { // условие для Safari
    var _timer = setInterval(function() {
	if (/loaded|complete/.test(document.readyState)) {
	    clearInterval(_timer);
	    init(); // вызываем обработчик для onload
	}
    }, 10);
}
window.onload = init;

function insertJS(src,options) {
	var opt = {
		target: options && options.target ? options.target : document.getElementsByTagName('head')[0],
		complete: options && options.complete ? options.complete : function(){},
		inner: options && options.inner ? options.inner : null
	},
	s = document.createElement('script');
	s.setAttribute('type','text/javascript');
	s.setAttribute('src',src);
	if (opt.inner) try {s.innerHTML = opt.inner} catch(e){};
	if (-[1,]) s.onload = opt.complete;
	else {
		s.onreadystatechange = function() {
			if (this.readyState == "complete" || this.readyState == "loaded") {
				opt.complete();
			}
		};
	}
	opt.target.appendChild(s);
};

function getElementsByClass(classList, node) {           
	var node = node || document,
	list = node.getElementsByTagName('*'),
	length = list.length, 
	classArray = classList.split(/\s+/),
	classes = classArray.length,
	result = [], i,j
	for(i = 0; i < length; i++) {
		for(j = 0; j < classes; j++)  {
			if(list[i].className.search('\\b' + classArray[j] + '\\b') != -1) {
				result.push(list[i])
				break
			}
		}
	}
	return result
}
function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
    	var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}
function addEvent(elem, evType, fn) {
    if (elem.addEventListener) {
        elem.addEventListener(evType, fn, false);
    }
    else if (elem.attachEvent) {
        elem.attachEvent('on' + evType, fn)
    }
    else {
        elem['on' + evType] = fn
    }
}
function getNextSibling(elm) {
	do {elm = elm.nextSibling} while (elm && elm.nodeType !=1);
	return elm;
}
function getPrevSibling(elm) {
	do {elm = elm.previousSibling} while (elm && elm.nodeType !=1);
	return elm;
}

onDomReady(function(){
	var elms = [], next;
	elms = elms.concat(getElementsByClass('details'));
	elms = elms.concat(getElementsByClass('details_categories'));
	elms = elms.concat(getElementsByClass('details_index'));
	for (var i=0; i<elms.length; i++) {
		next = getNextSibling(elms[i]);
		if (!next || !hasClass(next,'summary')) continue;
		addEvent(next,'click',function(event){
			var prev = getPrevSibling(this);
			if (hasClass(prev,'opened')) removeClass(prev,'opened')
			else addClass(prev,'opened');
			if (event.preventDefault) event.preventDefault();
			else event.returnValue = false;
			return false;
		});
	}
});
addEvent(window,'load',function(){
	insertJS('https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js',{complete:function(){
		try {$(function(){
			$('aside.adv').load('/adv.html');
		})} catch(e) {}
	}});
})

