var prefsLoaded = false;
var currentFontSize = .75;
function fontBigger() {
   currentFontSize = parseFloat(currentFontSize) + .25;
   setFontSize();
};
function fontSmaller() {
   currentFontSize = parseFloat(currentFontSize) - .25;
   setFontSize();
};
function setFontSize(){
//	var stObj = (document.getElementById) ? document.getElementById('ContentArea') : document.all('Content');
//    var stObj = document.getElementById('mainLayout');
    var stObj = document.getElementsByTagName('body')[0];
    if (currentFontSize>1.75) {
      currentFontSize=1.75;
    }
    else if (currentFontSize<0.5)
    {
    currentFontSize=0.5;
    }
	stObj.style.fontSize = currentFontSize + 'em';
};
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;
};

//window.onload = setUserOptions;

function setUserOptions(){
	if(!prefsLoaded){
//		cookie = readCookie("fontFace");
//		currentFontType = cookie ? cookie : 1;
//		setFontFace(currentFontType);

		cookie = readCookie("fontSize");
		currentFontSize = cookie ? cookie : currentFontSize;
		setFontSize();
		
//		cookie = readCookie("pageWidth");
//		currentWidth = cookie ? cookie : 990;
//		setWidth(currentWidth);
		
//		cookie = readCookie("pageColor");
//		currentStyle = cookie ? cookie : "White";
//		setColor(currentStyle);

		prefsLoaded = true;
	}

};

window.onunload = saveSettings;

function saveSettings()
{
  createCookie("fontSize", currentFontSize, 365);
//  createCookie("fontFace", currentFontType, 365);
  //createCookie("pageWidth", currentWidth, 365);
//  createCookie("pageColor", currentStyle, 365);
};
// code depends on YUI event.js and dom.js
function InlineTooltip(headerDivID,hiddenTableID)
{
   YAHOO.util.Event.on(headerDivID,'mouseover',
      function() { YAHOO.util.Dom.setStyle(headerDivID,'display','none'); 
                   YAHOO.util.Dom.setStyle(hiddenTableID,'display','block'); }, {}, false);   
// modified script from http://www.quirksmode.org/js/events_mouse.html#mouseover
   YAHOO.util.Event.on(hiddenTableID,'mouseout',
     function (e) {
      	if (!e) var e = window.event;
     	var tg = (window.event) ? e.srcElement : e.target;
//    	if (tg.nodeName != 'DIV') return;
	    var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
    	while (reltg != tg && reltg.nodeName != 'BODY')
    		reltg= reltg.parentNode
	if (reltg== tg) return;	    
	// Mouseout took place when mouse actually left layer
	// Handle event
        YAHOO.util.Dom.setStyle(hiddenTableID,'display','none'); 
        YAHOO.util.Dom.setStyle(headerDivID,'display','block'); 
     },{}, false);
   YAHOO.util.Dom.setStyle(hiddenTableID,'display','none');
}
function popup (tagid) {
var tagarray = tagid.split('/');
var copylinks = tagarray[1];
var stylesarray = document.styleSheets;
var datatable = document.getElementById(tagarray[0]).innerHTML;
var NewWindow = window.open('','name','width=400,height=500,scrollbars=yes,resizable=yes');
var NewWinDoc = NewWindow.document;
NewWinDoc.write('<html><head>');
if (copylinks != 'no') 
for (var i = 0; i <= stylesarray.length - 1; i++) 
if (stylesarray[i].href != null)
{ var styleshref = stylesarray[i].href;
if (styleshref.charAt(4) == 's') styleshref = styleshref.substring(0,4) + styleshref.substring(5,styleshref.length);
NewWinDoc.write('<link rel="stylesheet" type="text/css" href="' + styleshref + '" />');} NewWinDoc.write('</head><body>');
NewWinDoc.write('<div align="center"><button onclick="window.print();">Print Page</button><button onclick="window.close();">Close Window</button></div>');
NewWinDoc.write(datatable);
NewWinDoc.write('<script language="JavaScript">var linksarray = document.getElementsByTagName("A");');
NewWinDoc.write('for (var i = 0; i <= linksarray.length - 1; i++) { linksarray[i].setAttribute("onclick","return false"); linksarray[i].setAttribute("href","#"); }');
NewWinDoc.write('<' + '/' + 'scr' + 'ipt></body></html>');
NewWinDoc.close(); }



