var viewer = new Class({
	mode: 'rand',
	modes: ['top','right','bottom','left','alpha'],
	sizes: {w:480,h:240},
	fxOptions: {duration:500},
	interval: 5000,

	initialize: function(items,options){
		if(options) for(var o in options) this[o]=options[o];
		//
		if(this.buttons){
			this.buttons.previous.addEvent('click',this.previous.bind(this,[true]));
			this.buttons.next.addEvent('click',this.next.bind(this,[true]));
		}
		this.__current = 0;
		this.__previous = null;
		this.items = items.setStyle('display','none');
		this.items[this.__current].setStyle('display','block');
		this.disabled = false;
		this.attrs = {
			left: ['left',-this.sizes.w,0,'px'],
			top: ['top',-this.sizes.h,0,'px'],
			right: ['left',this.sizes.w,0,'px'],
			bottom: ['top',this.sizes.h,0,'px'],
			alpha: ['opacity',0,1,'']
		};
		this.rand = this.mode=='rand';
		this.sequence = typeof(this.mode)=='object' ? this.mode : false;
		this.curseq = 0;
		this.timer = null;
	},

	walk: function(n, manual) {
		if(this.__current!==n && !this.disabled){
			this.disabled = true;
			if(manual){
				this.stop();
			}
			if(this.rand){
				this.mode = this.modes.getRandom();
			}else if(this.sequence){
				this.mode = this.sequence[this.curseq];
				this.curseq += this.curseq+1<this.sequence.length ? 1 : -this.curseq;
			}
			this.__previous = this.__current;
			this.__current = n;
			var a = this.attrs[this.mode].associate(['p','f','t','u']);
			for(var i=0;i<this.items.length;i++){
				if(this.__current===i){
					this.items[i].setStyles($extend({'display':'block','z-index':'2'},JSON.decode('{"'+a.p+'":"'+a.f+a.u+'"}')));
				}else if(this.__previous===i){
					this.items[i].setStyles({'z-index':'1'});
				}else{
					this.items[i].setStyles({'display':'none','z-index':'0'});
				}
			}
			this.items[n].set('tween', $merge(this.fxOptions,{onComplete:this.onComplete.bind(this)})).tween(a.p,a.f,a.t);
			if(this.onWalk) this.onWalk(this.__current);
		}
		return false;
	},

	play: function(wait){
		this.stop();
		if(!wait){
			this.next();
		}
		this.timer = this.next.periodical(this.interval,this,[false]);
	},

	stop: function(){
		$clear(this.timer);
	},

	next: function(manual){
		this.walk(this.__current+1<this.items.length ? this.__current+1 : 0,manual);
	},

	previous: function(manual){
		this.walk(this.__current>0 ? this.__current-1 : this.items.length-1,manual);
	},

	onComplete: function(){
		this.disabled = false;
		this.items[this.__previous].setStyle('display','none');
	}
});

