if(!Array.indexOf){
  Array.prototype.indexOf = function(obj){
          for(var i=0; i<this.length; i++){
              if(this[i]==obj){
                  return i;
              }
          }
      return -1;
  }
}

var FrontLogic = {
  SlideOut: function(a, sel) {
	if (a) {
	var fx = new Fx.Scroll($(window));	
		fx.toElement(a, ['x']);
		a.setStyle('display', 'none');
	}

	var el = $(document.body).getElement(sel);
	if (el) {
		if (el.hasClass('hidden'))
		{
			el.set('slide', {duration: 200});
			el.slide('hide').removeClass('hidden');
		}
		el.slide('in');
			
	}	
  },

  Init: function() {
    if (MooTools && MooTools.lang && MooTools.lang.setLanguage) MooTools.lang.setLanguage("sk-SK");
    
    var ks = $(document.body).getElements('.accordionate'); 
    ks.each(function(el) {FrontLogic.SetupAccordion($(el).getElements('.aitem'));});
        
    var page = $(document.body);
    if (page.hasClass('sec_contact') || page.hasClass('sec_kontakt'))
      FrontLogic.SetupKontaktSection();
	else if (page.hasClass('sec_produkty-sluzby') || page.hasClass('sec_products-services'))
	  FrontLogic.SetupKontaktForm();
	else if (page.hasClass('sec_pocuvame') || page.hasClass('sec_listening'))
	  FrontLogic.SetupFeedbackForm();
   
    var menu = $('mainnav');
    var uls = menu.getElements('ul');       
    
    // IE < 8 nedeteguje #comments
    var el = $(document.body).getElement('#qsearch_form input[type=text]');    
    if (el) {
		new OverText(el, {positionOptions: {position:"upperRight",edge:"upperRight",offset:{x:-18,y:2}}});
		var sbtn = $('srchbtn');
		var adp = $('advsrchpop');
		adp.setStyles({width: el.getSize().x});
		adpa = adp.getElement('a');
		var tw = adpa.get('tween', {property: 'marginTop', duration: 150});
		tw.addEvent('complete', function() { if (adpa.getStyle('marginTop').toInt() > 1) adp.setStyle('display', 'none'); });

		el.addEvents({
			'focus': function() {  sbtn.addClass('active'); adp.setStyle('display', 'block'); tw.start(0); },
			'blur': function() { sbtn.removeClass('active'); tw.start.delay(250, tw, adpa.getSize().y); }
		});
	}



    uls.each(function(item) {
      var container;
      if (!Browser.Engine.trident4) {
        container = new Element('div', {'class': 'submenu'});
        container.wraps($(item));      
        var sizey = container.scrollHeight;
        var el = new Element('div', {'class': 'shadow-right'});
        el.inject(container, 'top');
      }
      else
        container = item;
      
      var li = container.getParent('li');
      li.addEvent('mouseenter', function() {        
        container.setStyle('display', 'block');
        container.store('vis-mode', 1);                
        if (!Browser.Engine.trident4) el.setStyle('height', container.getSize().y - 16);                                 
      });
      
      li.addEvent('mouseleave', function() {
        container.store('vis-mode', 0);        
        (function(){ if (!container.retrieve('vis-mode')) container.setStyle('display', 'none');}).delay(50);        
      });
        
      if (!Browser.Engine.trident4) {      
        (new Element('div', {'class': 'shadow-bottom'})).inject(container, 'top');      
        (new Element('div', {'class': 'shadow-top'})).inject(container, 'top');
      }      
    });  
    
    if (Browser.Engine.trident4) {
      var lis = $(document.body).getElements('#mainnav > li');
      lis.each(function(item) {
        item.addEvent('mouseenter', function() {this.addClass('hover');});
        item.addEvent('mouseleave', function() {this.removeClass('hover');});
      });
    }
    
    if (document.recalc) document.recalc();
    
    if (window.ReMooz) {      
      ReMooz.assign('a.lightbox, a.remooz,div.fotogal-block a.fotolink', {
    		'origin': 'img', 'resizeFactor': 0.8, 'cutOut': false, 'dragging': false
    	});   
    }
      
    var forms = $(document.body).getElements("form.to-validate");
    forms.each(function(form) {
      var validator = new Form.Validator.Inline($(form), {serial: false, evaluateFieldsOnBlur: false});      
    });                     
  },
  
  AddPerson: function(elem) 
  {
    var parentForm = elem.getParent("form");
    var elems = $(parentForm).getElements("tr.dalsia_osoba");
    var osobaRowTemplate = elems[0];
    var cloned = $(osobaRowTemplate).clone();
    cloned.getElements('input').set('value', '');
    cloned.inject(elems[elems.length-1], "after");
    
    return false;       
  },
  
  changeHash: function(newhash) {
  	var tempid, el = $(newhash);
  	if (el) { tempid = el.get('id'); el.set('id', 'hashtemporary_id'); }
  	window.location.hash = '#' + newhash;
  	if (el) { el.set('id', tempid); }
  },
    
  SetupAccordion : function(selector) {
		var bloks = $type(selector) == 'string' ? $(document.body).getElements(selector) : selector;
		var showidx = 0, hdr = $$(bloks.getElements('.header'));
		
		if (!hdr.length) return;
		
    if (window.location.hash.length > 1) {
			var anch = $(window.location.hash.substr(1));
			if (anch) anch = anch.getElement('.header');
			if (anch) {
				var save = window.location.hash;
				window.location.hash = "#";
				showidx = hdr.indexOf(anch);
				if (showidx < 0) showidx = 0;
				( function() { window.location.hash = save; }).delay(100);
			}
		}

		var progAccordion = new Accordion(hdr, bloks.getElement('.body'), {
			show: showidx, display: showidx,
			alwaysHide: true, opacity: false, duration :(Browser.Engine.gecko ? 250 : 250),
			fps: 75 });
	   
		hdr[showidx].getElement('.wrapper').addClass('activated secbg');

		var len = progAccordion.togglers.length;
		for ( var i = 0; i < len; i++) {
			var toggler = progAccordion.togglers[i];
      toggler.set('title', MooTools.lang.get('Soitron', 'accordionHint'));    
		}
		
		progAccordion.addEvent('active', function(header) {
			header.getElement('.wrapper').addClass("activated secbg");
			(function() {var el = $(header).getParent('.aitem');
			if (el) FrontLogic.changeHash(el.get('id'))}).delay(10);
		});
		
		progAccordion.addEvent('background', function(header) {
			header.getElement('.wrapper').removeClass("activated secbg");
		});

	},

	SetupFeedbackForm: function() {
    var form = $('feedback-form');
    if(form)
    {
		var _els = form.getElement('select[name=section]'), _eli = form.getElement('input[name=section2]');
		var _elo = _els.getElement('option.other');
		_els.addEvent('change', function(e) { var f=_elo.get('selected'); _eli[!f ? 'addClass' : 'removeClass']('hidden'); if (f) _eli.focus(); });

		var validator = new Form.Validator.Inline(form, {serial: false, evaluateFieldsOnBlur: false});
		form.store('my-validator', validator);
    }
  },
	
	SetupKontaktForm: function() {

	  // formular bezproblemovo degraduje bez javascriptu,  
    var form = $('contact-form');	
    if(form)
    {
      var validator = new Form.Validator.Inline(form, {serial: false, 
        evaluateFieldsOnBlur: false, evaluateOnSubmit: false});
      form.store('my-validator', validator);

      form.addEvent('submit', function(e) {
        if (e) e.preventDefault();    
        
        var validator = form.retrieve('my-validator');  
        if (!validator) return;
	 // validator.reset();
    	        
	 if (validator.validate(false))
        {
          var load = form.getElement('#ajax-loader').addClass('ajax-loading');    
          // spracovanie ajax requestu do stranky
          this.set('send', { 
            onComplete: function(response) {     
              load.removeClass('ajax-loading');    
              var res = $('response');        
              var type = response.substring(0,1);
              var message = response.substring(2);
    
              res.removeClass('form-error').removeClass('form-success').set('html', message);        
              res.set('reveal', {duration: '400', mode: 'vertical'});    
              if(type==0)              
                res.addClass('form-error').reveal();              
              else {            
                res.addClass('form-success').wink(5000);
                // vycistit formular 
                form.getElements("input[type=text], textarea").set('value', '');
		  form.retrieve('my-validator').reset();
              }                            
            }
          });    
          
          this.send();
        }
      });
    }    
  },
	
	SetupKontaktSection: function() {	  
    
    var page_holder = $('content_main');
    var anchor = null, btn;       
	  
    if (window.location.hash.length > 1) 
			var anchor = $(window.location.hash.substr(1));      							
		
		var sections = page_holder.getElements('.kontakt-section');
    var i, len = sections.length;		
    if (!anchor && len) anchor = sections[0];
    
    if (anchor) {
      btn = $('btn_'+anchor.get('id'));
      if (btn) btn.addClass('here');
      
      anchor.addClass("active");
    }        
    
    var elems = page_holder.getElements('.kontakt-mapa');
    for(i=0;i<elems.length;i++) {
      var m=elems[i];
      m.store('original', m.get('html'));
      m.set('html', '');      
    }      
    
    var clickBtn = function(evt, id) {
      var btns = $('subnav').getElements('.kontakt-btn.here');
      var me = $('btn_'+id), block = $(id);
      me.addClass('here');      
      for(i=0;i<btns.length;i++) if (btns[i] != me) btns[i].removeClass('here');
      block.removeClass('inactive').addClass('active');
      for(i=0;i<len;i++) if (sections[i] != block) sections[i].removeClass('active').addClass('inactive'); 
      return false;
    }
    
    for(i=0;i<len;i++) {
      var section = sections[i];
      var sid = section.get('id');      
      if (section != anchor) section.addClass("inactive");      
      var btn = $('btn_'+sid);
      if (btn) btn.getElement('a').addEvent('click', clickBtn.bindWithEvent(this, sid));
    }    
    
    if (anchor) {
			window.location.hash = "#";				
			( function() { window.location.hash = "#" + anchor.get('id'); }).delay(100);
	  } 
	  
	  var clickShowMap = function(e) {
      e = new Event(e);
      var href = $(e.target).get('href');
      if (href) {
        var el = page_holder.getElement(href);
        if (el) {
          var html = el.retrieve('original');
          if (html) {
            el.set('html', html).store('original', '');
          }
        }
        e.target.setStyle('display', 'none');
      } 	  
      e.preventDefault();
      return false;
    }
    page_holder.getElements('a.show-map').addEvent('click', clickShowMap.bindWithEvent(this));       
    
    FrontLogic.SetupKontaktForm(); 
  }
	
};

