/*
 * jQuery request 1.0 - Http get request data reader
 *
 * Copyright (c) 2007 Margus Rebane http://foxjunior.pri.ee/
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * window.location.parameterNames - consists list of request parameter names
 *  window.location.parameters - consists map of parameters
 *  window.location.parametersArray - consists map of parameter array
 */
 jQuery.fn.extend({
 	splitAttributes: function() {
 		if (this.parameters != null && this.parameterNames != null && this.parametersArray != null) {
 			return;
 		}
 		if ($(this).is("a")) {
 			this.uriPath = $(this).attr("href");
 		} else if ($(this).is(document)) {
 			this.uriPath = window.location.href;
 		}
 		var baseSearch = this.uriPath.split("?");
 		this.baseUrl = baseSearch[0];
 		var params = baseSearch[1];
		this.parameters = new Array();
		this.parameterNames = new Array();
		this.parametersArray = new Array();
		if (params != null && params.length > 1) {
			var keyValuePairs = params.split("&");
			for(var i=0; i < keyValuePairs.length; i++) {
				var keyLoc = keyValuePairs[i].indexOf("=");
				var key = keyValuePairs[i].substring(0,keyLoc);
				var val = keyValuePairs[i].substring(keyLoc + 1);
				if (this.parametersArray[key] != null) {
					this.parametersArray[key][this.parametersArray[key].length] = val;
				} else if (this.parameters[key] != null) {
					this.parametersArray[key] = new Array();
					this.parametersArray[key][0] = this.parameters[key];
					this.parametersArray[key][1] = val;
					var tempArray = new Array();
					for (var a in this.parameters) {
						if (a != key) {
							tempArray[a] = this.parameters[a];
						}
					}
					this.parameters = tempArray;
				} else {
					this.parameters[key] = val;
					this.parameterNames[this.parameterNames.length] = key;
				}
			}
		}
 	},
	getAttributes: function(key) {
		this.splitAttributes();
		return this.parameters[key]; 
	},
	setAttributes: function(paramsMap) {
		this.splitAttributes();
		for (var i in paramsMap) {
			this.parameters[i] = paramsMap[i];
		}
	},
	getUrl: function() {
		this.splitAttributes();
		var compiledPath = "";
		for (var i in this.parameters) {
			if (compiledPath != "") compiledPath += "&";
			compiledPath += (i + "=" + this.parameters[i]);
		}
		return this.baseUrl + "?" + compiledPath;
	}
});
jQuery(document).ready(
	function() {
		var location = window.location.search;
		var parameters = new Array();
		var parameterNames = new Array();
		var parametersArray = new Array();
		if (location != null && location.length > 1) {
			var keyValuePairs = location.substring(1).split("&");
			for(var i=0; i < keyValuePairs.length; i++) {
				var keyLoc = keyValuePairs[i].indexOf("=");
				var key = keyValuePairs[i].substring(0,keyLoc);
				var val = keyValuePairs[i].substring(keyLoc + 1);
				if (parametersArray[key] != null) {
					parametersArray[key][parametersArray[key].length] = val;
				} else if (parameters[key] != null) {
					parametersArray[key] = new Array();
					parametersArray[key][0] = parameters[key];
					parametersArray[key][1] = val;
					var tempArray = new Array();
					for (var a in parameters) {
						if (a != key) {
							tempArray[a] = parameters[a];
						}
					}
					parameters = tempArray;
				} else {
					parameters[key] = val;
					parameterNames[parameterNames.length] = key;
				}
			}
		}
		jQuery.extend(window.location,  {
			parameters: parameters,
			parametersArray: parametersArray,
			parameterNames: parameterNames }
		);
	}
);
