// cac.js


function roll(img_name, img_src) {
   document[img_name].src = img_src;
}

/*
function gmap_window() {
	var w = window.open("http://www.caryalliance.org/map1010.php", "map", "width=400,height=600,status=yes,resizable=no");
	return;
}
*/

function trim_string (str) {
    if (is_null(str)) {
        return("");
    }
    
    var start, end;

    for (start = 0; start < str.length; start++) {
        if (str.charAt(start) != ' ') {
            break;
        }
    }

    for ( end = (str.length - 1); end > start; end--) {
        if (str.charAt(end) != ' ') {
            break;
        }
    }

    end++;

    if ((start == 0) && (end == str.length))
    {
        return(str);
    }
    else if (start == str.length)
    {
        return "";
    }
    else
    {
        return str.substring(start, end);
    }
}

function is_alpha (chr)
{
    var rval = false;

    if ((chr >= 'a') && (chr <= 'z'))
    {
        rval = true;
    }
    else if ((chr >= 'A') && (chr <= 'Z'))
    {
        rval = true;
    }

    return rval;
}

function is_digit (chr)
{
    return (((chr >= '0') && (chr <= '9')) ? true : false);
}

function is_not_null (s)
{
    return (s != null) && (s != "");
}

function is_null (s)
{
    return !is_not_null (s);
}

/*
 * Assertions
 */

function assert (b, m)
{
    if (b == false)
    {
        var s = "Assertion failed";
        
        if (m != null)
        {
            s += " - ";
            s += m;
        }

        s += "\n\n";
        
        for (var a = arguments.caller; a != null; a = a.caller)
        {
            s += _funcname(a.callee) + "\n";
            
            if (a.caller == a)
            {
                break;
            }
        }

        alert(s);
    }
}

function _funcname (f)
{
    var rval = f.toString().match(/function (\w*)/)[1];
    
    if (is_null(rval))
    {
        rval = "anonymous";
    }
    
    return rval;
}
