function scroll_to(e) {
  if(! e) return;
  var x = (arguments[1] ? (e.offsetLeft - arguments[1]) : e.offsetLeft);
  var y = (arguments[2] ? (e.offsetTop - arguments[2] ) : e.offsetTop );
  window.scrollTo(x, y);
}

function build_element(s) {
  var e = document.createElement(s.tag);
  var c = s.childNodes;
  delete(s.tag);
  delete(s.childNodes);
  for(var a in s) eval('e.' + a + '= s[a]');
  if(c) for(var i = 0; i < c.length; i++) e.appendChild(build_element(c[i]));
  return e;
}




var Profiles = {
  changeSkill: function(element) {
    if ($F(element) != "new") return;
    if (Skills.create({parameters: {from: "profiles", update: element.id}})) {
      element.blur();
    } else {
      element.down("option").selected = true;
    }
  }
}


var Skills = {
  create: function(options) {
    options = options || {};
    var name;
    if (name = prompt("Enter a name for the new skill:")) {
      new Ajax.Request("/skills", {
        parameters: Object.extend({ "skill[name]": name }, options.parameters || {})
      });
      return true;
    }
  }
}