//Common file for Javascript Function which are commonly used
//-Srinivas Komma
//----------------------------------------------------------------------------------
//Ajax implementation
//----------------------------------------------------------------------------------
function GetXmlHttpObject_Global(handler)
{ 
var objXmlHttp=null;

if (navigator.userAgent.indexOf("MSIE")>=0)
{ 
var strName="Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP";
} 
try
{ 
objXmlHttp=new ActiveXObject(strName);
objXmlHttp.onreadystatechange=handler;
return objXmlHttp;
} 
catch(e)
{ 
alert("Error. Scripting for ActiveX might be disabled");
return;
} 
} 
if (navigator.userAgent.indexOf("Mozilla")>=0)
{

objXmlHttp=new XMLHttpRequest();
objXmlHttp.onload=handler;
objXmlHttp.onerror=handler;
return objXmlHttp;
}
}
var div_object;

function OnMOver_OppSearch(OppID)
{
    //OppID_js = OppID
    //Tip('<img src=\'/images/ajax1.gif\' />',BALLOON,true,ABOVE,true,FIX,['moverimg0_' + OppID_js,-2,0],FOLLOWMOUSE,false,WIDTH,200)
	
	var url="http://www.fedsources.com/client/programs/Ajax_ProgramInfo.asp?ID=" + OppID;	

    xmlHttp=GetXmlHttpObject_Global(stateChanged_OpSearch);
    xmlHttp.open("GET", url , true);
    xmlHttp.send(null);
}

function stateChanged_OpSearch() 
{ 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {        
        var strajax =  xmlHttp.responseText      
        //Tip(strajax,BALLOON,true,ABOVE,true,FIX,['moverimg0_' + OppID_js,-2,0],FADEIN, 400, FADEOUT, 300,FOLLOWMOUSE,false,WIDTH,200)
        document.all['Div' + div_object].innerHTML = strajax;
        
    }
}



//------------Contracts Export Function----------------------------------------
function ContractsExportToExcel(URL,RecCount)
{
   if (RecCount > 3000)
   {
        if (confirm ('Your results contain more than 3000 records, the maximum allowable download.  If you would like to download the the first 3000 records or your search results click OK, otherwise click CANCEL and refine your search.  If you wish to export a list greater than 3000 records, please call FSI at 703-610-8711 for further assistance.'))
        {
            window.open(URL)
        }
   }
   else
   {
     window.open(URL)
   }
}


function createObject_For_Browser(objId)
{
    if (document.getElementById) return document.getElementById(objId);
    else if (document.layers) return eval("document." + objId);
    else if (document.all) return eval("document.all." + objId);
    else return eval("document." + objId);
}
function PostAnchor(Aname,FName,FVal)    
{        
    if (document.getElementById(FName).value == FVal)
    {
        window.location.hash = "#" + Aname;    
    }
}
function __doPostBackSelection(Type,Ftype,EType)
{
    DisplayPopUp("../FieldSelection.aspx?EType=" + EType + "&FType=" + Ftype,600,500,"Documents");
//    DisplayPopUp_Param("../FieldSelection.aspx?EType=" + EType + "&FType=" + Ftype,600,500,"Documents",'yes','yes','yes','yes');
    
}

function ValidateAndSubmitContactUsForm ()
{		
	var fm = document.form1
	
	if (IsEmptyTextField(fm.LastName.value) || IsEmptyTextField(fm.FirstName.value) || IsEmptyTextField(fm.UserCompany.value) || IsEmptyTextField(fm.UserAddress.value) || IsEmptyTextField(fm.UserCity.value) || IsEmptyTextField(fm.UserState.value) || IsEmptyTextField(fm.UserZip.value) || IsEmptyTextField(fm.UserTel.value) || IsEmptyTextField(fm.UserEmail.value) )
	{
		alert("Enter fields marked *")
		return false;
	}
	else if (ValidateEmail(fm.UserEmail.value))
	{
		alert('Invalid Email Address')
		return false;
	}
	else if (ValidatePhone(fm.UserTel.value))
	{	
		alert('Invalid Phone Number')
		return false;
	}
	else if (ValidateZipCode(fm.UserZip.value))
	{
		alert('Invalid Zip Code')
		return false;	
	}
	else
	{
		return true;
	}
}
function ValidateAndSubmitExpSel() 
{
    var EType = document.getElementById('HidEtype').value.toLowerCase();
    if (EType == 'opportunities')
    {
        var fm = document.form1;
        var ChkBoxSelected;
        ChkBoxSelected = 0
        var l
        for(l=0; l < fm.elements.length; l++)
        {
            if(fm.elements[l].type=="checkbox")
            {
                if (fm.elements[l].checked == true)
                {
                    ChkBoxSelected = ChkBoxSelected + 1  
                    l = fm.elements.length 
                }
            }
        }
        if (ChkBoxSelected > 0)
        {
            if (opener && !window.opener.closed) 
            {
                SelectFieldVal();
                ShowFieldSelect('true',18,'BtnSubmit');
                //AdjustPopUpSize(800,800)
                return true;
            }
            else
            {
                alert('Unable to process your request');
                return false;   
	        }
	    }
	    else
	    {
	        alert('Please select one or more fields')
	        return false;
	    }
    }
    else if(EType == 'people')
    {
        var rcheck = false;
        if (document.getElementById('RadPrimary').checked || document.getElementById('RadVertical').checked || document.getElementById('RadHorizontal').checked)
        {
            rcheck = true;
        }
        if (rcheck)
        {
            SelectFieldVal();
            ShowFieldSelect('true',10,'BtnPeopleSubmit');
            //AdjustPopUpSize(800,800)
            return true;
        }
        alert('Please select export layout')
        return false;
    }
    return false;
}


     
 function do_ViewDocuments$(object,OppID,DependentObject)
{
		object = object + OppID;
		if (document.layers && document.layers['Div' + object] != null) {
		if (document.layers['Div' + object].visibility == 'visible') {
			document.layers['Div' + object].visibility ='hidden';
			document.layers['Div' + object].display = 'none';
			document.layers['Img' + object].src ='../../images/plus.gif';			
					
		} else {
			document.layers['Div' + object].visibility ='visible';
			document.layers['Div' + object].display = 'inline';
			document.layers['Img' + object].src ='../../images/minus.gif';
		}
	} else if (document.all) {
		if (document.all['Div' + object].style.visibility == 'visible') {
			document.all['Div' + object].style.visibility = 'hidden';
			document.all['Div' + object].style.display = 'none';
			document.all['Img' + object].src ='../../images/plus.gif';
		} else {
			document.all['Div' + object].style.visibility = 'visible';
			document.all['Div' + object].style.display = 'inline';
			document.all['Img' + object].src ='../../images/minus.gif';			
		}
	} else if (document.getElementById('Div' + object) != null) {
		if (document.getElementById('Div' + object).style.visibility == 'visible') {
			document.getElementById('Div' + object).style.visibility = 'hidden';
			document.getElementById('Div' + object).style.display = 'none';
			document.getElementById('Img' + object).src ='../../images/plus.gif';
		} else {
			document.getElementById('Div' + object).style.visibility = 'visible';
			document.getElementById('Div' + object).style.display = 'inline';
			document.getElementById('Img' + object).src ='../../images/minus.gif';
		}
	}
	if (DependentObject != "")
	{
	  do_Controller(DependentObject,OppID)  
	}
}
function do_Controller(object,OppID)
{
        object = object + OppID;
        if (document.getElementById('Div' + object) != null)
        {
		    if (document.layers && document.layers['Div' + object] != null) 
		    {
		        if (document.layers['Div' + object].visibility == 'visible') 
		        {
			        document.layers['Div' + object].visibility ='hidden';
			        document.layers['Div' + object].display = 'none';
			        document.layers['Img' + object].src ='../../images/plus.gif';			
		        } 
	        } 
	        else if (document.all) 
	        {
		        if (document.all['Div' + object].style.visibility == 'visible') 
		        {
			        document.all['Div' + object].style.visibility = 'hidden';
			        document.all['Div' + object].style.display = 'none';
			        document.all['Img' + object].src ='../../images/plus.gif';
		        } 
	        } 
	        else if (document.getElementById('Div' + object) != null) 
	        {
		        if (document.getElementById('Div' + object).style.visibility == 'visible') 
		        {
			        document.getElementById('Div' + object).style.visibility = 'hidden';
			        document.getElementById('Div' + object).style.display = 'none';
			        document.getElementById('Img' + object).src ='../../images/plus.gif';
		        } 
	        }
	    }
}

function SelectFieldVal()
{
    document.getElementById('Fld').value = opener.document.getElementById(document.getElementById('FldSelect').value).value;
}


function ValidateAndSubmitEventOrder ()
{		
	var fm = document.form1
	
	if ((fm.TxtLastName.value == '') || (fm.TxtFirstName.value=='') || (fm.TxtCompany.value == '') || (fm.TxtEmail.value==''))
	{
		alert("Enter fields marked *")
		return false;
	}
	else if (ValidateEmail(fm.TxtEmail.value))
	{
		alert('Invalid Email Address')
		return false;
	}
	else if (ValidatePhone(fm.TxtPhone.value))
	{	
		alert('Invalid Phone Number')
		return false;
	}
	else if (ValidateZipCode(fm.TxtZip.value))
	{
		alert('Invalid Zip Code')
		return false;	
	}
	else
	{
		return true;
	}
}

