/*
 * $Header: /usr/local/cvsroot/understrom/_inc/book.js,v 1.2 2008/10/20 07:34:26 krut Exp $
 *
 * book Javascript Lib
 *
 * Mode
 *  1 -> single page A
 *  2 -> facing pages
 *  3 -> single page B
 * 
 */

var bookData = new Object();

/*
 * Init Book
 */
function initBook(page, mode)
{
	bookData.DEBUG = 0;
	bookData.mode = mode;
	
	if (bookData.mode == 3)
	{
		bookData.pagesPrView = 1;
	} else
	{
		bookData.pagesPrView = bookData.mode;
	}
	
	bookData.pageWidth = 435;
	bookData.pageHeight = 465;
	
	calcLastPage();
	
	setPage(page);
	setupPage();
//	dump(bookData, "debugBox");
}

function setPage(aPage)
{
	if (bookData.aPage < 1 || bookData.aPage > bookData.lastPage)
	{
		return true;
	}

	bookData.prevNav = false;
	bookData.nextNav = false;
	
	bookData.aPage = aPage;
	bookData.bPage = -1;

	if (bookData.aPage > 1)
	{
		bookData.prevNav = true;
	}

	if (bookData.lastPage > bookData.aPage)
	{
		if (bookData.pagesPrView==2)
		{
			bookData.bPage = bookData.aPage + 1;

			if (bookData.lastPage > bookData.bPage)
			{
				bookData.nextNav = true;
			}
		} else
		{
			bookData.nextNav = true;
		}
	}
}

function goBackward()
{
	if (bookData.aPage <= bookData.pagesPrView)
	{
		setupPage();
		return true;
	}
	
	go(bookData.aPage - bookData.pagesPrView);
}

function goForward()
{
	if (bookData.aPage > (bookData.lastPage - bookData.pagesPrView))
	{
		setupPage();
		return true;
	}
	
	go(bookData.aPage + bookData.pagesPrView);
}

function go(aPage)
{
	document.getElementById("hiddenPageNumber").value = aPage;
	setPage(aPage);
	setupPage();
}


function setupPage()
{
	document.getElementById('bookPageANumber').innerHTML = bookData.aPage;
	document.getElementById('goBackward').style.display = (bookData.prevNav) ? "block" : "none";
	document.getElementById('goForward').style.display = (bookData.nextNav) ? "block" : "none";

	if (bookData.mode == 3)
	{
		scrollPage('bookPageB', bookData.aPage);
	} else
	{
		scrollPage('bookPageA', bookData.aPage);
		if (bookData.pagesPrView == 2)
		{
			scrollPage('bookPageB', bookData.bPage);
			document.getElementById('bookPageBNumber').innerHTML = (bookData.bPage > 0) ? bookData.bPage : '';	
		}
	}
}

function scrollPage(pageId,page)
{
	var bph = document.getElementById(pageId);
	bph.style.marginTop = ((bookData.pageHeight * (page - 1) * -1) - 0) + "px";
	bph.style.height = (bookData.pageHeight * page) + "px";
}

function calcLastPage()
{
	var hc = document.getElementById('hiddenContent');
	hc.style.display = "block";
	bookData.contentHeight = hc.offsetHeight;
	hc.style.display = "none";
	bookData.lastPage = Math.ceil(bookData.contentHeight/bookData.pageHeight);
}

/*
 * Structure 
 *
 */
function sc(baseId)
{
	var imgelement = document.getElementById(baseId + "arrow");

	if (imgelement.name=="expand")
	{
		animatedcollapse.show(baseId + "hold");
		imgelement.src="/_image/collapse.gif";
		imgelement.name="collapse";
	} else
	{
		animatedcollapse.hide(baseId + "hold");
		imgelement.src="/_image/expand.gif";
		imgelement.name="expand";
	}
}

function ssc(baseId)
{
	var img;
	var thisId = "";
	var tmpTxt = "";
	
	var divstoanimate = Array();
	divstoanimate.push(baseId);	
	var status = document.getElementById(baseId + "toggle").checked;
	var hold = document.getElementById(baseId + "hold");
	
	var inputTags = hold.getElementsByTagName("input");

	for (var i in inputTags)
	{
		try
		{
			if (status)
			{
				inputTags[i].checked = true;
			} else
			{
				inputTags[i].checked = false;
			}
		
			if (undefined != inputTags[i].onchange)
			{
				tmpTxt = "" + inputTags[i].id;
				thisId = tmpTxt.match(/(.*)toggle/)[1];

				divstoanimate.push(thisId);
			}
		} catch(e)
		{
			alert(e);
		}
	}
	
	// Expand all selected	
	for (var j in divstoanimate)
	{
	 	img = document.getElementById(divstoanimate[j] + "arrow");
	
		if (img)
		{
			img.src="/_image/collapse.gif";
			img.name="collapse";
		}

		animatedcollapse.show(divstoanimate[j] + "hold");
	}
}

function showterms()
{
	document.getElementById('info').style.display = "none";
	document.getElementById('infoimg').style.display = "none";
	document.getElementById('products').style.display = "none";
	document.getElementById('terms').style.display = "block";
}

function showproducts()
{
	document.getElementById('info').style.display = "none";
	document.getElementById('infoimg').style.display = "none";
	document.getElementById('terms').style.display = "none";
	document.getElementById('products').style.display = "block";
}


/*
 * Editor
 *
 */

function submitRTEForm()
{
	//make sure hidden and iframe values are in sync for all rtes before submitting form
	updateRTEs();
	
	//alert("rte1 = " + htmlDecode(document.editor.rte1.value));
	return true;
}