// JavaScript Document
/**** Javascript client-side variables using the extended QueryStrings API: ***/

// file: pagequery_api.js
// javascript query string parsing utils
// pass location.search to the constructor: var page = new PageQuery(location.search)
// get values like: var myValue = page.getValue("param1") etc.
// djohnson@ibsys.com {{djohnson}}
// you may use this file as you wish but please keep this header with it thanks

function PageQuery(q) {
	if(q.length > 1) this.q = q.substring(1, q.length);
	else this.q = null;
	this.keyValuePairs = new Array();
	if(q) {
		for(var i=0; i < this.q.split("&").length; i++) {
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function(s) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0] == s)
				return this.keyValuePairs[j].split("=")[1];
		}
		return -1;
	}
	this.getParameters = function() {
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) {
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}
	this.getLength = function() { return this.keyValuePairs.length; }	
}

// Proper case string prptotype (JScript 5.5+) by Tor2k.
// From: http://www.codeproject.com/jscript/propercase.asp
// MBR:Changed from "space" (/^(.)|\s(.)/g) to "(/^(.)|\_(.)/g)".
String.prototype.toProperCase = function()
{
  return this.toLowerCase().replace(/^(.)|\_(.)/g, 
      function($1) { return $1.toUpperCase(); });
}

//Bajo licencia GPL por Marc Bria.
//Correo-e (a prueba de robots): marc.bria(una a con redondel?)uab.es.

//Returns the selected variable from the querystring.pVariable
function getVar(pVariable,pDefault) {
	var tVariable = "";
	
	//Try to get via queryString
	var qs = new PageQuery(location.search);
	tVariable = qs.getValue(pVariable);
			
	if (tVariable == -1) {
		tVariable=pDefault;
	}
	return tVariable;
}

//Draws the taxonomy:
function getTaxonomy() {

	var tIndex = getVar("taxonomy", "inicio").toProperCase();
	var sIndex=tIndex.split("_");
	
	var tIndexId = getVar("taxonomy_id", "1");
	var sIndexId=tIndexId.split("_");
	var sPath = "inicio";
	var sId = "1";
	var sToGo = "index.html?taxonomy="+ sPath +"&amp;taxonomy_id="+ sId;
	
	sTaxonomy="<a href=\""+ sToGo+"\">Inicio</a>";

	if (sIndex.length > 1) {
		for (i=1; i<sIndex.length; i++) {
			sPath = sPath + "_" + sIndex[i].toLowerCase();
			sId = sId + "_" + sIndexId[i];
			sToGo = "index.html?taxonomy="+ sPath +"&amp;taxonomy_id="+ sId;
			sTaxonomy = sTaxonomy + "&nbsp;/&nbsp;<a href=\""+ sToGo +"\">"+ sIndex[i] +"</a>";
		}
	}

	return sTaxonomy;
}

//Load XML data with XSL styles based on the file name.
function autoLayout() {
	XSLTransform('es_ES/'+ getVar("taxonomy", "inicio").toLowerCase() +'.xml','lib/basic.xsl','central');
	XSLTransform('es_ES/lateral.xml','lib/basic.xsl','lateral');
}

