/////////////////////////////////////
//	MORE LINK
/////////////////////////////////////

var morelink_xml = new Array (0, 0, 0);
var morelink_xmlPos = new Array (1, 1, 1);
var morelink_xmlLoaded = new Array (0, 0, 0);

var morelink_noAction = 0;

var morelink_focus = new Array (3, 3, 3);

var morelink_cat;
var morelink_order;
var morelink_page;
var morelink_tempDir;
var morelink_lastDir = new Array (1, 1, 1);

function morelink_zap (dir, force){
	if (morelink_noAction == 1 && !force){
		return;
	}
	
	var oldFocus = morelink_focus[morelink_tab];
	
	morelink_noAction = 1;
	
	if (morelink_xmlLoaded[morelink_tab] == 0){
		morelink_tempDir = dir;
		morelink_getLinks (morelink_cat, morelink_order, 1);
		return;
	}
	
	if (dir == 1){
		if (morelink_focus[morelink_tab] == 3){ // < 4
			morelink_noAction = 0;
			return;
		}else
		if (morelink_lastDir[morelink_tab] == 1){
			morelink_xmlPos[morelink_tab] -= 4;
			morelink_focus[morelink_tab] -= 4;
		}else{
			morelink_xmlPos[morelink_tab] -= 9;
			morelink_focus[morelink_tab] -= 4;
			
			if (morelink_focus[morelink_tab] < 3){
				morelink_xmlPos[morelink_tab] = 1;
				morelink_focus[morelink_tab] = 3;
			}
		}
	}else{
		if (morelink_lastDir[morelink_tab] == 0){
			morelink_xmlPos[morelink_tab] += 4;
			morelink_focus[morelink_tab] += 4;
		}else{
			morelink_xmlPos[morelink_tab] += 9;
			morelink_focus[morelink_tab] += 4;
		}
	}
	
	//~ alert (morelink_focus[morelink_tab]);
	
	$('more_link_inside_'+[morelink_tab]).style.width = '1008px';
	
	if (dir != 0){
		$('more_link_inside_'+[morelink_tab]).style.left = '-448px';
	}
	
	if (dir == 0){
		for (var tempFocus = oldFocus; tempFocus < morelink_focus[morelink_tab]; tempFocus ++){
			if (!itemExists (morelink_xml[morelink_tab], tempFocus)){
				morelink_tempDir = dir;
				morelink_getLinks (morelink_cat, morelink_order, tempFocus);
				return;
			}
			
			morelink_lastDir[morelink_tab] = dir;
			
			//~ alert ('direction='+dir+' morelink_xmlPos[morelink_tab]='+morelink_xmlPos[morelink_tab]);
			
			Element.insert ($('more_link_inside_'+[morelink_tab]), {'bottom' : morelink_createLink (tempFocus)});
		}
	}else{
		for (var tempFocus = oldFocus; tempFocus > morelink_focus[morelink_tab]; tempFocus --){
			if (!itemExists (morelink_xml[morelink_tab], tempFocus)){
				morelink_tempDir = dir;
				morelink_getLinks (morelink_cat, morelink_order, tempFocus);
				return;
			}
			
			morelink_lastDir[morelink_tab] = dir;
			
			//~ alert ('direction='+dir+' morelink_xmlPos[morelink_tab]='+morelink_xmlPos[morelink_tab]);
			
			Element.insert ($('more_link_inside_'+[morelink_tab]), {'top' : morelink_createLink (tempFocus)});
		}
	}
	
	
	if (dir == 0){
		new Effect.Move ($('more_link_inside_'+[morelink_tab]), {
			x : -448,
			y : 0,
			duration: 1.2,
			afterFinish: function (){
				$('more_link_inside_'+[morelink_tab]).style.left = '0';
				
				while ($('more_link_inside_'+[morelink_tab]).getElementsByTagName('li').length > 5){
					$('more_link_inside_'+[morelink_tab]).down(0).remove ();
				}
				
				$('more_link_inside_'+[morelink_tab]).style.width = '560px';
				morelink_noAction = 0;
			}
		});
	}else{
		new Effect.Move ($('more_link_inside_'+[morelink_tab]), {
			x : 448,
			y : 0,
			duration: 1.2,
			afterFinish: function (){
				$('more_link_inside_'+[morelink_tab]).style.left = '0';
				
				while ($('more_link_inside_'+[morelink_tab]).getElementsByTagName('li').length > 5){
					$('more_link_inside_'+[morelink_tab]).down(0).next(4).remove ();
				}
				
				$('more_link_inside_'+[morelink_tab]).style.width = '560px';
				morelink_noAction = 0;
			}
		});
	}
}


