/*******************************************************************************
 * Routinen zur Verwendung in Mediaseite                                       *
 *******************************************************************************
 * Voraussetzungen:                                                            *
 * - jQuery (1.1.2)                                                            *
 * - facebox (1.2)                                                             *
 *******************************************************************************
 * (c) 2008, WDR mediagroup digital GmbH                                       *
 * Alex Winterbauer <alex.winterbauer@wdr-mediagroup.com>                      *
 * Martin Kurz <martin.kurz@wdr-mediagroup.com>                                *
 *******************************************************************************
 * $Id: kurznachrichten.jsp,v 1.4 2007/10/10 10:48:26 martink Exp $
 * 
 * $Log: kurznachrichten.jsp,v $
 ******************************************************************************/

var ua = navigator.userAgent.toLowerCase();

var isMac   = (ua.indexOf('mac')>-1)?1:0;
var isWin   = (ua.indexOf('win')>-1)?1:0;

var isGecko   = (ua.indexOf('gecko')>-1)?1:0;
var isSafari   = (ua.indexOf('safari')>-1)?1:0;

var isOpera = (ua.indexOf('opera')>-1)?1:0;

var isIE    = (ua.indexOf('msie')>-1 && !isOpera)?1:0;

var isIEWin = (isIE && isWin && !isOpera)?1:0;
var isIEMac = (isIE && isMac && !isOpera)?1:0;
var isIEWinCE  = (isIE && ua.indexOf('windows ce')>-1)?1:0;

var isWPrint   = (window.print)?1:0;
 
var isDOM   = (document.getElementById)?1:0;
var isIE4   = (isIE && !isDOM)?1:0;
var isNS4   = (document.layers)?1:0;

var popupSizesArr = new Object();
popupSizesArr["stichwort"]     = new Array( 380, 431 );
popupSizesArr["portrait"]      = new Array( 432, 615 );
popupSizesArr["kurzmeldungen"] = new Array( 685, 485 );
popupSizesArr["buli_vorschau"] = new Array( 685, 485 );
popupSizesArr["mediabox"]      = new Array( 818, 605 );
popupSizesArr["mediabox_av"]   = new Array( 818, 605 );
popupSizesArr["mediabox_b"]    = new Array( 818, 605 );
popupSizesArr["mediabox_vb"]   = new Array( 818, 605 );
popupSizesArr["rueckblick"]    = new Array( 818, 605 );
popupSizesArr["eventbox"]      = new Array( 786, 540 );
popupSizesArr["ticker"]        = new Array( 415, 665 );
popupSizesArr["statistik"]     = new Array( 425, 550 );

var popupSizes = new Object();

/**
 * Aufruf der init-Funktionen nach Laden des Dokuments
 */
jQuery(document).ready(function($) {
  initMediaseite();
});

/**
 * Initialisierung der Eventhandler etc
 */
function initMediaseite() {
  $('a[@rel*="facebox"]').facebox();
  $('#ardMBBlaetternButtonLinkL').bind("click", loadResp);
  $('#ardMBBlaetternButtonLinkR').bind("click", loadResp);
  $('.ajaxContentLink').bind("click", loadContent);
  $("#ardMBMedienauswahl :checkbox").bind("change", medienAuswahl);
  for ( var pType in popupSizesArr ) {
    popupSizes[pType] = popupSizesArr[pType][0] + ',' + popupSizesArr[pType][1];
  }
  setLinkAttributes();
}

/**
 * Ajax-Aufruf zum Austausch des Contents (bei Bildergalerien)
 */
function loadContent(e) {
  ajaxLoad($(this).attr("href"), "ardMBAktuellContainerContent");
  return false;
}

function loadContentElement(url) {
  $.get(url, { contentOnly: "true" }, function(data) {
    $("#ardMBAktuellContainerContent").empty();
    $("#ardMBAktuellContainerContent").append(data);
    initMediaseite();
  });
}

function ajaxLoad(url, target) {
  if ( url.indexOf( '#' ) > -1 ) {
      url = url.substring( 0, url.indexOf( '#' ) );
  }
  if ( url.indexOf( '?' ) == 0 ) {
      url = window.location.pathname + url;
  }
  $.get(url, { ajax: target }, function(data) {
    $("#"+target).empty();
    $("#"+target).append(data);
    initMediaseite();
  });
}

/**
 * Ajax-Aufruf zum Austausch der rechten Spalte
 */
function loadResp(e) {
  ajaxLoad($(this).attr("href"), "ardMBWeitereContainer");
  return false;
}

