
/*
RewindSearch() loads form values if conditions are met.
Call should be placed at bottom of page with form.
*/

function RewindSearch()
{
	var remember = QueryString("remember");
	if (remember == "true")
	{
		GetRewindFormValues(); 
	}
}


/*
QueryString(key) loops through the current page query name/value pairs,
and returns the value if any match found for key.
*/

function QueryString(key)
{
	var value = null;
	for (var i=0;i<QueryString.keys.length;i++)
	{
		if (QueryString.keys[i]==key)
		{
			value = QueryString.values[i];
			break;
		}
	}
	return value;
}

QueryString.keys = new Array();
QueryString.values = new Array();

/*
QueryString_Parse() populates arrays with the page's query string name/value pairs.
*/

function QueryString_Parse()
{
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	
	for (var i=0;i<pairs.length;i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			QueryString.keys[QueryString.keys.length] = argname;
			QueryString.values[QueryString.values.length] = value;		
		}
	}
}

QueryString_Parse();


/*
SetRewindFormValues() polls form element values to put in a cookie.
*/

function SetRewindFormValues()
   {
   if (!navigator.cookieEnabled)
      return;

   var formObj     = document.qbe_form;  if (!formObj) return
   var formLength  = formObj.elements.length;
   var sText = '';
   var sTxCookieName = '';

   for (var i=0; i<formLength; i++)
      if (formObj.elements[i].type)
      {
         if (formObj.elements[i].type.substring(0,4) == "text" || formObj.elements[i].type.substring(0,6) == "hidden")
         {
            if (formObj.elements[i].name.toUpperCase().substring(0,2) == "QI")
            {
               sText += formObj.elements[i].name.toUpperCase() + 'r&m:[' + formObj.elements[i].value + ']:r&m';
            }
         }
         else if (formObj.elements[i].type.substring(0,8) == "checkbox")
         {
			if (formObj.elements[i].name.toUpperCase().substring(0,3) == "CHK" || formObj.elements[i].name.toUpperCase().substring(0,2) == "QI")
			{
				if (formObj.elements[i].checked == true)
				{
					sText += formObj.elements[i].name.toUpperCase() + 'r&m:[' + formObj.elements[i].checked + ']:r&m';
				}
			}
         }
        else if (formObj.elements[i].type.substring(0,6) == "select")
        {
           if (formObj.elements[i].name.toUpperCase().substring(0,2) == "QI" || formObj.elements[i].name.toUpperCase().substring(0,2) == "QB")
           {
               sText += formObj.elements[i].name.toUpperCase() + 'r&m:[' + formObj.elements[i].selectedIndex + ']:r&m';
           }
        }
      }

   //alert(sText);
   sTxCookieName = 'RewindCookie';
   SetRewindCookie(sTxCookieName, sText);
   }

/*
SetRewindCookie() sets a cookie with a given name and value.
*/


function SetRewindCookie(sCookieName, sValue, iMinutesToSave)
   {
   if (!navigator.cookieEnabled)
      return;

   sCookieName = escape(sCookieName);
   sValue = escape(sValue);

   var sExpires = "";
   var sCookie  = "";

   if (iMinutesToSave == -1)
      return;
   else if (iMinutesToSave > 0)
      {
      var exp = new Date();
      var newExpTime = exp.getTime() + ( iMinutesToSave * 60 * 1000 );
      exp.setTime(newExpTime);
      sExpires = "; expires=" + exp.toGMTString();
      }
   else if (iMinutesToSave == -2)
      {
      var nextYear = new Date();
      nextYear.setFullYear(nextYear.getFullYear() + 1);
      sExpires = "; expires=" + nextYear.toGMTString();
      }
   sNewCookie = sCookieName + "=" + sValue + sExpires + "; path=/";
   document.cookie = sNewCookie;
   }
   



function GetRewindFormValues()
   {
   if (!navigator.cookieEnabled)
      return;

   var   formObj    = document.qbe_form;  if (!formObj) return
   var   formLength = formObj.elements.length;
   var   fm_EIx     = new Array();

   for (var i=0; i<formLength; i++)
      if (formObj.elements[i].type)
      {
         if (formObj.elements[i].type.substring(0,4) == "text" || formObj.elements[i].type.substring(0,6) == "hidden")
         {
            if (formObj.elements[i].name.toUpperCase().substring(0,2) == "QI")
            {
               fm_EIx[fm_EIx.length] = formObj.elements[i].name.toUpperCase() + '|' + i;
            }
         }
         else if (formObj.elements[i].type.substring(0,8) == "checkbox")
         {
			if (formObj.elements[i].name.toUpperCase().substring(0,3) == "CHK" || formObj.elements[i].name.toUpperCase().substring(0,2) == "QI")
			{
				fm_EIx[fm_EIx.length] = formObj.elements[i].name.toUpperCase() + '|' + i;
			}
         }         
        else if (formObj.elements[i].type.substring(0,6) == "select")
        {
           if (formObj.elements[i].name.toUpperCase().substring(0,2) == "QI" || formObj.elements[i].name.toUpperCase().substring(0,2) == "QB")
           {
               fm_EIx[fm_EIx.length] = formObj.elements[i].name.toUpperCase() + '|' + i;
           }
        }
      }
   //alert(fm_EIx);

   var sTxCookieName = '';
   var sText         = '';
   var sName         = '';
   var sValue        = '';
   var nBoxIndex     = 0;
   sTxCookieName  = 'RewindCookie';
   sText = getRewindCookie(sTxCookieName);
   aNameValuePairs = sText.split(']:r&m');
   
   for (var i=0; i<aNameValuePairs.length; i++)
   {
      aNameValuePair = aNameValuePairs[i].split('r&m:[');
      sName = aNameValuePair[0];
      if (aNameValuePair[1])
         sValue = aNameValuePair[1];
      else
         sValue = '';
      if (sName > '')
      {
         for (var j=0; j<fm_EIx.length; j++)
         {
            if (fm_EIx[j].indexOf(sName+'|') == 0)
            {
               nBoxIndex = Number(fm_EIx[j].split('|')[1]);
               if (formObj.elements[nBoxIndex].type.substring(0,4) == "text" || formObj.elements[nBoxIndex].type.substring(0,6) == "hidden")
               {
               	 //alert(sValue);
               	 formObj.elements[nBoxIndex].value = sValue;
               }
			   else if (formObj.elements[nBoxIndex].type.substring(0,8) == "checkbox")  
			   {
				 formObj.elements[nBoxIndex].checked = true;
			   }                         
               else if (formObj.elements[nBoxIndex].type.substring(0,6) == "select")
               {
               	 //alert(sName + " " + sValue + " " + nBoxIndex);
               	 formObj.elements[nBoxIndex].selectedIndex = sValue; 
               }
            }
         }
      }
   }
}
   
   
function getRewindCookie(sCookieName)
   {
   if (!navigator.cookieEnabled)
      return '';

   var sDocumentCookie = document.cookie;
   sCookieName = escape(sCookieName);
   if (sDocumentCookie.length > 0)
      {
      sCookieNameToFind = sCookieName + "=";
      cStart = sDocumentCookie.indexOf(sCookieNameToFind);
      if (cStart != -1)
         {
         cStart += sCookieNameToFind.length;
         cEnd   = sDocumentCookie.indexOf(";", cStart);
         if (cEnd == -1)
            cEnd = sDocumentCookie.length;
         return unescape(sDocumentCookie.substring(cStart, cEnd));
         }
      else
         return '';
      }
   else
      return '';
   }