Event.observe(window, 'load', function() {
	var	preloader = new APreloader();
	preloader.setPics('menu');
	preloader.preloadImages('img/');
	
	//newest project slider
	if ($('newPrev') && $('newNext')) {
		Event.observe($('newPrev'), 'click', slider.moveSlider.bindAsEventListener(slider, 'right'));
		Event.observe($('newNext'), 'click', slider.moveSlider.bindAsEventListener(slider, 'left'));
	}
	
	//popup message box
	$$('#w2us', '#w2us2', '#trigger', '#help').each(function(item) {
		Event.observe(item, 'click', messager.pop);
	});
	
	Event.observe($('write2ushide'), 'click', messager.close);
	Event.observe($('konsultant'), 'submit', messager.send);
	
	Event.observe($('overlay'), 'click', messager.close);
	
	//last visited
	if($('lastVisited')) {
		Hint.setUp();
	}
	
	setTimeout('advManager.setMargin()', 1000);
});

var advManager = {
	setMargin: function() {
		if ($$('div#topBaner').size()) {
			var topBaner = $$('div#topBaner')[0];
			if (topBaner.getHeight() > 0) {
				topBaner.setStyle({
					marginBottom: '7px'
				});
			}
		}
		
		if ($$('div#mediumBanerInx').size()) {
			var mediumBanerInx = $$('div#mediumBanerInx')[0];
			if (mediumBanerInx.getHeight() > 0) {
				mediumBanerInx.setStyle({
					marginBottom: '7px',
					marginLeft: '100px'
				});
			}
		}
		
		if ($$('div#mediumBaner').size()) {
			var mediumBaner = $$('div#mediumBaner')[0];
			if (mediumBaner.getHeight() > 0) {
				mediumBaner.setStyle({
					marginBottom: '7px',
					marginLeft: '220px'
				});
			}
		}
	}
};

var CookieManager = {
	setCookie: function(cName, value, days) {
		t = new Date();
	 	t.setUTCDate(t.getUTCDate() + days);
	 	document.cookie = cName + '=' + escape(value) + ((days == null) ? '' : '; expires=' + t.toGMTString()) + '; path=/';
	},

	getCookie: function(cName) {
		if(document.cookie.length > 0) {
			var cStart = document.cookie.indexOf(cName + "=");
			if (cStart != -1) {
				cStart = cStart + cName.length + 1;
				var cEnd = document.cookie.indexOf(";", cStart);
				if(cEnd == -1) cEnd = document.cookie.length;
				return unescape(document.cookie.substring(cStart, cEnd));
			}
		}
		return null;
	}
};

APreloader = Class.create();
APreloader.prototype = {
	initialize: function() {
		this._preload = new Hash();
		this._pics = new Hash();
		this._loaded = false;
	},
	
	setPics: function(container) {
		var allpics = $$('#' + container + ' img[id]');

		allpics.each(function(item) {
			this._pics.set(item.id, item.src.slice(item.src.lastIndexOf('.'), item.src.length));
		}, this);
	},
	
	preloadImages: function(path) {
		var c = 0;

		this._pics.each(function(item) {
			this._preload[item.key] = new Image();
			this._preload[item.key + '_on'] = new Image();
			this._preload[item.key].src = path + item.key + item.value;
			this._preload[item.key + '_on'].src = path + item.key + '_on' + item.value;
			
			if($(item.key) != null) {
				Event.observe($(item.key), 'mouseover', this.on.bind(this));
				Event.observe($(item.key), 'mouseout', this.off.bind(this));
			}
			
			if(this._preload[item.key + '_on'].complete == true) {
				c++;
				if(c == this._pics.size()) {
					this._loaded = true;
				}
			} else {
				this._preload[item.key + '_on'].onload = function() {
					c++;
					if(c == this._pics.size()) {
						this._loaded = true;
					}
				}.bind(this);
			}
		}, this);
	},
	
	on: function(event) {
		var trigger = Event.element(event).id;
		if(this._loaded) {
			$(trigger).src = this._preload[trigger + '_on'].src;
		}
	},
	
	off: function(event) {
		var trigger = Event.element(event).id;
		if(this._loaded) {
			$(trigger).src = this._preload[trigger].src;
		}
	}
}


