/**
 * @author Mateusz Cyburt
 */     
 
var HsLang = new Class({
	initialize: function(lang){
		eval('this.'+lang+'()');
	}, // initialize
	
	pl: function(){
		hs.lang= {
			loadingText : 'Ładowanie...',
			loadingTitle : 'Kliknij aby anulować',
			focusTitle : 'Kliknij aby przenieść na wierzch',
			fullExpandTitle : 'Rozciągnij do aktualnych rozmiarów (f)',
			creditsText : 'Powered by <i>Eura7</i>',
			creditsTitle : 'Go to the Highslide JS homepage',
			previousText : 'Poprzedni',
			nextText : 'Następny', 
			moveText : 'Przesuń',
			closeText : 'Zamknij', 
			closeTitle : 'Zamknij (esc)', 
			resizeTitle : 'Zmień rozmiar',
			playText : 'Uruchom',
			playTitle : 'Uruchom pokaz zdjęć (spacja)',
			pauseText : 'Zatrzymaj',
			pauseTitle : 'Zatrzymaj pokaz zdjęć (spacja)',
			previousTitle : 'Poprzednie (strzałka w lewo)',
			nextTitle : 'Następne (strzałka w prawo)',
			moveTitle : 'Przesuń',
			fullExpandText : 'Pełny rozmiar',
			number: 'Zdjęcie %1 z %2',
			restoreTitle : 'Kliknij żeby zamknąć, przeciągnij żeby przesunąć, strzałki poprzednie/następne zdjęcie.'
		}
	},
	
	en: function(){
		hs.lang= {
			loadingText : 'Loading...',
			loadingTitle : 'Click to cancel',
			focusTitle : 'Click to bring to front',
			fullExpandTitle : 'Expand to actual size (f)',
			creditsText : 'Powered by <i>Eura7</i>',
			previousText : 'Previous',
			nextText : 'Next', 
			moveText : 'Move',
			closeText : 'Close', 
			closeTitle : 'Close (esc)', 
			resizeTitle : 'Resize',
			playText : 'Play',
			playTitle : 'Play slideshow (spacebar)',
			pauseText : 'Pause',
			pauseTitle : 'Pause slideshow (spacebar)',
			previousTitle : 'Previous (arrow left)',
			nextTitle : 'Next (arrow right)',
			moveTitle : 'Move',
			fullExpandText : 'Full size',
			number: 'Image %1 of %2',
			restoreTitle : 'Click to close image, click and drag to move. Use arrow keys for next and previous.'
		}
	},
	cs: function(){
		hs.lang= {
			loadingText : 'Naložení...',
			loadingTitle : 'Klepnutím zrušíte',
			focusTitle : 'Klikněte pro přechod na přední',
			fullExpandTitle : 'Rozšířit stávající velikosti (f)',
			previousText : 'Předchozí',
			nextText : 'Příští', 
			moveText : 'Stěhovat',
			closeText : 'Zavřít', 
			closeTitle : 'Zavřít (esc)', 
			resizeTitle : 'Velikost',
			playText : 'Začít',
			playTitle : 'Spustíme show foto (prostor)',
			pauseText : 'Stop',
			pauseTitle : 'Stop zobrazující fotografie (prostor)',
			previousTitle : 'Předchozí(Levý Arrow)',
			nextTitle : 'Příští (Právo Arrow)',
			moveTitle : 'Stěhovat',
			fullExpandText : 'Plná velikost',
			number: 'Obrázek %1 z %2',
			restoreTitle : 'Kliknutím zavřete, tažením přesouvat, šipky předchozí / následující obrázek.'
		}
	},
	lv: function(){
		hs.lang= {
			loadingText : 'Iekraušana...',
			loadingTitle : 'Noklikškiniet, lai atceltu',
			focusTitle : 'Noklikškiniet, lai parvietotos uz priekšu',
			fullExpandTitle : 'Pagarinat pašreizejo izmeru(f)',
			previousText : 'Iepriekšejais',
			nextText : 'Nakamais', 
			moveText : 'Kustiba',
			closeText : 'Aizvert', 
			closeTitle : 'Aizvert (esc)', 
			resizeTitle : 'Resize',
			playText : 'Sakums',
			playTitle : 'Palaidiet rādīt fotogrāfijas (space)',
			pauseText : 'Apturet',
			pauseTitle : 'Pietura paradot fotografijas (space)',
			previousTitle : 'Iepriekšejais (Kreisais Arrow)',
			nextTitle : 'Nakamais(tiesības arrow)',
			moveTitle : 'Kustiba',
			fullExpandText : 'Pilna izmera',
			number: 'Attels %1 no%2',
			restoreTitle : 'Noklikškiniet, lai cieša, velciet, lai parvietotu, bultinai iepriekšejo / nakamo attelu.'
			}
	},
	ru: function(){
		hs.lang= {
			loadingText : 'Идет загрузка...',
			loadingTitle : 'Нажмите, чтобы отменить',
			focusTitle : 'Нажмите, чтобы перейти на фронт',
			fullExpandTitle : 'Продлить нынешний размер (f)',
			previousText : 'Предыдущая',
			nextText : 'Следующий', 
			moveText : 'Двигаться',
			closeText : 'Закрыть', 
			closeTitle : 'закрыть (esc)', 
			resizeTitle : 'Изменение размера',
			playText : 'Начало',
			playTitle : 'Запуск шоу фотографий (пространство)',
			pauseText : 'Остановка',
			pauseTitle : 'Не показывать фотографии (пространство)',
			previousTitle : 'Предыдущая (Стрелка влево)',
			nextTitle : 'Следующий (Стрелка вправо)',
			moveTitle : 'Двигаться',
			fullExpandText : 'Полный размер',
			number: 'Фото %1 из %2',
			restoreTitle : 'Нажмите, чтобы закрыть, Перетащите, стрелки предыдущего / следующего изображения.'
			}
	},
	de: function(){
		hs.lang= {
			loadingText : 'Laden...',
			loadingTitle : 'Klicken Sie auf Abbrechen',
			focusTitle : 'Klicken Sie an die Front zu bewegen',
			fullExpandTitle : 'Verlängern Sie die aktuelle Größe (f)',
			creditsText : 'Powered by <i>Eura7</i>',
			creditsTitle : 'Go to the Highslide JS homepage',
			previousText : 'Vorherige',
			nextText : 'Nächste', 
			moveText : 'Bewegen Sie den',
			closeText : 'Schließen', 
			closeTitle : 'Schließen (esc)', 
			resizeTitle : 'Resize',
			playText : 'Laufen',
			playTitle : 'Start der Diashow (Space)',
			pauseText : 'Stopp',
			pauseTitle : 'Stop der Diashow (Space)',
			previousTitle : 'Zurück (Pfeil nach links)',
			nextTitle : 'Weiter (Pfeil rechts)',
			moveTitle : 'Bewegen',
			fullExpandText : 'Full size',
			number: 'Bild %1 von %2',
			restoreTitle : 'Klicken um zu schließen, ziehen Sie sich zu bewegen, Pfeil vorherigen / nächsten Bild.'
		}
	}
})

