   function dhCreateCookie(CookieName, CookieValue, DaysToExpiration) 
   {
      var currentDate = new Date();

      currentDate.setTime(currentDate.getTime() + (DaysToExpiration * 24 * 60 * 60 * 1000));

       	document.cookie = CookieName + 
       	                  "=" + 
       	                  CookieValue + 
       	                  (DaysToExpiration ? "; expires=" + currentDate.toGMTString() : "") + 
       	                  "; path=/";
   }                                   // function dhCreateCookie(CookieName, CookieValue, DaysToExpiration)

   function dhReadCookie(CookieName)
   {
   	var nameEQ = CookieName + "=";
   	var cookieArray = document.cookie.split(';');
   	var currentCookie;
   	var result  = null;

   	for (var cookieNumber=0; cookieNumber < cookieArray.length; cookieNumber++) 
   	{
   		currentCookie = cookieArray[cookieNumber];
   		currentCookieLength = currentCookie.length;
		
   		while (currentCookie.charAt(0) == ' ')
   		{
   		   currentCookie = currentCookie.substring(1, currentCookieLength);

   		}                             // while (currentCookie.charAt(0) == ' ')
		
   		if (currentCookie.indexOf(nameEQ) == 0) 
   		{
   		   result = currentCookie.substring(nameEQ.length,currentCookieLength);

   		}                             // if (currentCookie.indexOf(nameEQ) == 0) 

   	}                                // for (var cookieNumber=0; cookieNumber < cookieArray.length; cookieNumber++) 
   	return (result);
   }                                   // function dhReadCookie(CookieName)

   function dhEraseCookie(CookieName)
   {
   	dhCreateCookie(CookieName, "", -1);
   }                                   // function dhEraseCookie(CookieName)

   function dhGetQueryStringName(UrlToSearch)
   {
      var delimiterPosition;
      var queryStringValue = "";
                                       // Is there a query string name to search for??
      if ((null != UrlToSearch) && ("" != UrlToSearch))
      {
                                       // Yes, find the name and get the value
         if ((delimiterPosition = UrlToSearch.indexOf("?")) >= 0)
         {
            queryStringValue = UrlToSearch.substr(delimiterPosition + 1);

         }                             // if (null != queryStringValue)

      }                                // if ((null != UrlToSearch)     && ("" != UrlToSearch))
      return (queryStringValue);
   }                                   // function dhGetQueryStringName(QueryStringName)

   function dhGetQueryStringValue(QueryStringName, UrlToSearch)
   {
      var searchString;
      var queryStringValue = "";
                                       // Is there a query string name to search for??
      if (((null != QueryStringName) && ("" != QueryStringName)) &&
          ((null != UrlToSearch)     && ("" != UrlToSearch)))
      {
                                       // Yes, find the name and get the value
         QueryStringName = QueryStringName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

         searchString     = new RegExp("[\\?&]" + QueryStringName + "=([^&#]*)");
         queryStringValue = searchString.exec(UrlToSearch);

                                       // Is the name in the search string??
         if (null != queryStringValue)
         {
                                       // Yes, return the value associated with the name
            queryStringValue = queryStringValue[1];
         }
         else                          // No, return and empty string
         {
            queryStringValue = "";
         }                             // if (null != queryStringValue)

      }                                // if (((null != QueryStringName) && ("" != QueryStringName)) &&
                                       //     ((null != UrlToSearch)     && ("" != UrlToSearch)))
      return (queryStringValue);
   }                                   // function dhGetQueryStringValue(QueryStringName)

   function dhPutQueryStringNameInFormField(UrlToSearch, FormFieldName, CookieName, DaysToExpiration)
   {
      var desiredFormField = document.getElementsByName(FormFieldName);
      var stringValue;
                                       // Does the form field exist??
      if ((null != desiredFormField) && (desiredFormField.length > 0))
      {
                                       // Yes, set the value
         desiredFormField[0].value = (stringValue = dhGetQueryStringName(UrlToSearch));

                                       // Do we need to create a cookie??
         if ((null != CookieName) && ("" != CookieName))
         {
                                       // Yes, create one
            dhCreateCookie(CookieName, stringValue, (DaysToExpiration ? DaysToExpiration : 365));

         }                             // if ((null != CookieName) && ("" != CookieName))

      }                                // if ((null != desiredFormField) && (desiredFormField.length > 0))

   }                                   // function dhPutQueryStringNameInFormField(UrlToSearch, FormFieldName, CookieName)

   function dhPutQueryStringValueInFormField(QueryStringName, UrlToSearch, FormFieldName, CookieName)
   {
      var desiredFormField = document.getElementsByName(FormFieldName);
      var stringValue;
                                       // Does the form field exist??
      if ((null != desiredFormField) && (desiredFormField.length > 0))
      {
                                       // Yes, set the value
         desiredFormField[0].value = (stringValue = dhGetQueryStringValue(QueryStringName, UrlToSearch));

                                       // Do we need to create a cookie??
         if ((null != CookieName) && ("" != CookieName))
         {
                                       // Yes, create one
            dhCreateCookie(CookieName, stringValue, (DaysToExpiration ? DaysToExpiration : 365));

         }                             // if ((null != CookieName) && ("" != CookieName))

      }                                // if ((null != desiredFormField) && (desiredFormField.length > 0))

   }                                   // function dhPutQueryStringValueInFormField(QueryStringName, UrlToSearch, FormFieldName, CookieName)

