/**
 * Bottom scripts
 * 
 * This file contains all the scriptaculous scripts for the main and constant html elements on the site
 *
 * @author Antoine Morcos
 * @version 1.0
 */

/**
 * Scriptaculous Draggable for the main and constant html elements on the site, this makes an element draggable in the page
 */
/*
if (document.getElementById('messenger-box'))
{
	new Draggable('messenger-box',{handle:'messenger-container'});
}
*/
if (document.getElementById('media-bag-frame'))
{
	new Draggable('media-bag-frame');
}

/**
 * Scriptaculous Sortable.create for the main and constant html elements on the site, this creates a sortable list of elements
 */

if (document.getElementById('gallery-tab-sortable'))
{
	Sortable.create('gallery-tab-sortable',{overlap:'horizontal',dropOnEmpty:false,constraint:false,
    onUpdate:function(sortable)
	{	
		var pars = Sortable.serialize(sortable);
		new Ajax.Request('edit_gallery_category_position_action.php',{method:'post',parameters:pars,
		onSuccess:function(transport)
		{
			if (transport.responseText == 1)
			{
			}
			else if (transport.responseText == 0 || transport.responseText == null)
			{
				alert('error');
			}
		},
		onFailure:function()
		{
			alert('error');
		}
		});
	}
	});
}

if (document.getElementById('gallery-media-sortable'))
{
	Sortable.create('gallery-media-sortable',{overlap:'vertical',dropOnEmpty:false,constraint:false,
    onUpdate:function(sortable)
	{
	}
	});
}

if (document.getElementById('group-tab-sortable'))
{
	Sortable.create('group-tab-sortable',{overlap:'horizontal',dropOnEmpty:false,constraint:false,
    onUpdate:function(sortable)
	{	
		var pars = Sortable.serialize(sortable);
		new Ajax.Request('edit_group_category_position_action.php',{method:'post',parameters:pars,
		onSuccess:function(transport)
		{
			if (transport.responseText == 1)
			{
			}
			else if (transport.responseText == 0 || transport.responseText == null)
			{
				alert('error');
			}
		},
		onFailure:function()
		{
			alert('error');
		}
		});
	}
	});
}

if (document.getElementById('blog-tab-sortable'))
{
	Sortable.create('blog-tab-sortable',{overlap:'horizontal',dropOnEmpty:false,constraint:false,
    onUpdate:function(sortable)
	{	
		var pars = Sortable.serialize(sortable);
		new Ajax.Request('edit_blog_category_position_action.php',{method:'post',parameters:pars,
		onSuccess:function(transport)
		{
			if (transport.responseText == 1)
			{
			}
			else if (transport.responseText == 0 || transport.responseText == null)
			{
				alert('error');
			}
		},
		onFailure:function()
		{
			alert('error');
		}
		});
	}
	});
}

if (document.getElementById('article-media-sortable'))
{
	Sortable.create('article-media-sortable',{overlap:'vertical',dropOnEmpty:false,constraint:false});
}

/**
 * Scriptaculous Droppables.add for the main and constant html elements on the site, this creates a droppable element so the user can drop items on it
 */
 
/**
 * Scriptaculous Droppables.add for the trashcan, the user can drag and drop images or videos in the trashcan to delete them
 */ 

if (document.getElementById('trashcan'))
{
	Droppables.add('trashcan',{accept:['big-thumb','medium-thumb'],
	/**
	 * onDrop function, this deletes the element when dropped on the droppable
	 *
	 * @param element
	 * @param droppableElement
	 */
	onDrop:function(element,droppableElement)
    {
        delete_gallery_media(element,trashcan_element_id,trashcan_element_type);
    },
	/**
	 * onHover function change the element's style when the element is over the droppable
	 *
	 * @param element
	 */
	onHover:function(element)
	{
	    Element.setStyle(element,'background-color: #FFDFD0');
	    Element.setStyle(element,'border-color: #D77E7E');
	    Element.setStyle(element,'border-width: 1px 1px 1px 1px;');
    }
   });
}

/**
 * Scriptaculous Droppables.add for the media bag
 */

if (document.getElementById('media-bag-droppable'))
{
	Droppables.add('media-bag-droppable',{accept:['big-thumb'],
	onDrop:function(draggable,droppable)
	{
		var droppable_content = $('media-bag-droppable').innerHTML;
		
		if ((media_bag_media_number < media_bag_maximum_media) || (media_bag_maximum_media == 0))
		{
			if (!droppable_content.include(draggable.id))
			{
				var pars_media_id = draggable.id;
				pars_media_id = pars_media_id.gsub('media_', '');
				
				var pars = 'media_bag_element_id='+media_bag_element_id+'&media_bag_element_type='+media_bag_element_type+'&media_id='+pars_media_id;
				
				new Ajax.Request(media_bag_url,{method:'post',parameters:pars,
				onSuccess:function(transport)
				{
					if (transport.responseText != 0 && transport.responseText != null)
					{
						media = transport.responseText;
						Insertion.Bottom(droppable,media);
						media_bag_media_number = (media_bag_media_number + 1);
					}
					else
					{
					
					}
				},
				onFailure:function()
				{
					alert('error');
				}
				});
			}
			else
			{
				alert(media_error_exist);
			}
		}
		else
		{
			alert(media_error_maximum);
		}
	}
	});
}
