function openPopUpExtract(url){
	window.open(url, "popup", "toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,width=850,height=500,dependent=yes,screenX=200,screenY=100,left=200,top=100");
}

function createRequest(mimetype){
	var request = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		request = new XMLHttpRequest();
		if (request.overrideMimeType) {
			request.overrideMimeType(mimetype);
		}
	} else if (window.ActiveXObject) { // IE
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!request) {
		alert('Abandon :( Impossible de créer une instance XMLHTTP');
		return false;
	}
	return request;
}

function sendRequest(request, url, typeaction, cible1, cible2){
	request.onreadystatechange = function() { processReqChangeGeneric(request, typeaction, cible1, cible2); };
	request.open('GET', url, true);
	request.send(null);
}


function processReqChangeGeneric(request, typeaction, cible1, cible2) {
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			if (typeaction=='innerHTML' && document.getElementById(cible1))
			{
				document.getElementById(cible1).innerHTML = request.responseText;
			}
			else if (typeaction=='Alert')
			{
				alert(request.responseText);
			}
			else if (typeaction=='Javascript')
			{
				eval(cible1);
			}
			else if (typeaction=='isLogged'){
				var tab = request.responseText.split(';');
				if( tab[0] == '1' ){
					document.getElementById('url_out').value		 		= document.URL;
					document.getElementById(cible1).innerHTML 				= '<p class="nsBonjour">Bonjour '+tab[1]+'</p>';
					document.getElementById(cible2).style.display 			= 'block';
					document.getElementById('identification').style.display = 'block';
				}else{
					document.getElementById('url').value				= document.URL;
					document.getElementById(cible1).style.display 			= 'block';
					document.getElementById(cible2).style.display 			= 'none';
					document.getElementById('identification').style.display = 'block';
				}
			}
			else if(typeaction=='loginAjax'){
				var tab = request.responseText.split(';');
				if( tab[0] == '0' ){
					document.getElementById(cible1).innerHTML = 'Mauvais pseudo/password';
				}
				else if( tab[0] == '1' ){
					var tab2 = tab[1].split('#');
					document.location.href = tab2[0];
				}
			}
			else if(typeaction=='wizBookTextInsert'){
				document.getElementById(cible1).innerHTML = request.responseText;
				displayWizBookTextList(0, '');
				displayWizBookArchiveList(0);
				formMessage('formMsg');
			}
			else if(typeaction=='wizBookTextUpdate'){
				document.getElementById(cible1).innerHTML = request.responseText;
				displayWizBookTextList(0, cible2);
				displayWizBookArchiveList(0);
				formMessage('formMsg');
			}
			else if(typeaction=='TextDoDelete'){
				document.getElementById(cible1).innerHTML = request.responseText;
				displayWizBookTextList(0, '');
				displayWizBookArchiveList(0);
				formMessage('formMsg');
			}
			else if(typeaction=='wizBookStory') {
				document.getElementById(cible1).innerHTML = request.responseText;
				$(function() {
					$('.nsWBHistoire').jScrollPane({scrollbarWidth:13, showArrows:true,dragMinHeight:0,dragMaxHeight:45});
				});
			}
		}
		else
		{

		}
		request.abort();
		request=null;
		request=false;
	}
}

function displayComments(bookid, page, path){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=display_comments_ajax&bookid='+escape(bookid)+'&page='+escape(page), 'innerHTML', 'bloc_bas', '');
	changeNavStyle('1');
	if(path && path!='') {
		// SWFAddress.setTitle(formatTitle(path));
		SWFAddress.setValue(path);
	}
}

function displayFullComment(commentid, page){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=display_full_comment_ajax&commentid='+escape(commentid)+'&page='+escape(page), 'innerHTML', 'bloc_bas', '');
}

function displayRatings(bookid, page, path){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=display_ratings_ajax&bookid='+escape(bookid)+'&page='+escape(page), 'innerHTML', 'bloc_bas', '');
	changeNavStyle('3');
	if(path && path!='') {
		// SWFAddress.setTitle(formatTitle(path));
		SWFAddress.setValue(path);
	}
}

function displayRatingForm(bookid, path){
	var tab = document.location.href.split('#');
	var dest = tab[0]+'#'+path;
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=rating_form_ajax&bookid='+escape(bookid)+'&dest='+encode64(dest), 'innerHTML', 'bloc_bas', '');
	changeNavStyle('4');
	if(path && path!='') {
		// SWFAddress.setTitle(formatTitle(path));
		SWFAddress.setValue(path);
	}
}

