
function focusObj(obj)	{
  if ( typeof( LAST_ERR_FIELD ) != 'undefined' && LAST_ERR_FIELD != null )
	  obj = LAST_ERR_FIELD;

  setFocus( obj );
}

function focusErrObj(obj)	{
  obj.style.color = '#000';
  setInputErrColor( obj );
  setFocus( obj );
}

function errAlert( oInput, strMsg ) {

	setInputErrColor( oInput );
	alert( strMsg );
	focusErrObj( oInput );
}

function setFocus( obj ) 
{
	if (obj.type=="text"||obj.type=="password"||obj.type=="textarea") 
		obj.select();

	if (typeof( arrFieldInfo ) != 'undefined' 
	&&  typeof( arrFieldInfo[ obj.id ].siz ) != 'undefined') {
		obj.maxLength = arrFieldInfo[ obj.id ].siz;
	}
	obj.focus();
}

function setInputErrColor( obj ) {
  var errColor = ( typeof( ERROR_BG_COLOR )!="undefined" ? ERROR_BG_COLOR : '#ed1c24' );
  setInputBGColor( obj, errColor );
}

function setInputFocusColor( obj ) {
  var errColor = ( typeof( FOCUS_BG_COLOR )!="undefined" ? FOCUS_BG_COLOR : '#ffe2c0' );
  setInputBGColor( obj, errColor );
}

function setInputBGColor( obj, bgColor )
{
	if (obj.type=="text"||obj.type=="password"||obj.type=="textarea"||"select-one") 
		obj.style.backgroundColor = bgColor;
}

function rgb2hex(red, green, blue)
{
    var c = red + 256 * green + 65536 * blue;
	c = c.toString(16).toLowerCase();
    return ( ''+c.substring(4,6)+''+c.substring(2,4) + ''+c.substring(0,2)  );
}

function getBGcolor( obj ) {
	var color = obj.style.backgroundColor;
	if ( /^rgb/.test( color ) ) 
		color = '#' + eval( color.replace( /^rgb/, 'rgb2hex' ) );
	return( color );
}

function animateElement( o, deltaUnits, bMakeRelativePosition ) {


	var msDelay=30, defaultDelatUnits = '2px' ;

	var id;
	if(  typeof( o ) == 'string' )  
		{ id = o;
		  o = document.getElementById( id );
		}
	else {
		if ( typeof( o.id )=='undefined' )  
			o.setAttribute( 'id', (new Date()).getTime() );
		id = o.id;
	}

	
	if (typeof( o.style )     != 'undefined' 
	&& typeof( o.style.left ) != 'undefined' ) origPos=o.style.left;

	var arrArg=[];

	if ( arguments.length >= 4 ) arrArg = arguments[3];
	else {

		arrArg['iRepeat'] = 10;
		arrArg['direction'] = 1;
		arrArg['origPosition'] = '' ;
		arrArg['origLocation'] = '' ;
		arrArg['offset'] = 0;
		arrArg['deltaUnits'] = ( deltaUnits == null || deltaUnits=='' ? defaultDelatUnits : deltaUnits );

		if (typeof( o.style )     != 'undefined' 
		&& typeof( o.style.position ) != 'undefined' ) origPosition=o.style.position;

		if (typeof( o.style )     != 'undefined' 
		&& typeof( o.style.left ) != 'undefined' ) origLocation=o.style.left;

		if ( true || bMakeRelativePosition ) 
			o.style.position = ( ( arrArg.origPosition == 'absolute' ) ? 'absolute' : 'relative');

		arrArg['origUnits'] = arrArg.origLocation.replace( /[\d\s]/g, '' );
		if (arrArg.origUnits == '') arrArg.origUnits = (''+arrArg.deltaUnits).replace( /\d+/g, '' );
		if (arrArg.origUnits == '') arrArg.origUnits = 'px';

		arrArg['origValue'] = arrArg.origLocation.replace( /\D/g, '' );
		arrArg['delta'] = 1*(''+arrArg.deltaUnits).replace( /\D+/g, '' );
	}

	if ( arrArg.iRepeat-- < 1 ) { 
			o.style.position = arrArg.origPosition;
			o.style.left = origLocation;
			setFocus( o );
			return;
	}
		
	if (arrArg.direction>0 && arrArg.offset > 0 ) arrArg.direction =-1
	else if ( arrArg.direction <0 && arrArg.offset < 0 ) arrArg.direction = 1;

	if ( arrArg.offset < 0 || arrArg.offset > 0 ) arrArg.offset = 0;
	else arrArg.offset = arrArg.direction * arrArg.delta;

	var i, strArr='{';
	for (i in arrArg ) {
		strArr += (strArr=='{'?'':',') +"'" + i + "':";
		if (typeof( arrArg[i] ) == 'number' )
			 strArr+= arrArg[i]
		else strArr+= "'" + arrArg[i] + "'";
	}
	strArr+='}';

	var cmd = "animateElement( '" + id + "', '" + deltaUnits + "', " 
			+ bMakeRelativePosition + ', ' + strArr + ');'
	o.style.left = (arrArg.offset + 1*arrArg.origValue ) + arrArg.origUnits;
	setTimeout( cmd , msDelay );
}
