
function addLoadEvent(func) {
	var oldOnload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}else{
		window.onload = function() {
			oldOnload();
			func();
		}
	}
}


function collapseAutoAttach() {
	var elements = document.getElementsByTagName('a');
	var element;
	for (var i = 0; element = elements[i]; i++) {
		if (element.rel!='collapsible') continue;
		element.onclick = open_;
	}

	elements = document.getElementsByTagName('div');
	for (var i = 0; element = elements[i]; i++) {
		if (element.className!='collapsing') continue;
		element.style.display = 'none';
	}
}


function open_(){
	var div = this.parentNode.parentNode;
	var elements = div.getElementsByTagName('div');

	for (var i = 0; element = elements[i]; i++) {
		if (element.className.indexOf('collapsing')==-1) {
			continue;
		}
		if(element.style.display !='none'){
			
			element.style.display = 'none';
		
		}else{
			
			element.style.display = 'block';
		
		}
	}
	//this.onclick = close_;
	return false;
}

/* since function 'open_' is modified this function is no more needed, but maybe some bugs will occur?

function close_(){
	
	var div = this.parentNode.parentNode;
	var elements = div.getElementsByTagName('div');

	for (var i = 0; element = elements[i]; i++) {
		if (element.className!='collapsing') {
			continue;
		}
		element.style.display = 'none';
	}
	this.onclick = open_;
	return false;
}
*/


function js_pagerAutoAttach(){
	var elements = document.getElementsByTagName('a');
	var element;
	
	for (var i = 0; element = elements[i]; i++) {
		if (element.rel!='js_pager') continue;
		
		if(element.id.indexOf('1')!=-1){
			element.style.color = 'red';
			element.onclick = false_;
			continue;
		}
		
		element.onclick = show_page;
	}
	
	do_show_page(1);
}


function show_page(){
	
	var pos = 9;
	var num = this.id.substring(pos,this.id.length);
	
	hide_pages();
	
	do_show_page(num);
	
	js_pagerReattach();
	
	this.onclick = false_;
	this.style.color = 'red';
	
	return false;
}

function js_pagerReattach(){

	var elements = document.getElementsByTagName('a');
	var element;
	
	for (var i = 0; element = elements[i]; i++) {
		if (element.rel!='js_pager') continue;
		
			element.onclick = show_page;
			element.style.color = '';
		}
}

function hide_pages(){
	
	var elements = document.getElementsByTagName('div');
	var element;
	
	for (var i = 0; element = elements[i]; i++) {
		if (element.className!='js_pagerable') {
			continue;
		}
		element.style.display = 'none';
	}
}

function do_show_page(page_num){
	
	var element = document.getElementById('js_page_'+page_num);
	element.style.display = 'block';
	
}

function false_(){
	return false;
}


function checkbox_selectAutoAttach(){
	var elements = document.getElementsByTagName('a');
	var element;
	
	for (var i = 0; element = elements[i]; i++) {
		if (element.rel!='checkbox_selector') continue;
	
		element.onclick = checkbox_select;
	}

}

function checkbox_select(){
	var checkbox_block = this.parentNode;

	while(checkbox_block.className!='checkbox_block'){
		checkbox_block = checkbox_block.parentNode;
	}

	var elements = checkbox_block.getElementsByTagName('input');

	for (var i = 0; element = elements[i]; i++) {
		if (element.className.indexOf('selectable')==-1) continue;
		if (element.type!='checkbox') continue;
		
		element.checked='checked';
	}
	
	this.innerHTML='Снять выделение';
	this.onclick = checkbox_deselect;
	return false;
}


function checkbox_deselect(){
	var checkbox_block = this.parentNode;

	while(checkbox_block.className!='checkbox_block'){
		checkbox_block = checkbox_block.parentNode;
	}

	var elements = checkbox_block.getElementsByTagName('input');

	for (var i = 0; element = elements[i]; i++) {
		if (element.className.indexOf('selectable')==-1) continue;
		if (element.type!='checkbox') continue;
		
		element.checked='';
	}
	
	this.innerHTML='Выбрать всё';
	this.onclick = checkbox_select;
	return false;
}

var z_max = 1;

function switcherAutoAttach(){
	var elements = document.getElementsByTagName('div');
	
	for (var i = 0; element = elements[i]; i++) {
		if (element.className.indexOf('dynamic_block')==-1) continue;
		attachSwitcher(element);
	}
}

function attachSwitcher(block){
	var elements = block.getElementsByTagName('div');
	
	var switcher_block = 0;
	var image_block = 0;

	for (var i = 0; element = elements[i]; i++) {
		if (element.className == "image_container") image_block = element;
		if (element.className == "image_switcher") switcher_block = element;
	}

	if(switcher_block == 0 || image_block == 0) return false;

	var switching_images = image_block.getElementsByTagName('img');
	var switchers = switcher_block.getElementsByTagName('a');

	for (var i = 0; img = switching_images[i]; i++){
		if(switching_images[i].className == "visible") switchers[i].className = 'active';
		switchers[i].img_id = img.id;
		switchers[i].switchers = switchers;
		switchers[i].onclick = _switch;
	}
}

function _switch(){
	var img = document.getElementById(this.img_id);
	
	if(img.style.zIndex == z_max) return false;
	
	img.style.visibility = 'visible';
	img.style.zIndex = ++z_max;
	
	for(var i = 0; switcher = this.switchers[i]; i++){
		switcher.className = '';
	}
	
	this.className = 'active';
	return false;
}

