

function set_cookie(name,value,exp_y,exp_m,exp_d,path,domain,secure){
	var cookie_string = name + "=" + escape (value);
	if (exp_y){
		var expires = new Date (exp_y, exp_m, exp_d);
		cookie_string += "; expires=" + expires.toGMTString();
	}
	if (path)
		cookie_string += "; path=" + escape (path);
	if (domain)
	    cookie_string += "; domain=" + escape (domain);
	if (secure)
	    cookie_string += "; secure";
	document.cookie = cookie_string;
}


// Messages in english

var sErrValidateNumber          = " must only contain a number.\n";
var sErrValidateNumberMin       = " Minimum value is ";
var sErrValidateNumberMax       = " Maximum value is ";
var sErrFormat                  = "Err!";
var sErrNotChoosen              = " is not choosen.\n";

var g_arrValidDateFormats    = new Array("YYYY-MM-DD", "YYYYMMDD", "YYMMDD", "YY-MM-DD");
var sErrValidateTextMinLength1  = " must be at least ";
var sErrValidateTextMinLength2  = " characters.\n";
var sErrValidateTextMaxLength1  = " can be at most ";
var sErrValidateTextMaxLength2  = " characters.\n";

var sErrCompareDatesIsNot       = " is not ";
var sErrCompareDatesSameAs      = "same as";
var sErrCompareDatesLessOrEqual = "less or equal to";

var sErrValidateEmail           = " is not a valid e-mail address.\n";
var sErrValidateDate            = " only allow the formats ";
var sErrValidateFileExt         = " allows only the fileextensions "
var sErrValidateTime            = " must contain a time in the format HH:MM.\n";
var sErrValidateRegNr           = " must contain a car registration number in the formats \"ABC123\" or \"ABC 123\".\n";
var sErrValidateZipcode         = " must contain a zipcode in the formats \"123 45\" or \"12345\".\n";


var sErrValidatePersNr          = " is not a valid swedish personalnumber.\n";
var sErrIsEmpty                 = " is required.\n";
var g_iValidDateReturnFormat = 0;
var g_sLastValidDateFormat   = null;

var sErrCompareDatesMoreOrEqual = "more or equal to";
var sErrCompareDatesLessThan    = "less than";
var sErrCompareDatesMoreThan    = "more than";
var sErrCompareDatesDifferent   = "different";

var sErrValidateText2           = " must only contain numbers and the letters A-Z.\n";





/*******************************************************************/



function validateText2(sText, sName, bAllowEmpty, iMinLength, iMaxLength)
{
   var sErrorMsg = "";

   if(!bAllowEmpty && sText == "") // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sText != "") // else if to short or to long string or nonvalid characters
   {
      sErrorMsg = validateText(sText, sName, bAllowEmpty, iMinLength, iMaxLength);
      
      if(sErrorMsg == "")
      {
		   for(var i=0; i<sText.length; i++)
		   {
		      if(!(sText.charAt(i) <= "9" && sText.charAt(i) >= "0" || 
		           sText.charAt(i) <= "z" && sText.charAt(i) >= "a" || 
		           sText.charAt(i) <= "Z" && sText.charAt(i) >= "A"))
		      {
		         sErrorMsg += "- " + sName + sErrValidateText2;
		         break;
		      }
		   }
      }
   }
   
   return sErrorMsg;
}
function validateText(sText, sName, bAllowEmpty, iMinLength, iMaxLength)
{
   var sErrorMsg = "";
   sText = trim(sText);

   if(!bAllowEmpty && sText == "") // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sText != "") // else if to short or to long string
   {
      if(iMinLength != null && sText.length < iMinLength)
         sErrorMsg += "- " + sName + sErrValidateTextMinLength1 + iMinLength + sErrValidateTextMinLength2;
      if(iMaxLength != null && sText.length > iMaxLength)
         sErrorMsg += "- " + sName + sErrValidateTextMaxLength1 + iMaxLength + sErrValidateTextMaxLength2;
   }
   return sErrorMsg;
}

function validateNumber(sNumber, sName, bAllowEmpty, iMinValue, iMaxValue, bAllowNegative)
{
   var sErrorMsg = "";
   sNumber = trim(sNumber);
	
   if(!bAllowEmpty && sNumber == "") // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sNumber != "") // else if number - to low or to high
   {
      if(bAllowNegative && sNumber.charAt(0) == "-")
         sNumber = sNumber.slice(1);
      var objRegExp   = new RegExp("[^0-9]", "g"); // Search for everything except 0-9
      var iInvalidPos = sNumber.search(objRegExp);

      if(iInvalidPos != -1) 
      {
         sErrorMsg += "- " + sName + sErrValidateNumber;
      }
		else // Only number characters
		{
		   if(iMinValue != null && eval(sNumber) < iMinValue)
		      sErrorMsg += "- " + sName + sErrValidateNumberMin + iMinValue + ".\n";
		   if(iMaxValue != null && eval(sNumber) > iMaxValue)
		      sErrorMsg += "- " + sName + sErrValidateNumberMax + iMaxValue + ".\n";
		}
   }
   return sErrorMsg;
}

function validateFileExt(sFilePath, arrExtensions, sName, bAllowEmpty)
{
   var sErrorMsg = "";
   sFilePath = trim(sFilePath);
   
   if(!bAllowEmpty && sFilePath == "") // If empty
   {
      sErrorMsg = "- " + sName + sErrNotChoosen;
   }
   else if(sFilePath != "") // Check fileextension
   {
      var sThisExt = sFilePath.slice(sFilePath.lastIndexOf(".") + 1);
      var bFound   = false;
      var sAllExt  = "";

      for(var i = 0; i < arrExtensions.length; i++)
      {
         if(arrExtensions[i].toLowerCase() == sThisExt.toLowerCase())
            bFound = true;

         sAllExt += "\"" + arrExtensions[i] + "\", ";
         if(i == arrExtensions.length-1)
            sAllExt = sAllExt.slice(0,sAllExt.length-2);
      }
      if(!bFound)
         sErrorMsg = "- " + sName + sErrValidateFileExt + sAllExt + ".\n";
   }

   return sErrorMsg;
}