function ValidateEventsAlert()
{
	var fm = document.form1
	
	if ((fm.LastName.value == '') || (fm.FirstName.value=='') || (fm.UserCompany.value == '') || (fm.UserAddress.value=='') || (fm.UserCity.value=='') || (fm.UserState.value == '') || (fm.UserZip.value == '') || (fm.UserTel.value == '') || (fm.UserEmail.value == '') )
	{
		alert('Enter fields marked *')
	}
	else if (ValidateEmail(fm.UserEmail.value))
	{
		alert('Invalid Email Address')
	}
	else if (ValidatePhone(fm.UserTel.value))
	{	
		alert('Invalid Phone Number')
	}
	else if (ValidateZipCode(fm.UserZip.value))
	{
		alert('Invalid Zip Code')	
	}
	else
	{
		return true;
	}
	return false;
}
function GetFsiRecord(ClientID,ClientUrl)
{
    if (createObject_For_Browser(ClientID.replace('GetFsiRecord','qry')))
    {
        var fvalue = createObject_For_Browser(ClientID.replace('GetFsiRecord','qry')).value;
        disableBtn(ClientID,'Searching...')
        window.location = "http://" + document.domain + ClientUrl + "?ID=" + fvalue
//        if (IsEmptyTextField(fvalue))
//        {
//            alert("You have entered an invalid FSI number. \nPlease enter a valid FSI number in the following format: FSI0012345, FSI12345 or 12345 and click on the Search FSI Number button to jump directly to the record details.")
//        }
//        else
//        {
//            disableBtn(ClientID,'Searching...')
//            window.location = "http://" + document.domain + ClientUrl + "?ID=" + fvalue
//        }
    }
    else
    {
        alert("Unable to process request");
    }
    return false;
}
function ValidateContactUpdate()
{
	var fm = document.form1
	
	if ((fm.LastName.value == '') || (fm.FirstName.value=='') || (fm.UserCompany.value == '') || (fm.UserEmail.value == '') || (fm.LastName2.value == '') || (fm.FirstName2.value=='') || (fm.UserCompany2.value == '') || (fm.UserEmail2.value == ''))
	{
		alert("Enter fields marked *")		
	}
	else if (ValidateEmail(fm.UserEmail.value))
	{
		alert ('Invalid Email Address')
		fm.UserEmail.focus()
	}
	else if (ValidateEmail(fm.UserEmail2.value))
	{
		alert ('Invalid Email Address')
		fm.UserEmail2.focus()
	}
	else if ((fm.LastName.value.toUpperCase() == fm.LastName2.value.toUpperCase() ) && (fm.FirstName.value.toUpperCase() == fm.FirstName2.value.toUpperCase()) && (fm.UserCompany.value.toUpperCase() == fm.UserCompany2.value.toUpperCase()) && (fm.UserEmail.value.toUpperCase() == fm.UserEmail2.value.toUpperCase()) )
	{
		alert ('New and Old Information are identical')
	}
	else
	{
		return true;
	}
	return false;
}

//-------------------------------------------------------------------------------
//function ValidateAndSubmitAuthenticateForm() 
//added by Srinivas Komma for validating and Submitting the 
//Authentication form, 2/27/2008
//-------------------------------------------------------------------------------
function ValidateAndSubmitAuthenticateForm(PassLength)
    {   
        var fm = document.AuthenticateClient
        if (IsEmptyTextField(fm.NewPassword.value) || IsEmptyTextField(fm.ConfirmNewPassword.value))
        {
            alert('Enter fields marked *');
            return false;
        }
        else
        {
            if (fm.NewPassword.value == fm.ConfirmNewPassword.value)
            {
                if (ValidatePassword(fm.NewPassword.value,PassLength))
                {                   
                    return true;
                }
                else
                     alert("Password be at least " + PassLength + " characters in length, and should contain at least one alpha and one numeric character.Should not contain special characters like '<, >'");
                     return false;
                     
            }
            else
            {
                alert('Passwords does not match');  
                return false;
            }
        }
    }
//************************************************************************************ 
//**************************FOIA Related**********************************************
//************************************************************************************    
function SubmitFoiaConfirm()
    {
        var fm = document.form1;
        if (IsEmptyTextField(fm.Agency.value))
        {
            alert('Enter fields marked *');
            return false;
        }
        if (!IsEmptyTextField(fm.UplaodFile.value))
        {
            var ext = fm.UplaodFile.value
		    ext = ext.substring(ext.length-3,ext.length);
  		    ext = ext.toLowerCase();
  		    if(ext != 'pdf') 
		    {
   			    alert('Please upload PDF files only!')
			    return false
		    }
		}
		return true;        
    }
function ValidateFoiaForm()
    {
        var fm = document.Foia;
        if (IsEmptyTextField(fm.RName.value) || IsEmptyTextField(fm.RCompany.value) || IsEmptyTextField(fm.RAddress1.value) || IsEmptyTextField(fm.RCity.value) || (fm.RStates.value == "") || IsEmptyTextField(fm.RZipCode.value) || IsEmptyTextField(fm.email.value) || IsEmptyTextField(fm.bname.value) || IsEmptyTextField(fm.bcompany.value) || IsEmptyTextField(fm.baddr1.value) || IsEmptyTextField(fm.bcity.value) || IsEmptyTextField(fm.bzip.value) || IsEmptyTextField(fm.bstate.value))
        {
            alert('Enter fields marked *');
            return false;
        }
        else if (ValidateEmail(fm.email.value))
	    {
		    alert('Invalid Email Address');
		    return false;
	    }
	    else if (!CheckPhoneNumber(fm.phone.value))
	    {	
		    alert('Invalid Phone Number');
		    return false;
	    }
	    else if (ValidateZipCode(fm.RZipCode.value))
	    {
		    alert('Invalid Requestor Zip Code')
		    return false;	
	    }
	    else if (ValidateZipCode(fm.bzip.value))
	    {
		    alert('Invalid Billing Zip Code')
		    return false;	
	    }
	    else if (fm.ChkAgree.checked == false)
	    {
	        alert('Please check Terms and Conditions') 
	    }
	    else if (ValidateZipAndState(fm.RStates.value,fm.RZipCode.value))
	    {
		    alert('Invalid Requestor Zip Code (doesnt match with Requestor State)')
		    return false;	
	    }
	    else if (ValidateZipAndState(fm.bstate.value,fm.bzip.value))
	    {
		    alert('Invalid Billing Zip Code (doesnt match with Billling State)')
		    return false;	
	    }
	    else
	    {
	        return true;
	    }       
    
    }
 function CheckBilling()
    {
         if(document.getElementById("ChkBill").checked == true)
         {
            document.getElementById("bname").value = document.getElementById("RName").value
            document.getElementById("bcompany").value = document.getElementById("RCompany").value
            document.getElementById("baddr1").value = document.getElementById("RAddress1").value
            document.getElementById("baddr2").value = document.getElementById("RAddress2").value
            document.getElementById("bcity").value = document.getElementById("RCity").value
            document.getElementById("bstate").value = document.getElementById("RStates").value
            document.getElementById("bzip").value = document.getElementById("RZipCode").value
         }
         else
         {
            document.getElementById("bname").value = "";
            document.getElementById("bcompany").value = "";
            document.getElementById("baddr1").value = "";
            document.getElementById("baddr2").value = "";
            document.getElementById("bcity").value = "";
            document.getElementById("bstate").value = "";
            document.getElementById("bzip").value = "";
         }
    }
//************************************************************************************ 
//************************************************************************************     
    
    
//******** To find whether a string is empty******************************************
function IsEmptyTextField (s)
      {
           var i;
           var whitespace = " \t\n\r";
           if ((s == null) || (s.length == 0)) 
           {
                return true;
           }
           for (i = 0; i < s.length; i++)
           {
                var c = s.charAt(i);
                if (whitespace.indexOf(c) == -1) return false;
           }
           return true;
      }
//************************************************************************************

//-------------------------------------------------------------------------------
//function ValidatePassword() :  2/27/2008
//added by Srinivas Komma for Password Validation
//-------------------------------------------------------------------------------

function ValidatePassword(s,PassLength)
    {
         if (StringHasSpacesOrEmpty(s) || (s.length < PassLength))
            return false;
         else
            return CheckForCharaAndNum(s);    
    }

function StringHasSpacesOrEmpty (s)
      {
           var i,spacecount;
           var whitespace = " \t\n\r";
           if ((s == null) || (s.length == 0)) 
           {
                return true;
           }
           spacecount = 0;
           for (i = 0; i < s.length; i++)
           {
                var c = s.charAt(i);
                if (whitespace.indexOf(c) == -1)
                {
                    spacecount = spacecount + 1;
                }                
           }
           
           if (s.length == spacecount)
           {
                return false;
           }
           else
           {
                return true;
           }
      }

function CheckForCharaAndNum(s)
{
    var i,j,count;
    var chrs = ["a", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z","!","@"]
    var nums = [0,1,2,3,4,5,6,7,8,9]
    count = 0;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        for (j=0; j< chrs.length; j++)
        {
            if (chrs[j] == c.toLowerCase())
            {
                count = count + 1;
                i = s.length;
                j = chrs.length;
           }
        }
    }   
    
    for (i = 0; i < s.length; i++)
    {
        var d = s.charAt(i);
        for (j=0; j< nums.length; j++)
        {
            if (nums[j] == d.toLowerCase())
            {
                count = count + 1;
                i = s.length;
                j = nums.length;
           }
        }
    }
   if ((s.indexOf(">") == -1) && (s.indexOf("<") == -1))
   {
      count = count + 1;  
   }
   if (count > 2)
        return true;
   else
        return false;     
}

function ClearFields_Password()
{
     var fm = document.AuthenticateClient
     fm.NewPassword.value = '';
     fm.ConfirmNewPassword.value = '';
     return false;
}

//****************************************************************

function ValidatePasswordServices()
{
	var fm = document.FormEmail
	
	if ((fm.LastName.value == '') || (fm.FirstName.value=='') || (fm.UserCompany.value == '') || (fm.UserTel.value == '') || (fm.UserEmail.value == '') )
	{
		alert('Enter fields marked *')
	}
	else if (ValidateEmail(fm.UserEmail.value))
	{
		alert('Invalid Email Address')
	}
	else if (ValidatePhone(fm.UserTel.value))
	{	
		alert('Invalid Phone Number')
	}
	else
	{
		return true;
	}
	return false;	
}
function ClearFields_RequestPassword()
{
     var fm = document.FormEmail
     fm.FirstName.value = '';
     fm.LastName.value = '';
     fm.UserCompany.value = '';
     fm.UserTel.value = '';
     fm.UserEmail.value = '';
     
     return false;
}
//************************************************************************************

