/**
 * A TOOL, WHICH HANDLES ADDRESS PATH AND URL
 * @author Timo 5.09.2005
 */
Log.urlTool={
		ANCHOR:'#',
		SLASH:"/",
		DOT:'.'
}

/**
 * METHODS
 * @see PROPERTIES below
 */
/**
 * GET VALUES OF ALL THE URL VARIABLES
 * & PASS THEM TO ANOTHER FUNCTION
 * @param f_unction=arguments[arguments.length-1] 
 * @param s_separator=arguments[arguments.length-2] 
 * @return false if(this.urlVariables==""||f_unction==null)
 * E.G. onclick='Log.urlTool.getURLVariables("width", "height", "U", SQLHandler.update);'
 */
Log.urlTool.getURLVariableArrays=function(){
	var s_return='';
	/**
	 * Don't mix s_separator & f_unction with URL variables!
	 */
	var i_wend=arguments.length-2;
	var i_argument=0;
	var s_tokenizer=arguments[i_argument];
	var s_separator=arguments[i_wend];
	var f_unction=arguments[i_wend+1];

	if(this.urlVariables==null){Log.urlTool.getAllURLVariables(location.href, HtmlTag.FILE_EXTENSION);}
	if(this.urlVariables==""||f_unction==null){
		return false;
	}else{
		var iAanchor=this.urlVariables.indexOf(Log.urlTool.ANCHOR);
		if(iAanchor!=-1){
			this.urlVariables=this.urlVariables.substring(0,iAanchor);
		}//if(iAanchor
	}//if(this.urlVariables
	/**
	 * GET ARRAY OF URL VARIABLE SETS, IDENTIFIED BY THE SAME STRING
	 * E.G. "16A" in: height_16A=100&width_16A=170
	 */
	var statement_Array=new Array();
	var sets_Array=new Array();
	sets_Array=Log.charTool.tokenize(this.urlVariables, s_tokenizer);
	var i_length=sets_Array.length;
	/**
	 * GET STATEMENTS FROM THESE URL VARIABLE SETS
	 * E.G. height_16A=100
	 */
	var i_sets=i_length;
	while(i_sets>0){
		i_sets=i_sets-1;
		i_argument=i_wend;

		statement_Array[i_sets]=new Array();
		while(i_argument>0){
			i_argument=i_argument-1;
			var value_Array=new Array();

			var s_variableSet=sets_Array[i_sets];
			s_tokenizer=arguments[i_argument];
			if(s_variableSet!=null&&s_variableSet!=""&&s_tokenizer!=null&&s_tokenizer!=""){
				value_Array=Log.charTool.tokenize(s_variableSet, s_tokenizer);

				if(value_Array[0]!=null){
					statement_Array[i_sets][i_argument]=value_Array[0];
				}//if(value_Array[0]==null&&value_Array[1]==null

				sets_Array[i_sets]=value_Array[1];
			}//if(s_variableSet!=null&&s_variableSet!=""&&s_tokenizer!=null&&s_tokenizer!=""
		}//while(i_argument
	}//while(i_sets
	/**
	 * GET VARIABLES & VALUES FROM THESE STATEMENTS
	 * E.G. height, 16A, 100
	 * & PASS THEM TO ANOTHER FUNCTION
	 */
	s_tokenizer=s_separator;
	var i_sets=i_length;
	while(i_sets>0){
		i_sets=i_sets-1;
		i_argument=i_wend;
		while(i_argument>0){
			i_argument=i_argument-1;
			var s_statement=statement_Array[i_sets][i_argument];
			var urlVariable_Array=new Array();
			urlVariable_Array=Log.charTool.tokenize(s_statement,'=','','&','=');

			var s_variableName=urlVariable_Array[0];
			var index_Array=new Array();
			index_Array=Log.charTool.tokenize(s_variableName, s_tokenizer, '', s_tokenizer);

			if(index_Array[0]!=null&&index_Array[0]!=""&&s_statement.indexOf(arguments[i_argument])!=-1){
				s_return=f_unction(index_Array[0], urlVariable_Array[1], index_Array[1]);
			}//if(value_Array[0]==null&&value_Array[1]==null
		}//while(i_argument
	}//while(i_sets
}//getURLVariableArrays

