// Globale Variablen
var themeDir = '/wp-content/themes/flashwerk/';
var flashBlocked = true;
var flashInstalled = true;
var isDisplay = false;
var contentDiv;

var isiPad = navigator.userAgent.match(/iPad/i) != null;

// DOM geladen
$(document).ready(function ()
{
  $("img.ajax-loader").attr("src",themeDir+"i/loading.gif");
  initFullWidthContent();
  initFlashDisplay();
  flashInstalled = Boolean(swfobject.getFlashPlayerVersion().minor);
  initFlashFunctions();
  animateNav();
  styleSlogan();
  initNarrowWindow();
  initFlashBanner();
  initReferencesOverview();
});


// Seite komplett geladen
window.onload = function ()
{
  if (!isDisplay) { showPage(); }
}
window.onunload = function ()
{
  window.scrollTo(0,0);
}

function initReferencesOverview ()
{
  if ($('div.post.category').length)
  {
    $('div#main').css('paddingTop','30px');
    var m = 1;
    $('div.post.category').each(function(n)
    {
      var obj = $(this);
      m = ((n % 16) == 0) ? 1 : m+1;
      obj.addClass('arrow-'+m);
      
      obj.hover(function(){ obj.find('div.feedback').fadeIn(); }, function(){ obj.find('div.feedback').fadeOut(); });
    });
  }
}

function initFlashBanner ()
{
  $('div.storycontent a:contains("Banner")').each(function()
  {
    var swf = $(this).attr('href');
    var scale = $(this).attr('title').split(',');
    $(this).replaceWith('<div class="flashbanner" style="width:'+scale[0]+'px;height:'+scale[1]+'px"><div id="flashbanner"></div></div>');
    insertFlashBanner (swf,'flashbanner',scale[0],scale[1]);
    
  }
  );
}

function insertFlashBanner (src,obj,w,h)
{
  var flashParams = {
    scale:  'noscale',
    salign: 'lt',
    menu:   'false',
    wmode: 'opaque'
  };
  
  swfobject.embedSWF(src, obj, w, h, '10.0.0', themeDir+'flash/expressInstall.swf','', flashParams);
}

function initNarrowWindow ()
{
  if (isiPad) 
  {
    $('body').addClass('ipad narrow');	  
  }
  else
  {
    setNarrowWindow();
    window.addEventListener('resize', setNarrowWindow, false);
  }
}

function setNarrowWindow ()
{
  if ($('body').width() < 1205)
  {
    if (!$('body').hasClass('narrow')) { $('body').addClass('narrow'); }
  }
  else
  {
    if ($('body').hasClass('narrow')) { $('body').removeClass('narrow'); }
  }
}

function initFullWidthContent ()
{
  if ($('div.post.category').length)
  {
    contentDiv = $('div#content');
    fullWidthContent();
    window.addEventListener('resize', fullWidthContent, false);
  }
}

function fullWidthContent ()
{
  if ($('body').width() > 1410)
  {
    $('div.post.category').removeAttr('style');
    if (!contentDiv.hasClass('fullwidth')) { contentDiv.addClass('fullwidth'); }
  }
  else
  {
    $('div.post.category:nth-child(3n)').css('marginRight','0');
    if (contentDiv.hasClass('fullwidth')) { contentDiv.removeClass('fullwidth'); }
  }
}


function showPage ()
{
  $('#overlay').fadeOut('',function(){ $('#overlay').remove(); });
}

function styleSlogan ()
{
  var snippets = $('#headerdesc').text().split('-');
  var htmlstr = '';
  for (var i=0; i<snippets.length;i++) htmlstr += '<span class="slogan-'+(i+1)+'">'+snippets[i]+'</span>';
  $('#headerdesc').html(htmlstr);
}

function initFlashDisplay ()
{ 
  isDisplay = $('.dynamic-col-1 .ngg-galleryoverview').length;
  
  if (isDisplay)
  {
    $('.storycontent').addClass('display');
    $('.dynamic-col-1').attr('id','display');
    $('.ngg-galleryoverview').attr('id','flashdisplay');
  }
}

function initFlashFunctions ()
{
  if (flashInstalled) {
    $('body').append('<div id="flash-block-check-wrapper" style="position:absolute; left:-500px; top:-500px; width:5px; height:5px; visibility:hidden; overflow:hidden;"><div id="flash-block-check"></div></div>');
    swfobject.embedSWF(themeDir+'flash/flashblock.swf', 'flash-block-check', '5', '5', '10.0.0', false,{func:'flashActive'}, {scale: 'noscale'});
    window.setTimeout(checkFlashBlock, 3000);
    createFlashDisplay();
  }
  else
  {
    $('#display p').remove();
    $('#flashdisplay').addClass('noflash');
    $('#flashdisplay').html('<a href="http://get.adobe.com/de/flashplayer" target="blank">&nbsp;</a>');
    showPage();
  }
}

function checkFlashBlock ()
{
  if (flashBlocked) {
    $('#display').html('<div id="flashdisplay" class="flashBlocked" style="visibility:visible;"></div>');
  }
  $('#flash-block-check-wrapper').remove();
}

function createFlashDisplay ()
{  
  var flashContainer = 'flashdisplay';
  var flashMovie = themeDir+'flash/display-test.swf';
  var imgs = [];
  $('#flashdisplay a').each(function(){ imgs.push($(this).attr('href')); });
  $('#display p').remove();
  
  var flashVars = {
    //xmlurl:  themeDir+'flash/display.xml',
    imgs: imgs
  };
  var flashParams = {
    scale:  'noscale',
    salign: 'lt',
    menu:   'false',
    wmode: 'transparent'
  };
  
  swfobject.embedSWF(flashMovie, 'flashdisplay', '950', '600', '10.0.0', themeDir+'flash/expressInstall.swf',flashVars, flashParams);
  showPage();
}

function flashActive () { flashBlocked = false; }


function animateNav ()
{
  $("#nav ul.menu li a").each ( function (n) {
    
    if (!$(this).parent('li').hasClass('current-menu-item') && !$(this).parent('li').hasClass('current-post-ancestor')) {
      var bgX = '-'+(n*150)+'px';
      var bgNormal = '('+bgX+' 0px)';
      var bgActive = '('+bgX+' -43px)';
    
      $(this).mouseover( function () { $(this).animate({ backgroundPosition: bgActive }, {duration: 250}); });
      $(this).mouseout(function () { $(this).animate({ backgroundPosition: bgNormal }, {duration: 250}); });
    }
    //$(this).click(function () { pageFade($(this).attr('href')); });
  });
}


(function($)
{
$.extend($.fx.step,{
  backgroundPosition: function(fx) {
    if (fx.state === 0 && typeof fx.end == 'string') {
      var start = $.curCSS(fx.elem,'backgroundPosition');
      start = toArray(start);
      fx.start = [start[0],start[2]];
      var end = toArray(fx.end);
      fx.end = [end[0],end[2]];
      fx.unit = [end[1],end[3]];
		}
      var nowPosX = [];
      nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
      nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
      fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

      function toArray(strg){
        strg = strg.replace(/left|top/g,'0px');
        strg = strg.replace(/right|bottom/g,'100%');
        strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
        var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
        return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
      }
    }
});
})(jQuery);
