







//
function textFocus(container)
{
	// ha jon valami container id, akkor csak azon belul fut
	if (container)
	{
		if ($(container))
		{
			var conts = $(container).getElements('span.input_bg');
			conts.extend($(container).getElements('div.textarea_bg'));
		}
	}
	// egyebkent a teljes documentumra
	else
		var conts = $$('span.input_bg', 'div.textarea_bg');

	if ($chk(conts))
	{
		conts.each
		(
		function(cont)
		{
			// input/textarea elem
			var field = cont.getElement('input');
			if (!$chk(field))
				var field = cont.getElement('textarea');

			//
			field.addEvent('focus', function()
			{
				var curClass = cont.getProperty('class');
				cont.setProperty('class', curClass+'_focus');
			})
			//
			field.addEvent('blur', function()
			{
				var curClass = cont.getProperty('class'); 
				cont.setProperty('class', curClass.replace('_focus',''));
			})

		}
		)
	}
}
//
// elso betolteskor lefut
window.addEvent('domready', function()
{
	textFocus();
});










// grafikus checkbox/radio kezeles #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #
function gvCheckRadio(container)
{
	// ha jon valami container id, akkor csak azon belul fut (pl ajaxbol visszafrissitett tartalomnal hasznos)
	if (container)
	{
		if ($(container))
		{
			var spans = $(container).getElements('span.gvRadio');
			spans.extend($(container).getElements('span.gvCheck'));
		}
	}
	// egyebkent a teljes documentumra
	else
		var spans = $$('span.gvRadio', 'span.gvCheck');

	if ($chk(spans))
	{
		spans.each
		(
		function(span)
		{
			// input elem
			var input = span.getElement('input');
			//input.setStyle('opacity', 0);

			// alap class a befoglalo spanhoz: a becsekkolt allapot alapjan
			if (input.getProperty('checked'))
				span.addClass('checked');
			else
				span.removeClass('checked');

			// tipus chekbox, vagy radio
			var type = (input.get('type')=='checkbox') ? 'chk' : 'rad';

			// kattintasra class valtas
			input.addEvent('click', function()
			{
				// csekkboksznal siman kapcsolgatjuk
				if (type=='chk')
				{
					if (input.getProperty('checked'))
						span.addClass('checked');
					else
						span.removeClass('checked');
				}

				// redional csak bekapcs, es az azonos nevuek kikapcs
				if (type=='rad')
				{
					//
					var name = input.getProperty('name');
					spans.getElements('input').each
					(
						function(si)
						{
							if (si.getProperty('name')==name)
							{
								si.getParent('span.gvRadio').removeClass('checked');
							}
						}
					);

					//
					span.addClass('checked');
				}
			})
		}
		)
	}
}
// elso betolteskor lefut
window.addEvent('domready', function()
{
	gvCheckRadio();
});









