﻿/*
  getQuerystring : Mimics ASP's Request.Querystring Array as a client-side javascript method
	
	can be used two ways. Calling without arguments returns the raw querystring
	as an array object of key=value strings. 
	
	called with an argument, it will return the value of a key-value pair in
	the querystring variable. If the key is not found, it returns an empty string ('')
	
	*/


function getQuerystring()	
{
	if(arguments.length>1) return 'error : only one argument may be used';
	  var resArray = new Array();	var qs = self.location.search; 
	  var raw = qs.substring(1,qs.length); var keys = raw.split('&');
	
	  if(arguments.length>0)	
	  { 
	    var txt = arguments[0].toString();	
	    var txtLen = txt.length; var y = 0;					
		
		  for(var x=0;x<keys.length;x++)	
		  {
			  if(keys[x].substring(0,txtLen) == txt)	
			  {
				  resArray[y] = keys[x].substring(txt.length+1,keys[x].length); y++;
			  }
		  } 
		  
		  if(resArray.length>0) 
			  return resArray
		  else 
		    return '';
    }		
	  else	
	  {
		return keys
	  }	
}

function getPageName(){
  var sPath = window.location.pathname;
  var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
  return sPage;
}

function displayHeaderLinks(){
  var sPage = getPageName();
  var sStyle = '/includes/xsl/homelinks.xsl';
  var sData
  
  switch (sPage) {
    case '':
      sData = '/DataFiles/homelinks.xml';
      break
    case 'viewForum.aspx':
      sData = '/DataFiles/'+getQuerystring('s')+'/'+getQuerystring('b')+'/'+getQuerystring('c')+'/'+getQuerystring('f')+'_links.xml';
      break
    case 'viewCategory.aspx':
      sData = '/DataFiles/'+getQuerystring('s')+'/'+getQuerystring('b')+'/'+getQuerystring('c')+'_links.xml'
      break
    case 'viewtopic.aspx':
      sData = '/DataFiles/'+getQuerystring('s')+'/'+getQuerystring('b')+'/'+getQuerystring('c')+'/'+getQuerystring('f')+'/'+getQuerystring('t')+'_links.xml';
      break
    default:
      sData = '/DataFiles/home_links.xml';
      break
  }

    loadXML(sStyle, sData, 'testLinks');  
}

function loadXMLHeader(style, data)
{
  var xslStylesheet = style;
  var xmlDatafile = data;
  
  var xslDoc = Sarissa.getDomDocument();
  xslDoc.async = false;
  xslDoc.load(xslStylesheet);
  var processor = new XSLTProcessor();
  processor.importStylesheet(xslDoc);
  
  //var resultDoc = processor.transformToDocument(xmlDatafile);
  //document.write(new XMLSerializer().serializeToString(resultDoc));
}

function loadXML(style, data, target)
{
  var xslStylesheet = style;
  var xmlDatafile = data;
  var xmlTargetId = target;

  var xslDoc = Sarissa.getDomDocument();
  xslDoc.async = false;
  xslDoc.load(xslStylesheet);
  var processor = new XSLTProcessor();
  processor.importStylesheet(xslDoc);
  
  var targetElem = document.getElementById(xmlTargetId);
  Sarissa.updateContentFromURI(xmlDatafile, targetElem, processor);
  //var resultDoc = processor.transformToDocument(xmlDatafile);
  //document.write(new XMLSerializer().serializeToString(resultDoc));
  
}


function addUserXML(sVarName, sVarValue, objXDoc, objEle)
{
    var uservar = objXDoc.createElement(sVarName);
    var newText = objXDoc.createTextNode(sVarValue);
    var uservarT = objEle.appendChild (uservar);
    uservarT.appendChild(newText);
  
}

function render_cdata() {
   var version=0;
   if (navigator.appVersion.indexOf("MSIE")!=-1){
      temp=navigator.appVersion.split("MSIE");
      version=parseFloat(temp[1]);
   }
   if (version < 5.5) {
      var to_decode = document.getElementsByName('decodeable');
      var s;
   
      for(var i = to_decode.length - 1; i >= 0; i--) {   
         s = to_decode[i].textContent;
         if(s == undefined || (s.indexOf('&') == -1 && s.indexOf('<') == -1)) {
         } else {
            to_decode[i].innerHTML = s;
         }
      }
   return;
   }
} 