function morelink_move (e, L){
	e.style.margin = -1 * L;
	morelink_move_callback (e, 1);
}

function morelink_move_callback (e, t){
	e.style.margin = e.style.margin - 1;
	
	if (e.style.margin != 0){
		setTimeout (function (){ morelink_move_callback(e,t);}, 200);
	}
}

function morelink_getLinks (cat, order, page){
	new Ajax.Request (ROOT_PATH+'ajax/bloc_more-link.php', {
		method : 'post',
		parameters : 'cat='+cat+'&order='+order+'&p='+page,
		onComplete : morelink_getLinks_callback
	});
}

function morelink_getLinks_callback (xhr){
	//~ alert ('load XML');
	
	morelink_xml[morelink_tab] = xhr.responseXML;
	
	if (morelink_xmlPos[morelink_tab] > 10){
		morelink_xmlPos[morelink_tab] = XMLcount (morelink_xml[morelink_tab]) - 31;
	}else{
		morelink_xmlPos[morelink_tab] --;
	}
	
	morelink_xmlLoaded[morelink_tab] = 1;
	
	morelink_zap (morelink_tempDir, 1);
}

function morelink_createLink (n){
	var li = new Element ('li', {
		'class' : 'bloc_link'
	});
	
	var a = new Element ('a', {
		'href' : XMLresult (morelink_xml[morelink_tab], n, 'link')
	});
	
	var img = new Element ('img', {
		'src' : XMLresult (morelink_xml[morelink_tab], n, 'img'),
		'alt' : XMLresult (morelink_xml[morelink_tab], n, 'title'),
		'title' : XMLresult (morelink_xml[morelink_tab], n, 'title'),
		'class' : 'cat-'+XMLresult (morelink_xml[morelink_tab], n, 'cat')
	});
	
	var span = new Element ('span', {
		'class' : 'desc_link'
	}).update (XMLresult (morelink_xml[morelink_tab], n, 'title'));
	//~ }).update (n);
	
	Element.insert (a, img);
	Element.insert (a, span);
	Element.update (li, a);
	
	return li;
}

function displayMoreLink(div)
{
	var tabType = Array('date','view','save');
	
	if ($('more_link_date'))
	{
		morelink_order = div;
		
		for(var i=0; i < 3; i++)
		{
			if(div == tabType[i])
			{
				morelink_tab = i;
				
				$('more_link_'+tabType[i]).style.display = 'block';
				$('more_link_class_'+tabType[i]).className = 'focus_on';
			}
			else
			{
				$('more_link_'+tabType[i]).style.display = 'none';
				$('more_link_class_'+tabType[i]).className = 'focus_off';
			}
		}
	}
}


/////////////////////////////////////
//	COMPTAGE DE LIENS
/////////////////////////////////////

function trackLink (id){
	new Ajax.Request (ROOT_PATH+'ajax/count-link.php', {
		method : 'post',
		parameters : 'id='+id
	});
}

function initTrackLink(id)
{
	Event.observe ($('capture_200x153'), 'click', function () { trackLink(id); });	
	Event.observe ($('description_link'), 'click', function () { trackLink(id); });
}



/////////////////////////////////////
//	AJOUTER A VOS FAVORIS
/////////////////////////////////////

function display_updateFavori (action)
{
	if(action == 'add')
	{
		$('add_favori').style.display = 'block';
		$('delete_favori').style.display = 'none';
	}
	else
	{
		$('add_favori').style.display = 'none';
		$('delete_favori').style.display = 'block';
	}
}

