// *******************************
// Query Library 1.0 - querylib.js
// Date: 8/1/2007
// Author: Joshua Barker
// Last Updated: 8/1/2007
// *******************************

// Gets the Query of the current external js file
// and places it into an associative array.
function getScriptQuery() // returns array
{
	var scripts=(document.scripts) ? document.scripts : 
	document.getElementsByTagName("script");
	var curScript = scripts[scripts.length-1].src;
	return nameValueCollection(parseQueryNoFile(curScript));
}

function parseFileNoQuery(fileWithoutQuery)
{
	var index=(fileWithoutQuery.lastIndexOf("?")==-1) ?
	fileWithoutQuery.length :
	fileWithoutQuery.lastIndexOf("?");
	return fileWithoutQuery.substring(0,index);
}		

function parsePathNoFile(path)
{
	var index=(path.lastIndexOf("/")==-1) ?
	path.length : path.lastIndexOf("/") + 1;
	return path.substring(0, index);
}

function parseFileNoPath(fileWithoutPath)
{
	var index=(fileWithoutPath.lastIndexOf("/")==-1) ?
	0 : fileWithoutPath.lastIndexOf("/") + 1;	
	return 	fileWithoutPath.substring(index);
}

// Grabs the query from a file path.
function parseQueryNoFile(src) // returns string
{
	var index=(src.lastIndexOf("?")==-1) ? 
	src.length : src.lastIndexOf("?");
	return src.substring(index);
}

// Places a query string into an associative array.
function nameValueCollection() // returns array
{
	var args=arguments; var query="";
	if(args.length>=1) query=args[0];
	else query=location.search;
	if(query.indexOf("?")==0) query = query.substring(1);
	var _nvc = query.split("&"); var nvc = new Array();
	for(var i=0;i<_nvc.length;i++)
	{
		var obj = _nvc[i].split("=");
		nvc[unescape(obj[0])] = unescape(obj[1]);
	}
	return nvc;
}

// Takes an associative array and creates a query string out it.
function queryString() // returns string
{
	var args=arguments; var ary=new Array(); var query="";
	if(args.length>=1) ary=args[0];
	else return location.search;
	for(var s in ary){if(ary[s]!=null && ary[s]!=undefined)
	query+="&"+escape(s)+"="+escape(ary[s]);}
	return "?"+query.substring(1);
}