/* jsHandler.js */
/**http://bytes.com/forum/thread149165.html**/
/*usage:
* include("jsValidation.js");
* include("jsEvents.js");
*/


/**
* yui tooltip
* @author: Franz
* @on: 06/08/2009
*/
function toolTip(elementId, toolTipText){
	var myTooltip = new YAHOO.widget.Tooltip("myTooltip", { context:elementId, text:toolTipText } )
}

/*
* function used to create tooltip instances from tooltips that are on an ajax page
* @author: Franz
* @param: ttGroupIds format: ,tool1,tool2,tool3,tool4|,tip1,tip2,tip3,tip4
*/
function createTooltipInstance(ttGroupIds){
	
	var ttGroups = explode("|",ttGroupIds);
	
	for( i = 0 ; i < ttGroups.length ; i++){
		var ttIds = ttGroups[i];
		if(ttIds != ""){			
			//check if there is a leading comma
			if(ttIds.substr(0,1) == ","){
				var myToolTip = new YAHOO.widget.Tooltip("myToolTip", { context:eval('Array('+ttIds.substr(1)+')') ,autodismissdelay:30000});
			}else{
				var myToolTip = new YAHOO.widget.Tooltip("myToolTip", { context:eval('Array('+ttIds+')') ,autodismissdelay:30000});
			}
			
		}
	}
}
/**
* this function verifies if there are any checked entries (checkbox)
* checkBoxName: name of the checkbox to search
*/
function hasCheckedItem(checkName, groupId){
	var hasChecked = false;
	
	if(groupId != null)
		var inputs = document.getElementById(groupId).getElementsByTagName("input");
	else
		var inputs = document.getElementsByTagName("input");

	for(i=0;i<inputs.length;i++)
	{
		if(inputs[i].name.indexOf(checkName)!=-1 && inputs[i].checked == true){
			hasChecked = true;
			break;
		}
	}
	
	return hasChecked;
}

/*
* function to select/deselect all checkbox items
*/
function selectAll(checkName, groupId, checkValue){
	
	if(groupId != null)
		var inputs = document.getElementById(groupId).getElementsByTagName("input");
	else
		var inputs = document.getElementsByTagName("input");
	
	for(i=0;i<inputs.length;i++)
	{
		if(inputs[i].name.indexOf(checkName)!=-1){
			inputs[i].checked = checkValue;
		}
	}
}

/*
* function to disable/enable all checkbox items
*/
function disableAll(checkName, groupId, checkValue){
	
	if(groupId != null)
		var inputs = document.getElementById(groupId).getElementsByTagName("input");
	else
		var inputs = document.getElementsByTagName("input");
	
	for(i=0;i<inputs.length;i++)
	{
		if(inputs[i].name.indexOf(checkName)!=-1){
			inputs[i].disabled = checkValue;
		}
	}
}


/**
* get hidden field value from parent window (window opener)
*/
function getParentValue(objectName)
{
	if(window.opener != null){
		if(window.opener.document.getElementById(objectName) != null)
			MM_findObj(objectName).value = window.opener.document.getElementById(objectName).value;
		else
			alert('JS Error: ' + objectName + ' from parent window is null.');
	}else{
		alert('JS Error: ' + 'window.opener is null');
	}
	
}

/*
* set hidden field value from parent window
*/
function setParentValue(objectName, objectValue)
{
	if(window.opener != null){
		if(window.opener.document.getElementById(objectName) != null)
			window.opener.document.getElementById(objectName).value = objectValue;
		else
			alert('JS Error: ' + objectName + ' from parent window is null.');
	}else{
		alert('JS Error: ' + 'window.opener is null');
	}
	
}

function MM_jumpMenu(targ,selObj,restore){
// This function makes the browser go to the url inside the selected Pull Down value
// Used for PullDowns like Campus & Building

  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function openWindow(url,winName,winWidth,winHeight,features) { //v2.0
	// This function opens a popup window centered by x and y
	// Example of use: openWindow('http://www.google.com','test','400','400','scrollbars=yes')

	x = (screen.availWidth-winWidth) / 2;
   	y = (screen.availHeight-winHeight) / 2;
 	
	features += ",width="+winWidth+",height="+winHeight;
	features += ",left="+x+",top="+y+",screenX="+x+",screenY="+y;
    
	var openedWin = window.open(url,winName,features);
	
	//alert('common:' + openedWin);
	openedWin.focus();
	return openedWin;
}


function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}


// Functions used to verify the fields inside the forms. Also it creates masks
// Example of use:
// fields2verify = new Array()
// fields2verify[0] = new field('campus1[a]','field1 1',JST_MASK_DECIMAL,'R')
// fields2verify[1] = new field('campus2[c]','field2 2',JST_MASK_DECIMAL,'R')
// createMask(fields2verify);
// onSubmit="return verifyFields(fields2verify,errorMsg)";