var END_OF_INPUT = -1; 
var codedChars = new Array( 
    'A','B','C','D','E','F','G','H', 
    'I','J','K','L','M','N','O','P', 
    'Q','R','S','T','U','V','W','X', 
    'Y','Z','a','b','c','d','e','f', 
    'g','h','i','j','k','l','m','n', 
    'o','p','q','r','s','t','u','v', 
    'w','x','y','z','0','1','2','3', 
    '4','5','6','7','8','9','+','/' 
); 
var reverseDigitsChars = new Array(); 
for (var i=0; i < codedChars.length; i++){ 
    reverseDigitsChars[codedChars[i]] = i; 
} 
var codedStr; 
var codedCount; 
function setDigitsStr(str){ 
    codedStr = str; 
    codedCount = 0; 
} 
function readDigits(){     
    if (!codedStr) return END_OF_INPUT; 
    if (codedCount >= codedStr.length) return END_OF_INPUT; 
    var c = codedStr.charCodeAt(codedCount) & 0xff; 
    codedCount++; 
    return c; 
} 
function readReverseDigits(){    
    if (!codedStr) return END_OF_INPUT; 
    while (true){       
        if (codedCount >= codedStr.length) return END_OF_INPUT; 
        var nextCharacter = codedStr.charAt(codedCount); 
        codedCount++; 
        if (reverseDigitsChars[nextCharacter]){ 
            return reverseDigitsChars[nextCharacter]; 
        } 
        if (nextCharacter == 'A') return 0; 
    }  
} 
function ntos(n){ 
    n=n.toString(16); 
    if (n.length == 1) n="0"+n; 
    n="%"+n; 
    return unescape(n); 
} 
function decode(str){ 
    setDigitsStr(str); 
    var result = ""; 
    var inBuffer = new Array(4); 
    var done = false; 
    while (!done && (inBuffer[0] = readReverseDigits()) != END_OF_INPUT 
        && (inBuffer[1] = readReverseDigits()) != END_OF_INPUT){ 
        inBuffer[2] = readReverseDigits(); 
        inBuffer[3] = readReverseDigits(); 
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4)); 
        if (inBuffer[2] != END_OF_INPUT){ 
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2)); 
            if (inBuffer[3] != END_OF_INPUT){ 
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3])); 
            } else { 
                done = true; 
            } 
        } else { 
            done = true; 
        } 
    } 
    return result; 
} 

function goBlackboard(username,encpw,coursePK1) {
	
	if (coursePK1=="1" || coursePK1=="1_1"){
		bbloc='/webapps/login';
	} else {
		bbloc="/webapps/portal/frameset.jsp?tab_tab_group_id=_2_1&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_"+coursePK1+"%26url%3D";
	}
	//create new form element and set attributes
	var f = document.createElement("form");
	f.method = "get"
	f.target = "_blank"

	if (encpw==""){
		f.action = "https://sauonline.arbor.edu" + bbloc;
	}else{
		// Add action and method attributes
		f.action = "https://sauonline.arbor.edu/webapps/login";
		
		//create first input
		var i1 = document.createElement("input");
		i1.value = "login";
		i1.name = "action";
		i1.type = "HIDDEN";

		//second input
		var i2 = document.createElement("input");
		i2.value = "";
		i2.name = "remote-user";
		i2.type = "HIDDEN";

		//third input
		var i3 = document.createElement("input");
		i3.value = "";
		i3.name = "auth_type";
		i3.type = "HIDDEN";

		//fourth input
		var i4 = document.createElement("input");
		i4.value = "";
		i4.name = "one_time_token";
		i4.type = "HIDDEN";

		//fifth input
		var i5 = document.createElement("input");
		i5.value = "";
		i5.name = "password";
		i5.type = "HIDDEN";

		//sixth input
		var i6 = document.createElement("input");
		i6.value = username;
		i6.name = "user_id";
		i6.type = "HIDDEN";

		//seventh input
		var i7 = document.createElement("input");
		i7.value = encpw;
		i7.name = "encoded_pw";
		i7.type = "HIDDEN";

		//eigth input
		var i8 = document.createElement("input");
		i8.value = bbloc;
		i8.name = "new_loc";
		i8.type = "HIDDEN";

		//add input fields to form
		f.appendChild(i1); 
		f.appendChild(i2); 
		f.appendChild(i3); 
		f.appendChild(i4); 
		f.appendChild(i5); 
		f.appendChild(i6);		
		f.appendChild(i7); 
		f.appendChild(i8); 
	}
	
	// Add form to the document body
	document.body.appendChild(f);

	// Call the form's submit method
	f.submit();
	document.body.removeChild(f);


	return false;     
}

function goWebmail(username,encpw,privFlag) {
	pw=decode(encpw);
	
	//create new form element and set attributes
	var f = document.createElement("form");
	f.method = "post"
	f.target = "_blank"

	// Add action and method attributes
	f.action = "https://mail.arbor.edu/exchweb/bin/auth/owaauth.dll";
	
	//create required input fields
	var i1 = document.createElement("input");
	i1.value = "https://mail.arbor.edu/exchange/";
	i1.name = "destination";
	i1.type = "HIDDEN";

	var i2 = document.createElement("input");
	i2.value = privFlag;
	i2.name = "flags";
	i2.type = "HIDDEN";
	
	var i3 = document.createElement("input");
	i3.value = username + "@arbor.edu";
	i3.name = "username";
	i3.type = "HIDDEN";
	
	var i4 = document.createElement("input");
	i4.value = pw;
	i4.name = "password";
	i4.type = "HIDDEN";
	
	var i5 = document.createElement("input");
	i5.value = 1;
	i5.name = "forcedownlevel";
	i5.type = "HIDDEN";
	
	var i6 = document.createElement("input");
	i6.value = privFlag;
	i6.name = "trusted";
	i6.type = "HIDDEN";

	var i7 = document.createElement("input");
	i7.value = 1;
	i7.name = "isUtf8";
	i7.type = "HIDDEN";
	
	
	//add inputs to form
	f.appendChild(i1); 
	f.appendChild(i2); 
	f.appendChild(i3); 
	f.appendChild(i4); 
	f.appendChild(i5); 
	f.appendChild(i6);
	f.appendChild(i7);
		
	// Add form to the document body
	document.body.appendChild(f);

	// Call the form's submit method
	f.submit();
	document.body.removeChild(f);
	
	return false;     
  }


