
/**
 * @author Vadim
 * @copyright Hire-Experts LLC
 * @version Pages 3.02
 */

var he_pages_map = 
{
	pages_array: {},
	markers_array: {},
	map_bounds: {},
	zoom: 4,
	
	construct: function(pages_array, markers_array, zoom, map_bounds) {
		this.pages_array = pages_array;
		this.markers_array = markers_array;
		this.map_bounds = map_bounds;
		this.zoom = zoom;

		window.map = new GMap2(document.getElementById("map_canvas"));
		window.map.setUIToDefault();
	},
	
	show_map: function() {
		
		if( this.markers_array.length==0 ) { return false; }

		
		window.map.clearOverlays();

		for( var i=0; i<this.markers_array.length; i++ )
		{
			var marker = this.markers_array[i];

			var point = new GLatLng(marker.lat, marker.lng);

			marker_obj = new GMarker(point);

			window.map.addOverlay(marker_obj);
			marker_obj.bindInfoWindow('<table width="500"><tr valign="top"><td width="110"><img src="' + marker.pages_photo + '" width="100"></td><td width="400"><h3 style="margin-top:0; margin-bottom:6px;"><a href="pages.php?pages_id=' + marker.pages_id + '">' + marker.title + '</a></h3>' + marker.desc + '</td></tr></table>');
			//bindInfoWindow(content:Node, opts?:GInfoWindowOptions) 
		}
			window.map.setCenter(new GLatLng(marker.lat, marker.lng), 4);

		if (this.map_bounds && this.map_bounds.min_lat && this.map_bounds.max_lng && this.map_bounds.min_lat && this.map_bounds.max_lng) {
			var bds = new GLatLngBounds(new GLatLng(this.map_bounds.min_lat, this.map_bounds.min_lng), new GLatLng(this.map_bounds.max_lat, this.map_bounds.max_lng));
		}

		if (this.map_bounds && this.map_bounds.map_center_lat && this.map_bounds.map_center_lng) {
			window.map.setCenter(new GLatLng(this.map_bounds.map_center_lat, this.map_bounds.map_center_lng), 4);
		} else {
			window.map.setCenter(new GLatLng(marker.lat, marker.lng), this.zoom);
		}

		if (bds) { window.map.setZoom(window.map.getBoundsZoomLevel(bds)); }
	},
	
	show_list: function() {
	}
};


