JJ_FotoLijst_Runner = null;
JJ_FotoLijst_Timeout_Start = null;

JJ_FotoLijst_Afbeelding1 = null;
JJ_FotoLijst_Afbeelding2 = null;

JJ_FotoLijst_Current = null;

JJ_FotoLijst_Current_Pic = null;

JJ_FotoLijst_Swapper = false;
JJ_FotoLijst_NextAfbeelding = null;
JJ_FotoLijst_OtherAfbeelding = null;

JJ_FotoLijst_Settings = {};
JJ_FotoLijst_Settings.Interval = 100;
JJ_FotoLijst_Settings.Front = {Uptime:4000,Step:10,MinValue:10,Current:0};

function JJ_FotoLijst_Start( ){

  if ( ! JJ_FotoLijst_Find_Afbeelding_Holder() ){
    return false;
  }

  Count = JJ_FotoLijst_Count_Afbeeldingen( );

  if ( Count == 0 ){ 
    return false;
  }
 
  JJ_FotoLijst_Current_Pic = 1;
  JJ_FotoLijst_Init_Picture();

  clearInterval( JJ_FotoLijst_Runner );
  clearTimeout(  JJ_FotoLijst_Timeout_Start  );

  JJ_FotoLijst_Timeout_Start = setTimeout( "JJ_FotoLijst_Fade_Start();", JJ_FotoLijst_Settings.Front.Uptime );
}

function JJ_FotoLijst_Find_Afbeelding_Holder( ){
  JJ_FotoLijst_Afbeelding1 = document.getElementById( "FotoLijstItem1" );
  JJ_FotoLijst_Afbeelding2 = document.getElementById( "FotoLijstItem2" );
  return JJ_FotoLijst_Afbeelding1 != null && JJ_FotoLijst_Afbeelding2 != null;
}

function JJ_FotoLijst_Count_Afbeeldingen(){
  if ( FotoLijstAfbeeldingen && FotoLijstAfbeeldingen.length ){ return FotoLijstAfbeeldingen.length; }
  return 0;
}

function JJ_FotoLijst_Init_Picture(  ){
  JJ_FotoLijst_NextAfbeelding = JJ_FotoLijst_Swapper ? JJ_FotoLijst_Afbeelding1 : JJ_FotoLijst_Afbeelding2;

  // JJ_FotoLijst_Afbeelding2.style.backgroundImage = 'url(' + FotoLijstAfbeeldingen[ JJ_FotoLijst_Current_Pic ].url + ')';
  JJ_FotoLijst_NextAfbeelding.style.backgroundImage = 'url(' + FotoLijstAfbeeldingen[ JJ_FotoLijst_Current_Pic ].url + ')';
}

function JJ_FotoLijst_Fade_Start( ){
  clearTimeout( JJ_FotoLijst_Timeout_Start );

  JJ_FotoLijst_NextAfbeelding = JJ_FotoLijst_Swapper ? JJ_FotoLijst_Afbeelding1 : JJ_FotoLijst_Afbeelding2;
  JJ_FotoLijst_OtherAfbeelding = ! JJ_FotoLijst_Swapper ? JJ_FotoLijst_Afbeelding1 : JJ_FotoLijst_Afbeelding2;

  JJ_FotoLijst_Settings.Front.Current = JJ_FotoLijst_Settings.Front.MinValue;
  JJ_FotoLijst_Set_Fade( JJ_FotoLijst_NextAfbeelding, JJ_FotoLijst_Settings.Front.Current );

  var FotoLijstProjectNaam = document.getElementById( 'FotoLijstProjectNaam' );
  if ( FotoLijstProjectNaam ){
    if ( ! JJ_FotoLijst_Swapper ){
      FotoLijstProjectNaam.innerHTML =  FotoLijstAfbeeldingen[ JJ_FotoLijst_Current_Pic ].name;
    } else {
      FotoLijstProjectNaam.innerHTML = '';
    }
  }

  // z-index swap
  JJ_FotoLijst_Afbeelding1.style.zIndex = JJ_FotoLijst_Swapper ? 15 : 10;
  JJ_FotoLijst_Afbeelding2.style.zIndex = ! JJ_FotoLijst_Swapper ? 15 : 10;

//  if ( JJ_FotoLijst_Swapper ){
    // next id bepalen
    JJ_FotoLijst_Current_Pic = JJ_FotoLijst_Current_Pic == FotoLijstAfbeeldingen.length - 1 ? 0 : JJ_FotoLijst_Current_Pic + 1;
//  }

  JJ_FotoLijst_Runner = setInterval( "JJ_FotoLijst_Fade_Runner()", JJ_FotoLijst_Settings.Interval );

  JJ_FotoLijst_Swapper = ! JJ_FotoLijst_Swapper;
}

