/*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 agt = navigator.userAgent.toLowerCase();
var is_ie6 =  ( (agt.indexOf("msie 6.")!= -1) );

if ('undefined' == typeof(mOptions)) { var mOptions = new Object(); }

/**
* insert print link 
*/
function write_printlink(){
  var linktxt = 'Drucken'; var linktitle = ' Diese Seite ausdrucken '; 
  $('#footer #service').prepend('<li class="printlink"><a title="'+ linktitle +'" href="javascript:window.print()">'+ linktxt +'</a></li>');
}


function set_calendarmonth(){
  $('#navkontext .teaser table caption').contents().filter(function(){ return this.nodeType != 1; }).wrap('<span class="currentmonth"></span>');
  var caption = ''+ $.trim(String($('#navkontext .teaser table caption span.currentmonth').text()).replace(/[0-9]/gi,''));
  $('#navkontext .teaser table td.monthOff span.cellborder').remove();
  if(caption.length > 2){
    $('#navkontext .teaser table td:not(.monthOff) span.cellborder:has(a) span.out').remove();
    $('#navkontext .teaser table td:not(.monthOff) span.cellborder a').append('<span class="out">.</span>');
    $('#navkontext .teaser table td:not(.monthOff) span.cellborder span.out').append(' '+caption);
  }
  var lastlink = $('#navkontext .teaser table caption a.last').attr('href') + '#hauptinhalt';
  $('#navkontext .teaser table caption a.last').attr('href',lastlink);
  var nextlink = $('#navkontext .teaser table caption a.next').attr('href') + '#hauptinhalt';
  $('#navkontext .teaser table caption a.next').attr('href',nextlink);
}


/**
* toggle answer container in faq
*/

mOptions = {
  'kontext' : '.faq .questions ol li',
  'allq' : ' h3 a',
  'cq' : '.active h3 a',
  'ncq' : ':not(.active) h3 a',
  'alla' : ' div.container_antworten',
  'ca' : '.active div.container_antworten',
  'nca' : ':not(.active) div.container_antworten',
  'showtitle' : 'Details zu dieser Frage anzeigen',
  'hidetitle' : 'Details zu dieser Frage ausblenden',
  'num' : 0
  
};/* mOptions */

function toggle_meinungen(){

    set_active();
    //count_max();
    var faqkontext = mOptions.kontext;

    var allQ = $(faqkontext+mOptions.allq);
    var allA = $(faqkontext+mOptions.alla);

    var nactQ = $(faqkontext+mOptions.ncq);
    var nactA = $(faqkontext+mOptions.nca);

    var actQ = $(faqkontext+mOptions.cq);
    var actA = $(faqkontext+mOptions.ca);

    var alltitle = mOptions.showtitle;
    var acttitle = mOptions.hidetitle;


    nactA.hide('fast', function() {
       nactQ.attr('title',alltitle);
       actQ.attr('title',acttitle);
    });

    allQ.each(function (index) {

      var answer = $(this).attr('href').substring($(this).attr('href').indexOf('#'));

      $(this).click(function() {
        $(faqkontext+mOptions.ca).hide();
        $(faqkontext+'.active').removeClass('active');

        $(answer).slideToggle("fast", function () {
          var 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);
        });
      });
    });
}


function count_max(cid){
    var cval = $('#'+cid).val();
    var clth = cval.length;
    if(clth > 1000){ document.getElementById(cid).value = cval.substring(0, 1000); }
    return true;
}

function set_maxcounter(){

  $(mOptions.kontext+' textarea').each(function(index) {
    var cid = $(this).attr('id');
    $(this)
     .click(function() { count_max(cid); })
     .change(function() { count_max(cid); })
     .keydown(function() { count_max(cid); })
     .keyup(function() { count_max(cid); });
  });

}

function set_active(){
  var currentHash= String(showHash());
  var mynum = 1 + mOptions.num;
  if( 0 == currentHash.indexOf('#antwort_') ) {
     if(parseInt( currentHash.substring(currentHash.lastIndexOf("_")+1) ) != NaN)
     mynum = 1 + parseInt( currentHash.substring(currentHash.lastIndexOf("_")+1) );
  }

  $(mOptions.kontext+':nth-child('+mynum+')').addClass('active');
}


function showHash () {
  return location.hash;
}

/**
* 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);
  }
}


/**
* stage teaser
*/
function stageteaser_click(){
  if(is_ie6){

  }else{
  $('div#stage .teaserarea .box:not(.aktiv)').each(function(index) {

    $(this).hover(
      function () {
        $(this).css("z-index","900");
        $(this).addClass('fokus');
      }, 
      function () {
        $(this).removeAttr('style');
        $(this).removeClass('fokus');
      }
    );

    $(this).click(function () { 
      try{
        var currentlink = $(this).find('.teaser div a').attr('href');
        window.location.assign(currentlink);
      }catch(err){ /* alert(err) */ }
    });

    $(this).append('<div class="flag"></div>');
    $(this).prepend('<div class="flagtop"></div>')

  });
  }
}

/**
* role attributs for screen reader
*/
function add_waiaria(){
  add_wa('div#direct,div#navMain,div#navSub','navigation');
  add_wa('ul#service','contentinfo');
  add_wa('div#search','search');
  add_wa('div#stage','banner');
  add_wa('div#content','main');
  add_wa('div.teaser,div.box.plain:not(.faq),div.box.plain.faq ol li','article');
}

function add_wa(containerlist, myrole){
  $(containerlist).attr('role', myrole);
}

/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* loaded events */

//addLoadEvent(check);
addLoadEvent(write_printlink);
addLoadEvent(toggle_meinungen);
addLoadEvent(stageteaser_click);
addLoadEvent(add_waiaria);
addLoadEvent(set_maxcounter);
addLoadEvent(set_calendarmonth);
