'use strict';

if (typeof App === 'undefined')
	var App = {};
if (!App.Helper) 
	App.Helper = {};
if (!App.Layout) 
	App.Layout = {};

App.Helper.Autoslider = function (slider, slides, new_opts) {

	var opts = Object.extend({
		delay: 2,
		duration: 0.2,
		mode: 'horizontal',
		transition: Effect.Transitions.sinoidal
	}, new_opts || {});

	var param = (opts.mode === 'vertical' ? 'top' : 'left');
	var dimparam = (opts.mode === 'vertical' ? 'height' : 'width');
	var styles = {};

	if (slides.length > 1) {
		var dim = slider.up().getLayout().get(dimparam)

		// initial setup
		slides.each(function (el, index) {
			styles[param] = dim * index + 'px'
			el.setStyle(styles);
		});

		// interval init
		setInterval( function () {
		
			var offset = slider.getLayout().get(param);

			new Effect.Tween(slider, offset, offset - dim, 
			{
				duration: opts.duration,
				afterFinish: function () {					
					var pos = -(offset/dim) % slides.length;
					styles[param] = -offset + slides.length * dim + 'px';
					slides[pos].setStyle(styles);
				}
			},
			function (p) { 
				styles[param] =  p + 'px';
				slider.setStyle(styles);
			});		
			
		}, opts.delay*1000);

	}

}


App.start = function (new_opts) {
	
	App.opts = {
	};

	App.opts = Object.extend(App.opts, new_opts || {});

	App.initSubContent = function () {
		var sub_params = App.opts.sub_params || {};
		App.sub && App.sub(sub_params);
	};

	App.initSubContent();		
	App.initAutoclears();
	App.Layout.initMapTabs();
	App.Layout.initSearchFormToggle();
	
	$('map_canvas') && initialize();
	
	$('topbaner_wrapper') && new App.Helper.Autoslider(
		$('topbaner_wrapper').select('ul').first(),
		$('topbaner_wrapper').select('li'),
		{
			mode: 'vertical',
			delay: 5,
			duration: 0.5
		}
	);

	$('adlist') && new App.Helper.Autoslider(
		$('adlist'),
		$('adlist').select('li'),
		{
			mode: 'horizontal',
			delay: 5,
			duration: 0.5
		}
	);

};

App.Layout.initSearchFormToggle = function () {
	var srchfrm = $$('form.searchform')[0];
	var srchfrmli = $$('li.searchform')[0];
	var srchbtn = $$('li.searchform > span')[0];
	var clr = srchbtn.getStyle('color');
	
	srchbtn.observe('mouseover', function (ev){
		srchbtn.setStyle({'color': '#ef4030'});
	});
	
	srchbtn.observe('mouseout', function (ev){
		srchbtn.setStyle({'color': clr});
	});
	
	srchbtn.observe('click', function (ev){
		ev.preventDefault();
		if (srchfrmli.hasClassName('arrows-down'))
		{
			srchfrmli.removeClassName('arrows-down');
			srchfrm.setStyle({'display': 'none'});
		}
		else
		{
			srchfrmli.addClassName('arrows-down');
			srchfrm.setStyle({'display': 'block'});
		}

	});
}

App.Layout.initMapTabs = function () {
	var current_map_type = 'promoted';
	var latlng = new google.maps.LatLng(51.110277473731,17.029844640198);
	var myOptions = {
	  zoom: 11,
	  center: latlng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

	var markers = new google.maps.MVCArray;
	google.maps.event.addListener(map, 'tilesloaded', function() {
		get_offers(map, markers, current_map_type);
	});

	var topMap = $$('.invmap dt').first();
	topMap && topMap.select('a').each(function (el) {
		el.observe('click', function (event) {
			event.preventDefault();
			el.writeAttribute('class', 'active bluish gradiented');
			el.siblings().invoke('writeAttribute', 'class', 'white gradiented');
			
			if (el.id == 'map_1')
				current_map_type = 'promoted';
			else if (el.id == 'map_2')
				current_map_type = 'local';
			else if (el.id == 'map_3')
				current_map_type = 'mls';
			get_offers(map, markers, current_map_type);
		});
	});
	
	
};




// initializes autoclears on each input
App.initAutoclears = function () {

	$$('input.autoclear').each(function (el) {
		App.Helper.Autoclear(el);
	});

};


function CreateBookmarkLink() {
	var title = document.title; 
	
	var url = location.href;
	
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
}

function includeBookmarkLink() {
	if (window.external) {
		document.write('<a href = "javascript:CreateBookmarkLink();">Dodaj do<br/> ulubionych</a>'); 
	} else  if (window.sidebar) {
		document.write('<a href = "javascript:CreateBookmarkLink();">Dodaj do<br/> ulubionych</a>'); 
	} else if (window.opera && window.print) {	
		document.write('<a href = "javascript:CreateBookmarkLink();">Dodaj do<br/> ulubionych</a>');
	} 
}

