var SiteClass = new Class({

	initialize: function(){

		hs.registerOverlay(
			{
				thumbnailId: null,
				overlayId: 'controlbar',
				position: 'top right',
				hideOnMouseOut: true
			}
		);
		hs.graphicsDir = 'public/images/highslide/graphics/';
		hs.outlineType = 'rounded-white';
		hs.align = 'center';
		hs.restoreTitle = lang.restoreTitle;
		hs.loadingText = lang.loadingText;
		hs.loadingTitle = lang.loadingTitle;
		hs.focusTitle = lang.focusTitle;
		hs.fullExpandTitle = lang.fullExpandTitle;
		hs.previousText = lang.previousText;
		hs.nextText = lang.nextText; 
		hs.moveText = lang.moveText;
		hs.closeText = lang.closeText; 
		hs.closeTitle = lang.closeTitle; 
		hs.resizeTitle = lang.resizeTitle;		
		
}, // initialize

	
	domReady: function() {

		//this.checkFooterMargin(); // sprawdza czy stopka dotyka dolu strony
		this.activateUserPanelMenu();
		this.activataServersTable();
		this.activateAutocompleter();
		this.activateFaq();
		this.activateNewsComments();
		this.activateOrder();
		this.activateSIFR();
		this.activateNewsletter();
		this.activateFlash();
		this.activatePing();
		this.activateSMS();
		this.activateMonitoring();
		this.activateConfirmations();
		
		$$('a.jback').each(function(a){a.addEvent('click', function(){ window.history.go(-1); })});
	}, // domReady
	
	activateConfirmations: function() {
		$$('a.confirm').each(function(a){
			a.addEvent('click', function(){
				return confirm(lang.areYouSure);
			});
		});	
	}, //activateConfirmations
	
	activateMonitoring: function() {
		
		if($('panel_status')) {
			$$('div#panel_status_type a').each(function(a){
				a.addEvent('click', function(){
					if(!this.hasClass('bold')) {
						Cookie.write('server_status', (this.id == 'server_status_full')?'full':'mini', { path: '/', duration: 365 });
						$$('div#panel_status_type a').each(function(a){ a.toggleClass('bold'); });
						Site.refreshMonitoring();
					}
					return false;
				});
			});
			(Site.refreshMonitoring).periodical(30000);

		}
		
	}, //activateMonitoring
	
	refreshMonitoring: function() {
		$('panel_status').empty();
		var div = new Element('div', {'class': 'loading'});
		div.injectInside($('panel_status'));
		$('panel_status').load($('server_status_full').get('href'));
		Site.activatePing();
	}, //refreshMonitoring
	
	activateSMS: function() {
	
		if($('panel_sms')) {
			$$('ul#sms-list label').each(function(label){
				label.addEvent('click', function() {
					var value = this.getFirst().value, number, text, brutto;
					$('info_sms').setStyle('display', 'block');
					switch(value) {
						case '0': number = '70068'; text = 'AP.FRAG.0'; brutto = '0,61'; break;
						case '1': number = '71068'; text = 'AP.FRAG.1'; brutto = '1,22'; break;
						case '2': number = '72068'; text = 'AP.FRAG.2'; brutto = '2,44'; break;
						case '3': number = '73068'; text = 'AP.FRAG.3'; brutto = '3,66'; break;
						case '5': number = '75068'; text = 'AP.FRAG.5'; brutto = '6,10'; break;
						case '6': number = '76068'; text = 'AP.FRAG.6'; brutto = '7,32'; break;
						case '9': number = '79068'; text = 'AP.FRAG.9'; brutto = '10,98'; break;
						case '19': number = '91968'; text = 'AP.FRAG.19'; brutto = '23,18'; break;
					}
					$('sms_number').innerHTML = number;
					$('sms_content').innerHTML = text;
					$('brutto').innerHTML = brutto;
				});									  
			});
		}
	
	}, //activateSMS
	
	activateFlash: function() {

		if($('flash_map')) {
			var version = deconcept.SWFObjectUtil.getPlayerVersion();
			if (document.getElementById && version["major"] < 7) {} else {
				var so = new SWFObject("/public/flash/mapa.swf?lang="+lang.lang, "swf_map", 283, 251, "7", "#000000");
				so.addParam("scale", "noscale");
				so.addParam("wmode", "transparent");
				so.addParam("menu", "false");
				so.write('flash_map');
			}
		}

		if($('flash_map_big')) {
			var version = deconcept.SWFObjectUtil.getPlayerVersion();
			if (document.getElementById && version["major"] < 7) {} else {
				var so = new SWFObject("/public/flash/mapa_duza.swf?lang="+lang.lang, "swf_map_big", 577, 512, "7", "#000000");
				so.addParam("scale", "noscale");
				so.addParam("wmode", "transparent");
				so.addParam("menu", "false");
				so.write('flash_map_big');
			}
		}

		if($('banner_div')) {
			$$('div#banner_div div.banner span').each(function(s, i){
				var div = s.getParent('div');
				var parts = s.innerHTML.split('|');
				if(parts[1] <= 577) { //577px to max szerokosci kontenera
					div.setStyle('width', parts[1]+'px');
				} else {
					div.setStyle('width', '577px');
					div.setStyle('overflow-x', 'scroll');
				}
				var version = deconcept.SWFObjectUtil.getPlayerVersion();
				if (document.getElementById && version["major"] < 7) {} else {
					var so = new SWFObject(parts[0], "swf_"+i, parts[1], parts[2], "7", "#252222");
					so.addParam("scale", "noscale");
					so.addParam("wmode", "transparent");
					so.addParam("menu", "false");
					so.write(div.get('id'));
				}
			});
			
			$$('div#banner_div div.banner_servers_select select').each(function(select){
				select.addEvent('change', function(){
					var code = this.getParent().getNext();
					var regex = /server=[^"]+"/g;
					if (regex.test(code.innerHTML)) {
						code.innerHTML = code.innerHTML.replace(regex,'server='+this.value+'"');
					}
				});																	
			});
		}
	
	}, //activateBanners
	
	activateNewsletter: function() {

		if($('newsletter')) {
			$('newsletter_add_btn').addEvent('click', function(){ $('email_add').value = '1'; });
			$('newsletter_rem_btn').addEvent('click', function(){ $('email_add').value = '0'; });
		}
		
	}, // activateNewsletter
	
	activateSIFR: function() {

		if(typeof sIFR == "function"){
			sIFR.replaceElement(named({sSelector:"h1.caption", sFlashSrc:"/public/flash/sifr.swf", sColor:"#000000", sLinkColor:"#000000", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"textalign=left&offsetTop=0"}));
		}
		
	}, //activateSIFR

	activateOrder: function() {
		
		if($('pay_by_points_link')) {
			$('pay_by_points_link').addEvent('click', function(){
				div = $('body-loader');
				var size = $('fragers').getSize();
				div.setStyle('display', 'block');
				div.setStyle('height', size.y+'px');
				div.setStyle('opacity', 0);
				var top = Math.round(($('body').getSize().y - $('body-loader-container').getSize().y)/2) + window.getScroll().y;
				$('body-loader-container').setStyle('top', top+'px');
				new Fx.Tween(div).start('opacity', 0, 0.75);
				window.addEvent('scroll', function(){
					var top = Math.round(($('body').getSize().y - $('body-loader-container').getSize().y)/2) + window.getScroll().y;
					$('body-loader-container').setStyle('margin-top', top+'px');
				});
			});
		}
		
		if($('order_form')) {
			
			$('order_form').addEvent('submit', function() {
				if(this.elements['time'].value != '' &&	this.elements['slots'].value != '') {
						
					if(
						this.elements['game'].value == '0' || 
						this.elements['localization'].value == '0' || 
						this.elements['type'].value == '0' || 
						isNaN(this.elements['time'].value) || 
						this.elements['time'].value == '' ||
						isNaN(this.elements['slots'].value) || 
						this.elements['slots'].value == ''
					  ) {
						alert(lang.pricelistError);
						return false;
					}
					
					if($('order_div')) this.action = '/ajax/pricelist/order/true';
						else this.action = '/ajax/pricelist';
						
					$('ajax_result').innerHTML = '';
					$('ajax_result').addClass('loader');
					this.set('send', {
						onComplete: function(response) {
							if(response) {
								$('ajax_result').removeClass('loader');
								$('ajax_result').innerHTML = response;
								if($('submit_order')) {
									$('submit_order').addEvent('click', function() {
										$('order_form').action = lang.orderUrl;
										$('order_form').removeEvents('submit');
									});
								}
							}
						},
						onFailure: function() {
							$('ajax_result').removeClass('loader');
							$('ajax_result').innerHTML = lang.ajaxError;
						},
						evalScripts: true
					});
					this.send();
						
				}
				return false;
			});
			$$('form#order_form select', 'form#order_form input').each(function(obj){ obj.addEvent('change', function(){ $('order_form').fireEvent('submit'); }); });
			if(!isNaN($('order_form').elements['slots'].value) && $('order_form').elements['slots'].value != '') $('order_form').fireEvent('submit');
			
		}
	
	}, //activateOrder
	
	activateNewsComments: function() {
	
		if($('add_comment')) {
			
			var textarea = $('comment_textarea');
			
			$$('ul#comments li div.comment_user span').each(function(div) {
				div.addEvent('click', function() {
					var scrollFx = new Fx.Scroll(window, { transition: Fx.Transitions.Quad.easeInOut });
					scrollFx.toBottom();
					
					var regex = /^@[^:]+:/g;
					if (regex.test(textarea.value)) {
						textarea.value = textarea.value.replace(regex,'@'+this.innerHTML+':');
					} else {
						textarea.value = '@'+this.innerHTML+': '+textarea.value;
					}
					
					textarea.fireEvent('keyup');
					textarea.focus();
				});
				div.addClass('cursor');
			});
			
			textarea.addEvent('keyup', function() {
				var maxlen = 240;
				if (this.value.length > maxlen) {
				   this.value = this.value.substring(0, maxlen);
				}
				var left = maxlen - this.value.length;
				if (left < 0) left = 0;
				$('comment_tip').innerHTML = lang.charsLeft.replace('%d', left);
			});
			
			textarea.fireEvent('keyup');
		}
	
	}, //activateNewsComments
	
	activateFaq: function() {
	
		if($('faq_ul')) {
			$$('ul#faq_ul li').each(function(li) {
				var href = document.location.href.split("#");
				if(li.getFirst().innerHTML != href[1]) li.addClass('closed'); // jak po hashu jest name pozycji to nie jest zwijana (link z wynikow wyszukiwania dodaje hashe)
				li.addEvent('click', function(){ this.toggleClass('closed'); })
				  .addEvent('mouseenter', function(){ this.addClass('hover'); })
				  .addEvent('mouseleave', function(){ this.removeClass('hover'); });
			});
			
			$$('div#faq_expand a').each(function(a) {
				if(a.hasClass('collapse')) a.addEvent('click', function() { $$('ul#faq_ul li').each(function(li) { li.addClass('closed'); }); });
				if(a.hasClass('expand')) a.addEvent('click', function() { $$('ul#faq_ul li').each(function(li) { li.removeClass('closed'); }); });
			});
		}
	
	}, // activateFaq
	
	activataServersTable: function() {
	
		if($('servers_list_enabled') || $('servers_list_disabled')) {
			$$('table.servers_list tr').each(function(tr, i) { if(i > 0) { tr.addEvent('mouseenter', function(){ this.addClass('hover'); }); tr.addEvent('mouseleave', function(){ this.removeClass('hover'); }); } });
			$$('table.servers_list td.col_5 div').each(function(div) { div.addEvent('mouseenter', function(){ this.addClass('active'); }); div.addEvent('mouseleave', function(){ this.removeClass('active'); }); });
		}
	
	}, // activataServersTable
	
	activateAutocompleter: function() {

		if($('q')) {
			new Autocompleter.Request.HTML($('q'), '/ajax/search-suggest', {
				'indicatorClass': 'search-autocompleter-loading',
				'allowSelect': true,
				'className': 'search-autocompleter-choices',
				'minLength': 3
			});			
		}

		if($('panel_faq_form')) {
			new Autocompleter.Request.HTML($('faq_name'), '/ajax/faq-suggest', {
				'indicatorClass': 'autocompleter-loading',
				'allowSelect': false,
				'className': 'autocompleter-choices',
				'minLength': 3
			});			
		}
	
	}, // activateAutocompleter
	
	activateUserPanelMenu: function() {

		if($('user_panel_menu')) {
			if(Browser.Engine.trident) {
				$$('ul#user_panel_menu li a span').each(function(s){ var size = s.getSize(); s.getParent().getParent().setStyle('width', size.x+'px') });
				$$('ul#user_panel_menu li a b.r1, ul#user_panel_menu li a b.r4').each(function(b){ var size = b.getParent().getSize(); b.setStyle('width', (size.x+10)+'px') });
				$$('ul#user_panel_menu li a b.r2, ul#user_panel_menu li a b.r3').each(function(b){ var size = b.getParent().getSize(); b.setStyle('width', (size.x+12)+'px') });
			}
			if(Browser.Engine.trident && Browser.Engine.version == 4) { //IE 6
				$$('ul#user_panel_menu li a').each(function(a){ a.addEvent('mouseenter', function(){ if(this.hasClass('active')) { this.addClass('has_active'); } else { this.addClass('active'); } })});
				$$('ul#user_panel_menu li a').each(function(a){ a.addEvent('mouseleave', function(){ if(this.hasClass('has_active')) { this.removeClass('has_active'); } else { this.removeClass('active'); } })});
			}
			$('user_panel_menu').removeClass('temporary');
		}
		
	}, // activateUserPanelMenu
	
	checkFooterMargin: function() {
	
		var sizeb = $('body').getSize();
		var sizef = $('fragers').getSize();
		var diff = sizeb.y - sizef.y;
		if(diff > 0) $('footer').setStyle('margin-top', diff+'px');

	}, //checkFooterMargin
	
	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
	
	insertPing: function(ip, obj) {
		var myReq = new Request({
			url: 'ajax/ping/', 
			method: 'post',
			data: {'sServerIp' : ip},
			onComplete: function(response) { 
					   obj.setStyle('background-image', 'none');
					   obj.innerHTML = response;						   
			}  
		});
		myReq.send();
	},
	
	activatePing: function() {
		var ping_s = $('ping');
		var ping_multi = $$('span.ping_span');
		if (ping_s) {
			this.insertPing(ping_s.title,ping_s)
		} else if (ping_multi.length > 0) {
			ping_multi.each(function(obj){
				Site.insertPing(obj.title, obj)
			});
		}
	}
	
});

var Site = new SiteClass();
window.addEvent('domready', function(){ Site.domReady(); });