function JJ_FotoLijst_Fade_Runner(){
  if ( JJ_FotoLijst_Settings.Front.Current < 100 ){ 
    JJ_FotoLijst_Settings.Front.Current = JJ_FotoLijst_Settings.Front.Current + JJ_FotoLijst_Settings.Front.Step;
    JJ_FotoLijst_Set_Fade( JJ_FotoLijst_NextAfbeelding, JJ_FotoLijst_Settings.Front.Current );
  } else {
//    if ( ! JJ_FotoLijst_Swapper ){
      JJ_FotoLijst_Init_Picture();
  //  }
    clearInterval( JJ_FotoLijst_Runner );
    JJ_FotoLijst_Start = setTimeout( "JJ_FotoLijst_Fade_Start()", JJ_FotoLijst_Settings.Front.Uptime );
  }
}

function JJ_FotoLijst_Set_Fade( Element, Value ){
  Value = Value >= 100 ? 100 : Value;

  if ( Element.filters && Element.filters.alpha )
    Element.filters.alpha.opacity = Value;
  Element.style.MozOpacity = Value / 100;
  Element.style.opacity = Value / 100;
}

function GetNextObjectKey( Object, CurrentKey ){
  Found = false;
  First = null;
 
  for( var i in Object ){
    if ( CurrentKey == null ){
      return i;
    }
    if ( First == null ){ 
      First = i;
    }
    if ( Found ){  
      return i;
    }
    if ( CurrentKey == i ){ 
      Found = true;
    }
  }
  return First;
}

function WriteApplet( Code, CodeBase, Archive, Width, Height, Options ){
  document.write( '<applet code="' + Code + '" codebase="' + CodeBase + '" archive="' + Archive + '" width="' + Width + '" height="' + Height + '" scriptable="1" mayscript="1">' );
  for( var i in Options ){
    document.write( '<param name="' + i + '" value="' + Options[ i ] + '" />' );
  }
  document.write( '</applet>' );
}

