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

function checkEmailText(tostr)
{
  var errmsg = "";
  var to = tostr;
  //if (to.trim().length == 0)
  //  return "You must enter an email address";

  var first = true;
  var elist = to.split(",");
  for (var ii=0; ii < elist.length; ii++)
  {
    var addy = elist[ii];
    if (!checkEmail(addy.trim()))
    {
      if (first)
      {
        first = false;
        errmsg = "Invalid email address provided. The following addresses are invalid:<br>\n";
      }
      errmsg += "    " + addy + "<br>\n";
    }
  }
  return errmsg;
}

if (!Array.prototype.forEach)
{
  Array.prototype.forEach = function(fun /*, thisp*/)
  {
    var len = this.length >>> 0;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
        fun.call(thisp, this[i], i, this);
    }
  };
}

function getElement( elemName )
{
    // var elem;
    // //alert("in getElement( " + elemName + " )");
    // if( document.getElementById ) // this is the way the standards work
    // {
        // elem = document.getElementById( elemName );
    // }
    // else if( document.all ) // this is the way old msie versions work
    // {
        // elem = document.all[elemName];
    // }
    // else if( document.layers ) // this is the way nn4 works
    // {
        // elem = document.layers[elemName];
    // }
    // if (!elem)
        // elem = $(elemName);

    return $(elemName); //elem;
}

function submitForm(formname)
{
    // necessary because IE refused to submit forms

    // elem = getElement(formname);
    // elem.submit();
    //document.forms[formname].submit();
	try{
		$(formname).submit();
	}
	catch(e){
		document.forms[formname].submit();
	}
};

function GetXmlHttpObject()
{
     var xmlHttp = null;
     //alert("in GetXmlHttpObject - 1");
     try
     {
        // // Firefox, Opera 8.0+, Safari
         xmlHttp = new XMLHttpRequest();
     }
     catch (e)
     {
        // //Internet Explorer
         try
         {
             xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch (e)
         {
             xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
     }
     return xmlHttp;
	//return XHR.openHttpConn();
}

function changeDiv2(url, elementName, callback)
{
    //alert("in changeDiv");
    //alert("in changeDiv(" + url + ", " + elementName + ")");
     xmlHttp=GetXmlHttpObject()
     if (xmlHttp==null)
     {
         alert ("Browser does not support HTTP Request");
         return;
     }
     xmlHttp.onreadystatechange=function()
     {
         if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         {
             //alert("in stateChanged - elementName = " + elementName);
             elem = getElement(elementName);
             if (!elem)
                 alert("stateChanged: ERROR: element " + elementName + " is null");
             else
                 elem.setHTML(xmlHttp.responseText);
         }
     }
     xmlHttp.open("GET",url,true);
     xmlHttp.send(null);
	
	/*
	XHR.quickSend({url:url,target:elementName,handler:function(content,target,id){
		$(target).setHTML(c.responseText);
		if(callback){
			callback();
		}
		XHR.deleteRequest(id);
	}});
	*/
}

function changeDiv(url, elementName, callback)
{
    //alert("in changeDiv");
    //alert("in changeDiv(" + url + ", " + elementName + ")");
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
        alert ("Browser does not support HTTP Request")
        return
    }
    xmlHttp.onreadystatechange=function()
    {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
        {
            //alert("in stateChanged - elementName = " + elementName);
            elem = getElement(elementName);
            if (!elem)
                ; //alert("stateChanged: ERROR: element " + elementName + " is null");
            else
                elem.innerHTML=xmlHttp.responseText
    	    if (callback)
		callback();
        }
    }
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}

var updateMailCountHeader_counter = 0;
var MailCountHeaderTimerId = 0;

function updateMailCountHeader()
{
  //alert("updateMailCountHeader");
  changeDiv("callbacks.php?callback=GetMailCount&id=" + UserId, "MailCountSpan")
  updateMailCountHeader_counter++;
  if (updateMailCountHeader_counter > 100)
    clearInterval(MailCountHeaderTimerId);
}

function InitMailCountHeader()
{
  //alert("InitMailCountHeader");
  updateMailCountHeader_counter = 0;
  MailCountHeaderTimerId = 0;
  setTimeout("updateMailCountHeader()", 1000 );
  MailCountHeaderTimerId = setInterval("updateMailCountHeader()", 60 * 1000);
}

function urlencode(clearString)
{
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
        output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

function urldecode(encodedString)
{
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
}

function submitSearchGlobal(e) {
		if(e){
			e = e;
		} 
		else {
			e = window.event;
		}
		
		if(e.which){
			var keycode = e.which;
		} 
		else {
			var keycode = e.keyCode;
		}
		//alert(keycode);
		
		if(keycode == "13") {
			//submitGenSearch();
			//showPopup('gen_search_popup');
			//return Event.stop(e);
		}
}

