var site_base = '';
var IE        = window.attachEvent? true:false;
var subactive = null;

//get basepath
if(a=document.getElementsByTagName("link")[0])
{
  site_base = a.href.substr(0,a.href.indexOf('/resources'));
}

window.addEvent('domready', function()
{
  $$('select.toggle_select').each(function(el)
  {
      el.addEvent('change', function()
      {
          sel_toggle(el);
      });

      sel_toggle(el);
  });
  
  $$('input[type=checkbox].toggle_div').each(function(el)
  {
      el.addEvent('click', function()
      {
          cb_toggle(el);
      });

      cb_toggle(el);
  });

  //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;
    });
  })

  
  //checkboxes  
  if($('checkall'))
  {
    var selitems = $$('.checksingle');
    var selall   = $('checkall');
    selitems.each(function(el)
    {
      el.addEvent('click', function(e)
      {
        var newstate = selall.checked;
        if(this==selall)
        {
          selitems.each(function(el){
            el.checked=newstate;
          });
        }
        else if(this.checked==false)
        {
            selall.checked=false;
        }
      })
    });
  }
  
  $$('.toggler').each(function(el)
  {
      if($(el.hash.substring(1)))
      {
        el.addEvent('click', function(e)
        {
          var el = $(this);
          var opened = el.hasClass('toggler_open');
          $(this.hash.substring(1)).set('tween', {
            onComplete: function(e) {
              if(opened){el.removeClass('toggler_open');}
              else      {el.addClass('toggler_open');}
            }
          });
          $(this.hash.substring(1)).tween('height', opened? 0:$(this.hash.substring(1)).scrollHeight);
          e.stop();
        });
      }
  });
  
  /*
  $$('#nav>ul li').each(function(el){
    el.addEvent('mouseenter',function()
    {
      var submenu = this.getChildren()[1];
      if(submenu)
      {
        submenu.tween('height',submenu.offsetHeight,submenu.scrollHeight);
      }
    });
    
    el.addEvent('mouseleave',function()
    {
      var submenu = this.getChildren()[1];
      if(submenu)
      {
        submenu.tween('height',submenu.offsetHeight,0);
      }
    });
  });*/
  
  if($$('#mainnav>ul li.active ul').length>0)
  {
    subactive = $$('#mainnav>ul li.active ul')[0];
  }
  
  
  $$('#mainnav>ul>li').each(function(el){
    el.addEvent('mouseenter',function()
    {
      if(IE){this.addClass('iehover');}
      var submenu = this.getChildren()[1];
      if(submenu)
      {
        submenu.setStyle('height',(this.parentNode.offsetHeight)-6);
      }
      else if(subactive)
      {
        subactive.setStyle('z-index','10');
        subactive.setStyle('display','none');
      }
    });
    el.addEvent('mouseleave',function()
    {
      if(IE){this.removeClass('iehover');}
      if(subactive)
      {
        subactive.setStyle('display','block');
      }
    });
    
  });
  

  $$('.autosubmit').each(function(el){el.addEvent('change',function(){this.form.submit()});});
  
  if($('ververs'))
  {
    $('ververs').set('html','ververs afbeelding');
    $('ververs').addEvent('click', reloadValidationImage);
    $('ververs').className = 'ververslink';
  }
  if($('playsound'))
  {
    $('playsound').addEvent('click', function(){captchaMp3();return false;}); 
  }
  
  if ($('pcloc'))
  {
    new FieldText($('pcloc'),'1234 AB');
  }
  
});


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);
}


function sel_toggle(el)
{
    el.getElements('.toggle_div').each(function(opt)
    {
        opt.target_div = $(el.id+'_'+opt.value+'_div');
        
        if (opt.value == el.value)
        {
            opt.target_div.setStyle('display', 'block');
        }
        else
        {
            cleanup(opt.target_div);
            opt.target_div.setStyle('display', 'none');
        }
    });
}

function cb_toggle(el)
{
    el.target_div = $(el.id+'_'+el.value+'_div');
 
    if (el.checked == true)
    {
        el.target_div.setStyle('display', 'block');
    }
    else
    {
        cleanup(el.target_div);
        el.target_div.setStyle('display', 'none');
    }
}

// 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', '');
  });
}


function captchaMp3()
{
  var d = new Date();
  var msie  = (navigator.userAgent.toLowerCase().indexOf("msie") > -1) ? true : false;
  if(document.all && msie)
  {
    if(Number(parseFloat(navigator.appVersion.split('MSIE ')[1])) < 7)
    {
      embed = document.createElement("bgsound");
      embed.setAttribute("src", $('playsound') + "&cfsnd=" + d.getTime());
      document.getElementsByTagName("body")[0].appendChild(embed);
      return;
    }
  }
  if(document.getElementById)
  {
    var mp3player = '<embed src="' + $('playsound') + "&cfsnd=" + d.getTime() + '" hidden="true" type="audio/x-mpeg" autostart="true" />';
    $('soundcontainer').set('html',mp3player);
    return;
  }
  return;
}