var he_pages = 
{
	pages_id: 0,
	video_total: 0,
	videos: {},
	
	construct_video: function()
	{
		var self = this;

		if( this.videos.length < 1  ) return;
		this.prepare_videos(this.videos, true);
		
		this.video_slide = new he_slider({
			total: this.video_total,
			count: 3,
			size: 164,
			duration: 500,
			$container: $('pages_videos_cont'),
			$left_btn: $('video_move_left'),
			$right_btn: $('video_move_right'),
			
			load_function: function(page, direction)
			{
				self.load_videos(page, direction);
			}
		});
	},
	
	prepare_videos: function( videos, init)
	{
		var self = this;
		for ( var video_id in videos)
		{			
			var $video_btn = $('video_' + video_id);
			
			$video_btn.addEvent('click', function()
			{
				var video_id = $(this).getProperty('id').substr(6);
				self.show_video(video_id);
			});
			
			if ( init )
			{
				self.show_video(video_id);
				init = false;
			}
		}
	},
	
	show_video: function( video_id )
	{
		var video_info = this.videos[video_id];
		
		var $pages_videos_cont = $('pages_videos');
		var $video_player = $pages_videos_cont.getElement('.pages_video_player');
		var $video_owner_url = $pages_videos_cont.getElements('.video_owner_url');
		var $video_owner_photo = $pages_videos_cont.getElement('.video_owner_photo');
		var $video_owner = $pages_videos_cont.getElement('.video_owner');
		var $video_upload_date = $pages_videos_cont.getElement('.video_upload_date');
		var $video_title = $pages_videos_cont.getElement('.video_title');
		var $video_description = $pages_videos_cont.getElement('.video_description');
		
		$video_player.set('html', video_info.video_player);
		$video_owner_url[0].setProperty('href', video_info.video_owner_url);
		$video_owner_url[1].setProperty('href', video_info.video_owner_url);
		$video_owner_photo.setProperty('src', video_info.video_owner_photo);
		$video_owner_photo.setProperty('width', video_info.video_owner_photo_size);
		$video_owner.set('html', video_info.video_owner);
		$video_upload_date.set('html', video_info.video_upload_date);
		$video_title.set('html', video_info.video_title);
		
		video_info.video_description = ( video_info.video_description ) ? video_info.video_description : '';
		$video_description.set('html', video_info.video_description);
	},
	
	load_videos: function( page, direction )
	{
		var self = this;
		
        new Request.JSON({
            method: 'post',
            url: 'he_carousel_ajax.php',
            data: {	'task': 'video_list', 'pages_id': this.pages_id, 'page': page, 'no_cache': Math.random() },
            onSuccess : function(videos)
            {
            	for( video_id in videos )
            	{
            		self.videos[video_id] = videos[video_id];
            		self.add_video(video_id, videos[video_id]);
            	}
            	
            	self.prepare_videos(videos);
            	
            	self.video_slide.pages[page] = true;
            	self.video_slide.load_page(direction);
            }
        }).send();
	},
	
	add_video: function( video_id, video_info, top )
	{		
		var where = ( top ) ? 'top' : 'bottom';
		var $video = $('video_tpl').clone();
		
		$video.setProperty('id', 'video_' + video_id);	
		$video.getElement('.video_length').set('html', video_info.video_length);
		
		var $image = new Image();
		
		$($image).setProperties({
			'src': './uploads_pages/' + video_info.video_thumb,
			'class': 'video_thumb',
			'border': '0'
		});
		
		$video.grab($image);
		
		this.video_slide.$container.grab($video, where);
	},
	
	upload_video: function( $node )
	{
		var $node = $($node);
		var $parent_cont = $node.getParent('.pages_new_video');
		
		$video_provider = $parent_cont.getElement('.new_video_provider');
		$video_url = $parent_cont.getElement('.video_url');
		
		var video_provider = $video_provider.value.trim();
		var video_url = $video_url.value.trim();
		
		if ( video_provider.length == 0 )
		{
			alert(SELanguage.Translate(690706072));
			$video_provider.focus();
			return false;
		}

		if ( video_url.length == 0 )
		{
			alert(SELanguage.Translate(690706073));
			$video_url.focus();
			return false;
		}
		
		$node.addClass('disabled').disabled = true;
		$node.getNext('.hide_loading').removeClass('display_none');
		
		var self = this;
		
        new Request.JSON({
            method: 'post',
            url: 'he_carousel_ajax.php',
            data: {
        		'task': 'upload_video',
        		'pages_id': this.pages_id,
        		'video_provider': video_provider,
        		'video_url': video_url,
        		'no_cache': Math.random()
        	},
            onSuccess : function(response)
            {
        		if ( response.result == 0 )
        		{
        			alert(response.message);
        		}
        		else
        		{
        			
        			if (self.videos.length == 0) {
						window.location.reload();
					}
        			
        			var video_id = response.video_info.video_id;
        			
        			self.videos[video_id] = response.video_info;
        			
        			self.add_video(video_id, response.video_info, true);
        			
        			var $video_btn = $('video_' + video_id);
        			
        			$video_btn.addEvent('click', function()
        			{
        				var video_id = $(this).getProperty('id').substr(6);
        				self.show_video(video_id);
        			});
        			
        			self.video_slide.set_count(self.video_slide.item_total+1);

        			
        			
        			TB_remove();
        		}
        		
        		$node.removeClass('disabled').disabled = false;
        		$node.getNext('.hide_loading').addClass('display_none');
            }
        }).send();
	},
	
	select_video_provider: function( $node )
	{
		var $node = $($node);
		var $parent_cont = $node.getParent('.video_provider_div');
		
		$parent_cont.removeClass('youtube_video').removeClass('vimeo_video');
		
		if ( $node.value == 'vimeo' )
		{
			$parent_cont.addClass('vimeo_video');
		}
		else if ( $node.value == 'youtube' )
		{
			$parent_cont.addClass('youtube_video');
		}
	},
	
	post_photo: function($node)
	{
		var self = this;
		
		var $node = $($node);
		
		var $upload_photo_container = $('upload_photo_cont');
		var $upload_title = $node.getElement('.hide_loading');
		var $pages_photo = $node.getElement('.pages_photo');
		var $upload_btn = $node.getElement('.button');

		if ( $pages_photo.value.trim() == '' )
		{
			return false;
		}
		
		return AIM.submit($node, {
			'onStart': function()
			{
				$upload_btn.setProperty('disabled','disabled');
				$upload_btn.addClass('disabled');
				$upload_title.removeClass('display_none');
			},
			'onComplete': function(response)
			{
				eval('var response = ' + response);
				$upload_title.addClass('display_none');

				if ( !self.he_carousel_obj ) {
					window.location.reload();
				}
				
				if ( response.result == 1 )
				{
					self.he_carousel_obj.construct();
				}
				else
				{
					alert(response.message);
				}
					
				$pages_photo.value = '';
				$upload_btn.removeProperty('disabled').removeClass('disabled');
				$upload_btn.removeClass('disabled');
				
				TB_remove();
			}
		});
	}
};