window.addEvent('domready', function() {
	var sidebar6 = $$('.sidebar6');
	if(sidebar6){
		sidebar6.setStyle('display','none');
		$each($$('.button1'), function(el, i){
			el.addEvent('click', function(e){
				if( sidebar6[i].getStyle('display') == 'block'){
					sidebar6[i].setStyle('display','none');
					this.removeClass('active');
				} else {
					sidebar6[i].setStyle('display','block');
					this.addClass('active');
				}
			});
		});
	}

	/**
	* Save item to notepad
	*
	*/
	$$('.add-item-to-notepad').addEvent('click', function(e){
		e.stop();
		var self = this;
		var href = this.getProperty('href').split('&');
		var siteUrl = href[0].split('?');
		href[0] = siteUrl[1];
		$(window).addEvent('scroll', function(){
			this.setStyles({
				'top': $(window).getScroll().y + $(window).getSize().y.toInt()/2
			});
		}.bind($('spinner')));
		var myRequest = new Request({
			method: 'post',
			url: siteUrl[0].replace('index.php', 'index3.php'),
			onRequest: function(){
				$('overlay').setStyles({
					'opacity': '0.1',
					'display': 'block'
				});
				$('spinner').setStyles({
					'display': 'block',
					'top': $(window).getScroll().y + $(window).getSize().y.toInt()/2
				});
			},
			onComplete: function(){
				$('overlay').setStyles({'display': 'none'});
				$('spinner').setStyles({'display': 'none'});
				//self
				//<span class="item-in-notebook">В блокноте</span> <span class="link-in-notebook"><a href="index.php?option=com_userprofile&Itemid=60">Просмотреть блокнот</a></span>
			},
			onSuccess: function(responseText){
				if(responseText) {
					self.getParent().set('html', responseText);
				}
			}
		});
		myRequest.send(href[0]+'&'+href[1]+'&'+href[2]+'&'+href[3]+'&'+href[4]);
	});

	/*
	* Get list of regions
	*
	*/
	var regions = $('get-regions');
	if(regions) {
		// Initialize Main Box
		var getRegions = new MessageBox({width: 605, height: 400});

		getRegions.request = new Request.HTML({
			onRequest: function() {
				getRegions.ajax = true;
				getRegions.ajaxLoader.setStyle('display', 'block');
			},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				getRegions.ajax = false;
				getRegions.ajaxLoader.setStyle('display', 'none');
				getRegions.html.set('html', responseHTML).setStyle('display', 'block');

				getRegions.buttons.btnCancel.set('html', $lang.close);
				getRegions.html.setStyle('height', getRegions.options.height);

				var tabs = $$('#tabset2 a');
				var el = [];
				if(tabs) {
					tabs.each(function(item, i) {
						var id = item.getProperty('href');
						el[i] = getRegions.html.getElement(id);
						if(el[i]) {
							if(!item.hasClass('active')) {
								el[i].setStyle('display', 'none');
							}
							item.addEvent('click', function(e) {
								e.stop();
								tabs.removeClass('active');
								el.each(function(item){
									item.setStyle('display', 'none');
								});

								el[i].setStyle('display', 'block');
								tabs[i].addClass('active');
							});
						}
					});
				}

				getRegions.setPosition();
			},
			onFailure: function(xhr) {
				getRegions.ajaxLoader.setStyle('display', 'none');
				getRegions.message.set('html', xhr).setStyle('display', 'block');
			}
		});

		var regionsHelper = {
			showForm: function(e) {
				getRegions.title.set('html', $lang.listOfRegions);
				getRegions.show();
				// Send Request
				getRegions.request.setOptions({url: this.getProperty('href')});
				getRegions.request.get({'tmpl': 'html'});
				// Stop Event
				e.stop();
			}
		};

		regions.addEvent('click', regionsHelper.showForm.bind(regions));
	}
	
	$$('.tomax').addEvent('click', function(e){
		this.getParent().hide();
		var parent = this.getParent(".info");
		parent.toggleClass("min");
		parent.getElement(".max").show();
		return false;
	});
	$$('.tomin').addEvent('click', function(e){
		this.getParent().hide();
		var parent = this.getParent(".info");
		parent.toggleClass("min");
		parent.getElement(".info_min").show();
		return false;
	});
	
	$$('.tab_nav li.nav1').addEvent('click', function(e){
		
		var parent = this.getParent(".tab_box");
		parent.getElement(".tab_nav li.nav1").removeClass("active");
		parent.getElement(".tab_nav li.nav2").removeClass("active");
		parent.getElement(".tab_nav li.nav3").removeClass("active");
		this.addClass("active");
		parent.getElement(".tab_txt_2").removeClass("active");
		parent.getElement(".tab_txt_3").removeClass("active");
		parent.getElement(".tab_txt_1").addClass("active");
		return false;
	});
	$$('.tab_nav li.nav2').addEvent('click', function(e){
		
		var parent = this.getParent(".tab_box");
		parent.getElement(".tab_nav li.nav1").removeClass("active");
		parent.getElement(".tab_nav li.nav2").removeClass("active");
		parent.getElement(".tab_nav li.nav3").removeClass("active");
		this.addClass("active");
		
		parent.getElement(".tab_txt_1").removeClass("active");
		parent.getElement(".tab_txt_3").removeClass("active");
		parent.getElement(".tab_txt_2").addClass("active");
		return false;
	});
	$$('.tab_nav li.nav3').addEvent('click', function(e){
		
		var parent = this.getParent(".tab_box");
		parent.getElement(".tab_nav li.nav1").removeClass("active");
		parent.getElement(".tab_nav li.nav2").removeClass("active");
		parent.getElement(".tab_nav li.nav3").removeClass("active");
		this.addClass("active");
		
		parent.getElement(".tab_txt_1").removeClass("active");
		parent.getElement(".tab_txt_2").removeClass("active");
		parent.getElement(".tab_txt_3").addClass("active");
		return false;
	});
	
	$$('.info_hind img').addEvent('click', function(e){
		var parent = this.getParent();
		parent.getElement(".hind").toggle();
	});
	
	$$('.firm_box h4').addEvent('click', function(e){
		var parent = this.getParent();
		parent.getElement(".text").toggle();
	});
	
	$$('.note_prev .show').addEvent('click', function(e){
		var parent = this.getParent();
		var parent2 = parent.getParent();
		parent2.getElement(".note_big").toggle();
	});
	
	$$('.close').addEvent('click', function(e){
		var parent = this.getParent();
		
		parent.hide();
	});
});
