var jar = new CookieJar();

document.observe('dom:loaded', function () {

	swfobject.embedSWF("flash/sub_625x205.swf", "Flash", "625", "205", "9", "", {}, {wmode: "transparent", menu: "false"});

	/*************************************************************************/

	$$("form#SearchForm ul li ul.multiple_selector").each(function(item) {
		item.hide();
	});


	var fShow = function(event) {
		var target = Event.findElement(event, 'INPUT');
		var pos = target.cumulativeOffset();
		var selector = target.next();
		if (selector.visible()) {
			selector.hide();
		} else {
			$$('.multiple_selector').each(function(item) {
				item.hide();
			});
			selector.show();
		}

	}

	s = $('DistrictSelector');
	if (!s.hasClassName('visible')) {
		$(s.parentNode).hide();
	}
	s.observe('click', fShow);
	$('DistrictSelectorButton').observe('click', selectDistricts);
	$('DistrictSelectorButton').previous().observe('click', resetCheckboxes);

	s = $('LocationSelector');
	if (!s.hasClassName('visible')) {
		$(s.parentNode).hide();
	}
	s.observe('click', fShow);
	$('LocationSelectorButton').observe('click', selectLocations);
	$('LocationSelectorButton').previous().observe('click', resetCheckboxes);

	$$("#SearchForm button + button")[0].observe('click', clearSearchForm);

	/*************************************************************************/

	if (jar.get('offerswitch') == 'rent') {
		$('RentSwitch').addClassName('checked');
		$('SaleSwitch').removeClassName('checked');
		$('SaleList').hide();
		$('RentList').show();
	} else {
		$('SaleSwitch').addClassName('checked');
		$('RentSwitch').removeClassName('checked');
		$('RentList').hide();
		$('SaleList').show();
	}

	$('SaleSwitch').observe('click',  function (event) {
		$('SaleSwitch').addClassName('checked');
		$('RentSwitch').removeClassName('checked');
		$('RentList').hide();
		$('SaleList').show();
		jar.put('offerswitch', 'sale');
	});

	$('RentSwitch').observe('click',  function (event) {
		$('RentSwitch').addClassName('checked');
		$('SaleSwitch').removeClassName('checked');
		$('SaleList').hide();
		$('RentList').show();
		jar.put('offerswitch', 'rent');
	});

	// init newsletter
	$$('#Newsletter > button')[0].observe('click',  function (event) {
		addToNewsletter();
		Event.stop(event);
	});

	if (typeof(sync) != 'undefined' && sync) {
		new Ajax.Request('index.php?p=Sync', {
			onSuccess: function(response) {
//				console.log(response);
			}
		});
	}
});

function addToFav(title,url) {

	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 && document.createElement) { // Opera Hotlist
		var a = document.createElement('A');
		if (!a) return false; //Opera 6
		a.setAttribute('rel','sidebar');
		a.setAttribute('href',url);
		a.setAttribute('title',title);
		a.click();
	}
}

var __newsletterInProgress = false;

function addToNewsletter() {
	if (__newsletterInProgress == true) return false;
	__newsletterInProgress = true;
	$('NewsletterProgress').show();
	$('NewsletterError').hide();
	$('NewsletterOk').hide();
	$('Newsletter').request({
		parameters: { 'do': 'add' },
		onComplete: function(transport) {
			var response = transport.responseText.evalJSON();

			switch (response.result) {
				case 'error': {
					__newsletterInProgress = false;
					$('NewsletterProgress').hide();
					$('NewsletterError').update(response.message);
					$('NewsletterError').show();
					break;
				}
				case 'ok': {
					$('NewsletterProgress').hide();
					$('NewsletterOk').update(response.message);
					$('NewsletterOk').show();
					break;
				}
				default: {
					$('NewsletterProgress').hide();
					$('NewsletterError').update('Unknown error');
					$('NewsletterError').show();
					__newsletterInProgress = false;
					break;
				}
			}
		},

		onFailure: function() {
			$('NewsletterProgress').hide();
			$('NewsletterError').update('Unknown error');
			$('NewsletterError').show();
			__newsletterInProgress = false;
		}
	});
}

function selectDistricts() {
	$('LocationSelector').value = 'wybierz lokalizację...';
	$('District').value= "";
	$('DistrictSelectorList').hide();
	$($('LocationSelector').parentNode).hide();
	$('LocationSelectorList').hide();
	$('Location').value="";

	var districts = [];
	$$('#DistrictSelectorList input[type=checkbox]').each(function (item){
		if (item.checked) {
			districts.push(item.value);
		}
	});
	if (districts.size()) {
		$('DistrictSelector').value = districts.join(', ');
		$('District').value = districts.toJSON()
		new Ajax.Updater('LocationSelectorList', 'index.php?p=GetLocations', {
			parameters: { districts: $F('District')},
			onComplete: function() {
				$('LocationSelectorButton').observe('click', selectLocations);
				$('LocationSelectorButton').previous().observe('click', resetCheckboxes);
				$($('LocationSelector').parentNode).show();
			}
		});
	} else {
		$('DistrictSelector').value = 'wybierz powiat...';
	}
}

function selectLocations() {
	$('LocationSelectorList').hide();
	$('Location').value = "";
	var locations = [];
	$$('#LocationSelectorList input[type=checkbox]').each(function (item){
		if (item.checked) {
			locations.push(item.value);
		}
	});
	if (locations.size()) {
		$('LocationSelector').value = locations.join(', ');
		$('Location').value = locations.toJSON();
	} else {
		$('LocationSelector').value = 'wybierz lokalizację...';
	}
}


function clearSearchForm() {
	$('District').value = "";
	$('Location').value = "";
	$($('LocationSelector').parentNode).hide();
	$('LocationSelectorList').hide();

	$$('#SearchForm input[type=text]').each(function(item) {
		item.value = '';
	});

	$$('#SearchForm select').each(function(item) {
		item.selectedIndex = 0;
	});

	$$('#SearchForm input[type=checkbox]').each(function(item) {
		item.checked = false;
	});

	$('DistrictSelector').value = 'wybierz powiat...';
	$('LocationSelector').value = 'wybierz lokalizację...';
}

function resetCheckboxes(event) {
	var target = Event.findElement(event, 'ul');
	$$('#' + target.id + ' input[type=checkbox]').each(function(item) {
		item.checked = false;
	});

}