// Email Validation 
function ValidateEmail(email){
	var emailID=email
	
	if ((emailID==null)||(emailID=="")){
		return false
	}
	if (CheckEmail(emailID)==false){
		return true
	}
	return false
 }

function CheckEmail(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){
		   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					
	}

//******************************************************************************************
//********************************Validating Phone Number***********************************
//******************************************************************************************
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

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 trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
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++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function CheckPhoneNumber(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}


//

//*********************************************************************

//Phone Validation (Criteria is to check whether they are 10 digits or not: as per requirement by MI team)

function ValidatePhone(phonenumber)
{
	var NumCount = 0
	for(i=0;i< phonenumber.length; i++)
	{
		if (((phonenumber.charAt(i) >= "0") && (phonenumber.charAt(i) <= "9")))
		{
			NumCount = NumCount + 1
		}
	}
	
	if (NumCount == 10)
	{
		return false
	}
	else
	{
		return true
	}	
}

//************************************************************************

//Zip Code Validation (Criteria was to check whether it had 5 digits or not : as per requirement by MI)

function ValidateZipCode(zipcode)
{
	var NumCount = 0
	if (zipcode.length == 5)
	{
		for(i=0;i< zipcode.length; i++)
		{
			if (((zipcode.charAt(i) >= "0") && (zipcode.charAt(i) <= "9")))
			{
				NumCount = NumCount + 1
			}
		}
		if (NumCount == 5)
		{
			return false
		}
		else
		{
			return true
		}		
	}
	else
	{
		return true
	}
}

//----------------------------------------------------------------------------------------
// funtion ValidatePostData : Checks to see if any script is included in data to be posted
//----------------------------------------------------------------------------------------
function ValidatePostData(Txtbox)
    {
        if (Txtbox)
        {
            var str = Txtbox.value
            var exists = 0
            if ((str.indexOf(">") > -1) && (str.indexOf("<") > -1))
                exists = exists + 1
            if (exists == 1)
                return false
            else
                return true             
        }
        else
        {
            return false
        }       
    }
//----------------------------------------------------------------------------------------
// funtion PostingDataAlert : Message to be displayed while any harmful data is submitted
//----------------------------------------------------------------------------------------

function PostingDataAlert()
{
    alert("The following characters: '<' and '>' are invalid.")
    return false
}

function DisplayPopUp(PageName,Width,Height,WinName)
        {
            var PopupWindow=null;
            var w=(screen.width-Width)/2;
            var h=(screen.height-Height)/2;
            settings='width='+Width+',height='+Height+',top='+h+',left='+w+',menubar=no,toolbar=no,scrollbars=yes,resizable=no';
            PopupWindow=window.open(PageName,WinName,settings);
            PopupWindow.focus();            
		}
function DisplayPopUp_Param(PageName,Width,Height,WinName,MenuBar,Toolbar,Scrollbars,Resizable)
        {
            var PopupWindow=null;
            var w=(screen.width-Width)/2;
            var h=(screen.height-Height)/2;
            settings='width='+Width+',height='+Height+',top='+h+',left='+w+',menubar='+MenuBar+',toolbar='+Toolbar+',scrollbars='+Scrollbars+',resizable='+Resizable;
            PopupWindow=window.open(PageName,WinName,settings);
            PopupWindow.focus();            
		}	

function AdjustPopUpSize(Width,Height)
    {
        window.resizeTo(Width,Height)
        var w=(screen.width-Width)/2;
        var h=(screen.height-Height)/2;
        window.moveTo(w,h);
    }	

function BiddersDeleteConfirmation()
		{
		var fn;
		fn=document.forms[0];
		ret=confirm("Are you sure to delete record?");
        if (ret==true)
        {
        
            return true;
        }
        if (ret==false)
			{
			
				return false;
			}
		}
		
		function MyDeleteConfirmation(myval,MYFSI)
		{
		var fn;
		fn=document.forms[0];
		ret=confirm("Are you sure you want to permanently delete the selected " + myval + "?");
        if (ret==true)
        {
        var ChkBoxSelected;
        ChkBoxSelected = 0
        var l
        for(l=0; l < fn.elements.length; l++)
        {
            if(fn.elements[l].type=="checkbox")
            {
                if (fn.elements[l].checked == true)
                {
                        ChkBoxSelected = ChkBoxSelected + 1  
                        l = fn.elements.length 
                }
            }
        }
        if (ChkBoxSelected > 0)
        {
            return true;
        }
        else
        {
            alert("Please use the checkboxes to select at least one " + MYFSI + " to delete.");
            return false;
        }
           // return true;
        }
        if (ret==false)
			{
			
				return false;
			}
		}
		
function ValidateNewsletterForm()
{
var fm = document.FormEmail
if(fm.txtEmail.value == '')
{
        alert('Enter your email')
		return false
}
else if (ValidateEmail(fm.txtEmail.value))
	{
		alert('Invalid Email Address')
		return false
	}
	
}
function ValidateFsiIntelForm()
{
	var fm = document.FormEmail
	
	if ((fm.txtFirstName.value == '') || (fm.txtLastName.value == '') || (fm.txtCompany.value == '') || (fm.txtAddress.value=='') || (fm.txtCity.value=='') || (fm.txtZipCode.value == '') || (fm.txtPhone.value == '') || (fm.txtEmail.value == '') )
	{
		alert('Enter fields marked *')
		return false
	}
	else if (ValidateEmail(fm.txtEmail.value))
	{
		alert('Invalid Email Address')
		return false
	}
	else if (fm.ddCountry.value == 'US')
	{
		if (fm.DDState.value == 'XX')
		{
			alert('Select State')	
			return false
		}
		else if (ValidatePhone(fm.txtPhone.value))
		{	
			alert('Invalid Phone Number')
			return false
		}
		else if (ValidateZipCode(fm.txtZipCode.value))
		{
			alert('Invalid Zip Code')	
			return false
		}
		else if ( fm.txtCurrentEmail.value != "")
		{
		if ( fm.txtCurrentEmail.value != fm.txtEmail.value )
		{
			if (confirm("You are about to change your email address"))
			{
				return true
			}
			else
		    {
			    return false
		    }
		}
		else
		{
			return true
		}
		}
	}
	else  if ( fm.txtCurrentEmail.value != "")
	{
	if ( fm.txtCurrentEmail.value != fm.txtEmail.value )
	{
		if (confirm("You are about to change your email address"))
		{
			return true
		}
		else
	    {
		return false
	    }
	}
	else
	{
		return true
	}
	}
}

function ValidateUserFeedbackForm()
{
var fm = document.FormEmail
if(fm.txtEmail.value == '')
{
        alert('Enter your email')
		return false
}
else if (ValidateEmail(fm.txtEmail.value))
	{
		alert('Invalid Email Address')
		return false
	}
	
	if(fm.txtPhone.value == '')
{
        alert('Enter your phone number')
		return false
}
else if (ValidatePhone(fm.txtPhone.value))
		{	
			alert('Invalid Phone Number')
			return false
		}
		
		if(fm.txtSubject.value == '')
{
        alert('Enter Bug/Change Summary')
		return false
}
}

function ValidateAndSubmitEmailToFriend()
{
    var fm = document.form1

if (IsEmptyTextField(fm.txtTo.value) && IsEmptyTextField(fm.txtFrom.value))
	{
		alert('Please enter the following:\nTo Email\nFrom Email');
		document.getElementById("lblto").style.color='red';
		document.getElementById("lblto").style.fontWeight = 700;
		fm.txtTo.style.background='#C6EDFF';

		document.getElementById("lblFrom").style.color='red';
		document.getElementById("lblFrom").style.fontWeight = 700;
		fm.txtFrom.style.background='#C6EDFF';
		return false;
	}
	else
	{
		document.getElementById("lblto").style.color='black';
		document.getElementById("lblto").style.fontWeight = 400;
		fm.txtTo.style.background='#ffffff';

		document.getElementById("lblFrom").style.color='black';
		document.getElementById("lblFrom").style.fontWeight = 400;
		fm.txtFrom.style.background='#ffffff';
	}
	if (IsEmptyTextField(fm.txtTo.value))
		{
			
			alert('Please enter To Email');
			fm.txtTo.style.background='#C6EDFF';
			document.getElementById("lblto").style.color='red';
			document.getElementById("lblto").style.fontWeight = 700;
			return false;
		}
		else
	{
		document.getElementById("lblto").style.color='black';
		document.getElementById("lblto").style.fontWeight = 400;
		fm.txtTo.style.background='#ffffff';
	}
	if (IsEmptyTextField(fm.txtFrom.value))
		{
			alert('Please enter From Email');
			fm.txtFrom.style.background='#C6EDFF';
			document.getElementById("lblFrom").style.color='red';
			document.getElementById("lblFrom").style.fontWeight = 700;
			return false;
		}
		else
	{
			document.getElementById("lblFrom").style.color='black';
			document.getElementById("lblFrom").style.fontWeight = 400;
			fm.txtFrom.style.background='#ffffff';
	}
    
	if (ValidateEmail(fm.txtTo.value) || ValidateEmail(fm.txtFrom.value) || ( !(IsEmptyTextField(fm.txtTo1.value)) && (ValidateEmail(fm.txtTo1.value))) || ( !(IsEmptyTextField(fm.txtTo2.value)) && (ValidateEmail(fm.txtTo2.value))) || ( !(IsEmptyTextField(fm.txtTo3.value)) && (ValidateEmail(fm.txtTo3.value))))
        {
            alert("Enter valid Email address");
            return false;
        }
    else
        {
		   if(fm.Comments.value.length>="200")
			{
				alert("Limited to 200 characters");
				return false;
			}
		   else
			{
                return true;
			}
        }
}