function goEZProxy(username,encpw,dburl) {
	pw=decode(encpw);
	
	var f = document.createElement("form");
	f.method = "post"
	f.target = "_blank"

	// Add action and method attributes
	f.action = "https://ezproxy.arbor.edu/login";
	
	//create required input fields
	var i1 = document.createElement("input");
	i1.value = username;
	i1.name = "user";
	i1.type = "HIDDEN";

	var i2 = document.createElement("input");
	i2.value = pw;
	i2.name = "pass";
	i2.type = "HIDDEN";
	
	var i3 = document.createElement("input");
	i3.value = dburl;
	i3.name = "url";
	i3.type = "HIDDEN";
	
	//add inputs to form
	f.appendChild(i1); 
	f.appendChild(i2); 
	f.appendChild(i3); 
		
	// Add form to the document body
	document.body.appendChild(f);

	// Call the form's submit method
	f.submit();
	document.body.removeChild(f);
	
	return false;     
  }

function popupRedirect(title,url,parms) {
  var NewWindow = window.open('','redirWin','width=665,height=500,scrollbars=yes,resizable=yes,menubar=yes,toolbar=yes,status=yes');
  var NewWinDoc = NewWindow.document;
  NewWinDoc.write('<html><head><title>Redirect to ' + title + '</title></head>');
  NewWinDoc.write('<body onload="this.document.forms[0].submit()">');
  NewWinDoc.write('<button onclick="window.close();">Close Window</button>');  
  NewWinDoc.write('<form name="redirForm" method="post" action="' + url + '">');
  for (parm in parms) {
    NewWinDoc.write('<input type="hidden" name="' + parm + '" value="' + parms[parm] + '">'); 
  }
  NewWinDoc.write('</form></body></html>');
  NewWinDoc.close();
  return false;
}
// ugly copy-paste of goBlackboard for temporary use
function goBlackboardSpecial(username,encpw,coursePK1) {
	
	if (coursePK1=="1" || coursePK1=="1_1"){
		bbloc='/webapps/login';
	} else {
		bbloc="/webapps/portal/frameset.jsp?tab_tab_group_id=_2_1&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_"+coursePK1+"%26url%3D";
	}
	//create new form element and set attributes
	var f = document.createElement("form");
	f.method = "get"
	f.target = "_blank"

	if (encpw==""){
		f.action = "https://gypsum.arbor.edu" + bbloc;
	}else{
		// Add action and method attributes
		f.action = "https://gypsum.arbor.edu/webapps/login";
		
		//create first input
		var i1 = document.createElement("input");
		i1.value = "login";
		i1.name = "action";
		i1.type = "HIDDEN";

		//second input
		var i2 = document.createElement("input");
		i2.value = "";
		i2.name = "remote-user";
		i2.type = "HIDDEN";

		//third input
		var i3 = document.createElement("input");
		i3.value = "";
		i3.name = "auth_type";
		i3.type = "HIDDEN";

		//fourth input
		var i4 = document.createElement("input");
		i4.value = "";
		i4.name = "one_time_token";
		i4.type = "HIDDEN";

		//fifth input
		var i5 = document.createElement("input");
		i5.value = "";
		i5.name = "password";
		i5.type = "HIDDEN";

		//sixth input
		var i6 = document.createElement("input");
		i6.value = username;
		i6.name = "user_id";
		i6.type = "HIDDEN";

		//seventh input
		var i7 = document.createElement("input");
		i7.value = encpw;
		i7.name = "encoded_pw";
		i7.type = "HIDDEN";

		//eigth input
		var i8 = document.createElement("input");
		i8.value = bbloc;
		i8.name = "new_loc";
		i8.type = "HIDDEN";

		//add input fields to form
		f.appendChild(i1); 
		f.appendChild(i2); 
		f.appendChild(i3); 
		f.appendChild(i4); 
		f.appendChild(i5); 
		f.appendChild(i6);		
		f.appendChild(i7); 
		f.appendChild(i8); 
	}
	
	// Add form to the document body
	document.body.appendChild(f);

	// Call the form's submit method
	f.submit();
	document.body.removeChild(f);


	return false;     
}
