// 2007.09.06 KJD: Removed $ sign from prices

if( !( window.XMLLocation ) )
{
	// var XMLLocation 	= "/content/en/us/home_homeoffice/pagecopy/cx/ABM/xml";
	// 2007.05.03 KJD: Updated to new folder
	var XMLLocation		= "/content/en/us/home_homeoffice/ABM";
	var ImageLocation	= "/content/en/us/home_homeoffice/images/ABM/";
}


var CompareLoaded	= 1;
// var XMLLocation 	= "xml";

var arrAssocActIDs = new Array(); //associated activity IDs for products
var selectedProducts;
var activitiesToShow;
var featuresToShow;
var selectedProductNodes;
var arrActIDs = new Array();
var arrAssocFtrIDs;
var prodShowHere = new Array();

// 2007.02.26 KJD: Initialize the ABM
function init()
{
	// 2007.08.29 KJD: Create The Windows activities

	// 2007.02.16 KJD: Check if activities loaded, if not load them.
	DoABMLoad();
}

// 2007.08.29 KJD: Create the Windows Activities
function ABM_CreateActivities_Windows()
{
	// 2007.08.29 KJD: Check if on tab 2
	if( document.getElementById( 'windowsActivities' ) )
	{
		var thisDiv 		= document.getElementById( 'windowsActivities' );
		
		var thisActivities	= xmlDocActivities.getElementsByTagName("activity_option");
		
		
		var thisString 		= "<table cellspacing='0'>";
		
		for( var i = 0; i < thisActivities.length; i++ )
		{
			var itemTitle	= thisActivities[ i ].getElementsByTagName("activity_title");
			var itemId		= thisActivities[ i ].getElementsByTagName("activity_id");

			var thisId 		= itemId[0].childNodes[0].nodeValue;
			var thisTitle	= itemTitle[0].childNodes[0].nodeValue;

			// 2007.08.29 KJD: If last item, add space
			if( i == ( thisActivities.length -1 ) )
			{
				thisString += "<tr><td colspan='2'><br /></TD></tr>";
			}
			
			thisString 		+= ""
				+ "<tr id=\"wtask_" + thisId + "_row\" onMouseover=\"this.style.backgroundColor='#feed9f';\" onMouseout=\"this.style.backgroundColor='transparent';\">"
				+ "<td><input type=\"checkbox\" name=\"task\" value=\"" + thisId + "\" id=\"wtask_" + thisId + "\" onClick=\"getInfo();\"></td>"
				+ "<td><label for=\"wtask_" + thisId + "\">"
				+ thisTitle
				+ "</label></td>"
				+ "</tr>";
		}
		
		thisString += "</table>";
		
		thisDiv.innerHTML = thisString;
	}
}

// 2007.08.29 KJD: Create the Mac Activities
function ABM_CreateActivities_Mac()
{

	// 2007.08.29 KJD: Check if on tab 2
	if( document.getElementById( 'windowsActivities' ) )
	{
		var thisDiv 		= document.getElementById( 'macActivities' );
		
		var thisActivities	= xmlDocActivities.getElementsByTagName("activity_option");
		
		var thisString 		= "<table cellspacing='0'>";
		
		if( thisActivities.length )
		{
		
			for( var i = 0; i < 4; i++ )
			{
				var itemTitle	= thisActivities[ i ].getElementsByTagName("activity_title");
				var itemId		= thisActivities[ i ].getElementsByTagName("activity_id");

				var thisId 		= itemId[0].childNodes[0].nodeValue;
				var thisTitle	= itemTitle[0].childNodes[0].nodeValue;

				// 2007.08.29 KJD: If last item, add space
				if( i == 3 )
				{
					thisString += "<tr><td colspan='2'><br /></TD></tr>";
				}
				
				
				thisString 		+= ""
					+ "<tr id=\"mtask_" + thisId + "_row\" onMouseover=\"this.style.backgroundColor='#feed9f';\" onMouseout=\"this.style.backgroundColor='transparent';\">"
					+ "<td><input type=\"checkbox\" name=\"task\" value=\"" + thisId + "\" id=\"mtask_" + thisId + "\" onClick=\"getInfo();\"></td>"
					+ "<td><label for=\"mtask_" + thisId + "\">"
					+ thisTitle
					+ "</label></td>"
					+ "</tr>";
			}
			
			thisString += "</table>";

			thisDiv.innerHTML = thisString;
		}
	}
}



