//js pour frameset

//some global vars
arrPages = new Array();
arrBookmarks = null;
maxBookmarks = 20;
fsLoaded = false;
sliderOpened = false;
currentChapter=0;
currentPage=null;

//nom des different frame
//eval differe 
strMenuFrame = "top.mainmenu1";
strToolBoxFrame = "top.toolbox1";
strContentFrame = "top.main_content";
strSliderFrame = "top.slider1";


//extract good file name for lookup purposes into arrPages
function getFileNameFromUrl(zeUrl) {
	//in url, out file name
	
	//get the last pos
	var slash = zeUrl.lastIndexOf('/');
	var retval = zeUrl.substring(slash+1);
	
	//throw out anchor stuff
	if (retval.indexOf('#') > -1) {
		retval = retval.substring(0,retval.indexOf('#'));
	}
	
	//out page name
	return retval;
	
}


//handler called when content page loaded in main_content frame
function newPageLoaded(zHref) {
	//find page filename
	var pageName = unescape(getFileNameFromUrl(zHref));
	currentPage = arrPages[pageName];  //an object
	
	//if we are opening a new session
	//prompt for the last page visited
	if ( getCookie('session') == null  ){
		//retrieve last page
		var lastPageName = getLastPageName();
		
		if (lastPageName != null) {
			var lastPage = arrPages[lastPageName];
			var zemsg = "Last time you left, you were reading the\n'" + lastPage.pageTitle + "' page";
			if (lastPage.chapter != 0) zemsg += " (Chapter " + lastPage.chapter + ")";
			zemsg += ".\nDo you want to go back to that page?";
			//prompt
			if ( window.confirm(zemsg)) {
				main_content.location.href = lastPage.fileName;
				
			}
		}
	}
	
	//remember this page for future sessions
	saveLastPage();	
	
	//set the current chapter
	currentChapter=currentPage.chapter;
	
	// set the current section
	// and notify the flash main menu
	notifyMainMenu(currentPage.section + "." + currentPage.chapter);

	//fetch bookmarks from cookie
	loadBookmarks();


	
	//synch the frameset with this page
	if (currentPage.hasSlider) {
		showSlider();
		if (currentChapter > 0) {
			//envoyer slider au bon chapitre
			refreshSlider(currentChapter, currentPage);
		}
	} else {
		hideSlider();
	}
}


///////////////////////////////////////////////////////
//
//  content page object
//
///////////////////////////////////////////////////////
function pageObj(zeName, zeTitle, zeChapter, zeSlider, zeMenu, zeSection) {
	//page object prototype
	this.fileName = zeName;
	this.pageTitle = zeTitle;
	this.chapter = zeChapter; 
	this.hasSlider = zeSlider;
	this.inSliderMenu = zeMenu;
	this.section = zeSection;	
}


//////////////////////////////////////////////////////
//remember last visited page between sessions
function getLastPageName () {
	return getCookie('lastpage');
}

function saveLastPage() {
	var zedate = new Date();
	zedate.setYear(zedate.getYear() + 1);
	setCookie('lastpage', currentPage.fileName, zedate);
	var zd = new Date();
	//zd.setMinutes(zd.getMinutes() + 1);
	zd.setHours(zd.getHours() + 1);
	setCookie('session', 'yes',zd);

	return true;
}

///////////////////////////////////////////////////////
//
//  bookmarks
//
///////////////////////////////////////////////////////
function loadBookmarks() {
	var zestr = getCookie('bookmarks');
	if (zestr == null) return;
	
	arrBookmarks = zestr.split('+');

}

function saveBookmarks() {
	//save the bookmarks
	if (arrBookmarks == null) return;
	
	var zestr = arrBookmarks.join('+');
	var zedate = new Date();
	zedate.setYear(zedate.getYear() + 1);
	setCookie('bookmarks', zestr, zedate);
}

function addBookmark() {
	//verify existence of present page in the bookmark file
	if ( arrBookmarks != null ) {
		for (var foo in arrBookmarks) {
			if ( arrBookmarks[foo] == currentPage.fileName ) return;
		}
	}

	//add this page to the bookmarks
	if (arrBookmarks == null) arrBookmarks = new Array();
	
	//if we already have the max number of bookmarks
	if (arrBookmarks.length == maxBookmarks) {
		var tmparr = new Array();
		for (var i = 1; i<arrBookmarks.length; i++) {
			tmparr[i-1] = arrBookmarks[i];
		}
		arrBookmarks = new Array();
		for (var i = 0; i<tmparr.length; i++) {
			arrBookmarks[i]= tmparr[i];
		}
		tmparr = null;
	}
	arrBookmarks[arrBookmarks.length] = currentPage.fileName;
	
	saveBookmarks();	

}







function deleteBookmark(zename) {
	if (arrBookmarks == null) return;

	var tmparr = new Array();
	
	if (arrBookmarks.length == 1) {
		arrBookmarks = null;
		return;	
	}
	
	
	for (var i = 0; i<arrBookmarks.length; i++) {
		if ( arrBookmarks[i] != zename ) tmparr[tmparr.length] = arrBookmarks[i];
	}
	arrBookmarks = new Array();
	for (var i = 0; i<tmparr.length; i++) {
		arrBookmarks[i]= tmparr[i];
	}
	tmparr = null;
		
	saveBookmarks();
}