function field(objName,humanName,mask,required) {
this.objName=objName;
this.humanName=humanName;
this.mask=mask;
this.required=required;
}

function createMask(arrayObj) {
 for(var i=0;i<arrayObj.length;i++) {
// alert(arrayObj[i].mask);
 if (arrayObj[i].mask!=null)
 var mask = new InputMask(arrayObj[i].mask, getObject(arrayObj[i].objName));
 }
}

function verifyFields(arrayObj,errorMessage) {
	error="";
	errorOR="";
	countOR=0;
	ifOR="";
	count=0;
	XORmax=0;
	XORcount=0;
	errorXOR="";
	ifXOR="";
	errorFlag=0;
	for(var i=0;i<arrayObj.length;i++) {
	  if (!arrayObj[i])
		  continue;
		if (arrayObj[i] == "0")
        	break;

        objType=MM_findObj(arrayObj[i].objName).type;
     	if(arrayObj[i].required=="R") {

			if(!objType) {
					if ( !searchChecked(arrayObj[i].objName) ) {error+="- "+arrayObj[i].humanName+"\r\n";}
			}
			else {

				switch (objType){
					case "textarea":
					case "text":
						if (Trim(MM_findObj(arrayObj[i].objName).value)=="") {error+="- "+arrayObj[i].humanName+"\r\n";}
					break;

					case "hidden":
						if (Trim(MM_findObj(arrayObj[i].objName).value)=="") {error+="- "+arrayObj[i].humanName+"\r\n";}
					break;

					case "password":
						if (Trim(MM_findObj(arrayObj[i].objName).value)=="") {error+="- "+arrayObj[i].humanName+"\r\n";}
					break;

					case "checkbox":
						if (MM_findObj(arrayObj[i].objName).checked==false) {error+="- "+arrayObj[i].humanName+"\r\n";}
					break;

					case "select-one":
						if (Trim(MM_findObj(arrayObj[i].objName).value)=="" || MM_findObj(arrayObj[i].objName).value=="0") {error+="- "+arrayObj[i].humanName+"\r\n";}
					break;

				}
			}
		}

		if(arrayObj[i].required=="OR") {
			if (countOR>=1) ifOR=" OR ";
			count++;
			switch (objType){
				case "textarea":
				case "text":
					if (MM_findObj(arrayObj[i].objName).value=="" || MM_findObj(arrayObj[i].objName).value+0==0) {errorOR+=ifOR+arrayObj[i].humanName;countOR++;}
				break;

				case "hidden":
					if (MM_findObj(arrayObj[i].objName).value=="" || MM_findObj(arrayObj[i].objName).value+0==0) {errorOR+=ifOR+arrayObj[i].humanName;countOR++;}
				break;

				case "password":
					if (MM_findObj(arrayObj[i].objName).value=="" || MM_findObj(arrayObj[i].objName).value+0==0) {errorOR+=ifOR+arrayObj[i].humanName;countOR++;}
				break;

				case "checkbox":
					if (MM_findObj(arrayObj[i].objName).checked==false) {error+=". "+arrayObj[i].humanName+"\r\n";}
				break;

				case "select-one":
					if (MM_findObj(arrayObj[i].objName).value=="") {errorOR+=ifOR+arrayObj[i].humanName;countOR++;}
				break;

			}
		}

		if(arrayObj[i].required=="XOR") {
			XORmax++;
			if (XORcount>=1||XORmax>(XORcount+1)) ifXOR=" OR "
			errorXOR+=ifXOR+""+arrayObj[i].humanName;

			switch (objType){
				case "textarea":
				case "text":
					if (MM_findObj(arrayObj[i].objName).value=="" || getObject(arrayObj[i].objName).value+0==0) {XORcount++;}
				break;

				case "hidden":
					if (MM_findObj(arrayObj[i].objName).value=="" || getObject(arrayObj[i].objName).value+0==0) {XORcount++;}
				break;

				case "password":
					if (MM_findObj(arrayObj[i].objName).value=="" || getObject(arrayObj[i].objName).value+0==0) {XORcount++;}
				break;

				case "checkbox":
					if (MM_findObj(arrayObj[i].objName).checked==false) {error+=". "+arrayObj[i].humanName+"\r\n";}
				break;

				case "select-one":
					if (MM_findObj(arrayObj[i].objName).value=="") {error+=". "+arrayObj[i].humanName+"\r\n";}
				break;
			}


		}
	}
	errorheader=errorMessage+":\r\n";
	errorfinal=errorheader;

	if (error!="") {errorFlag=1;errorfinal+=error;}
	if (countOR==count&&countOR!=0&&count!=0) {errorFlag=1;errorfinal+=errorOR;	}
	if ((XORmax-1)!=XORcount&&XORmax>0) {errorFlag=1;errorfinal+=errorXOR;}
	if (errorFlag==1) {alert(errorfinal);
		if (eval(MM_findObj("waitlayer")) && eval(MM_findObj("buttonSaveExit")) ) {
			MM_findObj("waitlayer").style.visibility="hidden";
			MM_findObj("buttonSaveExit").disabled=false;
		}

		return false} else return true;
}


