/*
 Creates the sliding navigation for portfolio case-studies.
 */
function init_portfolio_slider()
  {
  var view = $('.portfolio-viewport');
  
  if (!view.length)
    {
    return;
    }
  
  var img = $('img', view);
  
  var nav = $('.portfolio-navigator');
  var nav_items = $('.portfolio-items .portfolio-item', nav);
  
  var magnify = $('<img>').addClass('magnify').attr('src','image/magnify.png');

  var view_ready = function ()
    {
    var a = img.parent();
     
    if (a.attr('href') != undefined)
   	  { 
   	  var lg_src = a.attr('href'); 
   	  }
    else
      {
      var img_src = img.attr('src');
      var dot = img_src.lastIndexOf('.');
      var lg_src = img_src.substring(0,dot) + '_lg.jpg';
      }
    
    lg_img = $('<img>');
    
    var show_magnify = function ()
      {
      var url = (document.baseURI || $('base').attr('href')) + lg_src;
      var params = 'location=0,menubar=0,toolbar=0,resizable=1,scrollbars=1';
      
      // max popup window size of 85% screen size
      //var this_width = this.width == undefined ? 0 : this.width; 
      //var this_height = this.height == undefined ? 0 : this.height; 
      	
      var width = Math.min(32 + (this.naturalWidth || this.width), 
                           0.85 * window.screen.availWidth);
      var height = Math.min(64 + (this.naturalHeight || this.height),
                            0.85 * window.screen.availHeight);
      
      var show_popup = function ()
        {
        var w = window.open(url,'particleweb_portfolio_magnify',params);
        $(w.document).ready(function ()
          {
          if ( w.resizeTo !== undefined )
            {
            w.resizeTo(width, height);
            }
          
          if ( w.moveTo !== undefined )
            {
            w.moveTo(0.5 * (window.screen.availWidth - width), 
                     0.5 * (window.screen.availHeight - height));
            }

          w.focus();
          });

        return false;
        };
      
      magnify.show();
      magnify.appendTo(view);
      view.click(show_popup);
      };
    
    if (a.attr('href') != undefined)
   	  {
   	  //show_magnify();
   	  lg_img.load(show_magnify);
      }
    
    lg_img.attr('src',lg_src);
    };
  
  $('img', nav_items).each(function (i,tn) 
    { 
    preheatImages($(tn).attr('src').replace(/_tn/,''));
    });

  var scroll_to_page = slider(nav,3);
  
  
  var slider_item_click = function ()
    {
    var thumb = $('a img',this);
    var src = thumb.attr('src').replace(/_tn/,'');
    if ( src == img.attr('src') )
      { return false;  }

	var thumb_href = $('a', this).attr('href'); 
	
	  var a = img.parent();
	  if (thumb_href != undefined)
	    {
	    a.attr('href', thumb_href);
	    }
	  else
	    {
	    a.removeAttr('href');
	    }
	
	
    magnify.hide();
    magnify.remove();
    view.unbind('click');

	
	var after = function ()
      {
      img.attr('src',src);
      view_ready();
      view.animate({
        'opacity': 1.0
        },250,'linear',view_ready);
      };

    view.animate({
      'opacity': 0.0
      },100,'linear',after);

    return false;
    }

  nav_items.click(slider_item_click);
  
  view_ready();
  
  return false;
  }

function init_pager()
  {
  $('.pagelist').each(function (i,pl) { pager(pl); });
  }

/*
 Creates the crossfading slideshow effect for the "element"
 images on the homepage.
 */
function init_home_elements()
  {

  var home_bd_hd = $('#bd.home #bd-hd');
  if (!home_bd_hd.length)
    { return;  }
  
  home_bd_hd.append('<div class="element air"> </div>');
  home_bd_hd.append('<div class="element earth"> </div>');
  home_bd_hd.append('<div class="element fire"> </div>');
  home_bd_hd.append('<div class="element water"> </div>');
  
  var elements = $(home_bd_hd).children('.element');
  var i = 0;
  function fader()
    {
    $(elements[i]).fadeOut('normal');
    i = (1 + i) % elements.length;
    $(elements[i]).fadeIn('normal');
    }
  
  setInterval(fader,7500);
  }

function preheatImages()
  {
  foreach($.get,arguments);
  }

function im_ready()
  {
  var body = $('body');
  
  preheatImages('css/background/element-air.jpg',
                'css/background/element-earth.jpg',
                'css/background/element-fire.jpg',
                'css/background/element-water.jpg');

  if ( body.hasClass('particleweb-home') )
    {
    setTimeout(init_home_elements,0);
    }
    
  //setTimeout(init_pager,0);
  
  if ( body.hasClass('portfolio') )
    {
    setTimeout(init_portfolio_slider,0);
    }
  }