function formatDate(sDate, arrValidFormats, iReturnFormat)
{
   var sFormated = "";
   sDate = trim(sDate);

   if(validateDate(sDate, "Datum", arrValidFormats, true) == "" && sDate.length > 0)
   {
      var rgExp, sValidDate, sReturnDate;
      
      // Get the format of the sDate - global variable that validateDate saves in
      sValidDate = g_sLastValidDateFormat;

      var iYearLen  = (sValidDate.lastIndexOf("Y") != -1) ? sValidDate.lastIndexOf("Y") - sValidDate.indexOf("Y") + 1 : 0;
      var iMonthLen = (sValidDate.lastIndexOf("M") != -1) ? sValidDate.lastIndexOf("M") - sValidDate.indexOf("M") + 1 : 0;
      var iDateLen  = (sValidDate.lastIndexOf("D") != -1) ? sValidDate.lastIndexOf("D") - sValidDate.indexOf("D") + 1 : 0;

      var iYear  = sDate.slice(sValidDate.indexOf("Y"), sValidDate.indexOf("Y") + iYearLen);
      var iMonth = sDate.slice(sValidDate.indexOf("M"), sValidDate.indexOf("M") + iMonthLen);
      var iDate  = sDate.slice(sValidDate.indexOf("D"), sValidDate.indexOf("D") + iDateLen);

      // If parameters are nulluse the global ones
      if(arrValidFormats == null)
         arrValidFormats = g_arrValidDateFormats;
      if(iReturnFormat == null)
         iReturnFormat = g_iValidDateReturnFormat;

      // Get the format to format to
      sReturnDate = arrValidFormats[iReturnFormat];

      var iYearLen2  = (sReturnDate.lastIndexOf("Y") != -1) ? sReturnDate.lastIndexOf("Y") - sReturnDate.indexOf("Y") + 1 : 0;
      var iMonthLen2 = (sReturnDate.lastIndexOf("M") != -1) ? sReturnDate.lastIndexOf("M") - sReturnDate.indexOf("M") + 1 : 0;
      var iDateLen2  = (sReturnDate.lastIndexOf("D") != -1) ? sReturnDate.lastIndexOf("D") - sReturnDate.indexOf("D") + 1 : 0;

      if(iYearLen == 2 && iYearLen2 == 4) // Fix year if only two numbers
      {
         if(iYear > 50)
            iYear = "19" + iYear;
         else
            iYear = "20" + iYear;
      }

      // If some of the values don't exist, use todays...
      if(iYear.length == 0) // Fix year if only two numbers
      {
         iYear = new Date().getUTCFullYear() + "";
         iYearLen = iYear.length;
      }
      if(iMonth.length == 0) // Fix year if only two numbers
      {
         iMonth = (new Date().getUTCMonth() + 1) + "";
         if(iMonth.length == 1)
            iMonth = "0" + iMonth;
         iMonthLen = iMonth.length;
      }
      if(iDate.length == 0) // Fix year if only two numbers
      {
         iDate = new Date().getUTCDate() + "";
         if(iDate.length == 1)
            iDate = "0" + iDate;
         iDateLen = iDate.length;
      }

      // Replace Y's, M's and D's with the sent in year, month, date
      if(iYearLen2)
      {
         if((iYearLen - iYearLen2) >= 0)
            iYear = iYear.slice(iYearLen - iYearLen2);
         rgExp = new RegExp("Y{" + iYearLen2 + "}");
         sReturnDate = sReturnDate.replace(rgExp, iYear);
      }
      if(iMonthLen2)
      {
         if((iMonthLen - iMonthLen2) >= 0)
            iMonth = iMonth.slice(iMonthLen - iMonthLen2);
         rgExp = new RegExp("M{" + iMonthLen2 + "}");
         sReturnDate = sReturnDate.replace(rgExp, iMonth.slice(iMonthLen - iMonthLen2));
      }
      if(iDateLen2)
      {
         if((iDateLen - iDateLen2) >= 0)
            iDate = iDate.slice(iDateLen - iDateLen2);
         rgExp = new RegExp("D{" + iDateLen2 + "}");
         sReturnDate = sReturnDate.replace(rgExp, iDate.slice(iDateLen - iDateLen2));
      }
      
      sFormated = sReturnDate;
   }
   else if(sDate.length > 0)
      sFormated = sErrFormat;

   return sFormated;
}

