String.prototype.isValidMail = function() 
{
	var r = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i");
	return r.test(this);
//	return /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i.test(this);
};
String.prototype.reverse = function()
{
	return this.split("").reverse().join("");
};
String.prototype.isValidUrl = function()
{
	return /^(ht|f)tp(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i.test(this);
};
String.prototype.utf8Encode = function()
{
	var string = this.replace(/\r\n/g, "\n");
	var utftext = "";
	
	for (var n = 0; n < string.length; n++) 
	{			
		var c = string.charCodeAt(n);
	
		if (c < 128) 
		{
			utftext += String.fromCharCode(c);
		} 
		else if ((c > 127) && (c < 2048)) 
		{
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		} 
		else 
		{
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}
	}
	
	return utftext;
};
String.prototype.utf8Decode = function()
{
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;
	
	while ( i < this.length ) 
	{		
		c = this.charCodeAt(i);
		
		if (c < 128) 
		{
			string += String.fromCharCode(c);
			i++;
		} 
		else if ((c > 191) && (c < 224)) 
		{
			c2 = this.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else 
		{
			c2 = this.charCodeAt(i + 1);
			c3 = this.charCodeAt(i + 2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}			
	}
	
	return string;
};

var oAlert = alert;
function alert(txt, title, func) 
{
    try 
    {
        jAlert(txt, title, func);
    }
    catch (e) 
    {
        oAlert(txt);
    }
};
var oConfirm = confirm;
function confirm(txt, title, func) 
{
    try 
    {
        jConfirm(txt, title, func);
    }
    catch (e) 
    {
        if (oConfirm (txt, title)) func();
    }
};
var oPrompt = prompt;
function prompt(txt, input, title, func)
{
    try 
    {
        jPrompt(txt, input, title, func);
    } 
    catch(e) 
    {
        func(prompt(txt, input, title));
    }
};
var blfocDefaults = [];
$.alerts.overlayOpacity = .5;
var loading_screen = true;


function verify_impl(data)
{
	if (data != null)
	{
		if (data.file != null)
		{
			window.location.href = data.file;
		}
		else if (data.flipbook != null)
		{
			$("#flipbookdialog")
				.empty()
				.html('<iframe id="modalIframeId" width="100%" height="100%" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="auto" />')
				.dialog(
				{
					bgiframe: true,
					modal: true,
					width: 920,
					height: 690,
					resizable: false,
					title: data.title
				}).dialog('open');
			$('#ui-dialog-title-flipbookdialog').html(data.title);
			$('#modalIframeId').attr('src', data.flipbook);
		}
		else if (data.type == 'error')
		{
			switch (data.code)
			{
				case 'invalide-file':
					alert("Une erreur a été détectée.", "Erreur");
					break;
				case 'no-auth':
					alert("Cet article est payant.\nVeuillez vous connecter à votre compte ou en créer un.", "Erreur", function() { window.location = "http://www.jvmagazine.be/account/index/subscription"; });
					break;
				case 'no-right':
					var conf = "Cet article coûte " + data.price + " crédits." +
							"\nIl vous reste " + data.credits + " crédits.";
					
					if (data.credits < data.price)
					{
						conf += "\nVoulez-vous vous rendre sur la page d'achat de crédits ?";
						var buy = function(resp)
						{
							if (resp)
							{
								window.location.href = "/account/index/buy-credits";
							}
						};
					}
					else
					{
						conf += "\nVoulez-vous acheter cet article ?";
						var buy = function(resp)
						{
							if (resp)
							{
								$.getJSON(data.url + "/buy/true", { url: encodeURIComponent(data.url) }, verify_impl);
								$('#user_credits').html(data.credits - data.price);
							}
						};
					}
					
					confirm(conf, "Article payant", buy);
					break;
			}
		}
		else
		{
			alert("Une erreur s'est produite.\nSi le problème persiste, veuillez contacter le support", 'Erreur');
		}			
	}
	else
	{
		alert("Une erreur s'est produite.\nSi le problème persiste, veuillez contacter le support", 'Erreur');
	}
}

function verify()
{			
	loading_screen = false;
	var url = $(this).attr('href');
	$.getJSON(url, { url: encodeURIComponent(url) }, verify_impl);
	return false;
};

$().ready(function()
{
	if (self.navigator.userAgent.indexOf('Chrome') != -1)
	{
		$('div#sommaire div.content p.imga a').css('margin-top', 10);
	}
	$('span.codedirection').each(function(i)
	{
		var email = new String($(this).html());
		return $(this).html('<a href="mailto:' + email.reverse() + '" rel="nofollow">' + email + '</a>');
	});
	
	$('.blfoc').blur(function()
	{
		if ($(this).val() == '') 
			$(this).val(blfocDefaults[$(this).attr('name')]);
	}).focus(function() 
	{
		if ($(this).val() == blfocDefaults[$(this).attr('name')]) 
			$(this).val('');
	}).each(function()
	{
		blfocDefaults[$(this).attr('name')] = $(this).val();
	});
	
	$('.dropshadow').shadowify();
	//$('div.news, .boxitem, .pub').shadowify({ vertical: 3, horizontal: 3, fade: 6 });
	
	$(".datepicker, .datebirthpicker").attr('autocomplete', 'off');
	$(".datepicker").datepicker(
	{ 
		dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
		dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Décembre'],
		monthNamesShort: ['Jan','Fev','Mar','Avr','Mai','Jun','Jul','Aou','Sep','Oct','Nov','Dec'],
		dateFormat: 'dd-mm-yy',
		changeMonth: true,
		changeYear: true
	});
	$(".datebirthpicker").datepicker(
	{ 
		dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
		dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Décembre'],
		monthNamesShort: ['Jan','Fev','Mar','Avr','Mai','Jun','Jul','Aou','Sep','Oct','Nov','Dec'],
		dateFormat: 'dd-mm-yy',
		changeMonth: true,
		changeYear: true,
		yearRange: '-100:0',
		maxDate: new Date()
	});
	
	$(".modal").dialog(
	{
		bgiframe: true,
		height: 400,
		modal: true
	});
	$('.multiselect').multiSelect({ oneOrMoreSelected: '*', selectAll: false, noneSelected: '--- Choix ---' });

	var loader = jQuery('<div id="loader"><img src="/medias/images/loading.gif" alt="Chargement..." /><br/>Chargement en cours</div>')
		.css({paddingTop: "250px", position: "absolute", zIndex: 99998, top: "0", left: "0", width: "100%", height: $(document).height(), background: '#FFF', opacity: .5, textAlign: "center"})
		.appendTo("body")
		.hide();
	$().ajaxStart(function() 
	{
		if (loading_screen) loader.show();
	}).ajaxStop(function() 
	{
		if (loading_screen) loader.hide();
	}).ajaxError(function(a, b, e) 
	{
		throw e;
	});
	$('span.feuille a, .download a').click(verify);
	$('label.required').each(function() 
	{
		$(this).find('span').html($(this).find('span').html() + ' <em style="color: red">*</em>');
	});
});
$.validator.addMethod("valueRequired", function(value, element) 
{
	return $(element).val() != "null";
}, "Ce champ est obligatoire");
var pagecontent = null;
var speed = 'slow';
var easing = 'linear';	
function up()
{
	if (pagecontent != null)
	{
		$('#sommaire').empty()
			.html(pagecontent)
			.css('margin-top', $('#tsommaire').position().top + $('#tsommaire').innerHeight())
			.ready(scip);
		$('.dropshadow').shadowify();
		$('#loader p').hide();
		$('#sommaire').animate(
		{
			marginTop: 0
		}, speed, easing);
	}
	else
	{
		setTimeout(up, 500);
	}
};
function left()
{
	if (pagecontent != null)
	{
		$('#sommaire').empty()
			.html(pagecontent)
			.css('margin-left', -$('#tsommaire').innerWidth())
			.ready(scip);
		$('.dropshadow').shadowify();
		$('#loader p').hide();
		$('#sommaire').animate(
		{
			marginLeft: 0
		}, speed, easing);
	}
	else
	{
		setTimeout(left, 500);
	}
};
function right()
{
	if (pagecontent != null)
	{
		$('#sommaire').empty()
			.html(pagecontent)
			.css('margin-left', $('#tsommaire').innerWidth() * 2)
			.ready(scip);
		$('.dropshadow').shadowify();
		$('#loader p').hide();
		$('#sommaire').animate(
		{
			marginLeft: 0
		}, speed, easing);
	}
	else
	{
		setTimeout(right, 500);
	}
};
function down()
{
	if (pagecontent != null)
	{
		$('#sommaire').empty()
			.html(pagecontent)
			.css('margin-top',  - $('#tsommaire').innerHeight())
			.ready(scip);
		$('.dropshadow').shadowify();
		$('#loader p').hide();
		$('#sommaire').animate(
		{
			marginTop: 0
		}, speed, easing);
	}
	else
	{
		setTimeout(down, 500);
	}
};
function slide(direction, url)
{
	
	$('#loader p').show();
	url = url.replace("magazine", "sommaire");
	url = url.replace("article", "sarticle");
	url = url.replace("categorie", "scategorie");
	url = url.replace("anciens-numeros", "sanciens-numeros");
	url = url.replace("hors-series", "shors-series");
	url = url.replace("actus", "sactus");
	url = url.replace(/.*\/search$/, "/search/index/ssearch");
	pagecontent = null;
	
	$('#comments').hide();
	
	$.get(url, function(data)
	{
		pagecontent = data;
	});
	if (direction == 'up')
	{
		$('#sommaire').animate(
		{
			marginTop: - $('#tsommaire').innerHeight()
		}, speed, easing, up);
	}
	else if (direction == 'down')
	{
		$('#sommaire').animate(
		{
			marginTop: $('#tsommaire').position().top + $('#tsommaire').innerHeight()
		}, speed, easing, down);
	}
	else if (direction == 'right')
	{
		$('#sommaire').animate(
		{
			marginLeft: - $('#tsommaire').innerWidth()
		}, speed, easing, right);
	}
	else if (direction == 'left')
	{
		$('#sommaire').animate(
		{
			marginLeft: $('#tsommaire').innerWidth() * 2
		}, speed, easing, left);
	}
	var u = url;
	if (u.indexOf('prev') != -1)
	{
		u = u.substring(0, u.indexOf('prev'));
	}
	var showBg = u.indexOf('ssearch') == -1 && u.indexOf('scategorie') == -1 && u.indexOf('shors-series') == -1 && u.indexOf('sanciens-numeros') == -1;
	$('#tsommaire').css('background', showBg ? 'url(/medias/images/magazine-sommaire-bg.jpg) repeat-x 0px 0px' : 'none');
	/*
	if (! showBg)
	{
		//$('#sommaire').css('overflow', 'hidden').css('overflow-y', 'auto').css('overflow-x', 'hidden');
	}
	else
	{
		if (u.indexOf('ssearch') != -1 || u.indexOf('scategorie') != -1)
			$('#sommaire').css('overflow', 'hidden');
		//if ()
			//$('#sommaire').css('overflow', 'hidden');
		
		
		//	&& u.indexOf('shors-series') == -1 && u.indexOf('sanciens-numeros') == -1;
	}*/
};
function show_comments()
{
	var url = $(this).attr('href');
	url = url.replace('comments', 'scomments');
	$.get(url, function(data)
	{
		$('#comments').slideUp().empty().html(data).slideDown().ready(scip);
	});
	return false;
};
function delete_comment()
{
	var reg = new RegExp(".*id\/([0-9]+)\/article\/([0-9]+)\/.*");
	var m = reg.exec($(this).attr('href'));
	if (m != null) 
	{
		var comment = m[1];
		var article = m[2];
		
		$.getJSON('/admin/article/sdelete-comment/id/' + comment + '/numero/' + article, function(data)
		{
			$(data.id).slideUp('slow').remove();
			$('.scomments').html('Commentaires (' + data.count + ')');
		});
	}
	return false;
};
function save_comment()
{
	var btn = $(this);
	
	btn.attr('disabled', 'disabled');
	var reg = new RegExp(".*\/article\/([0-9]+)\/.*");
	var m = reg.exec($(this).parents('form').attr('action'));
	if (m != null) 
	{
		var article = m[1];
		var content = $('#content_text').val();
		
		$.post('/default/article/sadd-comment/',
				{
					article: article,
					content: content
				},
				function(data)
				{
					if ($('#comments').find('.comment').length == 0)
					{
						$('#comments #redac').before(data);
					}
					else
					{
						$('#comments .comment:first-child').before(data);
					}
					$('#content_text').val("");
					btn.removeAttr('disabled');
				}
		);
	}
	return false;
};
function share_facebook()
{
	window.open($(this).attr('href'), 'sharer', 'toolbar=0,status=0,width=626,height=436');
	return false;
};
function scip()
{
	$('.previous a').click(function()
	{
		slide('up', $(this).attr('href'));
		return false;
	});
	$('.next a').click(function()
	{
		slide('down', $(this).attr('href'));
		return false;
	});
	$('a.art, .view a').click(function()
	{
		slide('right', $(this).attr('href'));
		return false;
	});
	$('a.ret_mag').click(function()
	{
		slide('left', $(this).attr('href'));
		return false;
	});

	if (self.navigator.userAgent.indexOf('Chrome') != -1)
	{
		$('div#sommaire div.content p.imga a').css('margin-top', 10);
	}
	$('.img a, .imga a').click(verify);
	$('.scomments').click(show_comments);
	$('a.del').click(delete_comment);
	$('#save_comment').click(save_comment);
	$('#comments').hide();
	$('.facebook').click(share_facebook);
	$('.twitter').attr('onclick', 'target="_blank"');
};