function initialize()
{
	selectedProducts 		= new Array();
	activitiesToShow 		= new Array();
	featuresToShow 			= new Array();
	selectedProductNodes 	= new Array();
}

function clearCompareTable(index)
{
	initialize();
	
	var comparisonTable = document.getElementById("comparisonTable");
	
	// 2007.02.09 KJD: Re-written
	
	// 2007.02.09 KJD: if FF add 1 to index
	if( navigator.userAgent.indexOf( 'Firefox') > -1 ){ index++; }
	
	for( var i = comparisonTable.tHead.rows[0].childNodes.length-1; i > index; i--)
	{
		comparisonTable.tHead.rows[0].removeChild(comparisonTable.tHead.rows[0].childNodes.item(i));
	}
	
	for( var i = comparisonTable.tBodies[0].rows.length-1; i > 0; i--)
	{
		comparisonTable.tBodies[0].removeChild(comparisonTable.tBodies[0].rows[i]);
	}
	
	// 2007.02.09 KJD: Needed for FF
	if( navigator.userAgent.indexOf( 'Firefox') > -1 )
	{
		for( var i = comparisonTable.tBodies[0].rows[0].childNodes.length - 1; i > 3; i--)
		{
			comparisonTable.tBodies[0].rows[0].removeChild(comparisonTable.tBodies[0].rows[0].childNodes[i]);
		}
	}
	else
	{
		// 2007.02.09 KJD: Needed for Safari and IE
		for( var i = comparisonTable.tBodies[0].rows[0].childNodes.length - 1; i > 1; i--)
		{
			comparisonTable.tBodies[0].rows[0].removeChild(comparisonTable.tBodies[0].rows[0].childNodes.item(i));
		}
	}
}

// 2007.02.12 KJD: Added
function getProductActivities( myProductID )
{
	var productActivities 	= new Array();
	var productNode 		= getProductNode( myProductID );
	var activitiesNodes 	= productNode.getElementsByTagName("activities_id");

	for (var i=0; i < activitiesNodes.length; i++)
	{
		productActivities[i] = activitiesNodes[i].childNodes[0].nodeValue;
	}

	return productActivities;

}


// 2007.02.13 KJD: Get unique array values
function ArrayUnique( myarray )
{
	var tempArray = new Array()
	
	for( var i=0; i< myarray.length; i++ )
	{
		if( !( ValueInArray( tempArray, myarray[i] ) ) )
		{
			tempArray[ tempArray.length ] = myarray[i];
		}
	}
	
	return tempArray;
}

// 2007.02.13 KJD: Check for value in array
function ValueInArray( myarray, myvariable )
{
	var myValue = false;
	
	for( var i=0; i< myarray.length; i++ )
	{
		if( myarray[i] == myvariable )
		{
			myValue = true;
		}
	}
	
	return myValue;
}


function displayCompareDiv()
{
	clearCompareTable(0);

	var activities 		= new Array();
	var products 		= new Array();
	var thisPlatform	= "";

	activities = getChosenActivities();
	
	// alert( "activities selected: " + activities );
	
	
	if (document.getElementById("radioPlatform1").checked == true) {
		thisPlatform = "win";
	} else if (document.getElementById("radioPlatform2").checked == true) {
		thisPlatform = "mac";
	}
	
	selectedProducts = getAssociatedProducts(thisPlatform,activities);

	var productActivities = new Array();
	
	
	
	// 2007.02.12 KJD: Get all the activities for all the products
	for( var i=0; i<selectedProducts.length;i++ )
	{
		var tempActivities = getProductActivities( selectedProducts[i] );
		for( var j=0; j < tempActivities.length; j++ )
		{
			productActivities[ productActivities.length ] = tempActivities[j];
		}
	}
	
	// 2007.02.12 KJD: Remove duplicates
	productActivities = ArrayUnique( productActivities );

	if (selectedProducts.length > 1) {
		getProductInfo(productActivities);

		DoMask( 'compareTable', 'visible' );
		
		blur();
	}
	
	if (selectedProducts.length == 0 && activities.length == 0) {
		activities = ['activity_1'];
		selectedProducts = getAssociatedProducts(thisPlatform,activities);
		getProductInfo(activities);

		blur();
	}

	
}