function validateDate(sDate, sName, arrValidFormats, bAllowEmpty)
{
   var sErrorMsg   = "";
   var bValidFound = false;
   var bEmpty      = false;

   sDate = trim(sDate);
   
   if(arrValidFormats == null)
      arrValidFormats = g_arrValidDateFormats;

   if(!bAllowEmpty && sDate == "") // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sDate != "") // Check date
   {
      var sAllDates = "";

      for(var i = 0; i < arrValidFormats.length; i++) // Go through all valid formats
      {
         var sValidDate = arrValidFormats[i];
         var bThisValid = true;

         if(sDate.length == sValidDate.length) // Only if correct length.
         {
            var iYear, iMonth, iDate, rgExp;
            var iYearLen   = (sValidDate.lastIndexOf("Y") != -1) ? sValidDate.lastIndexOf("Y") - sValidDate.indexOf("Y") + 1 : 0;
            var iMonthLen  = (sValidDate.lastIndexOf("M") != -1) ? sValidDate.lastIndexOf("M") - sValidDate.indexOf("M") + 1 : 0;
            var iDateLen   = (sValidDate.lastIndexOf("D") != -1) ? sValidDate.lastIndexOf("D") - sValidDate.indexOf("D") + 1 : 0;

            if(iYearLen != 0) // Check year
            {
               iYear = sDate.slice(sValidDate.indexOf("Y"), sValidDate.indexOf("Y") + iYearLen);
               rgExp = new RegExp("[0-9]{" + iYearLen + "}");
               if(iYear.search(rgExp) == -1) // If a valid year number
                  bThisValid = false;
            }

            if(iMonthLen != 0 && bThisValid) // Check month
            {
               iMonth = sDate.slice(sValidDate.indexOf("M"), sValidDate.indexOf("M") + iMonthLen);
               rgExp = new RegExp("[0-9]{" + iMonthLen + "}");
               if(iMonth.search(rgExp) > -1)
               {
                  // Check if from 1 to 12
                  if(iMonth < 1 || iMonth > 12)
                     bThisValid = false;
	            }
	            else
	               bThisValid = false;
            }

            if(iDateLen != 0 && bThisValid) // Check date
            {
               iDate = sDate.slice(sValidDate.indexOf("D"), sValidDate.indexOf("D") + iDateLen);
               rgExp = new RegExp("[0-9]{" + iDateLen + "}");
               if(iDate.search(rgExp) > -1)
               {
                  if(iDate < 1 || iDate > 31)
                     bThisValid = false;

	               // Check if correct nr of days for the month (months with 30 days)
	               if(iMonth == 4 || iMonth == 6 || iMonth == 9 || iMonth == 11)
	               {
	               	if(iDate == 31)
	               	   bThisValid = false;
	               }

	               if(iMonth == 2) // Check february
	               {
	                  if(iDate > 29) // If more than 29 days
	                     bThisValid = false;

                     if(iYear) // Check leap year (if a year exist)
                     {
	                     if(iDate == 29 && ((iYear / 4) != parseInt(iYear / 4)))
	                        bThisValid = false;
	                  }
	               }
	            }
	            else
	               bThisValid = false;
            }
            
            if(bThisValid) // Check separators
            {
               rgExp  = new RegExp("[^YMD]", "g"); // Search for everything except YMD
               rgExp2 = new RegExp("[^0-9]", "g"); // Search for everything except 0-9
               
               var arrMatches  = sValidDate.match(rgExp);
               var arrMatches2 = sDate.match(rgExp2);
               
               if(arrMatches != null)
               {
                  for(var i2 = 0; i2 < arrMatches.length; i2++)
                  {
                     if(arrMatches2 == null || 
                        arrMatches2.length < arrMatches.length ||
                        arrMatches[i2] != arrMatches2[i2])
                        bThisValid = false;
                  }
               }
            }
         }
         else
            bThisValid = false;

         if(bThisValid)
         {
            bValidFound = true;
            g_sLastValidDateFormat = sValidDate;
         }

         // Create string that might have to be presented in error message.
         sAllDates += "\"" + arrValidFormats[i] + "\", ";
         if(i == arrValidFormats.length-1)
            sAllDates = sAllDates.slice(0, sAllDates.length-2);
      }

      if(!bValidFound) // No valid at all found
         sErrorMsg = "- " + sName + sErrValidateDate + sAllDates + ".\n";
   }
   
   return sErrorMsg;
}

function compareDates(sDate1, sDate1Name, sMethod, sDate2, sDate2Name)
{
   var sErrorMsg = "";
   var sMethodName = "";
   switch(sMethod)
   {
      case "==" : sMethodName = sErrCompareDatesSameAs; break;
      case "<=" : sMethodName = sErrCompareDatesLessOrEqual; break;
      case ">=" : sMethodName = sErrCompareDatesMoreOrEqual; break;
      case "<"  : sMethodName = sErrCompareDatesLessThan; break;
      case ">"  : sMethodName = sErrCompareDatesMoreThan; break;
      case "!=" : sMethodName = sErrCompareDatesDifferent; break;
   }

   sErrorMsg = "- " + sDate1Name + sErrCompareDatesIsNot + sMethodName + " " + sDate2Name + ".\n";

   if(sDate1.length == 10 && sDate2.length == 10)
   {
      sDate1 = "" + sDate1.substr(0,4) + sDate1.substr(5,2) + sDate1.substr(8,2);
      sDate2 = "" + sDate2.substr(0,4) + sDate2.substr(5,2) + sDate2.substr(8,2);
      
      if(eval(sDate1 + sMethod + sDate2))
         sErrorMsg = "";
   }
   else
      sErrorMsg = "";

   return sErrorMsg;
}

function formatTime(sTime)
{
   var sFormated = "";
   var sColon    = ":";
   var iHour     = null;
   var iMinutes  = null;

   if(validateTime(sTime, "Tid", true) == "" && sTime.length > 0)
   {
      if(sTime.length == 1) // H
      {
         iHour     = sTime;
         sFormated = "0" + iHour + sColon + "00";
      }
      else if(sTime.length == 2) // HH
      {
         iHour     = sTime.substr(0,2);
         sFormated = iHour + sColon + "00";
      }
      else if(sTime.length == 4) // H:MM or H.MM
      {
         iHour     = sTime.substr(0,1);
         iMinutes  = sTime.substr(2,2);
         sFormated = "0" + iHour + sColon + iMinutes;
      }
      else if(sTime.length == 5) // HH:MM or HH.MM
      {
         iHour     = sTime.substr(0,2);
         iMinutes  = sTime.substr(3,2);
         sFormated = iHour + sColon + iMinutes;
      }
   }
   else if(sTime.length > 0)
      sFormated = sErrFormat;

   return sFormated;
}

function validateTime(sTime, sName, bAllowEmpty)
{
   var sErrorMsg = "";
   var sColon    = ":";
   var iHour     = "";
   var iMinutes  = "";

   sTime = trim(sTime);

   // validateNumber(sNumber, sName, bAllowEmpty, iMinValue, iMaxValue)
   if(!bAllowEmpty && sTime.length == 0) // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sTime.length > 0) // else check time
   {
      if(sTime.length == 1 || sTime.length == 2) // H or HH
         iHour = sTime;
      else if(sTime.length == 4 && 
             (sTime.substr(1,1) == ":" || sTime.substr(1,1) == ".")) // H:MM or H.MM
      {
         iHour    = sTime.substr(0,1);
         iMinutes = sTime.substr(2,2);
         sColon   = sTime.substr(1,1);
      }
      else if(sTime.length == 5) // HH:MM or HH.MM
      {
         iHour    = sTime.substr(0,2);
         iMinutes = sTime.substr(3,2);
         sColon   = sTime.substr(2,1);
      }
      else
         sErrorMsg = "- " + sName + sErrValidateTime;

      if(sErrorMsg == "")
      {
         if(validateNumber(iHour, "Hour", true, 0, 23) != "" ||
            validateNumber(iMinutes, "Minutes", true, 0, 59) != "" ||
            (sColon != ":" && sColon != "."))
            sErrorMsg = "- " + sName + sErrValidateTime;
      }
   }

   return sErrorMsg;
}

