var slider_el = new Array();
//var slider_el2 = new Array();
function init(){
	
	
	//return false;
	//считаем высоту газеты
	if($('footer') && $('text_block')){
		var foo = $('footer').getPosition().y;
		var top = $('text_block').getPosition().y;

	

		$$('.left_column').setStyle('height', foo - top - 120);
		
	}
	
	var myTips = new Tips('.tips',{
		text: null,
		className: 'tipsblock',
		offset: {x: 10, y: 16}
	});
	
	var arrow = $$('.arrow_block');
	if(arrow.lenght>0){
		$('forward').addEvent('click', function(){slider.onTop();});
		$('back').addEvent('click', function(){slider.onBottom();});
		

		$$('.slider_list li').each(function(item, index){
			item.setProperty('id', 'li_' + index);
			
			var pos = item.getPosition('slidercontainer').y;
			item.setProperty('class', pos);
			

			slider_el[index] = pos;
			
			
			item.getElements('a').each(function(div){
			
				div.addEvent('click', function(e){
					//e.stop();
					toggle_filter(this, div.id, 'poroda');
				});
				
				var text = div.getNext().get('text');
				
				div.store('tip:title', text);
				
			});
		});
		

		var slider = new __Slider();
		
		
		
	}
	
	
	
	$$('.nonslider').each(function(item){
		
		var filter_name = item.id;
		item.getElements('a').each(function(a){
			
			
			var text = a.getNext().get('text');
				
				a.store('tip:title', text);
		});
	});
	

	//показать подробнее...	
	var views = $$('.full_view');
	views.each(function(item){
	
		var hidden = item.getPrevious('.full');
		if(hidden.get('text').trim().length > 1){
		
			var parent = item.getParent('.accordion_view');
				
			item.setStyle('display', 'inline');
			item.set('text', 'Показать подробнее');
			item.addClass('plus');
			item.addEvent('click', function(e){
				e.stop();

				var show = new AccordionView2(this, {
					parent: parent,
					hidden: hidden,
					duration: 500,
					hideText: 'Скрыть подробности',
					showText: 'Показать подробнее'
				});
				
				show.transform();
				
			});
		}
	});
	
	if($$('.basket_items')){
		basket_items = $$('.basket_items');
		basket_items.each(function(item){
			var id = 'i' + item.getProperty('id');
			
			var text = item.get('html');
			if($(id) && $(id).getParent('span')){
				$(id).set('html', text);
				$(id).getParent('span').setStyle('display', '');
			}
		});
	}
	
}

/************************************************************
*
*	AccordionView
*	Аккордеон для одиночного дива в стиле 
*	бла-бла-ба (показать подробнее/скрыть подробнее)
*	требует передать объект ссылки, скрытый объект и родительский контейнер
*	Ширина считается по ширине родителя
*
***************************************************************/

var AccordionView = new Class({
	Implements: [Events, Options],
	
	options: {
		parent: false,
		hidden: false,
		duration: 500,
		hideText: 'Скрыть подробности',
		showText: 'Показать подробнее'
		
	},
	
	initialize: function(a, options){
		this.setOptions(options);
		
		var elem = this.options.hidden;
		var _self = this;
		this.flag = false;
		
		//считаем его ширину. полагаем, что она равна ширине содержащего контейнера (parent)
		elem.setStyle('width', this.options.parent.getStyle('width'));
		
		this.showEffect = new Fx.Morph(elem, {
			duration: this.options.duration,
			onComplete: function(){
				if(_self.flag){
					this.set({display: 'none'});
				}
				if(!_self.flag){
					a.set('text', _self.options.hideText);
					a.removeClass('plus');
					a.addClass('minus');
				}
				else{
					a.set('text', _self.options.showText);
					a.removeClass('minus');
					a.addClass('plus');
				}
			},
			onStart: function(){
				if(!_self.flag){
					this.set({display: 'block'});
				}
			}
			
		});
	},

	transform: function(){
		var elem = this.options.hidden;
		//вспомогательная переменная. показывает, в каком состоянии блок
		this.flag = this.is_visible();
		//сбрасываем фиксацию высоты
		elem.setStyle('height','auto');

		if(!this.flag){
			var sz = elem.getDimensions();
			this.showEffect.set({display: 'block', height: 1});
			this.showEffect.start({
				'height': [1, sz.height]
			});
		}
		else{
			
			var sz = elem.getSize();
			this.showEffect.start({
				'height': [sz.y, 1]
			});

		}
		
	},
	is_visible: function(){
		
		var visible = true;
		if(this.options.hidden.getStyle('display') != 'block') visible = false;
		return visible;
	}
});