function displayCommentForm(bookid, path){
	var tab = document.location.href.split('#');
	var dest = tab[0]+'#'+path;
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=comment_form_ajax&bookid='+escape(bookid)+'&dest='+encode64(dest), 'innerHTML', 'bloc_bas', '');
	changeNavStyle('2');
	if(path && path!='') {
		// SWFAddress.setTitle(formatTitle(path));
		SWFAddress.setValue(path);
	}
}
function displayRecommandationForm(bookid, path){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=recommandation_form_ajax&bookid='+escape(bookid), 'innerHTML', 'bloc_bas', '');
	changeNavStyle('5');
	if(path && path!='') {
		// SWFAddress.setTitle(formatTitle(path));
		SWFAddress.setValue(path);
	}
}

function displayLinksList(bookid, page, path){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=links_list_ajax&bookid='+escape(bookid)+'&page='+escape(page), 'innerHTML', 'bloc_bas', '');
	changeNavStyle('6');
	if(path && path!='') {
		// SWFAddress.setTitle(formatTitle(path));
		SWFAddress.setValue(path);
	}
}

function changeNavStyle(indice){
	for(var i=1; i<=6; i++){
		if(i==indice){
			document.getElementById('navAvis'+i).className = 'courant';
		}
		else if(document.getElementById('navAvis'+i)) {
			document.getElementById('navAvis'+i).className = '';
		}
	}
}

function sendRating(bookid, rate){
	var request1 = createRequest('text/html');
	for(var i=0;i<rate.length;i++){
		if(rate[i].checked == true) {
			sendRequest(request1,'/dynamic/web.php?q=confirmRating&bookid='+escape(bookid)+'&rate='+i, 'innerHTML', 'boxAvis', '');
		}
	}
	document.getElementById('boxAvisAction').innerHTML = "";
}

function doRanking(rank, bookid){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=doRating&bookid='+escape(bookid)+'&rate='+rank, 'innerHTML', 'boxAvis', '');
}

function sendComment(bookid, comment, action , id){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=doComment&bookid='+escape(bookid)+'&comment='+escape(comment)+'&action='+escape(action)+'&id='+escape(id), 'innerHTML', 'boxAvis', '');
}

function sendFriend(bookid, firstname, email){
	var err_msg = '';
	if(firstname==''){
		err_msg += '- Vous n\'avez pas rempli le champ "prénom" <br />';
	}
	if(!email.match(/^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]+)*@([a-zA-Z0-9_-]{2,}[.])+[a-zA-Z]{2,3}$/)){
		err_msg += '- Le champ "e-mail du destinataire" n\'est pas correctement rempli  <br />';
	}
	if(err_msg!=""){
		document.getElementById('err_msg').innerHTML = err_msg;
	}
	else{
		var request1 = createRequest('text/html');
		sendRequest(request1,'/dynamic/web.php?q=sendFriend&bookid='+escape(bookid)+'&firstname='+escape(firstname)+'&email='+escape(email), 'innerHTML', 'boxAvis', '');
	}
}

function openMsg(div_id){
	document.getElementById(div_id).style.display = 'block';
}

function closeMsg(div_id){
	document.getElementById(div_id).style.display = 'none';
}

function addElementImgErreur(){
	var theAlertImg = document.createElement('img');
	theAlertImg.setAttribute('src', '/img/puce_erreur.jpg');
	theAlertImg.setAttribute('alt', 'erreur');
	return theAlertImg;
}
function removeElementsImgErreur(array){
	for(var i=0; i<array.length; i++){
		var tmp = document.getElementById(array[i]).parentNode.getElementsByTagName("img");
		for(var j=0; j<tmp.length; j++){
			if(tmp[j].alt=='erreur'){
				document.getElementById(array[i]).parentNode.removeChild(tmp[j]);
			}
		}

	}
}