function formatPersNr(sPersNr, iReturnFormat)
{
   // Format          Length  iReturnFormat
   // =====================================
   // YYYYMMDD-NNNN   13      1
   // YYYYMMDDNNNN    12      2
   // YYMMDD-NNNN     11      3
   // YYMMDDNNNN      10      4

   var sFormated  = "";
   sPersNr        = trim(sPersNr);

   if(validatePersNr(sPersNr, "PersNr", true) == "" && sPersNr.length > 0)
   {
      if(sPersNr.length == 13 || sPersNr.length == 12) // Format to YYYYMMDDNNNN
      {
         var sCheckNr = (sPersNr.length == 13) ? sPersNr.slice(9) : sPersNr.slice(8);
         sPersNr      = sPersNr.slice(0,8) + sCheckNr;
      }
      else if(sPersNr.length == 11 || sPersNr.length == 10) // Format to YYYYMMDDNNNN
      {
         var sCheckNr = (sPersNr.length == 11) ? sPersNr.slice(7) : sPersNr.slice(6);
         var sYearNow = new String(new Date().getFullYear()).slice(2,4);
         var sYear    = (sPersNr.slice(0,2) < sYearNow) ? "20" : "19";
         sPersNr      = sYear + sPersNr.slice(0,6) + sCheckNr;
      }

      if(iReturnFormat == 1)
         sFormated = sPersNr.slice(0,8) + "-" + sPersNr.slice(8);
      else if(iReturnFormat == 2)
         sFormated = sPersNr;
      else if(iReturnFormat == 3)
         sFormated = sPersNr.slice(2,8) + "-" + sPersNr.slice(8);
      else if(iReturnFormat == 3)
         sFormated = sPersNr.slice(2,8) + sPersNr.slice(8);
   }
   else if(sPersNr.length > 0)
      sFormated = sErrFormat;
   
   return sFormated;
}

function validatePersNr(sPersNr, sName, bAllowEmpty)
{
   // Valid format    Length
   // ======================
   // YYYYMMDD-NNNN   13
   // YYYYMMDDNNNN    12
   // YYMMDD-NNNN     11
   // YYMMDDNNNN      10

   var sErrorMsg  = "";
   var bValidDate = false;
   sPersNr = trim(sPersNr);

   if(!bAllowEmpty && sPersNr == "") // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sPersNr != "") // Check persnr
   {
      if((sPersNr.length == 13 || sPersNr.length == 12) &&
          validateDate(sPersNr.slice(0,8), "PersNr", new Array("YYYYMMDD"), true) == "")
      {
         var sCheckNr = (sPersNr.length == 13) ? sPersNr.slice(9) : sPersNr.slice(8);
         sPersNr      = sPersNr.slice(2,8) + sCheckNr;
         bValidDate   = true;
      }
      else if((sPersNr.length == 11 || sPersNr.length == 10) &&
               validateDate(sPersNr.slice(0,6), "PersNr", new Array("YYMMDD"), true) == "")
      {
         var sCheckNr = (sPersNr.length == 11) ? sPersNr.slice(7) : sPersNr.slice(6);
         sPersNr      = sPersNr.slice(0,6) + sCheckNr;
         bValidDate   = true;
      }
      else // Met none of the requirements above - invalid
      {
         sErrorMsg = "- " + sName + sErrValidatePersNr;
      }

      if(bValidDate) // If datecheck above was successful, this check was made by Christian Halvarsson
      {
	      var sSumma = 0;
	      var sTempNr;
	      var iRest;

	      // Kollar kontrollsiffra (fyra sista), använder YYMMDDNNNN
	      for(i=0;i<=8;i++)
	      {
	      	if(i % 2 == 0)
	      	{
	      		//jämnt index
	      		sTempNr = parseInt(sPersNr.charAt(i)) * 2;

	      		//om tvåsiffrigt addera ihop båda siffrorna
	      		if(sTempNr >= 10)
	      		{
	      			iRest = sTempNr % 10;
	      			sTempNr = 1 + iRest;
	      		}
	      	}
	      	else
	      	{
	      		//Ojämnt index
	      		sTempNr = parseInt(sPersNr.charAt(i)) * 1;
	      	}

	      	sSumma += sTempNr;
	      }
	      sSumma += parseInt(sPersNr.charAt(9));

	      //om int jämt tiotal så stämmer ej kontrollsiffran.
	      if(sSumma %10 != 0)
            sErrorMsg = "- " + sName + sErrValidatePersNr;
      }
   }

	return sErrorMsg;
}

function formatRegNr(sRegNr, iReturnFormat)
{
   // Format     Length  iReturnFormat
   // ==================================
   // ABC123     6       1
   // ABC 123    7       2

   var sFormated = "";
   sRegNr = trim(sRegNr);
   
   if(validateRegNr(sRegNr, "RegNr", true) == "" && sRegNr.length > 0)
   {
      // Format to ABC123
      if(sRegNr.length == 7)
         sFormated = sRegNr.slice(0,3).toUpperCase() + sRegNr.slice(4,7);
      else if(sRegNr.length == 6)
         sFormated = sRegNr.slice(0,3).toUpperCase() + sRegNr.slice(3,6);
      
      if(iReturnFormat == 2) // Reformat to ABC 123
         sFormated = sFormated.slice(0,3) + " " + sFormated.slice(3,6);
   }
   else if(sRegNr.length > 0)
      sFormated = sErrFormat;
   
   return sFormated;
}

