//site specifics
var sitePrefix = "dw";

var knownDirectoryProblems = new Array("");
var directoryFixes = new Array("");
var knownNavigationProblems = new Array("");
var navigationFixes = new Array("");

//initialise variables;
currentURL = window.location.href;
currentFileName = getFileName();
scprop1="";		//Editorial Search Terms
scprop2="";		//Number of Search Results
scprop3="";		//Content Title	
scprop4="";		//Content ID
scprop5="";		//Content Type
scprop6="";		//Site Section
scprop7="";		//Site Sub Section
scprop8="";		//Site Sub Section 2
scprop9="";		//Site Sub Section 3
scprop10="";	//Event Search Terms
scprop18="";	//Page Template
scprop24 = "";
scprop25="";	//Editorial Categories
scCampaign="";	//campaign

scEVar18 = "";
scEVar31 = "";
scEVar32 = "";
scEVar33 = "";

scPageType="";

scPageName="default"; 
scChannel="default";
scEvents="";
scHier1=sitePrefix + ":" +"default";
scHier2="default";
user_id	= getMeta("CelerityGuidID");


function removeSlashesFromDirectoryNames(orginalPath) {

	var newPath = orginalPath;

	for (i = 0; i < knownDirectoryProblems.length; i++) {
		newPath = newPath.replace(knownDirectoryProblems[i], directoryFixes[i]);
	}
	
	return newPath;

}


function reversePrimaryNavigation(originalNav) {
	
	var newNav = originalNav;

	
	for (i = 0; i < knownNavigationProblems.length; i++) {
		newNav = newNav.replace(knownNavigationProblems[i], navigationFixes[i]);
	}
	
	newNav = newNav.replace(/ /gi, "-");
	
	var originalOrder = newNav.split(",");
	var newOrder = originalOrder.reverse();
	
	return newOrder;
}


function externalLinkClick(theClient) {

	s=s_gi(s_account);
	s.linkTrackVars="events,eVar24";
	s.linkTrackEvents="event14";
	s.eVar24=theClient
	s.events="event14";
	s.tl(this,'o','External Client Link Click - ' + theClient);
	
}

function getUserInfo(type) {
	var info = "";
	var userInfo = getMeta('AccInfo').split("|");
	
	switch (type) {
		case 'type':
			info = userInfo[0];
		break;
		case 'expired':
			info = userInfo[1];
		break;
		case 'source':
			info = userInfo[2];		
		break;
	}
		return info;

}

function getContentInfo() {

	var info = "";
	var contentInfo = getMeta('ContentInfo').split("|");;
	if (contentInfo.length > 1) {
		info = "restricted";
		switch (contentInfo[1]) {
			case '0':
				info += " - barrier shown";
			break;
			case '1':
				info += " - paid";
			break;
			case '2':
				info += " - fcf";
			break;
		}
	} else {
		info = "unrestricted";
	}
	return info;
}

//Used for tracking clicks on Most Comment, Most Popular etc
function blockItemClicked(item, type, thePageName) {

	switch (type) {
	
		case 1:
			s.linkTrackVars = "prop20,prop23";
			s.prop20 = item;
			s.prop23 = thePageName;
			s.tl(this,'o','most popular - ' + item); 
		break;
		case 2:
			s.linkTrackVars = "prop21,prop23";
			s.prop21 = item;
			s.prop23 = thePageName;
			s.tl(this,'o','most commented - ' + item);
		break;
		case 3:
			s.linkTrackVars = "prop22,prop23";
			s.prop22 = item;
			s.prop23 = thePageName;			
			s.tl(this,'o','most emailed - ' + item);
		break;
	}
	
	

}

function cleanForSiteCatalyst(theString) {

	var result = theString.replace(/\u2019|\u2018|\u201C|\u201D|[\u0080-\uFFFF]|;|,|'|"|\/|<|>|&/g, "");
	return result.toLowerCase();
}


//Various Functions that help with analytics
//gets the value of the given url parameter
function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ) {
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}