var Main = new Class({
		initialize: function(){
			hs.graphicsDir = 'html/scripts/highslide/graphics/';
			hs.align = 'center';
			hs.transitions = ['expand', 'crossfade'];
			hs.outlineType = 'rounded-white';
			hs.fadeInOut = true;
			hs.showCredits = false;
			hs.dimmingOpacity = 0.75;
		
		    hs.captionEval = 'this.thumb.title';

			// Add the controlbar
			hs.addSlideshow({
				interval: 5000,
				repeat: false,
				useControls: true,
				fixedControls: 'fit',
				overlayOptions: {
					opacity: .75,
					position: 'bottom center',
					hideOnMouseOut: true
				}
			});	
	}, // initialize

    domReady: function() {
		this.setLang();
		this.getMusicStatus();
		this.activateInputs();
		this.insertFlash();
		this.insertFlashText();
		this.activateBackBtn();
		this.activateHighslide();
		this.activateForms();
		this.activatePager();
		this.insertBanner();
		this.insertGmap();
		this.setHsLang();
		try {
			this.insertCalendar();
		} catch(e) {};
		var fix4ie = new Fix4ie();
	}, // domReady
    
    insertCalendar: function() {
    	var elems = $$('.date');
    	elems.each(function(obj, key){
    		eval('var calendar_' + key + ' = new Calendar({ ' + obj.get('id') + ': \'Y-m-d\' }, { classes: [\'dashboard\'], direction: 1, draggable: 1,offset: 1});');
    	});
    }, // insertCalendar
    
   insertGmap: function() {
	  if ($('gmap') && GBrowserIsCompatible() ) {
		 //<!-- [4.5;24] -->
		 var reg = new RegExp('\\[(.+)\\]');
		 var data = reg.exec($('gmap').innerHTML);
		 data = data[1].split(';');
		 
     		 var map = new GMap2($('gmap'));
		 map.setCenter(new GLatLng(data[0],data[1]), 15);
		 map.addControl(new GSmallMapControl());
		 map.addControl(new GMapTypeControl());
		    
		 var point = new GLatLng(data[0],data[1]);
		 map.addOverlay(new GMarker(point));
		 
		 //map.openInfoWindowHtml(point, $('contact_desc').innerHTML);
	  }
	},
	
	activateHighslide: function() {
		$$('a[rel=highslide]').each(function(obj){
			obj.onclick = function() { return hs.expand(this); };
		});
	}, //activateHighslide
	
    insertFlash: function(){
		var elements = $$('div.flash');
		if (   (Browser.Engine.trident && Browser.Plugins.Flash.version < 10)
		    || (!Browser.Engine.trident && Browser.Plugins.Flash.version < 9)) {
			$('install-flash').setStyle('display', 'block');
			$('flash-top').setStyle('background-image', 'none');
		} else {
			if (elements.length > 0) {
		    	elements.each(
		    	    //obj.setStyle('background-image', 'none');
		    	    function(obj){
		            	var size = obj.getSize();
	    	        	var id = obj.get('id');
	    	        	var fileName = id + '.swf';
	    	            if (id == 'flash-top') {
	    	            	fileName+='?miasto='+obj.title+'&lang='+main.lang;

	    	            	var reg = new RegExp('\\[(.+)\\]');
	    	       		    var attraction = reg.exec($('flash-top').innerHTML);
	    	       		    var musicStatus = main.getMusicStatus();
	    	       		    if (attraction && attraction != '') fileName+='&attraction='+attraction[1];
	    	            }
	        		var SwiffObj = new Swiff('html/flash/' + fileName, { id: "flash" + $random(1,99),container: id, width: size.x, height: size.y, 
											 params: {wmode: 'transparent', bgcolor: obj.getStyle('background-color')} });
	            		if(!SwiffObj) obj.setStyle('background-image', 'url(../gfx/flash.gif)');
		    	    });
			}
		}
    }, // insertFlash
    
    insertFlashText: function(){
		var elements = $$('.flash-text');
		if (elements.length > 0) {
	    	elements.each(
	    	    function(obj){
	            	var size = obj.getSize();
    	        	var id = obj.get('id');
    	        	var talign = 0;
    	        	if (id=='attraction-qty') talign = 1;
    	        	else if (obj.hasClass('txt')) talign = 2;
    	        	var text = obj.innerHTML.replace(/\+/, "%2b");
    	        	text = text.replace(/\&amp;/, "%26");
    	        	
    	        	var SwiffObj = new Swiff('html/flash/flash-text.swf', { id: "flash" + $random(1,99),container: id, width: size.x, height: size.y, 
										 params: {wmode: 'transparent', bgcolor: 'transparent', menu: 'false' },
										 vars: {talign:talign, tekst: text} });
            		// if(!SwiffObj) obj.setStyle('background-image', 'url(../gfx/flash.gif)');
	    	    });
		}
    }, // insertFlashText
    
	checkTitles: function(form) {
		form.getElements('input[type=text]').each(function(obj){
			if (obj.value == obj.title) obj.value = '';
		});
		form.getElements('textarea').each(function(obj){
			if (obj.value == obj.title) obj.value = '';
		});
	}, // checkTitles
	
	activateInputs: function() {
		$$('input[type=text]').each(function(obj){
			// obj.value = obj.title;
			obj.onclick = function() { if (obj.value == obj.title) { obj.value = '';} };
			obj.onblur = function()  { if (obj.value == '') { obj.value = obj.title;} };
		});

		$$('textarea').each(function(obj){
			obj.onclick = function() { if (obj.innerHTML == obj.title){ obj.innerHTML = '';} };
			obj.onblur = function()  { if (obj.innerHTML == ''){obj.innerHTML = obj.title;} };
		});

		$$('form').each(function(obj){
			obj.onsubmit = function() { main.checkTitles(this); };
		});
	}, // activateInputs
	
	activateBackBtn: function() {
		$$('a.back_btn').each(function(obj){
			obj.onclick = function() { history.back(); return false; };
		});
	},
	
	addNewsletter: function() {
		var myRequest = new Request({
			url: 'ajax/add2newsletter', 
			method: 'post',
			data: {'email' : $('newsletter_email').value,
				   'group' : $('newsletter_group').value },
			onRequest: function() { 
					   $('newsletter_form_btn').setStyle('display', 'none');
					   $('loader').setStyle('display', 'block'); },  
			onComplete: function(response) {
					   if (response.search(/<span class="error">/) != -1) {
						   $('newsletter_email').addClass('error');
					   } else {
						   $('newsletter_email').removeClass('error');
						   $('newsletter_email').value = $('newsletter_email').title;
					   }
					   $('loader').setStyle('display', 'none');
					   $('newsletter_form_btn').setStyle('display', 'block');
					   $('newsletter_status').innerHTML = response; }  
		});
		myRequest.send();	
	}, // addNewsletter

	activateForms: function() {
		if ($('newsletter_form')) {
			$('newsletter_form_btn').onclick = function(){ 
				main.checkTitles($('newsletter_form')); 
				main.addNewsletter(); 
				return false; 
			};
		}
		if ($('mySelect')) var mySelect = new elSelect( {container : 'mySelect'} );
	}, // activateForms
	
	loadNews: function(obj) {
		var req = new Request({
			url: obj.rel,
			async: true,
			method: 'get',
			onComplete: function(response) {
				$('news_container').innerHTML = response;
				main.activatePager();
			}
		});
		req.send();
	}, // loadNews
	
	activatePager: function() {
		$$('div.pager a').each(function(obj) {
			obj.addEvent('click', function() {main.loadNews(this);return false;});
		});
	}, // activatePager
	
	showMail: function(user, dmain, contry, attr) {
		var start = "<a href=\"mailto:" + user + "@" + dmain + "." + contry + "\"" + attr + "title=\"" + user + "@" + dmain + "." + contry + "\">";
		var end = "</a>";
		document.write(start + user + "@" + dmain + "." + contry + end);
		return false;
	}, // showMail
	
	killBanner: function() {
		$('banner').setStyle('visibility', 'hidden');
		if ( Browser.Engine.trident4 ) {
			window.removeEvents();
		}
	}, // killBanner
	
	insertBanner: function() {
		if ($('banner')) {
			$('banner').setStyle('visibility', 'visible');
			if ( Browser.Engine.trident4 ) {
				window.addEvent('scroll', function(){
					var top = Math.round(($('body').getSize().y - $('banner').getSize().y)/2) + window.getScroll().y;
					$('banner').setStyle('margin-top', top+'px');
				});
			}
			$('banner-link').addEvent('click', function() { main.killBanner(); return false; });
			$('banner-close').addEvent('click', function() { main.killBanner(); return false; });
		}
	}, // insertBanner
	
	setLang: function() {
		var lang = $$('head meta[name=language]');
		this.lang = lang[0].get('content');
	},
	
	setHsLang: function() {
		var hsLang = new HsLang(this.lang);
	}, // initLangs
	
	getMusicStatus: function() {
		var status = Cookie.read("fantasyParkMusic");
		if (!status) status=1;
		return status;
	},
	
	setMusicStatus: function(status) {
		Cookie.write('fantasyParkMusic', status);
	}
}); // Main

