
var mySelect = new Class({
		Implements: [Events, Options],
		options: {
			parent: 'formular_objednavka'
		},
		initialize: function(options){
			this.setOptions(options);
			
			this.pElement = $(this.options.parent);
			this.elements = this.pElement.getElements('select');
			this.redraw();
			
			document.addEvent('click',function(e){
				var obj = new Event(e).target;
				try{
					if (!obj.hasClass('mySelect') && !obj.hasClass('mySelectLi') &&	!obj.hasClass('mySelectUl') &&	!obj.hasClass('mySelectAr')){
						$$('.mySelectUl').fade(0);	
					}
				} catch(e){
					
				}
				
			})
			
		},

		redraw: function(){
			this.elements.each(function(select){
				
				var mySelect = new Element('div')
					.inject(select,'after')
					.setProperty('id',select.getProperty('id') + 'MySelect')
					.addClass('mySelect')
					.setStyles({
						'width':select.getSize().x.toInt(),
						'height':select.getSize().y.toInt()
					});
				
				var caption = new Element('span').setHTML('').inject(mySelect);

				var arrow = new Element('div')
					.inject(mySelect)
					.addClass('mySelectAr')
					.setStyles({
						height: select.getSize().y.toInt() - 6
					})
					.addEvent('click', function(){
						ul.fade();
					});

				var ul = new Element('ul')
					.inject(mySelect)
					.addClass('mySelectUl')
					.setStyles({
						top: select.getSize().y.toInt() +1 ,
						width: select.getSize().x.toInt()
					});
					
				select.getElements('option').each(function(option){
					var li = new Element('li')
						.inject(ul)
						.addClass('mySelectLi')
						.setHTML(option.getHTML())
						.addEvents({
							'mouseover': function(){
								li.addClass('hover_li')
							},
							'mouseout': function(){
								li.removeClass('hover_li')
							},
							'click': (function(){
								this.selectOption(li.getParent('.mySelect'),li.value);
							}).bind(this)
						});
					li.value = option.value;
				},this);
				ul.fade('hide');
				select.addClass('none');
				this.selectOption(mySelect,0);
			},this);
		},
		
		selectOption: function(obj, index){
			obj.getElement('.mySelectUl').getElements('li').each(function(item){
				if (item.value == index){
					obj.getElement('span').setHTML(item.getHTML());
				}
			});
			obj.getElement('.mySelectUl').fade(0);
			obj.getPrevious('select').setValue(index);
			this.onChange();
		},

		onChange: function(){
			result = true;
			$(this.options.parent).getElements('select').each(function(item){
				if (item.value == 0)
					result = false;
			});	

			$('order_fade_in_out').fade((result == false)?0:1);
			if (result == false)			
			//	(function(){ 
					$('order_fade_in_out').setStyle('display','none');
			//		}).delay(1000);
			else
				$('order_fade_in_out').setStyle('display','block');
			
			if(result == true){
				if($('HotelOrderPokoj').value == 1){  // pokud je jednoluzkovy skryj moznosti dvojluzka
					$('formular_objednavka').getElements('.dvojluzko').addClass('none');
				}
				else
					$('formular_objednavka').getElements('.dvojluzko').removeClass('none');
				    //alert($('HotelOrderTermin').value);
                
                     
                    if($('HotelOrderTermin').value == 1)
                            $('HotelOrderTerminDate').value = $('HotelOrderDateSezona').value;
                    if($('HotelOrderTermin').value == 2)
                             $('HotelOrderTerminDate').value = $('HotelOrderDateMimosezona').value;
                    if($('HotelOrderTermin').value == 3)
                             $('HotelOrderTerminDate').value = $('HotelOrderDateZima').value;
                
				rel = $('HotelOrderTyp').value + '|' + $('HotelOrderPokoj').value + '|' + $('HotelOrderTermin').value;
				rel = $('ajax_main_update').getElement('a[rel='+rel+']').getChildren('span').getHTML();
				$('celkova_cena').setHTML(rel);
			} else {
			     $('HotelOrderTerminDate').value = 'Zvolte prosím typ, termín a pokoj.';
				$('celkova_cena').setHTML('Zvolte prosím typ, termín a pokoj.');
			} 

		}
	
	});


window.addEvent('domready',function(){
	$('order_fade_in_out').fade('hide');
	//window.OrderSlide.hide();
	var my_select = new mySelect();	
	
	if(Browser.Engine.trident){
		var zIndexNumber = 1000;
		$$('.mySelect').each(function(el,i){
			el.setStyle('z-index',zIndexNumber);
			zIndexNumber -= 10;
		});
	};
	
	$$('.type_click').addEvent('click',function(){
		types = this.getProperty('rel').split('|');
		// balicek
		my_select.selectOption($('HotelOrderTypMySelect'),types[0]);
		// pokoj
		my_select.selectOption($('HotelOrderPokojMySelect'),types[1]);
		// termin
		my_select.selectOption($('HotelOrderTerminMySelect'),types[2]);
	});
	
	// fotogalerie
	if ($('karta_produktu')){
		if ($('karta_produktu').getElement('.shop_detail_img_list')){
			width_inner = $('karta_produktu').getElement('.overflow').getSize().x.toInt();
			width_obal 	= $('karta_produktu').getElement('.shop_detail_img_list_inner').getSize().x.toInt();
			step = $('karta_produktu').getElement('.overflow').getElement('a').getSize().x.toInt();
			$('img_prev').addEvent('mousedown',function(){
				var to_move = $('karta_produktu').getElement('.overflow');
				kam = to_move.getStyle('left').toInt()+step;
				to_move.morph({left: (kam>0)?0:kam,transition: 'bounce:out'});	
			});
			$('img_next').addEvent('mousedown',function(){
				var to_move = $('karta_produktu').getElement('.overflow');
				var rozdil = width_inner - width_obal;
				if (rozdil > 0){
					now_left = to_move.getStyle('left').toInt();
					if(rozdil + now_left - step >= 0){
						kam = now_left-step;
					} else {
						kam = now_left-step - (rozdil + now_left - step) -1;
					}
					to_move.morph({left: kam,transition: 'bounce:out'});
				}	
			});
		}
	}
});





