/*CVS Add-ins*/
/*
$Revision: 1.10 $
$RCSfile: behaviour.js,v $
author: JDE
*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/*
    behaviour.js
    11.05.2010  JDE
*/
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/*Copyright (c) A&B FACE2NET GmbH*/

function check(){ alert("JS eingebunden"); }
var autoslide = true;
var topbox = '#topcontent .teaser .box';
var cimgs = new Array(); 
var preloadcounter = 0;

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
* insert print link 
*/
function write_printlink(){
  var linktxt = 'Drucken'; var linktitle = ' Diese Seite ausdrucken '; 
  $("#footer #navFooter").prepend('<a title="'+ linktitle +'" href="javascript:window.print()">'+ linktxt +'</a><span> | </span>');
}


/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
* toggle answer container in faq
*/
function toggle_faq(){

    var faqkontext = '.faq .questions ol li';
    var allQ = $(faqkontext+" h3 a");
    var actQ = $(faqkontext+".active h3 a");
    var tempi = 0;
    var alltitle = "Details zu dieser Frage anzeigen";
    var acttitle = "Details zu dieser Frage ausblenden";

    $(faqkontext+':first').addClass('active');
    allQ.each(function (index) {

      var answer = $(this).attr('href').substring($(this).attr('href').indexOf('#'));
      if(index > 0){
       $(answer).slideToggle();
       $(this).attr('title',alltitle);
      }else{
       $(this).attr('title',acttitle);
      }

      $(this).click(function(event) {
        //event.preventDefault();
        $(answer).slideToggle("fast", function () {
          tempi = 1+index;
          $(faqkontext+':nth-child('+tempi+')').toggleClass('active');
          $(faqkontext+':not(.active) h3 a').attr('title',alltitle);
          $(faqkontext+'.active h3 a').attr('title',acttitle);
          check_viewport(answer);
        });
      });
    });/* each */
}


/**
* make sure, that question is in viewport
*/
function check_viewport(answer){
  var y = 0;
  if (window.pageYOffset) {
    y = window.pageYOffset;
  } else if (document.body && document.body.scrollTop) {
    y = document.body.scrollTop;
  }
  if (y > 100) {
    window.scrollBy(0, -100);
  }
}

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
* slide box
*/
if ('undefined' == typeof(sOptions)) { sOptions = new Object(); }
sOptions = {
  'cnum' : 0,
  'ncounter' : 0
};/* sOptions */


/* load events for slide box behaviour  */
function initiate_slidebox(){
  if(document.getElementById('topcontent')){
    try{
       if(slidebox_1 && slidebox_1.counter) {
        if(slidebox_1.counter > 1){
          sOptions.ncounter = slidebox_1.counter-1;
          $.extend(true, sOptions, slidebox_1);
          next_teaserlink();
          prev_teaserlink();
          clickteaser();
          $(topbox).attr('aria-live', 'polite');
          if(autoslide) $('#direct ul').prepend('<li><a href="javascript:stop_animation()" class="skip">Direkt: Animationen auf dieser Seite stoppen</a></li>');
          //$(topbox+' h2').after('<strong class="out" id="stop_animation"><a href="javascript:stop_animation()">Animation stoppen</a></strong>');
          auto_slider();
        }else if(slidebox_1.counter = 1){
          $.extend(true, sOptions, slidebox_1);
          clickteaser();
        }
      }
      
      
    }catch(err){
      autoslide = false;
    }
  }
}/* initiate_slidebox */


/* boxfocus for keyboard navigation */
function set_boxfocus(){
  window.scrollTo(0,0); 
  $(topbox+' h2 a')[0].focus();
}/* set_boxfocus */


/* check, if teaser link is extern */
function is_slideextern(){
  if(String( $(topbox+' h2 a').attr('href') ).indexOf('http:') >= 0) return true;
  else return false;
}/* is_slideextern */


/* stop sliding */
function stop_animation(){
  autoslide = false;
}/* stop_animation */


/* start sliding */
function auto_slider(){
  var slider = window.setTimeout("slide_teaser()", 15000);
}/* auto_slider */


/* write next teaser img */
function switch_teaserimg(key){
  if(sOptions[key] && sOptions[key].img_src && sOptions[key].img_alt){
    $(topbox+' img')
      .attr('src', sOptions[key].img_src)
      .attr('alt',sOptions[key].img_alt)
      .attr('title',sOptions[key].img_alt);
  }
}/* switch_teaserimg */


