	String.prototype.trim = function() { var _ret = this.replace(/^\s+|\s+$/g, ''); return _ret.replace(/^(\&nbsp\;)+|(\&nbsp\;)+$/g, ''); }
	String.prototype.escapeHTML = function () {                                       
        return(                                                                 
            this.replace(/&/g,'&amp;').                                         
                replace(/>/g,'&gt;').                                           
                replace(/</g,'&lt;').                                           
                replace(/"/g,'&quot;')                                         
        );                                                                     
    };
	var gAccountType = '';
	var gUserType = '';
	var oBlanker = null;

	function createXHR() {
	    var request = false;
	        try {
	            request = new ActiveXObject('Msxml2.XMLHTTP');
	        }
	        catch (err2) {
	            try {
	                request = new ActiveXObject('Microsoft.XMLHTTP');
	            }
	            catch (err3) {
			try {
				request = new XMLHttpRequest();
			}
			catch (err1) 
			{
				request = false;
			}
	            }
	        }
	    return request;
	}
	
	function popitup(url) {
	    var newwindow = window.open(url, 'faq', 'height=400,width=550,location=0,menubar=no,resizable=1,scrollbars=1,status=0,toolbar=0');
	    if (window.focus) {newwindow.focus()}
	    return false;
    }
    
	function popitup(url, lWidth) {
		if (lWidth == null) {
			lWidth = 550;
		}
	    var newwindow = window.open(url, 'faq', 'height=400,width=' + lWidth + ',location=0,menubar=no,resizable=1,scrollbars=1,status=0,toolbar=0');
	    if (window.focus) {newwindow.focus()}
	    return false;
    }

	function getWinHeight() {
		var myWidth = 0, myHeight = 0;
		
		if (typeof(window.innerWidth) == 'number') {
			//Non-IE
			//myWidth = window.innerWidth;
			myHeight = window.innerHeight;

		} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
			//IE 6+ in 'standards compliant mode'
			//myWidth = document.documentElement.clientWidth;
			myHeight = document.documentElement.clientHeight;
			
		} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
			//IE 4 compatible
			//myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
		}
		
		return myHeight;
	}

	function getWinHeight2() {
		var myWidth = 0, myHeight = 0;
		
		if (typeof(window.innerWidth) == 'number') {
			//Non-IE
			//myWidth = window.innerWidth;
			myHeight = window.innerHeight;

		} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
			//IE 6+ in 'standards compliant mode'
			//myWidth = document.documentElement.clientWidth;
			myHeight = document.documentElement.clientHeight;
			
		} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
			//IE 4 compatible
			//myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
		}
		
		return myHeight;
	}

	function getDocHeight() {
	    var D = document;
	    return Math.max(
	        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
	        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
	        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
	    );
	}
	
	function getDocWidth() {
	    var D = document;
	    return document.body.clientWidth;
	    return Math.max(
	        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
	        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
	        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
	    );
	}
	
	function getScrollTop() {
		return f_filterResults (
			window.pageYOffset ? window.pageYOffset : 0,
			document.documentElement ? document.documentElement.scrollTop : 0,
			document.body ? document.body.scrollTop : 0
		);
	}
	
	function f_filterResults(n_win, n_docel, n_body) {
		var n_result = n_win ? n_win : 0;
		if (n_docel && (!n_result || (n_result > n_docel)))
			n_result = n_docel;
		return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
	}

	function getWinWidth() {
		var myWidth = 0, myHeight = 0;
		
		if (typeof(window.innerWidth) == 'number') {
			//Non-IE
			myWidth = window.innerWidth;
			//myHeight = window.innerHeight;
			
		} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
			//IE 6+ in 'standards compliant mode'
			myWidth = document.documentElement.clientWidth;
			//myHeight = document.documentElement.clientHeight;
		} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
			//IE 4 compatible
			myWidth = document.body.clientWidth;
			//myHeight = document.body.clientHeight;
		}
		
		return myWidth;
	}
		
	/////////////////////////////////////////////////////////////////////////////////////////////////////	
	
	function getFolderCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = oToc.getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('folderid');
				sTitles += ',' + oChks[i].nextSibling.innerHTML;
			}
		}
				
		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}
	
	function getDocCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '', sTypes = '';
		
        var oRows = document.getElementById('tbl_list').rows;
		
		if (oRows[1].cells[0].innerHTML != 'The Folder is empty.' && oRows[1].cells[0].innerHTML != 'The Trash is empty.') {	
        	for (var i=1; i<oRows.length; i++) {    //1 = header row	
            	if (oRows[i].cells[0].firstChild.type == 'checkbox' && oRows[i].cells[0].firstChild.checked == true) {
					lCount++;
					sIDs += ',' + oRows[i].getAttribute('fileid');
					sTitles += ',' + oRows[i].cells[1].firstChild.getAttribute('title');
					sTypes += ',' + oRows[i].cells[2].innerHTML;
				}
			}
		}

		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		if (sTypes.length > 0) sTypes = sTypes.substring(1);
		
		return [lCount, sIDs, sTitles, sTypes];
	}

	function getContactCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = oToc.getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('contactid');
				sTitles += ',' + oChks[i].parentNode.getAttribute('title');
			}
		}

		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}

	function getContactListCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '', sOwners = '';

		var oChks = document.getElementById('tbl_list').getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				 lCount++;
				 sIDs += ',' + oChks[i].getAttribute('contactid');
				 sTitles += ',' + oChks[i].parentNode.parentNode.getAttribute('title');
				 sOwners += ',' + oChks[i].getAttribute('owner');
			}
		}

		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		if (sOwners.length > 0) sOwners = sOwners.substring(1);

		return [lCount, sIDs, sTitles, sOwners];
	}
	
	function getUserCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = document.getElementById('divList').getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('folderid');
				sTitles += ',' + oChks[i].nextSibling.innerHTML;
			}
		}
				
		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}

	function getSysCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = document.getElementById('divAccounts').getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('accountid');
				sTitles += ',' + oChks[i].nextSibling.innerHTML;
			}
		}
				
		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}

	function getInvoiceCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = document.getElementById('divInvoices').getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('accountid');
				sTitles += ',' + oChks[i].nextSibling.innerHTML;
			}
		}
				
		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}

	function getSysUserCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = document.getElementById('divUsers').getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('userid');
				sTitles += ',' + oChks[i].nextSibling.innerHTML;
			}
		}
				
		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}

	function getSysSiteCheckedInfo() {
		var lCount = 0, sIDs = '', sTitles = '';
		
		var oChks = document.getElementById('divSites').getElementsByTagName('INPUT');
		
		for (var i=0; i<oChks.length; i++) {
			if (oChks[i].type == 'checkbox' && oChks[i].checked == true) {
				lCount++;
				sIDs += ',' + oChks[i].parentNode.getAttribute('siteid');
				sTitles += ',' + oChks[i].nextSibling.innerHTML;
			}
		}
				
		if (sIDs.length > 0) sIDs = sIDs.substring(1);
		if (sTitles.length > 0) sTitles = sTitles.substring(1);
		
		return [lCount, sIDs, sTitles];
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////////	

	function setDocChecked(sIDs) {
        var oRows = document.getElementById('tbl_list').rows;

		vIDs = sIDs.split(',');
		
		if (oRows[1].cells[0].innerHTML != 'The Folder is empty.' && oRows[1].cells[0].innerHTML != 'The Trash is empty.') {	
        	for (var i=1; i<oRows.length; i++) {    //1 = header row
        		for (var j=0; j<vIDs.length; j++) {
        			if (oRows[i].getAttribute('fileid') == vIDs[j]) {
        				oRows[i].cells[0].firstChild.checked = true;
        				break;
        			}
        		}
        	}
		}
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////////	

	function urlencode(str) {
		return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
	}
	
	function urldecode(str) {
		return unescape(str.replace(/\+/g, ' '));
	}
	
	function getPos(oItem){
        var left = 0;
        var top  = 0;

        while (oItem.offsetParent){
            left += oItem.offsetLeft;
            top  += oItem.offsetTop;
            oItem = oItem.offsetParent;
        }

        left += oItem.offsetLeft;
        top  += oItem.offsetTop;

        return {x:left, y:top};
        //alrt(left);
        //alrt(top);
    }

	function findPos(obj) {
		var curleft = curtop = 0;

		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}

		return [curleft,curtop];
	}
	

	function Browser() {
		var ua, s, i;

		this.isIE    = false;
		this.isNS    = false;
		this.version = null;

		ua = navigator.userAgent;

		s = "MSIE";
		if ((i = ua.indexOf(s)) >= 0) {
			this.isIE = true;
			this.version = parseFloat(ua.substr(i + s.length));
			return;
		}

		s = "Netscape6/";
		if ((i = ua.indexOf(s)) >= 0) {
			this.isNS = true;
			this.version = parseFloat(ua.substr(i + s.length));
			return;
		}

		// Treat any other "Gecko" browser as NS 6.1.
		s = "Gecko";
		if ((i = ua.indexOf(s)) >= 0) {
			this.isNS = true;
			this.version = 6.1;
			return;
		}
	}

	var browser = new Browser();

	function updateClock () {
		var currentTime = new Date();
		var weekday=new Array(7);
		var month=new Array(12);

		//weekday[0]="Sunday";
		//weekday[1]="Monday";
		//weekday[2]="Tuesday";
		//weekday[3]="Wednesday";
		//weekday[4]="Thursday";
		//weekday[5]="Friday";
		//weekday[6]="Saturday";
		weekday[0]="Sun";
		weekday[1]="Mon";
		weekday[2]="Tues";
		weekday[3]="Wed";
		weekday[4]="Thur";
		weekday[5]="Fri";
		weekday[6]="Sat";

		month[0]="Jan";
		month[1]="Feb";
		month[2]="Mar";
		month[3]="Apr";
		month[4]="May";
		month[5]="Jun";
		month[6]="Jul";
		month[7]="Aug";
		month[8]="Sept";
		month[9]="Oct";
		month[10]="Nov";
		month[11]="Dec";

		var currentDate = currentTime.getDate();
		var currentDay = currentTime.getDay();
		var currentMonth = currentTime.getMonth();
		var currentYear = currentTime.getFullYear();

		var currentHours = currentTime.getHours();
		var currentMinutes = currentTime.getMinutes();
		var currentSeconds = currentTime.getSeconds();

		// Pad the minutes and seconds with leading zeros, if required
		currentMinutes = (currentMinutes < 10 ? "0" : "") + currentMinutes;
		currentSeconds = (currentSeconds < 10 ? "0" : "") + currentSeconds;

		// Choose either "AM" or "PM" as appropriate
		var timeOfDay = (currentHours < 12) ? "am" : "pm";

		// Convert the hours component to 12-hour format if needed
		currentHours = (currentHours > 12) ? currentHours - 12 : currentHours;

		// Convert an hours component of "0" to "12"
		currentHours = (currentHours == 0) ? 12 : currentHours;

		// Compose the string for display
		var currentTimeString = weekday[currentDay] + " " + month[currentMonth] + " " + currentDate + ", " + currentYear + " " + currentHours + ":" + currentMinutes + timeOfDay;

		// Update the time display
		document.getElementById("clock").firstChild.nodeValue = currentTimeString;
		
		//var d = new Date();
		//document.getElementById("clock").firstChild.nodeValue = d.toLocaleString();
	}
	
	function resizeArt() {
		if (!oBlanker) {
			oBlanker = document.getElementById('blanker');
		}
		if (oBlanker) {
			oBlanker.style.width = getDocWidth() + 'px';
			oBlanker.style.height = getDocHeight() + 'px';
		}

return;
		var lWidth = getWinWidth();

		if (lWidth > 1920) {
			document.getElementById('banner').style.backgroundImage = 'url(images//banner2048.jpg)';
			if (document.getElementById('footer'))
				document.getElementById('footer').style.backgroundImage = 'url(images//banner2048.jpg)';
		} else if (lWidth > 1600) {
			document.getElementById('banner').style.backgroundImage = 'url(images//banner1920.jpg)';
			if (document.getElementById('footer'))
				document.getElementById('footer').style.backgroundImage = 'url(images//banner1920.jpg)';
				
		} else if (lWidth > 1280) {
			document.getElementById('banner').style.backgroundImage = 'url(images//banner1600.jpg)';
			if (document.getElementById('footer'))
				document.getElementById('footer').style.backgroundImage = 'url(images//banner1600.jpg)';
			if (document.getElementById('main_head'))
				document.getElementById('main_head').style.backgroundImage = 'url(images//cathead_1600.jpg)';
		} else if (lWidth > 1152) {
			document.getElementById('banner').style.backgroundImage = 'url(images//banner1280.jpg)';
			if (document.getElementById('footer'))
				document.getElementById('footer').style.backgroundImage = 'url(images//banner1280.jpg)';
			if (document.getElementById('main_head'))
				document.getElementById('main_head').style.backgroundImage = 'url(images//cathead_1280.jpg)';
		} else if (lWidth > 1024) {
			document.getElementById('banner').style.backgroundImage = 'url(images//banner1152.jpg)';
			if (document.getElementById('footer'))
				document.getElementById('footer').style.backgroundImage = 'url(images//banner1152.jpg)';
			if (document.getElementById('main_head'))
				document.getElementById('main_head').style.backgroundImage = 'url(images//cathead_1152.jpg)';
		} else if (lWidth > 800) {
			document.getElementById('banner').style.backgroundImage = 'url(images//banner1024.jpg)';
			if (document.getElementById('footer'))
				document.getElementById('footer').style.backgroundImage = 'url(images//banner1024.jpg)';
			if (document.getElementById('main_head'))
				document.getElementById('main_head').style.backgroundImage = 'url(images//cathead_1024.jpg)';
		}
	}
	
    function setCheckedValue(radioObj, newValue) {
		if(!radioObj) return;
		
		var radioLength = radioObj.length;
		
		if (radioLength == undefined) {
			radioObj.checked = (radioObj.value == newValue.toString());
			return;
		}
		
		for(var i=0; i<radioLength; i++) {
			radioObj[i].checked = false;
			if (radioObj[i].value == newValue.toString()) {
				radioObj[i].checked = true;
			}
		}
	}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function GetRandom() {
	return Math.floor(Math.random()*10001)
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//MsgBox Dialog/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function showMsgbox(sTitle, sIcon, sPrompt, sButtons, sFuncOK, sFuncYes, sFuncNo, sFuncCancel) {
	//showMsgbox(sTitle, sIcon-help|info|warning, sPrompt, sButtons=ok|ok+cancel|yes+no|yes+no+cancel, sFuncOK, sFuncYes, sFuncNo, sFuncCancel)
	
	//if (!oBlanker) {
	//	var oBlanker = parent.parent.document.getElementById("blanker");
	//}
	
	if (oBlanker) {
		if (oBlanker.style.display != 'block') {
			oBlanker.style.display = 'block';
		}
	}
	
	var oDialog = document.getElementById("myMsgbox");

	var sOK = "<span id=MBDialogOK class=cmdForm><img class='image' src='images/16x16/checkmark.gif'> OK </span>";
	var sYes = "<span id=MBDialogYes class=cmdForm><img class='image' src='images/16x16/checkmark.gif'> Yes </span>";
	var sNo = "<span id=MBDialogNo class=cmdForm><img class='image' src='images/16x16/delete.gif'> No </span>";
	var sCancel = "<span id=MBDialogCancel class=cmdForm><img class='image' src='images/16x16/delete.gif'> Cancel </span>";

	document.getElementById("myMBTitle").innerHTML = sTitle;
	document.getElementById("myMBImage").src = "images/" + sIcon + ".png";
	document.getElementById("myMBPrompt").innerHTML = sPrompt;
		
	if (sButtons == "ok") {
		document.getElementById("myMBButtons").innerHTML = sOK;
		document.getElementById("MBDialogOK").onclick = sFuncOK;
	} else if (sButtons == "ok+cancel") {
		document.getElementById("myMBButtons").innerHTML = sOK + "&nbsp;&nbsp;&nbsp;" + sCancel;
		document.getElementById("MBDialogOK").onclick = sFuncOK;
		document.getElementById("MBDialogCancel").onclick = sFuncCancel;
	} else if (sButtons == "yes+no") {
		document.getElementById("myMBButtons").innerHTML = sYes + "&nbsp;&nbsp;&nbsp;" + sNo;
		document.getElementById("MBDialogYes").onclick = sFuncYes;
		document.getElementById("MBDialogNo").onclick = sFuncNo;
	} else if (sButtons == "yes+no+cancel") {
		document.getElementById("myMBButtons").innerHTML = sYes + "&nbsp;&nbsp;&nbsp;" + sNo + "&nbsp;&nbsp;&nbsp;" + sCancel;
		document.getElementById("MBDialogYes").onclick = sFuncYes;
		document.getElementById("MBDialogNo").onclick = sFuncNo;
		document.getElementById("MBDialogCancel").onclick = sFuncCancel;
	}

	oDialog.style.width = '420px';
	oDialog.style.display = 'block';
	oDialog.style.left = (getWinWidth() - oDialog.offsetWidth) / 2 + 'px';
	if ((getWinHeight() - oDialog.offsetHeight) / 2 < 0) {
		oDialog.style.top = '10px';
	} else {
		oDialog.style.top = ((getWinHeight() - oDialog.offsetHeight) / 2) + getScrollTop() + 'px';
	}
	
	attachDialogButtons(oDialog);
}
	
function MsgboxClose() {
	document.getElementById("myMsgbox").style.display = "none";
	document.getElementById("myMBTitle").innerHTML = "&nbsp;";
	document.getElementById("myMBImage").src = "";
	document.getElementById("myMBPrompt").innerHTML = "&nbsp;";

	oBlanker.style.display = "none";
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	function Right(str, n)
        {
                if (n <= 0)     // Invalid bound, return blank string
                   return "";
                else if (n > String(str).length)   // Invalid bound, return
                   return str;                     // entire string
                else { // Valid bound, return appropriate substring
                   var iLen = String(str).length;
                   return String(str).substring(iLen, iLen - n);
                }
        }
function Mid(str, start, len)
        /***
                IN: str - the string we are LEFTing
                    start - our string's starting position (0 based!!)
                    len - how many characters from start we want to get

                RETVAL: The substring from start to start+len
        ***/
        {
                // Make sure start and len are within proper bounds
                if (start < 0 || len < 0) return "";

                var iEnd, iLen = String(str).length;
                if (start + len > iLen)
                        iEnd = iLen;
                else
                        iEnd = start + len;

                return String(str).substring(start,iEnd);
        }
        
	//function keepAlive() {
	//	xhrKeepAlive.open('GET', 'keepalive.asp?' + GetRandom(), false); xhrKeepAlive.send(null);
	//}
    
    function validateEMail(sEMail) {
		//var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		var filter = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		
		return filter.test(sEMail);
	}
