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.50;
		hs.showCredits = false;
	
		hs.addSlideshow({
			//slideshowGroup: 'group1',
			interval: 5000,
			repeat: false,
			useControls: true,
			fixedControls: 'fit',
			overlayOptions: {
				opacity: .75,
				position: 'bottom center',
				hideOnMouseOut: true
			}
		});
				
	}, // initialize

	domReady: function() {

		if(Browser.Engine.trident4) $$('div#menu li').each(function(li){ li.addEvent('mouseenter', function(){ this.addClass('hover'); }).addEvent('mouseleave', function(){ this.removeClass('hover'); }); });
		
		$$('div#menu > ul > li > h2 > a').each(function(a){
			a.addClass('cufon').addClass('cufonNormal');
			var text = a.get('text');
			a.empty();
			var on = new Element('span', {'class':'on'}).inject(a); //atrybut 'text' w opcjach nie dla IE
			on.innerHTML = text;
			var off = new Element('span', {'class':'off'}).inject(a);
			off.innerHTML = text;
		});
		
		var last_ul = $('menu').getFirst().getLast().getFirst('ul');
		if(last_ul) last_ul.addClass('last-dropdown');
		
		Cufon.replace('div#menu .cufonNormal', { hover: true, fontFamily: 'MyriadPro', textShadow: '1px 1px #2c2b29' });
		Cufon.replace('h2.cufonNormal', { hover: true });
		Cufon.now();

		this.activateMenu();
		this.activateBanner();
		this.activateReportsCurrent();
		this.activateReportsPeriodical();
		this.insertGraph();
		this.insertStoresGmap('storesGmap');
		this.insertCalendars();
		this.changeCity();
		sortables_init();
		this.sortTable();
		
		if($('contact-form')) { $('contact-form').action = document.location.href; }
		
	}, // domReady

	insertGraph: function() {
		if($('graph')) {
			new Swiff('/public/flash/graph.swf', {
				id: 'graph-flash',
				container: $('graph'),
				width: '100%',
				height: '100%',
				params: {
					wmode: 'transparent',
					allowFullScreen: 'true',
					allowscriptaccess: 'always'
				},
				vars: {
					XMLpath: $('graph').innerHTML
				}
			});
		}
	}, // insertGraph
	
	activateReportsPeriodical: function() {
		if($('reports-periodical')) {
			$$('ul.tabs a').each(function(a, i){
				if(i == 0) a.addClass('active');
				a.addEvent('click', function(){
					var links = $$('ul.tabs a');
					for(var i = 0; i < links.length; i++) {
						if(this === links[i]) links[i].addClass('active');
							else links[i].removeClass('active');
					}
					$$('ul.tabs-containers li').each(function(li){
						li.removeClass('visible');
					});
					$(this.rel).addClass('visible');
				});
			});
			$('reports-periodical').getFirst().addClass('visible');
			
				$$('ul.standard-bar-list').each(function(ul){
					if(ul.getFirst()) ul.getFirst().addClass('active');
				});
				$$('ul.standard-bar-list h2.bar').each(function(bar){
					bar.addEvent('click', function(){
						this.getParent().toggleClass('active');
					});
				});
		}
	}, //activateReportsPeriodical
	
	activateReportsCurrent: function() {
		
		if($('reports-current')) {
			$('reports-current').getFirst().addClass('active');
			$$('ul#reports-current h2.bar').each(function(bar){
				bar.addEvent('click', function(){
					this.getParent().toggleClass('active');
				});
			});
		}
		
	}, //activateReportsCurrent
	
	fadeDuration: 1000,
	delayDuration: 3000,

	activateBanner: function() {

		if($('main-banner')) {
			$$('ul#main-banner-ul li').each(function(li, i) { li.setStyle('opacity', 0); if(i == 0) li.addClass('active'); });
			new Fx.Tween($('main-banner-ul').getFirst(), {duration: Site.fadeDuration}).start('opacity', 0, 1);
			
			if($$('ul#main-banner-ul li').length > 1) {
				var nextImage = function() {
					var lis = $$('ul#main-banner-ul li.active');
					var actual = lis[0];
					var next = (actual.getNext()) ? actual.getNext() : actual.getParent().getFirst();
					actual.setStyle('zIndex', 5);
					next.setStyle('zIndex', 10);
					
					new Fx.Tween(next, {
						duration: Site.fadeDuration, 
						onComplete: function(li){
							li.addClass('active');
							var prev = (li.getPrevious()) ? li.getPrevious() : li.getParent().getLast();
							prev.removeClass('active');
							prev.setStyle('opacity', 0);
						}
					}).start('opacity', 0, 1);
					
				}
				var periodical = nextImage.periodical(Site.fadeDuration + Site.delayDuration);
			}
			/*
			$$('ul#main-banner-ul li').each(function(li, i) { li.setStyle('opacity', 0); if(i == 0) li.addClass('active'); });
			new Fx.Tween($('main-banner-ul').getFirst(), {duration: Site.fadeDuration}).start('opacity', 0, 1);
			
			if($$('ul#main-banner-ul li').length > 1) {
				var nextQuote = function() {
					var lis = $$('ul#main-banner-ul li.active');
					new Fx.Tween(lis[0], {
						duration: Site.fadeDuration, 
						onComplete: function(li){
							li.removeClass('active');
							var next = (li.getNext()) ? li.getNext() : li.getParent().getFirst();
							next.addClass('active');
							new Fx.Tween(next, {
								duration: Site.fadeDuration
							}).start('opacity', 0, 1);
						}
					}).start('opacity', 1, 0);
				}
				var periodical = nextQuote.periodical(2 * Site.fadeDuration + Site.delayDuration);
			}
			*/
		}

	}, //activateCustomers

	activateMenu: function() {
		
		var path = document.location.pathname.substr(1);
		if(path.charAt(path.length-1) == '/') path = path.substr(0, path.length-1);
		path = path.replace(/\/\d+\/?$/, '').replace(/\/[0-9a-z-]+\.html\/?$/, '');
		var links = $$('ul.tree a[href='+path+']');
		while(links.length == 0 && path != '') {
			path = path.split('/');
			path.pop();
			path = path.join('/');
			links = $$('ul.tree a[href='+path+']');
		}
		if(links.length == 1) {
			var a = links[0];
			a.addClass('active');
			
			if(ul = a.getParent('ul'))
				do {
					ul.setStyle('display', 'block');
					if(opened = ul.getParent())
						opened.addClass('open');
				} while(ul = ul.getParent('ul'));
				
			if(ul = a.getParent().getNext())
				ul.setStyle('display', 'block');
		}
		
	}, //activateMenu
	
	map: null,
	loadMap: function() {
		
		var myLatlng = new google.maps.LatLng(52.15008070192658, 21.028218269348145);
		var myOptions = {
		zoom: 15,
		center: myLatlng,
		navigationControlOptions: {
			style: google.maps.NavigationControlStyle.ZOOM_PAN
		},
		mapTypeId: google.maps.MapTypeId.ROADMAP
		}
		
		this.map = new google.maps.Map($('gmap'), myOptions);
		
		var marker = new google.maps.Marker({
			position: myLatlng, 
			map: this.map
		});
		
	}, // loadMap
	
	storesMap: null,
	
	insertStoresGmap: function(containerId) {
		if ($(containerId)){
				var polandCenter_x = 52.066667;
				var polandCenter_y = 19.483333;
				
				var myLatlng = new google.maps.LatLng(polandCenter_x, polandCenter_y);
				
				var gMapOptions = {
					zoom: 6,
					center: myLatlng,
					navigationControlOptions: {
						style: google.maps.NavigationControlStyle.ZOOM_PAN
						},
					mapTypeId: google.maps.MapTypeId.ROADMAP
			}
			Site.storesMap = new google.maps.Map($(containerId), gMapOptions);
			this.insertStoresGmapPoints();
		}
	}, // insertStoresGmap
	
	insertStoresGmapPoints: function(){
		if (typeof(aRecords) !== 'undefined') {
			var markerBounds = new google.maps.LatLngBounds();

			aRecords.each(function(record){
			  	var point = new google.maps.LatLng(record.pos_x,record.pos_y);
			  	markerBounds.extend(point);
			  	var marker = new google.maps.Marker({
			        position: point, 
			        map: Site.storesMap,
			        title:record.name
			    });
			  	var infowindow = new google.maps.InfoWindow(
			  	      { content: '<h1>'+record.name+'</h1><br/>'+record.short_desc+((record.phone != '')?'<br/><br/>tel. '+record.phone:''),
			  	        size: new google.maps.Size(50,50)
			  	      });
			  	
			  	google.maps.event.addListener(marker, 'click', function() {
			  	    infowindow.open(Site.storesMap,marker);
			    });
			});
			Site.storesMap.fitBounds(markerBounds);
		}
	}, // insertStoresGmapPoints
	
	insertCalendars: function() {
		if ($('stock_from') && $('stock_from')) {
			stockFromCal = new Calendar({ stock_from: 'Y-m-d' }, { classes: ['dashboard'], direction: 0 });
			stockToCal = new Calendar({ stock_to: 'Y-m-d' }, { classes: ['dashboard'], direction: 0 });
		}
	}, // insertCalendars
	
	pngFix: function(pattern) {
		if(Browser.Engine.trident4) {
			$$(pattern).each(function(el){
				var background = el.getStyle('background-image');
				if(background != 'none') {
					var regex = /\/public(.+)\.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\')';
					}
				}
			});
		}

	}, //pngFix
	
	sortTable: function() {
		$$('.sortable th a').each(function(a){ 
			a.addEvent('click', function() {	Site.colorRows();});
		});
		this.colorRows();
	}, //sortTable
	
	colorRows: function() { 
		$$('.sortable tbody tr').each(function(tr, i)
		{
		
			if(i%2 == 0)
			{
				tr.addClass('even');
			}
			else
			{
				tr.removeClass('even');
			}
		});	
	},
	
	changeCity: function() 
	{
		if($('state'))
		{
		$('state').addEvent('change', function(event)
		{
			//alert(this.get('value'));

			event.stop();
			var req = new Request.HTML
			({   
				method: 'get',
				url: '/changecity.html',
				data: {'state' : $('state').get('value')},
				onRequest: function() { $('city_select').set('disabled', true); }, 
				update: $('city_select'),
				onComplete: function(response) { $('city_select').set('disabled', true);} 
			}).send();
	
			//this alert should return the value of the option currently selected
			
			 
			//you may then use the value in your request, in case you need it.
			//req.send(getURL());
		});
		}
	}, //changeCity


	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(); });

