jQuery.fn.popup = function(options){

	var arrayMedia = [];
	
	var taketrip_popup_window_content_next = true; 
	
	var currentMedia;
	
	var comments_show;
	
	var objectPopup = jQuery(this);
	
	var options = jQuery.extend({
		popupType: 'media',
	}, options);
	
	objectPopup.find('.item').each(function(index, obj){
		arrayMedia.push({
			'id': $(obj).attr('id'),
			'object_type': $(obj).attr('object_type')
		});
	});
	
	if (options.popupType == 'media') {
		objectPopup.find('.item').click(function(e){
		
			for (a = 0; a < arrayMedia.length; a++) {
				if (arrayMedia[a].id == $(this).attr('id')) {
					currentMedia = a;
					break;
				}
			}
			createPopup();
			loadContent(arrayMedia[currentMedia]);
		});
	}
	
	taketrip_popup_flash = function(id){
		for (a = 0; a < arrayMedia.length; a++) {
			if (arrayMedia[a].id == id) {
				currentMedia = a;
				break;
			}
		}
		createPopup();
		loadContent(arrayMedia[currentMedia]);
	}
	
	
	function createPopup(){
		$('body').prepend('<div class="taketrip_popup_window">' +
		'<table border="0" width="100%"><tr><td align="center">' +
		'<table border="0"><tr><td class="arrow"><div class="arrow_left"></div></td><td>' +
		'<table cellpadding="0" cellspacing="0" border="0" class="taketrip_popup_window_precontent">' +
		'<tr>' +
		'<td class="taketrip_popup_window_content" width="660">' +
		'<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">' +
		'<tr valign="top">' +
		'<td height="30" class="header"></td>' +
		'<td width="15"><div class="close inline"></div></td>' +
		'</tr>' +
		'<tr>' +
		'<td class="content" align="center" colspan="2" height="495"></td>' +
		'</tr>' +
		'<tr>' +
		'<td class="popup_comments" colspan="2" height="22"></td>' +
		'</tr>' +
		'<tr>' +
		'<td class="comments_container" colspan="2"></td>' +
		'</tr>' +
		'</table>' +
		'</td>' +
		'</tr>' +
		'</table>' +
		'</td><td class="arrow"><div class="arrow_right"></div></td></tr></table>' +
		'</td></tr></table>' +
		'</div>');
		
		$('body').prepend('<div class="taketrip_popup_block"></div>');
		
		$('.taketrip_popup_window').find('.close').click(function(e){
			closePopup();
		});
		
		
		$('.taketrip_popup_window_content').find('.content').click(function(e){
			if (arrayMedia.length > 1) {
				if (taketrip_popup_window_content_next) {
					nextMedia();
				}	
			}
			else {
				if (taketrip_popup_window_content_next) {
					closePopup();
				}
				
			}
		});
		
		$('.taketrip_popup_window').find('.arrow_left').click(function(e){
			prevMedia();
		});
		$('.taketrip_popup_window').find('.arrow_right').click(function(e){
			nextMedia();
		});
		
		$('.taketrip_popup_block').css({
			'height': $(document).height() + 'px',
			'width': $(document).width() + 'px',
		});
		
		$('.taketrip_popup_window').css({
			'height': '100%',
			'top': $(document).scrollTop() + 'px'
		});
		
		var wbody = $('body').width();
		
		$('body').css({
			'overflow-y': 'hidden',
			'width': wbody + 'px'
		});
		
		$('#bottom_panel').css({
			'width': wbody + 'px'
		});
		
	}
	
	
	function loadContent(array){
		if (arrayMedia.length > 1) {
			$('.taketrip_popup_window').find('.arrow_right').show();
			$('.taketrip_popup_window').find('.arrow_left').show();
		}
		
		$('.taketrip_popup_window_content').find('.content').html('<div class="preloader"></div>');
		$('.taketrip_popup_window_content').find('.popup_comments').html('');
		$.post('/show_photo_video', {
			id: array.id,
			object_type: array.object_type
		}, function(e){
			
			
			if (e.media_about) {
				var about = e.media_about;
			}
			else {
				var about = 'НЕТ НАЗВАНИЯ';
			}
			
			if (e.avatar) {
				var avatar = '/media/user/avatars/a_25x25/' + e.avatar;
			}
			else {
				var avatar = '/media/no_avatar.gif';
			}
			
			if (e.comments_length) {
				var comments_length = e.comments_length.length;
			}
			else {
				var comments_length = '';
			}
			
			if (e.object_type == 'p') {
				var address = '<a href="/trip/' + e.trip_id + '/p/' + e.object_id + '/' + e.order + '/normal" class="link_yellow_hover">' + e.point_address + '</a>';
			}
			else {
				var address = '<a href="/trip/' + e.trip_id + '/m/' + e.object_id + '/' + e.order + '/normal" class="link_yellow_hover">' + e.moving_transport + '</a>';
			}
			
			var window_content = $('.taketrip_popup_window_content');
			switch (e.type) {
				case 'youtube':
					taketrip_popup_window_content_next = false;
					window_content.find('.content').html('<object>' +
					'<param name="movie" value="http://www.youtube.com/v/' +
					e.video_id +
					'?version=3&color1=0xFFFFFF&color2=0xFFFFFF&feature=player_embedded">' +
					'<param name="allowFullScreen" value="true">' +
					'<param name="allowScriptAccess" value="always">' +
					'<param name="wmode" value="opaque" />' +
					'<embed src="http://www.youtube.com/v/' +
					e.video_id +
					'?version=3&color1=0xFFFFFF&color2=0xFFFFFF&feature=player_embedded" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" wmode="opaque" width="640" height="385"></object>');
					break;
				case 'vimeo':
					taketrip_popup_window_content_next = false;
					window_content.find('.content').html('<object width="640" height="385">' +
					'<param name="allowfullscreen" value="true" />' +
					'<param name="allowscriptaccess" value="always" />' +
					'<param name="wmode" value="opaque" />' +
					'<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=' +
					e.video_id +
					'&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=&fullscreen=1&autoplay=0&loop=0" />' +
					'<embed src="http://vimeo.com/moogaloop.swf?clip_id=' +
					e.video_id +
					'&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=&fullscreen=1&autoplay=0&loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" wmode="opaque" width="640" height="385"></embed></object>');
					break;
				default:
					taketrip_popup_window_content_next = true;
					window_content.find('.content').html('<img src="/media/user/photo/p_660x495/' + e.media_file_name + '">');
					break;
			}
			window_content.find('.header').html('<div class="inline avatar"><a href="/user/' + e.user_id + '"><img src="' + avatar + '"></a></div><div class="inline user_name"><a href="/user/' + e.user_id + '" class="link_yellow_hover">' + e.first_name + '<br>' + e.last_name + '</a></div><div class="inline trip_ico ico_plan" style="display:none;"></div><div class="inline trip_name">' + about.toUpperCase() + '<br><a href="/trip/' + e.trip_id + '" class="link_yellow_hover">' + e.trip_title + '</a> — ' + address + '</div>')
			window_content.find('.popup_comments').html('<div class="comments_ico">' + comments_length + '</div>');
			window_content.find('.comments_container').html('');
			
			$('.taketrip_popup_window').find('.comments_ico').click(function(event){
				showComments(array.id, e.trip_id);
			});
			
			comments_show = true;
			
		}, 'json');
	}
	
	function nextMedia(){
		if (currentMedia < arrayMedia.length - 1) {
			currentMedia++;
		}
		else {
			currentMedia = 0;
		}
		loadContent(arrayMedia[currentMedia]);
	}
	
	function prevMedia(){
		if (currentMedia > 0) {
			currentMedia--;
		}
		else {
			currentMedia = arrayMedia.length - 1;
		}
		loadContent(arrayMedia[currentMedia]);
	}
	
	function closePopup(){
		$('body').find('.taketrip_popup_window').remove();
		$('body').find('.taketrip_popup_block').remove();
		
		$('body').css({
			'overflow-y': 'auto',
			'width': ''
		});
		
		$('#bottom_panel').css({
			'width': ''
		});
		
	}
	function showComments(id, trip_id){
		switch (comments_show) {
			case true:
				$(".comments_container").html('<div class="preloader"></div>');
				$(".comments_container").load("/show_photo_video_comments", {
					id: id,
					trip_id: trip_id
				}, function(e){
					comments_show = false;
				});
				
			case false:
				$(".comments_container").html('');
				comments_show = true;
				break;
		}
	}
}