function loadRespElement(url) {
  $.get(url, { rechteSpalte: "true" }, function(data) {
    $("#ardMBWeitereContainer").empty();
    $("#ardMBWeitereContainer").append(data);
    initMediaseite();
  });
}

/**
 * bei Auswhal von "Alle" andere Checkboxen deaktivieren, bei Auswahl anderer
 * Medientypen "Alle" deaktivieren
 */
function medienAuswahl(e) {
  if ( $(this).attr("value") == "all" ) {
    $("#ardMBMedienauswahl :checkbox").each( function(i) {
      if ( $(this).attr("value") != "all" ) {
        this.checked = null;
      }
    });
  } else {
    $("#ardMBMedienauswahl :checkbox").each( function(i) {
      if ( $(this).attr("value") == "all" ) {
        this.checked = null;
      }
    });
  }
}

/**
 * Ein-/Ausblenden der Medienauswahl
 */
function showHideMedienauswahl() {
  $('#ardMBMedienauswahl').toggle();
  return true;
}

/**
 * Link-Collection an setLinkAttrCollection übergeben
 */
function setLinkAttributes(){
  setLinkAttrCollection($("a"));
} // setLinkAttributes

/**
 * Link auf Popup-Bedarf testen und Handler setzen
 */
function setLinkAttrCollection( urls ) {
  var zText  = "Link öffnet in neuem Fenster";

  for (i=0; i<urls.length; i++){
    var actUrl = urls[i];
    var rel = $j(actUrl).attr("rel");
    var tgt = $j(actUrl).attr("target");
    var ocl = $j(actUrl).attr("onclick");
    var url = $j(actUrl).attr("href");
    var id = $j(actUrl).attr("id");
    if ( id ) {
      var idElems = id.split(":");
      if ( idElems.length > 1 && !rel ) {
        rel = idElems[0];
      }
    }

    if (rel) {
      var fall = rel; 
      if ( rel.indexOf("@") > -1 ){
        fall = rel.substring( 0, rel.indexOf("@") );
        tgt  = rel.substring( rel.indexOf("@") + 1 );
      }

      switch ( fall ) {
        case 'audio':
        case 'gaestebuch':
        case 'video':
            if ( !tgt ) { tgt = null; }
            break;
        case 'eventbox':
        case 'kurzmeldungen':
        case 'buli_vorschau':
        case 'mediabox':
        case 'mediabox_av':
        case 'mediabox_b':
        case 'mediabox_vb':
        case 'rueckblick':
        case 'portrait':
        case 'statistik':
        case 'stichwort':
        case 'ticker':
            if ( !tgt ) { tgt = "_blank"; }
            if ( !ocl && url ) {
              $j(actUrl).bind( "click", relPopupEvt );
            }
            break;
        case 'ard':
        case 'blank':
        case 'forum':
        case 'popup':
        case 'wdr':
        case 'www':
            if ( !tgt ){ tgt = "_blank"; }
            break;
        default:
            if ( !tgt ){ tgt = null; }
      }

      if ( tgt ) {
        appendToTitleText( actUrl, zText );
        setLinkTarget( actUrl, tgt );
      }
    } else if ( tgt ) { 
      appendToTitleText( actUrl, zText ); 
    }
  } // for
} // setLinkAttrCollection

/**
 * title-Attribut erweietern
 */
function appendToTitleText(n, s){
  if ( $j(n).attr("title") ) {
    var t = $j(n).attr("title") + ". " + s;
    $j(n).attr( "title", t );
  } else {
    $j(n).attr( "title", s );
  }
}

/**
 * target-Attribut setzen (nicht XHTML-konform,
 * darum nicht direkt gesetzt ;o)
 */
function setLinkTarget(n,t){
  $j(n).attr( "target", t );
}

/**
 * Popupfenster in Abhängigkeit des rel-Attribuits
 * des Links öffnen
 */
function relPopupEvt(evt) {
  var rel = $(this).attr("rel");
  var url = $(this).attr("href");
  if ( !rel || !url ) {
    return true;
  }
  if ( url.indexOf( "?" ) >= 0 ) {
      url += '&popup';
  } else {
      url += '?popup';
  }
  return popup( url, popupSizesArr[relTxt][0], ( isIE ? popupSizesArr[relTxt][1] - 20 : popupSizesArr[relTxt][1] ) );
} // relPopupEvt

/**
 * Abwärtskompatibilität
 */
function setStatPixel(url) {
    return;
}