/*!
  * 404 script for Philips Internet
  * Check www.crsc.philips.com/crsc/scripts/404.js for latest version
  * Version: 4.6.10
  * Build: 3
  * Date: January 22, 2010
  */

_page.recommends = new Object();			// Object with arrays of recommendations included by Navigation Manager
_page.recommends["about"] = new Array();
_page.recommends["consumer"] = new Array();
_page.recommends["lighting"] = new Array();
_page.recommends["medical"] = new Array();
_page.recommends["all"] = new Array();		
arrAvailableNumbers = new Array(); 			// Array with all available numbers for randomization
arrRecommends = new Array();				// Array with all recommendations (including all_all and section_all)
arrLocales = new Array();					// Array with current locale and "all"
arrLocales[0] = _page.locale;	
arrLocales[1] = "all"; 

_page.writeBody404 = function() {	

	// Set Omniture meta tags
	var elMeta = document.createElement("meta");
	elMeta.setAttribute("content", "errorPage");
	elMeta.setAttribute("name", "PHILIPS.METRICS.PAGETYPE");
	document.getElementsByTagName("head")[0].appendChild(elMeta);
	
	var arrBody404 = new Array();
	var body_count = 0;
	
	// Set Header
	var txtHeader = _page.text["404_header"];
	arrBody404[body_count++]="		<!-- begin optional main header -->\n";
	arrBody404[body_count++]="			<h1>"+txtHeader+"</h1>\n";
	arrBody404[body_count++]="		<!-- end optional main header -->\n";
	arrBody404[body_count++]="		<table id=\"p-columns\" cellspacing=\"10\">\n";
	arrBody404[body_count++]="			<tr>\n";
	arrBody404[body_count++]="				<td id=\"p-left\">\n"; 
	arrBody404[body_count++]="				</td>\n";
	arrBody404[body_count++]="				<td id=\"p-center\">\n";
	arrBody404[body_count++]="				<div class=\"p-404\">\n";
	
	var txtBody = _page.text["404_body"];
	txtBody = txtBody.replace(/{BR}/g, "<br />");
	arrBody404[body_count++]="					<p>"+txtBody+"</p>\n";
	
	// Create recommendation array
	for(id in _page.recommends) {
		if (_page.recommends.hasOwnProperty(id)) {
			for(var i=0;i<arrLocales.length;i++) {						
				if (_page.recommends[id][arrLocales[i]]) {
						arrRecommends = arrRecommends.concat(_page.recommends[id][arrLocales[i]]);
				}				
			}
		}
	}
	
	arrBody404[body_count++]="					<p><br/>\n";
	arrBody404[body_count++]="					<table id=\"p-recommendations\" cellspacing=\"0\" width=\"100%\">\n";
	arrBody404[body_count++]="						<tr><td width=\"50%\">\n";
	arrBody404[body_count++]="							<ul class=\"p-link-list\">\n";
	
	// Recommends per section / locale
	var maxRandom = arrRecommends.length; 	// 0 - max random number
	var maxEntries = 10; 					// Max recommendation entries
	var setCol = true;						// Allow double column
	initNumberArray(maxRandom); 			// Initiate array of available numbers
	for(var i=0;i<maxEntries;i++) {
		var num = getRandomUnqiueNumber();
		if(arrRecommends[num]) {
			var recTitle = arrRecommends[num][3];
			var recDescription = arrRecommends[num][4];
			var recURL = arrRecommends[num][5];
			// Divide links into 2 columns
			if(maxEntries/2 <= i && setCol == true) {
				arrBody404[body_count++]="				</ul></td><td width=\"50%\"><ul class=\"p-link-list\">\n";
				setCol = false;
			}
			// Force first character uppercase
			var firstCharUpperCase = recTitle.substring(0,1).toUpperCase();
			var recTitle = firstCharUpperCase + recTitle.substring(1,recTitle.length);
			arrBody404[body_count++]="					<li><a href=\""+recURL+"\">" +recTitle+ "</a></li>\n";
		}
	}	
	arrBody404[body_count++]="							</ul>\n";
	arrBody404[body_count++]="						</td><tr>\n";
	arrBody404[body_count++]="					</table>\n";
	arrBody404[body_count++]="					</p><br/>\n";

	var txtFooter = _page.text["404_footer"];
	txtFooter = txtFooter.replace(/{BR}/g, "<br />");
	txtFooter = txtFooter.replace("{CONTACT}", "<a href=\""+_page.link["contact"]+"\" onclick=\"return _page.switchHandler('"+_page.link["contact"]+"', '')\">"+_page.text["contact"]+"</a>");
	txtFooter = txtFooter.replace("{SUPPORT}", "<a href=\""+_page.link["support"]+"\" onclick=\"return _page.switchHandler('"+_page.link["support"]+"', '')\">"+_page.text["support"]+"</a>");
   
	arrBody404[body_count++]="					<p>"+txtFooter+"</p>\n";
	arrBody404[body_count++]="				</div>\n";
	arrBody404[body_count++]="			</td>\n";
	arrBody404[body_count++]="		<td id=\"p-right\">\n";				
	arrBody404[body_count++]="		</td>\n";
	arrBody404[body_count++]="	</tr>\n";
 	arrBody404[body_count++]="</table>\n";
	
	// Print html 404 body
	document.write(arrBody404.join(""));
};

function initNumberArray(intTotal) {
	// Inititate available number arry based on intTotal
	for(var i=0;i<intTotal;i++) {
		arrAvailableNumbers[i] = i;
	}
};

function getRandomUnqiueNumber() {
	// Get random number
	var currIndex = Math.round((arrAvailableNumbers.length-1)*Math.random());
	var currNumber = arrAvailableNumbers[currIndex];
	
	// Remove index from array
	arrTmpNumbers = new Array();
	tmpIndex=0;
	for(var i=0;i<arrAvailableNumbers.length;i++) {
		if(i != currIndex) {
			arrTmpNumbers[tmpIndex] = arrAvailableNumbers[i];
			tmpIndex++;
		} 
	}
	
	// Replace array
	arrAvailableNumbers = arrTmpNumbers;
	return currNumber;
};
