﻿
    function doHourglass()
    {
      document.body.style.cursor = 'wait';
    }

   function validDate(source, arguments)
   {
   
        var sdate=new String(arguments.Value)
        
        if(sdate == "")
        {
            arguments.IsValid = true; 
        }
        else
        {
            if (isDate(sdate))
            {
                arguments.IsValid = true;
            }
            else
            {
                arguments.IsValid = false;
            }
        }
   }
   
    function isDate(txtDate)
    {
    
         re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
        
         if(txtDate != '' && !txtDate.match(re))
         {
            return false;
         }
         
         return true;
    }
    
    
   function validCurrency(source, arguments)
   {
   
        var sCurrency=new String(arguments.Value)
        
        if(sCurrency == "") 
        {
            arguments.IsValid = true; 
        }
        
        else
        {
            if (isUSCurrency(sCurrency))
            {
                arguments.IsValid = true;
            }
            else
            {
                arguments.IsValid = false;
            }
        }
   }
     
    
function isUSCurrency (txtCurrency) 
{
         re = /^(\d|,)*\.?\d*$/ ;
         if( !txtCurrency.match(re))
       {
                   return false;
       }
         return true;
}
 
    function getScrollPosition(hiddenField, horizScroll) 
    {

        var hidden = document.getElementById(hiddenField);

        var obj = document.getElementById(horizScroll);

        hidden.value = obj.scrollLeft;

        obj.scrollLeft = hidden.value;
    }

  function GetMap(){
    try
    {
        map = new VEMap('myMap');
        map.LoadMap();
        map.SetZoomLevel(10);
        
        StartGeocoding(curAddr); 
     }
     catch(e)
     {
        alert(e.message);
     }
   }
  
   function StartGeocoding(address) {
       try
       {
       map.Find(null, address, null, null, null, 1, null, null, null, null, GeocodeCallback);
       }
       catch(e)
       {
            alert(e.message);
       } 
   }

   function GeocodeCallback (shapeLayer, findResults, places, moreResults, errorMsg){
   
        try
        { 
        if(places == null)
        {
            return;
        }
        var bestPlace = places[0];
        var location = bestPlace.LatLong;
        var newShape = new VEShape(VEShapeType.Pushpin, location);

        newShape.SetTitle(bestPlace.Name);

        map.AddShape(newShape);
        }
        catch(e)
        {
            alert(e.message);
        }     
    }

  function ToggleDisplay(id){
  
    var elem = document.getElementById('d' + id);
    var img = document.getElementById('i' + id);
    
    if (elem) 
    {
      if (elem.style.display != 'block') 
      {
        elem.style.display = 'block';
        elem.style.visibility = 'visible';
        
        if (img!=null)
        {
            img.src = "img/del_up.gif";
            img.title = "Colapse";
        }
      } 
      else
      {
        elem.style.display = 'none';
        elem.style.visibility = 'hidden';
        
        if (img!=null)
        {
            img.src = "img/add_up.gif";
            img.title = "Expand";
        } 
      }
    }
    
   } 

  function ToggleDisplay2(id){
  
    var elem = document.getElementById('d' + id);
    var img = document.getElementById('i' + id);
    
    if (elem) 
    {
      if (elem.style.display != 'block') 
      {
        elem.style.display = 'block';
        elem.style.visibility = 'visible';
        
        if (img!=null)
        {
            img.src = "./img/del_up.gif";
            img.title = "Colapse";
        }
      } 
      else
      {
        elem.style.display = 'none';
        elem.style.visibility = 'hidden';
        
        if (img!=null)
        {
            img.src = "./img/add_up.gif";
            img.title = "Expand";
        } 
      }
    }
    
   } 