function ShowFlash( url, width, height ){
  document.write( '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + width + '" height="' + height + '">' );
  document.write( '<param name="allowScriptAccess" value="sameDomain" />' );
  document.write( '<param name="movie" value="' + url + '">' );
  document.write( '<param name="quality" value="high">' );
  document.write( '<embed src="' + url + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + width + '" height="' + height + '"></embed>' );
  document.write( '</object>');
}

var IC_Photo_DarkLayer = null;
var IC_Photo_Popup_referer = null;

var IC_Photo_Settings = {
  MarginToBorders: 10,
  Title: 'Klik hier om te sluiten',
  CloseTitle: 'x',
  UseAltTag: true,
  UseCloseTag: true,
  UseDarkLayer: false,
  Padding: 15
};

function IC_Photo_Popup( Link, URL, Width, Height, Alt ){
  var Body = document.getElementsByTagName( 'body' ).item( 0 );
  var Html = document.getElementsByTagName( 'html' ).item( 0 );

  if ( ! IC_Photo_DarkLayer && IC_Photo_Settings.UseDarkLayer ){
    IC_Photo_DarkLayer = document.createElement( 'div' );
    IC_Photo_DarkLayer.id = 'IC_Photo_DarkLayer';
    Body.appendChild( IC_Photo_DarkLayer );
  }

  if ( IC_Photo_Popup_referer == null ){
    IC_Photo_Popup_referer = document.createElement( 'a' );
    IC_Photo_Popup_referer.id = 'IC_Photo_Popup_Holder';
    IC_Photo_Popup_referer.onclick = IC_Photo_Popup_Close;
    IC_Photo_Popup_referer.href = '#';
    IC_Photo_Popup_referer.title = IC_Photo_Settings.Title;

    if ( IC_Photo_Settings.UseAltTag ){
      var AltTag = document.createElement( 'span' );
      AltTag.className = 'AltLabel';
      AltTag.appendChild( document.createTextNode( Alt ) );
      IC_Photo_Popup_referer.appendChild( AltTag );
      IC_Photo_Popup_referer.Label = AltTag;
    }

    if ( IC_Photo_Settings.UseCloseTag ){
      var ATag = document.createElement( 'a' );
      ATag.className = 'CloseButton';
      ATag.href = '#';
      ATag.appendChild( document.createTextNode( IC_Photo_Settings.CloseTitle ) );
      IC_Photo_Popup_referer.appendChild( ATag );
    }
    Body.appendChild( IC_Photo_Popup_referer );
  }
  if ( IC_Photo_Popup_referer != null ) {
    IC_Photo_Popup_referer.style.display = 'block';

    IC_Photo_Popup_referer.style.height = ( Height + IC_Photo_Settings.Padding * 2 ) + 'px';
    IC_Photo_Popup_referer.style.width = ( Width + 30 ) + 'px';

    LabelHeight = 0;

    if ( IC_Photo_Settings.UseAltTag ){
      IC_Photo_Popup_referer.Label.innerHTML = Alt;

      if ( Alt != '' ){
        LabelHeight = IC_Photo_Popup_referer.Label.offsetHeight;


        IC_Photo_Popup_referer.style.height = ( Height + LabelHeight + IC_Photo_Settings.Padding * 2 ) + 'px';
      }
    }

    IC_Photo_Popup_referer.style.backgroundPosition = 'center ' + ( IC_Photo_Settings.Padding + LabelHeight ) + 'px';

    IC_Photo_Popup_referer.style.backgroundImage = 'url(' + URL + ')';

    IC_Image = null;
    for( i=0; i<Link.childNodes.length; i++ ){
      if ( Link.childNodes[ i ].tagName.toUpperCase() == 'IMG' ){
        IC_Image = Link.childNodes[ i ];
      }
    }
    if ( IC_Image ){
      Position = getPositionFrom( IC_Image );

      Left = ( Position.left + IC_Image.offsetWidth / 2 ) - IC_Photo_Popup_referer.offsetWidth / 2;

      Left = Math.min( Left, Body.offsetWidth - IC_Photo_Popup_referer.offsetWidth - IC_Photo_Settings.MarginToBorders );
      Left = Math.max( Left, IC_Photo_Settings.MarginToBorders );

      Top = ( Position.top + IC_Image.offsetHeight / 2 ) - IC_Photo_Popup_referer.offsetHeight / 2;
      WindowMax = Math.max( Body.offsetHeight, Html.offsetHeight );
      Top = Math.min( Top, WindowMax - IC_Photo_Popup_referer.offsetHeight - IC_Photo_Settings.MarginToBorders );
      Top = Math.max( Top, IC_Photo_Settings.MarginToBorders );

      IC_Photo_Popup_referer.style.top = Top + 'px';
      IC_Photo_Popup_referer.style.left = Left + 'px';

      if ( IC_Photo_Settings.UseDarkLayer ){
        IC_Photo_DarkLayer.style.display = 'block';
        DLHeight = Math.max( Body.offsetHeight, Html.offsetHeight, Top + IC_Photo_Popup_referer.offsetHeight );

        IC_Photo_DarkLayer.style.height = DLHeight + 'px';

      }
    }
  }
}


function IC_Photo_Popup_Close(){
  if ( IC_Photo_Popup_referer != null ){
    IC_Photo_Popup_referer.style.display = 'none';
  }
  if ( IC_Photo_Settings.UseDarkLayer && IC_Photo_DarkLayer != null ){
    IC_Photo_DarkLayer.style.display = 'none';
  }
  return false;
}

function getPositionFrom(element) {
  var Pos = {top:0,left:0};
  var absoluteAncestor = false;

  while ( element.offsetParent ) {

    Pos.top += element.offsetTop - element.scrollTop;
    Pos.left += element.offsetLeft - element.scrollLeft;

    element = element.offsetParent;

    if ( element.nodeName.toLowerCase() != 'html' ) {
      if ( element.currentStyle ) {
        if (element.currentStyle[ 'position' ] == 'absolute')
          absoluteAncestor = true;
      } else {
        if ( window.getComputedStyle ){
          if ( document.defaultView.getComputedStyle(element,null).getPropertyValue( 'position' ) == 'absolute' ){
            absoluteAncestor = true;
          }
        }
      }
    }
  }

  if ( ! absoluteAncestor ){
    var Body = document.getElementsByTagName( 'BODY' ).item( 0 );
    Pos.top += Body.offsetTop;
    Pos.left += Body.offsetLeft;
  }

  return Pos;
}

