/* 
*	03.06.2003
*	Sascha Österle
*
*	JS Lib zur bearbeitung einer übergebenen URL
*/

/*
* 	getUrlFullFilePath(urlString)
*	gibt von der Übergebenen URL den absoluten Pfad zur Datei zurück,
*	eventuell vorhandene Parameter werden Abgeschnitten.
*/

function getUrlFullFilePath (urlString) {
  var urlFile = urlString;
	if (urlString.indexOf("?") != -1) {
		urlFile = urlString.split("?")[0];
	}
  return urlFile;	
}

/*
* 	getUrlFullPath(urlString)
*	gibt von der Übergebenen URL den absoluten Pfad ohne Dateiname zurück,
*	eventuell vorhandene Parameter werden Abgeschnitten.
*/
function getUrlFullPath (urlString) {
  var urlPath = null;

	//falls vorhanden entferne Parameter
	urlPath = getUrlFullFilePath(urlString);

	// falls das letzte Zeichen ein "/" ist ist es schon ein Pfad -> mach nichts
	if (urlPath.lastIndexOf("/") != urlPath.length - 1) {
		urlPath = urlPath.substring(0,urlPath.lastIndexOf("/")+1);		
//		alert(urlPath);
	}
  return urlPath;	
}

/*
* 	getUrlFile(urlString)
*	gibt von der Übergebenen URL nur den Dateinamen zurueck
*	eventuell vorhandene Parameter werden Abgeschnitten.
*/
function getUrlFile (urlString) {
  var urlPath = null;

	//falls vorhanden entferne Parameter
	urlPath = getUrlFullFilePath(urlString);

	// falls das letzte Zeichen ein "/" ist ist es schon ein Pfad -> mach nichts
	if (urlPath.lastIndexOf("/") != urlPath.length - 1) {
		urlPath = urlPath.substring(urlPath.lastIndexOf("/")+1,urlPath.length);		
//		alert(urlPath);
	}
  return urlPath;	
}



/*
* 	getUrlParamArray(urlString)
*	gibt von der Übergebenen URL etwaige Parameter in einem Array zurück.
*	falls keine parameter vorhanden sind wird "null" zurück gegeben.
*/

function getUrlParamArray (urlString) {
  var urlParams = null;
  var urlParamsArray = null;
	if (urlString.indexOf("?") != -1) {
		urlParams = urlString.split("?")[1];
		urlParams = urlParams.split("&");

		urlParamsArray = new Array();
		for (i = 0; i < urlParams.length; i++) {
			urlParamsArray[i] = urlParams[i].split("=");
		}	

	}
  return urlParamsArray;
}


/*
* 	createUrlParameters(parameterArray)
*	erzeugt aus dem übergebenen Array (muss die von getUrlParamArray(urlString)
*	struktur haben) einen parameterstring (z.b.: "?param1=hallo&param2=welt")
*/

function createUrlParameters (parameterArray) {

  if (parameterArray == null) {
	return null;
  } 

  parameterString = "?";

  for (i = 0; i < parameterArray.length; i++) {
	parameterString += parameterArray[i][0] + "=" + parameterArray[i][1];
	if (i < parameterArray.length - 1) { 
		parameterString += "&";
	}
  }
  return parameterString;
}


/*
* 	setParamValue (parameterArray, key, value)
*	setzt oder überschreibt den value des parameters key und gibt das 
*	veränderte array zurück
*/

function setParamValue (parameterArray, key, value) {
//alert ("setParamValue("+parameterArray+" - "+key+" - "+value+")");
  keyFound = false;
  
  //falls kein array übergeben wurde, erstelle eines
  if(parameterArray == null || parameterArray.length == null) {
  	parameterArray = new Array();
  }
  for (i = 0; i < parameterArray.length; i++) {
	if (parameterArray[i][0] == key) {
		parameterArray[i][1] = value;
		keyFound = true;
	}	
  }

  if (keyFound == false) {
//	alert(parameterArray.length);
	parameterArray[parameterArray.length] = new Array();
  	parameterArray[parameterArray.length -1 ][0] = key;
	parameterArray[parameterArray.length -1 ][1] = value;
  }
  
  return parameterArray;
}

/*
* 	getParamValue (parameterArray, key)
*	gibt den wert des parameters "key" aus dem array zurück
*	
*/

function getParamValue (parameterArray, key) {

  keyValue = null;
  for (i = 0; i < parameterArray.length; i++) {
	if (parameterArray[i][0] == key) {
		keyValue  = parameterArray[i][1];
	}	
  }

  
  return keyValue;
}


/*
* 	removeParam (parameterArray, key)
*	gibt den parameters "key" inkl wert aus dem array und gibt es dann zurueck
*	
*/

function removeParam (parameterArray, key) {

  newArray = new Array();

  for (i = 0, j = 0; i < parameterArray.length; i++) {

	if (parameterArray[i][0] != key) {
		newArray[j] = newArray(parameterArray[i][0],parameterArray[i][1]);
		j++
	}
  }
  
  return newArray;
}