var myMask;

function init(){
		
	$$('.hidden').setStyle('display', 'none');
	
	
	

	
	var temp = $$('.radioAccord_1');
	if(temp){
		new RadioAccord({
			trigger: '.radioAccord_1',
			switcher: '.switcher',
			out: '.full',
			storeState: storeState
		});
	}
	delete(temp);
	
	
	
	var scroll = $$('.overflow_scroll');
	
	if(scroll){
		scroll.each(function(item){
			overflow_scroll(item)
		});
	}

	$$('.full').each(function(item){
		if(item.hasClass('display') && item.hasClass('level2')){
			ajax_show_gallery(item);
			
		}
	});
	
	var left_menu2 = $('left_menu2');
	if(left_menu2){
		
		var restoreState2 = function(){
			var c = Cookie.read('left_menu2');
			if(c == 1) {
				Cookie.write('left_menu2',1,{path: '/'});
				$('left_menu_switch').fireEvent('click');
				Cookie.write('left_menu2',1,{path: '/'});
				$('left_menu_switch').fireEvent('click');
			}
			else {
				$('left_menu_switch').fireEvent('click');
				Cookie.write('left_menu2',0,{path: '/'});
			}
		}
		
		var storeState2 = function(){
			if(isDisplay(left_menu2))  Cookie.write('left_menu2',1,{path: '/'});
			else Cookie.write('left_menu2',0,{path: '/'});
			var c = Cookie.read('left_menu2');
		}
		
		$('left_menu_switch').addEvent('click', function(e){
				if(window.e) e.stop();
				
				var show = new AccordionView2(this, {
					parent: false,
					hidden: left_menu2,
					duration: 500,
					hideText: 'Закрыть',
					showText: 'Развернуть'
				});
				show.transform();
				storeState2();
				
		});
		
		restoreState2();
		
	}
	
	

	myMask = new Mask($('wrapper'),{
		hideOnClick: true,
		onHide: function(){
			$$('.popup_container').each(function(item){item.destroy();});
		}
	});
	
	var show_init = $$('.show_init');
	if(show_init){
		show_init.setStyle('display', 'block');
	}
	
	error_form();
	reStoreState();
	
}

var storeState = function(){
	var left_menu = $('js_left_menu');
	if(left_menu){
		var cookieData = new Array;	
		var state = 0;
		left_menu.getElements('.switcher').each(function(item){
				var el = $(item.getProperty('data:rel'));
				if(isDisplay(el)){
					state =el.id;
					//Cookie.write('left_menu', state,{path: '/'});
				}
				Cookie.write('left_menu', state,{path: '/'});
				
		});
	}
}

var reStoreState = function(){
	var left_menu = $('js_left_menu');
	if(left_menu){
		if(Cookie.read('left_menu') == null || Cookie.read('left_menu') == 0) {}
		else {
			var item_id = Cookie.read('left_menu');
			var ul = $(item_id);
			var item = ul.getParent().getElement('.switcher');
			ul.setStyle('display', 'block');
		}
	}
}

function overflow_scroll(el){
//делаем див спрокруткой Высота - от верхней границы элемента до нижней границы окна - константа
el.setStyles({'height': '1px', 'display': 'block'});
	var top = el.getPosition().y;
	var w = window.getSize().y;
	var wrapper = $('wrapper').getSize().y
	w = Math.min(w,wrapper);
	var scroll = window.getScroll().y;
	var h = w - top + scroll;
	el.setStyles({'height': Math.round(h)-100, 'overflow-y': 'scroll', 'min-height': '100px'});
	el.setStyle('display', 'none');
}



function getStyle(el, cssprop){
 if (el.currentStyle) //IE
  return el.currentStyle[cssprop]
 else if (document.defaultView && document.defaultView.getComputedStyle) //Firefox
  return document.defaultView.getComputedStyle(el, "")[cssprop]
 else //try and get inline style
  return el.style[cssprop]
}


function showForm(el){
	
	var isDisplay = function(el){
		if(el.getStyle('display') == 'block') return true; else return false;
	}
	el = $(el).getParent('div');
	var form = el.getFirst('.index_auth');
	
	if(!isDisplay(form)) {
		form.setStyle('display', 'block'); 
		el.setStyle('height', 'auto');
	} else {
		form.setStyle('display', 'none');
		var height = getStyle(el, 'height');
		//alert(height);
		el.setStyle('height', height);
	}
	
	
}