/* write next teaser headline */
function switch_teaserhead(key){
  if(sOptions[key] && sOptions[key].posclass ){
    var head = '';
    if(sOptions[key].pos1) head += '<span class="pos1">'+sOptions[key].pos1+ '</span><br class="out" />';
    if(sOptions[key].pos2) head += '<span class="pos2">'+sOptions[key].pos2+ '</span><br class="out" />';
    if(sOptions[key].pos3) head += '<span class="pos3">'+sOptions[key].pos3+ '</span>';
    if(sOptions[key].tlink){ 
      var moreinfo="";
      var slash = "";
      if(sOptions[key].tlink.indexOf('http:') >= 0){ 
        moreinfo = 'target="_blank" class="extern" title="externer Link - &ouml;ffnet in neuem Fenster"';
      }else if(sOptions[key].tlink.indexOf('/') != 0){
        slash = '/';
      }
      $(topbox+' div').attr('class', sOptions[key].posclass);
      $(topbox+' h2').replaceWith('<h2><a href="'+slash+sOptions[key].tlink+'" '+moreinfo+'>'+head+'</a></h2>'); 
    }
  }
}/* switch_teaserhead */


/* write next ff link */
function next_teaserlink(){
  var num = 0;
  if(sOptions.cnum < sOptions.ncounter) num = sOptions.cnum+1;
  $('#topcontent .teaser .ff a').attr('href',"javascript:loadTeaser("+num+")");
  if(sOptions[num] && sOptions[num].img_src && (sOptions.cnum < sOptions.ncounter) ){
    if(preloadcounter < sOptions.ncounter){
      cimgs[num] = new Image();
      cimgs[num].src = sOptions[num].img_src;
      preloadcounter++;
    }
  }
}/* next_teaserlink */


/* write next rew link */
function prev_teaserlink(){
  var num = sOptions.ncounter;
  if(sOptions.cnum > 0) num = sOptions.cnum-1;
  $('#topcontent .teaser .rew a').attr('href',"javascript:loadTeaser("+num+")");
}/* prev_teaserlink */


/* load next teaser content */
function loadTeaser(num){
  sOptions.cnum = num;
  $(topbox).fadeOut(1000, function () {
    switch_teaserimg(num);
    switch_teaserhead(num);
    next_teaserlink();
    prev_teaserlink();
    $(topbox).fadeIn(2000, function () { 
      if(!autoslide) set_boxfocus();
     });
  });
}/* loadTeaser */


/* slide next teaser content */
function slide_teaser(){
  if(autoslide){
    try{
      $('#topcontent .teaser .ff a,#topcontent .teaser .rew a').click(function() { autoslide = false; })
       var num = sOptions.ncounter;
        if(sOptions.cnum > 0) num = sOptions.cnum-1;
        loadTeaser(num);
    } catch(err){
      autoslide = false;
    }
    auto_slider();
  }
}/* slide_teaser */


function clickteaser(){
  if( 'undefined' != String( $(topbox+' h2 a').attr('href') ) ){

    var clicktitle='Nachricht anschauen';
    if(is_slideextern()){ clicktitle='externer Link - öffnet in neuem Fenster'; }

    $('#topcontent .teaser .box')
    .addClass('cursorbox')
    //.attr('title',clicktitle)
    .click(function() {
      if(is_slideextern()){ window.open($(topbox+' h2 a').attr('href')); 
      }else{ 
        var clink = $(topbox+' h2 a').attr('href');
        if(clink.indexOf('/') != 0) clink = '/'+clink;
        window.location.assign(clink); 
      }
    })
    .hover(
      function () {
       $(topbox+' h2 a').addClass('fokus');
       if(is_slideextern()){
          clicktitle='externer Link - öffnet in neuem Fenster';
       }else clicktitle='Nachricht anschauen';
       //$(this).attr('title',clicktitle);
       //if(ie) $(topbox+' img').attr('title',clicktitle);
       if(ie) $(topbox+' img');
      }, 
      function () {
        $(topbox+' h2 a').removeClass('fokus');
      }
    );
  }
}


/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 
* role attributs for screen reader
*/
function add_waiaria(){
  add_wa('div#direct,div#navMain,div#navSub,div#navService,div#navArea','navigation');
  add_wa('#navFooter','contentinfo');
  add_wa('div#search','search');
  add_wa('div#navLogo','banner');
  add_wa('div#maincontent','main');
  add_wa('div.teaser,div.box.plain:not(.form),div.box.media,div.box.special,div.box.nocolored,div.box.flickr','article');
}

function add_wa(containerlist, myrole){
  $(containerlist).attr('role', myrole);
}

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* loaded events */

//addLoadEvent(check);
addLoadEvent(write_printlink);
addLoadEvent(toggle_faq);
addLoadEvent(initiate_slidebox);
addLoadEvent(add_waiaria);