function validateRegNr(sRegNr, sName, bAllowEmpty)
{
   // Valid format    Length
   // ======================
   // ABC123          6
   // ABC 123         7

   var sErrorMsg = "";
   var objRegExp;

   sRegNr = trim(sRegNr);

   if(!bAllowEmpty && sRegNr.length == 0) // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sRegNr.length > 0) // else check regnr
   {
      if(sRegNr.length == 6)
      {
         objRegExp = new RegExp("[A-Za-z]{3}[0-9]{3}");
         if(sRegNr.search(objRegExp) == -1) // If invalid
            sErrorMsg = "- " + sName + sErrValidateRegNr;
      }
      else if(sRegNr.length == 7)
      {
         objRegExp = new RegExp("[A-Za-z]{3} [0-9]{3}");
         if(sRegNr.search(objRegExp) == -1) // If invalid
            sErrorMsg = "- " + sName + sErrValidateRegNr;
      }
      else // If another length
         sErrorMsg = "- " + sName + sErrValidateRegNr;
   }

   return sErrorMsg;
}

function formatZipcode(sZipcode, iReturnFormat)
{
   // Format     Length  iReturnFormat
   // ==================================
   // 12345      5       1
   // 123 45     6       2

   var sFormated = "";
   sZipcode = trim(sZipcode);
   
   if(validateZipcode(sZipcode, "Zipcode", true) == "" && sZipcode.length > 0)
   {
      // Format to 123 45
      if(sZipcode.length == 5 && iReturnFormat == 2)
         sFormated = sZipcode.slice(0,3) + " " + sZipcode.slice(3,5);
      else
         sFormated = sZipcode;
   }
   else if(sZipcode.length > 0)
      sFormated = sErrFormat;
   
   return sFormated;
}

function validateZipcode(sZipcode, sName, bAllowEmpty)
{
   // Valid format    Length
   // ======================
   // 12345           5
   // 123 45          6

   var sErrorMsg = "";
   var objRegExp;

   sZipcode = trim(sZipcode);

   if(!bAllowEmpty && sZipcode.length == 0) // If empty
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sZipcode.length > 0) // else check zipcode
   {
      if(sZipcode.length == 5) // 12345
      {
         objRegExp = new RegExp("[0-9]{5}");
         if(sZipcode.search(objRegExp) == -1) // If invalid
            sErrorMsg = "- " + sName + sErrValidateZipcode;
      }
      else if(sZipcode.length == 6) // 123 45
      {
         objRegExp = new RegExp("[0-9]{3} [0-9]{2}");
         if(sZipcode.search(objRegExp) == -1) // If invalid
            sErrorMsg = "- " + sName + sErrValidateZipcode;
      }
      else // If another length
         sErrorMsg = "- " + sName + sErrValidateZipcode;
   }

   return sErrorMsg;
}

function validateEmail(sEmail, sName, bAllowEmpty)
{
   /* Written by Paolo Wales (paolo@taize.fr) starting on a basis by Samrat Sen.

   Notes:
   
   'exclude' checks 5 conditions:
   
   a) characters that should not be in the address
   b) characters that should not be at the start
   c) & d) characters that shouldn't be together
   e) there's not more than one '@'
   
   'check' checks there's at least one '@', later followed by at least one '.'
   'checkend' checks the address ends with a period followed by 2 or 3 alpha characters.
   N.B. Javascript 1.2 only works with version 4 browsers and higher. */

   var exclude   =/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
   var check     =/@[\w\-]+\./;
   var checkend  =/\.[a-zA-Z]{2,3}$/;   
   var sErrorMsg = "";
   sEmail = trim(sEmail);
 
   if(!bAllowEmpty && sEmail == "")
   {
      sErrorMsg = "- " + sName + sErrIsEmpty;
   }
   else if(sEmail != "")
   {
      if(((sEmail.search(exclude) != -1) || 
          (sEmail.search(check)) == -1) || 
          (sEmail.search(checkend) == -1))
      {
         sErrorMsg = "- " + sName + sErrValidateEmail;
      }
   }

   return sErrorMsg;
}

function validateSelect(oFormObj, sName)
{
   var sErrorMsg = "";

   if(oFormObj.multiple)
   {
      sErrorMsg = "- " + sName + sErrNotChoosen;
      for(var i=0; i<oFormObj.options.length; i++)
      {
         if(oFormObj.options[i].selected)
         {
            sErrorMsg = "";
            break;
         }
      }
   }
   else
   {
      if(oFormObj.options[oFormObj.selectedIndex].value == "0" ||
         oFormObj.options[oFormObj.selectedIndex].value == "")
      {
         sErrorMsg = "- " + sName + sErrNotChoosen;
      }
   }
   return sErrorMsg;
}

function validateRadio(oFormObj, sName)
{
   var sErrorMsg = "- " + sName + sErrNotChoosen;
   if(oFormObj.length == null && oFormObj.checked)
      sErrorMsg = "";
   else
   {
  	   for(i=0;i<oFormObj.length;i++)
	   {
         if(oFormObj[i].checked)
         {
            sErrorMsg = "";
            break;
         }
	   }
   }
   return sErrorMsg;
}

function validateCheckbox(oFormObj, sName)
{
   var sErrorMsg = "";
  
	if(!oFormObj.checked)
		sErrorMsg = "- " + sName + sErrNotChoosen;

   return sErrorMsg;
}

function ltrim(sValue)
{
   while(1)
   {
      if(sValue.substring(0, 1) != " ")
         break;
      sValue = sValue.substring(1, sValue.length);
   }
   return sValue;
}

function rtrim(sValue)
{
   while(1)
   {
      if(sValue.substring(sValue.length - 1, sValue.length) != " ")
         break;
      sValue = sValue.substring(0, sValue.length - 1);
   }
   return sValue;
}

function trim(sValue)
{
   var sTemp = ltrim(sValue);
   return rtrim(sTemp);
}


// validation.js

