// JavaScript Document
var serverName = location.host;

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

addEvent(window,'unload',EventCache.flush);

function getCurrentPage() {
	var myurl = location.href ? location.href : location;
	myurl.replace("\#","");
	var myurl_parts = myurl.split('?');
	var script_name = myurl_parts[0];
	
/*	if ((script_name == 'http://www.cyberlibris.fr/') || 
		(script_name == 'http://www.cyberlibris.fr') || 
		(script_name == 'http://cl-famili.e-staging.be/') ||
		(script_name == 'http://cl-famili.e-staging.be')
		) {
		myPage = "index.aspx";
	}
*/	

	if ((script_name == 'http://' + location.host) 
		 || (script_name == 'http://' + location.host + '/')
		 || (script_name == 'http://' + location.host + '/cl-famili/')
		 || (script_name == '')
		 ) {
		myPage = "index.aspx";
	}
	else {
		var pts = script_name.split('/');
		myPage = pts[pts.length -1];
		if (location.href.indexOf('results_new3.aspx') > 0)
			myPage = 'results_new3.aspx';
		if (location.href.indexOf('etageres.aspx') > 0)
			myPage = 'etageres.aspx';
	}
	//doLog(myPage);
	try {
		return eval(myPage.replace('.','_'));
	}
	catch(ee){}
	
	/*
	var locName = location.href ? location.href : location;
	var query=(locName.lastIndexOf('.'));
	//alert(query);
	if (query) {
		var parts = locName.substr(0,query).split('/');
	}
	else {
		var parts = locName.split('/');		
	}
	var page = parts[parts.length-1].replace('.','_');
	//var page = parts[parts.length-1].replace('#','');
	alert(page);
	return  eval(page + "_aspx");
	*/
}


function ReadBook(bookID) {
	var response = getCurrentPage().getBook(bookID);
	
	if (response.value != null) {
		window.open(response.value,"BookReader","toolbars:no");
	}
	else {
		alert("Veuillez vous identifier!");
	}
}


function getBookInfo(bookID, srvName) {
	document.getElementById("infoDivContainer" + bookID).style.display = "block";
	var response = getCurrentPage().GetBookInfo(bookID, srvName);
	if (response.value != null) {
		document.getElementById("infoDiv" + bookID).innerHTML = response.value;
	}
	else {
		//alert("Veuillez vous identifier!");
	}
}

function getBookComment(bookID, srvName) {
	document.getElementById("infoDivContainer" + bookID).style.display = "block";
	//var response = getCurrentPage().GetBookComment(bookID, srvName);
	var response = getCurrentPage().getHTMLBookComments(bookID);
	if (response.value != null) {
		document.getElementById("infoDiv" + bookID).innerHTML = response.value;	
	}
	else {
		//alert("Veuillez vous identifier!");
	}
}



function PostCommentNew(bookID) {
	document.getElementById("infoList").style.display = "block";
	Comment = document.getElementById("comment");
	if (Comment) {
		var strComment = Comment.value;
		var response = getCurrentPage().PostCommentNew(bookID, location.host, strComment);
		if (response.value != null) {
			var l = currentBook.myNotes.length;
			var tn = new Note(l,'comment','',response.value);
			tn.author = currentFullName;
			var theDate = new Date();
			tn.date = theDate.getDate() + '-' + (theDate.getMonth() + 1) + '-' + theDate.getFullYear() + ' ' + theDate.getHours() + ':' + theDate.getMinutes();
			currentBook.myNotes.unshift(tn);
			//currentBook.addNote(tn);
			//showNotes('');
			addCommentNew();
			//document.getElementById("myspan").innerHTML = response.value;
		}
	} else {
		alert("problem");
	}
}


function removeBook(bookID) {
	varNoteLoading = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="110" height="110" id="loader_etageres" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="../images/loader_etageres.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#999999" /><embed src="loader_etageres.swf" quality="high" wmode="transparent" bgcolor="#999999" width="110" height="110" name="../images/loader_etageres" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>'
	
	document.getElementById("infoList").innerHTML = varNoteLoading;
	var response = getCurrentPage().removeBook(bookID, location.host);
	if (response.value == null) {
		document.getElementById("infoList").innerHTML = "Cet ouvrage a été supprimé de votre étagère.";
	}else {
		document.getElementById("infoList").innerHTML = "Cet ouvrage a été supprimé de votre étagère.";
	}
	//doInit();
	document.location.href = "../library/etageres.aspx";
}

function IsAuthenticated() {
	var query=(location.href.indexOf('?'));
	//alert(query);
	if (query) {
		var parts = location.href.substr(0,query).split('/');
	}
	else {
		var parts = location.href.split('/');		
	}
	var page = parts[parts.length-1].replace('.','_');
	try {
		return eval(page + ".IsAuthenticated();");
	}
	catch(e) {
		return false;
	}
}

//OBSOLETE
function AddToBookshelf(bookID) {
	var response = IsAuthenticated();
	if (response.value == true) {
//	if (PageStatus == true) {
		//document.location='/library/etageres.aspx?bookID=' + bookID;
		document.location='/library/add2bookshelf.aspx?bookID=' + bookID;
	}
	else {
		alert("Veuillez vous Identifier!");
	}
}

