// EiJsFramework by Edge Impact Consulting 2007
var EiDebugger = false;

// include prototype library first on page.
document.getElementsByAttribute = function(attribute, parentElement) {
  var children = ($(parentElement) || document.body).getElementsByTagName('*');
  return $A(children).inject([], function(elements, child) {
	if (child.getAttribute(attribute))
	  elements.push(Element.extend(child));
	return elements;
  });
}

Object.extend(Enumerable, {
  pluck: function(property) {
	var results = [];
	this.each(function(value, index) {
	  results.push(value.getAttribute ? value.getAttribute(property) || value[property] : value[property]);
	});
	return results;
  },
	sum: function() {
		var result = 0;
		this.each(function(value, index) {
			if (!isNaN(parseInt(value)))
				result += parseInt(value);
		});
		return result;
	}
});

Object.extend(Array.prototype, Enumerable);

function $P(property) {
  return document.getElementsByAttribute(property).pluck(property);
}

var EiJsFramework = {
  Version: '0.0.1',
  // Confuguration
  // EiJsMessage module configuration - error, validate_succ, validate_fail
  EiCssMessage_error: "eiMsgErr",
  EiCssMessage_validate_succ: "eiMsgSucc",
  EiCssMessage_validate_fail: "eiMsgFail",
  EiMessageId: "ei_msg",
  // ----------------------------------------------------------------------
  
  req: function(libs) {
    libs.split(",").each( function(i){
	document.write("<script type='text/javascript' src='" + EiWorkbench_path + "javascripts/"+i+"'></script>");
	})
  },init: function(a){
  EiJsFramework.req("rico.js,scriptaculous.js,fixes_cross_browser.js,EiJsLanguage.js,EiJsExtension.js,EiJsMessage.js,EiJs.js,menu.js")
  }
}



EiJsFramework.init();
