/**
 * The images preload plugin
 */
(function(jQuery) {
	jQuery.fn.preload = function(options) {
		var opts 	= jQuery.extend({}, jQuery.fn.preload.defaults, options),
			o		= jQuery.meta ? jQuery.extend({}, opts, this.data()) : opts;
		return this.each(function() {
			var $e	= jQuery(this),
				t	= $e.attr('rel'),
				i	= $e.attr('href'),
				l	= 0;
			jQuery('<img/>').load(function(i){
				++l;
				if(l==2) o.onComplete();
			}).attr('src',i);	
			jQuery('<img/>').load(function(i){
				++l;
				if(l==2) o.onComplete();
			}).attr('src',t);	
		});
	};
	jQuery.fn.preload.defaults = {
		onComplete	: function(){return false;}
	};
	
  jQuery.fn.hint = function (blurClass) {
    if (!blurClass) {
      blurClass = 'blur';
    }
    return this.each(function () {
		  jQuery('label span').remove();
      var $input = jQuery(this),
        title = $input.prev('label').text(),
        $form = jQuery(this.form),
        $win = jQuery(window);
				$input.prev('label').remove();				
				if(!title) {
					title = $input.parent().prev('label').text();								
					$input.parent().prev('label').remove();
				}						
      function remove() {
        if ($input.val() === title && $input.hasClass(blurClass)) {
          $input.val('').removeClass(blurClass);
        }
      }
      if (title) {
        $input.blur(function () {
          if (this.value === '') {
            $input.val(title).addClass(blurClass);
          }
        }).focus(remove).blur();
        $form.submit(remove);
        $win.unload(remove);
      }
    });
  };

})(jQuery);
/**				
*Drupal.behaviors.initOPCV = {
	attach: function(context) {
	  jQuery('.menu-236 a').attr('href', '#portfolio');
		jQuery('.menu-237 a').attr('href', '#contact');	
		jQuery('.menu-340 a').attr('href', '#home');
		jQuery('.menu-339 a').attr('href', '#about');	
		
		jQuery('.form-text, .form-textarea').hint();		
	
    jQuery('.projects li figure a img').animate({'opacity' : 1}).hover(function() {
				jQuery(this).animate({'opacity' : .5});
			}, function() {
				jQuery(this).animate({'opacity' : 1});
			});
			jQuery('.zoom img').animate({'opacity' : 1}).hover(function() {
				jQuery(this).animate({'opacity' : .5});
			}, function() {
				jQuery(this).animate({'opacity' : 1});
			});

			jQuery("a[rel=about]").fancybox({
				'transitionIn'		: 'elastic',
				'transitionOut'		: 'elastic',
				'titlePosition' 	: 'over',
				'titleFormat'		: function(title, currentArray, currentIndex, currentOpts) {
					return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
				}
			});
			jQuery("a[rel=recent_work]").fancybox({
				'transitionIn'		: 'elastic',
				'transitionOut'		: 'elastic',
				'titlePosition' 	: 'over',
				'titleFormat'		: function(title, currentArray, currentIndex, currentOpts) {
					return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
				}
			});
						
			var $nCurrentActive;
      var scrolling = 1;
      var $nav = jQuery('navigation li');
      $nav.addClass('off');
			
			var i = 0;
			jQuery('navigation li').each(function() {
			  jQuery(this).attr('id', 'nav-' + ++i);
			});

      // Nav setup @ mouseevents
      $nav.bind('mouseenter', function() {
	      $nCurPos = jQuery(this).attr('id').substr(4);
	      nIsHovered = setTimeout("onMenu($nCurPos)", 100);
      });

      $nav.bind('mouseleave', function() {
	      clearTimeout(nIsHovered);
	      $nCurPos = jQuery(this).attr('id').substr(4);
	      offMenu($nCurPos);
      });

      $nav.bind('click', function(ev) {
	      if ($nCurrentActive !== jQuery(this).attr('id').substr(4)) {
		    offActiveMenu($nCurrentActive);
	    }
	    $nav.removeClass('active on').addClass('off');
	    jQuery(this).addClass('active').removeClass('off');
	    $nCurrentActive = jQuery(this).attr('id').substr(4);
     });

     jQuery('#nav-logo').bind('click', function() {
	     $nav.removeClass('active on').addClass('off');
	     jQuery('#nav-1').addClass('active').removeClass('off');
     });

     function onMenu($nCurPos) {
	     if (jQuery('#nav-'+$nCurPos).hasClass('off') && (!jQuery('#nav-'+$nCurPos).hasClass('active'))) {
		     jQuery('#nav-'+$nCurPos).removeClass('off').addClass('on');
	     }
     }

     function onScrollMenu($nCurPos) {
	     if (jQuery('#nav-'+$nCurPos).hasClass('off')) {
		     jQuery('#nav-'+$nCurPos).removeClass('off').addClass('on');
	     }
     }

     function offActiveMenu($nCurPos) {
	     jQuery('#nav-'+$nCurPos).removeClass('active').addClass('off')
     }

     function offMenu($nCurPos) {
	     if (!jQuery('#nav-'+$nCurPos).hasClass('active')) {
		     jQuery('#nav-'+$nCurPos).removeClass('on').addClass('off');
	     }
     }

      // Nav setup @ window scroll
      jQuery(window).scroll(function() {
	      $inview = jQuery('section:in-viewport header').parent().attr('id');		
				$link = '';	
	      if (jQuery('a[href=#' + $inview + ']') !== null) { 				 
				  if(jQuery('a[href=#' + $inview + ']').parent().attr('id') != undefined) {
						$link = jQuery('a[href=#' + $inview + ']').parent().attr('id').substr(4);
					}		      
	      }

	      if ($link != $nCurrentActive && scrolling == 1) {
		      $nav.removeClass('active');
		      offMenu($nCurrentActive);
		      $nCurrentActive = $link;
		      jQuery('#nav-'+$nCurrentActive).addClass('active');
		      onScrollMenu($nCurrentActive);
	      }
      });

      // Window scroll setup
      jQuery.localScroll.hash({
	      target: '#content',
	      queue: true,
	      duration: 1500
      });

      jQuery('navigation').localScroll({
	      hash: true,
	      duration: 400,
	      easing: 'easeOutExpo',
	      onBefore: function() {scrolling = 0; return scrolling},
	      onAfter: function() {scrolling = 1; return scrolling}
      });			
		}	
}			*/					;
/* Smooth scrolling
   Changes links that link to other parts of this page to scroll
   smoothly to those links rather than jump to them directly, which
   can be a little disorienting.
   
   sil, http://www.kryogenix.org/
   
   v1.0 2003-11-11
   v1.1 2005-06-16 wrap it up in an object
*/