var printManager = (function() 
{  
	Event.observe(window, 'load', function() 
	{
		if($('print')) {
			Event.observe($('print').down('span.print'), 'click', _onPrint);
		}
	});
	
	function _onPrint(event) 
	{
		var id = Event.element(event).id;
		var version = (id.indexOf('m') != -1) ? ',m' : '';
		
		id = (version == '') ? id.replace('_', '') : id.replace('m_', '');

		var printPop = window.open('print,' + id + version + '.html', 'Drukuj', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=650,height=500');
	   	printPop.focus();
	}
})();


var slider = {
	hiddenPosition: 'left',
	hiddenIdx: 1,
	visibleIdx: 2,
	sliders: new Array(),
	slidersPack: 5,
	slidersJSON: null,

	setProjects: function(sliders) {
		this.sliders = sliders.split('|');
	},

	moveSlider: function() {
		if(Effect.Queues.get('global').size() == 0) {
			var dir = $A(arguments).pop();

			var pack = new Array();
			var current;

			for(var i = 0; i < this.slidersPack; i++) {
				if(dir == 'left') {
					current = this.sliders.pop();
					this.sliders.unshift(current);
					pack.unshift(current);
				} else {
					current = this.sliders.shift();
					this.sliders.push(current);
				}
			}

			if(dir == 'right') {
				pack = this.sliders.slice(0, this.slidersPack);
			}

			if(pack.size() == this.slidersPack) {
				var packStr = pack.join(',');
				var ajax = new Ajax.Request('/?module=project&action=get_project_data_json', {
					method: 'post',
					parameters: {idList: packStr},
		 			onSuccess: function(transport) {
		 				this.slidersJSON = transport.responseText.evalJSON().projectData;
						this.buildBoxes(dir);
					}.bind(this),

					onLoading: function(){
						$('await').removeClassName('hidden');
					}.bind(this)
				});
			}
		}
	},

	moveLeft: function() {
		if(this.hiddenPosition == 'left') {
			$('slide_' + this.visibleIdx).setStyle({position: 'absolute'});//absolutize();
			$('slide_' + this.hiddenIdx).setStyle({position: 'relative'});//relativize();
			$('slide_' + this.hiddenIdx).setStyle({
				left: 850 + 'px'
			});

			this.hiddenIdx = this.hiddenIdx == 1 ? 2 : 1;
			this.visibleIdx = this.visibleIdx == 1 ? 2 : 1;
		}

		if(this.hiddenPosition == 'right') {
			this.hiddenPosition = 'left';
			this.hiddenIdx = this.hiddenIdx == 1 ? 2 : 1;
			this.visibleIdx = this.visibleIdx == 1 ? 2 : 1;
		}

		new Effect.Move('slide_1', { x: -850, y: 0, mode: 'relative' });
		new Effect.Move('slide_2', { x: -850, y: 0, mode: 'relative' });

	},

	moveRight: function() {
		if(this.hiddenPosition == 'right') {
			$('slide_' + this.hiddenIdx).setStyle({position: 'absolute'});//absolutize();
			$('slide_' + this.hiddenIdx).setStyle({
				left: -850 + 'px'
			});

			$('slide_' + this.visibleIdx).setStyle({position: 'relative'});//relativize();

			this.hiddenIdx = this.hiddenIdx == 1 ? 2 : 1;
			this.visibleIdx = this.visibleIdx == 1 ? 2 : 1;
		}

		if(this.hiddenPosition == 'left') {
			this.hiddenPosition = 'right';
			this.hiddenIdx = this.hiddenIdx == 1 ? 2 : 1;
			this.visibleIdx = this.visibleIdx == 1 ? 2 : 1;
		}

		new Effect.Move('slide_1', { x: 850, y: 0, mode: 'relative' });
		new Effect.Move('slide_2', { x: 850, y: 0, mode: 'relative' });
	},

	buildBoxes: function(dir) {
		var jkeys = Object.keys(this.slidersJSON);
		var c = 0;
		var proname = '';
		jkeys.each(function(item, index){
			proname = this.slidersJSON[item].name;

			$('sname_' + this.hiddenIdx + index).update(proname + ' (' + this.slidersJSON[item].symbolDwt + ')');
			$('sarea_' + this.hiddenIdx + index).update(this.slidersJSON[item].usableFloorArea);
			$('simg_' + this.hiddenIdx + index).src = this.slidersJSON[item].files;
			$('simg_' + this.hiddenIdx + index).alt = 'Projekt ' + this.slidersJSON[item].symbolDwt + ' ' + proname;
			$('slink_' + this.hiddenIdx + index).href = this.slidersJSON[item].link;
			$('slink_' + this.hiddenIdx + index).title = 'Projekt ' + this.slidersJSON[item].symbolDwt + ' ' + proname;
			$('silink_' + this.hiddenIdx + index).href = this.slidersJSON[item].link;
			$('silink_' + this.hiddenIdx + index).title = proname + ' (' + this.slidersJSON[item].symbolDwt + ')';

			if($('simg_' + this.hiddenIdx + index).complete == true) {
				c++;
				if(c == this.slidersPack) {
					$('await').addClassName('hidden');
					if(dir == 'left') {
						this.moveLeft();
					} else {
						this.moveRight();
					}
				}
			} else {
				$('simg_' + this.hiddenIdx + index).onload = function() {
					c++;
					if(c == this.slidersPack) {
						$('await').addClassName('hidden');
						if(dir == 'left') {
							this.moveLeft();
						} else {
							this.moveRight();
						}
					}
				}.bind(this);
			}

		}, this);
	}
}

var messager = {
	pop: function(event) {

		if(Event.element(event).id == 'w2us2') {
			$('konsultant').select('input[name="localization"]').first().value = 2;
		} else {
			$('konsultant').select('input[name="localization"]').first().value = 1;
		}
		
		if(Event.element(event).id == 'help') {
			$('konsultant').select('input[name="write_us"]').first().value = Event.element(event).title;
			$('qmessage').update('Pytanie');
		} else {
			$('konsultant').select('input[name="write_us"]').first().value = 1;
			$('qmessage').update('Wiadomość');
		}

		var panel = $('write2us');
	
		panel.setStyle({
			left: (document.viewport.getWidth() - 280)/2 + 'px',
			top: document.viewport.getScrollOffsets().top + (document.viewport.getHeight() - 350)/2 + 'px'
		});
		
		
		$('overlay').setStyle({
			width: document.documentElement.scrollWidth + 'px',
			height: document.documentElement.scrollHeight + 'px'
		});

    	new Effect.Appear($('overlay'), { duration: 0.3, from: 0.0, to: 0.6, afterFinish: function() {
	    		new Effect.Appear(panel, { duration: 0.5 });
    		}
    	});
	},
	
	close: function() {
		new Effect.Fade($('write2us'), { duration: 0.5, afterFinish: function() {
				new Effect.Fade($('overlay'), { duration: 0.3 });
			}
		});
		
		$('qinfoTxt').update('');
		
		if($('qinfo').hasClassName('errorMsg')) {
			$('qinfo').removeClassName('errorMsg');
		}
		
		if($('qinfo').hasClassName('okMsg')) {
			$('qinfo').removeClassName('okMsg');
		}
		
		$('konsultant').select('p').each(function(item) {
			if(item.hasClassName('red')) {
				item.removeClassName('red');
				item.removeClassName('bold');
			}
		});
	
		$('konsultant').select('textarea', 'input[type="text"]').each(function(item) {
			item.value = '';
		});
		
		$('qinfo').hide();
		$('qbox').show();
	},
	
	send: function(event) {
		Event.stop(event);
		var ajax = new Ajax.Request('/?module=consultant&action=send_ask', {
			method: 'post',
			parameters: $('konsultant').serialize(true),
 			onSuccess: function(transport) {
				var response = transport.responseText.evalJSON().feedback;

				if(response.status == 'fail') {
					$('konsultant').select('p').each(function(item) {
						if(item.hasClassName('red')) {
							item.removeClassName('red');
							item.removeClassName('bold');
						}
					});

					if(response.fields.email_from == 1) {
						$('qemail').addClassName('red');
						$('qemail').addClassName('bold');
					}
					
					if(response.fields.comment == 1) {
						$('qmessage').addClassName('red');
						$('qmessage').addClassName('bold');
					}
					
					if(response.fields.code == 1) {
						$('qcode').addClassName('red');
						$('qcode').addClassName('bold');
					}
					
					$('qinfo').addClassName('errorMsg');
					$('qinfoTxt').update('Formularz zawiera błędy. Prosimy o poprawienie zaznaczonych pól.');
					
					
				} else if(response.status == 'ok') {

					if($('qinfo').hasClassName('errorMsg')) {
						$('qinfo').removeClassName('errorMsg');
					}
					
					$('qinfo').addClassName('okMsg');
					$('qinfoTxt').update('Wiadomość została wysłana.');
					
					Effect.BlindUp('qbox');
				}

				if(!$('qinfo').visible()) {
					Effect.BlindDown('qinfo');
				}

			}
		});
	}
}

var Hint = {
	hintContainer: null,
	hintPointer: null,
	textBox: null,
	statusFlag: false,

	setUp: function() {
		var vimg = $$('div#lastVisited img');
		vimg.each(function(item) {
			Event.observe(item, 'mouseover', this.show.bind(this));
			Event.observe(item, 'mouseout', this.hide.bind(this));
		}, this);

		this.hintContainer = document.createElement('div');
		this.hintPointer = document.createElement('div');
		var hintBox = document.createElement('div');
		this.textBox = document.createElement('span');

		Element.extend(this.hintContainer);
		Element.extend(this.hintPointer);
		Element.extend(hintBox);
		Element.extend(this.textBox);

		this.hintContainer.id = 'hintContainer';

		hintBox.id = 'hintBox';

		this.hintContainer.appendChild(this.hintPointer);
		this.hintContainer.appendChild(hintBox);
		this.hintPointer.update('<img src="/img/hint2.gif" alt="hint" />');
		hintBox.appendChild(this.textBox);

		this.hintContainer.hide();
		document.body.appendChild(this.hintContainer);
		this.statusFlag = true;
	},

	show: function(event) {
		if(this.statusFlag) {
			var hcWidth;
			var sender = Event.element(event);
			var txtChunks = sender.up('a').next('span').innerHTML.split('|');
			var msg = '<p><span class="proname">' + txtChunks[0] + '</span></p>';
			msg += '<p><span>pow. użytk. ' + txtChunks[1] + 'm<sup>2</sup></span></p>';
			msg += '<p><span>min. działka: ' + txtChunks[2] + ' m</span></p>';
			this.textBox.update(msg);
			hcWidth = this.hintContainer.getWidth() + 1;

			var pos = Element.cumulativeOffset(sender);
			var dims = Element.getDimensions(sender);

			this.hintContainer.setStyle({
				left: (pos.left + 94) + "px",
				top: pos.top + 2 + "px"
			});

			this.hintContainer.show();
		}
	},

	hide: function() {
		this.hintContainer.hide();
	}
}

function popupOpen(doc,w,h,s) {
	if (typeof(s)=='undefined') s=0;
	var pop=window.open(doc,'my','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+s+',resizable=0,width='+w+',height='+h);
}
