
var debug = false;

function rotateToNextFontSize() {
	
	var i;
	
	var allUniqueCssTitles = getAllUniqueStyleSheetTitlesSansPrint();
	//alert(allUniqueCssTitles);	
	
	var activeIndex = findValueInArray(getActiveStyleSheetTitle(), allUniqueCssTitles);
	
	if (debug) alert("main: getActiveStyleSheetTitle->"+getActiveStyleSheetTitle()+", activeIndex="+activeIndex+", getCssDirection()="+getCssDirection());
	
	activeIndex += getCssDirection();
	
	// Put activeIndex back in a valid range in case the user modified something
	if (activeIndex > allUniqueCssTitles.length-1) activeIndex = allUniqueCssTitles.length-1;
	else if (activeIndex < 0) activeIndex = 0;
	
	if (debug) alert(allUniqueCssTitles[activeIndex]);
	
	setActiveStyleSheet(allUniqueCssTitles[activeIndex]);
	
	/* Set the direction of the font changer */
	if (activeIndex == allUniqueCssTitles.length-1){
		setCssDirection(-1);
		if (debug) alert("main: Heading down now");
	}
	else if (activeIndex == 0){
		setCssDirection(1);
		if (debug) alert("main: Heading up now");
	}
	else {
		if (debug) alert("main: activeIndex="+activeIndex+", allUniqueCssTitles.length-1="+(allUniqueCssTitles.length-1)+" no change in direction");
	}
	
	processIncreaseButton();
}

function setCssDirection(direction){
	if (direction==1)
		createCookie("direction", "up", 365);
	else 
		createCookie("direction", "down", 365);
}

function getCssDirection() {
	if (readCookie("direction")=="down") return -1;
	return 1;
}

function setPrintMode() { 
	var linkArray = document.getElementsByTagName("link");
	var returnArray = new Array();
	for(i=0; (a = linkArray[i]); i++) {
		if(
		   a.getAttribute("rel").indexOf("style")!=-1 
		   && 
		   a.getAttribute("title") == "print"
		)
		{
			createCookie("formerCSS", getActiveStyleSheetTitle(), 365);
			setActiveStyleSheet(a.getAttribute("title"));
			return;
		}
	}
}

function returnFromPrintMode() {
	setActiveStyleSheet( readCookie("formerCSS") );
}

function getAllStyleSheets() {
	var linkArray = document.getElementsByTagName("link");
	var returnArray = new Array();
	for(i=0; (a = linkArray[i]); i++) {
		if(
		   a.getAttribute("rel").indexOf("style")!=-1 
		   && 
		   a.getAttribute("title") 
		   && 
			(
			 	!a.getAttribute("media")
					|| 
				a.getAttribute("media").indexOf("print")==-1 
			)
		)
		{
			returnArray.push(a);
		}
	}
	return returnArray;
}

function getAllUniqueStyleSheets() {
	
	var allStyleSheets = getAllStyleSheets();
	
	var allCssTitles = new Array();
	var allCss = new Array();
	
	for (var i=0; i<allStyleSheets.length; ++i) {
	
		if ( -1 == findValueInArray(allStyleSheets[i].getAttribute("title"), allCssTitles )  )
		{
			allCssTitles.push(allStyleSheets[i].getAttribute("title"));
			allCss.push(allStyleSheets[i]);
		}

	}
	
	return allCss;
}

function getAllUniqueStyleSheetTitles() {
	
	var returnArray = new Array();

	var allUnique = getAllUniqueStyleSheets();
	for (var i=0; i<allUnique.length; ++i) {
		returnArray.push(allUnique[i].getAttribute("title"));
	}
	
	return returnArray;
}
function getAllUniqueStyleSheetTitlesSansPrint() {
	var returnArray = new Array();

	var allUnique = getAllUniqueStyleSheets();
	for (var i=0; i<allUnique.length; ++i) {
		if (allUnique[i].getAttribute("title")!="print") returnArray.push(allUnique[i].getAttribute("title"));
	}
	
	return returnArray;
}

function findValueInArray(needle, haystack) {

	var debug = false;
	
	for (var i=0; i<haystack.length; ++i) {
		if (haystack[i]==needle) return i;
	}
	
	return -1;
}
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title){
		  a.disabled = false;
	  }
    }
  }
}

function getActiveStyleSheetTitle() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function processIncreaseButton(){

	//alert(document.getElementById("decreaseOption"));

	 if (getCssDirection()<0) {
		 //alert('decreaseOption');
		 //alert(getRawObject("decreaseOption"));
		 showInline( getRawObject ("decreaseOption") );
		 hide( getRawObject("increaseOption") );
	 }
	 else {
		 //alert('increaseOption');
		 showInline( getRawObject("increaseOption") );
		 hide( getRawObject ("decreaseOption") );
	 }
	 return true;
}

function styleSwitcherOnLoad() {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  //alert('title = ' + title);
  setActiveStyleSheet(title);  
 processIncreaseButton();
}


//jses_addEvent(window, "onload", styleSwitcherOnLoad);

/*window.onload = function(e) {
  styleSwitcherOnLoad();
}
*/
/*window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}
*/

function startDown() {
  var title = getActiveStyleSheetTitle();
  createCookie("style", title, 365);
}

window.onunload = function(e) {
  var title = getActiveStyleSheetTitle();
  createCookie("style", title, 365);
}


var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);