function link_updateFavori (user_id, link_id, action)
{
	new Ajax.Request (ROOT_PATH+'ajax/bloc_link.php',
			{
				method 		 : 'post',
				parameters : 'user_id='+user_id+'&link_id='+link_id+'&action='+action,
				onComplete : function()
										 {
												if(action == 'add')
												{
													new Effect.Appear($('add_favori'), {duration:0.5, fps:25, from:1.0, to:0.0,
																							afterFinish: function()
																							{
																								$('add_favori').style.display = 'none';
																								new Effect.Appear($('delete_favori'), {duration:0.5, fps:25, from:0.0, to:1.0});
																							}});
												}
												else
												{
													new Effect.Appear($('delete_favori'), {duration:0.5, fps:25, from:1.0, to:0.0,
																							afterFinish: function()
																							{
																								$('delete_favori').style.display = 'none';
																								new Effect.Appear($('add_favori'), {duration:0.5, fps:25, from:0.0, to:1.0});
																							}});
												}
										 }
			});
}




/////////////////////////////////////
//	ENVOYER A VOS AMIS
/////////////////////////////////////

function link_displaySendFriend (action)
{
	if(action == 'form')
	{
		$('form_envoi_ami').style.display = 'block';
		$('link_envoi_ami').style.display = 'none';
		$('sendfriend_email').focus();
	}
	else
	{
		$('form_envoi_ami').style.display = 'none';
		$('link_envoi_ami').style.display = 'block';
	}
}

function link_sendFriend (action)
{
	var email = $('sendfriend_email').value;
	var titre = $('sendfriend_titre').value;
	var url	  = $('sendfriend_url').value;
	
	new Ajax.Request (ROOT_PATH+'ajax/bloc_link.php',
	{
		method 		 : 'post',
		parameters : 'email='+email+'&titre='+encodeURIComponent(titre)+'&url='+url+'&action='+action,
		onComplete : function(xhr)
		{
			retour = xhr.responseText.split('|');
			
			if($('ajax_message'))
			{
				Element.remove($('ajax_message'));
			}
			
			var newMessage = new Element('div', 
				{
					'id' : 'ajax_message',
					'class' : retour[1]
				}
			 ).update(retour[0]);
			
			$('ami_message_retour').appendChild(newMessage);
			
			Element.hide(newMessage);
			new Effect.BlindDown(newMessage, {duration:0.5});
			
			timer = window.setTimeout('removeMessage()', 5000);
			
			$('sendfriend_email').value = null;
			$('sendfriend_email').focus();
		}
	});
}

function removeMessage()
{
	new Effect.Appear($('ajax_message'), {duration:1, fps:25, from:1.0, to:0.0});
	window.clearTimeout(timer);
}




/////////////////////////////////////
//	MORE LINK
/////////////////////////////////////

var explicite_on = 0;

function explicite_register (link_id){
	if (explicite_on == 0){
		explicite_on = 1;
		
		var window = new Element ('div', {'id' : 'explicite'});
		window.insert (new Element ('strong', {
			'class' : 'close'
		}).observe ('click', explicite_close));
		window.insert (new Element ('h3').update ('Avertissement : contenu interdit aux mineurs'));
		window.insert (new Element ('p').update ('Pour voir le lien "' + $('description_link').innerHTML + '", vous devez &ecirc;tre enregistr&eacute;.'));
		window.insert (new Element ('img', {
			'class' : $('link_image').link_image,
			'class' : $('link_image').className,
			'src' : $('link_image').src
		}));
		
		var infos = new Element ('div', {
			'id' : 'explicite_form'
		});
		infos.insert (new Element ('h4').update ($('description_link').innerHTML));
		infos.insert (new Element ('hr'));
		infos.insert (new Element ('img', {
			'src' : ROOT_PATH + 'site/theme/ewebv3/media/image/explicite-register.gif',
			'class' : 'clickable'
		}).observe ('click', function (){
			document.location = ROOT_PATH + 'register/5';
		}));
		infos.insert (new Element ('span').update ('Pas encore membre?'));
		infos.insert (new Element ('span', {
			'class' : 'clear'
		}).update ('D&eacute;j&agrave; membre?'));
		infos.insert (new Element ('label').update ('Login :'));
		infos.insert (new Element ('input', {
			'id' : 'explicite_login'
		}).observe ('keydown', function (event){
			if (event.keyCode == 13){
				explicite_login (link_id);
			}
		}));
		infos.insert (new Element ('label').update ('Mot de passe :'));
		infos.insert (new Element ('input', {
			'id' : 'explicite_pass',
			'type' : 'password'
		}).observe ('keydown', function (event){
			if (event.keyCode == 13){
				explicite_login (link_id);
			}
		}));
		infos.insert (new Element ('img', {
			'src' : ROOT_PATH + 'site/theme/ewebv3/media/image/bt-ok.gif',
			'class' : 'clickable'
		}).observe ('click', function (){
			explicite_login (link_id);
		}));
		
		window.insert (new Element ('div', {
			'id' : 'explicite_loading'
		}).insert (infos));
		
		Insertion.Before($('master_container'), window);
		Element.hide (window);
		new Effect.Appear(window);
	
		window.scrollTo (0,0);
	}
}