/******************/
function addCSS(param){

	switch(param){
		case 'filters':
				document.write('<style type="text/css">@import url("/css/p.filters.css")</style>');
			break;
	}

}



var pop = new Class({
	initialize: function(el, width){
		this.el = $(el);
		this.max_height = 600;
		
		$$('.popup_container').each(function(item){item.destroy();});
		
		var self = this;
		this.container = new Element('div', {
			'class': 'popup_container',
			'styles': {
				'top': this.getBottom() - 200,
				'width': width,
				'max-height': this.max_height
			}
		});
		this.textarea = new Element('div', {
			'class': 'popup_textarea'
		});
		var close = new Element('div', {
			'class': 'popup_close',
			'events': {
				'click': function(){
					self.destruct(this);
					$$('.error_messages').each(function(item){
						//alert(item.className);
						item.destroy();
						//alert(item.className);
					});
					if(myMask){
						myMask.hide();
					}
				}
			}
		});
		
		close.inject(this.container);
		this.textarea.inject(this.container);
		this.container.inject(document.body);
	},
	getContainer: function(){
		return this.container;
	},
	destruct: function(el){
		this.container.destroy();
	},
	gettop: function(){
		var top = window.getScroll().y;
		return top;
	},
	getBottom: function(){
		var top = this.el.getPosition().y;
		//alert(top);
		return top;
	},
	set: function(html){
		this.textarea.set('html', html);
		this.correctHeight();
	},
	correctHeight: function(){
		var h = this.textarea.getSize().y;
		if(h > this.max_height) {
			this.container.setStyle('overflow-y', 'scroll');
			h = this.max_height;
		}
		this.container.setStyle('height', h);
		this.container.setStyle('top', this.getBottom() - h - 20);
		
		
	}
		
		
});


function popup(el, width){
	el=$(el);
	myMask.show();
	var pop1 = new pop(el, width);
	
	var data = el.getProperty('data:data');
	var url = el.getProperty('data:url');
	//var data = 'form_id=819&who=28205&template=document_add';
		
	var request = new Request({
		method: 'post',
		//url: '/webforms/ajax_get_form/',
		url: url,
		data: data,
		evalScripts: true,
		onComplete: function(text){
			pop1.set(text);
	
		}
	});
	umi.send(request);
}

function popup2(el, width){
	el=$(el);
	
	myMask.show();
	var pop1 = new pop(el, width);
	
	var data = el.getProperty('data:data');
	var url = el.getProperty('data:url');
	var rel = el.getProperty('data:rel');

	var text = $(rel).get('html');
	pop1.set(text);
	
	return pop1;

}

function empty_field(el){
	el = $(el);
	el.setProperty('value', '');
}


function error_form(){
	var errors = $$('.error_messages');
	if(errors.length > 0){
		errors = errors[0];
		
		var form_id = Cookie.read('form_id');
		if(form_id){
			
			var form = $(form_id);
			//restoreFormData(form);
			var pop = form.getParent('.pops2');
			window.scrollTo(0, 1000);
			if(pop){
				var id = pop.getProperty('data:rel');
				id = $(id);
				
				//form.getParent('.pops2').setStyle('display', 'block');
				
				//var form = pop.getElement('form');
			
				/*form.getElement('[name=data[new][vashe_imya]]').setProperty('value', '888');
				alert(form.elements['data[new][vashe_imya]'].value);
				form.elements['data[new][vashe_imya]'].value = '88888';
				alert(form.elements['data[new][vashe_imya]'].value);
				form.elements['data[new][vashe_imya]'].setStyle('border', '5px solid #000');
				form.elements['data[new][vashe_imya]'].setProperty('name', '555');
				form.elements['data[new][vashe_imya]'].setProperty('name', '555');*/
				
				//(function(){popup2(id, 300)}).delay(1000);
				function makePopForm(){
					var popform = popup2(id, 300);
					//alert(popform.getContainer().tagName);
					var form = popform.getContainer().getElement('form');
					var new_id = 'f' + id;
					form.setProperty(new_id);
					restoreFormData(form);
				}
				makePopForm.delay(1000);
				
			}
		}
	}
	
	//если ошибок нет - удаляем куки с ид формы
}

