function ltrim (str)
{
   while (str.charAt(0) == " ")
   {
      str = str.substr (1);
   }
   return str;
}
function rtrim (str)
{
   while (str.charAt(str.length - 1) == " ")
   {
      str = str.substr (0, str.length - 1);
   }
   return str;
}

function trim (str)
{
   return (rtrim(ltrim(str)));
}

function wOpen(a,opt,flag)
{
	if(!flag)
	{
		var h,w;
		if(opt)
		{
			h = opt.match(/height\s*=\s*\d+/i);
			w = opt.match(/width\s*=\s*\d+/i);
			s = opt.match(/scrollbars\s*=\s*\d+/i);
		}
		if(!h) h='height=200';
		if(!w) w='width=450';
		if(!s) s='scrollbars=1';
		opt = 'toolbar=0,resizable=1,'+w+','+h+',resizable=1,menubar=0,'+s;
	}
	window.open(a.href,a.target, opt);
	return false;
}

function wO()
{
	return window.opener? window.opener : window;
}

var cleanStatusBarString;
function cleanStatusBar(msg, width)
{
	if(!cleanStatusBarString)
	{
		cleanStatusBarString = '';
		for(var i=0; i<width; i++)
		{
			cleanStatusBarString += ' ';
		}
		cleanStatusBarString += msg;
		msg = cleanStatusBarString;
	}
	if(!msg.length) msg = cleanStatusBarString;

	msg = msg.substr(1, msg.length);
	window.status = msg;
	setTimeout("cleanStatusBar('"+msg+"', "+width+")", 50);
}

function isEmail(str)
{
	var RegExEmail = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
	return RegExEmail.test(str);
}
