//////////////////////////////////////////////////////////////////////////////////////////////
//																	   //
// Scripts NPA par erwansims													   //
//																	   //
// Si vous souhaitez prendre une partie du code contenu dans ce fichier, veuillez d'abord m'en informer	   //
// sur MessLive (http://www.messlive.net)											   //
//																	   //
//////////////////////////////////////////////////////////////////////////////////////////////

var arr = new Array();
var sortable;
var enabled = false;
var mainZIndex = 0;
var galleryOpened = false;
var blockRightCliked;
var block;

window.addEvent('domready', function() {
	if($defined($('home_list')))
	{
		initGallery();
		$$('.center_block').addEvent('mouseenter', affrightmenu);
		$$('.center_block').addEvent('mouseleave', function() {
			if($defined($('mlnpa_rightmenu')))
			{
				$('mlnpa_rightmenu').fade(0);
			}
		});

		
		sortable = new Sortables('home_list', {
			clone: true,
			constrain: true,
			opacity: 0.25
		});

		sortable.addEvent('complete', updateCookie);
		
		sortable.detach();
		
		$$('.gallery_item').addEvent('mouseenter', function(e) {
			$$('.gallery_item').fade(0.5);
			$(e.target).fade(1);
		});
		
		$$('.gallery_item').addEvent('mouseleave', function(e) {
			$$('.gallery_item').fade(0.5);
		});
	}
});

function deleteBlock()
{
	block.dispose();
	
	updateCookie();
	
	location.reload();
}

function updateCookie()
{
	var ordre = new Array();
	$('home_list').getChildren().each(function(item) {
		if(item.get('id') != null && item.get('id').contains('block', '_'))
		{
			this.push(item.get('id'));
		}
		else
		{
			item.getChildren().each(function(item) {
				if(item.get('id') != null)
				{
					if(item.get('id').contains('block', '_'))
					{
						this.push(item.get('id'));
					}
				}
			}.bind(ordre));
		}
	}.bind(ordre));
	Cookie.write('home_list', ordre.join(','), {duration: 364});
}

//////////////////////////////////////////////////////////////////////////////////////////////
// Menu de contrôle des blocks												   //
//////////////////////////////////////////////////////////////////////////////////////////////

function affrightmenu(event)
{
	block = getElement(event.target, 'center_block', 'class');
	if($defined($('mlnpa_rightmenu')))
	{
		var pos = block.getCoordinates();
		$('mlnpa_rightmenu').morph({'left': pos.right, 'top': pos.top + 5});
		
		$('mlnpa_rightmenu').fade(.25);
		
		if(block.get('id') == '59_block')
		{
			$('mlnpa_del_img').setStyle('display', 'none');
		}
		else
		{
			$('mlnpa_del_img').setStyle('display', 'block');
		}
		
		if($defined($('blocksInutiles')))
		{
			$('mlnpa_gallery').setStyle('display', 'block');
		}
		else
		{
			$('mlnpa_gallery').setStyle('display', 'none');
		}
	}
	else
	{
		var element = new Element('div', {
			'id': 'mlnpa_rightmenu',
			'html': '<img src="images/cross_ok.png" style="margin: 1px 2px 2px 2px; display: block;" alt="" onclick="javascript: if(enabled == false) { sortable.attach(); enabled = true; this.src = \'images/cross_no.png\'; } else { sortable.detach(); enabled = false; this.src = \'images/cross_ok.png\'; }" /><img style="margin: 1px 2px 2px 4px; display: block;" id="mlnpa_gallery" src="images/plus.png" alt="" /><img style="margin: 1px 2px 2px 4px; display: block;" onclick="javascript: $(\'mlnpa_rightmenu\').setStyle(\'display\', \'none\'); deleteBlock();" id="mlnpa_del_img" src="images/big-del.png" alt="" />',
			'styles': {
				'background-color': '#4E5E77',
				'width': '21px',
				'position': 'absolute'
			},
			'events': {
				'mouseenter': function() {
					$('mlnpa_rightmenu').fade(.75);
				},
				'mouseleave': function() {
					$('mlnpa_rightmenu').fade(0);
				}
			}
		});
		
		element.set('morph', {duration: 'normal', transition: 'elastic:out'});
		
		element.fade('hide');
		
		var pos = block.getCoordinates();
		element.setStyles({'left': pos.right, 'top': pos.top + 5});
		
		$(document.body).grab(element);
		
		AddMLWSHtml($('mlnpa_gallery'));
		
		if(block.get('id') == '59_block')
		{
			$('mlnpa_del_img').setStyle('display', 'none');
		}
		else
		{
			$('mlnpa_del_img').setStyle('display', 'block');
		}
		
		if($defined($('blocksInutiles')))
		{
			$('mlnpa_gallery').setStyle('display', 'block');
		}
		else
		{
			$('mlnpa_gallery').setStyle('display', 'none');
		}
		
		element.fade(.25);
	}
}

