/* Global "constants"
*/
var         c_GALLERY = "gallery";
var         c_SUBGALLERY = "subgallery";
var         c_LINKNAME = "linkname";
var         c_SUBTITLE = "subtitle";
var         c_SELECTEDPHOTO = "selectedphoto";
var         c_BLANK = "blank";
var         c_LINKSUBMENU = "linksubmenu";
var         c_CLASSICROADRACING = "classicroadracing";
var         c_RACINGTEAM = "racingteam";
var         c_MCCLUBS = "MCclubs";
var         c_PHOTOGRAPHER = "photographer";


/* This function retrieves the file name without extention from the URL
*/
function retrieveFileName(FilePathName)
{
  var       m_sFilePathName;
  var       m_sFileName;
  var       m_iPointPos;
  var       m_iLastBackSlashPos;
  
  m_sFilePathName = location.pathname;
  m_iPointPos = m_sFilePathName.lastIndexOf(".");
  m_iLastBackSlashPos = m_sFilePathName.lastIndexOf("/");
  m_sFileName = m_sFilePathName.substring(m_iLastBackSlashPos + 1, m_iPointPos);
  
  if (m_sFileName == "/")
  {
    m_sFileName = "index";
  }
  
  return(m_sFileName);
    
}

/* This function retrieves the language from a file name
*/
function retrieveLanguage(FileName)
{
  var       m_sLanguage;

  m_sLanguage = FileName.substring(FileName.length - 2);
  
  if (m_sLanguage != "EN")
  {
    m_sLanguage = "SE";
  }
  
  return(m_sLanguage);
    
}

/* This function retrieves the page name without the language
*/
function retrievePageName(FileName)
{
  var       m_sPageWithoutLang;

  if (FileName == "index")
  {
    m_sPageWithoutLang = FileName;
  }
  else
  {
    m_sPageWithoutLang = FileName.substring(0, FileName.length - 3);
  }
  
  return(m_sPageWithoutLang);
    
}

/* This function retrieves a random number in string format between min no and max no
   with the length equal to the max no
*/
function randomStringNo(MinNo, MaxNo)
{
  var     m_sRandomNoStringMin = "0";
  var     m_sRandomNoStringMax = "99999999";
  var     m_fRandomNo;
  var     m_sRandomString;
  var     m_sMaxNoString = MaxNo.toString();
  
  while (m_sRandomNoStringMax > MaxNo)
  {
    m_sRandomNoStringMin = "0";
    
    while (m_sRandomNoStringMin < MinNo)
    {
      m_fRandomNo = Math.random();
      m_sRandomString = m_fRandomNo.toString().substring(2);
      m_sRandomString = m_sRandomString.substring(0, m_sMaxNoString.length);
      m_sRandomNoStringMin = m_sRandomString;
      m_sRandomNoStringMax = m_sRandomString;
      
    }
    
  }

  return (m_sRandomString);
  
}

/* This function writes the mail address on a web page.
*/
function mailTo(Name, Domain, Text)
{
 document.write('<a href="' + 'mailto:' + Name + '@' + Domain + '">' + Text + '</a>');
}

/* This function retrieves the n'th part of a text string
*/
function retrieveStringPart(TextString, DivideChar, PartNo)
{
  var       m_sReturnString = "";
  var       m_sWorkString;
  var       m_iDividerPos;
  var       m_iStringPart = 0;
  
  m_sWorkString = TextString;
  
  while (m_iStringPart != PartNo)
  { 
  
    m_iStringPart = m_iStringPart + 1;
    
    m_iDividerPos = m_sWorkString.indexOf(DivideChar);
    
    if (m_iDividerPos == -1)
    {
      if (m_iStringPart == PartNo)
      {
        m_sReturnString = m_sWorkString;
      }
      break;
    }
    else
    {
      if (m_iStringPart == PartNo)
      {
        m_sReturnString = m_sWorkString.substring(0, m_iDividerPos);
        break;
      }
    }
  
    m_sWorkString = m_sWorkString.substring(m_iDividerPos + 1);
    
  }
  
  return(m_sReturnString);
    
}
/* This function retrieves the value of a variable in a string
   The function is specially hard coded for the search string
   after the html link
*/
function retrieveVariableValue(TextString, VariableName)
{
  var       m_sReturnString = "";
  var       m_sStringPart;
  var       m_iStringPart = 0;
  var       m_sVariableName = "";

  while (m_sVariableName != VariableName)
  {
    m_iStringPart = m_iStringPart + 1;
    m_sStringPart = retrieveStringPart(TextString, "&", m_iStringPart);
    
    if (m_sStringPart != "")
    {
      m_sVariableName = retrieveStringPart(m_sStringPart, "=", 1);
      if (m_sVariableName == VariableName)
      {
        m_sReturnString = retrieveStringPart(m_sStringPart, "=", 2);
        break;
      }
    }
    else
    {
      break;
    }
  
  }
  
  return(m_sReturnString);
  
}

