/*
**	core js for pb_portfolio.php
**
**	contains all functions for portfolio functionality
**		-drag / drop
**		-playbucket support (add / remove / sort)
**		-show thickbox with player
**		-tagging of items
**
**		requires: 	jquery.ui.core.js			-- required for drag / drop / sort
**					jquery.ui.draggable.js		-- drag support
**					jquery.ui.droppable.js		-- drop support
**					jquery.ui.sortable.js		-- sort support
**					thickbox.js					-- popup div
**					flowplayer.js				-- flash video player controller
**/

	var maxPlaylistItems = 8;
	var playlistAtMaxItems = "The player only allows "+maxPlaylistItems+" items.";

		$(document).ready(function() {	
				
			$(".addVidLink").click(function(){addItemToPlaybucket($(this).attr('name'));return false;});
			$(".col1 a").hover( 		
				function() { 
						$('.client'+this.name).css('backgroundColor', '#FFFFFF');
				}, 
				function(){ 
					//if ($('.client'+this.name).hasClass('flagged')) { 
					//	$('.client'+this.name).css('backgroundColor', '#FFFF00');
					//} else {
						$('.client'+this.name).css('backgroundColor', '#303030'); 
					//}
				}			
			);
						
			$(".col1 a").filter(".plink")
				.click( function() { 
					$(".col1 a").filter(".plink").css('color','#888888');
					$(".col1 a").filter(".plink").css('font-weight','normal');
					$('.gallery_item').css('backgroundColor', '#303030');
					$('.gallery_item').css('border-color', '#666');
//					$('.client'+this.name).css('backgroundColor', '#FFFF00');
					$('.gallery_item').filter(".flagged").removeClass("flagged");
					
					if($(this).hasClass('flaggedTag')){
						$(this).removeClass('flaggedTag');
					}else{
						$(".col1 a").filter(".flaggedTag").removeClass('flaggedTag');
						$(this).addClass('flaggedTag');					
						$('.client'+this.name).css('border-color', '#FFFFFF');
						$('.client'+this.name).addClass("flagged");
						$(this).css('color','#FFFFFF')
						$(this).css('font-weight','bold')
					}
					return false;
				}
			);
			/*
			// TOGGLE EXPANDING DIV
			$('.portfolio_gallery .gallery_item').click(function() { 
				$(this).animate({
					width:"70%",
					opacity:0.4,
					marginLeft: "0.6in",
					fontSize: "3em",
					borderWidth: "10px"
				}, 1500);
			});
			*/
			var myitems = $(".video");
			$(myitems).draggable({ 
				ghosting: true,
			    helper: "clone",
				opacity: .4,
				handle: 'div.drag-handle',
				dragPrevention: "div.no-drag-handle"
			});
			
			$(".gallery_item").hover(
				function() { 
					var originalBG = $(this).css("background-color"); 
					var fadeColor = "#CCCCCC";
					$(this).css('backgroundColor', '#FFFFFF');
				}, 
				function() { 
					//if ($(this).hasClass('flagged')) { 
						//$(this).css('backgroundColor', '#FFFF00');
					//} else {
						$(this).css('backgroundColor', '#303030'); 
					//}

//					$(this).css('backgroundColor', '#303030');
				}
			);
						
			$(".playbucket").droppable({
			    accept: '.video',
				tolerance: 'touch',
				activate: function(ev, ui) {
					ui.draggable.addClass('droppable-activate');
				},
				deactivate: function(ev, ui) {
					ui.draggable.removeClass('droppable-activate');
				},
				activeClass: 'droppable-active',
				hoverClass: 'droppable-hover',
				greedy: true,
			    drop: 
					function(ev, ui) { 
						if (numberOfItemsInPlayBucket() >= maxPlaylistItems) { 
							revert: true;
							alert(playlistAtMaxItems);
						} else {
							ui.draggable.clone().fadeOut("fast", 
								function() { $(this).fadeIn("fast"); }
							)
							.appendTo($(this))
							.addClass('inPlaybucket')
							.removeClass('droppable-activate')
							.removeClass('video')
							.css('backgroundColor', '#303030');
							
							$(ui.draggable).draggable('disable');
							setRemoveFromPlayBucketLink();
						}
					}
			});
			
			$("#droppable-playbucket").sortable({
				accept: '.inPlaybucket',
				activeClass: 'droppable-active',
				hoverClass: 'droppable-hover'
			});
			
		});
		
		function getPlayBucketOrder() {
			var pb = $('#droppable-playbucket');
			return pb.sortable('toArray');
		}

		function removeItemFromPlayBucket(item) {
			$(item).remove();
			$("#"+item.id).draggable('enable');
			return false;
		}

		function numberOfItemsInPlayBucket() {
			var pb = $('.inPlaybucket');
			return pb.length;
		}

		function addItemToPlaybucket(item) {
			
			if(!$(item).hasClass('ui-draggable-disabled')){
				$(item).draggable('disable');
				if (numberOfItemsInPlayBucket() >= maxPlaylistItems) { 
					revert: true;
					alert(playlistAtMaxItems);
				} else {
					$('#droppable-playbucket').append($(item).clone().addClass($(item).attr('id')).addClass('inPlaybucket').removeClass('video').removeClass('flagged').css('backgroundColor', '#303030'));
					setRemoveFromPlayBucketLink();
					$(item).draggable('disable');
					tb_init("#droppable-playbucket div."+$(item).attr('id')+" a.thickbox");
				}
			}
			
		}
		
		function setRemoveFromPlayBucketLink() {
			$('.inPlaybucket a.addVidLink').replaceWith("<a href=\"#\" class='addVidLink itemPlaybucketAction' onclick='removeItemFromPlayBucket(this.parentNode.parentNode);return false;'>-</a>");
			$('.inPlaybucket').click(function(){return false;});
		}
		
		function showMultiPlayer(){
			var pbList=getPlayBucketOrder();
			if(pbList=="")
				alert('You must add items to your playlist before clicking play. You can click the add link or drag and drop them.');
			else
				tb_show("","pb_PortfolioPlayerMulti.php?id="+pbList+"&height=435&width=790&modal=true",'true','');
		}
		
		function showShareReel(){
			var pbList=getPlayBucketOrder();
			if(pbList=="")
				alert('You must add items to your playlist before clicking play. You can click the add link or drag and drop them.');
			else
				showTellAFriend("","Pixel Brothers Custom Video Reel",true,pbList);
		}