//get basepath
var site_base = "";
if(a=document.getElementsByTagName("link")[0])
{
  site_base = a.href.substr(0,a.href.indexOf('/resources'));
}

function popup(url,w,h,scroll)
{
  var l = (screen.width-w)/2;
  var t = (screen.height-h)/2;

  window.open(url,'_blank','resizable=yes,location=no,menubar=no,scrollbars='+scroll+',status=no,toolbar=no,fullscreen=no,dependent=no,width='+w+',height='+h+',left='+l+',top='+t);
}

window.addEvent('domready', function()
{

  if ($('evcsearch'))
  {
    var evcsearchform = $('evcsearch');
    evcsearchform.getElement('#sector').addEvent('change', function(){evcsearchform.submit();});
  }
    
  if($('fader'))
  {
    var image_array = [site_base + '/resources/images/layout/headers/1.jpg'
                      ,site_base + '/resources/images/layout/headers/2.jpg'
                      ,site_base + '/resources/images/layout/headers/3.jpg'
                      ,site_base + '/resources/images/layout/headers/4.jpg'
                      ,site_base + '/resources/images/layout/headers/5.jpg'
                      ,site_base + '/resources/images/layout/headers/6.jpg'
                      ,site_base + '/resources/images/layout/headers/7.jpg'];
    var myfader = new fader($('fader'), {'image_array': image_array});
  }

  $$('.togglediv').each(function(el)
  {
    if ($('div_' + el.id))
    {
      var toggletarget = $('div_' + el.id);
      el.addEvent('click', function()
      {
        toggle_target(toggletarget);
        return false;
      });

      if (!toggletarget.hasClass('opened'))
      {
        toggletarget.setStyle('display', 'none');
      }
    }

  });

  //instead of target='_blank'
  $$('a.newwindow').each(function(el) {
    el.addEvent('click', function(event){
      if(this.rel && this.rel.match(/\d+,\d+/))
      {
        popup(this.href,this.rel.split(',')[0],this.rel.split(',')[1],'yes');
      }
      else
      {
        window.open(this.href,"_blank");
      }
      return false;
    });
  })

  if($('nav') && Browser.Engine.trident4 == true)
  {
    $$('#nav li').each(function(el)
    {
      el.addEvents({
        'mouseenter': function(){el.addClass('iehover');},
        'mouseleave': function(){el.removeClass('iehover');}
      });
    });
  }


  $$('.toggle_radio').each(function(el)
  {
    el.radios = [];

    el.getElements("input[type='radio']").each(function(rb)
    {
      rb.dotoggle = rb.hasClass('toggle_div');

      if (rb.dotoggle)
      {
        el.radios.push(rb);
        rb.target = $('div_'+rb.id.substr(rb.id.indexOf('_')+1));
        rb.target.setStyle('display', 'none');

        if (rb.checked == true)
        {
          rb.target.setStyle('display', 'block');
        }
      }

      rb.addEvent('click', function(e)
      {
        el.radios.each(function(item)
        {
          if (rb.id != item.id)
          {
            //item.slider.slideOut();
            item.target.setStyle('display', 'none');
            cleanup(item.target);
          }
        });

        if (rb.dotoggle)
        {
          rb.target.setStyle('display', 'block');
        }
      });
    });
  });


});

function toggle_target(el)
{
  if (el.hasClass('opened'))
  {
    el.removeClass('opened');
    el.setStyle('display', 'none');
  }
  else
  {
    el.addClass('opened');
    el.setStyle('display', 'block');
  }
}

// function to clear any form value in the scope of an element (div)
function cleanup(el)
{
  // check for textfields
  el.getElements("input[type='text']").each(function(target_tf)
  {
    target_tf.set('value', '');
  });

  // check for textareas
  el.getElements("textarea").each(function(target_ta)
  {
    target_ta.set('value', '');
  });

  // check for select fields
  el.getElements("select").each(function(target_sel)
  {
    target_sel.set('value', '');
    if (target_sel.hasClass('subselect'))
    {
      checksub(target_sel, true);
    }
  });
}

var fader = new Class({

  Implements: [Options],

  options: {
    'slide_delay'  : 3000
   ,'tweenduration': 500
   ,'image_array  ': []
  },
  initialize: function(element, options)
  {
    this.setOptions(options);
    this.element = element;
    this.curSlide = -1;

    //get the size of the placeholder
    var size = this.element.getSize();

    //load all the images as assets
    this.images = new Asset.images(this.options.image_array);

    //create the img-tag that fades away
    this.image = new Element('img', {
      'src': this.element.getStyle('background-image').replace(/^url\(['"]?([^'")]*).*/g,'$1') //load the current backgroundImage
     ,'width': size.x
     ,'height': size.y
     ,'alt': ''
     ,'styles': {
        'position': 'absolute'
       ,'top': '0'
       ,'left': '0'
      }
    }).inject(this.element);

    //create the tween-fx for the image-object
    this.fx = new Fx.Tween(this.image, {property:'opacity', duration:this.options.tweenduration});

    //start the interval
    var periodical = this.fadeinout.periodical(this.options.slide_delay, this);
  },

  fadeinout: function()
  {
    //this.curSlide = (this.curSlide+1)%this.images.length;
    this.curSlide = $random(0, this.images.length-1);

    var newsrc = this.images[this.curSlide].get('src');

    // set this.element backgroundimage to the next image
    this.element.setStyle('background-image', 'url('+newsrc+')');

    //200 millisec after the background is set we make the image transparent
    (function(){this.fx.start(1,0);}).delay(200, this);

    //300+tweenduraction millisec after the image is made transparent we make it appear again
    (function(){
      this.image.set('src', newsrc);
      this.fx.set(1);
    }).delay(300+this.options.tweenduration, this);
  }
});