/************************************************************
*
*	AccordionView
*	Аккордеон для одиночного дива в стиле 
*	бла-бла-ба (показать подробнее/скрыть подробнее)
*	требует передать объект ссылки, скрытый объект и родительский контейнер
*	Открывается мгновенно!!! Зато не важна ширина и можно использовать с левыми картинками
*
***************************************************************/

var AccordionView2 = new Class({
	Implements: [Events, Options],
	
	options: {
		parent: false,
		hidden: false,
		duration: 500,
		hideText: 'Скрыть подробности',
		showText: 'Показать подробнее'
		
	},
	
	initialize: function(a, options){
		this.setOptions(options);
		
		var elem = this.options.hidden;
	
		this.flag = false;
		
		this.a = a;
		
			
		
	},

	transform: function(){
		var elem = this.options.hidden;
		//вспомогательная переменная. показывает, в каком состоянии блок
		this.flag = this.is_visible();
		//сбрасываем фиксацию высоты
		elem.setStyle('height','auto');

	
		
				if(this.flag){
					this.options.hidden.setStyles({display: 'none'});
					this.a.set('text', this.options.showText);
					this.a.removeClass('minus');
					this.a.addClass('plus');
				}
				else{
					this.options.hidden.setStyles({display: 'block'});
					this.a.set('text', this.options.hideText);
					this.a.removeClass('plus');
					this.a.addClass('minus');
				}
				
				
		
	},
	is_visible: function(){
		
		var visible = true;
		if(this.options.hidden.getStyle('display') != 'block') visible = false;
		return visible;
	}
});


function index_gallery_size(){

	if($('photo_content')){
		return;
		//если это главная - расставляем отступы между фотами
		var gallery = $('photo_content');
		var textarea_sz = gallery.getSize().x;
		//alert(textarea_sz);
		var li = gallery.getFirst().getFirst();
		var li_sz = li.getSize().x;
		var li_s = gallery.getFirst().getChildren('li');
		
		var min_margin = 25;
		
		var kol_li = Math.floor((textarea_sz + min_margin) / (li_sz + min_margin));
		
		//считаем свободное пространство
		var margin = Math.floor((textarea_sz - (kol_li * li_sz)) / (kol_li - 1) - 60);
		
		var li_l = li_s.length;
		for(i = 1; i <= li_l; i++){
			var temp = kol_li / i;
			var temp2 = Math.floor(temp);
			if((i == 1) || (temp - temp2) > 0){
				li_s[i-1].setStyle('margin-right', margin);
			}else{
				li_s[i-1].setStyle('margin-right', 0);
			}
		}
		li_s[li_l-1].setStyle('margin-right', 0);
		
		
		
	}
}


/* 
*****  возвращает путь к файлу и имя файла  ****
dir_name - путь от корня до файла не включая его
file_name - полное имя файла
ext - расширение с точкой
остальные для формата   имя_файла_нечто_состояние_язык.расширение
lang - язык
 state - состояние 
name - все что до двух предыдущих
*/
var File = new Class({

	initialize: function (path)
	{
		this.path = path; 
		this.dir_name='/';
		this.string_array=this.path.split('/');
		for(i=3;i<this.string_array.length-1;i++)
		{
			this.dir_name = this.dir_name + this.string_array[i] + '/';
		}
		this.file_name = this.string_array[this.string_array.length -1];
	
		//парсим имя файла
		this.tmp = new Array();
		this.tmp = this.file_name.split('.');//расширение по точке
		this.ext = '.' + this.tmp[1];
		this.tmp2 = new Array();
		this.tmp2 = this.tmp[0].split('_');//  _ - разделитель
		this.lang = '_' + this.tmp2[this.tmp2.length - 1];
		this.state = '_' + this.tmp2[this.tmp2.length - 2];
		this.name = this.tmp2[0];
		for(i=1;i<(this.tmp2.length - 2);i++)
		{
			this.name = this.name + '_' + this.tmp2[i];
		}
	}
});


