/**
*
* Projekt         : ostseelive
* Dateiname       : javascript/layout/anzeige.js
* Erzeugungsdatum : 13.04.2011
* Autor           : Michael Abt
* Letzte Akt.     : 20.02.2012 [MA]
*
* Beschreibung:
*
* Versionshistorie:
* 1.1(20.02.2012) : onLoadStart zur Kontrolle des Größen-Redirectors [MA]
*
* TO-DO:
*
*/

var active_menu_element = null;

var get_site    = null;
var get_ort     = null;
var get_filter  = null;
var get_vnr     = null;

var mediabox    = null;
var mediabox_filter = null;

////////////////////////////////////////////////////////////////////////////////

function log(message) {

  if (lokal != false && (navigator.appVersion.indexOf("MSIE 8.0") != -1 || navigator.appName.indexOf("Explorer") == -1)){
//   console.log(message);
  }
  
  
};

////////////////////////////////////////////////////////////////////////////////

function exist(variable) {

  var retExist;

  if (typeof variable == 'undefined') {
    retExist = false;
  }else if (variable == 'null') {
    retExist = false;
  } else if (variable === null) {
    retExist = false;
  } else if (variable.toString(10) == '') {
    retExist = false;
  } else {
    retExist = true;
  }

//  log(test2 + ' exist: '+variable + ' = ' + test);
  return retExist;
};

////////////////////////////////////////////////////////////////////////////////

function resetScrollbar() {

  if (document.getElementById('centerbox_content').scrollTop > 0) {
    document.getElementById('centerbox_content').scrollTop = 0;
  }

};

////////////////////////////////////////////////////////////////////////////////

function makeActiveWrapper(event) {

  var currentTargetId = event.currentTarget.id;
  if (currentTargetId == "kontaktbutton") {
    currentTargetId = "kontakt";
  }

  makeActive(currentTargetId);
};

function makeActive(target) {

  var menu_element;

  menu_element = document.getElementById(target);

  if (menu_element == null) {
    return;
  }

  if (active_menu_element != null) {
    document.getElementById(active_menu_element).className = "menupoint";
    active_menu_element = menu_element.id;
  } else {
    active_menu_element = menu_element.id;
  }

  menu_element.className = "menupoint menupoint_active";
};

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

// zeigt nur das Vergrößern/Verkleinern-Symbol an
function loadSizeswitchBox() {
    document.getElementById('sizeswitch_bar').style.display = 'none';
    document.getElementById('sizeswitch_video').style.display = 'block';
    document.getElementById('centerbox').className = 'contentboxes centerbox_big';
};

// zeigt die gesamte Leiste an
function loadSizeswitchBar() {
    document.getElementById('sizeswitch_bar').style.display = 'block';
    document.getElementById('sizeswitch_video').style.display = 'none';
    document.getElementById('centerbox').className = 'background contentboxes centerbox_small';
};


function onLoadStart() {
  // Nur wenn die Größe geändert werden muss, soll auch neugeladen werden
  // Ansonsten wird einfach die onLoad-Funktion aufgerufen und die
  // Seite geladen.

  if (redirectIfTooLarge() === true) {
      location.reload();
  } else {
      onLoad();
  }

};


function onLoad() {
  log('onLoad');
  log('hash' + document.location.hash);

  var sizeswitch1 = document.getElementById('sizeswitch1');
  var sizeswitch2 = document.getElementById('sizeswitch2');
  Handler.add(sizeswitch1, 'click', writeSizeToCookie);
  Handler.add(sizeswitch2, 'click', writeSizeToCookie);

  if (document.location.hash != '') {

    get_site = getSubstring('&', 'site=', document.location.hash);
    get_filter = getSubstring('&', 'filter=', document.location.hash);

  } else {

    if (!exist(get_ort) && !exist(get_vnr)) {
      get_site = 'index';
    } else {
      get_site = 'mediathek';
      get_filter = 'wetter';
    }

  }

  loadContentFrom();
  return;
};




function loadContentFrom() {

  log('loadContentFrom');

  // An die entsprechende Funktion leiten
  if (get_site != 'index') {
      loadSizeswitchBar();

    if (get_site == 'mediathek' ) {
      loadContentMediathek(get_filter);
      makeActive(get_filter);
      etr_ort = get_ort;
      etr_vnr = get_vnr;
      etr_filter = get_filter;

    } else if (get_site == 'poi') {
      loadContentPOI(get_filter);
      makeActive(get_filter);
      etr_ort = get_ort;
      etr_filter = get_poi_filter;

    } else if (get_site == 'poi_details') {
      loadContentPOIDetails(get_filter);
      makeActive(get_filter);
      etr_ort = get_ort;
      etr_filter = get_poi_filter;

    } else if (get_site == 'gewinnspiel') {
      loadContentGewinnspiel(get_filter);
      makeActive('gewinnspiele');
      etr_filter = get_filter;

    } else if (get_site == 'gewinnspiele_uebersicht' || get_site == 'teilnahmebedingungen' || get_site == 'preise') {
      loadContent(get_site);
      makeActive('gewinnspiele');

    } else {
      loadContent(get_site);
      makeActive(get_site);
    }
  } else {
      loadSizeswitchBox();
    if(typeof loadIndex == "function") {
      loadIndex();
    }
      
  }

  eTracker();
  
  log('get_ort: ' + get_ort);

};

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

