jQuery(document).ready(function() {
	document.getElementById('sendMailToFriendTitle').style.display='none';
	
	jQuery(function() {
		var object=jQuery("#sendMailContainer").dialog({
			title:document.getElementById("sendMailToFriendTitle").innerHTML,
			autoOpen:false,
			bgiframe: true,
			modal: true,
			draggable: false,
			resizable: false,
			dialogClass: 'sendMailDialog',
			width:450,

			buttons: {
				Envoyer: function() {
					if(controlSendMail()) {
						sendMailToFriend();
					}
				},
				Annuler: function() {
					jQuery(this).dialog('close');
				}
			}
		});
	});
	
	
	var imageCopyright = document.getElementById("imageCopyright");
	
	if (imageCopyright)
	{
		copyrightText = jQuery("#imageCopyright > div > span");
		
		copyrightText.hide();
		
		jQuery(imageCopyright).mouseenter(function()
		{
			copyrightText.show();
		});
		
		jQuery(imageCopyright).mouseleave(function()
		{
			copyrightText.hide();
		});
	}
	
	var articleContent = document.getElementById("articleContent");
	var pageLength = 2250;
	
	if (articleContent)
	{
		articleText = articleContent.innerHTML.replace(/\n?<br ?\/?>/ig, "\n");
		
		if (articleText.length > 2 * pageLength)
		{
			var articlePages = new Array();
			
			var breakableMarkups = new Array("div", "p", "ul", "b", "u", "i", "em", "strong");
			breakableMarkups = " " + breakableMarkups.join(" ") + " ";
			var endSentenceCaracteres = new Array(".", "!", "?", "\n");
			var openMarkups = new Array();
			
			var currentPageLength, currentPageCursor, nextMarkupPosition, nextSpace, nextMarkupEnd, endMarkupType,
				markupType, markupDefinition, pageTextSuffix, articleTextPrefix, sentenceEnd, potentialSentenceEnd;

			while (articleText.length)
			{
				currentPageCursor = 0;
				do
				{
					if (articleText.length < pageLength) pageLength = articleText.length;
					
					sentenceEnd = articleText.length;
					for (var i = 0; i < endSentenceCaracteres.length; ++i)
					{
						potentialSentenceEnd = articleText.indexOf(endSentenceCaracteres[i], pageLength) + 1;
						if (potentialSentenceEnd && (potentialSentenceEnd < sentenceEnd)) {
							sentenceEnd = potentialSentenceEnd;
						}
					}
					currentPageLength = sentenceEnd;
					
					nextMarkupPosition = articleText.indexOf("<", currentPageCursor);
					
					if ((nextMarkupPosition > -1) && (nextMarkupPosition <= currentPageLength))
					{
						nextSpace = articleText.indexOf(" ", nextMarkupPosition);
						if (nextSpace == -1) nextSpace = articleText.length;
						nextMarkupEnd = articleText.indexOf(">", nextMarkupPosition);
						if (nextMarkupEnd == -1) nextMarkupEnd = articleText.length;
						
						if (nextSpace < nextMarkupEnd) {
							endMarkupType = nextSpace;
						}
						else {
							endMarkupType = nextMarkupEnd;
						}
						
						if (articleText.charAt(nextMarkupPosition + 1) == "/")
						{
							markupType = articleText.substring(nextMarkupPosition + 2, endMarkupType);
							openMarkups.pop();
						}
						else
						{
							markupType = articleText.substring(nextMarkupPosition + 1, endMarkupType);
							
							if (breakableMarkups.indexOf(" " + markupType + " ") == -1)
							{
								endMarkupType = articleText.indexOf(">", articleText.indexOf("</" + markupType, nextMarkupPosition + 1));
							}
							else
							{
								markupDefinition = articleText.substring(nextMarkupPosition + 1, nextMarkupEnd);
								openMarkups.push(markupDefinition);
							}
						}
						
						currentPageCursor = endMarkupType + 1;
					}
					else
					{
						currentPageCursor = currentPageLength;
					}
				} while (currentPageCursor < currentPageLength);
				
				pageTextSuffix = '';
				articleTextPrefix = '';
				for (var i = openMarkups.length; i--;)
				{
					nextSpace = openMarkups[i].indexOf(" ");
					if (nextSpace > -1) {
						markupType = openMarkups[i].substring(0, nextSpace);
					}
					else {
						markupType = openMarkups[i];
					}
					
					if (articleText.substr(currentPageCursor, markupType.length + 3) == "</" + markupType + ">")
					{
						currentPageCursor += markupType.length + 3;
					}
					else
					{
						pageTextSuffix += "</" + markupType + ">";
						articleTextPrefix = "<" + openMarkups[i] + ">" + articleTextPrefix;
					}
				}
				openMarkups = new Array();
				
				articlePages.push(articleText.substr(0, currentPageCursor).replace(/\n/g, "\n<br />") + pageTextSuffix);
				articleText = articleTextPrefix + articleText.substring(currentPageCursor).replace(/(^\s*)|(\s*$)/g, '');
			}

			var paginationItemListTemplate = document.getElementById("articleContentPaginationList").removeChild(document.getElementById("articleContentPaginationTemplate"));
			for (var i = 0; i < articlePages.length; ++i)
			{
				var container = document.createElement("div");
				container.setAttribute("id", "articleContentPagination" + (i + 1));
				container.style.display = "none";
				container.innerHTML = articlePages[i];
				
				document.getElementById("article").appendChild(container);
				
				var paginationItemList = paginationItemListTemplate.cloneNode(false);
				if (!i) paginationItemList.className = "active";
				paginationItemList.innerHTML = '<a href="#article" onclick="paginate(' + (i + 1) + ');">' + (i + 1) + '</a>';
				document.getElementById("articleContentPaginationList").insertBefore(paginationItemList, document.getElementById("articleContentPaginationNext"));
			}
			document.getElementById("articleContentPaginationNext").innerHTML = '<a href="#article" onclick="paginate(\'next\');">' + document.getElementById("articleContentPaginationNext").innerHTML + '</a>';
			document.getElementById("articleContentPaginationBlock").style.display = '';
			
			paginate = function(page)
			{
				if (refreshDynamicBlocks) {
					refreshDynamicBlocks();
				}
				items = document.getElementById("articleContentPaginationList").getElementsByTagName("li");
				if ((page == "previous") || (page == "next"))
				{	
					for (var i = 1; i < items.length - 1; ++i)
					{
						if (items[i].className == "active")
						{
							if (page == "previous") {
								page = i - 1;
							}
							else {
								page = i + 1;
							}
						}
					}
				}
				
				document.getElementById("articleContent").innerHTML = document.getElementById("articleContentPagination" + page).innerHTML;
				
				for (var i = 1; i < items.length - 1; ++i)
				{
					if (i == page) {
						items[i].className = "active";
					}
					else {
						items[i].className = '';
					}
				}
				
				var previousItem = document.getElementById("articleContentPaginationPrevious");
				if (page == 1)
				{
					previousItem.innerHTML = previousItem.getElementsByTagName("a")[0].innerHTML;;
					previousItem.className = "previousDisabled";
				}
				else if (!previousItem.getElementsByTagName("a").length)
				{
					previousItem.innerHTML = '<a href="#article" onclick="paginate(\'previous\');">' + previousItem.innerHTML + '</a>';
					previousItem.className = "previous";
				}
				
				var nextItem = document.getElementById("articleContentPaginationNext");
				if (page == items.length - 2)
				{
					nextItem.innerHTML = nextItem.getElementsByTagName("a")[0].innerHTML;
					nextItem.className = "nextDisabled";
				}
				else if (!nextItem.getElementsByTagName("a").length)
				{
					nextItem.innerHTML = '<a href="#article" onclick="paginate(\'next\');">' + nextItem.innerHTML + '</a>';
					nextItem.className = "next";
				}
			}
			
			document.getElementById("articleContent").innerHTML = articlePages[0];
		}
	}
});

function printArticle(URL)
{
	window.open(URL, "_blank", "toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=1,width=740");
}