/* *************************************
*
*  UMI REQUEST
*
************************************ */

var umiRequest = new Class({
	initialize: function (){

		},
	send: function (request){
			this.cook = document.cookie;//получаем все куки
			request.setHeader('Cookie', this.cook);
			request.send();
		}
});



/*************************************
*
*
*
**************************************/

var mWindow = new Class({

	Implements: [Events, Options],
	
	options: {
		url: '',
		query: '',
		width: 600,
		height: 400,
		title: '',
		x: 30,
		y: 30,
		evalResponse: false,
		evalScripts: true,
		demo: true
		
	},
	
	initialize: function(options){
			this.setOptions(options);
	},
	
	setTitle: function(title){
		title = title.standardize();
		//title = title.stripTags();
		this.options.title = title;
	},
	
	open: function(query){
		
		var cleanQuery = this.options.query.cleanQueryString(function(set){
			return !set.split("=")[0].match(/id/);
			
		});

		if(cleanQuery.length == 0) this.options.query = '?' + query;
		else this.options.query = '?' + cleanQuery + '&' + query;
		
		this.create();
		this.wind();
	},
	
	create: function(){
		var _self = this;
		this.wind = function(){
			new MochaUI.Window({
				id: 'mwindow',
				title: _self.options.title,
				resizable: false,
				loadMethod: 'xhr',
				contentURL: _self.options.url + _self.options.query,
				
				width: _self.options.width,
			
				height: _self.options.height,
				
				x: _self.options.x,
				
				//y: (window.getSize().y < 650) ? 20 : (window.getScroll().y + 20),
				y: (window.getScroll().y + 20),
				
				onContentLoaded: function(){
					var c_width = $('mwindow_content').getScrollSize().x;
					var c_height = $('mwindow_content').getScrollSize().y;
				},
				cornerRadius: 2
			});
		}
	}
	
});


var wFoto;
var w;

function popup_toggle(elem){
	elem = $(elem);
	
	$('popup_image_container').getFirst('img').destroy();
	$('popup_image_container').setStyle('background-image',"url('/gif/zaparketom/preload.gif')");
	
	var myImage = new Asset.image(elem.href,{
		onload: function(){
			var ins = function(){
				this.inject($('popup_image_container'));
				$('popup_image_container').setStyle('background-image','none');
			};
			ins.delay(500,this);
			
			
		}
	});
	
	
		
}






var __Slider = new Class({

	Implements: [Events, Options],

	options: {
		liWidth: 98,
		liMargin: 0,
		startPoint: 0

	},
	initialize: function (){
			var slidercontainer = $('slidercontainer');
			
			var slider = new Fx.Scroll('browser', {
				duration: 2000,
				link: 'cancel',
				transition: Fx.Transitions.Quad.easeInOut
			});
				
			this.scroll = new Hash({
						//'id': id,
						'slider': slider,
						'x': 0,
						'fotos': this.fotos
					});
			
			
			var startPoint = Cookie.read('poroda');

			
			if(startPoint) {
				this.scroll.slider.set(0,startPoint);
			}
			else this.scroll.slider.toTop();

		},

	onTop: function(){
		var el;
		var pos = $('browser').getScroll().y;
		var l = slider_el.length;
		
		for(i=l-1; i > 0; i--){
			if(slider_el[i] < pos){el = i; break;}
		}
		if(slider_el[el - 3]) this.scroll.slider.start(0,slider_el[el - 3] - 2);
		else this.scroll.slider.toTop();
	
	},
	onBottom: function(){
		var el;
		var pos = $('browser').getScroll().y;
		var l = slider_el.length;
		
		for(i=0; i < l; i++){
			if(slider_el[i] > pos){el = i; break;}
		}
	
		if(slider_el[el + 3])this.scroll.slider.start(0, slider_el[el + 3] - 2);
		else this.scroll.slider.start(0, slider_el[l - 3]);

	}
	
	

});