function ValidateAndSubmitEmailToFriend_Events()
{
    var fm = document.form1
    
    if (IsEmptyTextField(fm.txtTo.value) || IsEmptyTextField(fm.txtFrom.value))
        {
            alert('Please enter fields marked *');
            return false;
        }
    else
        {
           if (ValidateEmail(fm.txtTo.value) || ValidateEmail(fm.txtFrom.value) || ( !(IsEmptyTextField(fm.txtTo1.value)) && (ValidateEmail(fm.txtTo1.value))) || ( !(IsEmptyTextField(fm.txtTo2.value)) && (ValidateEmail(fm.txtTo2.value))) || ( !(IsEmptyTextField(fm.txtTo3.value)) && (ValidateEmail(fm.txtTo3.value))))
           {
                alert("Enter valid Email address");
                return false;
           }
           else
           {
                return true;
           }
        }   
}

function ValidateFreeTrial_ClientLogin()
{
	var fm = document.form1
	
	if ((fm.txtLastName.value == '') || (fm.txtFirstName.value=='') || (fm.txtCompany.value == '') || (fm.txtPhone.value == '') || (fm.txtEmail.value == '') )
	{
		alert('Enter fields marked *');
		return false;
	}
	else if (ValidateEmail(fm.txtEmail.value))
	{
		alert('Invalid Email Address');
		return false;
	}
	else if (ValidatePhone(fm.txtPhone.value))
	{	
		alert('Invalid Phone Number');
		return false;
	}
	
	else
	{
		return true;
	}	
}

function ValidateFreeTrial()
{
	var fm = document.form1
	
	if ((fm.txtLastName.value == '') || (fm.txtFirstName.value=='') || (fm.txtCompany.value == '') || (fm.txtAddress.value=='') || (fm.txtCity.value=='') || (fm.ddlHear.value == 0)|| (fm.txtZipCode.value == '') || (fm.txtPhone.value == '') || (fm.txtEmail.value == '') )
	{
		alert('Enter fields marked *');
		return false;
	}
	else if (ValidateEmail(fm.txtEmail.value))
	{
		alert('Invalid Email Address');
		return false;
	}
	else if (ValidatePhone(fm.txtPhone.value))
	{	
		alert('Invalid Phone Number');
		return false;
	}
	else if (ValidateZipCode(fm.txtZipCode.value))
	{
		alert('Invalid Zip Code');
		return false;
	}
	
	else
	{
		return true;
	}	
}

function ValidateFreeTrial_MySBX(Suffix)
{
	var fm = document.form1
	
	if ((document.getElementById('FName' + Suffix).value == '') || (document.getElementById('LName' + Suffix).value == '') || (document.getElementById('Phone' + Suffix).value == '') || (document.getElementById('Email' + Suffix).value =='') || (document.getElementById('Company' + Suffix).value =='') )
	{
		alert('Enter fields marked *');
		return false;
	}
	else if (ValidateEmail(document.getElementById('Email' + Suffix).value))
	{
		alert('Invalid Email Address');
		return false;
	}
	else if (ValidatePhone(document.getElementById('Phone' + Suffix).value))
	{	
		alert('Invalid Phone Number');
		return false;
	}
	else
	{
		return true;
	}	
}

function RemoveFromMySF()
	{
	    if (confirm('Clicking OK removes this record from your MySalesForce Track list.Do you want to continue?'))
	    {
	        return true;
	    }
	    else
	    {
	        return false;
	    }
	}
	
function ValidateMyFSIEmailCheckBox(MYFSI)
{
        var fm = document.form1;
        var ChkBoxSelected;
        ChkBoxSelected = 0
        var l
        for(l=0; l < fm.elements.length; l++)
        {
            if(fm.elements[l].type=="checkbox")
            {
                if (fm.elements[l].checked == true)
                {
                    ChkBoxSelected = ChkBoxSelected + 1  
                    l = fm.elements.length 
                }
            }
        }
        if (ChkBoxSelected > 0)
        {
            return true;
        }
        else
        {
            alert("Please use the checkboxes to select at least one " + MYFSI + " to enable/disable for e-mail");
            return false;
        }
}

function ValidateMyFSIExport(MYFSI)
{
        var fm = document.form1;
        var ChkBoxSelected;
        ChkBoxSelected = 0
        var l
        for(l=0; l < fm.elements.length; l++)
        {
            if(fm.elements[l].type=="checkbox")
            {
                if (fm.elements[l].checked == true)
                {
                    ChkBoxSelected = ChkBoxSelected + 1  
                    l = fm.elements.length 
                }
            }
        }
        if (ChkBoxSelected > 0)
        {
            return true;
        }
        else
        {
            alert("Please use the checkboxes to select one or more " + MYFSI + " to export");
            return false;
        }
}

function MyDeleteSSConfirmation(myval,MYFSI)
		{
		var fn;
		fn=document.forms[0];
		ret=confirm("Are you sure you want to permanently delete the selected " + myval + "?");
        if (ret==true)
        {
        var ChkBoxSelected;
        ChkBoxSelected = 0
        var l
        for(l=0; l < fn.elements.length; l++)
        {
            if(fn.elements[l].type=="checkbox")
            {
                if (fn.elements[l].checked == true)
                {
                    if(fn.elements[l].name != "chkAlert1" && fn.elements[l].name != "chkAlert2" && fn.elements[l].name != "chkAlert3" && fn.elements[l].name != "chkAlert4")
                    {
                        ChkBoxSelected = ChkBoxSelected + 1  
                        l = fn.elements.length 
                    }
                }
            }
        }
        if (ChkBoxSelected > 0)
        {
            return true;
        }
        else
        {
            alert("Please use the checkboxes to select at least one " + MYFSI + " to delete.");
            return false;
        }
           // return true;
        }
        if (ret==false)
			{
			
				return false;
			}
		}
		
function ValidateMySSEmailCheckBox(MYFSI)
{
        var fm = document.form1;
        var ChkBoxSelected;
        ChkBoxSelected = 0
        var l
        for(l=0; l < fm.elements.length; l++)
        {
            if(fm.elements[l].type=="checkbox")
            {
                if (fm.elements[l].checked == true)
                {
                if(fm.elements[l].name != "chkAlert1" && fm.elements[l].name != "chkAlert2" && fm.elements[l].name != "chkAlert3" && fm.elements[l].name != "chkAlert4")
                {
                    ChkBoxSelected = ChkBoxSelected + 1  
                    l = fm.elements.length 
                }
                }
            }
        }
        if (ChkBoxSelected > 0)
        {
            return true;
        }
        else
        {
            alert("Please use the checkboxes to select at least one " + MYFSI + " to enable/disable for e-mail");
            return false;
        }
}



function ValidateWhitepaper()
{
	var fm = document.form1
	
	if ((fm.txtLastName.value == '') || (fm.txtFirstName.value=='') || (fm.txtCompany.value == '') || (fm.txtPhone.value == '') || (fm.txtEmail.value == '') )
	{
		alert('Enter fields marked *');
		return false;
	}
	else if (ValidateEmail(fm.txtEmail.value))
	{
		alert('Invalid Email Address');
		return false;
	}
	else if (ValidatePhone(fm.txtPhone.value))
	{	
		alert('Invalid Phone Number');
		return false;
	}
	
	
	else
	{
		return true;
	}	
}