/* This function replaces a character with another in a text string
*/
function replaceCharacter(TextString, OriginalCharacter, ReplaceCharacter)
{
  var       m_sReturnString = "";
  var       m_sStringPart;
  var       m_iStringPart = 0;
  
  while (true)
  {
    m_iStringPart = m_iStringPart + 1;
    m_sStringPart = retrieveStringPart(TextString, OriginalCharacter, m_iStringPart);
    
    if (m_sStringPart != "")
    {
      if (m_iStringPart == 1)
      {
        m_sReturnString = m_sStringPart;
      }
      else
      {
        m_sReturnString = m_sReturnString + ReplaceCharacter + m_sStringPart;
      }
    }
    else
    {
      break;
    }
  
  }
  
  return(m_sReturnString);
  
}

/* This function retrieves the formatted date depending an date string in format yyyymmdd and of language
*/
function retrieveDateFormatted(DateString, Language)
{
  var m_aMonths = new Array("January",
                            "February",
                            "Mars",
                            "April",
                            "May",
                            "June",
                            "July",
                            "August",
                            "September",
                            "October",
                            "November",
                            "December");
  var m_sYear;
  var m_sMonth;
  var m_sDay;
  var m_sDateFormatted;
  var m_iMonthIndex;
  
  m_sYear = DateString.substring(0, 4);
  m_sMonth = DateString.substring(4, 6);
  m_sDay = DateString.substring(6);
  
  switch (m_sMonth)
  {
    case "01":
      m_iMonthIndex = 0;
      break;
    case "02":
      m_iMonthIndex = 1;
      break;
    case "03":
      m_iMonthIndex = 2;
      break;
    case "04":
      m_iMonthIndex = 3;
      break;
    case "05":
      m_iMonthIndex = 4;
      break;
    case "06":
      m_iMonthIndex = 5;
      break;
    case "07":
      m_iMonthIndex = 6;
      break;
    case "08":
      m_iMonthIndex = 7;
      break;
    case "09":
      m_iMonthIndex = 8;
      break;
    case "10":
      m_iMonthIndex = 9;
      break;
    case "11":
      m_iMonthIndex = 10;
      break;
    case "12":
      m_iMonthIndex = 11;
      break;
  }
  
  if (Language == "EN")
  {
    m_sDateFormatted = m_sDay
                       + " "
                       + m_aMonths[m_iMonthIndex]
                       + " "
                       + m_sYear;
  }
  else
  {
    m_sDateFormatted = m_sYear
                       + "-"
                       + m_sMonth
                       + "-"
                       + m_sDay;
  }
  
  return(m_sDateFormatted);
  
}

/* This function retrieves the a date depending of a datestring in format yyyymmdd
*/
function retrieveDate(DateString)
{
  var m_sYear;
  var m_sMonth;
  var m_sMonthIndex;
  var m_sDay;
  var m_sDate;
  
  m_sYear = DateString.substring(0, 4);
  m_sMonth = DateString.substring(4, 6);
  m_sDay = DateString.substring(6);
  
  switch (m_sMonth)
  {
    case "01":
      m_sMonthIndex = '00';
      break;
    case "02":
      m_sMonthIndex = '01';
      break;
    case "03":
      m_sMonthIndex = '02';
      break;
    case "04":
      m_sMonthIndex = '03';
      break;
    case "05":
      m_sMonthIndex = '04';
      break;
    case "06":
      m_sMonthIndex = '05';
      break;
    case "07":
      m_sMonthIndex = '06';
      break;
    case "08":
      m_sMonthIndex = '07';
      break;
    case "09":
      m_sMonthIndex = '08';
      break;
    case "10":
      m_sMonthIndex = '09';
      break;
    case "11":
      m_sMonthIndex = '10';
      break;
    case "12":
      m_sMonthIndex = '11';
      break;
  }
  
  m_sDate = new Date(m_sYear, m_sMonthIndex, m_sDay);
  
  return(m_sDate);
  
}