function toggle_filter(el, id, filter_name){
	/*
	filter_name = $(el).getParent('.filter_items').id;
	
	//сбросить активные классы во всех фильтрах, кроме выбранного
	$$('.filter_items .active').removeClass('active');
	
	var clsF = filter.filter(function(value, key){
		return key != filter_name;
	});
	
	
	clsF.each(function(value,key){
		var s = key + '.empty();';
		eval(s);
	});
	setFilterMarker();
	//конец
	
	
	var key = id.slice(1).toInt();
	
	if(filter_name == 'poroda') var li = $(el); else var li = $(el).getParent();
	
	if(li.hasClass('active')){
		li.removeClass('active');
			var s = filter_name + '.erase(\'fields_filter[' + filter_name + '][' + key + ']\');';
			eval(s);
	}
	else{
		li.addClass('active');
		var s = filter_name + '.set(\'fields_filter[' + filter_name + '][' + key + ']\', ' + key + ');';
		eval(s);
	}

	var s = filter_name + '.toQueryString();';
	var query = eval(s);
	//if(location.pathname == '/') path = './parquet/parquet/'; else path = './';
	
	var path = $(el).href.split("?");
	
	//ищем фильтр по цене.имени
	var order = '';
	if(location.search.test('price_rub')) order = '&order_filter[price_rub]=1';
	if(location.search.test('name')) order = '&order_filter[name]=1';
	*/
	//если это порода, то запоминаем позицию прокрутки
	if(filter_name == 'poroda'){
		var porodaCookie = Cookie.write('poroda', $('browser').getScroll().y);
		//alert($('browser').getScroll().y);
		//alert("!");
	}
	/*
	location.href = path[0] + '?' + query + order;
	return false;
*/
}
/*
function setFilterMarker(){
	
	proizvoditel.each(function(value){
		$try(function(){
			$('p' + value).getParent().addClass('active');
		});
	});
	color.each(function(value){
		$try(function(){
			$('p' + value).getParent().addClass('active');
		});
	});
	poroda.each(function(value){
		//alert(value);
		$try(function(){
			$('p' + value).addClass('active');
		});
	});
	coll.each(function(value){
		$try(function(){
			$('p' + value).getParent().addClass('active');
		});
	});
}
*/
var umi = new umiRequest();

function test_login(elem){

	var login = $(elem).getParent('td').getPrevious('td').getFirst().getProperty('value');
	if(!login) $('login_test').set('html', '<font color=red>Не указано имя!</font>');
	
	var request = new Request({
		method: 'post', 
		data: 'login=' + login,
		url: '/users/test_login/',
		onComplete: function(text){
		
			$('login_test').set('html', text);
		}
		
	});
	umi.send(request);
	$('login_test').set('html', 'Подождите...');
	
}

function not_null_basket(form){
	
	form = $(form);

	var input = form.getElement('input[name=count]');
	var val = input.value;
	val = val.replace(',','.');

	if(!val || (val == 0) || val.test("[^.0-9]")) {
	
		input.focus();
		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;
	}
	else return true;
}

function not_null_delivery(input){
	input = $(input);
	if(input == null) return true;
	if(!input.value) {
		input.focus();
		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');
		}
		$('null_delivery').setStyle('display', 'block');
		return false;
	}
	else return true;
}

function calculateSQ(id){
	id = id.toInt();
	var classRoot = 'square' + id;
	var root = $(classRoot);
	var direct = 0;
	var sq = root.getElement('input[name=sq]').value;
	sq = parseFloat(sq);
	var pack = root.getElement('input[name=pack]').value;
	pack = parseFloat(pack);
	if(!pack) return '';
	
	root.getElements('input[name=d]').each(function(item){
		if(item.checked) direct = item.value.toInt();
	});
	
	if(!direct || !sq) return '';
	else{
		sq = sq * ( 1 + (direct / 100));
		//sq = Math.ceil(sq);
		
		sq = Math.ceil(sq / pack) * pack;
		//sq = ((sq / pack) * pack);
		
		var form = 'addtobasket' + id;
		$(form).getElement('input[name=count]').setProperty('value', sq);
	}
}
