var namespace = function(name, separator, container){
  var ns = name.split(separator || '.'),
    o = container || window,
    i,
    len;
  for(i = 0, len = ns.length; i < len; i++){
    o = o[ns[i]] = o[ns[i]] || {};
  }
  return o;
};


namespace("se.skiptrip.core");
se.skiptrip.core = {
    onLoadTasks: new Array(),

    addOnLoad: function(f) {
        this.onLoadTasks[this.onLoadTasks.length] = f;
    },
    
    onLoad: function() {
        for (var i=0; i < this.onLoadTasks.length; i++)
            this.onLoadTasks[i]();
    },
    
    focusOnLoad: function(form, input) {
        this.addOnLoad(function() {
            se.skiptrip.util.setFocus(form, input);
        });
    }
}

namespace("se.skiptrip.util");
se.skiptrip.util = {

    uradio: function(button) {
        $("input[@type='radio']").removeAttr("checked");
        $(button).attr("checked", "checked");
    },
    
    setInput: function(id, value) {
        $("#" +id).attr("value", value);
    },
    
    entityDecode: function(str) {
        return str != null ? $("<div>" +str+ "</div>").html() : "";
    },
    
    setFocus: function(formName, inputName) {
        var form = document[formName];
        if (form != null)
            form[inputName].focus();
    },
    
    isNumeric: function(v) {
        if (v == null)
            return false;
        v = v.replace(",", ".");
        return (v - 0) == v && v.length > 0;    
    },
    
    endsWidth: function(str, suffix) {
        if (str == null || suffix == null)
            return false;
        return str.indexOf(suffix, str.length - suffix.length) !== -1;
    },
    
    trim: function(str) {
        return str.replace(/^\s+|\s+$/g, '');
    }
} 