/***************************************************************
 SYSTEM EXTENSIONS
 ***************************************************************/

/** CLASS: String **/

String.TYPE = 'string';
String.EMPTY = '';
String.COMMA = ',';
String.COMMA_SPACE = ', ';
String.TAB = '\t';
String.NEWLINE = '\n';
String.NONE = 'none';
String.YES_VALUE = 'Y';
String.NO_VALUE = 'N';
String.BR = '<br />';
String.NBSP = '&nbsp;';
String.DIV_OPEN = '<div>';
String.DIV_CLOSE = '</div>';

String.prototype.ltrim = function(){
	return this.replace(/^\s+/,String.EMPTY);
}

String.prototype.rtrim = function(){
	return this.replace(/\s+$/,String.EMPTY);
}

String.prototype.trim = function(){
	return this.replace(/^\s+/,String.EMPTY).replace(/\s+$/,String.EMPTY);
}

/***************************************************************
 PROTOTYPE.js EXTENSIONS
 ***************************************************************/

/** CLASS: Field **/
Field.getValue = function(elem){
	if(typeof(elem) == String.TYPE){ elem = $(elem); }
	return elem.value; 
}

Field.setValue = function(elem, value){
	if(typeof(elem) == String.TYPE){ elem = $(elem); }
	elem.value = value; 
}

/** CLASS: Element **/
Element.getContent = function(elem){
	if(typeof(elem) == String.TYPE){ elem = $(elem); }
	return elem.innerHTML; 
}

Element.setContent = function(elem, content){
	if(typeof(elem) == String.TYPE){ elem = $(elem); }
	elem.innerHTML = content; 
}

Element.reset = function(elem){
	if(typeof(elem) == String.TYPE){ elem = $(elem); }
	elem.innerHTML = String.NBSP; 
}

Element.clear = function(elem){
	if(typeof(elem) == String.TYPE){ elem = $(elem); }
	elem.innerHTML = String.EMPTY; 
}


/***************************************************************
 AddEvent utility methods written by John Resig
 @URL http://ejohn.org/projects/flexible-javascript-events
 ***************************************************************/
 
function addEvent( obj, type, fn ) { 
  if ( obj.attachEvent ) { 
    obj['e'+type+fn] = fn; 
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
    obj.attachEvent( 'on'+type, obj[type+fn] ); 
  } else 
    obj.addEventListener( type, fn, false ); 
} 

function removeEvent( obj, type, fn ) { 
  if ( obj.detachEvent ) { 
    obj.detachEvent( 'on'+type, obj[type+fn] ); 
    obj[type+fn] = null; 
  } else 
    obj.removeEventListener( type, fn, false ); 
}