// select csereje divekre #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #
var gvSelect_ = new Class
({
	// init
	initialize: function(selectCont, z)
	{
		// onchange nincs
		this.ocev = false;
		//	nyitott allapot: csukva
		this.is_open = 0;
		// z-index
		this.z = z;
		// container: a span amiben van az eredeti select
		this.container = selectCont;
		// eredeti select
		this.origSelect = this.container.getElement('select');

		// meggyartjuk a cuccot
		this.build();
	},



	//
	build: function()
	{
		// regi select eltunik
		this.origSelect.set('styles',{'display':'none'});
/*
		// van-e onchange
		if (this.origSelect.onchange)
		{
			this.ocev = true;
		}
*/
		// helyere bejon a div, amiben az egesz van
		this.select = new Element('div', {'class':'gvSelect', 'styles':{'z-index':this.z}}).inject(this.container)

		// fejlec terulet: benne a szoveg es a nyil
		this.headArea = new Element('div', {'class':'gvS_headArea', 'styles':{'z-index':this.z}}).inject(this.select);
		// fejlec szoveg
		this.headtext = new Element('div', {'class':'gvS_headText', 'styles':{'z-index':this.z}}).inject(this.headArea);
		// fejlec nyil
		this.headarrow = new Element('div', {'class':'gvS_headArrow', 'styles':{'z-index':this.z}}).inject(this.headArea);

		// separator
		sep = new Element('div', {'styles':{'clear':'both'}}).inject(this.select);

		// option terulet: benne az optionok
		this.optionsArea = new Element('div', {'class':'gvS_optionsArea', 'styles':{'z-index':this.z}}).inject(this.select);
		// eredeti optionok visszapakkantasa
		this.origSelect.getElements('option').each
		(
			function(oo)
			{
				// eredeti text
				var ooText = oo.get('text'); //alert(ooText);

				// eredeti class felszed
				var ooClass = false;
				ooClass=oo.getProperty('class');

				// valasztott option szovege es eredeti class a fejlecbe
				if (oo.selected)
				{
					this.headtext.set('text', ooText);
					if (ooClass)
						this.headtext.addClass(ooClass);
				}

				// option bele
				option = new Element('div').addClass('gvS_option').inject(this.optionsArea).set('text', ooText);

				// eredeti class, ha volt az optionnak
				if (ooClass)
					option.addClass(ooClass);

				// effektek ha nem disabled
				if (!oo.disabled)
				{
					// over/out
					option.addEvent('mouseover', function(){this.addClass('over');});
					option.addEvent('mouseout', function(){this.removeClass('over');});

					// kattinas
					option.addEvent('click', function()
					{
						// jelenlegi erteket taroljuk
						var cur_value = this.origSelect.get('value');

						// beirjuk a textet
						this.headtext.set('text', ooText);

						// head szoveg class allitgatas: beallitjuk az alapot es ha volt az optionnek, akkor azt hozzaadjuk
						this.headtext.setProperty('class', 'gvS_headText');
						if (ooClass)
							this.headtext.addClass(ooClass);

						// bezarjuk a selectet
						this.dropdown();

						// beallitjuk az erteket az eredeti selectben
						this.origSelect.value = oo.value;

						// onchange event lefuttatasa, ha van
						if(this.ocev)
						{
							// csak ha valtozik
							if (oo.value!=cur_value)
								eval(this.origSelect.onchange());
						}
						if(this.origSelect.id == "acc_szakosztaly_id") 
						{
						    $$("#edzo_div .gvSelect").set("HTML", "<select name='acc_edzo' id='acc_edzo_id' title='acc_edzo_id'></select>");
						    
						    // csak ha valtozik
						    if (oo.value!=cur_value) {
						
						        // select mezo ertek
						        var i = this.origSelect.value;
						
						        new Request({
								  url:'/remote/remote_edzok.php', 
								  onSuccess: function(response) {
								    eval(response);
								    var z = 100;
								    var containers = $A($('edzo_div').getElements('span.gvSelect'));
								    // vegigzuzunk a containerken
								    containers.each (
						            function(c)   
						            {
						                new gvSelect_(c, z);
						                z--;
						            }
						            )
							        var t = $('acc_edzo_id');
							        t.value = response;
							        t.focus();
						          }
						            ,method: 'post',
									data: 'acc_szakosztaly_id=' + i
									}).send();
						
						      }
						} 

					}.bind(this));
				}
				// disabled class ha kell
				else
					option.addClass('disabled');

			}.bind(this)
		);


		// dokumentumra kattintva eltunik
		window.addEvent('click', function()
		{
			if (this.optionsArea.getStyle('display')=='block')
			{
				//this.debug(this.origSelect.id+Math.random());
				this.dropdown();
			}
		}.bind(this));

		// a select layerrol "leszedjuk" az elozo cuccot, hogy ne tunjon el egybol mikor megnyilik
		this.select.addEvent('click', function(e)
		{
			e.stop();
		});

		// fejlecre kattintva lenyikik
		this.headArea.addEvent('click', function()
		{
			this.dropdown();
		}.bind(this));
	},



	// dropdown kezeles (lenyitas/becsukas)
	dropdown: function()
	{
		// lenyit
		if (this.is_open==0)
			this.optionsArea.setStyle('display', 'block');
		// becsuk
		else
			this.optionsArea.setStyle('display', 'none');

		// allapot beallitasa
		this.is_open = 1 - this.is_open;
	},


	debug: function(t)
	{
		if ($('debugtext'))
			$('debugtext').setHTML(t);
	}
})
//
// betoltes utan letrehozzuk a peldanyokat
window.addEvent('domready', function()
{
	// z index legyen 100
	var z = 100;

	// a select elemek 'gvSelect' classu span tagek kozott vannak
	var selectContainers = $A($$('span.gvSelect'));
	// vegigzuzunk a containerken
	if (selectContainers.length>0)
	{
		selectContainers.each
		(
			function(sc)
			{
				new gvSelect_(sc, z);
				z--;
			}
		)
	}
});