var ss = {
  fixAllLinks: function() {
    // Get a list of all links in the page
    var allLinks = document.getElementsByTagName('a');
    // Walk through the list
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if ((lnk.href && lnk.href.indexOf('#') != -1) && 
          ( (lnk.pathname == location.pathname) ||
	    ('/'+lnk.pathname == location.pathname) ) && 
          (lnk.search == location.search)) {
        // If the link is internal to the page (begins in #)
        // then attach the smoothScroll function as an onclick
        // event handler
        ss.addEvent(lnk,'click',ss.smoothScroll);
      }
    }
  },

  smoothScroll: function(e) {
    // This is an event handler; get the clicked on element,
    // in a cross-browser fashion
    if (window.event) {
      target = window.event.srcElement;
    } else if (e) {
      target = e.target;
    } else return;

    // Make sure that the target is an element, not a text node
    // within an element
    if (target.nodeName.toLowerCase() != 'a') {
      target = target.parentNode;
    }
  
    // Paranoia; check this is an A tag
    if (target.nodeName.toLowerCase() != 'a') return;
  
    // Find the <a name> tag corresponding to this href
    // First strip off the hash (first character)
    anchor = target.hash.substr(1);
    // Now loop all A tags until we find one with that name
    var allLinks = document.getElementsByTagName('a');
    var destinationLink = null;
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if (lnk.name && (lnk.name == anchor)) {
        destinationLink = lnk;
        break;
      }
    }
    if (!destinationLink) destinationLink = document.getElementById(anchor);

    // If we didn't find a destination, give up and let the browser do
    // its thing
    if (!destinationLink) return true;
  
    // Find the destination's position
    var destx = destinationLink.offsetLeft; 
    var desty = destinationLink.offsetTop;
    var thisNode = destinationLink;
    while (thisNode.offsetParent && 
          (thisNode.offsetParent != document.body)) {
      thisNode = thisNode.offsetParent;
      destx += thisNode.offsetLeft;
      desty += thisNode.offsetTop;
    }
  
    // Stop any current scrolling
    clearInterval(ss.INTERVAL);
  
    cypos = ss.getCurrentYPos();
  
    ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
    ss.INTERVAL =
setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10);
  
    // And stop the actual click happening
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.preventDefault && e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
  },

  scrollWindow: function(scramount,dest,anchor) {
    wascypos = ss.getCurrentYPos();
    isAbove = (wascypos < dest);
    window.scrollTo(0,wascypos + scramount);
    iscypos = ss.getCurrentYPos();
    isAboveNow = (iscypos < dest);
    if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
      // if we've just scrolled past the destination, or
      // we haven't moved from the last scroll (i.e., we're at the
      // bottom of the page) then scroll exactly to the link
      window.scrollTo(0,dest);
      // cancel the repeating timer
      clearInterval(ss.INTERVAL);
      // and jump to the link directly so the URL's right
      location.hash = anchor;
    }
  },

  getCurrentYPos: function() {
    if (document.body && document.body.scrollTop)
      return document.body.scrollTop;
    if (document.documentElement && document.documentElement.scrollTop)
      return document.documentElement.scrollTop;
    if (window.pageYOffset)
      return window.pageYOffset;
    return 0;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent and removeEvent
    // cross-browser event handling for IE5+,  NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 25;

ss.addEvent(window, "load",ss.fixAllLinks);		
;

