function ValidatorTrim(s) {
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}

var dtCh= "/";
var minYear=01;
var maxYear=99;
function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function validateURL(urlstring)
{
	var valid = true;
	if (urlstring != '')
	{
		var v = new RegExp();
		v.compile("^http(s)?://[a-z0-9-]+(\.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$");
		if (!v.test(urlstring))
	    {
			valid = false;
	    }
	}
	return valid;
}

function TrimFieldValue(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function validateInputStr(inputstr)
{
	var valid=true;
	if(inputstr.length>0)
	{
		chk1 = "#$%^*\~`<>\\?";
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
		for(j=0;j!=inputstr.length;j++)
		{
			ch1= inputstr.charAt(j);
			ch2= inputstr.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				valid=false;
				break;
			}
			else if(rtn1!=-1)
			{
				valid=false;
				break;
			}
		}
	}
	return valid;
}

function stripCharsInBag(s, bag){
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checklength(obj,len)
{
    var temp = obj.value;
    if(temp.length < len)
        return false;
    return true;
}
function checkEmail_old(strng)
{
    var error = "";
    if (strng == "")
        {
        error = "You did not enter an email-address.\n";
        }
    var emailFilter=/^.+@.+\..{2,4}$/;
    if (!(emailFilter.test(strng)))
        {
        error = "Please enter a valid email address.\n";
        }
    var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
    if(strng.match(illegalChars))
        {
        error = "The email address contains illegal characters.\n";
        }
    return error;
}
function checkEmail(email)
{
  var error = "";
  if(email.length <= 0)
  {
    error = "You did not enter an email-address.\n";
    return error;
  }
  var splitted = email.match("^(.+)@(.+)$");
  if(splitted == null)
  {
      error = "Please enter a valid email address.\n";
      return error;
  }
  else
  {
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null)
      {
          error = "Please enter a valid email address.\n";
          return error;
      }
    }
    if(splitted[2] != null)
    {
      if((splitted[2]).indexOf(".")<=0)
      {
          error = "Please enter a valid email address.\n";
          return error;
      }
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null)
      {
          var regexp_ip =/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
          if(splitted[2].match(regexp_ip) == null)
          {
              error = "Please enter a valid email address.\n";
              return error;
          }
      }
      return error;
    }
  }
  error = "Please enter a valid email address.\n";
  return error;
}
function checkEmailX(strng,fieldcaption)
{
    var error = "";
    if (strng == "")
        {
        error = "You did not enter an "+fieldcaption+".\n";
        }
    var emailFilter=/^.+@.+\..{2,4}$/;
    if (!(emailFilter.test(strng)))
        {
        error = "Please enter a valid "+fieldcaption+".\n";
        }
    var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
    if(strng.match(illegalChars))
        {
        error = "The "+fieldcaption+" contains illegal characters.\n";
        }
    return error;
}

//Link Rollover starts here
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//link rollover ends here

//pre load images scrip starts here
var myimages=new Array()
function preloadimages()
{
    for (i=0;i<preloadimages.arguments.length;i++)
    {
        myimages[i]=new Image()
        myimages[i].src=preloadimages.arguments[i]
    }
}
function alwaysontop()
{
    window.focus();
}
function isInt(varvalue)
{
	var regexpINT = /\D/;
	return !regexpINT.test(varvalue);
}
function isIP(varvalue)
{
	var regexpIP = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
	return regexpIP.test(varvalue);
}
function isSelected_Form_CheckBoxArray(formname,objname)
{
	var chkflg,strmessageid,url,returl;
	strmessageid="";
	chkflg=false;
	for(j=0; j<document.forms.length;j++)
	{
		if(document.forms[j].name==formname)
		{
			for (i=0;i<document.forms[j].elements.length;i++)
			{
				if (document.forms[j].elements[i].name==objname)
				{
					if (document.forms[j].elements[i].checked)
					{
						chkflg=true;
						break;
					}
				}
			}
		}
	}
	return chkflg;
}


/*******************************************************************************/
//added by chirag
//purpose: creates modaldialog for passed url
var ModalDialogWindow;
var ModalDialogInterval;
var ModalDialog = new Object;
ModalDialog.value = '';
ModalDialog.eventhandler = '';