//   function applicationVerifyRelation(asCntPlHldr, abValidateRelation) {
//   
//        if(abValidateRelation == true) {
//        
//            var fldChkboxOwner;
//            var fldChkboxContractor;
//            
//            fldChkboxOwner = document.getElementById(asCntPlHldr+'_ChkBoxPropertyOwner');
//            fldChkboxContractor = document.getElementById(asCntPlHldr+'_ChkBoxContractor');
//        
//            if(fldChkboxOwner.checked == false && fldChkboxContractor.checked == false) {
//                alert ("You are required to check either Owner or Contractor.");
//                return false;
//            }
//        }
//        
//        return true;
//   }

   function applicationVerifyRelation(asCntPlHldr, asRequiredContact) {

            var fldChkboxOwner;
            var fldChkboxContractor;
            
            fldChkboxOwner = document.getElementById(asCntPlHldr+'_ChkBoxPropertyOwner');
            fldChkboxContractor = document.getElementById(asCntPlHldr+'_ChkBoxContractor');
            
            switch (asRequiredContact)
            {
            
                case "CONTRACTOR" :
                    if(fldChkboxContractor.checked == false) {
                        alert ("You are required to check Contractor.");
                        return false;
                    }
                break;
                
                case "OWNER" :
               
                    if(fldChkboxOwner.checked == false) {
                        alert ("You are required to check Owner.");
                        return false;
                    }
                break;
               
                case "EITHER" :
               
                    if(fldChkboxOwner.checked == false && fldChkboxContractor.checked == false) {
                        alert ("You are required to check either Owner or Contractor.");
                        return false;
                    }
                    break;

                case "BOTH" :
               
                    if(fldChkboxOwner.checked == false || fldChkboxContractor.checked == false) {
                        alert ("You are required to check Owner and Contractor.");
                        return false;
                    }
                break;       
            
            }
      
        return true;
   }

   function inspectionRequestSubmit(asCntPlHldr, asVerifyAddr, asVerifyAddrMsg) {
	
	    var fldContactName;
	    var fldPhoneNumber;
	    var fldSiteAddr;
	    var fldEmail;
	    
	    fldContactName = document.getElementById(asCntPlHldr+'_txtContactName');
	    
	    // igedit_getById - Used for Infragistics control
	    fldPhoneNumber = igedit_getById(asCntPlHldr+'_wmePhone'); 

	    fldSiteAddr = document.getElementById(asCntPlHldr+'_txtSiteAddr');
	    fldEmail = document.getElementById(asCntPlHldr+'_txtEmail');

        if(fldContactName.value.length == 0) {
            alert ("Please input a Contact Name.");
            fldContactName.focus();
            return false;
        }
        else if (fldPhoneNumber.Element.value.length == 0)
        {
            alert ("Please input a Phone Number.");
            
            fldPhoneNumber.Element.focus();

            return false;
        }
	    
        if(asVerifyAddr == 'TRUE') {
            if(fldSiteAddr.value.length == 0)
            {
                alert ("Please input a Site Address.");
                fldSiteAddr.focus();
                return false;
            }
        }

        if (fldEmail.value.length == 0)
        {
            alert ("Please input your Email Address.");
            fldEmail.focus();
            return false;
        }
        else if (validEmail(fldEmail.value) == false)
        {
            alert ("Please enter a valid email address");
            fldEmail.focus();
            return false;
        }

       if(asVerifyAddr == 'TRUE') {

            if(confirm(asVerifyAddrMsg)==true) {
                return true;
            }
            else {
                return false;
            }
         }
         else {
            return true;
         }
	}

    function validateCRMSearch(asCntPlHldr) {
   
        var fldLastName;
        var fldPhoneNo;
        var fldEmail;
        var fldIssueNo;
        var piCntr = 0;
        
        fldLastName = document.getElementById(asCntPlHldr+'_TxtCRMPublicLastName');
        fldPhoneNo = document.getElementById(asCntPlHldr+'_TxtCRMPublicPhoneNo');
        fldEmail = document.getElementById(asCntPlHldr+'_TxtCRMPublicEmail');
        fldIssueNo = document.getElementById(asCntPlHldr+'_TxtCRMPublicIssueNo');
   
        if(fldLastName.value.length > 0) {
            piCntr += 1;
        }
        
        if(fldPhoneNo.value.length > 0) {
            piCntr += 1;
        }
        
        if(fldEmail.value.length > 0) {
            piCntr += 1;
        }
        
        if(fldIssueNo.value.length > 0) {
            piCntr += 1;
        }
        
        if (piCntr >= 2)
        {
            return true;
        }
        else
        {
            alert ("Please enter more information to do the search.");
            return false;
        }
   }
   
   
    // need to pass in content place holder ************************
    function TimeButton(asButton, asFormField){

        var psFormField;
        psFormField = asFormField;
        psFormField = psFormField.toString;

        if (asButton == 'btnSchedTimeAM')
        {
            aspnetForm.ctl00_ContentPlaceHolder1_TxtSchedTime.value = 'AM';
        }
        else if (asButton == 'btnSchedTimePM')
        {
            aspnetForm.ctl00_ContentPlaceHolder1_TxtSchedTime.value = 'PM';
        }
        else if (asButton == 'btnCompletedTimeAM')
        {
            aspnetForm.ctl00_ContentPlaceHolder1_TxtCompletedTime.value = 'AM';
        }
        else if (asButton == 'btnCompletedTimePM')
        {
            aspnetForm.ctl00_ContentPlaceHolder1_TxtCompletedTime.value = 'PM';
        }

    }


    // need to modify to not show tool bar etc. *********************
    function addressLookupPopup(theURL) {

      var mypopup=null;
      var myw = 600;
      var myh = 380;
      var X = ((screen.width/2)-(myw/2));
      var Y = ((screen.height/2)-(myh/2));

      var myparams = "innerWidth=" + myw + ",innerHeight=" + myh + ",width=" + myw + ",height=" + myh + ",left=" + X + ",top=" + Y + ",screenX=" + X + ",screenY=" + Y + ",";

      myparams += "alwaysLowered=0,alwaysRaised=1,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=0,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=0,toolbar=0,z-lock=1";

      mypopup = window.open(theURL,"myPopupName",myparams);
    }

    function popUp(URL, width, height, screenX, screenY, left, right) {
    
	    day = new Date();
	    id = day.getTime();

	    varWidth=width
	    varHeight=height
	    varScreenX=screenX
	    varScreenY=screenY

	    varLeft=left
	    varRight=right

	    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" + varWidth + ",height=" + varHeight + "', screenX=" + varScreenX + ", screenY=" + varScreenY + ", left=" + varLeft + ", right=" + varRight + ");");
    }
    
    function popUp_wScroll(URL, width, height, screenX, screenY, left, right) {
    
	    day = new Date();
	    id = day.getTime();

	    varWidth=width
	    varHeight=height
	    varScreenX=screenX
	    varScreenY=screenY

	    varLeft=left
	    varRight=right

	    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=" + varWidth + ",height=" + varHeight + "', screenX=" + varScreenX + ", screenY=" + varScreenY + ", left=" + varLeft + ", right=" + varRight + ");");
    }
    
    function popUp_Dialog(URL, ID, width, height, screenX, screenY, left, right) {
    
	    day = new Date();
	    id = day.getTime();
	    
	    var vReturnValue;

	    varWidth=width
	    varHeight=height
	    
	    varFeature = "status:no;dialogWidth:"+varWidth+"px;dialogHeight:"+varHeight+"px;dialogHide:true;help:no;scroll:no";
	    
        vReturnValue = window.showModalDialog(URL, ID , varFeature);

    	return vReturnValue
    }
   
    function TabNext(obj,event,len,next_field) {

        var field_length=0;

        if (event == "down") {
            field_length=obj.value.length;
            }
        else if (event == "up") {
            if (obj.value.length != field_length) {
                field_length=obj.value.length;
                if (field_length == len) {
                    next_field.focus();
                    }
                }
            }
    }
    
   function IsNumeric(strString) {
   
       var strValidChars = "0123456789";
       var strChar;
       var blnResult = true;

       for (i = 0; i < strString.length && blnResult == true; i++)
          {
          strChar = strString.charAt(i);
          if (strValidChars.indexOf(strChar) == -1)
             {
             blnResult = false;
             }
          }
       return blnResult;
   }
   
   function validEmail(strString) {

        var blnResult = true;
		var at="@"
		var dot="."
		var lat=strString.indexOf(at)
		var lstr=strString.length
		var ldot=strString.indexOf(dot)
		
		if (strString.indexOf(at)==-1){
		   return false
		}

		if (strString.indexOf(at)==-1 || strString.indexOf(at)==0 || strString.indexOf(at)==lstr){
            return false
		}

		if (strString.indexOf(dot)==-1 || strString.indexOf(dot)==0 || strString.indexOf(dot)==lstr){
		    return false
		}

		 if (strString.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (strString.substring(lat-1,lat)==dot || strString.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (strString.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (strString.indexOf(" ")!=-1){
		    return false
		 }
	    return true	
	}

    function CheckCCNum() {

       try
        {

             if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderFirstName.value.length==0)
             {
                 alert ("Please input the cardholder name.");
                 aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderFirstName.focus();
                 return false;
             }
             
             
             var r, re;

             re = /[^\\\.!?""',\w\s@]/ig;
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderFirstName.focus;
             var ss = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderFirstName.value);
             r = ss.replace(re, "");
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderFirstName.value = r;

             if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderLastName.value.length==0)
             {
                 alert ("Please input the cardholder name.");
                 aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderLastName.focus();
                 return false;
             }

             var r, re;

             re = /[^\\\.!?""',\w\s@]/ig;
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderLastName.focus;
             var ss = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderLastName.value);
             r = ss.replace(re, "");
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCardHolderLastName.value = r;

             re = /^(\d{4}[-\s]\d{4}[-\s]\d{4}[-\s]\d{1})$|^(\d{4}[-\s]\d{4}[-\s]\d{4}[-\s]\d{4})$|^(\d{13})$|^(\d{16})$|^(\d{4}[-\s]\d{6}[-\s]\d{5})$|^(\d{15})$/ig;
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCCNumber.focus;
             var ss = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCCNumber.value);

             if (ss.match(re))
             {
                 var reCC = /[\s\-]/ig;
                 r = ss.replace(reCC, "")
                 document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCCNumber.value = r
             }
             else{
                 alert("Invalid Credit Card Number.");
                 return false;
             }
             
             if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_txtCCSecurityCode != null)
             {
                 if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_txtCCSecurityCode.value.length==0)
                 {
                     alert ("Invalid Security Code(CVN).");
                     aspnetForm.ctl00_ContentPlaceHolder1_ctl01_txtCCSecurityCode.focus();
                     return false;
                 }
             }              
             

             if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtBillingAddress.value.length==0)
             {
                 alert ("Please input the cardholder address.");
                 aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtBillingAddress.focus();
                 return false;
             }
             

             re = /[^\\\.!?""',\-\w\s@]/ig;
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtBillingAddress.focus;
             var ss = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtBillingAddress.value);
             r = ss.replace(re, "");
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtBillingAddress.value = r;

             if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCity.value.length==0)
             {
                 alert ("Please input the cardholder city.");
                 aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCity.focus();
                 return false;
             }

             re = /[^\\\.!?""',\-\w\s@]/ig;
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCity.focus;
             var ss = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCity.value);
             r = ss.replace(re, "");
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCity.value = r;
             
             if (aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdState.selectedIndex==0)
             {
                 alert ("Please select the cardholder state.");
                 aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdState.focus();
                 return false;
             }

             re = /^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$/ig;
             document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtZip.focus;
             var ss = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtZip.value);

             if (ss.match(re))
             {

             }
             else
             {
                 alert("Invalid Zip Code.");
                 return false;
             }
             
            
             var otxtEmail = document.getElementById("ctl00_ContentPlaceHolder1_ctl01_txtEmailConfirmation");
             
             if (otxtEmail != null)
             {
                if (validEmail(aspnetForm.ctl00_ContentPlaceHolder1_ctl01_txtEmailConfirmation.value) == false)
                {
                    alert("Invalid Email Address.");
                    return false;
                }
             }
             

             var minpayment = 1;
             var inpyear = document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCExpYr.options[document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCExpYr.selectedIndex].value;
             var inpmonth = document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCExpMonth.options[document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCExpMonth.selectedIndex].value;
             var cardtype;
             for (var i = 0; i < document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCType.length; i++)
             {
                 if (document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCType[i].selected) cardtype = document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_DdCCType[i].value;
             }

             var inpcc = new String(document.aspnetForm.ctl00_ContentPlaceHolder1_ctl01_TxtCCNumber.value);

             today = new Date();
             expiry = new Date(inpyear,inpmonth);
             if (today.getTime() > expiry.getTime())
             {
                 alert("This card has already expired");
                 return false;
             }
             
             switch (cardtype)
             {
                 case "VISA":
                     if (inpcc.length!=13&&inpcc.length!=16)
                     {
                         alert("Please enter your entire 'VISA' number before submitting");
                         return false;
                     }
                     if (inpcc.substr(0,1)!= "4")
                     {
                         alert("Card type is not 'VISA' based on the Credit Card you entered")
                         return false;
                     }
                     break;
                 case "Mastercard":
                     if (inpcc.length!=16)
                     {
                         alert("Please enter your entire 'MasterCard' number before submitting");
                         return false;
                     }
                     if (inpcc.substr(0,1)!= "5"){
                         alert("Card type is not 'MasterCard' based on the Credit Card you entered")
                         return false;
                     }
                     break;
                 case "Discover":
                     if (inpcc.length!=16)
                     {
                         alert("Please enter your entire 'Discover' number before submitting");
                         return false;
                     }
                     if (inpcc.substr(0,4)!= "6011")
                     {
                         alert("Card type is not 'Discover' based on the Credit Card you entered")
                         return false;
                     }
                     break;
                     
                 case "American Express":
                     if (inpcc.length!=15)
                     {
                         alert("Please enter your entire 'American Express' number before submitting");
                         return false;
                     }
                     if ((inpcc.substr(0,2)!= "37") & (inpcc.substr(0,2)!= "34"))
                     {
                         alert("Card type is not 'American Express' based on the Credit Card you entered")
                         return false;
                     } 
                     break;
             }

             var numdigs = inpcc.length;
             var ccdigs = "";

             for (var i = 0; i < numdigs; i++)
             {
                 if ((inpcc.charAt(i) == "0") ||
                 (inpcc.charAt(i) == "1") ||
                 (inpcc.charAt(i) == "2") ||
                 (inpcc.charAt(i) == "3") ||
                 (inpcc.charAt(i) == "4") ||
                 (inpcc.charAt(i) == "5") ||
                 (inpcc.charAt(i) == "6") ||
                 (inpcc.charAt(i) == "7") ||
                 (inpcc.charAt(i) == "8") ||
                 (inpcc.charAt(i) == "9"))
                 {
                     ccdigs = ccdigs + inpcc.charAt(i);
                 }
             }

             var CheckSum = 0;

             for (var count=1; count<=numdigs; count++)
             {
                 var CurrentDigit = inpcc.charAt(numdigs - count);

                 if (count % 2 == 0)
                 {
                     var WorkDigit = CurrentDigit * 2;
                     if (WorkDigit > 9)
                     {
                         CheckSum = CheckSum + (1 - 0);
                         CheckSum = CheckSum + (WorkDigit % 10);
                     }
                     else
                     {
                         CheckSum = CheckSum + (WorkDigit - 0);
                     }
                 }
                 else
                 {
                     CheckSum = CheckSum + (CurrentDigit - 0);
                 }
             }

             if (CheckSum % 10)
             {
                 alert("Invalid Credit Card Number - Please Check and Re-enter");
                 return false;
             }
             else
             {
                
                var elemProcessPayment = document.getElementById('ctl00_ContentPlaceHolder1_ctl01_BtnProcessPayment');

                elemProcessPayment.style.display = 'none';
                elemProcessPayment.style.visibility = 'hidden';

                return true;

             }

          }
          catch(e)
          {
              // alert(e.message);
           }    
     }

    function getX(obj)
    {
       return( obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+getX(obj.offsetParent) );
    }

    function getY(obj)
    {
       return( obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+getY(obj.offsetParent) );
    }

    function isvalidchar(achar,validstr)
    {
       if ( !validstr ) validstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 `~!@#$%^&*()_-+={}[]|:;'<>,./?\\\"";
       return( validstr.toUpperCase().indexOf(achar.toString().toUpperCase(),0) >= 0 );
    }

    function getBubbleDiv()
    {
       if ( document.getElementById )
          return document.getElementById("divComboBubble");
       else if ( document.all )
          return document.all.divComboBubble;
       else return null;
    }

    function createBubbleDiv(objSelect)
    {
       if ( !getBubbleDiv() )
       {
          var bubbleDiv = "<DIV id='divComboBubble' style='position:fixed;top:100px;left:300px;visibility:hidden'></div>\n";

          if ( document.body.insertAdjacentHTML )
          {
             document.body.insertAdjacentHTML("beforeEnd",bubbleDiv);
          }
          else if ( document.body.innerHTML )
          {
             document.body.innerHTML += bubbleDiv;
          }

          var sel = "document." + objSelect.form.name + "." + objSelect.name
          setTimeout("setupComboBox("+sel+")",1);

          return true;
       }

       return false;
    }

    function setupComboBox(objSelect)
    {
       if ( !document.all && !document.getElementById )
          return false;

       if ( !objSelect || (""+objSelect.type).substring(0,6).toLowerCase()!="select" )
          return false;

       if ( createBubbleDiv(objSelect) )
          return true;

       objSelect.X = getX(objSelect)+2;
       objSelect.Y = getY(objSelect)-20;
       objSelect.strKeyInBuf   = "";

       objSelect.onfocus     = comboFocusHandler;
       objSelect.onblur      = comboBlurHandler;
       objSelect.onmouseover = comboMouseOverHandler;
       objSelect.onmouseout  = comboMouseOutHandler;
       objSelect.onkeydown   = comboKeyDownHandler;
       objSelect.onkeypress  = comboKeyPressHandler;
       objSelect.onkeyup     = null;

       return true;
    }

    function showBubbleText(objSelect)
    {
      if ( !objSelect || !objSelect.X )
      {
         return(false);
      }

      var divComboBubble = getBubbleDiv();
      var s = divComboBubble.innerHTML = "";

      with ( objSelect )
      {
         if ( strKeyInBuf == "" )
         {
            s = '<FONT color="blue">' + title + '</font>';
         }
         else if ( ( selectedIndex >= 0 ) && ( strKeyInBuf == options[selectedIndex].text ) )  // unique match found
         {
            s = '<B>' + strKeyInBuf + '</b>';
         }
         else
         {
            var c = strKeyInBuf.substring(strKeyInBuf.length-1,strKeyInBuf.length);
            c = ( c == ' ' ) ? '&nbsp;' : '<B>' + c + '</b>';
            s = strKeyInBuf.substring(0,strKeyInBuf.length-1) + c;
         }

         divComboBubble.innerHTML = '<TABLE cellpadding=0 cellspacing=0 style="background-color:INFOBACKGROUND;'
           + 'font:8pt ms sans serif;padding:2px 2px 2px 2px;color:INFOTEXT;border:1px solid INFOTEXT">'
           + '<TR><TD align=left><NOBR>'+s+'</nobr></td></tr></table>';

         divComboBubble.style.posLeft = divComboBubble.style.left = X;
         divComboBubble.style.posTop  = divComboBubble.style.top  = Y;
         divComboBubble.style.visibility = "";

      }

      return(true);
    }

    function hideBubbleText()
    {
       var divComboBubble = getBubbleDiv();
       divComboBubble.innerHTML = "";
    }

    function findSelectEntry( objSelect, head, tail )
    {
      with ( objSelect )
      {
        if ( options.length <= 0 )
        {
           strKeyInBuf = ' <FONT color="red">No selections available.</font> ';
           showBubbleText(objSelect);
           top.status = strKeyInBuf = "";
           return(-1);
        }

        if ( strKeyInBuf == "" )
        {
           showBubbleText(objSelect);
           selectedIndex=0;
           return( selectedIndex = options[selectedIndex].text.length ? -1 : 0 );
        }

        var mid = Math.round( (head+tail)/2 );

        if ( strKeyInBuf.toUpperCase() == options[mid].text.substring(0,strKeyInBuf.length).toUpperCase() )
        {
           while ( (mid>0)  &&  strKeyInBuf.toUpperCase() == options[mid-1].text.substring(0,strKeyInBuf.length).toUpperCase() )
           {
              mid--;
           }

           selectedIndex=mid;

           top.status = strKeyInBuf = options[mid].text.substring(0,strKeyInBuf.length);

           if ( mid == Math.round( (head+tail)/2 ) )
           {
              if ( (mid==tail) || ( (mid<tail) && strKeyInBuf.toUpperCase() != options[mid+1].text.substring(0,strKeyInBuf.length).toUpperCase() ) )
              {
                 top.status = strKeyInBuf = options[mid].text;
              }
           }

           showBubbleText(objSelect);

           return( selectedIndex );
        }

        if ( head >= tail )
        {
           strKeyInBuf = strKeyInBuf.substring(0,strKeyInBuf.length-1)
           return( findSelectEntry( objSelect, 0, options.length-1 ) );
        }

        if ( strKeyInBuf.toUpperCase() < options[mid].text.substring(0,strKeyInBuf.length).toUpperCase() )
        {
           return( findSelectEntry( objSelect, head, Math.max(head,mid-1) ) );
        }

        return( findSelectEntry( objSelect, Math.min(mid+1,tail), tail ) );
      }
    }

    function comboFocusHandler(e)
    {
       var event = e ? e : window.event;
       var objSelect = event.target ? event.target : event.srcElement;
       comboFocusHandler.objSelect = objSelect;

       objSelect.X = getX(objSelect)+2;
       objSelect.Y = getY(objSelect)-20;
       objSelect.strKeyInBuf = "";

       showBubbleText(objSelect);
    }

    function comboBlurHandler(e)
    {
      var event = e ? e : window.event;
      var objSelect = event.target ? event.target : event.srcElement;
      comboFocusHandler.objSelect = null;

      objSelect.strKeyInBuf = "";
      top.status = (objSelect.selectedIndex>-1) ? objSelect.options[objSelect.selectedIndex].text : "";

      hideBubbleText();

      return(true);
    }

    function comboMouseOverHandler(e)
    {
      var event = e ? e : window.event;
      var objSelect = event.target ? event.target : event.srcElement;

      showBubbleText(objSelect);

      return(true);
    }

    function comboMouseOutHandler(e)
    {
      var event = e ? e : window.event;
      var objSelect = event.target ? event.target : event.srcElement;

      if ( objSelect==comboFocusHandler.objSelect || objSelect==document.activeElement )
         return(true);

      hideBubbleText();

      return(true);
    }

    function comboKeyDownHandler(e)
    {
      var event = e ? e : window.event;
      var objSelect = event.target ? event.target : event.srcElement;
      var divComboBubble = getBubbleDiv();

      with ( objSelect )
      {
        if ( strKeyInBuf=="" && event.keyCode>40 )
        {
           objSelect.blur();
           objSelect.focus();
        }

        switch(event.keyCode)
        {
          case(8):
          {
             if ( ( selectedIndex >= 0 ) && ( strKeyInBuf == options[selectedIndex].text ) )
             {
                top.status = strKeyInBuf = "";
             }
             else
             {
                top.status = strKeyInBuf = strKeyInBuf.substring(0,strKeyInBuf.length-1);
             }

             if ( strKeyInBuf.length==0 ) selectedIndex = -1;

             showBubbleText(objSelect);
             event.keyCode = 0;
             return(false);
          }

          case(9):
          case(13):
          {
             event.keyCode = 9;
             return(true);
          }

          case(27):
          {
             top.status = strKeyInBuf = "";
             selectedIndex = -1;
             showBubbleText(objSelect);
             event.keyCode = 0;
             return(false);
          }

          case(32):
          {
             top.status = strKeyInBuf += ' ';

             return( !comboKeyPressHandler(event) );
          }

          case(33):
          case(34):
          case(35):
          case(36):
          case(38):
          case(40):
          {
             top.status = strKeyInBuf = "";
             hideBubbleText();
             return(true);
          }

        }
      }

      return(true);
    }

    function comboKeyPressHandler(e)
    {
      var event = e ? e : window.event;
      var objSelect = event.target ? event.target : event.srcElement;
      var inputChar = String.fromCharCode(event.keyCode ? event.keyCode : event.charCode);

      if ( inputChar=='\n' || inputChar=='\r' )
      {
         top.status = objSelect.strKeyInBuf = ( objSelect.selectedIndex>-1 ? objSelect.options[objSelect.selectedIndex].text : "" );
      }

      if ( isvalidchar(inputChar) && event.charCode!=0 )
      {
         objSelect.strKeyInBuf += inputChar;
         var strSel = 'document.forms["' + objSelect.form.name + '"].elements["' + objSelect.name + '"]';
         setTimeout( 'findSelectEntry(' + strSel + ',0,' + strSel + '.options.length-1);' , 1 );
      }

      return(true);
    }
    
    
    function validateSearch() 
    {
        var otxtSearchString = document.getElementById("ctl00_ContentPlaceHolder1_ctl01_ucSearchFilter_txtSearchString");
        
        var strSearchString = otxtSearchString.value;
        
        strSearchString = strSearchString.replace(/^\s+|\s+$/g, '') ;

        if (strSearchString.length == 0)
        {
            alert ("Please enter a value in the search box.");
            return false;
        }
    }
    
    function gridView_CheckBoxValidate(aoChkBox, asMsg)
    {
    
        try
        {
        
        var bool=0;

        for(j=0;j<aoChkBox.length; j++)

        {

            var obj = document.getElementById(aoChkBox[j]);

            if(obj.checked ==true)

            {
                bool=1;
            }

        } 

               if(bool==0)

                {
                        alert(asMsg);

                        return false;
                }
               
         return true;
         
         }
         catch(e)
         {
            alert(e.message);
         }
                
     } 

       function highlightRow(obj, newColor)
       {
         obj.style.cursor = "hand";
         obj.style.backgroundColor = newColor;
       }
  
       function dehighlightRow(obj, originalColor)
       {
         obj.style.backgroundColor = originalColor;
       }
       
       
       
       function settimevalue(oControlID, strValue)
       {
            var ocontrol;
            
            ocontrol = document.getElementById(oControlID);
            
            if (ocontrol != null)
            {
                ocontrol.value = strValue;
            }
            else 
            {
                alert("can't set a value to the control");
            }
       }
     
     
