function clickLink(linkId) // client-side button/link clicking by the component's id
{
    var fireOnThis = document.getElementById(linkId)
    if (document.createEvent)
    {
	    var evObj = document.createEvent('MouseEvents')
	    evObj.initEvent( 'click', true, false )
	    fireOnThis.dispatchEvent(evObj)
    }
    else if (document.createEventObject)
    {
        fireOnThis.fireEvent('onclick')
	}
}

function addValue(component_id,size) {
    var currentValue = Number(document.getElementById(component_id).value);
    document.getElementById(component_id).value = currentValue+size;
    return true;
}

function addValueRound(component_id,size,decimals) {
    var currentValue = Number(document.getElementById(component_id).value);
    var newNumber = Math.round((currentValue+size)*Math.pow(10,decimals))/Math.pow(10,decimals);
    document.getElementById(component_id).value = newNumber;
}

function clickLinkOnEnter(event, linkId)
{
    if (event.keyCode==13)
        clickLink(linkId)
}

// based on http://softwareas.com/dynamic-favicon-library-updated by Michael Mahemoff's 

function addLink (iconURL) {
   var link = document.createElement("link");
   link.type = "image/x-icon";
   link.rel = "shortcut icon";
   link.href = iconURL;
   removeLinkIfExists();
   document.getElementsByTagName("head")[0].appendChild(link);
}

function removeLinkIfExists() {
   var links = document.getElementsByTagName("head")[0].getElementsByTagName("link");
   for (var i=0; i<links.length; i++) {
      var link = links[i];
      if (link.type=="image/x-icon" && link.rel=="shortcut icon") {
         document.getElementsByTagName("head")[0].removeChild(link);
         return; // Assuming only one match at most.
      }  
   }
}

//
// http://developer.yahoo.com/yui/editor/, see "saveHTML()"
//
var YUIEditorIntegrator = {
 editors: [],
 
 registerEditor: function(editorObj) {
  this.editors[this.editors.length] = editorObj; // add
 },
 
 formOnSubmit: function() {
  for (var editorKey in this.editors) {
   this.editors[editorKey].saveHTML();
  }
  return true;
 }
};