function popupModalDialog(popupurl,width,height)
{
	if(typeof(width)=='undefined') width=500;
	if(typeof(height)=='undefined') height=500;

	if(window.showModalDialog)
	{
		window.showModalDialog(popupurl,window,'width='+width+',height='+height+',scrollbars=yes,location=no,status=no');
	}
	else
	{
		ModalDialogWindow=window.open(popupurl,window,'width='+width+',height='+height+',scrollbars=yes,location=no,status=no');
		ModalDialogInterval = window.setInterval("ModalDialogMaintainFocus()",1);
	}
}

function popupModalDialogVer1(popupurl,width,height,resizable,fullsize)
{
	if(typeof(width)=='undefined') width=500;
	if(typeof(height)=='undefined') height=500;
	if(typeof(resizable)=='undefined') resizable=0;
	if(typeof(fullsize)!='undefined' && fullsize == 'Y') {
		width = (screen.availWidth != undefined)?screen.availWidth-200:width;
	}
	if(window.showModalDialog)
	{
		window.showModalDialog(popupurl,window,'center:yes;dialogWidth='+width+'px;dialogHeight='+height+'px;resizable='+resizable+';edge=sunken;status=no');
	}
	else
	{
		ModalDialogWindow=window.open(popupurl,window,'width='+width+',height='+height+',resizable='+resizable+',scrollbars=yes,location=no,status=no');
		ModalDialogInterval = window.setInterval("ModalDialogMaintainFocus()",1);
	}
	return false;
}

function ModalDialogMaintainFocus()
{
	try
	{
		if (ModalDialogWindow.closed)
		{
			window.clearInterval(ModalDialogInterval);
			return;
		}
		ModalDialogWindow.focus();
	}
	catch (everything) {   }
}

function setWindowSize(w,h)
{
 if (parseInt(navigator.appVersion)>3)
 {
   if (navigator.appName=="Netscape")
   {
    top.outerWidth=w;
    top.outerHeight=h;
   }
   else top.resizeTo(w,h);
 }
}
function setActiveStyleSheet(title) {
   var i, a, main;
   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     if(a.getAttribute("rel").indexOf("style") != -1
        && a.getAttribute("title")) {
       a.disabled = true;
       if(a.getAttribute("title") == title) a.disabled = false;
     }
   }
}

/** checkbox function start */
function ChkValidate(frm,chkname){
	var validflag = false;
	for (i=0;i<document.forms[frm].elements.length;i++)
	{
		if (document.forms[frm].elements[i].id == chkname && document.forms[frm].elements[i].checked)
		{
			validflag = true;
			break;
		}
	}
	return validflag;
}
function chk_uncheck(frm,chkname,chkallobj){
	if(chkallobj.checked == true){
		checkAll(frm,chkname);
	} else {
		uncheckAll(frm,chkname)
	}
	return true;
}
function checkAll(frm,chkname)
{
     var docF=document.forms[frm];
     for(var i=0;i<docF.elements.length;i++)
     {
          if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
               docF.elements[i].checked=true;
     }
	 return true;
}
function uncheckAll(frm,chkname)
{
     var docF=document.forms[frm];
     for(var i=0;i<docF.elements.length;i++)
     {
          if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
               docF.elements[i].checked=false;
     }
	 return true;
}
function checkState(frm,chkname,chkallname)
{
	var flg=true;
	var docF=document.forms[frm];
    for(var i=0;i<docF.elements.length;i++)
    {
       if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
		{
	  		if(docF.elements[i].checked==false)
			{
				flg=false;
				break;
			}
		 }
     }
     document.getElementById(chkallname).checked=flg;
     return true;
}

function ValidateSelectMBlank(formvar,fld)
{
	var mselflg=false;
	for(imsel=0;imsel<document.forms[formvar].elements[fld].length;imsel++)
	{
		if(document.forms[formvar].elements[fld].options[imsel].selected && document.forms[formvar].elements[fld].options[imsel].value!="")
		{
			mselflg=true;
			break;
		}
	}
	return mselflg;
}
/** checkbox function end */

