
function JStoreLocation()
{
  //private member variables
  var m_baseLocation;
  var m_streetAddress;
  var m_phoneNumber;
  var m_faxNumber;
  var m_storeNumber;
  var m_miles;
  var m_strWebsite;
  var m_scheduleAppts;
  var m_specialOffers;
  var m_transService;
  var m_completeCarCare;
  
  //public methods
  this.SetBaseLocation = SetBaseLocation;
  this.BaseLocation = GetBaseLocation;
  this.City = GetCity;
  this.State = GetState;
  this.ZipCode = GetZipCode;
  this.SetStreetAddress = SetStreetAddress;
  this.StreetAddress = GetStreetAddress;
  this.SetPhoneNumber = SetPhoneNumber;
  this.PhoneNumber = GetPhoneNumber;
  this.SetFaxNumber = SetFaxNumber;
  this.FaxNumber = GetFaxNumber;
  this.SetStoreNumber = SetStoreNumber;
  this.StoreNumber = GetStoreNumber;
  this.SetMiles = SetMiles;
  this.Miles = GetMiles;
  this.SetWebsite = SetWebsite;
  this.Website = GetWebsite;
  this.SetScheduleOnlineAppointments = SetScheduleOnlineAppointments;
  this.ScheduleOnlineAppointments = GetScheduleOnlineAppointments;
  this.SetSpecialOnlineOffers = SetSpecialOnlineOffers;
  this.SpecialOnlineOffers = GetSpecialOnlineOffers;
  this.SetTransmissionService = SetTransmissionService;
  this.TransmissionService = GetTransmissionService;
  this.SetCompleteCarCare = SetCompleteCarCare;
  this.CompleteCarCare = GetCompleteCarCare;
  this.HasWebsite = HasWebsite;
  this.HasWebpage = HasWebpage;
  this.HasWebAddress = HasWebAddress;
  this.GetWebAddressType = GetWebAddressType;
  this.GetRequestString = GetRequestString;
  this.ValidateStoreNumber = ValidateStoreNumber;
  this.ValidateWebsite = ValidateWebsite;
  this.ValidateStreetAddress = ValidateStreetAddress;
  this.ValidatePhoneNumber = ValidatePhoneNumber;
  
  m_miles = 0;
  m_baseLocation = null;
  m_streetAddress = "";
  m_phoneNumber = "";
  m_faxNumber = "";
  m_storeNumber = "";
  m_strWebsite = "";
  m_scheduleAppts = false;
  m_specialOffers = false;
  m_transService = false;
  m_completeCarCare = false;
  
  
  function SetBaseLocation( location )
  {
    m_baseLocation = location;
  }
  
  function GetBaseLocation()
  {
    return m_baseLocation;
  }
  
  function GetCity()
  {
    return GetBaseLocation().City();
  }
  
  function GetState()
  {
    return GetBaseLocation().State();
  }
  
  function GetZipCode()
  {
    return GetBaseLocation().ZipCode();
  }
  
  function SetStreetAddress( address )
  {
    m_streetAddress = address;
  }
  
  function GetStreetAddress()
  {
    return m_streetAddress;
  }
  
  function SetPhoneNumber( phone )
  {
    m_phoneNumber = phone;
  }
  
  function GetPhoneNumber()
  {
    return m_phoneNumber;
  }
  
  function SetFaxNumber( fax )
  {
    m_faxNumber = fax;
  }
  
  function GetFaxNumber()
  {
    return m_faxNumber;
  }
  
  function SetStoreNumber( storeNum )
  {
    m_storeNumber = storeNum;
  }
  
  function GetStoreNumber()
  {
    return m_storeNumber;
  }
  
  function SetMiles( miles )
  {
    m_miles = miles;
  }
  
  function GetMiles()
  {
    return m_miles;
  }
  
  function SetWebsite( strWebsite )
  {
    m_strWebsite = strWebsite;
  }
  
  function GetWebsite()
  {
    var site = m_strWebsite;
    //if ( site != "" )
    //  site = "http://www." + site;
    return site;
  }
  
  function SetScheduleOnlineAppointments( bVal )
  {
    m_scheduleAppts = bVal;
  }
  
  function GetScheduleOnlineAppointments()
  {
    return m_scheduleAppts;
  }
  
  function SetSpecialOnlineOffers( bVal )
  {
    m_specialOffers = bVal;
  }
  
  function GetSpecialOnlineOffers()
  {
    return m_specialOffers;
  }
  
  function SetTransmissionService( bVal )
  {
    m_transService = bVal;
  }
  
  function GetTransmissionService()
  {
    return m_transService;
  }
  
  function SetCompleteCarCare( bVal )
  {
    m_completeCarCare = bVal;
  }
  
  function GetCompleteCarCare()
  {
    return m_completeCarCare;
  }
  
  function HasWebsite()
  {
    return this.HasWebAddress() && !this.HasWebpage();
  }
  
  function HasWebpage()
  {
    return this.Website().indexOf( "?" ) != -1;
  }
  
  function HasWebAddress()
  {
    return this.Website() != "";
  }
  
  function GetWebAddressType()
  {
    if ( this.HasWebsite() )
      return "Website";
    else if ( this.HasWebpage() )
      return "Webpage";
    else
      return "";
  }
  
  function GetRequestString()
  {
    var strRequest = "";
    strRequest += GetBaseLocation().GetRequestString();
    strRequest += "&storenumber=" + GetStoreNumber();
    strRequest += "&streetaddress=" + GetStreetAddress();
    strRequest += "&phonenumber=" + GetPhoneNumber();
    strRequest += "&faxnumber=" + GetFaxNumber();
    strRequest += "&website=" + GetWebsite();
    strRequest += "&onlineappts=" + GetScheduleOnlineAppointments();
    strRequest += "&onlineoffers=" + GetSpecialOnlineOffers();
    strRequest += "&transservice=" + GetTransmissionService();
    strRequest += "&completecarcare=" + GetCompleteCarCare();
    return strRequest;
  }
  
  function ValidateStoreNumber()
  {
    var num = GetStoreNumber();
    if ( isNaN( num ) )
      return false;
    
    if ( num < 0 || num > 99999 )
      return false;
      
    return true;
  }
  
  function ValidateWebsite()
  {
    var website = GetWebsite();
    if ( website.substr(0,4) != "http" && website.length > 0 )
      return false;
      
    return true;
  }
  
  function ValidateStreetAddress()
  {
    var address = GetStreetAddress();
    return true;
  }
  
  function ValidatePhoneNumber()
  {
    var phone = GetPhoneNumber();
    return true;
  }
}