function AddToBookshelf2(DocID) {
	var BookshelfInfoContainer = document.getElementById("BookshelfInfoContainer"+DocID);
	var BookshelfInfo  = document.getElementById("BookshelfInfo" + DocID);
	if (BookshelfInfoContainer) {		
		BookshelfInfoContainer.style.display = 'block';
		if (BookshelfInfo) BookshelfInfo.innerHTML = "Loading.....";
	}
	
	var response = getCurrentPage().addToBookshelf(DocID);	
	if (response.value) {
		if (BookshelfInfo) BookshelfInfo.innerHTML = "Ce livre a été ajouté dans vos étagères.";
	}
	else {
		if (BookshelfInfo) BookshelfInfo.innerHTML = "L'opération a échoué !";
	}
}

var PageStatus = IsAuthenticated().value;

function GetBookAllInfo(parId){
	/* bookinfo is described as follows :
	 * id:\:title:\:author:\:editor:\:year
	 *
	 */
	var fieldsepparator = ":/:";
	
	var response = getCurrentPage().GetBookAllInfo(parId);
	if (response.value != null) {
		var book = response.value.split(fieldsepparator);
		document.getElementById("bookInfo_title").innerHTML =  book[1];
		
		s = new String(book[2]);
		s.replace("A","");
		//document.getElementById("bookInfo_author").innerHTML = s; 
		//document.getElementById("bookInfo_author").innerHTML = book[2]; 
		
		document.getElementById("bookInfo_editor").innerHTML = book[3];
		document.getElementById("bookInfo_year").innerHTML = book[4];
		document.getElementById("infos").display = "bloc";
	} else {
		alert("Veuillez vous identifier!");
	}
}

function loadBookshelfBooks(parCat){
		
	var retVal = getCurrentPage().loadBookshelfBooks(parCat).value;
	if (doLog) doLog("loading booklist: " + retVal);
	eval(retVal);
	if (doLog) doLog("done ");
}

function loadBookshelfBooks2(parCat){
	/*	
	var retVal = getCurrentPage().loadBookshelfBooks2(parCat).value;
	doLog("loading booklist: " + retVal);
	eval(retVal);
	doLog("done ");
	*/
	sp = document.getElementById("scrollPanel");
	if (sp) {
		if (flashWait) 
			sp.innerHTML = flashWait;
		else
			sp.innerHTML = '<img src="/images/rotating_arrow.gif" align="absmiddle"/>';
	}
	
	var sTitle = title_search.value.replace(/^\s*|\s*$/g,"");
	if (sTitle) {
		getCurrentPage().loadBookshelfBooks2(parCat,sTitle,loadBookshelfBooks2_Callback);
	}
	else {
		getCurrentPage().loadBookshelfBooks3(parCat,loadBookshelfBooks2_Callback);
	}
}

function loadBookshelfBooks2_Callback(response) {
	if (response.value != null) {
		eval(response.value);
	}
	else {
		//display error ?		
	}
}

function GetBookPages(parId){
	/* bookinfo is described as follows :
	 * id:\:title:\:author:\:editor:\:year
	 *
	 */
	var fieldsepparator = ":/:";
	
	var response = getCurrentPage().GetBookAllInfo(parId);
	if (response.value != null) {
		var book = response.value.split(fieldsepparator);
		document.getElementById("bookInfo_title").innerHTML =  book[1];
		document.getElementById("bookInfo_author").innerHTML = book[2]; 
		document.getElementById("bookInfo_editor").innerHTML = book[3];
		document.getElementById("bookInfo_year").innerHTML = book[4];
		document.getElementById("infos").display = "bloc";
	}
	else {
		// alert("Veuillez vous identifier!");
	}
}

function loadBookshelfBookDetails(parBook){
	eval(getCurrentPage().loadBookshelfBookDetails(parBook.myId).value);
	
}

function loadSubCats(catID) {
	return getCurrentPage().loadSubCats(catID).value;
}

// Simple Browser Check
var moz = (document.getElementById && !document.all) ? 1 : 0;

// Browser Window Dimensions
function winWid(){ return (moz) ? window.innerWidth : document.body.clientWidth; }
function winHei(){ return (moz) ? window.innerHeight : document.body.clientHeight; }

function getEbrarySessionID() {
	return getCurrentPage().getEbrarySessionID().value;
}


function ReadBookPage(DocID,Page) {	
	//var ESESSIONID = '<%=Session["ebrary_session_id"]%>';
	
	var ESESSIONID = getEbrarySessionID();
	
	window.open('http://' + location.host + '/library/plugin.aspx?ESESSIONID=' + ESESSIONID + 
				'&adv.x=1&id=' + DocID + '&ppg=' + Page + '&p00=','new','status=yes,top=0,left=0,width='+
				(winWid()-10)+',height='+ (winHei()-80)+',toolbar=no,menubar=no,location=no');
	return false;
}

function ReadBook(DocID) {
	//var ESESSIONID = '<%=Session["ebrary_session_id"]%>';
	
	var ESESSIONID = getEbrarySessionID();
	
	window.open('http://' + location.host + '/library/plugin.aspx?ESESSIONID=' + ESESSIONID + 
				'&adv.x=1&id=' + DOcID + '&p00=enfant','new','status=yes,top=0,left=0,width='+
				(winWidth-10)+',height='+ (winHeight-80)+',toolbar=no,menubar=no,location=no');
	return false;
}

function ReloadSession() {
	IsAuthenticated();
	location.reload();
}
setTimeout("ReloadSession()",1800000);

var timerJob;
function ExecuteCronJobs() {
	var response = getCurrentPage().ExecuteCronJobs();
	if (!response.value) {
		clearTimeout(timerJob);
	}
	else {
		timerJob = setTimeout("ExecuteCronJobs()",10000);			
	}
	
}

addEvent(window,'load',ExecuteCronJobs);