/*var childrens = new Array("del_div", "Supprimer ce block", deleteBlock, "done_div", "Activer/Désactiver la modification de la page", toggleEnabled, "blocksGallery_div", "Afficher la galerie des blocks", );
if($defined($('blocksInutiles')))
{
	$('blocksGallery_div').setStyle('display', 'block');
}
else
{
	$('blocksGallery_div').setStyle('display', 'none');
}

*/

//////////////////////////////////////////////////////////////////////////////////////////////
// Galerie des blocks														   //
//////////////////////////////////////////////////////////////////////////////////////////////

function initGallery()
{
	var element = new Element('div', {
		'id': 'mlnpa_galleryContent',
		'html': '<div style="font-weight: bold; font-size: small;">Blocks disponibles</div><table style="margin: 10px;" cellpadding="5"><tr><td id="blocksGalleryBlocks" style="width: 128px; vertical-align: top;"></td><td id="blocksGalleryBlocksDescription" style="width: 184px; text-align: center;"><div style="text-align: center; margin-bottom: 10px;"><img src="images/blocks/defaultBlockImage.png" alt="" title="" /></div>Passez la souris sur un des titres de block afin d\'obtenir des informations dessus</td></table>',
		'styles': {
			'display': 'none'
		}
	});
	
	$(document.body).grab(element);
	
	updateGallery();
}

function updateGallery()
{
	if($defined($('blocksInutiles')))
	{
		if($('blocksInutiles').getChildren().length != 0)
		{
			$('blocksGalleryBlocks').empty();
			$('blocksInutiles').getChildren().each(function(item) {
				var element = new Element('div', {
					'id': item.get('id') + '_gallery',
					'class': 'gallery_item',
					'text': item.getFirst('.block_title').get('text'),
					'onmouseover': "javascript: $('blocksGalleryBlocksDescriptionMLWS').set('html', '<div style=\"text-align: center; margin-bottom: 10px;\"><img src=\"" + item.getFirst('.block_image').get('text') + "\" alt=\"\" title=\"\" /></div>" + item.getFirst('.block_description').get('html') + "');",
					'styles': {
						'padding': '2px',
						'width': '90%',
						'margin': 'auto',
					},
					'events': {
						'click': addBlock.bind(item),
					}
				});
				
				$('blocksGalleryBlocks').grab(element);
			});
			$$('.gallery_item').fade(0.5);
			// "javascript: alert(\"javascript: $('blocksGalleryBlocksDescription').set('html', '<img src=\\\"" + item.getFirst('.block_image').get('text') + "\\\" alt=\\\"\\\" title=\\\"\\\" /><br />" + item.getFirst('.block_description').get('html') + "');\");"
			// 
		}
		else
		{
			$('blocksInutiles').dispose();
		}
	}
}

function addBlock()
{
	$('home_list').adopt(this.getFirst('.block_content').getChildren());
	this.dispose();
	
	updateGallery();
	
	updateCookie();
	
	tb_remove();
}

//////////////////////////////////////////////////////////////////////////////////////////////
// Autres fonctions														   //
//////////////////////////////////////////////////////////////////////////////////////////////

function getElement(element, value, name)
{
	element = $(element);

	if(element.get('tag') == 'html' || element.get('tag') == 'body')
	{
		return false;
	}
	
	if(name == "")
	{
		name = 'class';
	}

	if(element.get(name) == value)
	{
		return element;
	}
	else if(element.getParent().get(name) == value)
	{
		return element.getParent();
	}

	var e = element.getParents().filter(function(item) { 
		if(item.get(name) == value)
		{
			return true;
		}
	})[0];
	
	if(e)
	{
		if(e.get(name) == value)
		{
			return e;
		}
	}
	
	return false;
}

function getCenter(element, affiched)
{
	if(affiched == true)
	{
		var size = new Array(element.getSize().x, element.getSize().y);
	}
	else
	{
		var size = new Array(element.getStyle('width').toInt() + element.getStyle('padding-left').toInt() + element.getStyle('padding-right').toInt(), element.getStyle('height').toInt() + element.getStyle('padding-top').toInt() + element.getStyle('padding-bottom').toInt());
	}
	
	return new Array(Math.round(((window.innerWidth || screen.availWidth )/ 2) - (size[0] / 2)), Math.round(((window.innerHeight || screen.availHeight) / 2) - (size[1] / 2)));
}

function somethingSelected()
{
	if(document.selection)
	{
		if(document.selection.createRange().text == "" || !document.selection.createRange().text)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else if(window.getSelection())
	{
		if(window.getSelection().toString() == "")
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}