var SiteClass = new Class({

	initialize: function(){
	
		hs.lang.cssDirection = lang.cssDirection;
		hs.lang.loadingText = lang.loadingText;
		hs.lang.loadingTitle = lang.loadingTitle;
		hs.lang.focusTitle = lang.focusTitle;
		hs.lang.fullExpandTitle = lang.fullExpandTitle;
		hs.lang.previousText = lang.previousText;
		hs.lang.nextText = lang.nextText; 
		hs.lang.moveText = lang.moveText;
		hs.lang.closeText = lang.closeText; 
		hs.lang.closeTitle = lang.closeTitle; 
		hs.lang.resizeTitle = lang.resizeTitle;
		hs.lang.playText = lang.playText;
		hs.lang.playTitle = lang.playTitle;
		hs.lang.pauseText = lang.pauseText;
		hs.lang.pauseTitle = lang.pauseTitle;
		hs.lang.previousTitle = lang.previousTitle;
		hs.lang.nextTitle = lang.nextTitle;
		hs.lang.moveTitle = lang.moveTitle;
		hs.lang.fullExpandText = lang.fullExpandText;
		hs.lang.number = lang.number;
		hs.lang.restoreTitle = lang.restoreTitle;			
		hs.graphicsDir = 'public/gfx/highslide/';
		hs.align = 'center';
		hs.transitions = ['expand', 'crossfade'];
		hs.outlineType = 'rounded-white';
		hs.fadeInOut = true;
		hs.dimmingOpacity = 0.25;
	
		hs.addSlideshow({
			//slideshowGroup: 'group1',
			interval: 5000,
			repeat: false,
			useControls: true,
			fixedControls: 'fit',
			overlayOptions: {
				opacity: .75,
				position: 'bottom center',
				hideOnMouseOut: true
			}
		});
				
	}, // initialize

	
	domReady: function() {
		
		Custom.init();
		
		$$('div#categories h3 a').each(function(a){ a.addClass('cufon cufonNormal'); });
		this.setActiveLinks('ul#menu');
		this.setActiveLinks('ul#accountMenu');
		
		this.setActiveCategories();
		
		Cufon.replace('.cufonNormal', { hover: true });
		Cufon.replace('.cufonShadow', { hover: true, textShadow: '#1F1F1F 3px 3px' });
		Cufon.now();

		if($('q')) new OverText($('q'));
		this.activateProductsList();
		this.activateProductsDetails();
		this.activateMainPage();
		this.activateUserForm();
		
	}, // domReady
	
	activateUserForm: function() {
		if(!$('registrationForm')) return null;
		$('type').addEvent('change', function(){
			var value = this.getSelected()[0].value;
			if(value == '1') this.getParent('form').addClass('isCompany');
				else this.getParent('form').removeClass('isCompany');
		});
		if($('type').getSelected()[0].value == '1') $('type').getParent('form').addClass('isCompany');
	}, //activateRegistration
	
	activateLicences: function() {
		if(!$('license-list')) return null;
		
		$$('ul#license-list input').each(function(input){
			input.addEvent('change', function(){
				$$('ul#license-list input').each(function(input){
					if(input.checked) Site.calculatePrice();
				});
			});
			input.getPrevious('span').addEvent('click', function(){ this.getNext('input').fireEvent('change'); });
			if(input.checked) Site.calculatePrice();		
		});

		if($('ext')) {
			Site.mySlide = new Fx.Slide($('extLicenses'), {duration: 500}).hide();
			$('ext').addEvent('click', function(){ Site.mySlide.toggle(); });
			$$('#extLicenses input').each(function(input){
				if(input.checked) $('ext').fireEvent('click');
			});
		}
	}, //activateLicences

	activateResolutions: function() {
		if(!$('resolution-list')) return null;
		$$('ul#resolution-list input').each(function(input){
			input.addEvent('change', function(){
				$$('table.info-table').each(function(t){ t.hide(); });
				$$('ul#resolution-list input').each(function(input){
					if(input.checked) {
						Site.calculatePrice();
						$('info-table-'+input.value).show();
					}
				});
				
			});
			input.getPrevious('span').addEvent('click', function(){ this.getNext('input').fireEvent('change'); });
			if(input.checked) {
				Site.calculatePrice();		
				$('info-table-'+input.value).show();
			}
		});
	}, //activateResolutions
	
	calculatePrice: function() {
		if(!$('resolution-list')) return null;
		if(!$('license-list')) return null;
		
		var resArr = $$('ul#resolution-list input');
		var licArr = $$('ul#license-list input');
		var res = null;
		var lic = null;
		for(var i=0; i<resArr.length;i++) if(resArr[i].checked) res = resArr[i].value;
		for(var i=0; i<licArr.length;i++) if(licArr[i].checked) lic = licArr[i].value;
				
		var json = JSON.decode(prices);
		$('points').innerHTML = json[res][lic];
		Cufon.replace('#points');
		$('buy-layer').setStyle('display', 'block');		
	}, //calculatePrice
	
	setActiveLinks: function(pattern) {
		var path = document.location.pathname.substr(1);
		if(path.charAt(path.length-1) == '/') path = path.substr(0, path.length-1);
			else if(path == '') path = '/'; // main page
		path = path.replace(/\/\d+\/?$/, '').replace(/\/[0-9a-z-]+\.html\/?$/, '');
		
		var links = $$(pattern+' a[href='+path+']');
		while(links.length == 0 && path != '') {
			path = path.split('/');
			path.pop();
			path = path.join('/');
			links = $$(pattern+' a[href='+path+']');
		}
		if(links.length == 1) {
			var a = links[0];
			a.addClass('active');
		}
		
	}, //setActiveMenu

	setActiveCategories: function() {
		$$('div#categories ul ul li.active').each(function(li){
			var parent = li.getParent('li');
			if (parent) parent.addClass('active');
		});
	}, //setActiveMenu

	activateProductsList: function() {
		if(!$('products-list')) return null;
		
		//for(var i=0; i < 8; i++) $('products-list').getFirst().clone().inject('products-list','bottom');
		
		$$('ul#products-list li').each(function(li, i){
			if(i%5 == 2 || i%5 == 3) li.addClass('mirror');
			li.addEvent('mouseenter', function(){ 
				this.addClass('hover');
				var container = this.getElement('div.flash');
				if(!container) return null;
				var flvUrl = this.getElement('div.flv').innerHTML;
				if(!flvUrl) return null;
				
				new Swiff('public/flash/player.swf', {
					id: 'player',
					container: container,
					width: '100%',
					height: '100%',
					params: {
						wmode: 'transparent',
						allowscriptaccess: 'always'
					},
					vars: {
						flvPath: flvUrl,
						autoStart: '1',
						autoHide: '1',
						hideTime: '0',
						hideTweenTime: '0',
						autoRepeat: '1',
						rightPadding: '62',
						bottomPadding: '20',
						leftPadding: '10',
						autoRepeat: '1',
						hideSkin: '0'
					}
				});
				
			});
			li.addEvent('mouseleave', function(){ 
				this.removeClass('hover');
				var container = this.getElement('div.flash');
				if(container) container.empty();
			});
			var tooltip = li.getElement('div.tooltip');
			if (tooltip) tooltip.addEvent('mouseenter', function(){ this.getParent('li').fireEvent('mouseleave'); });
		});
	}, //activateProductsList
	
	activateProductsDetails: function() {
		this.activateLicences();
		this.activateResolutions();
		if($('details-flash')) { 
			var flvUrl = $('details-flash').getFirst().innerHTML;
			if(flvUrl) {
				new Swiff('public/flash/player.swf', {
					id: 'player',
					container: $('details-flash'),
					width: '100%',
					height: '100%',
					params: {
						wmode: 'transparent',
						allowscriptaccess: 'always'
					},
					vars: {
						flvPath: flvUrl,
						autoStart: '1',
						autoHide: '1',
						hideTime: '1000',
						hideTweenTime: '500',
						autoRepeat: '1',
						rightPadding: '72',
						bottomPadding: '30',
						leftPadding: '20',
						autoRepeat: '1'
					}
				});
			}
		}
		
		$$('ul#license-list a').each(function(a){
			a.href += '?popup=1';
		});
		
	}, // activateProductsDetails

	activateMainPage:function() {
		if($('main-player')) { 
			var flvUrl = $('main-player').getFirst().innerHTML;
			if(flvUrl) {
				new Swiff('public/flash/player.swf', {
					id: 'player',
					container: $('main-player'),
					width: '100%',
					height: '100%',
					params: {
						wmode: 'transparent',
						allowscriptaccess: 'always'
					},
					vars: {
						flvPath: flvUrl,
						autoStart: '1',
						autoHide: '1',
						hideTime: '1000',
						hideTweenTime: '500',
						autoRepeat: '1',
						rightPadding: '72',
						bottomPadding: '30',
						leftPadding: '20',
						autoRepeat: '1'
					}
				});
			}
		}		
	}, //activateMainPage
	
	showMail: function(user, domain, contry, attr) {
		var start = "<a href=\"mailto:" + user + "@" + domain + "." + contry + "\"" + attr + ">";
		var end = "</a>";
		document.write(start + user + "@" + domain + "." + contry + end);
		return false;
	} // showMail
	
});

var Site = new SiteClass();
window.addEvent('domready', function(){ Site.domReady(); });