function reloadValidationImage()
{
  if($('validationimage'))
  {
    var now = new Date();
    newSrc = $('validationimage').src
    newSrc = (newSrc.indexOf("&")>0)? newSrc.substr(0,newSrc.indexOf("&")) : newSrc;
    newSrc+= "&"+ now.getTime();
    $('validationimage').src = newSrc;
  }
}

var FieldText = new Class({
  initialize: function(element, default_text)
  {
    this.element      = element;
    this.default_text = default_text;

    this.unsel(); //set the defaulttext

    if(this.element.form)
    {
      this.element.form.onsubmit = function(){this.sel()}.bind(this);
    }
    this.element.onclick = function(){this.sel()}.bind(this);
    this.element.onblur  = function(){this.unsel()}.bind(this);
  },
  sel : function()
  {
    if(this.element.value==this.default_text)
    {
      this.element.value = '';
    }
  },
  unsel : function()
  {
    if(this.element.value=='')
    {
      this.element.value = this.default_text;
    }
  }
});


window.addEvent('load', function() {
    var myInfoBoxes = new InfoIcon($$('.infotxt'));
});



var InfoIcon = new Class({
  initialize: function(elements)
  {
    if(elements.length==0)
    {
      return;
    }

    this.boxname = ['infobox','infoboxhead'];
    this.infobox = new Element('div', {
      'class': this.boxname[0],
      'styles': {
        'position': 'absolute'
       ,'top': '0'
       ,'left': '0'
       ,'height': '0'
       ,'overflow': 'hidden'
      }
    }).inject(document.body);
    this.infotitle = new Element('div',{'class':'infoboxtitle'}).inject(this.infobox);
    this.infodata  = new Element('div',{'class':'infoboxdata'}).inject(this.infobox);

    this.slider = new Fx.Tween($(this.infobox),'height');
    this.slider.options.duration = 250; //ugly fix to set the duration..
    $$(elements).each(this.build, this);
  },

  build: function(el)
  {
    switch(el.tagName.toLowerCase())
    {
      case 'img':
        el.txt = el.alt.replace(/\n/g,'<br />');
        el.removeAttribute('alt');
      break;
      default:
        if((frstel=el.getFirst()) && frstel.className=='infotxtdata')
        {
          el.txttitle = el.title.replace(/\n/g,'<br />');
          el.removeAttribute('title');
          el.txt = frstel.get('html');
        }
        else
        {
          el.txt = el.title.replace(/\n/g,'<br />');
          el.removeAttribute('title');
        }
      break;
    }
    
    if (el.txt == '')
    {
        return false;
    }
    
    el.addEvent('mouseenter', function(event){
      this.infobox.className = this.boxname[el.txttitle?1:0];
      this.position(el);
      this.start(el);
    }.bind(this));
    var end = this.end.bind(this);
    el.addEvent('mouseleave', end);
    el.addEvent('trash', end);
  },

  start: function(el)
  {
    this.colorclass = el.className.split(' ')[2]; 
    this.infotitle.empty();
    this.infotitle.set('html',el.txttitle);
    this.infodata.empty();
    this.infodata.set('html',el.txt);
    $clear(this.timer);
    this.timer = this.show();
  },

  end: function(event)
  {
    $clear(this.timer);
    this.timer = this.hide();
  },

  position: function(element)
  {
    var pos    = element.getPosition();
    var dynw   = element.offsetWidth;
    var dynh   = element.offsetHeight;
    var winx   = window.getWidth()-50;
    var infow  = this.infobox.offsetWidth;
    var alignr = (pos.x+infow>winx)? true : false;
    this.infobox.setStyles({
       'left': pos.x - (alignr? infow-dynw : 0)
      ,'top': pos.y+dynh
      ,'background-position': (alignr?'-250px 0px':'0px 0px')
    });
  },

  show: function()
  {
    //this.infobox.addClass(this.colorclass);
    this.slider.cancel();
    this.slider.set('height',0);
    this.slider.start('height',0,this.infobox.scrollHeight);
    this.infobox.addClass(this.colorclass);
  },

  hide: function()
  {
    this.slider.cancel();
    this.slider.start('height',this.infobox.scrollHeight,0);
    //this.infobox.removeClass(this.colorclass);
  }

});
