//
// C_CORE - A class for classic JavaScript functions.
//
function c_core( ) {
    this.get_element_by_id = get_element_by_id;
    this.get_element_value_by_id = get_element_value_by_id;
    this.get_elements_by_tagname = get_elements_by_tagname;
    this.set_element_inner_html = set_element_inner_html;
    this.set_element_class_name = set_element_class_name;
    this.trim = trim;
    this.trim_value = trim_value;
    
	function get_element_by_id( element_id ) {
		// Check to see if the browser implements the function, then use it
		if ( !document.getElementById ) {
            return false;
		}
		return document.getElementById( element_id );
	}
	
	function get_element_value_by_id( element_id ) {
	    var element = get_element_by_id( element_id );
	    try {
	       return trim_value( element.value );
	    } catch( error ) {
	       //alert( "Error obtaining value for " + element_id );
		   return false;
	    }
	}

	function get_elements_by_tagname( tagname ) {
		//alert( "get_elements_by_tagname called" );
        // var elements = core.get_elements_by_tagname( tagname );
		if ( !document.getElementsByTagName ) {
			return false;
		}
		return document.getElementsByTagname( tagname );
	}

	function set_element_inner_html( element_id, inner_html ) {
		//alert( "set_element_inner_html called" );
        var element = get_element_by_id( element_id );
		if ( !element ) {
		    return false;
		}
		if ( !document.setInnerHtml ) {
	        return false;
	    }
		element.innerHTML = inner_html;
	}

	function set_element_class_name( element_id, class_name ) {
		//alert( "set_element_class_name called" );
        var element = get_element_by_id( element_id );
		if ( !element ) {
		    return false;
		}
		element.className = class_name;
	}
	
	function trim( element_id ) {
		//alert( "trim called" );
        var element = get_element_by_id( element_id );
		if ( element ) {
            return element_id.value.replace( /^\s+|\s+$/g, '' ); // [1]
		} else {
			return false;
		}
		// References for trimming strings in JavaScript:
		// [1] http://www.somacon.com/p355.php
		// [2] http://wonko.com/article/498
		// [3] http://javascript.crockford.com/remedial.html
	}
	
	function trim_value( value ) {
		//alert( "trim_value called" );
        return value.toString( ).replace( /^\s+|\s+$/g, '' );
	}
}