Log.urlTool.getURLVariables=function(){
	var s_return='';
	/**
	 * Don't mix s_separator & f_unction with URL variables!
	 */
	var i_wend=arguments.length-2;
	var i_argument=0;
	var s_tokenizer=arguments[i_argument];
	var s_separator=arguments[i_wend];
	var f_unction=arguments[i_wend+1];

	if(this.urlVariables==null){Log.urlTool.getAllURLVariables(location.href, HtmlTag.FILE_EXTENSION);}
	if(this.urlVariables==""||f_unction==null){
		return false;
	}else{
		var iAanchor=this.urlVariables.indexOf(Log.urlTool.ANCHOR);
		if(iAanchor!=-1){
			this.urlVariables=this.urlVariables.substring(0,iAanchor);
		}//if(iAanchor
	}//if(this.urlVariables
	/**
	 * GET ARRAY OF URL VARIABLE SETS, IDENTIFIED BY THE SAME STRING
	 * E.G. "16A" in: height_16A=100&width_16A=170
	 */
	var statement_Array=new Array();
	var sets_Array=new Array();
	sets_Array=Log.charTool.tokenize(this.urlVariables, s_tokenizer);
	var i_length=sets_Array.length;
	/**
	 * GET STATEMENTS FROM THESE URL VARIABLE SETS
	 * E.G. height_16A=100
	 */
	var i_sets=i_length;
	while(i_sets>0){
		i_sets=i_sets-1;
		i_argument=i_wend;

		statement_Array[i_sets]=new Array();
		i_argument=i_argument-1;
		var value_Array=new Array();

		var s_variableSet=sets_Array[i_sets];
		s_tokenizer='&';
		if(s_variableSet!=null&&s_variableSet!=""&&s_tokenizer!=null&&s_tokenizer!=""){
			value_Array=Log.charTool.tokenize(s_variableSet, s_tokenizer);

			if(value_Array[0]!=null){
				statement_Array[i_sets][i_argument]=value_Array[0];
			}//if(value_Array[0]==null&&value_Array[1]==null

			sets_Array[i_sets]=value_Array[1];
		}//if(s_variableSet!=null&&s_variableSet!=""&&s_tokenizer!=null&&s_tokenizer!=""
	}//while(i_sets
	/**
	 * GET VARIABLES & VALUES FROM THESE STATEMENTS
	 * E.G. height, 16A, 100
	 * & PASS THEM TO ANOTHER FUNCTION
	 */
	s_tokenizer=s_separator;
	var i_sets=i_length;
	while(i_sets>0){
		i_sets=i_sets-1;
		i_argument=i_wend;
		while(i_argument>0){
			i_argument=i_argument-1;
			var s_statement=statement_Array[i_sets][i_argument];
			var urlVariable_Array=new Array();
			urlVariable_Array=Log.charTool.tokenize(s_statement,'=','','&','=');

			if(urlVariable_Array[0]!=null&&urlVariable_Array[0]!=""&&s_statement.indexOf(arguments[i_argument])!=-1){
				s_return=f_unction(urlVariable_Array[0], urlVariable_Array[1], urlVariable_Array[1]);
			}//if(value_Array[0]==null&&value_Array[1]==null
		}//while(i_argument
	}//while(i_sets
}//getURLVariables

/**
 * GET THE SUBSTRING FROM URL, WHICH CARRIES URL VARIABLES
 * @param s_href=location.href
 * @param s_extension=file extension
 * @return property this.urlVariables
 */
Log.urlTool.getAllURLVariables=function(s_href, s_extension){
	this.urlVariables=s_href.substring(s_href.lastIndexOf(s_extension)+s_extension.length, s_href.length);
	var postIndex=this.urlVariables.indexOf('?');
	if(postIndex!=-1){
		this.urlVariables=this.urlVariables.substring(postIndex+1,this.urlVariables.length);
	}//if
	return this.urlVariables;
}//getAllURLVariables

/**
 * @return sInput.substring(iAanchor+sAanchor.length,sInput.length);
 * or sInput if there's no anchor
 */
Log.urlTool.getAnchorName=function(sInput){
	var sAanchor='#';
	var iAanchor=sInput.indexOf(sAanchor);
	return sInput.substring(iAanchor+sAanchor.length,sInput.length);
}//getAnchorName

Log.urlTool.removeFileExtensionAndFolder=function(filePath){
	var slashLength=this.SLASH.length;
	var slashIndex=filePath.lastIndexOf(this.SLASH);
	var dotIndex=filePath.lastIndexOf(this.DOT);
	return filePath.substring(slashIndex+slashLength,dotIndex);
}//removeFileExtensionAndFolder