function openWindowForm(url,winName,winWidth,winHeight,features,myform) {
 if (! window.focus)return true;
 openWindow(url,winName,winWidth,winHeight,features)
 myform.target=winName;
 return true;
}

function tableruler()
{
 var oldRowStyle;
 if (document.getElementById && document.createTextNode)
  {
   var tables=document.getElementsByTagName('table');
   
   for (var i=0;i<tables.length;i++)
   {
    if(tables[i].className=='ruler')
    {
     var trs=tables[i].getElementsByTagName('tr');
     for(var j=0;j<trs.length;j++)
     {
   if(trs[j].parentNode.nodeName=='TBODY'&& trs[j].parentNode.nodeName!='TFOOT' && trs[j].nodeName!='THEAD')
     {
    trs[j].clicat=false;
       trs[j].onmouseover=function(){
     if(this.clicat==false){
    this.oldRowStyle = this.className;
     }
     this.className='ruled';
       return false
    }
   
    
    trs[j].onmouseout=function(){
     if(this.clicat==false){
      this.className = this.oldRowStyle;
      return false
     }
     else {
    this.className = "clicked";
    return false
     }
  }
   
   trs[j].onmousedown=function(){
     if(this.clicat==true){
      this.clicat=!this.clicat;
      this.className=this.oldRowStyle;
      return false
     } 
     else {
        this.clicat=!this.clicat;
 //    oldRowStyle = this.className;
     this.className="clicked";
     return false;
     }
   }

   
   }
    }
   }
  }
 }
}

function Trim(s) {
  // Remove leading spaces and carriage returns
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')){
    s = s.substring(0,s.length-1);
  }
  return s;
}

function getQueryVariable(variable) 
{
 var query = window.location.search.substring(1);
 var vars = query.split("&");
 for (var i=0;i<vars.length;i++) {
  var pair = vars[i].split("=");
  if (pair[0] == variable) {
   return pair[1];
  }
 } 
 return false;
}



   // Original JavaScript code by Duncan Crombie: dcrombie@chirp.com.au
   // Please acknowledge use of this code by including this header.

   // CONSTANTS
  var separator = ",";  // use comma as 000's separator
  var decpoint = ".";  // use period as decimal point
  var percent = "%";
  var currency = "$";  // use dollar sign for currency

  function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }


function setDropDownByValue(obj,searchValue) {
// this function sets the dropdown object to a position depending on the value we send to it.
	if (searchValue) {
		for( var i = 0 ; i < obj.options.length ; i ++ ) {
			if(obj.options[i].value==searchValue) {
				obj.selectedIndex=i;
				break;
			}
		}
	} else {
		obj.selectedIndex=0;
	}

}
/*
* search the number of checked items (checkbox)
*/
function searchChecked(objName, formIndex) {
	if(!formIndex){
		formIndex = 0;
	}
	
	qtychecked=0;
	if(document.forms[formIndex]){
		for (var i=0;i<document.forms[formIndex].elements.length;i++) {
				if ( document.forms[formIndex].elements[i].name.indexOf(objName)!=-1 && document.forms[formIndex].elements[i].checked) 
					qtychecked++;
		}
	}
	return qtychecked;			
}
/*
* function to search for the selected value on a radio button
*/
function searchCheckedValue(objName) {
	for (var i=0;i<document.forms[0].elements.length;i++) {
			if ( document.forms[0].elements[i].name.indexOf(objName)!=-1 && document.forms[0].elements[i].checked) 
				return document.forms[0].elements[i].value;
	}
	return 0;			
}

function disableRadioButton(objName, disabled){
	for (var i=0;i<document.forms[0].elements.length;i++) {
			if ( document.forms[0].elements[i].name.indexOf(objName)!=-1 ) 
				 document.forms[0].elements[i].disabled = disabled;
	}
}

function searchCheckedValueBefore(objName) {
	for (var i=0;i<document.forms[0].elements.length;i++) {
			if ( document.forms[0].elements[i].name.indexOf(objName)!=-1 && document.forms[0].elements[i].checked) 
				return document.forms[0].elements[i-1].value;
	}
	return 0;			
}


