window.initHandlers = new Array();

window.addInitHandler = function(handler) {
    this.initHandlers[this.initHandlers.length] = handler;
}

window.onload = function() {
    for (var i=0; i<this.initHandlers.length; ++i) {
        this.initHandlers[i]();
    }
}

/* Función que retorna los elementos html con el class especificado */
function getElementsByClassName(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null) node = document;
    if (tag == null) tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; ++i) {
        if ( pattern.test(els[i].className) ) {
            classElements[j++] = els[i];
        }
    }
    return classElements;
}

function select_input(){
	if (!this.modified){
		this.select();
	}
}

function marked_input_change(){
    this.modified=true;
}

function register_inputs_event(){
    var inputs = getElementsByClassName('input-text',null,null);
    for(i in inputs){
        inputs[i].onfocus=select_input;
        inputs[i].onchange=marked_input_change;
    }
    inputs = getElementsByClassName('input-textarea',null,null);
    for(i in inputs){
        inputs[i].onfocus=select_input;
        inputs[i].onchange=marked_input_change;
    }
}

function add_to_favorites(title,url){
    if (document.all){//IE
        window.external.AddFavorite(url,title);
    }else if (!document.layers && !document.all){//Firefox
        window.sidebar.addPanel(title, url,"");
    }
}

window.addInitHandler(register_inputs_event);