var Fix4ie = new Class({
	initialize: function(){
		try {
			if ( Browser.Engine.trident ) {
				this.fixInputFocus();
			}
		} catch(e) {alert(e.message)};
		if ( Browser.Engine.trident4 ) {
			this.fixHovers();
			this.fixPng();
		}
	}, // initialize

	fixInputFocus: function() {
    	var elems = $$('input');  
        elems.each(function(obj) {
            obj.onclick = function() { if (obj.value == obj.title) { obj.value = ''};this.addClass('focus'); };
            obj.onblur = function()  { if (obj.value == '') { obj.value = obj.title};this.removeClass('focus'); };
        });
    }, // fixInputFocus

    fixHovers: function() {
    	var elems = $$('input,button,li,tr');
        elems.each(function(obj) {
            obj.onmouseover = function() {
            	var new_class = this.get('class');
            	if (new_class != '') this.addClass('hover_' + new_class);
            	else this.addClass('hover');
            };
            obj.onmouseout = function()  {
            	var class_name = this.get('class');

            	if (this.hasClass('hover')) this.removeClass('hover');
            	else {
            		class_array = class_name.split(' ');
            		class_array.each(function(element){
            			if (element.match('hover_')) obj.removeClass(element);
            		});
            	}
            };
        });
    }, // fixHovers
    
    fixPng: function() {
    	/*
	    $$('body .content *').each(function(el){
	    	   var background = el.getStyle('background-image');
	    	   if(background != 'none') {
	    	    var regex = /\/html(.+)\.png/;
	    	    var result = regex.exec(background);
	    	    if(result[0]) {
	    	     el.setStyle('background', 'none');
	    	     el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + result[0] + '\', sizingMethod=\'scale\')';
	    	    }
	    	   }
	    	  });
    	  */
    } // fixPng
}); // fix4ie6

var main = new Main();

window.addEvent('domready', function(){ main.domReady(); });

