


var WebSiteMain = new Class({

	templateId: null,
	currentSection: null,
	
	allContainerElement: null,

	initialize: function() {
		window.addEvent('domready', this.onDOMReady.bind(this));
		
		// redirect from a search engine specific view
		var p = window.location.pathname;
		if(p != '/en/' && p != '/lv/' && p != '/ru/' && p != '/') {
			window.location = p.length > 1 ? p.substr(0, 4) : '/';
		}
		
		// init console
		if(!window.console || !window.console.log) {
			window.console = {};
			window.console.log = function(str) { window.webSiteMain.writeToConsole(str); }
			window.console.debug = function(str) { window.webSiteMain.writeToConsole(str); }
		}
	},
	
	onDOMReady: function() { 
		//this.templateId = parseInt($$('body')[0].get('class').split('-')[1]);
		
		this.allContainerElement = $('allContainer');
		this.menu = new WebSiteMenu();
	}
	
});

var webSiteMain = new WebSiteMain();




var WebSiteMenu = new Class({

	request: null,
	mainMenu: null,
	subMenu: null,
	contentArea: null,

	initialize: function() {
		this.mainMenu = $('mainMenu');
		this.subMenu = $('subMenu');
		this.contentArea = $('content');
		
		if(this.contentArea) {
			this.contentArea.set('load', {
				onComplete: this.onOpenContentComplete.bind(this)
			})
		
			this.mainMenu.getElements('a').addEvent('click', this.onMainMenuClick.bindWithEvent(this));
			this.subMenu.getElements('a').addEvent('click', this.onSubMenuClick.bindWithEvent(this));
		
			/*this.subMenu.getElements('li').set('slide', {
				duration: 700, 
				mode: 'horizontal',
				transition: 'circ:out'
			});*/
			this.subMenu.getElements('li').addClass('listItemOut');
			

			$$('.text').set('slide', {
				duration: 700, 
				mode: 'horizontal',
				transition: 'circ:out'
			});
		
			this.initContent();
		}
	},
	
	onMainMenuClick: function(event) {
		event.stop();
		var target = $(event.target);
		var li = target.getParent('li');
		var id = li.get('id').substr(8);
		
		this.mainMenu.getElements('li').removeClass('selected');
		li.addClass('selected');
		
		var firstItem = this.showSubmenuFor(id);
		if(!firstItem) {	// if there are no subsections, open contenent directly
			//console.debug('open content directly');
			this.openContent(target.get('href'));
			this.subMenuItemSelect();
		} else {
			this.clearContent();
			this.subMenuItemSelect();
		}
	},
	
	onSubMenuClick: function(event) {
		event.stop();
		var target = $(event.target);
		var li = target.getParent('li');
		this.subMenuItemSelect(li);
	},
	
	
	
	
	subMenuItemSelectTimeout:null,
	subMenuItemSelect: function(liItem) {
		if(!liItem || !liItem.hasClass('selected')) {
			$clear(this.subMenuItemSelectTimeout);
			this.subMenu.getElements('li').removeClass('selected');
			if(liItem) {
				//console.debug('open ', liItem);
				this.openContent(liItem.getElement('a').get('href'));
				liItem.addClass('selected');
			}

			var els = $$('.text.visible');
			if(els.length > 0) {
				els.slide('out')
				   //.fade('out');
				this.subMenuItemSelectTimeout = this.subMenuItemSelectDo.delay(700, this, [liItem]);
			} else {
				this.subMenuItemSelectDo(liItem);
			}
		}
	},
	subMenuItemSelectDo: function(liItem) {
		$$('.text.visible').removeClass('visible').addClass('hidden');
		
		if(liItem) {
			var id = liItem.get('id').substr(11);
			var els = $$('.subsection-' + id);
			if(els) {
				//console.debug(els);
				els.removeClass('hidden');
				els.addClass('visible')
				   .slide('hide').slide('in')
				   //.fade('hide').fade('in');
				//console.debug(els);
			}
			liItem.addClass('selected');
		}
	},
	
	
	
	
	showSubTimeout: null,
	showSubmenuFor: function(sectionId) {
		$clear(this.showSubTimeout);
		var els = this.subMenu.getElements('li.visible');
		this.subMenu.getElements('li').removeClass('selected');
		
		if(els.length > 0) {
			this.slideAndFade(els, 'out');
			//els.slide('out')
			   //.fade('out');
			this.showSubTimeout = this.showSubmenuDoFor.delay(700, this, [ sectionId ]);
		} else {
			this.showSubmenuDoFor(sectionId);
		}
		
		els = this.subMenu.getElements('.section-' + sectionId)
		if(els.length > 0) {
			return els[0];
		}
		return null;
	},
	showSubmenuDoFor: function(sectionId) {
		$clear(this.showSubTimeout);
		
		this.subMenu.getElements('li.visible').removeClass('visible').addClass('hidden');
		var els = this.subMenu.getElements('.section-' + sectionId);
		if(els.length > 0) {
			els.removeClass('hidden').addClass('visible')
			this.slideAndFade(els, 'in');
			   //.slide('hide').slide('in')
			   //.fade('hide').fade('in');
			//this.subMenuItemSelect(els[0]);
		}
	},
	
	
	
	
	
	slideAndFade: function(els, mode) {
		if(mode == 'in') {
			els.removeClass('hidden').morph('.listItemIn');
			//els.setStyle('margin-left', -els[0].getStyle('width'));
		} else {
			els.morph('.listItemOut');
		}
	},
	
	
	
	
	clearContent: function() {
		this.contentArea.empty();
	},
	openContent: function(href) {
		this.contentArea.load(href + '?ajax=1');
	},
	onOpenContentComplete: function(response) {
		this.initContent();
	},
	
	initContent: function() {
		if($('contentInside')) { 
			this.templateId = parseInt($('contentInside').get('class').split('-')[1]);
			switch(this.templateId) {
				case 3: new Gallery(this.contentArea); break;
				case 6: new Slideshow(this.contentArea); break;
			}
		}
	}
	
	
	
});










var Gallery = new Class({

	Extends: Swiff,
	
	initialize: function(container) {
		
		var flashVars = {};
		
		container.getElements('img').each(function(item, i) {
			flashVars['image' + (i + 1)] = item.get('src');
			flashVars['thumb' + (i + 1)] = item.get('src_small');
		}.bind(this));
		
		this.parent('/_content/Gallery.swf', {
		    id: 'galleryObject',
		    container: container,
		    width: '100%',
		    height: '100%',
		    params: {
		        wmode: 'opaque',
				scale: 'noscale',
				bgcolor: '#898989'
		    },
		    vars: flashVars
		});
	}
});

var Slideshow = new Class({

	Extends: Swiff,
	
	initialize: function(container) {
		
		var flashVars = {};
		
		container.getElements('img').each(function(item, i) {
			flashVars['image' + (i + 1)] = item.get('src');
		}.bind(this));
		
		this.parent('/_content/Slideshow.swf', {
		    id: 'slideshowObject',
		    container: container,
		    width: '100%',
		    height: '100%',
		    params: {
		        wmode: 'opaque',
				scale: 'noscale',
				bgcolor: '#898989'
		    },
		    vars: flashVars
		});
	}
});

