// JavaScript Document
var arrValidDates = new Array("YY/DD/MM","YYMMDD","YYYYMMDD","YYYY-MM-DD");
var iFormatDate  = 0;

function validateOrder() {
	var sErrMsg = "";
	var objFrmMain = document.frmOrder;
	
	var required = new Array();
	
	required[0] = new Array('name', 'text', 'Name');
	required[1] = new Array('email', 'email', 'Email');
	required[2] = new Array('address', 'address', 'Address');
	required[3] = new Array('pass', 'text', 'Password');
	required[4] = new Array('pass2', 'text', 'Confirm password');
	required[5] = new Array('postcode', 'text', 'Post Code');
	required[6] = new Array('tel', 'text', 'Telephone');

	for (i = 0; i < objFrmMain.length; i++) {
		for (x in required) {
			if (required[x][0] == objFrmMain.elements[i].name) {
				var child = document.getElementById(objFrmMain.elements[i].name + '_error');
				if (child != null) {
					child.parentNode.removeChild(child);
					objFrmMain.elements[i].style.borderColor = '#B769B7';
				}
				if (required[x][1] == 'email') {
					sErrMsg = validateEmail(objFrmMain.elements[i].value, required[x][2], false);
				} else {
					sErrMsg = validateText(objFrmMain.elements[i].value, required[x][2], false);
				}
				if (sErrMsg != '') {
					var errors = document.createElement('p');
					errors.setAttribute('id', objFrmMain.elements[i].name + '_error');
					errors.style.color = '#FF0000';
					errors.style.paddingTop = '2px';
					errors.style.paddingBottom = '0px';
					errors.style.marginLeft = '0px';
					objFrmMain.elements[i].parentNode.appendChild(errors);
					errors.innerHTML = sErrMsg.substr(2);
					objFrmMain.elements[i].style.borderColor = '#FF0000';
				}
			}
		}
	}
	
	var pass_error = document.getElementById('password_error');
	if (pass_error != null) {
		pass_error.parentNode.removeChild(pass_error);
	}
	
	if (objFrmMain.pass.value != objFrmMain.pass2.value) {
		if (document.getElementById('pass_error') == null && document.getElementById('pass2_error') == null) {
			var pass = document.getElementById('pass2');
			var error = document.createElement('p');
			error.setAttribute('id', 'password_error');
			error.style.color = '#FF0000';
			error.style.paddingTop = '2px';
			error.style.paddingBottom = '0px';
			error.style.marginLeft = '0px';
			pass.parentNode.appendChild(error);
			sErrMsg = 'Passwords do not match';
			error.innerHTML = sErrMsg;
		}
	}
		
	if (sErrMsg != "") {
		return false;
	} else {
		return true;
	}
}

// dreamweaver.js

/***************** AJAX Stuffage ****************************/
var http = createRequestObject();
var globObj;

function createRequestObject() {
	var requestObj;
	var browser = navigator.appName;
	if (browser == 'Microsoft Internet Explorer') {
		requestObj = new ActiveXObject('Microsoft.XMLHTTP');
	} else {
		requestObj = new XMLHttpRequest();
	}
	return requestObj;
}

function getAddress(obj) {
	globObj = obj.id;
	if (obj.value != '') {
		var url = 'get_address.php?zip=' + obj.value + '&obj=' + globObj;
		http.open('get', url);
		http.onreadystatechange = handleResponse;
		http.send(null);
	} else {
		removeDropDown();
	}
}

function handleResponse() {
	if (http.readyState == 4) {
		var address = document.getElementById('addresses');
		if (address == null) {
			var dropDown = document.createElement('div');
			dropDown.setAttribute('id', 'addresses');
			dropDown.style.position = 'absolute';
			dropDown.style.backgroundColor = '#D7DBDF';
			dropDown.style.border = '1px solid #000000';
			dropDown.style.padding = '5px';
			dropDown.style.maxHeight = '100px';
			dropDown.style.width = '173px';
			dropDown.style.overflow = 'auto';
			document.getElementById('cell_' + globObj).appendChild(dropDown);
			dropDown.innerHTML = http.responseText;
		} else {
			address.innerHTML = http.responseText;
		}
	}
}

function fillFields(zip, county, state, zipField, countyField, stateField) {
	document.getElementById(zipField).value = zip;
	document.getElementById(countyField).value = county;
	document.getElementById(stateField).value = state;
	removeDropDown();
}

function removeDropDown() {
	address = document.getElementById('addresses');
	if (address != null) {
		document.getElementById('cell_' + globObj).removeChild(address);	
	}
}
/***********************************************************/

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_setTextOfLayer(objName,x,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}

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

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

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

function rollOver(buttonName, buttonImg, bannerImg) {
	document.banner.src = bannerImg;
	document[buttonName].src = buttonImg;
}
function submitRollover(objTarget, targetImg) {
	document.getElementById(objTarget).style.backgroundImage = 'url(/media/images/'+targetImg+')';
	return true;
}

// Mforms JS
function setChildForm(stat) {
	var optional = new Array();
	optional[0] = 'f16';
	optional[1] = 'f241';
	optional[2] = 'f242';
	optional[3] = 'f243';
	optional[4] = 'f244';
	optional[5] = 'f245';
	optional[6] = 'f27';
	optional[7] = 'f40';
	optional[8] = 'f246';
	optional[9] = 'f247';
	optional[10] = 'f248';
	optional[11] = 'f249';
	optional[12] = 'f250';
	optional[13] = 'f244';
	optional[14] = 'f251';
	optional[15] = 'f252';
	optional[16] = 'f253';
	optional[17] = 'f41';
	optional[18] = 'f42';
	optional[19] = 'f44';
	optional[20] = 'f314';
	optional[21] = 'f254';
	optional[22] = 'f255';
	optional[23] = 'f256';
	optional[24] = 'f257';
	optional[25] = 'f258';
	optional[26] = 'f259';
	optional[27] = 'f260';
	
	
	for (var i = 0; i < document.forms[0].length; i++) {
		if (document.forms[0].elements[i].name == stat) {
			if (document.forms[0].elements[i].checked == true) {
				var state = document.forms[0].elements[i].value;
			}
		}
	}
	if (state == 0) {
		var style = 'none';
	} else {
		var style = 'table-row';	
	}
	for (var a = 0; a < optional.length; a++) {
		document.getElementById('row_' + optional[a]).style.display = style;
	}
}

