function echo(string_value){
	document.write(string_value);
}

function get_valuebyid(elementid){
	element = document.getElementById(elementid);
	return element.value;
}

function set_namebyid(elementid, xvalue){
	element = document.getElementById(elementid);
	element.name = xvalue;
}

function get_classbyid(elementid){
	element = document.getElementById(elementid);
	return element.className;
}

function set_classbyid(elementid, xvalue){
	element = document.getElementById(elementid);
	element.className = xvalue;
}

function get_checkedbyid(elementid){
	element = document.getElementById(elementid);
	return element.checked;
}

function set_innerHTMLbyid(elementid, xvalue){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		element.innerHTML = xvalue;
	}	
}

function get_innerHTMLbyid(elementid){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		return element.innerHTML;
	}	
}

function set_altbyid(elementid, xvalue){
	element = document.getElementById(elementid);
	element.alt = xvalue;
}

function get_altbyid(elementid){
	element = document.getElementById(elementid);
	return element.alt;
}

function set_hrefbyid(elementid, xvalue){
	element = document.getElementById(elementid);
	element.href = xvalue;
}

function set_valuebyid(elementid, xvalue){
	element = document.getElementById(elementid);
	element.value = xvalue;
}

function set_srcbyid(elementid, newsrc){
	element = document.getElementById(elementid);
	element.src = newsrc;
}

function set_posbyid(element_id, xpos, ypos){
	element = document.getElementById(element_id);
	element.style.top = ypos+'px';
	element.style.left = xpos+'px';
}

function set_sizebyid(elementid, ewidth, eheight){
	element = document.getElementById(elementid);
	element.style.width = ewidth+'px';
	element.style.height = eheight+'px';
}

function set_borderbyid(elementid, width, style, color){
	element = document.getElementById(elementid);
	element.style.borderWidth = width+'px';
	element.style.borderStyle = style;
	element.style.borderColor = '#'+color;
}

function nl2br(string){
	return string.replace(/\n/g,'<br />');
}

function hide_byid(elementid){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		element.style.display = "none";
	}
}

function show_byid(elementid){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		element.style.display = "block";
	}	
}

function disable_byid(elementid){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		element.disabled = true;
	}	
}

function enable_byid(elementid){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		element.disabled = false;
	}	
}

function set_backgroundbyid(elementid, background_value){
	if(exist_byid(elementid)){
		element = document.getElementById(elementid);
		element.style.background = background_value;
	}
}

function exist_byid(elementid){
	element = document.getElementById(elementid);
	if(element){
		return true;
	}else{
		return false;
	}
}

function is_visible_byid(elementid){
	element = document.getElementById(elementid);
	if(element.style.display != 'none'){
		return true;
	}else{
		return false;
	}
}

function is_hex_color(color){
	var re=/^([#]){1}([a-f]|[A-F]|[0-9]){3}([a-f]|[A-F]|[0-9]){3}$/i;
	var t=re.exec(color);
	return (re.test(color));
}

function is_email(email){
	var verif = /^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,4}$/;
	if (verif.exec(email) == null){
		return false;
	}else{
		return true;
	}
}

function is_alphanumeric(an_string){
	var verif = /^\w*$/;
	if (verif.exec(an_string) == null){
		return false;
	}else{
		return true;
	}
}

function is_numeric(num){
	var verif = /^\d+$/;
	if (verif.exec(num) == null){
		return false;
	}else{
		return true;
	}
}

function trim(string){
    return string.replace(/^\s+/, '').replace(/\s+$/, '');
}

function ltrim(string){
    return string.replace(/^\s+/, '');
}

function rtrim(string){
    return string.replace(/\s+$/, '');
}

function strlen_between(string, min_length, max_length){
	string = trim(string);
	if((is_numeric(min_length)) && (is_numeric(max_length))){
		if((string.length>=min_length) && (string.length<=max_length)){
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

function extract_numerics(stringNo){
	var parsedNo = "";
	for(var n=0; n<stringNo.length; n++){
		var i = stringNo.substring(n,n+1);
		if(i=="1"||i=="2"||i=="3"||i=="4"||i=="5"||i=="6"||i=="7"||i=="8"||i=="9"||i=="0"){
			parsedNo += i;
		}
	}
	return parseInt(parsedNo);
} 

function stick_positionbyid(element, elementid, x_decal, y_decal){
	if(exist_byid(elementid)){
		position = get_absolute_position(element);
		if(x_decal){position.x = position.x + x_decal;}
		if(y_decal){position.y = position.y + y_decal;}
		set_posbyid(elementid, position.x, position.y);
	}
}

function combo_clearbyid(element_id){
	element = document.getElementById(element_id);
	while((element.length>0) && (element.options[element.length - 1]!=null)){
		element.options[element.length - 1] = null;
	}
}

function combo_selectallbyid(element_id){
	element = document.getElementById(element_id);
	var i;
	for(i=element.options.length-1;i>=0;i--){
		element.options[i].selected = 'selected';
	}
}

function combo_removeoptionbyid(element_id, option_index){
	element = document.getElementById(element_id);
	if((element.length>0) && (element.options[element.length - 1]!=null)){
		element.options[option_index] = null;
	}
}

function combo_removeselectedoptionsbyid(element_id){
	element = document.getElementById(element_id);
	var i;
	for(i=element.options.length-1;i>=0;i--){
		if(element.options[i].selected){
			element.remove(i);
		}
	}
}

function combo_addbyid(element_id, cbo_value, cbo_text){
	element = document.getElementById(element_id);
	element.options[element.length] = new Option(cbo_text, cbo_value);
}

function get_absolute_position(element) {
	var r = { x: element.offsetLeft, y: element.offsetTop };
	if (element.offsetParent) {
		var tmp = get_absolute_position(element.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}

function in_array(needle, haystack, argStrict){ 
	var key = '', strict = !!argStrict;
 
	if (strict) {
		for (key in haystack) {
			if (haystack[key] === needle) {
				return true;
			}
		}
	} else {
		for (key in haystack) {
			if (haystack[key] == needle) {
				return true;
			}
		}
	}
	return false;
}

function is_array(obj) {
	if (obj.constructor.toString().indexOf("Array")==-1){
		return false;
	}else{
		return true;
	}
}

function do_submitbyid(elementid, act){
	element = document.getElementById(elementid);
	element.action = act;
	element.submit();
}

function add_row_to_table(table_id, cells_content){
	var nb_cells = 0;
	if(is_array(cells_content)){
		var nb_cells = cells_content.length;
	}
	if(nb_cells>0){
	    var tbody = document.getElementById(table_id).getElementsByTagName("TBODY")[0];
    	var row = document.createElement("TR")
    	for(cell_index in cells_content){
			var cell = document.createElement("TD");
			cell.innerHTML = cells_content[cell_index];
			row.appendChild(cell);    	
    	}
		tbody.appendChild(row);
		return true;
	}
	return false;
}

function remove_last_row_from_table(table_id){
    var tbody = document.getElementById(table_id).getElementsByTagName("TBODY")[0];
	tbody.removeChild(tbody.lastChild);
	return true;
}