function explicite_login (link_id){
	if ($('explicite_pass').value.length  && $('explicite_login').value.length != 0){
		new Effect.Appear($('explicite_form'), {
			from : 1,
			to : 0,
			duration : .3,
			afterFinish : function(){
				new Ajax.Request (ROOT_PATH+'ajax/login.php', {
					method : 'post',
					parameters : 'noRedirection=1&login_x=1&login-pseudo=' + $('explicite_login').value + '&login-pass=' + $('explicite_pass').value+ '&link_id=' + link_id,
					onComplete : explicite_login_callback
				});
			}
		});
	}else{
		alert ('Vous n\'avez pas rempli tous les champs');
	}
}

function explicite_login_callback (xhr){
	if (xhr.responseText == '0'){
		new Effect.Appear ($('explicite_form'), {
			from : 0,
			to : 1
		});
		
		alert ('Login ou mot de passe incorrecte');
	}else{
		window.open (xhr.responseText);
		
		document.location = document.location;
	}
}

function explicite_close (){
	explicite_on = 0;
	
	new Effect.Appear($('explicite'), {
		from : 1,
		to : 0, 
		afterFinish : function(){
			Element.remove($('explicite'));
		}
	});
}

function explicite_confirmation (link_id, user_login, user_id){
	if (explicite_on == 0){
		explicite_on = 1;
		
		var window = new Element ('div', {'id' : 'explicite'});
		window.insert (new Element ('strong', {
			'class' : 'close'
		}).observe ('click', explicite_close));
		window.insert (new Element ('h3').update ('Avertissement : contenu interdit aux mineurs'));
		window.insert (new Element ('p').update ('Pour voir le lien "' + $('description_link').innerHTML + '", vous devez &ecirc;tre majeur.'));
		window.insert (new Element ('img', {
			'class' : $('link_image').link_image,
			'class' : $('link_image').className,
			'src' : $('link_image').src
		}));
		
		var infos = new Element ('div', {
			'id' : 'explicite_form'
		});
		infos.insert (new Element ('h4').update ($('description_link').innerHTML));
		infos.insert (new Element ('hr'));
		infos.insert (new Element ('span').update ('Voulez-vous acc&eacute;der au site suivant ?'));
		infos.insert (new Element ('img', {
			'src' : ROOT_PATH + 'site/theme/ewebv3/media/image/explicite-confirm.gif',
			'class' : 'clickable left'
		}).observe ('click', function (){
			explicite_confirm (link_id);
		}));
		infos.insert (new Element ('img', {
			'src' : ROOT_PATH + 'site/theme/ewebv3/media/image/explicite-cancel.gif',
			'class' : 'clickable right'
		}).observe ('click', explicite_close));
		
		infos.insert (new Element ('p', {
			'class' : 'small'
		}).update (new Element ('a', {
			'href' : ROOT_PATH + user_login + '-' + user_id + '/settings'
		}).update ('Pour ne plus voir cet avertissement, &eacute;ditez vos pr&eacute;f&eacute;rences')));
		
		window.insert (new Element ('div', {
			'id' : 'explicite_loading'
		}).insert (infos));
		
		Insertion.Before($('master_container'), window);
		Element.hide (window);
		new Effect.Appear(window);
	
		window.scrollTo (0,0);
	}
}

function explicite_confirm (link_id){
	new Effect.Appear($('explicite_form'), {
		from : 1,
		to : 0,
		duration : .3,
		afterFinish : function(){
			new Ajax.Request (ROOT_PATH+'ajax/get_linkAddress.php', {
				method : 'post',
				parameters : 'link_id=' + link_id,
				onComplete : explicite_login_callback
			});
		}
	});
}

function explicite_confirm_callback (xhr){
	window.open (xhr.responseText);
	
	explicite_close ();
}