var browse_pages = {

	construct: function()
	{
	
		var self = this;
		this.$form = $('filter');

		this.results_array = {};

		this.sort = {};
		this.sort = {order: 'alpha', order_seq: 'desc'};

		this.$view_list = $('view_list');
		this.$view_map = $('view_map');
		
		$('filter_submit').addEvent('click', function()
		{
			self.filter_pages();
			$('he_loading_filtering').removeClass('he_loading');
		});
	
	
		$('sort_by_name').addEvent('click', function()
		{
			if (self.sort.order!='alpha') self.sort.order_seq = 'asc';
			self.sort.order = 'alpha';
			self.sort.order_seq = ( self.sort.order_seq == 'desc' ) ? 'asc' : 'desc';

			self.set_active_ordering('name');			

			self.filter_pages();
		});
	
		$('sort_by_network').addEvent('click', function()
		{
			if (self.sort.order!='network') self.sort.order_seq = 'asc';
			self.sort.order = 'network';
			self.sort.order_seq = ( self.sort.order_seq == 'desc' ) ? 'asc' : 'desc';

			self.set_active_ordering('network');			

			self.filter_pages();
		});
		
		$('sort_by_fans').addEvent('click', function()
		{
			if (self.sort.order!='fans') self.sort.order_seq = 'asc';
			self.sort.order = 'fans';
			self.sort.order_seq = ( self.sort.order_seq == 'desc' ) ? 'asc' : 'desc';

			self.set_active_ordering('fans');

			self.filter_pages();
		});
		
		$('sort_by_date').addEvent('click', function()
		{
			if (self.sort.order!='date') self.sort.order_seq = 'asc';
			self.sort.order = 'date';
			self.sort.order_seq = ( self.sort.order_seq == 'desc' ) ? 'asc' : 'desc';

			self.set_active_ordering('date');

			self.filter_pages();
		});


		$('view_list_btn').addEvent('click', function()
		{
			self.$view_list.removeClass('he_display_none');
			self.$view_map.addClass('he_display_none');
			this.addClass('active');
			$('view_map_btn').removeClass('active');
			$('input_view').value = 'list';
		});

		$('view_map_btn').addEvent('click', function()
		{
			self.$view_list.addClass('he_display_none');
			self.$view_map.removeClass('he_display_none');
			this.addClass('active');
			$('view_list_btn').removeClass('active');
			$('input_view').value = 'map';
		});

	},


	filter_pages: function() {
		var self = this;
		var newquery_str = this.$form.toQueryString();
		if ( this.query_str != undefined && this.query_str != newquery_str  )
		{
			this.page = 1;
		}

		this.query_str = newquery_str;

		$('filter_submit').addClass('disabled').disabled = true;
		new Request.JSON({
			method : 'get',
			url : 'pages_ajax.php?task=filter_pages&' + '&' + newquery_str,
			data : {'p': self.page, 'order': self.sort.order, 'order_seq': self.sort.order_seq},
			onSuccess : function(response) {
				if( response ) {
					self.$view_list.innerHTML = response.html;
					he_pages_map.markers_array = response.markers;
					he_pages_map.map_bounds = response.map_bounds;
					he_pages_map.show_map();
				}
				$('filter_submit').removeClass('disabled').removeProperty('disabled');
				$('he_loading_paging').addClass('he_loading');
				$('he_loading_ordering').addClass('he_loading');
				$('he_loading_filtering').addClass('he_loading');
			}
		}).send();
	},


	change_page: function(p) {
		this.page = p;
		$('he_loading_paging').removeClass('he_loading');
		this.filter_pages();
	},



	set_active_ordering: function(sort_by_id) {

		$('sort_by_name').removeClass('active');
		$('sort_by_network').removeClass('active');
		$('sort_by_fans').removeClass('active');
		$('sort_by_date').removeClass('active');

		$('sort_by_name_seq').addClass('sort_by_seq_display');
		$('sort_by_network_seq').addClass('sort_by_seq_display');
		$('sort_by_fans_seq').addClass('sort_by_seq_display');
		$('sort_by_date_seq').addClass('sort_by_seq_display');

		if (this.sort.order_seq=='asc') {
			$('sort_by_' + sort_by_id + '_asc').addClass('unactive');
			$('sort_by_' + sort_by_id + '_desc').removeClass('unactive');
		} else {
			$('sort_by_' + sort_by_id + '_asc').removeClass('unactive');
			$('sort_by_' + sort_by_id + '_desc').addClass('unactive');
		}


		$('sort_by_' + sort_by_id).addClass('active');
		$('sort_by_' + sort_by_id + '_seq').removeClass('sort_by_seq_display');

		$('he_loading_ordering').removeClass('he_loading');

	}

};