function responseContent(ajax){

  var slot;

  slot = document.getElementById('content');

  if (ajax.slot) {
    slot = document.getElementById(ajax.slot);
  }

  if (ajax.js == false) {
    //secra.dom.Toolbox.removeAllChildren(slot);
    slot.innerHTML = ajax.getText();
    log('ohne JS');

  } else {

    var source = ajax.getText();

    var splitedCode = secra.DynamicLoader.splitScripts(source);
    source = splitedCode.cleanedHtml;

    var obj = secra.dom.Toolbox.toDOM(source);

    secra.dom.Toolbox.removeAllChildren(slot);
    slot.appendChild(obj);

    if (ajax.recaptcha) {
      Recaptcha.create("6LcehrsSAAAAAMJN_rqRX9RG7fdCTAEISTxRKVSw", 'recaptcha',
        {
          theme: "white",
          callback: Recaptcha.focus_response_field
        }
      );
    }

    secra.DynamicLoader.evalArray(splitedCode.scripts);

    if (ajax.mediabox == true && mediabox != 'wetter') {
      onLoadActionQuickbar();

    }

  }
  if (ajax.hash == true) {
    
    var hash = 'site='+get_site;
    if (exist(get_filter)) {
      hash += '&filter='+get_filter;
    }

    if (document.location.hash != '#'+hash) {
      document.location.hash = hash;
      log('hash: ' + '#'+hash + ' ' + document.location.hash);
    }
  }

  resetScrollbar();

};


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

function loadContentWrapper(event) {

  log('loadContentWrapper');

  var get_content = event.data.content;

  if (event.data.type == 'load') {
    get_content = '';
  }
  if (get_content != '') {
    get_site = get_content;
  }

  //get_ort = 0;

  loadContentFrom();
  return false;
};


function mainmenu_loadContentWrapper(event) {

  log('mainmenu_loadContentWrapper');

  get_site = event.data.content;

  get_ort = 0;
  get_vnr = null;
  get_filter = null;

  loadContentFrom();

  return false;
};


function loadContentMediathekWrapper(event) {

  log('loadContentMediathekWrapper');

  get_site = 'mediathek';
  get_vnr = null;

  get_filter = event.data.filter;
  if (event.data.type == 'load') {
    get_filter = '';
  }

  loadContentFrom();
  loadInstitution('all');
  return false;
};


function loadContentPOIWrapper(event) {

  log('loadPOIContentWrapper');

  get_site = 'poi';

  get_filter = event.data.poi_filter;
  if (event.data.poi_filter.type == 'load') {
    get_filter = '';
  }

  loadContentFrom();
  loadInstitution(get_filter);
  return false;
};


function loadContentOrtWrapper (OrtNr) {

  get_ort = OrtNr;
  get_vnr = null;

  mediabox = 'quickbar_ort';

  loadContentOrt(OrtNr);
//  makeActive('');

  return false;
}


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

function loadContent(ajax_cont){

  var content = ajax_cont;
  get_site = ajax_cont;
  get_filter = null;

  //////////////////////////////////////////////////////////////////////////////

  if ( content != 'infos' && (mediabox == null || mediabox == 'wetter' || mediabox == "quickbar_ort" )) {
    loadMediabox('quickbar', get_ort);
    mediabox = 'quickbar';
  } else if ( content == 'infos' && mediabox != 'wetter') {
    loadMediabox('wetter', get_ort);
    mediabox = 'wetter';
  }

  //////////////////////////////////////////////////////////////////////////////

  var ajax = new secra.AjaxHandler('mediapoolloader');
  ajax.method = 'POST';

  ajax.url    = 'ajax/ajax_'+content+'.php?action=load';

  if (exist(get_vnr)) {
    ajax.url += '&vnr='+get_vnr;
  }

  if (exist(get_ort)) {
    ajax.url += '&ort='+get_ort;
  }

  ajax.async = true;
  ajax.hash = true;
  ajax.callbackfunc = {};
  ajax.callbackfunc['state4'] = responseContent;
  ajax.registerCallback(ajax.callbackfunc, 'html');
  ajax.submit();
};



