/***********************************************
* infokit XML transform script
* updated 2009-12-16 Doug Howell
***********************************************/
	
var checkIt = "";
var xsltProcessor;
var xmlSource;
//read window.location.hash
var urlAnchor = window.location.hash;

	function runTransform(){
		if(document.implementation && document.implementation.createDocument){
			// Mozilla
			xsltProcessor = new XSLTProcessor();
			// load the xslt file
			var myXMLHTTPRequest = new XMLHttpRequest();
			myXMLHTTPRequest.open("GET", "infokit.xsl", false);
			myXMLHTTPRequest.send(null);
			// get the XML document
			xslStylesheet = myXMLHTTPRequest.responseXML;
			xsltProcessor.importStylesheet(xslStylesheet);
			// load the xml file
			myXMLHTTPRequest = new XMLHttpRequest();
			myXMLHTTPRequest.open("GET", "infokit.xml", false);
			myXMLHTTPRequest.send(null);
			
			xmlSource = myXMLHTTPRequest.responseXML;
			
			//transform - mode param is set to category by default, so only need to change the headings param and run for each heading content area
			xsltProcessor.setParameter(null, "heading", urlAnchor.substring(1));
			var resultDocument = xsltProcessor.transformToFragment(xmlSource, document);
			document.getElementById("infokit").appendChild(resultDocument);

		}else if(window.ActiveXObject){
			// IE
			
			// Load XML
			xml = new ActiveXObject("MSXML2.DOMDocument");
			xml.async = false
			xml.load("infokit.xml")
			if (xml.parseError.errorCode != 0) {
			// error found so show error message and stop
				infokit.innerHTML = showError(xml);
			return false;
			}
			
			// Load XSL
			xsl = new ActiveXObject('MSXML2.FreeThreadedDOMDocument.3.0'); //.4.0
			xsl.async = false;
			xsl.load("infokit.xsl");
			if (xsl.parseError.errorCode != 0) {
			// error found so show error message and stop
				infokit.innerHTML = showError(xsl);
			return false;
			}
			// Create processor
			cache = new ActiveXObject("Msxml2.XSLTemplate.3.0"); //.4.0
			cache.stylesheet = xsl;
			processor = cache.createProcessor();
			processor.input = xml;
		
			// Transform
			processor.addParameter("heading", urlAnchor);
			processor.transform();
			document.getElementById("infokit").innerHTML = processor.output;
						
		}else{
			// Browser unknown
			alert("Browser unknown");
		}
		//var fadeInAnim = new YAHOO.util.Anim(document.getElementById('detail_frame_lev'), { opacity: {to: 1} }, 1 );
		//fadeInAnim.animate();

	}


function showError(objDocument) {
	// create the error message
	var strError = new String;
	strError = 'Invalid XML file !<br />'
	   + 'File URL: ' + objDocument.parseError.url + '<br />'
	   + 'Line No.: ' + objDocument.parseError.line + '<br />'
	   + 'Character: ' + objDocument.parseError.linepos + '<br />'
	   + 'File Position: ' + objDocument.parseError.filepos + '<br />'
	   + 'Source Text: ' + objDocument.parseError.srcText + '<br />'
	   + 'Error Code: ' + objDocument.parseError.errorCode + '<br />'
	   + 'Description: ' + objDocument.parseError.reason
	return strError;
}
function sortChange(mode) {
	
	if (document.implementation && document.implementation.createDocument){
		//Mozilla - set new param and transform for task details inside strategy tab
			xsltProcessor.setParameter(null, "mode", mode);
		var resultDocument = xsltProcessor.transformToFragment(xmlSource, document);
		document.getElementById("infokit").innerHTML = "";
		document.getElementById("infokit").appendChild(resultDocument);
	} else {
		processor.addParameter("mode", mode);
	processor.transform();
	document.getElementById("infokit").innerHTML = processor.output;
	}
	markNewDocs();
	//var fadeInAnim = new YAHOO.util.Anim(xmlDiv, { opacity: {to: 1} }, .5 );
	//fadeInAnim.animate();
}

function checkUserInput(type,frameID,itemID){
	if (checkIt) clearTimeout(checkIt);
	checkIt = setTimeout(function(){sortChange(type,frameID,itemID)},350);
}
/* from http://javascript.about.com/library/bldom08.htm */
//document.getElementsByClassName = function(cl) {
//var retnode = [];
//var myclass = new RegExp('\\b'+cl+'\\b');
//var elem = this.getElementsByTagName('*');
//for (var i = 0; i < elem.length; i++) {
//var classes = elem[i].className;
//if (myclass.test(classes)) retnode.push(elem[i]);
//}
//return retnode;
//};

function markNewDocs() {
	//mark all docs with date 3 mos ago or later
	var docDate = new Date();
	var cutOffDate = new Date();//sets cut-off date to 90 days ago (aug 27 -90 = may 29)
	cutOffDate.setDate(docDate.getDate()-90);
	//alert('cut off date = ' + cutOffDate.toString());
	var allDocs = getElementsByClassName("doc-old");
	//alert('length of allDocs array = ' + allDocs.length);
	for (var i = 0; i < allDocs.length; i++) {//allDocs.length
      //var infoText = allDocs[i].childNodes[3].lastChild.tagName;//innerHTML
	  //alert(allDocs[i].childNodes.length);
	  for (var j = 0; j < allDocs[i].childNodes.length; j++) {
		  if (allDocs[i].childNodes[j].className == "doc-meta") {
			var docDateStr = allDocs[i].childNodes[j].lastChild.innerHTML;
					var dateArray = docDateStr.split("-");
					docDate.setFullYear(parseInt(dateArray[0]));
					docDate.setMonth(parseInt(dateArray[1].replace(/^[0]+/g,""))-1);  // months indexed as 0-11, so subtract 1
					docDate.setDate(1);     // day isn't tracked, so is always the first day of month
					//alert(docDate.toString());
					if (docDate>cutOffDate) {
					  allDocs[i].className = "doc-new";
					}			  	
			  }
		  }
		
    }
}