// 2007.02.15 KJD: Added to close the comparison chart
function CloseComparison()
{
	DoMask( 'compareTable', 'hidden' );
}

// 2007.02.26 KJD: Re-wrote this function as well
function addToShowActivities( activity_id )
{
	activitiesToShow.push( activity_id );
	activitiesToShow = ArrayUnique( activitiesToShow );
}

// 2007.02.26 KJD: Re-wrote this function as well
function addToShowFeatures( feature_id )
{
	featuresToShow.push( feature_id );
	featuresToShow = ArrayUnique( featuresToShow );
}

function getProductNode(productId) {
	var productNode = null;
	var prods = xmlDoc.getElementsByTagName("product");
	
	for(var x=0; x < prods.length; x++) {
		productNode = prods[x];
		if (document.all) {
			thisProductId = productNode.childNodes[0].childNodes[0].nodeValue;
		} else {
			thisProductId = productNode.childNodes[1].childNodes[0].nodeValue;
		}
		if (productId == thisProductId) {
			break;
		}
	}
	return productNode;
}

function getFeatureNode(featureId) {
	var featureNode = null;
	var ftrs = xmlDocActivities.getElementsByTagName("feature_id");
	
	for(var x=0; x < ftrs.length; x++) {
		featureNode = ftrs[x].childNodes[0];
		if (featureId == featureNode.nodeValue) {
			break;
		}
	}
	return featureNode;
}

function getActivityNode(activityId) {
	var activityNode = null;
	var acts = xmlDocActivities.getElementsByTagName("activity_id");
	
	for(var x=0; x < acts.length; x++) {
		activityNode = acts[x].childNodes[0];
		if (activityId == activityNode.nodeValue) {
			break;
		}
	}
	return activityNode;
}

function featureInProduct(productNode, featureId) {
	var featureInProduct = false;
	var featuresNodes = productNode.getElementsByTagName("feature_id");

	for (var i=0; i < featuresNodes.length; i++) {
		if (featuresNodes[i].childNodes[0].nodeValue == featureId) {
			featureInProduct = true;
			break;
		}
	}
	return featureInProduct;
}

function activityInProduct(productNode, activityId) {
	var activityInProduct = false;
	var activitiesNodes = productNode.getElementsByTagName("activities_id");
	
	for (var i=0; i < activitiesNodes.length; i++) {
		if (activitiesNodes[i].childNodes[0].nodeValue == activityId) {
			activityInProduct = true;
			break;
		}
	}
	return activityInProduct;
}

