var concatChar = s.pathConcatDelim;
var site = "rim";
var region = "us";

/**
 * Main function that is called from the page
 */
function buildPageHierarchy(){
	var urlString = s.getPageName();
	
	var parsedURL = urlString.split(concatChar);
	
	// Get region
	region = getRegion();
	
	var level1 = getLevel(parsedURL,1);
	var level2 = getLevel(parsedURL,2);
	
	s.channel = concatStrings([region,site,level1]);
	if(level2 == "")
		s.prop1 = s.channel;
	else
		s.prop1 = concatStrings([s.channel,level2]);
		
	s.pageName = rewritePageName(parsedURL);
	
	
}

function concatStrings(array){
	return array.join(concatChar);
}

/**
 * Get the specified level from the url string
 * Example:
 * http://www.blackberry.com/ap/devices/handhelds
 * Level 1 - devices
 * Level 2 - Handhelds
 */
function getLevel(parsedURL, level){
	var levels = parsedURL.length-1;

	if(levels > 1)
		if(parsedURL[0] == "select"){
			if(level == 1)
				return parsedURL[0];
			else
				return parsedURL[2];
		}
		else{
			if(level == 1)
				return parsedURL[0];
			else
				return parsedURL[1];	
		}
		
	if(levels == 1 && level == 1)
		return parsedURL[0];
	
	if(level == 1)
		return parsedURL[levels]; 

	return "";
	
}

// Add the site code.
function addSite(){
	return concatChar.concat(site);
}

/**
 * Using the url and the prop1 value create the page name.
 * s.PageName = s.prop1 + any other unique values
 */
function rewritePageName(parsedURL){
	
	var subsections = s.prop1.split(concatChar);
	var l = subsections.length;
	var newPageName = subsections;
	
	var start = parsedURL.length>=l ? l-1 : parsedURL.length; // The start value is the lesser of the two array sizes

	if(start>1) // Only run if the start value is greater then 1 (won't run on http://www.blackberry.com/blackberrycurve.shtml
		for (i=start-1; i<parsedURL.length; i++){
			newPageName[l] = parsedURL[i];
			l++;
		}
	
	return newPageName.join(concatChar);
	
}