function verifWizClubForm(){
	var msg_err = false;
	var div = new Array('prenom', 'nom', 'rfille', 'an', 'cp', 'email', 'Cemail', 'newPseudo', 'newPassword', 'confPassword', 'nsOui', 'photodiv');

	if(document.getElementById('msgErreur2')){
		document.getElementById('msgErreur2').innerHTML = '';
		document.getElementById('msgErreur2').style.display = 'none';
	}

	removeElementsImgErreur(div);

	if (document.getElementById('prenom').value == "") {
		document.getElementById('prenom').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if (document.getElementById('nom').value == "") {
		document.getElementById('nom').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if (document.getElementById('fille').checked != true && document.getElementById('garcon').checked != true) {
		document.getElementById('rfille').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}

	if( !document.getElementById('jour').value.match(/^[0-9]{1,2}$/) || !document.getElementById('mois').value.match(/^[0-9]{1,2}$/) || !document.getElementById('an').value.match(/^[0-9]{4}$/) ){
		document.getElementById('an').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}

	if (document.getElementById('cp').value == "" || !document.getElementById('cp').value.match(/^[0-9]{4,5}$/) ) {
		document.getElementById('cp').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if(!document.getElementById('email').value.match(/^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]+)*@([a-zA-Z0-9_-]{2,}[.])+[a-zA-Z]{2,3}$/)){
		document.getElementById('email').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if(!document.getElementById('Cemail').value.match(/^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]+)*@([a-zA-Z0-9_-]{2,}[.])+[a-zA-Z]{2,3}$/) || document.getElementById('Cemail').value!=document.getElementById('email').value){
		document.getElementById('Cemail').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if(document.getElementById('newPseudo').value==""){
		document.getElementById('newPseudo').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if(document.getElementById('newPassword').value==""){
		document.getElementById('newPassword').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if(document.getElementById('confPassword').value=="" || document.getElementById('confPassword').value!=document.getElementById('newPassword').value){
		document.getElementById('confPassword').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}
	if (document.getElementById('newsletter-oui').checked != true && document.getElementById('newsletter-non').checked != true) {
		document.getElementById('nsOui').parentNode.appendChild(addElementImgErreur());
		msg_err = true;
	}

	if(msg_err){
		document.getElementById('msgErreur').style.display = 'block';
		return false;
	}
	return true;
}

function checkBoxNote(num,book){
	var tmp = '';
	for(var i=1; i<=5; i++){
		if(i!=num){
			tmp = document.getElementById('tanote'+i).parentNode.getElementsByTagName('label');
			tmp[0].className = '';
			document.getElementById('tanote'+i).parentNode.parentNode.className = '';
		}
		else{
			tmp = document.getElementById('tanote'+num).parentNode.getElementsByTagName('label');
			if(tmp[0].className == 'checked'){
				tmp[0].className = '';
			}
			else{
				tmp[0].className = 'checked';
			}
			if(document.getElementById('tanote'+i).parentNode.parentNode.className == 'avis'+i+'Over'){
				document.getElementById('tanote'+i).parentNode.parentNode.className = '';
			}
			else{
				document.getElementById('tanote'+i).parentNode.parentNode.className = 'avis'+i+'Over';
			}
		}
	}
	sendRating(book, document.ratingForm['tanote']);
}

function displayAuthor(bookid){
	document.getElementById('popupAuthor').style.display = 'block';
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=display_author&bookid='+escape(bookid), 'innerHTML', 'popupAuthor', '');
}

function checkIsLogged(){
	var request1 = createRequest('text/html');
	if(document.getElementById('password')){
		emptyField(document.getElementById('password'),'init');
	}
	sendRequest(request1,'/dynamic/web.php?q=check_is_logged', 'isLogged', 'connexion', 'deconnexion');
}

function displayWizBookTextList(x, month){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=wizBookTextsListAjax&x='+x+'&month='+month, 'innerHTML', 'wizbookTexts', '');
}

function displayWizBookArchiveList(x){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=wizBookArchivesListAjax&x='+x, 'innerHTML', 'wizbookArchives', '');
}

function checkRadio(checkbox, num) {
	var mycheckbox = document.getElementById(checkbox+num);
	for( var i=1; i<=3 && document.getElementById(checkbox+i); i++) {
		document.getElementById(checkbox+i).parentNode.parentNode.className='';
	}
	if(mycheckbox.checked == true) mycheckbox.parentNode.parentNode.className = 'nsActif';
}

function displayTextInsertFormAjax(id, object){
	var request1 = createRequest('text/html');

	if(object!=undefined){
		var items = object.parentNode.parentNode.getElementsByTagName("li");
		for (i=0;i<items.length;i++) {
			items[i].className = '';
		}
		object.parentNode.className = 'nsActif';
	}

	if(id!=''){
		sendRequest(request1,'/dynamic/web.php?q=displayTextInsertFormAjax&textid='+id, 'innerHTML', 'textForm', '');
	}
	else{
		sendRequest(request1,'/dynamic/web.php?q=displayTextInsertFormAjax', 'innerHTML', 'textForm', '');
	}
}

function wizbookTextInsert(){
	var request1 = createRequest('text/html');
	var title = document.getElementById('title').value;
	var text = document.getElementById('text').value;
	var date_ins = document.getElementById('date_ins').value;
	if(document.getElementById('status1').checked==true ){
		var status=1;
	}
	else if(document.getElementById('status2').checked==true ){
		var status=2;
	}
	else{
		var status = 0;
	}
	if(document.getElementById('action').value=='update' && document.getElementById('id').value!=''){
		var id = document.getElementById('id').value;
		sendRequest(request1,'/dynamic/web.php?q=TextDoUpdate&title='+encodeURIComponent(title)+'&text='+encodeURIComponent(text)+'&date_ins='+encodeURIComponent(date_ins)+'&status='+status+'&id='+id, 'wizBookTextUpdate', 'textForm', date_ins.substring(0, 7));
	}
	else{
		sendRequest(request1,'/dynamic/web.php?q=TextDoInsert&title='+encodeURIComponent(title)+'&text='+encodeURIComponent(text)+'&date_ins='+encodeURIComponent(date_ins)+'&status='+status, 'wizBookTextInsert', 'textForm', '');
	}
}

function deleteWizBookText(id){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=TextDoDelete&id='+id, 'TextDoDelete', 'textForm', '');
}

function displayStoriesListAjax(x){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayStoriesListAjax&x='+x, 'innerHTML', 'wizbookTxtCommunaute', '');
}

function displayStoryAjax(id, object){
	if(object!=undefined) {
		var items = object.parentNode.parentNode.getElementsByTagName("li");
		for (i=0;i<items.length;i++) {
			items[i].className = '';
		}
		object.parentNode.className = 'nsActif';
	}
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayStoryAjax&id='+id, 'wizBookStory', 'wizbookTxtHistoire', '');
}

function displayWizBookCommentsListAjax(x, month){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayWizBookCommentsListAjax&x='+x+'&month='+month, 'innerHTML', 'wizbookAvis', '');
}

function displayWizBookCommentAjax(id){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayWizBookCommentAjax&id='+id, 'innerHTML', 'wizbookAvisHistoire', '');
}

function displayWizBookCommentArchivesAjax(x){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayWizBookCommentArchivesAjax&x='+x, 'innerHTML', 'wizbookAvisArchives', '');
}

function displayWizBookRatingsListAjax(month){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayWizBookRatingsListAjax&month='+month, 'innerHTML', 'wizbookNotes', '');
}

function displayWizBookRatingsArchivesAjax(x){
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=displayWizBookRatingsArchivesAjax&x='+x, 'innerHTML', 'wizbookNotesArchives', '');
}

function formMessage(obj){
	var msgDiv = document.getElementById(obj);
	var closeLink = '<a href="javascript:;" class="nsClose" onclick="this.parentNode.style.display=\'none\'">Fermer x</a>';
	if (msgDiv.innerHTML!='') {
		msgDiv.innerHTML = closeLink + msgDiv.innerHTML;
		msgDiv.style.display = 'block';
	}
}
function emptyField(obj, theValue){
	if(theValue=='init') { obj.value = ''; theValue=''; }
	if(obj.value==theValue) { obj.style.backgroundColor = '#272725'; obj.value = ''; }
}
function activeHMenu(idMenu1,idMenu2,etat) {
	var parentObj1 = document.getElementById(idMenu1).parentNode;
	var parentObjLi1 = document.getElementById(idMenu1).parentNode.getElementsByTagName('li');
	var parentObjLi2 = document.getElementById(idMenu2).parentNode.getElementsByTagName('li');
	for(var i=0; i<4 && parentObjLi1[i] && parentObjLi2[i]; i++) {
		parentObj1.className = '';
		parentObjLi1[i].className = '';
		parentObjLi2[i].className = '';
	}
	if(etat!='out') {
		parentObj1.className = 'nsActive';
		document.getElementById(idMenu1).className = 'nsActive';
		document.getElementById(idMenu2).className = 'nsActive';
	}
}

function findForgottenPassword(){
	var email = document.getElementById('email').value;
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=findForgottenPassword&email='+email, 'innerHTML', 'msgErr', '');
}

/* SWFAddress */
function toTitleCase(str) {
    return str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase();
}

function formatTitle(title) {
    if(title) return 'Wiz - Albin Michel - ' + (title != '/' ? ' ' + title.substr(1, title.length - 2).replace(/\//g, ' / ') : '');
}

function loginAjax(){
	var pseudo = document.getElementById('pseudo').value;
	var password = document.getElementById('password').value;
	var url = document.getElementById('url').value;
	var request1 = createRequest('text/html');
	sendRequest(request1,'/dynamic/web.php?q=loginAjax&pseudo='+pseudo+'&password='+password+'&url='+encodeURIComponent(url), 'loginAjax', 'msgLogin', '');
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) +
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);

   return output;
}