function getProductInfo(activities) {
	prods = xmlDoc.getElementsByTagName("product");
	prodIDs = xmlDoc.getElementsByTagName("pid");
	prodShowHere = xmlDoc.getElementsByTagName("display");
	if (activities.length > 0) {
		activitiesToShow = activities;
	}
	
	//Extract union of activities and features present in selected products
	for(var i=0; i < prodIDs.length; i++) {
		var product = prodIDs[i].childNodes[0].nodeValue;

		prodIndexes.push(product);
		
		for (var j=0; j < selectedProducts.length; j++) {
			if (product == selectedProducts[j]) {
				arrAssocActIDs = prods[i].getElementsByTagName("activities_id");
				arrAssocFtrIDs = prods[i].getElementsByTagName("feature_id");

				if (activities.length == 0) {
					for(var k=0;k < arrAssocActIDs.length; k++) {
						addToShowActivities(arrAssocActIDs[k].childNodes[0].nodeValue);
					}
				}
				
				for(var m=0;m < arrAssocFtrIDs.length; m++) {
					addToShowFeatures(arrAssocFtrIDs[m].childNodes[0].nodeValue);
				}
				selectedProductNodes.push(prods[i]);
			}
		}
	}
	
	if (window.ActiveXObject) {
		xmlDocActivities = new ActiveXObject("Microsoft.XMLDOM")
		xmlDocActivities.async="false"
		xmlDocActivities.load( XMLLocation + "/available_options.xml");
		getActivityInfo();
	} else if(document.implementation && document.implementation.createDocument) {
		try {
			xmlDocActivities = document.implementation.createDocument("","",null);
			xmlDocActivities.onload = getActivityInfo;
			xmlDocActivities.load( XMLLocation + "/available_options.xml");
		} catch (e) {
			if (window.XMLHttpRequest) {
				xmlDocActivities = new XMLHttpRequest();
				xmlDocActivities.onreadystatechange = processReqChange2;
				xmlDocActivities.open("GET",  XMLLocation + "/available_options.xml", true);
				xmlDocActivities.send(null);
			}
		}
	}

}

function processReqChange2() {
    // only if req shows "loaded"
    if (xmlDocActivities.readyState == 4) {
        // only if "OK"
        if (xmlDocActivities.status == 200) {
			xmlDocActivities = xmlDocActivities.responseXML;
            getActivityInfo();
         } else {
            alert("There was a problem retrieving the XML data");
         }
    }
}