function getRadioValue(objName) {
	for (var i=0;i<document.forms[0].elements.length;i++) {
			if ( document.forms[0].elements[i].name.indexOf(objName)!=-1 && document.forms[0].elements[i].checked) 
				return document.forms[0].elements[i].value;
	}			
}

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function isNumberKey(evt)
      {
         
         var charCode = (evt.which) ? evt.which : event.keyCode
         /*
         	BUG#8020
         	- allow decimal on screen 4
         	- markg
         	- 11/15/2007
         */
         if (charCode > 31 && ((charCode < 48 && charCode != 46) || charCode > 57))
            return false;
         return true;
      }




function include(filename)
{
var body = document.getElementsByTagName('body').item(0);
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
body.appendChild(script)
}

/** 
*http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_microtime/
*/
function microtime(get_as_float) {
    // http://kevin.vanzonneveld.net
    // +   original by: Paulo Ricardo F. Santos
    // *     example 1: timeStamp = microtime(true);
    // *     results 1: timeStamp > 1000000000 && timeStamp < 2000000000
 
    var now = new Date().getTime() / 1000;
    var s = parseInt(now);
 
    return (get_as_float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}
/**
* DHTML textbox character counter
*/

function trim(s)
{
	var l=0; var r=s.length -1;
	while(l < s.length && s[l] == ' ')
	{	l++; }
	while(r > l && s[r] == ' ')
	{	r-=1;	}
	return s.substring(l, r+1);
}

/** http://bytes.com/forum/thread147905.html **/
function getObjectProperties (object) {
var result = '';
for (var property in object) {
result += property + ': ' + object[property] + '\r\n';
}
return result;
}

function getRadioValue(container, radioName)
{
	
	var obj = container.getElementsByName(radioName);
	for(var i = 0; i < obj.length ; i++)
	{
		if(obj[i].checked)
			return obj[i].value;
	}
	return false;
}

function compareDateTime(monthA, dayA, yearA, hourA, minA, ampmA, monthB, dayB, yearB, hourB, minB, ampmB, msg, extdTime)
{
	
	var dateA = createDate(monthA, dayA, yearA, hourA, minA, ampmA);
	var dateB = createDate(monthB, dayB, yearB, hourB, minB, ampmB);
	
	if(extdTime){
		var today = new Date();
		var dateC = new Date((today.getMonth() + 1)+"/"+today.getDate()+"/"+today.getFullYear()+" "+extdTime);
	}
	
	//if(hourB == "03" && minB == "00" && ampmB == "am")
	if(extdTime && (dateB <= dateC))//check if close time is less than extended time
	{
		return true;
	} 
	else
	{
		
		if(dateA < dateB)
		{
			return true;
		} else
		{
			if(msg)
				alert(msg);
			return false;
		}
	}
}

function createDate(month,day,year,hour,min,ampm) {
 //edited by: markg on 12/13/2006
 //added default Month, Day and Year
 //old code is hardcoded like the hour, min and ampm
 var today = new Date();
 if (month==""||month==null) month=today.getMonth() + 1;
 if (day==""||day==null) day=today.getDate();
 if (year==""||year==null) year=today.getFullYear();
 if (hour==""||hour==null) hour="01";
 if (min==""||min==null) min="00";
 if (ampm==""||ampm==null) ampm="AM";
 
 time=month+"/"+day+"/"+year+" "+hour+":"+min+" "+ampm;

 return(new Date(time));
}

/**
* get the domain name of a given url or email
* @author: markg
* @on: 4/2/2009
* typeCheck = 1 = domain (default)
* typeCheck = 2 = email
*/
function getDomainName(urlOrEmail,typeCheck)
{
	var regex = null;
	var matches = null;
	if(typeCheck == null || typeCheck == 1)
	{
		regex = new RegExp(/^(http:\/{2}||w{3})?(w{3})?(\.)?(.[^\.]*\.)?(.*[^\.]\.[a-zA-Z]{3}\.?[a-zA-Z]{0,2}).*/);
	    matches = regex.exec(urlOrEmail);
		return matches[5] ;
	}
	else
	{
		regex = new RegExp(/^(.[^@]+@)?(.*)/);
	    matches = regex.exec(urlOrEmail);
		if (matches == null)
			return null;
		else	
			return matches[2];
	}
	
}


/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
function verifyEmailAddress2(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot) == lstr-1){
		return false
	}

	if (str.lastIndexOf(dot) == lstr-1){
		return false
	}
	
	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false
	 }

	 return true					
}

function verifyEmailAddress(email){
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(email)) {
		return false;
	}
	return true;
}
