﻿function rmOptions(elSel){for(var i=elSel.length-1;i>=0;i--)
elSel.remove(i);}
function aken(leht,title,laius,korgus){window.open(leht,title,'width='+laius+',height='+korgus+',status=0,toolbar=0,menubar=0,scrollbars=1,location=0,directories=0,resizable=1');}
/**
 * Uldised tookeskkonnaga seonduvad funktsioonid
 */
Seinad = {

	/**
	 * Funktsioon, mis tuleb kaivitada lehekulje laadimisel. Teostab keskkonna toimimiseks vajalikud eeltoimingud.
	 * K2ivitada naiteks: Event.observe(window, 'load', Seinad.init);
	 */
	init: function() {
		var hash = document.location.hash;
		if (hash.length > 1 && hash.charAt(0) == '#') {
			hash = hash.substr(1);
			var hashArr = hash.explode('/');
			
			if ((hashArr[0] && hashArr[0] == 'objekt') && (hashArr[1])) {
				Seinad.DetailView.showObject(hashArr[1]);
			}
		}
	}
};

/**
 * Eesti kinnisvara otsinguvormi tootamisega seonduvad funktsioonid
 */
Seinad.LocalSearch = {
	_searchElemId: 'estonia_search',
	_searchAdvancedId: 'local_search_advanced',
	_lnkToggleSearchId1: 'link_tglsearch_adv',
	_lnkToggleSearchId2: 'link_tglsearch_simp',
	_visible: true,
	
	show: function() {
		if (Seinad.LocalSearch.visible())
			return;
	
		if (Seinad.WorldSearch.visible())
			Seinad.WorldSearch.hide();
		
		new Effect.BlindDown(this._searchElemId,{duration: 0.4});
		this._visible = true;
	},
	hide: function() {
		new Effect.DropOut(this._searchElemId,{duration: 0.1});
		this._visible = false;
	},
	visible: function() {
		return this._visible;
	},
	toggleAdvancedForm: function() {
		if ($(this._searchAdvancedId).visible()) {
			new Effect.BlindUp(this._searchAdvancedId,{duration: 0.3});
			$(this._lnkToggleSearchId2).setStyle({'display':'none'});
			$(this._lnkToggleSearchId1).setStyle({'display':'block'});
		} else {
			new Effect.BlindDown(this._searchAdvancedId,{duration: 0.3});
			$(this._lnkToggleSearchId1).setStyle({'display':'none'});
			$(this._lnkToggleSearchId2).setStyle({'display':'block'});
		}
	}
}

/**
 * Pakkumiste sisuala sisu vahetamisega seonduvad funktsioonid.
 * Naidisobjekt tab-idega sisuosa sisu vahetamiseks.
 */
Seinad.Offer = {
	_dialogName: 'dialog1',
	_contentId: 'offers_content',
	
	/**
	 * Laeb etteantud aadressilt sisu ning paigutab selle pakkumiste sisualasse. Saadud sisu peab olema kujul:
	 *
	 * <div id="minu_sisu">
	 *    Sisu mida kuvatakse sisuala sees
	 * </div>
	 *
	 * @param contentUrl URL, millelt saadav sisu paigutatakse sisualasse
	 * @param newContentId Sisu identifikaator, ehk siis toodud naite korral "minu_sisu". See parameeter on vajalik
	 * arvutuste tegemiseks animatsioonides
	 */
	setContent: function(contentUrl, newContentId) {
		$(this._dialogName).hide();
		$(this._contentId).setStyle({'height': $(this._contentId).getHeight() + 'px'});
		var contentName = this._contentId;
			new Ajax.Updater(contentName, contentUrl, {
				evalScripts: true,
				onComplete: function() {
					new Effect.Morph(contentName, {style: 'height: ' + ($(newContentId).getHeight() + 5) + 'px', duration: 0.001});
				}
			});
	}
}

/**
 * Sakkide tootluseks vajalikud funktsioonid.
 * 
 * Sakkide kasutamisel tuleb HTML-is need defineerida jargmiselt:
 *
 * <ul id="tabs_some">
 *   <li id="tab_some_1"><a href="javascript:void(0)" onclick="Tabs.activate(this, 'tabs_some', 'tab_some_1')">Mingi sakk</a></li>
 *   <li id="tab_some_2" class="active"><a href="javascript:void(0)" class="active" onclick="Tabs.activate(this, 'tabs_some', 'tab_some_2')">Teine aktiivne sakk</a></li>
 * </ul>
 *
 * Oluline on markida sakkide grupi identifikaator <ul>-tagis ning saki identifikaator <id>-tagis. Kui <li> ja <a> tagi
 * klassi nimi on "active", siis peetakse seda hetkel aktiivseks sakiks.
 */
Tabs = {
	_dialogName: 'dialog1',
	
	/**
	 * Funktsioon aktiveerib etteantud saki ning deaktiveerib ylejaanud sakid grupis
	 * @param tabLnk lingi objekt, millelt sakk aktiveeritakse
	 * @param tabGroupId sakkide grupi identifikaator, toodud naites "tabs_some"
	 * @param tabItemId saki identifikaator grupis, toodud naites "tab_some_1", "tab_some_2" jne
	 */
	activate: function(tabLnk, tabGroupId, tabItemId) {
		$(this._dialogName).hide();
		var activeLi = $(tabGroupId).getElementsBySelector('li.active', 'a.active');
		activeLi.each(function(element) {
			element.removeClassName('active');
		});
		
		$(tabItemId).addClassName('active');
		tabLnk.addClassName('active');
	}
}

/**
 * String-objekti laienduspunkt
 */
Object.extend(String.prototype, {

	/**
	 * Funktsioon jaotab stringi objekti osadeks ning tagastab stringide massiivi. Osadeks jaotamine toimub etteantud
	 * stringi alusel. Niteks
	 *
	 * "aa,bee,tsee".explode(",") => ['aa', 'bee', 'tsee']
	 *
	 * @param glue string, mille alusel kaesolev string osadeks jaotada
	 */
	explode: function(glue) {
		var source = this;
		var arr = Array();
		var i = 0;
		do {
			arr[i++] = source.substr(0, source.indexOf(glue));
			source = source.substr(source.indexOf(glue) + 1);
		} while (source.indexOf(glue) != -1);
		arr[i++] = source;
		return arr;
	}
});