function send_form(form){
	//сохраняем в куки ид формы
	form = $(form);
	var form_id = form.id;
	saveFormData(form);
	Cookie.write('form_id', form_id);
	return checkFields(form);
}


function saveFormData(form) {
	if(!form) {
		return false;
	}
	
	if(!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}

	var cookieData = new Array;	
	for(var i = 0; i < form.elements.length; i++) {
		var input = form.elements[i];
		var inputName = input.name.replace(/([)\\])/g, "\\$1");

		
		switch(input.type) {
			case "password": break;
			
			case "text":
			case "textarea": {
				cookieData.push({type: 'T', name: inputName, value: input.value});
				break;
			}
			
			case "checkbox":
			case "radio": {
				cookieData.push({type: 'C', name: inputName, value: (input.checked ? 1 : 0)});
				break;
			}
			
			case "select-multiple":
			case "select-one": {
				cookieData.push({type: 'S', name: inputName, value: input.selectedIndex});
				break;
			}
		}
		

	}
	
	var i, str = "";
	for(var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		var value = new String(elementData.value);
		var inputName = new String(elementData.name);
		
		if(!inputName || !value) {
			continue;
		}
		
		str += elementData.type + "," + inputName.length + "," + inputName + "," + value.length + "," + value;
	}
	document.cookie="frm" + form.id + "=" + escape(str.replace(/([|\\])/g, "\\$1"));
	return true;
}

function restoreFormData(form) {
	if(!form) {
		return false;
	}
	
	if(!form.id) {
		alert("You should set id attribute in form tag to save or restore it.");
		return false;
	}
	var cookieName = "frm" + form.id + "=";
	
	var cookie = new String(unescape(document.cookie));
	var posStart, posEnd;
	if((posStart = cookie.indexOf(cookieName)) == -1) {
		return false;
	}
	
	if((posEnd = cookie.indexOf(";", posStart)) == -1) {
		posEnd = cookie.length;
	}
	
	var data = cookie.substring(posStart + cookieName.length, posEnd);
	var pos = 0, cookieData = new Array;

	while(pos < data.length) {
		var inputName;
		var type = data.substring(pos, pos + 1);
		pos += 2;
		
		
		
		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		pos = data.indexOf(",", pos) + 1;
		var inputName = data.substring(pos, pos + length);
		pos += length + 1;

		var length = parseInt(data.substring(pos, data.indexOf(",", pos)));
		if(length == 0) {
			pos += 2;
			continue;
		} else {
			pos = data.indexOf(",", pos) + 1;
		}
		
		var value = data.substring(pos, pos + length);
		pos += length;
		
	
		
		cookieData.push({type: type, name: inputName, value: value});
	}
	
	for(var i = 0; i < cookieData.length; i++) {
		var elementData = cookieData[i];
		switch(elementData.type) {
			case "T": {
				//alert(elementData.name);
				form.elements[elementData.name].value = elementData.value;
				break;
			}
			
			case "C": {
				form.elements[elementData.name].checked = elementData.value ? true : false;
				break;
			}
			
			case "S": {
				form.elements[elementData.name].selectedIndex = elementData.value;
				break;
			}
		}
	}
}

 function checkFields(form){
	
	var animate = function(input){
		input.focus();
		input.setStyle('background-color', '#f59494');
	/*if(input.type != 'file'){
		if(!Browser.Engine.trident){
			input.set('tween', {duration: 'long', onComplete: function(){input.tween('border', '1px solid #cccccc')}});
			input.tween('border', '6px solid #f59494');
		}else{
			input.tween('border', '6px solid #f59494');
		}
		return false;
	}
	
	if(input.type == 'file'){
		input.setStyle('background-color', '#f59494');
	}*/
	
	}
	
	
	form = $(form);
	var fields = form.getElements('.required');
	var l = fields.length;
	if(l < 1) return false;
	
	for(i=0; i<l; i++){
		var input = fields[i];
		if(!input.value || (input.value == 0)){
			animate(input);
			return false;
		}
	}
	return true;
	
	
	
 }





















function count(){
	$('js_category_list').getElements('.count_line1').each(function(item){
		var c = 0;
		item.getParent().getElements('.count_line2 b').each(function(line2){
			c += line2.get('text').toInt();
		});
		if(c){
			c = ' + ' + c;
			item.getFirst('span').set('text', c);
		}
	});
}