// String Oriented functions
// No reference to DOM
// BW introduce RSURLCst
function RSURLCst( url) {return url;}
function RSLNGCst( txt) {return txt;}

//AM20020613
//BeginWith function check if string str begin with strbegin characters
// return a bool.
//Note: BeginWith is not case sensitive.
function BeginWith( str, strbegin)
{
    var L = strbegin.length;
    var i;
    for( i=0; i<L; i++)
    {
	if ( (str.charAt(i)).toLowerCase() != (strbegin.charAt(i)).toLowerCase())
	    return false;
    }
    return true;
}

//AM20020613
//ReplaceFirstOccurence function replace in str
//the first occurence of searchChar by replacechar
function ReplaceFirstOccurence( str, searchchar, replacechar)
{
    var count = str.length;
    var i=0;
    var first= true;
    var res = "";
    for (i=0; i<count; i++)
    {
        var cur = str.charAt(i);
        if (( searchchar == cur) && ( first == true))
        {
    	    res = res + replacechar;
    	    first=false;
        }
        else
    	    res = res + cur;
    }
    return res;
}

//AM20020613
//GetStringBefore function return the string before the last delimiter of a string, and
//		return the entire string if delimiter not found
//str = String where limiter is searched
//limiter = the character searched
//ex: GetStringBefore( "/heinrichBock/Catalog/family.asp?xxxx", "/");
//    return "/heinrichBock/Catalog/"
//    and
//    GetStringBefore( "/heinrichBock/Catalog/family.asp?xxxx", "?");
//    return "/heinrichBock/Catalog/family.asp?"    
function GetStringBefore( str, limiter)
{
    var count = str.length;
    var i=0;
    var first= true;
    var res = "";
    for (i=count-1; i>=0; i--)
    {
        var cur = str.charAt(i);
        if (( limiter == cur) && ( first == true))
        {
    	    res = cur;
    	    first=false;
        }
        else
    	    res = cur + res;
    }
    return res;
}