//Should be edited depending on analytics system
//HBX prefers to have spaces replaced with + signs
function stripUnwantedCharactersExceptCommas(theString) {

	var result = theString.replace(/;|'|"|<|>| |&/g, "+");
	return result;
}

function stripUnwantedCharacters(theString, replacement) {

	var result = theString.replace(/;|,|'|"|\/|<|>| |&/g, replacement);
	return result;
}

//get the contents of the given meta-tag
function getMeta(metatag)  {
	metas = document.getElementsByTagName("meta");
	for (i=0;i<metas.length;i++) {
		if (metas[i].name == metatag) {return metas[i].content; }
	}
	return "";
}



//Returns the filename of the page
function getFileName() {

	var fileName = location.pathname.substring(location.pathname.lastIndexOf('/')+1);

	if (fileName.indexOf(".") > -1) {
		return fileName;
	} else {
		return "index";
	}

}

//Returns title from URL on .detail pages
function getTitleURL() {
	var strPath = window.location.pathname;
	var strTitle = "";
	if (strPath.indexOf("/") > -1) {
		var arrPath = strPath.split("/");
		strTitle = arrPath[arrPath.length-2];
		return strTitle;
	}
}


//returns the headline from the title tag
function getHeadline() {

	var theTitle = document.title;
	var theHeadline = theTitle.substring(0, theTitle.indexOf("|"));
	return theHeadline;

}

//return the name of the event from the URl
function getEventName() {
	
	var levels = removeSlashesFromDirectoryNames(getDirectory()).split("/");
	return levels[2];
	
}


//return the directorys/depth of current page
function getDirectory() {

	var theFile = getFileName();
	if (theFile.indexOf(".") > -1) {
		return location.pathname.substring(0, location.pathname.indexOf(theFile));
	} else {
		return location.pathname;
	}

}



//returns the filename without the extension
function fileNameWithoutExtension(fileName) {
	
	var thefile;
	thefile = fileName.substring(0, fileName.indexOf("."));
	return thefile;
	
}

// toggle function
function toggleLayer( whichLayer ) {  
var elem, vis;  
if ( document.getElementById )
	elem = document.getElementById( whichLayer );
else if ( document.all )
	elem = document.all[whichLayer];
else if ( document.layers )
	elem = document.layers[whichLayer];  
	vis = elem.style;
if (vis.display == '' && elem.offsetWidth != undefined && elem.offsetHeight != undefined)
	vis.display = (elem.offsetWidth !=0 && elem.offsetHeight !=0) ? 'block':'none';  
	vis.display = (vis.display == '' || vis.display == 'block') ? 'none':'block';
}

function getElementsByClassName (node, classname) {
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");

	for (var i=0 , j=els.length ; i < j ; i++) {
		if (re.test(els[i].className)) {
			a.push(els[i])
		}
	}
	return a;
}

// detects subsite based on part of URL
// requires a string, e.g. 'channels/process-engineering'
function subsiteByURL(subsite) {
	if (currentURL.indexOf(subsite)>0) {
		return true;
	}
	return false;
}

// move ad output from placeholders to positions
// requires element ids with _inv/_vis suffix
function moveAdvert(AdContent) {
	var invContent = document.getElementById(AdContent + '_inv');
	var visContent = document.getElementById(AdContent + '_vis');
	visContent.appendChild(invContent);
	invContent.style.display = 'block';
	return false;
}

// commonly used variables
var CelerityGuidID = getMeta("CelerityGuidID"); 
var pubdate = getMeta("pubdate"); 
var TopNav = "News,Analysis,Features,Opinion,Blog,Diary,Directory,Awards,Jobs,Matters";
var primaryNav = getMeta("primarynavigation"); 
var currentURL = window.location.href;
/* CHANGE THIS BETWEEN TEST AND LIVE */
var rootURL = "http://www.designweek.co.uk/";
var sitePrefix = "dw";
var max_buttons = 6;
var rh_buttons = 6;
var rh_slot = 0;
var rh_blocks = "JOTW,LatestJobs,JobSearch,DBs,MPU";
var RH_all = "";


// AdTech size IDs
var LboardSizeID = 225; var BLboardSizeID = 225; var MPUSizeID = 170; var InPgMPUSizeID = 170; var InPgBannerSizeID = 1; JOTWSizeID = 186; var DB1SizeID = 3923; var DB2SizeID = 3923; var DB3SizeID = 3923; var DB4SizeID = 3923; var DB5SizeID = 3923; var DB6SizeID = 3923; var OverlaySizeID = 16; 

// default ads array (position, ID) - will be served when mapping fails
var arrAds = [];
arrAds = [['Lboard',3035872],['BLboard',3035907],['MPU',3035303],['InPgMPU',3047954],['InPgBanner',3047954],['JOTW',3035647],['DB1',3035550],['DB2',3035394],['DB3',3035202],['DB4',3035737],['DB5',3035524],['DB6',3035576],['Overlay',3035236]];

// AdTech groupID
if (window.adgroupid == undefined) 
	window.adgroupid = Math.round(Math.random() * 1000);

