$j(document).ready(function() {

	// Player flag.
	var isPlaying = false;
	// Number of seconds between frames.
	var timeBetween = 5;
	
	// Set the gallery image
	function setGalleryBackground(theurl, desc, video, videoUrl)
	{
		if(theurl == undefined)
			return;
		if (('url('+theurl+')') != $j('div.wp-gallery div.display').css('background-image'))
		{
			var img = $j('div.wp-gallery div.display');
			$j('div.wp-gallery div.display').show();
			$j('div.wp-gallery div.displayvideo').hide();

			if(video == true)
				$j('div.wp-gallery div.display a#wp-gallery-current').attr('href', videoUrl.replace('180', '387').replace('269', '579'));
			else
				$j('div.wp-gallery div.display a#wp-gallery-current').attr('href', theurl.replace('180', '387').replace('269', '579'));
			$j('div.wp-gallery div.display a#wp-gallery-current').attr('title', desc);
			setTimeout(function() 
			{ 
				img.css('background-image',('url('+theurl+')'));
				setCurImage(); 
				setGalleryDescription(desc);
				$changeOut = getCurrentLBChild();
				$changeOut.removeClass('wp-gallery-hide-click');
				$changeIn = getNonCurrentLBChildren();
				
				$changeIn.each(function(){
					if(!$j(this).hasClass('wp-gallery-hide-click'))
						$j(this).addClass('wp-gallery-hide-click');
				});
				$j("#wp-gallery-current,.wp-gallery-hide-click").lightBox();
			}, 500);
		}
	}
	
	function setVideo(theurl, desc, video, videoUrl)
	{
			$j('div.wp-gallery div.display').hide();
			$j('div.wp-gallery div.displayvideo').show();
			
			var img = $j('div.wp-gallery div.display');
			$j('div.wp-gallery div.display a#wp-gallery-current').attr('href', '');
			img.css('background-image',('url('+theurl+')'));
			
			$j('div.wp-gallery div.displayvideo').html('<object width="' + $j('div.wrapper').width() + '" height="' + $j('div.wrapper').height() + '"><param name="movie" value="' + videoUrl + '"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="' + videoUrl + '" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="' + $j('div.wrapper').width() + '" height="' + $j('div.wrapper').height() + '"></embed></object>');
				
			setTimeout(function() 
			{ 
				img.css('background-image',('url('+theurl+')'));
				setCurImage(); 
				setGalleryDescription(desc);
				$changeOut = getCurrentLBChild();
				$changeOut.removeClass('wp-gallery-hide-click');
				$changeIn = getNonCurrentLBChildren();
				
				$changeIn.each(function(){
					if(!$j(this).hasClass('wp-gallery-hide-click'))
						$j(this).addClass('wp-gallery-hide-click');
				});
				$j("#wp-gallery-current,.wp-gallery-hide-click").lightBox();
			}, 500);
	}
	
	// Set image description
	function setGalleryDescription(desc)
	{
		$j('wp-gallery .title').text(desc);
	}
	
	function getTotalImages()
	{
		return $j('div.thumbs').children("a.wp-gallery").length;
	}
	
	function getImageLocation()
	{
		$jkids = getCurrentChild();
		
		var manyLeft = $jkids.nextAll("a").length;
				
		return (getTotalImages() - manyLeft);
	}
	
	function setCurImage()
	{
		$j('span#curImage').text(getImageLocation());
	}
	
	$j('div.wp-gallery div.display').click(function(){
		$j('div.wp-gallery div.display a#wp-gallery-current').click();
	});
	
	// image previews	
	$j('div.thumbs a.wp-gallery').click(function(){
		//alert($j('div.wp-gallery div.display').css('background-image'));
		$j('a.wp-gallery-play').show();
		$j('a.wp-gallery-startover').hide();
		$j('a.wp-gallery-stop').hide();
		isPlaying = false;
		
		var $jprevShowing = $j('div.thumbs a.wp-gallery').hasClass('showing');
		if($jprevShowing)
			$j('div.thumbs a.wp-gallery').removeClass('showing');
		
		$j(this).addClass('showing');
		
		if($j(this).hasClass('video'))
			setVideo(this.href, $j(this).attr('title'), true, $j(this).attr('rel'));
		else
			setGalleryBackground(this.href, $j(this).attr('title'));
			
		this.blur();
		return false;
	});
	
	// Get the current child
	function getCurrentChild()
	{
		if(!$j('div.display').css('background-image'))
			return -1;
		var theurl = $j('div.display').css('background-image').substr(4, $j('div.display').css('background-image').length-5);

		return $j('div.thumbs').children("a.wp-gallery[href='"+theurl+"']");	
	}
	
	// Get non-current children
	function getNonCurrentChildren()
	{
		var theurl = $j('div.display').css('background-image').substr(4, $j('div.display').css('background-image').length-5);

		return $j('div.thumbs').children("a.wp-gallery[href!='"+theurl+"']");	
	}
	
	// Get the current LB child
	function getCurrentLBChild()
	{
		var theurl = $j('div.display').css('background-image').substr(4, $j('div.display').css('background-image').length-5);

		return $j('div.lbthumbs').children("a[href='"+theurl.replace('180', '387').replace('269', '579')+"']");	
	}
	
	// Get non-current LB children
	function getNonCurrentLBChildren()
	{
		var theurl = $j('div.display').css('background-image').substr(4, $j('div.display').css('background-image').length-5);

		return $j('div.lbthumbs').children("a[href!='"+theurl.replace('180', '387').replace('269', '579')+"']");	
	}
	
	// Function to loop/stop gallery
	function playGallery()
	{
		if(isPlaying == true)
		{
			var $jkids = getCurrentChild();
			
			if($jkids.next().attr('href'))
			{
				var $jprevShowing = $j('div.thumbs a.wp-gallery').hasClass('showing');
				if($jprevShowing)
					$j('div.thumbs a.wp-gallery').removeClass('showing');
				
				$jkids.next().addClass('showing');
				setGalleryBackground($jkids.next().attr('href'), $jkids.next().attr('title'));
			}
			else
			{
				$j('a.wp-gallery-startover').show();
				$j('a.wp-gallery-stop').hide();
				isPlaying = false;
			}
				
			setTimeout(playGallery, (timeBetween*1000));
		}
	}
	
	// Get next child in .wp-gallery, if last child, go to first.
	$j('a.wp-gallery-next').click(function(){
		$j('a.wp-gallery-play').show();
		$j('a.wp-gallery-stop').hide();
		$j('a.wp-gallery-startover').hide();
		
		var $jkids = getCurrentChild();
		isPlaying = false;
		
		if($jkids.next().attr('href'))
		{
			var $jprevShowing = $j('div.thumbs a.wp-gallery').hasClass('showing');
			if($jprevShowing)
				$j('div.thumbs a.wp-gallery').removeClass('showing');
			
			$jkids.next().addClass('showing');
			setGalleryBackground($jkids.next().attr('href'), $jkids.next().attr('title'));
		}
	});
	
	// Get previous child in .wp-gallery, if first child, go to last.
	$j('a.wp-gallery-previous').click(function(){
		$j('a.wp-gallery-play').show();
		$j('a.wp-gallery-stop').hide();
		$j('a.wp-gallery-startover').hide();
		
		var $jkids = getCurrentChild();
		isPlaying = false;

		if($jkids.prev().attr('href'))
		{
			var $jprevShowing = $j('div.thumbs a.wp-gallery').hasClass('showing');
			if($jprevShowing)
				$j('div.thumbs a.wp-gallery').removeClass('showing');
			
			$jkids.prev().addClass('showing');
			setGalleryBackground($jkids.prev().attr('href'), $jkids.prev().attr('title'));
		}
	});
	
	// Play all images in .wp-gallery.
	$j('a.wp-gallery-play').click(function(){
		$j('a.wp-gallery-play').hide();
		$j('a.wp-gallery-stop').show();
		
		isPlaying = true;
		playGallery();
	});
	
	// Play all images in .wp-gallery.
	$j('a.wp-gallery-startover').click(function(){
		$jkids = $j('div.thumbs').children("a.wp-gallery:first");	

		var $jprevShowing = $j('div.thumbs a.wp-gallery').hasClass('showing');
		if($jprevShowing)
			$j('div.thumbs a.wp-gallery').removeClass('showing');
		
		$jkids.addClass('showing');				
		setGalleryBackground($jkids.attr('href'), $jkids.attr('title'));
		
		$j('a.wp-gallery-play').hide();
		$j('a.wp-gallery-startover').hide();
		$j('a.wp-gallery-stop').show();
				
		isPlaying = true;
		setTimeout(playGallery, (timeBetween*1000));
	});
	
	// Stop playing.
	$j('a.wp-gallery-stop').click(function(){
		$j('a.wp-gallery-play').show();
		$j('a.wp-gallery-stop').hide();
		
		isPlaying = false;
	});
	
	if($j('div.wp-gallery').css('background-image'))
	{
		var $jinitKids = getCurrentChild();
	
		if($jinitKids.attr('href'))
		{
			var $jprevShowing = $j('div.thumbs a.wp-gallery').hasClass('showing');
			if($jprevShowing)
				$j('div.thumbs a.wp-gallery').removeClass('showing');
			
			$jinitKids.eq(0).addClass('showing');
			setGalleryBackground($jinitKids.attr('href'), $jinitKids.attr('title'));
		}
		else
		{
			$jinitKids = $j('div.thumbs').children("a.wp-gallery");
			$jinitKids.eq(0).addClass('showing');
			setGalleryBackground($jinitKids.attr('href'), $jinitKids.attr('title'));
		}
		
		$j('span#totalImages').text(getTotalImages());
		$j('a.wp-gallery-play').show();
		$j('a.wp-gallery-stop').hide();
		$j('a.wp-gallery-startover').hide();
	}
});

$j.extend({
  jYoutube: function( url, size ){
    if(url === null){ return ""; }

    size = (size === null) ? "big" : size;
    var vid;
    var results;

    results = url.match("[\\?&]v=([^&#]*)");

    vid = ( results === null ) ? url : results[1];

    if(size == "small"){
      return "http://img.youtube.com/vi/"+vid+"/2.jpg";
    }else {
      return "http://img.youtube.com/vi/"+vid+"/0.jpg";
    }
  }
});

$j.extend({
  jYoutubeVideoUrl: function( url ){
    if(url === null){ return ""; }

    var vid;
    var results;

    results = url.match("[\\?&]v=([^&#]*)");

    vid = ( results === null ) ? url : results[1];

    return "http://www.youtube.com/v/" + vid + "&hl=en&fs=1&";
  }
});
