// ******** Change Log ******
// 2008-03-11  Made pTitle and menu anonymous parameters.  --BB
// 2008-03-08  Completed anonymous-parameter revisions and documentation for printFooter.  The documentation is at
//             http:/cse.spsu.edu/includes/using_template.html
// 2008-03-07  Added code to print pTitle as <h1> with class pTitle.
// 2008-03-01  Added calls to Google Analytics --BB
// 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));


function printHeader() // anonymous parameters pTitle and menu, in that order
{
   var manu = false;
   var pTitle = false;
   var len = arguments.length;
   if (len >=1  && typeof(arguments[0]) == "string") pTitle = arguments[0];
   if (len >=2  && typeof(arguments[1]) == "string") menu = arguments[1];  // Note: "menu" not currently used.
   var r = Math.ceil(Math.random() * 2);
   document.writeln('<table style="border: 0 0 0 0;width:100%" cellspacing="0" cellpadding="0">');
   document.writeln('<tr><td background="http://cse.spsu.edu/images/nbanner' + r + '_02.jpg"  style="background-color:#002E5F;horizontal-align:left;vertical-align:top">');
   document.writeln('<a href="http://www.spsu.edu"><img src="http://cse.spsu.edu/images/banner' + r + '_01.jpg" style="border: none" width="784" height="90" alt="Southern Polytechnic State University"/></a>');
   document.writeln('</td>');
   document.writeln('</tr>');
   document.writeln('<tr width="100%"><td>');
   document.writeln('<a href="http://cse.spsu.edu" style="font-size:large;color:#646060;font-weight:bold;font-face:DIN;text-decoration:none" >&nbsp;School of Computing and Software Engineering</a>');
   document.writeln('</td></tr>');
   document.writeln('</table>');
   if (pTitle) document.writeln('<h1>'+pTitle+'</h1>');
}

function formatDate(aDate, timeStamp) {
  // aDate is a date object or string that can be parsed by Date.parse
  // timeStamp is a Boolean indicating whether a time stamp is wanted
  var months = new Array ('Jan','Feb','Mar','Apr','May','Jun','Jul',
             'Aug','Sep','Oct','Nov','Dec');                                                
  var d=new Date(Date.parse(aDate));
  var result = false;
  if (d!=0) {
    mon=months[d.getMonth()];
    result=d.getFullYear()+'-'+mon+'-'+d.getDate()
	if (timeStamp) {
	  h=d.getHours();
          h=h.toString();
          if (h.length < 2) h='0'+h;
          m=d.getMinutes();
          m=m.toString();
          if (m.length < 2) m='0'+m;
          result += ' '+h+':'+m;;
	} // if timeStamp
  }
  return result;
} // formatDate

function getAccountFromUrl() {
  var url = document.URL;
  if (url.search(/cs\.spsu\.edu/i) > -1) return "UA-3734963-5";   // CS
  if (url.search(/swe\.spsu\.edu/i) > -1) return "UA-3734963-4";  // SWE
  if (url.search(/it\.spsu\.edu/i) > -1) return "UA-3734963-3";   // IT
  return "UA-3734963-1";                                          // Default to CSE
}


function printFooter() {
  var d=new Date(Date.parse(document.lastModified));  // Default date
  var googleAccount = getAccountFromUrl();            // Default account
  var doGoogle = false;
  var doArchive = false;
  var timeStamp = true; // Whether to put a timestamp on the date
  var dateRegExp = /^(19|20)\d{2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(0[1-9]|[12][0-9]|3[01])/;
  
  function parseArg(arg) { // Parse an argument for one of the four flavors, set default variables
    var t = typeof(arg);
    if (t == "string" && arg.search(/^auto$/i) == 0) {
	  doGoogle = true;
	  return;
	}
	if (t == "string" && arg.search(/archiv/i) == 0) {       // regexp allows archive, archival, etc.
	  doArchive = true;
	  return;
	}
	if (t == "string" && arg.search(/^UA-\d+-\d+$/) == 0) {  // Look like a Google account?
	  googleAccount = arg;
	  doGoogle = true;
	  return;
	}
	if (t == "boolean")  {                                   // Timestamp or not?
	  timeStamp = arg;
	  return;
	}
  // OK... it must be some kind of date... maybe.
    if ( t == 'string' || t == 'object') {
      var argDate = new Date(Date.parse(arg));
	  var x = formatDate(argDate,true);
	  if (x.search(dateRegExp) != 0) return;  // Doesn't appear to be a valid date... ignore it.
	  d = argDate;  //It looks like a date; replace default.
	  if (t == 'string' && arg.length < 13 ) timeStamp = false;  // A string with no time part.
	} // end checking for date

  } // parseArg
  
  var howMany = arguments.length;
  var t = ''; 
  for (var i = 0; i < howMany; i++) {
	t = typeof(arguments[i]);
	if ((t != 'null') && (t != 'undefined')) parseArg(arguments[i]);  // ignore null and undefined
  }
  document.write('<p><small><i><span class="lastUpdate">Last update: '+formatDate(d, timeStamp));
  if (doArchive) 
    document.writeln('<br /><span class="archival">This page is an archival record and is no longer being maintained.</span>');
  document.writeln('</span></i></small></p>');
  if (doGoogle) {
    var pageTracker = _gat._getTracker(googleAccount);
    pageTracker._initData();
    pageTracker._trackPageview();
  }
}