function searchSummary(obj,clsname)
{
	search_summary = '';
	search_summary1 = '';
	search_summary1 += "<strong>City</strong>:[CITY]<br />\r\n";
	search_summary1 += "<strong>State</strong>:[STATE]<br />\r\n";
	search_summary1 += "<strong>Zip</strong>:[ZIP]<br />\r\n";
	search_summary1 += "<strong>County</strong>:[COUNTY]<br />\r\n";
	search_summary1 += "<strong>Country</strong>:[COUNTRY]<br />\r\n";
	search_summary1 += "<strong>Source</strong>:[SOURCE]<br />\r\n";
	search_summary1 += "<strong>Active</strong>:[ACTIVE]<br />\r\n";
	search_summary1 += "<strong>Fortune 1000</strong>:[FORTUNE_1000]<br />\r\n";
	search_summary1 += "<strong>Inc 500</strong>:[INC_500]<br />\r\n";
	search_summary1 += "<strong>Min size</strong>:[MINSIZE]<br />\r\n";
	search_summary1 += "<strong>Max size</strong>:[MAXSIZE]<br />\r\n";
	search_summary1 += "<strong>Min sales</strong>:[MINSALE]<br />\r\n";
	search_summary1 += "<strong>Max sales</strong>:[MAXSALE]<br />\r\n";
	search_summary1 += "<strong>Practices</strong>:[PRACTICE_AREA]<br />\r\n";
	search_summary1 += "<strong>Practice Area Exclude</strong>:[PRACTICE_AREA_EXCLUDE]<br />\r\n";
	
	var ARR_CAPTION = new Array("city","state","county","country","source","active","fortune_1000","inc_500",
								"minsize","maxsize","minsale","maxsale","practice_area","practice_area_exclude");
	
	var static_vars_found = false;
	for(ele in obj)
    {
        if(obj[ele] && obj[ele] != "undefined" && obj[ele].type != 'hidden')
        {
        	if(obj[ele].name=='clspaging_' + clsname + '_numofrecsperpage') continue;

        	static_vars_found = false;
        	var obj_elem = obj[ele];
        	if(obj[ele].type=='text')
            {
            	var found_fld_str = checkStaticFlds(obj_elem.name,"F");
            	var tmp_arr = found_fld_str.split("|");
        		if (tmp_arr[0] > 0) {
        			search_summary1 = search_summary1.replace("["+tmp_arr[1].toUpperCase()+"]",obj[ele].value);
            		static_vars_found = true;
        		}
	        	if (static_vars_found == false)
	        	{
	            	if(ValidatorTrim(obj[ele].value)!='')
	            	{
	            		if (search_summary != "") {
	            			search_summary += '<br />\r\n<b>' + obj[ele].name + '</b>:';
	            		} else {
	            			search_summary += '<b>' + obj[ele].name + '</b>:';
	            		}
	            		search_summary += obj[ele].value;
	            	}
	        	}
            }
            else if(obj[ele].type=='select-one')
            {
            	index = obj[ele].selectedIndex;
            	/*if(index!=0)
	            {*/
	            	var found_fld_str = checkStaticFlds(obj_elem.name,"F");
	            	var tmp_arr = found_fld_str.split("|");
	        		if (tmp_arr[0] > 0) {
	        			search_summary1 = search_summary1.replace("["+tmp_arr[1].toUpperCase()+"]",obj[ele].options[index].text);
	            		static_vars_found = true;
	        		}
	        		if (static_vars_found == false)
		        	{
		            	if(index!=0)
		            	{
		            		if (search_summary != "") {
		            			search_summary += '<br />\r\n<b>' + obj[ele].name + '</b>:';
		            		} else {
		            			search_summary += '<b>' + obj[ele].name + '</b>:';
		            		}
		            		search_summary += obj[ele].options[index].text;
		            	}
		        	}
	            /*}*/
            }
            else if(obj[ele].type=='select-multiple')
            {
            	values = '';
            	for(i=1;i<obj[ele].options.length;i++)
            	{
            		if(obj[ele].options[i].selected)
            		{
            			if (values != "") {
            				values += ', ' + obj[ele].options[i].text;
            			} else {
            				values += obj[ele].options[i].text;
            			}
            		}
            	}
            	if(values!='')
            	{
            		var found_fld_str = checkStaticFlds(obj_elem.name,"F");
	            	var tmp_arr = found_fld_str.split("|");
	        		if (tmp_arr[0] > 0) {
	        			search_summary1 = search_summary1.replace("["+tmp_arr[1].toUpperCase()+"]",values);
	            		static_vars_found = true;
	        		}
	        		if (search_summary != "") {
            			search_summary += '<br />\r\n<b>' + obj[ele].name + '</b>:';
            		} else {
            			search_summary += '<b>' + obj[ele].name + '</b>:';
            		}
            		search_summary += values;
            	}
            }
            else if(obj[ele].type=='checkbox')
            {
            	if(obj[ele].checked)
            	{
            		var found_fld_str = checkStaticFlds(obj_elem.name,"F");
	            	var tmp_arr = found_fld_str.split("|");
	        		if (tmp_arr[0] > 0) {
	        			search_summary1 = search_summary1.replace("["+tmp_arr[1].toUpperCase()+"]",obj[ele].value);
	            		static_vars_found = true;
	        		}
        			if (static_vars_found == false)
		        	{
		        		if (search_summary != "") {
            				search_summary += '<br />\r\n<b>' + obj[ele].name + '</b>:';
	            		} else {
	            			search_summary += '<b>' + obj[ele].name + '</b>:';
	            		}
	            		search_summary += obj[ele].value;
		        	}
            	}
            }
        }
    }
    search_summary1 = ReplaceStaticFlds(search_summary1);
    search_summary = search_summary.replace("india","Law Crossing Contacts");
    search_summary = search_summary.replace("id_status","Status");
	search_summary = search_summary.replace("sic1","Sic Range");
	search_summary = search_summary.replace("sic_specific","Sic Code");
	search_summary = search_summary.replace("<b>sic_specific2</b>:","");
	search_summary = search_summary.replace("sic_specific2:","");
	search_summary = search_summary.replace("sic_list","Enter Sic Range");
    search_summary = search_summary.replace("<b>clscontactinfo_arr_sic_specific2[]</b>:","");
	return search_summary1+search_summary;
}