function loadContentGewinnspiel(GwspName){

  get_site = 'gewinnspiel';

  // Abwärtskompatiblität
  switch (GwspName) {
    case '1':
      GwspName = 'verlosung';
      break;

    case '2':
      GwspName = 'foto';
      break;

    case '3':
      GwspName = 'strandkoerbe';
      break;
  }

  get_filter = GwspName;

  //////////////////////////////////////////////////////////////////////////////

  loadMediabox('quickbar', 0);
  mediabox = 'quickbar';

  //////////////////////////////////////////////////////////////////////////////

  var auto_recaptcha = false;

  switch (GwspName) {
    case 'verlosung':
    case 'strandkoerbe':
      auto_recaptcha = true;
      break;

    case 'foto':
      auto_recaptcha = false;
      break;

    default:
      get_site = 'gewinnspiele_uebersicht';
      get_filter = '';
  }

  //////////////////////////////////////////////////////////////////////////////

  var ajax = new secra.AjaxHandler('mediapoolloader');
  ajax.method = 'POST';

  ajax.url    = 'ajax/ajax_'+get_site+'.php?action=load';

  if (GwspName) {
    ajax.url += '&gwspname='+GwspName;
  }

  ajax.async  = true;
  ajax.callbackfunc = {};
  ajax.callbackfunc['state4'] = responseContent;
  ajax.registerCallback(ajax.callbackfunc, 'html');

  ajax.hash = true;
  ajax.js = false;
  ajax.slot = 'content';
  if (auto_recaptcha == true) {
    ajax.recaptcha = true;
    ajax.js = true;
  }

  ajax.submit();
};



function loadMediabox(type, filter) {

  log(type + ' ' + filter);

  if (type != mediabox) {
    mediabox = type;
  } else {
    return;
  }

  var ajax = new secra.AjaxHandler('mediapoolloader');
  ajax.method = 'POST';

// URL selbst zusammen bauen
  switch (type) {
    case 'wetter':
      ajax.url = 'sitemods/wetter.php?';
      break;

    case 'quickbar':
    case 'quickbar_poi':
      ajax.url = 'sitemods/quickbar.php?';
      break;

    default:
      break;
  }

  if (exist(filter)) {
    mediabox_filter = filter;
    ajax.url    += 'filter='+filter;
  }

  if (exist(type)) {
    ajax.url    += '&type='+type;
  }

  ajax.async  = true;
  ajax.callbackfunc = {};
  ajax.callbackfunc['state4'] = responseContent;
  ajax.registerCallback(ajax.callbackfunc, 'html');

  ajax.js = true;
  ajax.slot = 'mediabox';
  ajax.mediabox = true;

  ajax.submit();
};







function eTracker(etr_ort, etr_vnr, etr_filter) {

    // E-Tracker
  if (lokal == false) {

    if (etr_filter != null) {
      var filter_str = ', filter: '+ etr_filter;
    }
    if (etr_ort != null) {
      var ort_str = ', OrtNr: '+ etr_filter;
    }
    if (etr_vnr != null) {
      var vnr_str = ', VNr: '+ etr_filter;
    }

    ExternalInterface.call("et_eC_Wrapper", "vU3fKb", get_site + filter_str + ort_str + vnr_str);
  }
};



function writeSizeToCookie() {
  var cookies = new Cookie('windowmode');
  cookies.windowmode = (cookies.windowmode != 'small' ? 'small' : 'large');
  cookies.store(1);

  location.reload();
};


function writeContentToCookie(site, ort, vnr, filter) {
  var cookies = new Cookie('steuerung');
  cookies.site  = site;
  cookies.vnr  = vnr;
  cookies.ort  = ort;
  cookies.filter  = filter;
  cookies.store(1);
};




function getSubstring(trenner, name, string){
   var i=0;  //Suchposition in String
   var suche = name;

   while (i<string.length){

      if (string.substring(i, i+suche.length)==suche){
         var ende = string.indexOf(trenner, i+suche.length);
         ende = (ende>-1) ? ende : string.length;
         var sub = string.substring(i+suche.length, ende);
         return unescape(sub);
      }
      i++;
   }

   return null;
};

var current_overlayer = null;
function openTeilnahmebedingungPopUp() {
var overlayer_image_path = '../../bitmaps/overlayer/';
	
if(current_overlayer == null){
    current_overlayer = new secra.Overlayer(overlayer_image_path);
  }

  var content = current_overlayer.getContainer();
  content.innerHTML = '<span class="loadingNotice"></span>';

  current_overlayer.show();

  var ajax = new secra.AjaxHandler('TBpopuploader');
  ajax.method = 'POST';
  ajax.url    = 'ajax/ajax_gewinnspiel_teilnahmebedingungen.php?action=loadPopUp';
  ajax.async  = false;
  ajax.submit();

  var node = secra.Secrautility.toDOM(ajax.getText());
  content.innerHTML = '';
  content.appendChild(node);

  current_overlayer.centerContent();

  var parameter = new Object();
  parameter.container = content;
  parameter.position = "center";
  var position = new secra.Positionierer(parameter);
  
  position.startPositioning();
};

function closeTeilnahmebedingungPopUp(){
	  if(current_overlayer != null){
	    current_overlayer.hide();
	  }

	  current_PNr = null;
	};



