// When true, a random postfix will be added to each url when dynamic loading,
// making sure that all types of browser will not cache.
// ?This probably should only be on while developing (so the reload works)
//noCache = true;

// owner key to notify Google Analytics for 'maincontent' div loads and
// thumbnail clicks. Remark out when testing.
_uacct = "UA-56440-3";

// Site structure contains an array per key what files
// should fill the DIVs that are defined in index.html.
//
// The array should be set up in the following way:
//
// siteStructure = {
//   pageInfo* | pagesInfo*
// }
//
// where
//
// pagesInfo = pagesName : {      PageName should be unique and is used in URL, refers to pages[0].
//   'label' : label,             Label to use in the menu and crumbs (path). Mandatory key.
//   'pages' : pageInfo*
// }
//
// pageInfo = pageName : {        PageName should be unique and is used in URL
//   'label' : label,             Label to use in the menu and crumbs (path). Mandatory key.
//   'title' : 'page title',      Uses label when omitted
//   'emptymargin' : true,        When set, move maincontent to the right a bit,
//                                Leaving an empty margin on the left side
//   'nomenu' : true,             When set, this page will not be shown in the menu
//   'nositemap' : true,          When set, this page will not be shown in the sitemap
//   'nospider' : true,           When set, this page will not be made available for spiders
//   'hide' : true,               Combination of 'nomenu', 'nositemap' and 'nospider'.
//   'relocate': pageName or url, When set, don't use this page but go elsewhere]
//
//   'divId' : 'div source url',  Omitted divs remain empty. Url relative to content/
//   'divId' ... etc              Either a string (url) or array (of urls)]
//   // divId can be one of:      From index.html
//   //
//   // maincontent   Holding main page data
//   // subcontent1   To the right of main content, left of teasercol. Has blue background.
//   // subcontent2   Below subcontent.
//   // teasercol     Right column with gray background, holding tools & teaser banners
//   // menu          Automatically filled menu. Don't alter.
//   // crumbs        Automatically filled crumbs (current position in menu).
//   // subnav        Small div in the top holding disclaimer and privacy statement links
//   // homelogo      Tiobe 'The Coding Stands Company' logo.
//
//   // no comma here (IE)
// }
//
// !IMPORTANT: at end of each array remove comma, or IE will fail
//
siteStructure = {

  // The defaults are used for every page
  // These values can be overloaded in pages. (A value of '' clears them).
  'default' : {
    'isDefault' : true,
    'teasercol' : [ 'general/teasers_tools.html', 'general/teasers_banners.html' ]
  },

  // Home refers to company
  'home' : {
    'label' : 'Home',
    //'relocate' : 'company'
    'title' : 'The Coding Standards Company',
    'maincontent' : 'company/Home.html',
  	'subcontent1' :	'general/recent.html',
  	'subcontent2' : 'general/shorts.html'
  },

  // Company
  'company' : {
    'label' : 'Company',
    'pages' : {
      'companyGeneral' : {
        'label' : 'General Info',
        'maincontent' : 'company/GeneralInfo.html',
      	'subcontent1' :	'general/recent.html',
      	'subcontent2' : 'general/shorts.html'
      },
      'management' : {
        'label' : 'Management Team',
        'maincontent' : 'company/ManagementTeam.html',
      	'subcontent1' :	'general/recent.html',
      	'subcontent2' : 'general/shorts.html'
      },
      'contact' : {
        'label' : 'Contact',
        'maincontent' : 'company/Contact.html',
      	'subcontent1' :	'general/recent.html',
      	'subcontent2' : 'general/shorts.html'
      }
    }
  },

  // Products
  'products' : {
    'label' : 'Products',
    'pages' : {
      'quality_assessment' : {
        'label' : 'Quality Assessment',
        'maincontent' : 'products/qualityassessment/quality_assessment.html'
      },
      'tics_framework' : {
        'label' : 'TICS Framework',
        'maincontent' : 'products/tics/TICS_framework.html'
      },
      'tics_analyzer' : {
        'label' : 'TICS Framework: Analyzer',
        'maincontent' : 'products/tics/TICS_analyzer.html',
        'nomenu' : true
      },
      'tics_viewer' : {
        'label' : 'TICS Framework: Viewer',
        'maincontent' : 'products/tics/TICS_viewer.html',
        'nomenu' : true
      },
      'clocksharp' : {
        'label' : 'ClockSharp for C#',
        'maincontent' : 'products/clocksharp/ClockSharp.html',
      	'subcontent1' :	'products/clocksharp/sub1_downloads.html',
      	'subcontent2' : 'products/clocksharp/sub2_info.html'
      },
      'clocksharpLicenses' : {
        'label' : 'Clocksharp licenses',
        'maincontent' : 'products/clocksharp/licenses.html',
        'nomenu' : true
      },
      'jacobe' : {
        'label' : 'Jacobe for Java',
        'maincontent' : 'products/jacobe/Jacobe.html',
      	'subcontent1' :	'products/jacobe/sub1_downloads.html',
      	'subcontent2' : 'products/jacobe/sub2_info.html'
      },
      'jacobeEditions' : {
        'label' : 'Jacobe Editions',
        'maincontent' : 'products/jacobe/editions.html',
        'nomenu' : true
      },
      'jacobeReleaseNotes' : {
        'label' : 'Jacobe Release Notes',
        'maincontent' : 'products/jacobe/releasenotes.html',
        'nomenu' : true
      },
      'jacobeDocs' : { // too large/slow for including, so relocate to it
        'label' : 'Jacobe Documentation',
        'relocate' : 'content/products/jacobe/documentation.html',
        'nomenu' : true
      },
      'jacobeConfigDocs' : {
        'label' : 'JacobeConfig Impression',
        'maincontent' : 'products/jacobe/JacobeConfig.html',
        'nomenu' : true
      },
      'jacobeTaskDocs' : {
        'label' : 'Jacobe Ant Task Documentation',
        'maincontent' : 'products/jacobe/jacobe_task_doc.html',
        'nomenu' : true
      },
      'jacobeEclipsePlugin' : {
        'label' : 'Jacobe Eclipse Plugin',
        'maincontent' : 'products/jacobe/Eclipse_Jacobe_Plug-in.html',
        'nomenu' : true
      },
      'jdeploy' : {
        'label' : 'JDeploy',
        'maincontent' : 'products/jdeploy/JDeploy.html',
        'nomenu' : true,
        'nositemap' : true
      }
    }
  },

  // TICS
  'tics' : {
    'label' : 'TICS',
    'pages' : {
      'ticsFactSheet' : {
        'label' : 'Fact Sheet',
        'maincontent' : 'TICS/FactSheet.html'
      },
      'ticsHighLights' : {
        'label' : 'Release Highlights',
        'maincontent' : 'TICS/HighLights.html'
      },
      'ticsHighLights6.0' : {
        'label' : 'Release Highlights 6.0',
        'maincontent' : 'TICS/HighLights6.0.html',
        'nomenu' : true
      },
      'ticsVideoDemo' : {
        'label' : 'Demo Videos',
        'maincontent' : 'TICS/VideoDemo.html'
      },
      'ticsDocs' : {
        'label' : 'Documentation &raquo;',
        'title' : 'TICS Documentation',
        //'maincontent' : 'products/tics/Documentation.html'
        'relocate' : 'http://www.tiobe.com/tics/docs/'
      },
      'FAQ' : {
        'label' : 'FAQ &raquo;',
        'title' : 'TICS FAQ',
        //'maincontent' : 'products/tics/FAQ.html'
        'relocate' : 'http://www.tiobe.com/tics/docs/index.php?doc=faq.htm'
      },
      /*
      'ticsSupport' : {
        'label' : 'Technical Support',
        'maincontent' : 'TICS/TechnicalSupport.html'
      },
      */
      'ticsReferences' : {
        'label' : 'References',
        'maincontent' : 'TICS/References.html',
      	'emptyMargin' : true
      },
      'distributors' : {
        'label' : 'Distributors',
        'maincontent' : 'TICS/Distributors.html',
      	'subcontent1' :	'',
      	'subcontent2' : '',
      	'emptyMargin' : true
      },
      'ticsAward' : {
        'label' : 'Awards',
        'maincontent' : 'TICS/Award.html'
      },
      'ticsAwardOce' : {
        'label' : 'Awards',
        'maincontent' : 'TICS/AwardOce.html',
        'nomenu' : true
      },
      'ticsAwardNXP' : {
        'label' : 'Awards',
        'maincontent' : 'TICS/AwardNXP.html',
        'nomenu' : true
      }
    }
  },

  // Paper & Info
  'paperInfo' : {
    'label' : 'Paper &amp; Info',
    'pages' : {
      'cstdHowto' : {
        'label' : 'How to use Coding Standards',
        'maincontent' : 'paperinfo/HowToUseCodingStandards.html'
      },
      'philips_csharp_cs' : {
        'label' : 'Philips C# Coding Standard &raquo;',
        'relocate' : 'content/paperinfo/gemrcsharpcs.pdf'
      },
      'ics_cs' : {
        'label' : 'IS C++ Coding Standard',
        'maincontent' : 'paperinfo/CodingStandards/hem/industrial/index.htm'
      },
      'ics_cs_book' : {
        'label' : 'IS C++ Coding Standard Book',
        'maincontent' : 'paperinfo/CodingStandards/hem/industrial/bookindex.htm',
        'nomenu' : true,
        'nositemap' : true
      },
      'cfDef' : {
        'label' : 'Definition of Confidence Factor &raquo;',
        'relocate' : 'content/paperinfo/DefinitionOfConfidenceFactor.html'
      },
      'surveyCodeCheckers' : {
        'label' : 'Static Code Checkers Survey',
        'maincontent' : 'paperinfo/SurveyNewGenerationCodeCheckers.html'
      },
      'tiobe_index' : {
        'label' : 'Tiobe Index',
        'maincontent' : 'paperinfo/tpci/index.html'
      },
      'tiobe_index_def' : {
        'label' : 'Tiobe Index Definition',
        'maincontent' : 'paperinfo/tpci/tpci_definition.htm'
      }

  //   'label' : label,             Label to use in the menu and crumbs (path). Mandatory key.
//   'title' : 'page title',      Uses label when omitted
//   'emptymargin' : true,        When set, move maincontent to the right a bit,
//                                Leaving an empty margin on the left side
//   'nomenu' : true,             When set, this page will not be shown in the menu
//   'nositemap' : true,          When set, this page will not be shown in the sitemap
//   'nospider' : true,           When set, this page will not be made available for spiders
//   'hide' : true,               Combination of 'nomenu', 'nositemap' and 'nospider'.
//   'relocate': pageName or url, When set, don't use this page but go elsewhere]

    }
  },

  // Various (hidden from menu)
  'various' : {
    'label' : 'Various pages',
    'nomenu': true,
    'pages' : {
      // Sitemap shows the menu as lists
      // but leaves the subcontent default
      'sitemap' : {
        'label' : 'Site map',
        'maincontent' : 'sitemap',
      	'subcontent1' :	'general/recent.html',
      	'subcontent2' : 'general/shorts.html'
      },
      'disclaimer' : {
        'label' : 'Disclaimer',
        'maincontent' : 'general/disclaimer.html'
      },
      'privacy' : {
        'label' : 'Privacy statement',
        'nomenu' : true,
        'maincontent' : 'general/privacy.html'
      }
    }
  },

  // legacy
  'downloads'  : { 'hide' : true, 'relocate' : 'jacobe' },
  'services'   : { 'hide' : true, 'relocate' : 'tics_framework' },
  'standards'  : { 'hide' : true, 'relocate' : 'cstdHowto' },

  // search
  'searchResults' : {
    'label' : 'Search Results',
    'hide' : true,
    'teasercol' : 'general/teasers_tools.html',
    'maincontent' : 'general/searchresults.html'
  }
};

// In the html content a name between {brackets} will be replaced
// by a value for the given name if known (otherwise the text is
// not touched).
// The following map can give values for the key names to replace.
// The values may contain html tags because the text will be
// processed before it is given to the browser to parse into its DOM.
//
// When a given {keyName} is not found in this map and is not one
// of the built-in names, the value of 'undefined' will be used
// as a replacement. If 'undefined' is not defined or set to null
// in this map the text will remain as is.
//
// Some key names are already built in:
//   'year'     : current year [yyyy]
//   'month'    : current month [1..12]
//   'monthName': current month ['January',...'December']
//   'day'      : current day [1..31]
//   'weekday'  : current day ['Sunday',..'Saturday']
//   'date'     : current date [d mmmm yyyy]
//   'time'     : current time [hh:mm:ss]
//
// Don't forget to remove the ending comma or IE will not work.
//
codeReplacements = {
  'jacobeVersion'          : '7.3.12',
  'clockSharpVersion'      : '2.1.9',

  'undefined' : null // leave undefined keyName as is
};