var FLS = {
	_terminy: {},
	_line: "",

	Init: function(terminy, line) {
		FLS._terminy = terminy;
		FLS._line = line;
	},

	Sel: function(skolenie_id) {
		var te = $(document.body).getElement('#registration-form select[name=term_choice]');
		var terms = FLS._terminy[skolenie_id];

		te.getElements('option[value!=0]').destroy();
		var nt = te.getElement('option');
		$H(terms).each(function(val, key) { new Element('option', {value: key}).set('html', val).inject(nt, 'before');});
		$(document.body).getElement('#registration-form input[name=event_group]').set('value', skolenie_id);

		FLS.TermChange(te.getElement('option').set('selected', true));
	},
	
	TermChange: function(sel) {
		var el = $(document.body).getElement('#registration-form input[name=term_text]');
		if ($(sel).get('value') == 0) el.removeClass('hidden'); else el.addClass('hidden');
	},

	TextAreaLimit: function(ta, maxlen) {
		var ta = $(ta);
		if (!ta) return;
		var counter = new Element('div').set('text',' ').inject(new Element('div', {'class': 'msg_cnt_wrapper'}).inject(ta, 'after')).addClass('msg_counter');

		var tafnc = function(event) {
			event = new Event(event);
			if (event.key.length > 1 || event.control || event.alt || event.meta) return true;
			var el = $(this);
			var curlen = el.get('value').length;
			taufnc.delay(5, this);
			return curlen < maxlen;
		};
		var taufnc = function() {
			var el = $(this);
			var curlen = el.get('value').length;
			if (curlen > maxlen)
				el.set('value', el.get('value').substr(0, curlen = maxlen));
			$(counter).set('text', new String(curlen +' / ' + maxlen + ' znakov'));
			return true;
		};

		ta.addEvent('keypress', tafnc.bindWithEvent(ta));
		ta.addEvent('keyup', taufnc);
		ta.addEvent('focus', taufnc);
		taufnc.run(false, ta);
	}
};

window.addEvent('domready', FrontLogic.Init);