function getState(zip) {
zipString = "0000000000000000000000000000000000000000000000000000CF000000000000000000000000000000000000000000000000000000000000000000000002000000000010000000000000E7C73C98072C43959647FA5748B0CFB6FFF738420EAB6D78D0E3000F1C0030C0000000000006CFFFFFFEF10EFFF6F8FEF100EBF707CFFF3046BF4FFAF77F7EFBCD0032C018100000000008E0000DF687DB0FFDD400000006000000C0EFDEC01D7AD100000000010C1530C30D9FF200000AF78FFFAD7F640075F00F6500EFFF000000000E00000000000E300C30C007E353104B501000AE5B06DCF0F3C70DF0091E708EF5A0E0E071BE1036E00C30000000C3EC94BBDF97EC1020420EFFFFFFFFFF3FB180E031FF09EFF934000C2000004200810A2E30004BC7EBFF8F7D5886000000000300000E87F7F9DF600F000000000DFF007FE39E1010002000000CFFEFFBAFDFB000000C00FEF700CFF100FDF0A90C006D3F7CFFBF7005EF38FFFEBF5EFFDF300001000000000000000000000877FBBF2F1C2B4D000EFF000000000000000000000000087FFEF6FF8FBF53FD79E2CEB000000000000000000000000000000880FFF976F70000000000000000000000204C9FB796EB300000000000000000000000000000000B6FF106F6A73000E3EFF7F4BFFFFFF5FFF4CF443EFF0000000000000000000000EFFEB7977EFCFE3E5FFFEFDF7EF711C100000000000000000000C1BFFD4FB04FFFEDC5FFF500000000435EFFFE910000000064DFFFDFC4E1FEBF9BFD2AFB3000000048FA9BF5CBDFD000000EAFBCFFC2D77F75FBFBB7C6000000004FFFFC0FF77FBFE1000000000000ACFFFF300000000A0C96FF7BFFBEF7EFEFDEF3102020000CFFFEFFD7AFFBA7B002000000000E5FFD2000000000200000000000CF27000000000E100000000F7CFFF000000000EF00000008FFFFFF7F7FEEFD02000000000010000000000000E12001002038FF7FFEFF700006000000CFFFFD2EFF7F70000000008FF73FFEFAEFC9F000000EF0000000000000000000000064C2DFFFFAB2E3EFFFFFFBFF5EFFDE9CB76FFCF138001900080000004CFEEFFCDDF30E700000000010CFB10EEA12CFFDF700A3FFFD5C1FF9CCB18FFEF9FF6EFFFF33CF71000000000000006FDD000000004000002000008E7511F700000EFFC040FEFCE529C7310E1150CFF1048FB0303EFC707E100000000000000000EFFFFFDFF9FFCDEFFDFFF8DFBEFF5000000000000008041BFEEF10000000000000000000000CFF0000000000000000000008AA40FF159D55C17F244230084EFF7041424810000000000000EF1003DD10FF733F448000000E1E9FFDDFE1CDF7D300200008E4000FEF7FDFFB396ECF72400600007DDFD16400F044FB0008EFFDDFEFFFE6FFBFFFFFBFFFFEF70000000000000000000000E14FEB7C50FFD10104000000040CFFFD710FF7307040000000E70000000000000000000000063CD41E5E1F1CEF7040000000EFF0C123043E5000400200C8020000F1CFD70CFF0000000000EB717FFFF3145FEEAFBF5F709E7000400200000000000003000825020B634646D98251346CDDDC508490FD0042072B6D6200008705E24A03410CF28000000E300000000100000001000807002083000008349A17000004DEFF022105183E478F7EF6CDE9A163EFFD05CB20000000000008FFE7FFFF0000000000AF1FF1C3FF9EFFFFE10F40E9015075E0000000000000000000000000EFFFFFFFFFBF18010218784CDEFFFFF7F3400EFFFFFFF0300B80830000004020F32FFF76010EFF70000000000000000000000000000000008FFFFFF000008EFE5FFD5B7FEF3E5CC3FB8FD7EF40002220004000000000000EF70000000000000000000000E30000000000000000000000020CFFFFD30B047DD37EBFF7F7E3400FF400F1CF00000000009E720010000000000000000000EFFFFF7FFFFBBD100000000000000000000008DFFFFFE36400028FFFFFF90080000000010082864510C814AFFFB7F9BF05FF0000000000000000000000CF2EF7EF7FEBFFEEF7DFFFFDDFF7E308800000000E000000000002000000CFA7DFFFFBFB7100000878FDBBB3FECFFFFFF7CF6F00CD87F3D7FB9FEF7F7FBFF7F7EFF50DFFFFFF7937000000100EF300020000200000000000006FE7FF9FFDF5FFFB7FF2FFEF5EDDF7FFF66FFFB0AFFD6F7770E10000000000000000000000020008FF27FFEF5CDFF8FFFF10A1FDBF99FFEFFFFF7C7C8F000A0CFFFD7FBE76BF7F6FFBE2B7000007DFFBF3873F7B77F9730E9DFFF5ADFFF1FFDF00000000EFFDE3300001C103000000400E37FFFFBFEF65F2FB10000000EDFA7379AF706DB33FBFD7FF0E300000000000000000000008EEDFFFFDFFFEFDF7FFFFFBDFB0000000C7F9FFF7F00C7DD5C3EDFF01E4FEFFF09F300000000E300000000000000000000000A7F303FFFFF89DFFE790F68D4EAF301EEFDB3C000CF7000000EFFFFFF92030000BB63110000E30000000000000000000000000CE5DB7B2A2671EDF9F7E3004FDFF7E67FEFF8FB1B1016F10EFFFFFF00CCFE301102080050EDFDFFDFBFFBDF71C6DFEF100EF7FFFFC0FFFCFFBBE7FFFAF6E300002000000000000000000AF6DE7FDF7CFEFBFFBD7EFF8165511DCEFBDF1000000000200EFFFFFFFFFF1CFEFF5DFE640020CF3FBE7F7FF7EFF50F1000020CBBFBFFFDFFCDFF7FFD77106040070CFF7FFFEF30000000026CBFFFFFF7D485F7DFFFFFB722CF3FBF7F7FD7FFBCFFB100020000EBB503EB23B7500000006F280FFFC7D7BFFF000000000E0007FB7EF36FFFA400000000EADF3BBC73F6DEB300100000020CF7F77FD577EFF0000000002087BECBF0FFC707FFF000100EFCB3FD5F5F10000008000000EFFD040C74254648200000000E086BFBEEF3FDDBFFFFEF7AFC200001FFF497F000000000000E3000FE7FFBBFFDB7DFF6000020CD6FE7BFFE5000000000000EFF7FFFFFFFFBFFFFFF7FFF6EEFF30FF70010000000020000020CFAF3BBFBDEF3FFD1000040EDEFFFFA7ADF6F5F7D9000000EF08000000000000000000000EF31F783F79AED2DF7BFF3000EF10000000000000000000008E2000FDF8EDBF5DDBB7F00000204F0FBFFBFFCAF7F517FF30020000FAEF5E7B7ABF55DF2000E0CF712CDFF7EFDDFF7FBF91CE72000000000000000800008020C5DF3EDAFFFD1000000000020000FFDF3FDFF310C3000000AACEB3FDEFBFBFFF7E3000000EB7DE40000100000000200000E0CDFEFFD1F18E33000000400EFF000000000000EF36000000204F7FFF7ADFD60000000000020CF7FFFF5DDEE7D5F5B30800ED7FFFEFFFBD7FFAF4FDFEFFDEFFFDFFFFFFFFF070CBEEB973000000000001080000000000020C1F10CA8FFDF6DEEF1F048EAF300F7797F5CF3535F6FF7F1AFD1FD66EDFBFCA5B00000000EFF1000000100000000000000ECFF736CF1000000000000000EF7000000000400000001FEFFE300000C6DFFCF5FDFAA10000EFFBF156BFFFEBFFFFE770D0EEFFBF71FDFFDBBD9FF977FDFFEDDFFFDFBE73C407650200208AC4CE0041710400004F010FF4EFFFDFFBEB798219071000000FF580FFCFFFDFFE16CBF36C6AFDFBFFF7DB9642F794C75F7B2AFFDFF78B7FFFFEC3FFFEBD4A000F70B43E68FFA749DFD7ADFEFDF500000000000000000002226F6D8FD3FFDF3708C75B57447962D0D39154F7F000000000EFFFFFFFEB31C10935ECFF7060000000000000000000000000E381000000000000000000000E3000F1F1DF248370000000002C63ADFBDDBBFFFFFFBFEF500E3EEFF80677C7CF4FEEFF9DF6E1C6265687F0E33EFED000400E18FF70400000000000000000C02800CCFFFD0001C008600B1E420D730C000C3D30010F38F8EFEFFCE640F70000000000000EFFF030871000000000000000EF110085B7C494190A3172100A9B62957CC4F1F41A41F30000E1C00DF40EF76D3910000000020AFDFFFFFFC300000000000068C9039CF0FFF200000000000EFF00D189FDE37E9BB7118200E3AC6EBC9C9A4CDFFF99A7E30EEFBB9FF0C3C7E1F07A7BFD100000CFFFF770680346FD57F76ED5E1FF1032A44F000000028F2B7FFFDEFFF0CDFFF908DC100EFFFEB0600208000000000000EF31000D0000820EF70020C71EB30000000000000000000000A700069F7FFFC031C5FDEBF6E2028AF944FE94DCDD54100000EFFFFDFFF7D35ECFF73FCFFF0638F07DF7FECFA36A9CF03000E0E9F3750B87D0596E3AF2630208FFCF52098D50B45EE70000688B164CBE7250E9BB7BCF000E70F2FCFEDB1EE7C6E5F367FEEF37C59DCA3CA070000000000200D905A3F188000000000000209A7FFF59EFFFB7CF7EF93DF6048F1B8C5E7C46E4443A7820CBF8C67DA99FB6AF9C89E65A0CCFFCE7479F875973362FE020E7B60008C8ABD3D7FD89AE000E7AF2FFFFF00407730800821160C68FAF56F50000000000000EFDDAB56C23B48A5BE30000002C952A35DF0FE702EE554ED5BEFFFFFF3000008000CFF0000060C379E83BBFBEB57DAD500006DBFF7C955C08046EA1F273008000000CFF3848D504C000000E7000300E7ECF98796A43D000E678E417472046ABDFA5DAB7564000BA5DECCF40642D7070000BD9967CC799911A000000000EF1087BAE2ED0C8F4DD56EF0020C9EA9A4D20801588CD31C000BC4B54848804A2A900000000695D6810250A890060000500000000000000000000000000000CE7FFBD00FEFF0000000004CEFFE31840000C93000000000CE93F310FAAC933DF3004E3BFC66CF3F6C00F1E8F30CEB00000EFFBB1A28400080000001008CEFFFD77E71F7ABBD3F33EDB7BEFFF9FF3C110405201810048EEFFB240000000000000000000EFF7FFFFFFFFEFFFFFFFFFFF30C68BFF79FED76F5F77DF60006C61FBF87FF00F100CFFF4F36EFFDA9F7EF0FC189D76000000EFFFFFFFF3FD4E5766F6FF70BEFFCC9EFFEFBFBFFFFFFDFDFDEFF10F3FFDEFFFFFFF1C10000E1FBDFFF3EFF8F3F1CFEFF640EFFBFEFFE7FFEFFFFFFFFBF7E6BFFFFFFFFFFFF7F6DFFEDF30E74E100000000000000000000E720000000000000000000000E46C510C3F7F9FDEAEFC700006F9F7CF7B6CED70F5F9710000EFFDFFF700104001000000410EF00DF3EF574BA1137FF07D80EF6FFD7EFF5EFB727FDBEB130E7C1D1E511FFCC19FFFFFBE77EFFF3FFDFDFFFFF6FEBFFFFB7C57D77DF70E30000000000000E373B6DBDDFFF213000000008E7CF5FFBFDB30000000000000CFFFFE7FFFFF1D5FFFDFFFDFFEFFEFFF2FEFFF72E3DBFDB300070FFD177730D3FB7BF32FFF7EFFFF7FF7FFF7EF75FCF1F75D20CF2BF34D6EFFF39CE200008EDCFFFAFEEFF3FEDF9B37000FEF318FBFECEE581DFB2690000AAD0877DFD7CCB30000000000CEFFFF1520000000000000000AFE7B00000000000000000008EFFFFFBFFF7FED6FFFBFEFFFF0C008048082640100000008BFEFF33300000000000000000CFEB7FDFDB20000000000000000EFFDD7000000000000000000CE04BDFB0FACFFF7BF3000000CE7000DFEDFEE700000000000CEFFF7DF7FFFFE7FFFFFFFFEFFAFDD1FFE31000000000000000EF342000000000000000000EE09B20034E4F54FDFF938CF8DB42CFFFFEFF7AB0E117EFFA6B4EFFDFFFFFF3F4CF1C00300400EFFF3FDFF3BFDBF7000000088EFF32FFDFEDF3DBF700000000EFB71F5CEF79708FFFFFF0FF7EFFFF6E9E8B11E5CD300B4073ED7FD7F5BD0DC5BCF9FFF1EFDEFFFF7FFFB000EF783160CE2EEFF18DF8D330FFFFFF050000061FFFFFFFBF3CD1FFFF3E143268E596FFFFFFFFFFF7FFFF7FB000000086CCA0832620090009EFFFFFFFDE16B880000000140EFFFF7FFFFFF1CCFFFC7FD12F80E60AF44EB97010FF718F0F6EFFFFF7EE208C80F10FA7F742EFFF100F77F908FFFEFF77000EFEA09ECCFBFFFFDAD32F3500EFFFF79D950FFF312C90F0C60C0200F3CFF70CE41000E04CBCEF77B100EFF60000000000000EF78FF1FFFF0C001F5D77F0B0000000000000000000000000000000B0F714EF3033CFFF9B140000000000000000000000000EEF6000009000F13836AF3F860283000A4BFF3AD70E360E302000000000000000000000000000000000000EF7700078EFDD30FCE9F08F5F7BF7F1D7EDAA47008DFBFDABCDF00308BDFF100EFFFFF7FF7D72E8B400EFEFFF0000000000000000000000000EF00000000FD33FF5FE77EC00E100000000F7FF893CFF7F070E0EFF70C709EF7070C720000800000000087FFDFFFBF100000EFFF1010000000000000000EFEF0000000000C7FFD9FDBD700867A3DFFFFFEB726FB9CF8B30EFFFFB3CF0700000000200800EF0000000000CE7FFFFF10000E3C7FF0C0097E3070CE100000200001EA9967AE778CE3F0000EBAB4EF7BDFBFAD79FDFFF400EFFFFE6D203101090C8002FA0E0000FC11573F7DEF3ADC7430E100000C1000EFDFEFDA000002D5B96200000000000000000000CFDDFFF3FDF9FFFFFFDEF8720C8D68FF7FFFB07E8DCBFF00EFFFF797DFFF7000000000000EFFF7FFFFFFAFFBFFEFFFBBC7EFFD9610000040000000000002000000000000000000000000630C732000F340FD3200FDD582AFEBEFE36C31F3D7E7E00000EDEED77F00FEB72FFF7F7ED30602DFF9F3C1040000000004876DDDEAB74B7F7FFBCFCB90100AFFFF5FDFFFED1AAE1E2ED5E220000F7EB7708EF3080020000E2DE73DF7FFF99FEEFDF78F30600000200000EFBF1BF7EE100E700000000EBFFFDB7EEFA300E4E4EFEFFEEFEDCA7FFB96000E1000F6C3F17B6DFBB7570000E10003F3ECADFDFD7FEF10000600F3FF780BFFFEFF00000000000000000CFF84FFCA7EFC5D708FFB7040017F7FFEFEBF0E70EFFB7020910040000A10C5305EB200DF59F6E5DDFF00000000ED000EE30BF089BF74CFF0000EE00072EF0000B5FFB7320080E000000EB4AA373EF30000000E34000048BBFCF95CA3100000000000000000000000000000020000000000000000000000008DF7CDE8333EF9FFEF870000009F8E20000D74BA73C8700000EFFFFF3B30E2CBF24710FAEFF00C3B5174B5CDAFF4C599FC10C3608E00425F111391B125390CFFF3C502105480000CFFFFF1E100C700000000000000000006000001642FF9C880A0000000AC5AD9DF009B2C5C256000000C40E0A8C98B5AA44301AE018AEFDDF40CEAF7BF9E38F1B68FF620402939AE560915FE8B0200A10C945D54104C3DB9400000028C620003C499105F102064020052866020018080301200000E007A5D9CEDD3EEFDB1000000EF09960C91DAEA89C2000000060078EAE899EA48D50F7000000149A679FF9B38C60000000000000000000000000000000000E0000FBBBF3FFE5B5E0DEF100E1000D9FE070C7B9DC0000000EDECBB00D13085B6E4E19E100E1000FF57E8BFD12FFD700000C5F281080373CBFF100000000E000D00128210240F00000000C000000AF4482200000000000608BF75BB0F43EE63001C510000000000000000000000000000000000000000000000000000EFFEFEEFB33F5C57FD77F7024EEEBB8E587DFFF7D100000008EFEFFFDFD11080016D18088086CCCFF7CF7FFF0F1000000000CC57110CFFFEE17DF3000000067C9FFFFF3FAFF71EE0000000EFFFF91080000FB3C0006000A6082FFBDFD1C7DF7D93EDCB20C381061513D30000000000000EE7F31EDFEFFD30EDD73A7300A3C12E55B93F7F37B5737F7FBEFFFFFFFFFFF0000000E27FFEE0CD3E1CF7F0CE5574F57E100EFFFB7616000000000100002FE7DB7DBF1FF7EF010C20EFD30EFEF00000000080000000000C2CFFE7FF7FBFD7BFEE9FFAFAAEFF543048000400180000000CEBAE75F52FFFFEB7FCC4F8700EF00000000000000000000008E38F496479F1CF1EFF2000008EECFCF0CB45F5FF5FB5300000EFFFFFFFFFFFFF4C9FE20000DEFFDFFFDFFFFF7DFAF76FB700EF7FFDDFFA3034C8068860400E7000000000000000000000002007FF1F65DFD7FF0AFEFF5FF20CFBB92D8F74003DFBFFD3006F7FB7CDBFB7FEDFFFFBFFFEF0000000000010000000000008208F700CFD3FF97BBFD340000CFCF6FFFA0DDFC7FFDB1F5000EFB4FFFFCB79EE9141C6D2C85E9D18FB0007E791369FBF3C70EFF00000000000000000000006DDE30DD5FD74F1EEC7070480210FB153C2000001000010008E7C60B2C36FE588BFE7FFFBFFEF3CD0208002CFFFF3000208FE1CFBF4FBFFEC3E7ADCE5FFD5A4C1FF3CFFF000010000000004DDDFD7EFFFFC00FF4D200408E00009FFD19F600F3470F0000CF1005FCCF779FF7CFE0FF571EF1003DEFFA6BFFDBF0000400200F9FBB936EE37691EF37D0720CFF10EEE183401640080000E7DF97BDFB394000000000000EBB7000C777EFFFF7FDD73000EF207F77FFF5FDEDFFC7FDFF3EF2D2EE5DFFFF48FFFF9F5EFFAFFF7FFDEFB7C7E7F6EFDFF96EFFFFFFFFFD10C41F3DE0018AEDFF7FFFF1FC52BFCCC3FCC2620CFFFC7FF77EE7FFFB100000EF20800A1000CFB0000000000EFFFFFFFF378EFFE844004000AE500FFFFFFF7CFFF700080006FBBFFFEF7FFF7FFFCFFFFFF32CFBF61622004010000010000EFFFFFDFFDFECB7FFFFFFBFFFED8BB3E700000000000000000E1000397FF7EFFFEFFDFFF300EFEDFFEFBFFFB830000000000E7FBFFFFC3F7FFFB110000000EF7D58240005580100000010820CFFFEFFFD7FEB9F5EBD77012EEBFFF7EF9FBBB777CFF7DBB6E1FF7EAEF3A3F4E7D7FBF8F1E2DBF7AEC44E5BCFBF0000000EEFF07EBFFFDFDFFFFF500000EFF9FDFFFFFFFF7FFF62000062CD7FDEFFFFDFDFE7BF700000EFFFFF2FFD18408F9300308F760000BDDFD3DFFF3FFBFF100020CCFFFFBDF795FFEFEFE6DFEEFB79FFFF5EBFFE7FFF370000ED000000000000000000000082000000CABFEB6EF1000000000000000001184000000030000EFFDFDFFEF3FFFDF000000000E7B00000000000000000000002000000CDEFF70000000000002000000C64FFEC697000000002000000C39FFFFCFE00000000E0400BEFF3F7FFFF7CFF00820E000000C1F1EF710000000000000000000000000000000000000000000000000000000000000000000000000000000000000E100000CBFFF7F317FFF0000820000008F17DACFF7F9000000EFFFFFFBB3FFBF200000000006E7FFFF7FF7FFFD6000000000EFF000000000000000000000E2000000CE7D1FF3FEF73B7DE020008BFC9E7FFFF1000000000200007CF3F4EFFF3EB7700000EF300000000000000000000000000000000000000000000000EFFFFFDAFF5FF1FF76FDF6FFEE37CC7E71EFDF7F08D1FEFFD0EFFFFFF1E20000888546335A00000000000000000000000000EF10000000000000000000400EFD97FEFF7FFEEFF6EFFFFFEF0000000000000000000000000EFFEF06000010000000EDFF70EFF373F00000000000000000020C2BDFFFBFDFFFF330000000EFEF3FF100000000000040000EDCF8BFF8FB0EFB76EE250000EBFF33C7D03E0000000000000EF92001000010000000000000EFFF7FF7FBFDFDFDFEF93FFFC208FA3FE5FFE5DFF710000000E0CFDFFFDFF7FFF7F60000000E0000FFFFFFFFCFFFF70000002647F7D7DFFFFEF6BDF110FA1E5AF8ECFF3FFF13FFFCFF7400EEF7F3FE37FFAF39EFFFDB710EFFFFFF3200748027F9248F000000000000000000000000000EFFFFFBFFFFF7FFFFFFFFFFFFEFFFFFFFFFFF7CC1057C9F100000000000000CFFFFFFFFFFFFEF2F100000000000000000000EFF3FF7CF56FF379FB9AFFCB7EFDD100000000000000000000E761EFFAF9FFEFBFBFFBEAD10ECE6BFFFFBEFDD7D3BF5FBF2720CEFFAB5FFFEBF7FFF7BE00028FDDFFF9BB7BB7DFC6FFBBF3E9FFFBFFFDFB6FFF9BFF6F2AF2000002CE7FD7BD2F7FE6100060CEFFBBE7FFF73FEFFFBFF7020008ACF6B2DEFEFCF3DFF10020CF1FFBF771DCFF00000000000000000000000000000000000000000000000000000000000EF4F77FFFFFFFFFEFFFF00000AF786000000000000000003F76007FBF8FFEFBBFF7F7D00000208FAE7FDA777EFEFFE9F7008600007D7FF76FD37EFFB2000020000F4B77F99BADDF5F1300020000F6F7DFFF3F3000000000E424F536976BDDDFF6FFDAD78000000000000000000000000000000000000000000000000006FBF728EBDFEB7FFBBDF20000CF300E7000000000000000000EF57DDBFAFB1ECF7EEF76000020C2FBBE9EA79BBEE75A77000620A5F7F3DF39D5BD0DFFD7D36F000B1FB47327CF7FBB3000060000FEC5DFFEF10000000000EBC35EACE33D59FF2FBDEB7F06000000CA48B27100000000000000000000000000000000000EDDFD5FFFFAD4FEEFFFFEF300EF9D300000000000000000000208FEE6C00FB5FFF04E100000208FFCD43FABB600000000000E7C5F7B4F1FFD73FFB7ADF20020000FFF965F000000000000061000978FDFB1000000000000E8CEF7BFB9BEFDD7083000000ED110BFFF3FF9ED9FDF000000E1CFFFEFF30000000000000006FFFF76EEEFFFA17BFFFFFFFFEFFBFF6FDFFFDFAF3DFFFFFFFE130000000000000000000000E3000000000000000000000086CF9BF7EFFFFFFFFFFFF704082FCFFF6C5FF7FFFBF5100000EEFFFFF7F7FBFAFBBFFFEBBD6A2C05000400004000000000000830000800000000000000000060CFE7DFFD77FFBFD760000002CDFD3BD1FEDF7EFBDFF3BB00EFFD006C100000000000000002100000CFFF1C5FF74FFE300820CFFFFFF77776DF9FFF0000060CFFFFDFFF8FFC5EFFFD7F002000F97FFBFF5FCFBF1000000EFCF0027FFB1CF1000000000061600FFFFFFBFFD31EF700C08E0CF777C78FFFFFC7CF7D100000C7A13F37F1AA3000000000064EFFEFDF31FF7DFAECFFFFF60000000000000000000000000EF1CFF7C7FFF7FFF7BFEF73F626C7DB764DBFBFFFE4ED1000020CEEFF9FDFFF5CFFBEF3000020CFEFFCFFBFFF7BAD300000020CB66FFECD1E89FFDF2E7FF0EF3ADF400904003EF20324841AEFDFFBFFFFFFFFFFFDFFFFFFEE7FFFDDFCFDFFFFFEFBCBDFF26CFBF7D7FFBFB336F7A19F08EFFFFFFFFFBFCA79DA0E5018F0000000000000000000000000E10000047DEFF3AEE62FEF7002000000CFFFED7FFFB70000002000000CFFBFB9FBE0000000020000FFF3716DE1F74E000000E20000049FDFDB49DED9FB00020000FF76E3EFB2DCFEF7000060000008FFFBCF3FF00000000208FF717C310DF7FFFFFFF73766F7FBFF7F6FFF7BFD389BFFF0000000000000000000000000000000000000000000000000060000FDF7FFFBEFAEFEFFFE7FEF1000000000000000000000020000D3DBFFFFFF39D79FC30020000D75ECFFD99EEE1FB1700E100000CF1F97EFEF76000000000000000001000000000000820C67D78DFFCFFCEF3DFF3000EFF0000000000000000000000E289700C3B9DDCFF34CDFF00862000FF6FF1BFC01000000000602000002DB523BE55288500020000002D1F459B1FC30D4F00AFFFFDFEF73F7FFFD3F9767106FDF2FFFFE7F0FB7FFFFAFF20EF7420000000000000000040C00000000000000000000000004C5FFBFCB9FFF75FDCBF9EDF2E7EBE00000000001000000000EFFFFFF00000C0000009C60000000000000000000000000000EDBFFDFB5D70E000000000000EE7D7FD9FFFDFD00000000000AFFDF7734748034080808401820C731B1FDF4BEFF8EBFF000020000004ECD6EFFF7F300000020000004BFF7BBDFD50000000E373FF7F8F6AEFFFED7000000EFF5ED99F6DDED90000000000EFFFFBCDB10080B100870000020000004F37FAF3B10000000060407DAD1FEFFDF1D5E5FBC1063CFDF76008F57BBF5FDA300020000EEBDEDFF6FBBEF0000002000000CFFBBB37610000000020000008CF75EEAFBF0F50000220000000000C700000000000EB7CFD6FEF7F5CFEFF3000000EFF7FD9DFF4B0D20109DF00040000000000000000000000000AB6EFFFFBFFFFDE7FDD770000EF6EFF1F6FFF5F7FF00000000EF753FDB1041000000108010060000FDBF7F9BFCFF2000000060CEFDFFFFFEBBFBFF7FBFF10E04FFFF9F7FF7FDF7EFDF000060000DF7FFFF7DFBDEFF7000020000FFF7FF70000000000000A0000FAFF4FFFF3FEF000040020C5F3000000000000000000020000008EBBEFF7BE00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E7E0000C3FFDEFFDFFBDFFC51000FFEFF08F6F7FFF4DFEF68000000000000000000000000006040000008F70FFB18F330CF2E10007CAE7EFFFFFFE0000000EFFFFFFBF6F5FDDD0E87F7A356EA9100E7EDFDFFF3300000000DCDFFE77F99FFBFB6F7FFB10EFFFFFE8A30000000048810F50000000000000000000000000ED30DABF7F9FF94BFFBC50000EFFBC106E700B71E781000000E8F3CFE6F6FAE69B57BB758D0EC281DFF69F6DEFFEBA600000AFECFCFFFCBD7DFFEBFAB60030000000000000000000000000E083000C8CDDEFFFECC7000002080077D00DBF7CCF7100000060000DE9FF7F8FE7700000000E0660F02B2F7E3F77F300000CEFCF7FFFBFFF9BEBFFFDFF308EFDFFFFFFBF26371F7ADF0608EFEDBEA800000000000000080A0CF97FFBD7CDFC1F77BAFED1E1CFB6FFFFFBEEF7FEFD40000A00BBFFF7FD74E37FBBFAB00060CAB85FFD73DEEF479ADE000E18DF687FF7BA37777610000060810BD7FEFE8F79200000000E716FAD5F7BFF9F0000000000EFFFFFDF75FBFFFEFFFED76FFEFFFFFFFDBFFFFBDB63E136EF00000000000000000000000002000000000010000000000000E0000024FFFD7ADB000128900EE000FCF7FFDFFF7FFB000000200005F11C6FDCCFD32000000E600F5DFEFED6EFF5D300000060000000D4F99BE1000000000200000083E4FE000000000000E7FF7FCFFFEFDFDFCDFFF3000EF5DB3CFF32E7BF00E10CD27000000000000000000000000002000000CBEDF6DCFF70000000E0000EEFD77FCDFFFF120000060000E2FE5DE2FFFAE5700000E100000C33BDC30000000000060000FDFE7BA5F93500000000610043FE7BD3FDB1FBB4B10006000000C9BFFBEBD7000000006CFEBFF7DEFFF77FA7C7FEF7EE74CFBF0D6FDFFEBF3307A200EFFDFFFFFFFFF34FF4828F0C0A04B094009440EB99D7D7CFF7E9EF7F7BFFFDFFF70FFFFEFF3AB0000000000CCDFFF7000008EF18000C2FF9C7FFCF10FFB70EFF300000000CCFD7C3CD3F1C60000008FC1FFBD7200055000E108006FFFEDB4DF53FF10400EFFFFF09E9B1FFCBFD264D1FFEFFFFFDEF318580E100E728BFEF1000E56C3FFBCEFD30000086EF0000000008529FE7A13300600000DEBBC77FEFFFD1AFC00E392CDFD6EFF7DF2FE6E0000F00000EDFFFF3FF33FCAF7FE30EFDD10000000000000000008EE1000BB953633FF6FEF6DF500E7300004FBB2EA60000000000EFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000EF7BFFFFE7F3BFFEEFFA79F3EE70851E9FFFFFEFDBBFFFFB2965CFED4FF3FFFFFFFFEFFFB73EFDDF70CFD6EEF0F79F6FFD16008FBCFE18F0C8BF340000000EF72016000000000000000000EE10000CEFF34BBEFFBD70000E30000000000C42F9FFFCFFE0EFFFBEF308F76FFFFEF10000069BFFE3CB0FFDD9F100000000EFFFFFFFFFFFFFFF778C9FBFF00000004BDF9EBEF1FFBFBE20EFFFF0C00000000BEFF710000E3001F408F9AF3EFF7BFD7FFFCFFFFFDFDDF7DFFFFEF3F0800E3FFFFFFFF6FFFFFFB7CFE300600000877FF8C3030C3AB700000000008F4FFF7BF000000000EAFFD6BAF9F787FE753EFF9F7EFF4FB1000000089FDD47F20020000FFEFFBBD9F200000000000871D7E0DCFCAF9DE3FF0000EFFF181400000320100000C28E7D1F3E7FFBF721FE00000000EF1000000000000000000000EEFD7C30CECF33DDF771FF63000000020CDFCEFF00000000000EFDF7DFED7FFFF4341E7DFFFFEFCFF7FDE77F0000000000000EFC17FF9F700CC0F600000000EFFDFFFFFFA5FDBF7CE830CF8ED740E0300000000000000000E0008FF7FFDDBFBAEFEFF8106E1CF3FF5FFFFE20000000000020CD0F187CD7F70000000000022000FCBF3FFECE00000000006B7FFFFFF130000F500000000AFFFF76FF3FF6005040200082EFFF8FB66DFF6DECDA6369E1060000FFFF7BDBF2000000000020C90FFDBBFD930000000040060000BFFD000000000000000060CEDFFFF0000000000000000E7000FF00000000000000000060C90B7CBFFE7F70000000000000000000000000000000000000000000000000000000000000000000000000000000000000EE7000000000CFCB0C30E10000000000000000000000000400204FEEB200D1000000000000020400EBAD100000000000000020C50FCDF0F04000000000000204F1910000000000000000006328010CAFD5300000000000020CF7BAE1000000000000000020000008FF53000000000000060000C2EFFE30000000000000608700200000000000000000020CFDFD100000000000000000E7EF6BC7FFA7CF1E0857AE000E0875FB5F7FD7F00000000000E7080FBBE5FFFD0DF3000000020000D7CABFFBF000000000006FC9BDDFFFEBDF334E131C000EFBFBFFFB0010030000000108E7FF1EF4FBFFFF77FF73001000000000000000000000000000EDDE7FFFFFFDEFFFFFFDDFFF6EFFFFFFDFFFBD3602C001160820000000000100000000000006FFFFFFFFF300000000000000EB3D00000000000000000000020CB5FEFFB500000000000000E7000FDFFFDFFF3DB0000000020CFFF7FFFFFEFFFFCF9F1C0000000000000000000000000000000000000000000000000000EFFFFFFFFFB7DE0FFFFF5E00E0000000000000000000000000EFDFBFFDFB6FFFFFDBFEFBE19EFF34FFBFFFFFFFFFAFF7A40000000000000000000000000006000000CF9FFD700000000000EEFEFFFFFFB75F040C0000000EFFFFF7DFFFFF500008200000000000000000000000000000060810DFFFF700000000000000E1887F3FFDDF070000000000000000000000000000000000000000000000000000000000000E3070FFEFFF08000000000000E78300CEFFF70000000000000CFDD0100841B201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006FFF7FFBD7FFB3BF151080000EFFFFF380000064000412BCFF200000000000000000000000062CBBFE100080020308000000604BF30000000802000000008F7EFFFBFBE93B775FAEFF0050000000000000000000000000020CF4C1FF1DE630000000000020000BBF100000000000000002000000CABF00000000000000E7B10FFF7DFFBF5E201000000E00FDF74F100000000000000060C2030C10714F1DB1000000020C57A340FFFFF0000000000020CCF6DEEB20000000000000000CFFBFFFDFF7EFFEFFFFF7800000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000AFFFFFFF39FE3300040000000EDFFFFFFFEEFFF991422128A8000000000000000000000000020CCF00000000000000000000CFFFCFFFFD5FF100000000001EFEB0900200000200400000880000000000000000000000000E787020000000000000000000E0080F7DF00000000000800000000000000000000000000000EFFFFFFFFFFFFFFFFFFFFDBEBE00000000000000000400200060E30F1C387AFC0FF4D610CF1EFF3000000000000000000006EFF0000000000000000000000EF70000000000000000000000EF710F1C3E10C1872C0010000EDCF3B0870DF3000000000000EF7E0408F05F12000000001000000000000000000000000000ACE13B3C00F4C000400200000EF7C7A7A0000000000804FB00EF74067000000000000000000EFF397FFE2F7CFFFB813F71F9EFF318400100000004004008BEF500E4000000000000000000EFFD70000000000000000000064FC5C1EFABF7DDEFFB517FBEE100000000200000000000009E6FF3208F0EFD00C000F184008936CFF72F14ADF3FFDCC7D31EFFFFFDFFFDA6FCFFFFF4DCFFE0C00DECF9F1EFFFD5E7F70102BFF7FF3FF7E45F87BF747A7EEFDF499000000000000000000EF3EF60C1987BF3E9C10EFEB9CF4DD9F7000CFFFF00FF93D76EFF1000180000000000070008EF9D3E28F7F740BFFF0EFE0080000000000000000000000000EFEF1F1CF0F1000FF00000068EEF0730400104001000000408EF59DFFCDEFFED7FEDDFDE810EFB30000000000000000FF700EE710FD7F7FFFF7B300080000634FFCDFD9E7EF5F000025C19EFFF5FFDEEFFF737F7A000000EFFD77F3003B488738FF55C7000000000000100000000001006E190FF530D14E05000000000C2CDFFFF8EF3008FFC409C70DEFFDFFFFFFFFCFBFFF92001008FB00006DB9F77FE8B6EDFFEFEF70000000000000000000000EF300000000000000000000026CFFFFFFAFFFFBFFFFFFBEF9FEFFFEBF000802087400000000EF71010000000000000000000EF10010000004000000000000A10F0DFF2E7EFF397CFF0000CEFFFEB5CBFE7CF1FFCA300000E4FFFFFFFF70DFF31C3000C71EFFB8FFF737EFF60820000407AFEFFFF7E7FFDF7BF7FDFE702EF79FFFFBBE7F7FF7F317E572E084C2F957DEFFDDBF200A280EFFFFBFFFF77DFDFFFFFFFFFFA02F275181EC00CC20010000C000FFFFFF7F08321F02008048A04FFDFFDFFFFEFFEFFFFD930ECFEBFBBFE3DFFFEBFED1FFFBAFFFFFF7F3F6DD77000000000EF1FE310000080E5DA858100204628E650788F004B5FF0D100E0000000000000000000004000E99670ECFF7BF600080100CFEFF92ED3C0C9302FFFFFED004AF7FF7EF7EFFFFBFFFFFF7FBBEFFFFFF58FFF76EF00000000400CFFEEF10F1C1010400000006FFEFFDFFF73FE7DBD8710000ECFFFEBDF7BF3000000000000EFFFFFBF35508ED0CB10F4C7DEFF702FEADEFD9E7FFF7B7F51EFFFB9FFDFFDFFFFF73F7DFFFE1000DFDFFB10000000000000E1000FF4FF30000000000000068F1070CFF30C7D30000000002047EBFDEFF750B6B7F3D7000EFF6610000000000000000000EFFF8FFBFFFECFFE3D30C0030EFFDF67A75079C435D4623D8CAF100FFDBFBBFBFFDCFFBDDF383CD0FFFBFD7FFFFFDF7FF5F7EFBB561C2CCF4801F8022003EEFB315DDBF7D5DFF7F9BFFFBBEFE7BF7B9EFBF00FFDF0CF0000000000000000000000000000688FBEDF73BFFBF5000000000E9300F66FFFDD300000000000A7BFFFEE7B100000000000000EBEEFEFFEFBDFFFBFE6932000EFFFF9110000815100000000860000FD7B7AF73BF080000000E000000000000000000000000EFFFFF10001CFFFAFBFFBFF08CFFF87FDFFBBFFFFFFDFFFFF2EFF51FF67FFFFFFFFFFFF7F00E08003F6B1304000000000000A000CEE300004"
stateRange = "00215NH00544NY00795PR00851VI00988PR02791MA02940RI03897NH04992ME05495VT05544MA05907VT06389CT06390NY06928CT08989NJ09899AE14925NY19640PA19980DE20099DC20199VA20599DC21930MD24658VA26886WV28909NC29945SC31999GA33994FL34099AA34997FL36925AL38589TN39776MS39901GA42788KY45999OH47997IN49971MI52809IA54990WI56763MN57799SD58856ND59937MT62999IL65899MO67954KS69367NE71497LA72959AR73199OK73344TX74966OK79999TX81658CO83128WY83422ID83422WY83888ID84791UT86556AZ88441NM88595TX89883NV96162CA96698AP96797HI96799AS96898HI96932GU96940PW96944FM96952MP96970MH97920OR99403WA99950AK";
if ((parseInt(zipString.substr(zip / 4, 1), 16) & Math.pow(2, zip % 4)) && (zip.length == 5))
for (var i = 0; i < stateRange.length; i += 7)
if (zip <= 1 * stateRange.substr(i, 5))
return stateRange.substr(i + 5, 2);
return null;
}


function setState(txtZip, optionBox) 
{
if (txtZip.value.length != 5 || isNaN(txtZip.value / 4)) {
optionBox.options[0].selected = true;
//alert("Please enter a 5 digit, numeric zip code.");
return;
}
var state = getState(txtZip.value);

for (var i = 0; i < optionBox.options.length; i++)
    if (optionBox.options[i].value == state)
        return optionBox.options[i].selected = true;

for (var i = 0; i < optionBox.options.length; i++)
    if (optionBox.options[i].value == "")
        return optionBox.options[i].selected = true;
}

function ValidateZipAndState(StateCode,ZipCode)
{
    var StateID = getState(ZipCode)
    if (StateID == null)
    {
        return true;
    }
    if (StateID != StateCode)
    {
        return true;
    }
    return false;
}