function getActivityInfo() {
	actTitles = xmlDocActivities.getElementsByTagName("activity_title");
	actAddlItems = xmlDocActivities.getElementsByTagName("addl_items");
	arrActIDs = xmlDocActivities.getElementsByTagName("activity_id");
	arrActIndex = new Array();
	
	for (var x=0; x < arrActIDs.length; x++) {
		arrActIndex[x] = arrActIDs[x].childNodes[0].nodeValue;
	}
	
	// 2007.02.12 KJD: Sort the Activities
	var sorted_Activities 	= new Array();
	sorted_Activities 		= activitiesToShow.sort();
	activitiesToShow 		= sorted_Activities;
	

	
	for(var i=0; i < activitiesToShow.length;i++)
	{
		var activityRow 		= document.createElement("tr");
		activityRow.className 	= "comparison";
		document.getElementById("comparisonTable").tBodies[0].appendChild(activityRow);
		thisActivity 			= activitiesToShow[i];
		
		//adding new first column for activity
		var col1 = document.createElement("td");

		activityRow.appendChild(col1);

		//adding new second column for activity
		var col2 = document.createElement("td");
		col2.className = (k%2==0) ? "gray":"white";
		
		
		// 2007.02.26 KJD: Loop through array of activity index
		for( var activityNumber=0; activityNumber < arrActIndex.length; activityNumber++ )
		{
			if( arrActIndex[activityNumber] == thisActivity )
			{
				break;
			}
		}

		col2.appendChild( document.createTextNode( actTitles[ activityNumber ].childNodes[0].nodeValue ) );
		
		activityRow.appendChild(col2);

		//adding rows for sub activities
		selectedActivityNode = actAddlItems[ activityNumber ];
		
		for(var k=0; k < selectedActivityNode.getElementsByTagName("item").length; k++) {
			var item2 = selectedActivityNode.getElementsByTagName("item")[k].childNodes[0].nodeValue;
			var itemRow = document.createElement("tr");
			itemRow.className = (k%2 == 0) ? "gray":"white";
			document.getElementById("comparisonTable").tBodies[0].appendChild(itemRow);
			var col = document.createElement("td");
			col.className = (k%2 == 0) ? "gray":"white";
			col.colSpan = 2;
			col.appendChild(document.createTextNode(item2));
			itemRow.appendChild(col);
		}
	}
	
	prodImgs 			= xmlDoc.getElementsByTagName("image");
	prodNames 			= xmlDoc.getElementsByTagName("name");
	prodAddToCartLinks 	= xmlDoc.getElementsByTagName("add_to_cartlink");
	prodPrices 			= xmlDoc.getElementsByTagName("price");
	prodIDs 			= xmlDoc.getElementsByTagName("pid");

	// 2007.02.27 KJD: Show/hide recommend heading
	var myRecommend		= 1;
	
	if( selectedProducts.length == 2 )
	{
		if( ( selectedProducts[0] == 'n360' ) && ( selectedProducts[1] == 'nsr' ) )
		{
			myRecommend = 0;
		}
	}
	
	for(var i=0; i < selectedProducts.length;i++) {
		//creating head row in thead
		var tHeadRow1 = document.getElementById("comparisonTable").tHead.rows[0];
		
		//  2007.02.21 KJD: No TH for the compare page, only for popin
		if( document.getElementById( 'readout' ) )
		{
			var newCell = document.createElement("th");
			var thisProductIndex = 0;
			
			newCell.className = "sort-last";
			
			// if( i == 0 )
			if ( ( i == 0) && ( myRecommend ) )
			{
				newCell.innerHTML	= "Recommended";
				newCell.id 			= "recommended";
			}
			else
			{
				newCell.id = "consider" + i;
				
				// 2007.02.21 KJD: Do not show top heading on these columns
				newCell.style.background = "white";
			}
			tHeadRow1.appendChild(newCell);
		}
		
		

		//creating product image cell
		var newCell = document.createElement('td');
		//newCell.className = "product";
		//newCell.setAttribute('style','text-align:center');
		
		
		var prodDiv = document.createElement('div');
		prodDiv.setAttribute('id','product-highlight');
		
		var prodAnchor = document.createElement('a');
		prodAnchor.setAttribute('href','javascript:popin(\"' + selectedProducts[i] + '\");');
		
		var prodImg = document.createElement('img');
		prodImg.className = "product";
		
		// 2007.02.26 KJD: Loop through product indexes
		
		for( var thisProductIndex = 0; thisProductIndex < prodIndexes.length; thisProductIndex++ )
		{
			if( prodIndexes[ thisProductIndex ] == selectedProducts[i] )
			{
				break;
			}
		}

		prodImg.setAttribute('src', prodImgs[ thisProductIndex ].childNodes[0].nodeValue);
		
		
		var priceBlock = document.createElement('div');
		priceBlock.className = "priceblock";
		
		// priceBlock.innerHTML = "asdf";
		
		var priceSpan = document.createElement('span');
		priceSpan.className = "price";
		
		var addAnchor = document.createElement('a');
		addAnchor.className = "add";
		addAnchor.setAttribute('href','#');
		
		var addImg = document.createElement('img');
		addImg.setAttribute('src',ImageLocation + '/button_add_to_cart.gif');
		addImg.setAttribute('alt','Add to Cart');
		
		// 2007.03.01 KJD: Added
		var prodImage = document.createElement('div');
		prodImage.className = "productImage";
		
		prodImage.appendChild(prodImg);
		
		prodAnchor.appendChild(prodImage);

		/*
		addAnchor.appendChild(addImg);
		prodAnchor.appendChild(prodImg);
		*/

		prodAnchor.appendChild( document.createTextNode( prodNames[ thisProductIndex ].childNodes[0].nodeValue ) );
		
		
		// alert( prodNames[ thisProductIndex ].childNodes[0].nodeValue );
		//when price was balnk it gives errors correctin ash 9-16-07		
		if (prodPrices[ thisProductIndex ].childNodes[0]){
			priceSpan.appendChild( document.createTextNode( prodPrices[ thisProductIndex ].childNodes[0].nodeValue) )
		}

		if ( prodImgs[ thisProductIndex ].childNodes[0].nodeValue != "")
		{
			prodImg.src = ProductImageLocation + prodImgs[ thisProductIndex ].childNodes[0].nodeValue;
		}
		
		if ( prodAddToCartLinks[ thisProductIndex ].childNodes[0].nodeValue != "")
		{
			addAnchor.href = prodAddToCartLinks[ thisProductIndex ].childNodes[0].nodeValue;
		}
		
		
		// alert(addAnchor);

		priceBlock.appendChild(priceSpan);

		addAnchor.appendChild(addImg);
		priceBlock.appendChild(addAnchor);

		/*
		prodDiv.appendChild(prodAnchor);
		
		// 2007.02.28 KJD: Added
		prodDiv.appendChild( priceBlock );
		*/

		
		prodDiv.appendChild(prodAnchor);
		
		// alert( prodDiv.innerHTML );

		
		// 2007.03.02 KJD: Changed to only this
		prodDiv.innerHTML = "<DIV class='productImage'>"
							+ "<a href=\"javascript:popin('" + selectedProducts[i] + "');\">"
							+ "<img class='product' src=\"" + prodImgs[ thisProductIndex ].childNodes[0].nodeValue + "\">"
							+ prodNames[ thisProductIndex ].childNodes[0].nodeValue
							+ "</a></DIV>";

		//prodDiv.appendChild( prodInfo );
		
		
		// 2007.02.28 KJD: Added
		prodDiv.appendChild( priceBlock );


		/*
		prodDiv.appendChild(priceSpan);
		prodDiv.appendChild(addAnchor);
		*/
		
		newCell.appendChild(prodDiv);
		var tBodyRow1 = document.getElementById("comparisonTable").tBodies[0].rows[0];
		tBodyRow1.appendChild(newCell);

		//show marker images
		var index = 1;
		var productNode = getProductNode(selectedProducts[i]);
		
		// alert(activityNumber);
		for(var j=0; j < activitiesToShow.length; j++)
		{
			thisActivity = activitiesToShow[j];
			
			var activityNode = getActivityNode(activitiesToShow[j]);

			var selectedActivityNode = actAddlItems[ j ];
			
			if( activityInProduct( productNode, thisActivity ) )
			{
				var markerCell = createMarkerCell();
				
				document.getElementById("comparisonTable").tBodies[0].rows[index++].appendChild(markerCell);
				
				for(var k=0; k < selectedActivityNode.getElementsByTagName("item").length; k++)
				{
					if( featureInProduct( productNode, selectedActivityNode.getElementsByTagName("item")[k].getAttribute("id") ) )
					{
						try
						{
							markerCell = createMarkerCell();
							document.getElementById("comparisonTable").tBodies[0].rows[index++].appendChild(markerCell);
						} catch(e){}
					}
					else
					{
						try
						{
							var emptyCell = createEmptyCell();
							document.getElementById("comparisonTable").tBodies[0].rows[index++].appendChild(emptyCell);
						}
						catch(e){}
					}
				}
			}
			else
			{
				var emptyCell = createEmptyCell();
				document.getElementById("comparisonTable").tBodies[0].rows[index++].appendChild(emptyCell);
				
				for(var k=0;k < selectedActivityNode.getElementsByTagName("item").length; k++)
				{
					try
					{
						var emptyCell = createEmptyCell();
						document.getElementById("comparisonTable").tBodies[0].rows[index++].appendChild(emptyCell);
					}
					catch(e){}
				}
			}
		}
	}
}

function createMarkerCell() {
	var markerCell = document.createElement("td");
	var markerImage = document.createElement("img");
	markerImage.className = "diamond";
	markerImage.setAttribute('src', ImageLocation + 'diamond_green.gif');
	markerImage.setAttribute('alt','');
	markerCell.appendChild(markerImage);
	return markerCell;
}

function createEmptyCell() {
	var emptyCell = document.createElement("td");
	return emptyCell;
}

// 2007.02.26 KJD: Load these items
function DoABMLoad()
{
	if( ( typeof xmlDocActivities == 'undefined' ) && 	window.FinderLoaded )
	{
		LoadActivityOptions();
		setTimeout( "DoABMLoad()", 250 );
	}
	else
	{
		// 2007.09.06 KJD: Check for data loaded first.
		ABM_CreateActivities_Windows();
		ABM_CreateActivities_Mac();
		
		
		filterActivities( 'windowsActivities' );
	}

}











