(function($) {

	$.adMediaLibrary = {
		defaults : {
			slideSpeed	: 300,
			fade				: 300
		},
		pages : ''
	};
	
	
	/* extend jquery with the plugin */
	$.fn.extend({
		adMediaLibrary:function(config) {
			var obj = $(this);
			
			/* use defaults or properties supplied by user */
			var config = $.extend($.adMediaLibrary.defaults, config);
			
			if($.adMediaLibrary.defaults.type == 'edit') {
				$('.adMediaLibrary li').hover(function(){
					$(this).children('.adMediaItemControls').clearQueue().animate({'top':0},$.adMediaLibrary.defaults.slideSpeed);
				}, function(){
					$(this).children('.adMediaItemControls').clearQueue().animate({'top':-21},$.adMediaLibrary.defaults.slideSpeed);
				});
			} else {
				$('.adMediaLibrary li').live('click',function(){
					var clicked = $(this),
							bgImage = clicked.children('p').css('background-image');
					$('.adEditWindowInputImageHolder .adInput').val(clicked.attr('id').replace('adMedia',''));	
					$('.adEditWindowInputImageHolder .adEditWindowInputFile').css('backgroundImage',bgImage);
					clicked.closest('.adSystemWindow').fadeOut($.adMediaLibrary.defaults.fade,function(){ $(this).remove(); });
				});	
			}
			$.adMediaLibrary.pages = $('.adMediaLibrary .adPaging a');
			$.adMediaLibrary.init();
			/* return the jquery object for chaining */
			return this;
		}
	});
	
	
	/* control functions */
	$.adMediaLibrary.init = function() {
		
		$('.adMediaLibrary .adPaging a').click(function(e){
			//$.adMediaLibrary.debug($.adMediaLibrary.pages);
			e.preventDefault();
			var clicked = $(this),
					pos = $.adMediaLibrary.pages.index(clicked),
					nextPage,
					current = $('.adMediaLibrary .adPaging .adCurrent');
			if(pos > 1 && pos < $.adMediaLibrary.pages.length-2) {
				current.removeClass('adCurrent');
				clicked.addClass('adCurrent');
				nextPage = pos-1;
			} else {
				if(pos == $.adMediaLibrary.pages.length-1) {
					nextPage = $.adMediaLibrary.pages.length-4;
					current.removeClass('adCurrent');
					$.adMediaLibrary.pages.eq(nextPage+1).addClass('adCurrent');
				}
				if(pos == $.adMediaLibrary.pages.length-2) {
					nextPage = $.adMediaLibrary.pages.index(current);
					current.removeClass('adCurrent');
					current.next().addClass('adCurrent');
				}
				if(pos == 0) {
					nextPage = 1;
					current.removeClass('adCurrent');
					$.adMediaLibrary.pages.eq(nextPage+1).addClass('adCurrent');
				}
				if(pos == 1) {
					nextPage = $.adMediaLibrary.pages.index(current)-2;
					current.removeClass('adCurrent');
					current.prev().addClass('adCurrent');
				}

				if(nextPage < 2) {
					$.adMediaLibrary.pages.eq(0).addClass('adSystemHide');
					$.adMediaLibrary.pages.eq(1).addClass('adSystemHide');
				} else {
					$.adMediaLibrary.pages.eq(0).removeClass('adSystemHide');
					$.adMediaLibrary.pages.eq(1).removeClass('adSystemHide');
				}
				if((parseInt(nextPage)+5) > $.adMediaLibrary.pages.length) {
					$.adMediaLibrary.pages.eq($.adMediaLibrary.pages.length-1).addClass('adSystemHide');
					$.adMediaLibrary.pages.eq($.adMediaLibrary.pages.length-2).addClass('adSystemHide');
				} else {
					$.adMediaLibrary.pages.eq($.adMediaLibrary.pages.length-1).removeClass('adSystemHide');
					$.adMediaLibrary.pages.eq($.adMediaLibrary.pages.length-2).removeClass('adSystemHide');
				}
			}
			var data = { current: nextPage, table: '_files', type: 'image' }

			$('.adMediaLibraryCover').fadeIn($.adMediaLibrary.defaults.fade,function(){
				$.ajax({
					url: '?adJax=mediaLibrary',
					type: 'POST',
					data: data,
					success: function(response){
						//$.adMediaLibrary.debug(response);
						$('.adMediaLibraryFilesHolder').empty().append(response);
						$('.adMediaLibraryCover').fadeOut($.adMediaLibrary.defaults.fade);
					},
					dataType: 'html'	
				});
			});
			//$.adMediaLibrary.debug($(this));
		});
	}
	
		
	$.adMediaLibrary.debug = function(data){
		if(window.console) {
			//console.log(data);
		} else {
			 //alert(data);
		}	
	}
	/* end control functions */
	
	
})(jQuery);