function checkStaticFlds(fld_name,showMsg)
{
	var found_fld = 0;
	var found_fld_cap = "";
	var ARR_CAPTION = new Array("city","state","county","country","source","zip","active","fortune_1000","inc_500",
								"minsize","maxsize","minsale","maxsale","practice_area","practice_area_exclude");
	for(var k=0;k<ARR_CAPTION.length;k++)
	{
		found_fld_cap	= ARR_CAPTION[k];
		found_fld 		= fld_name.indexOf(ARR_CAPTION[k]);
		if (found_fld > 0) break;
	}
	var fld_str = found_fld+"|"+found_fld_cap;
	return fld_str;
}

function ReplaceStaticFlds(summary)
{
	var ARR_CAPTION = new Array("city","state","county","country","source","zip","active","fortune_1000","inc_500",
								"minsize","maxsize","minsale","maxsale","practice_area","practice_area_exclude");
	for(var k=0;k<ARR_CAPTION.length;k++)
	{
		var fld = "["+ARR_CAPTION[k].toUpperCase()+"]";
		summary = summary.replace(fld,"");
	}
	return summary;
}

function ShowHideDiv(divid)
{
	if (document.getElementById(divid))
	{
		if (document.getElementById(divid).style.display == "none") {
			document.getElementById(divid).style.display = "";
		} else {
			document.getElementById(divid).style.display = "none";
		}
	}
	return false;
}

function validateAlphaNumeric(inputstr)
{
	var valid=true;
	if(inputstr.length>0)
	{
		chk1 = "#$%^*\~`<>\\?";
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,-";
		for(j=0;j!=inputstr.length;j++)
		{
			ch1= inputstr.charAt(j);
			ch2= inputstr.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				valid=false;
				break;
			}
			else if(rtn1!=-1)
			{
				valid=false;
				break;
			}
		}
	}
	return valid;
}

function validatePhoneFax(inputstr)
{
	var valid=true;
	if(inputstr.length>0)
	{
		chk1 = "#$%^*\~`<>\\?";
		chk3="1234567890,-()";
		for(j=0;j!=inputstr.length;j++)
		{
			ch1= inputstr.charAt(j);
			ch2= inputstr.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				valid=false;
				break;
			}
			else if(rtn1!=-1)
			{
				valid=false;
				break;
			}
		}
	}
	return valid;
}

function maximizeWindow()
{
    var offset = (navigator.userAgent.indexOf("Mac") != -1 || navigator.userAgent.indexOf("Gecko") != -1 || navigator.appName.indexOf("Netscape") != -1) ? 0 : 4;
    window.moveTo(-offset, -offset);
    window.resizeTo(screen.availWidth + (2 * offset), screen.availHeight + (2 * offset));
}

function dateExists(year, month, date, onlyFuture)
{
	var valid = false;
	var d = new Date(year, (month-1), date);
	if(d.getFullYear() == year && (d.getMonth()+1) == month && d.getDate() == date) valid = true;
	
	if(valid && onlyFuture)
	{
		var today = new Date();
		if(d.getTime() < today.getTime()) valid = false;
	}
	return valid;
}