function setMedSuppForm(stat) {
	var tableRows = new Array();
	tableRows[0] = 'f68';
	tableRows[1] = 'f72';
	tableRows[2] = 'f73';
	tableRows[3] = 'f75';
	tableRows[4] = 'f80';
	tableRows[5] = 'f81';
	tableRows[6] = 'f82';
	tableRows[7] = 'f83';

	for (var i = 0; i < tableRows.length; i++) {
		document.getElementById('row_' + tableRows[i]).style.display = 'none';
	}
	
	var optional =  new Array();
	for (x = 0; x < document.forms[0].length; x++) { 
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				if (document.forms[0].elements[x].value == 1) {
					optional[0] = 'f68';
					optional[1] = 'f72';
					optional[2] = 'f73';
					optional[3] = 'f75';
				    optional[4] = 'f80';
					optional[5] = 'f81';
				}
				if (document.forms[0].elements[x].value == 2) {
					optional[0] = 'f82';
				}
				if (document.forms[0].elements[x].value == 3) {
					optional[0] = 'f83';
				}
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = 'table-row';
	}
}
/* confirm separate property */
function setSepPropForm(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';

	var optional =  new Array();
	optional[0] = 'f50';
	optional[1] = 'f53';
	optional[2] = 'f54';
	optional[3] = 'f270';
	optional[4] = 'f271';
	optional[5] = 'f272';
	optional[6] = 'f273';
	optional[7] = 'f55';
	optional[8] = 'f56';
	optional[9] = 'f57';
	optional[10] = 'f58';
	optional[11] = 'f59';
	optional[12] = 'f60';
	optional[13] = 'f61';
	optional[14] = 'f62';
	optional[15] = 'f63';
	optional[16] = 'f64';
	optional[17] = 'f65';
	optional[18] = 'f66';
	optional[19] = 'f67';
	optional[20] = 'f69';
	optional[21] = 'f70';
	optional[22] = 'f71';
	optional[23] = 'f286';
	optional[24] = 'f287';
	optional[25] = 'f288';
	optional[26] = 'f289';
	optional[27] = 'f298';
	optional[28] = 'f299';
	
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setSepHouse(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f54';
	optional[1] = 'f270';
	optional[2] = 'f271';
	optional[3] = 'f272';
	optional[4] = 'f273';
	optional[5] = 'f298';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
function setSepLand(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f56';
	optional[1] = 'f286';
	optional[2] = 'f287';
	optional[3] = 'f288';
	optional[4] = 'f289';
	optional[5] = 'f299';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
function setSepMotor(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f59';
	optional[1] = 'f60';
	optional[2] = 'f61';
	optional[3] = 'f62';
	optional[4] = 'f58';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
/* form 18 - Property & Debt Division (Part 1: Husband Details) */

function setPropDebtForm1(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f159';
	optional[1] = 'f276';
	optional[2] = 'f277';
	optional[3] = 'f279';
	optional[4] = 'f278';
	optional[5] = 'f162';
	optional[6] = 'f163';
	optional[7] = 'f300';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setPropDebtForm2(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';	
	
	var optional =  new Array();
	optional[0] = 'f161';
	optional[1] = 'f290';
	optional[2] = 'f291';
	optional[3] = 'f292';
	optional[4] = 'f293';
	optional[5] = 'f162';
	optional[6] = 'f163';
	optional[7] = 'f301';

	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setPropDebtForm3(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';	
	
	var optional =  new Array();
	optional[0] = 'f165';
	optional[1] = 'f201';
	optional[2] = 'f202';
	optional[3] = 'f203';
	optional[4] = 'f204';
	optional[5] = 'f166';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

/* form 19  - Property & Debt Division (Part 2: Wife Details) */

function setPropDebtForm7(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f180';
	optional[1] = 'f282';
	optional[2] = 'f283';
	optional[3] = 'f284';
	optional[4] = 'f285';
	optional[5] = 'f304';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setPropDebtForm8(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f183';
	optional[1] = 'f294';
	optional[2] = 'f295';
	optional[3] = 'f296';
	optional[4] = 'f297';
	optional[5] = 'f305';
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setPropDebtForm9(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f205';
	optional[1] = 'f187';
	optional[2] = 'f188';
	optional[3] = 'f189';
	optional[4] = 'f190';
	optional[5] = 'f191';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

/* form 2 - petitioner details */

function setPetMail(stat) {
	var state = new Array();
	state[0] = 'table-row';
	state[1] = 'none';
	
	var optional =  new Array();
	optional[0] = 'f269';
	optional[1] = 'f274';
	optional[2] = 'f275';
	optional[3] = 'f280';
	optional[4] = 'f281';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
function setPetDrive(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f21';
	optional[1] = 'f308';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setPetWork(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f23';
	optional[1] = 'f216';
	optional[2] = 'f217';
	optional[3] = 'f218';
	optional[4] = 'f219';
	optional[5] = 'f220';
	optional[6] = 'f24';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

/* form 3 - respondent details */

function setResMail(stat) {
	var state = new Array();
	state[0] = 'table-row';
	state[1] = 'none';
	
	var optional =  new Array();
	optional[0] = 'f226';
	optional[1] = 'f227';
	optional[2] = 'f228';
	optional[3] = 'f229';
	optional[4] = 'f230';

	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
function setResDrive(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f232';
	optional[1] = 'f309';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
function setResWork(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
	
	var optional =  new Array();
	optional[0] = 'f234';
	optional[1] = 'f235';
	optional[2] = 'f236';
	optional[3] = 'f237';
	optional[4] = 'f238';
	optional[5] = 'f239';
	optional[6] = 'f240';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

/* form 4 - child details */
function setChildMail(stat) {
	var state = new Array();
	state[0] = 'table-row';
	state[1] = 'none';
	
	var optional =  new Array();
	optional[0] = 'f246';
	optional[1] = 'f247';
	optional[2] = 'f248';
	optional[3] = 'f249';
	optional[4] = 'f250';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setChildDrive(stat){
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
		
	var optional =  new Array();
	optional[0] = 'f314';
	optional[1] = 'f252';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

function setChildEmploy(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
		
	var optional =  new Array();
	optional[0] = 'f254';
	optional[1] = 'f255';
	optional[2] = 'f256';
	optional[3] = 'f257';
	optional[4] = 'f258';
	optional[5] = 'f259';
	optional[6] = 'f260';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

/* protective order statement */
function setProcOrder(stat) {
	var state = new Array();
	state[0] = 'none';
	state[1] = 'table-row';
		
	var optional =  new Array();
	optional[0] = 'f261';
	optional[1] = 'f262';
	optional[2] = 'f263';
	optional[3] = 'f264';
	
	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}

/* Exhibit Possession and Access Order (Visitation) */
function setVisitationTime(stat) {
	var state = new Array();
	state[0] = 'table-row';
	state[1] = 'none';	
	
	var optional =  new Array();
	optional[0] = 'f312';
	optional[1] = 'f313';

	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
function setVisitationTime2(stat) {
	var state = new Array();
	state[0] = 'table-row';
	state[1] = 'none';	
	
	var optional =  new Array();
	optional[0] = 'f315';
	optional[1] = 'f316';

	for (x = 0; x < document.forms[0].length; x++) { 		
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				var a = document.forms[0].elements[x].value;
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state[a];
	}
}
/* child support */
function setChildSupp(stat){
	var tableRows = new Array();
	tableRows[0] = 'f141';
	tableRows[1] = 'f142';
	tableRows[2] = 'f143';
	tableRows[3] = 'f144';

	for (var i = 0; i < tableRows.length; i++) {
		document.getElementById('row_' + tableRows[i]).style.display = 'none';
	}
	
	var optional =  new Array();
	for (x = 0; x < document.forms[0].length; x++) { 
		if (document.forms[0].elements[x].name == stat) {
			if (document.forms[0].elements[x].checked) {
				if (document.forms[0].elements[x].value == 0) {
					optional[0] = 'f141';
				}
				if (document.forms[0].elements[x].value == 1) {
					optional[0] = 'f141';
					optional[1] = 'f142';
					optional[2] = 'f143';
				}
				if (document.forms[0].elements[x].value == 2) {
					optional[0] = 'f144';
				}
			}
		}
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = 'table-row';
	}
}

// clock.js

function clock() {
	var time = new Date();
	var hours = time.getHours();
	var minutes = time.getMinutes();
	var seconds = time.getSeconds();
	if (minutes <= 9) minutes = "0" + minutes;
	if (seconds <= 9) seconds = "0" + seconds;
	dispTime = hours + ":" + minutes + ":" + seconds;
	document.getElementById("pendule").innerHTML = dispTime;
	setTimeout("clock()", 1000);
}

// caz.js

/* to be combined into dreamweaver js later */
function setPetMail(stat) {
	var optional =  new Array();
	optional[0] = 'f269';
	optional[1] = 'f274';
	optional[2] = 'f275';
	optional[3] = 'f280';
	optional[4] = 'f281';
	
	if (stat.value == 0 || typeof stat.value == 'undefined') {
		var state = 'table-row';
	} else {
		var state = 'none';
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state;
	}
}
function setPetWork(stat) {
	var optional =  new Array();
	optional[0] = 'f23';
	optional[1] = 'f216';
	optional[2] = 'f217';
	optional[3] = 'f218';
	optional[4] = 'f219';
	optional[5] = 'f220';
	optional[6] = 'f24';
	
	if (stat.value == 1) {
		var state = 'table-row';
	} else {
		var state = 'none';
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state;
	}
}
function setResMail(stat) {
	var optional =  new Array();
	optional[0] = 'f226';
	optional[1] = 'f227';
	optional[2] = 'f228';
	optional[3] = 'f229';
	optional[4] = 'f230';

	if (stat.value == 0 || typeof stat.value == 'undefined') {
		var state = 'table-row';
	} else {
		var state = 'none';
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state;
	}
}
function setResWork(stat) {
	
	alert(stat.value);
	
	var optional =  new Array();
	optional[0] = 'f234';
	optional[1] = 'f235';
	optional[2] = 'f236';
	optional[3] = 'f237';
	optional[4] = 'f238';
	optional[5] = 'f239';
	optional[6] = 'f240';
	
	if (stat.value == 1) {
		var state = 'table-row';
	} else {
		var state = 'none';
	}
	for (var i = 0; i < optional.length; i++) {
		document.getElementById('row_' + optional[i]).style.display = state;
	}
}

// timeline hover

/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* IMPORTANT: Put script after tooltip div or 
	 put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;

var origWidth, origHeight;

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 160;
var offX= 20;	// how far from mouse to show tip
var offY= 12; 
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "#000000";
var tipBgColor= "#DDECFF"; 
var tipBorderColor= "#000080";
var tipBorderWidth= 3;
var tipBorderStyle= "ridge";
var tipPadding= 4;

// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing: 
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip

////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var i=0; i<messages.length; i++) {
  	theImgs[i] = new Image();
		theImgs[i].src = messages[i][0];
  }
}

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		document.onmousemove = trackMouse;
	}
}

window.onload = initTip;

/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,num) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	// set colors if included in messages array
	if (messages[num][2])	var curBgColor = messages[num][2];
	else curBgColor = tipBgColor;
	if (messages[num][3])	var curFontColor = messages[num][3];
	else curFontColor = tipFontColor;
	if (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
		tipcss.backgroundColor = curBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
	mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
		mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
	var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = mouseX-(tpWd+offX)+"px";
	else tipcss.left = mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = winHt-(tpHt+offY)+"px";
	else tipcss.top = mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}

document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')