if (!MY10) {
	var MY10 = { compareSpecs: {} };
}
else if (!MY10.compareSpecs) {
	MY10.compareSpecs = {};
}


// variables

//Container Node
var containerNode = "specs_section";

// to location column variables (classnames)
var colOne = "label";
var colTwo = "dataOne";
var colThree = "dataTwo";
var colFour = "dataThree";

// from location column variables (classnames)
var label = "label";
var englishData = "value_English";
var metricData = "value_metric";	
var nonMeasure = "value";
var writeInProgress = true;

// shared position constants
	
	/**
	 * Hdr Images
	 */
	var to_hdr_image = "cmp_bikeImage";

	
	/**
	 * Dimensions
	 */
	// to location specific sections(ids)
	var to_hdrBikeImage = "cmp_bikeImage";
	var to_dimensions = "cmp_dimension";
	var to_dimensions_length = "cmp_dimension_length";
	var to_dimensions_seatHeight = "cmp_dimension_seatheight";
	var to_dimensions_laden = "cmp_dimension_laden";
	var to_dimensions_unladen = "cmp_dimension_unladen";
	var to_dimensions_groundClear = "cmp_dimension_groundclear";
	var to_dimensions_rakeSteering = "cmp_dimension_rakeSteering";
	var to_dimensions_trail = "cmp_dimension_trail";	
	var to_dimensions_wheelbase = "cmp_dimension_wheelbase";
	var to_dimensions_trackWidth = "cmp_dimension_trackWidth";		
	var to_dimensions_fuel = "cmp_dimension_fuel";
	var to_dimensions_oil = "cmp_dimension_oil";
	var to_dimensions_weight = "cmp_dimension_weight";
	var to_dimensions_dryWeight = "cmp_dimension_dryWeight";
	var to_dimensions_runningWeight = "cmp_dimension_runningWeight";
	var to_dimensions_luggage = "cmp_dimension_luggage";
	var to_dimensions_luggageVolume = "cmp_dimension_luggageVolume";
	var to_dimensions_luggageWeight = "cmp_dimension_luggageWeight";		

	// from location specific sections(ids)
	var from_dimesions = "dimensions";
	var from_dimensions_length = "length";
	var from_dimensions_seatHeight = "seat_height";
	var from_dimensions_laden = "laden";
	var from_dimensions_unladen = "unladen";	
	var from_dimensions_groundClear = "ground_clearance";
	var from_dimensions_rakeSteering = "rake_steering_head";
	var from_dimensions_trail = "trail";
	var from_dimensions_wheelbase = "wheelbase";
	var from_dimensions_trackWidth = "track_width";
	var from_dimensions_fuel = "fuel_capacity";
	var from_dimensions_oil = "oil_capacity";
	var from_dimensions_weight = "weight";
	var from_dimensions_dryWeight = "dry_weight";
	var from_dimensions_runningWeight = "running_order";
	var from_dimensions_luggage = "luggage_capacity";
	var from_dimensions_luggageVolume = "luggage_volume";
	var from_dimensions_luggageWeight = "luggage_weight";	
	
	/**
	 * Powertrain
	 */
	// to location specific sections(ids)
	var to_powertrain = "cmp_powertrain";
	var to_powertrain_engine = "cmp_powertrain_engine";
	var to_powertrain_displacement = "cmp_powertrain_displacement";
	var to_powertrain_bore = "cmp_powertrain_bore";
	var to_powertrain_stroke = "cmp_powertrain_stroke";		
	var to_powertrain_torqueSae = "cmp_powertrain_torqueSae";
	var to_powertrain_torqueFt = "cmp_powertrain_torqueFt";
	var to_powertrain_torqueRpm = "cmp_powertrain_torqueRpm";	
	var to_powertrain_fuel = "cmp_powertrain_fuel";
	var to_powertrain_compression = "cmp_powertrain_compression";
	var to_powertrain_mpg = "cmp_powertrain_mpg";	
	var to_powertrain_fuelurban = "cmp_powertrain_fuelurban";
	var to_powertrain_fuelhwy = "cmp_powertrain_fuelhwy";	
	var to_powertrain_primaryDrive = "cmp_powertrain_primaryDrive";
	var to_powertrain_gear = "cmp_powertrain_gearRatio";
	var to_powertrain_firstGear = "cmp_powertrain_firstGear";
	var to_powertrain_secondGear = "cmp_powertrain_secondGear";
	var to_powertrain_thirdGear = "cmp_powertrain_thirdGear";
	var to_powertrain_fourthGear = "cmp_powertrain_fourthGear";
	var to_powertrain_fifthGear = "cmp_powertrain_fifthGear";
	var to_powertrain_sixthGear = "cmp_powertrain_sixthGear";	
	
	// from location specific sections(ids)
	var from_powertrain = "powertrain";
	var from_powertrain_engine = "engine";
	var from_powertrain_displacement = "displacement";
	var from_powertrain_bore = "bore_stroke";
	var from_powertrain_stroke = "stroke";	
	var from_powertrain_torqueSae = "engine_torque_sae";
	var from_powertrain_torqueFt = "engine_torque_ftlbs";
	var from_powertrain_torqueRpm = "engine_torque_rpm";	
	var from_powertrain_fuel = "fuel_system";
	var from_powertrain_compression = "compression_ratio";
	var from_powertrain_mpg = "fuel_economy";	
	var from_powertrain_fuelurban = "fuel_economy_urban";
	var from_powertrain_fuelhwy = "fuel_economy_hwy";	
	var from_powertrain_primaryDrive = "primary_drive";
	var from_powertrain_gear = "gear_ratio";
	var from_powertrain_firstGear = "first";
	var from_powertrain_secondGear = "second";
	var from_powertrain_thirdGear = "third";
	var from_powertrain_fourthGear = "fourth";
	var from_powertrain_fifthGear = "fifth";
	var from_powertrain_sixthGear = "sixth";	
	
	/**
	 * Wheels/Tires
	 */
	// to location specific sections(ids)
	var to_wheel = "cmp_wheel";
	var to_wheel_wheel = "cmp_wheel_wheel";
	var to_wheel_front = "cmp_wheel_front";
	var to_wheel_rear = "cmp_wheel_rear";
	var to_wheel_option = "cmp_wheel_option";
	var to_wheel_size = "cmp_wheel_size";
	var to_wheel_sizeFront = "cmp_wheel_sizeFront";
	var to_wheel_sizeRear = "cmp_wheel_sizeRear";		
			
	// from location specific sections(ids)
	var from_wheel = "wheels_tires";
	var from_wheel_wheel = "wheels";
	var from_wheel_front = "wheel_front";
	var from_wheel_rear = "wheel_rear";
	var from_wheel_option = "wheel_option";
	var from_wheel_size = "tire_size";
	var from_wheel_sizeFront = "tire_front";
	var from_wheel_sizeRear = "tire_rear";	
	
	/**
	 * Electrical
	 */
	// to location specific sections(ids)
	var to_electrical = "cmp_electrical";
	var to_electrical_instruments = "cmp_electrical_instruments";
	var to_electrical_lamps = "cmp_electrical_lamps";
	var to_electrical_reverse = "cmp_electrical_reverse";
	
	// from location specific sections(ids)
	var from_electrical = "electrical";
	var from_electrical_instruments = "instruments";
	var from_electrical_lamps = "indicator_lamps";
	var from_electrical_reverse = "reverse_gear";
	
	/**
	 * Chassis
	 */
	// to location specific sections(ids)
	var to_chassis = "cmp_chassis";
	var to_chassis_brakes = "cmp_chassis_brakes";
	var to_chassis_parkingBrakes = "cmp_chassis_parkingBrakes";
	var to_chassis_leanAngle = "cmp_chassis_leanAngle";
	var to_chassis_exhaust = "cmp_chassis_exhaust";		
	
	// from location specific sections(ids)
	var from_chassis = "chassis";
	var from_chassis_brakes = "brakes";
	var from_chassis_parkingBrakes = "parking_break";
	var from_chassis_leanAngle = "lean_angle";
	var from_chassis_exhaust = "exhaust_system";
	
	/**
	 * Color Options
	 */
	// to location specific sections(ids)
	var to_color = "cmp_color";
	var to_color_values = "cmp_color_values";
	
	// from location specific sections(ids)
	var from_color = "color_options";
	var from_color_values = "colors";	
	
	/**
	 * Pricing
	 */
	// to location specific sections(ids)
	var to_pricing = "cmp_pricing";
	var to_pricing_msrp = "cmp_pricing_msrp";
	var to_pricing_black = "cmp_pricing_black";
	var to_pricing_color = "cmp_pricing_color";
	var to_pricing_twoTone = "cmp_pricing_twoTone";
	var to_pricing_customColor = "cmp_pricing_custom";
	var to_pricing_security = "cmp_pricing_security";
	var to_pricing_wheel = "cmp_pricing_wheel";
	var to_pricing_wheel2 = "cmp_pricing_wheel2";
	var to_pricing_abs = "cmp_pricing_abs";
	var to_pricing_reverse = "cmp_pricing_reverse";
	var to_pricing_cruise = "cmp_pricing_cruise";
	var to_pricing_california = "cmp_pricing_california";
	var to_pricing_freight = "cmp_pricing_freight";
	
	// from location specific sections(ids)
	var from_pricing = "pricing";
	var from_pricing_msrp = "msrp";
	var from_pricing_black = "base_price";
	var from_pricing_color = "color_price";
	var from_pricing_twoTone = "two-tone_price";
	var from_pricing_customColor = "custom_price";
	var from_pricing_security = "security_price";
	var from_pricing_wheel = "wheel_option_price";
	var from_pricing_abs = "abs_option_price";
	var from_pricing_reverse = "reverse_option_price";
	var from_pricing_cruise = "cruise_option_price";
	var from_pricing_california = "emissions_option_price";
	var from_pricing_freight = "freight_price";	
	
	/**
	 * Shared locations
	 */
	var to_disclaimer = "compare_specs_dislaimer";
	var from_disclaimer = "disclaimer";
	
	var to_footnote = "compare_specs_footnotes";
	var from_footnote = "footnotes";
	
	var to_backToTop = "compare_specs_backToTop";
	var from_backToTop = "back_top";	
	
	var from_modelOverviewText = "linkCompareText";
	

MY10.compareSpecs.dataMap = {
	
	/**
	 * This method will get the empty xml file and write out all
	 * the labels on DOM ready
	 * 
	 * @method writeLabels	
	 */
	writeLabels : function (  ) {	
		
		// write disclaimer
		MY10.compareSpecs.dataMap.writeSimpleToFrom(to_disclaimer, from_disclaimer);
		
		// write footnote
		MY10.compareSpecs.dataMap.writeSimpleToFrom(to_footnote, from_footnote);
		
		/*
		// write back to top	
		MY10.compareSpecs.dataMap.writeSimpleToFrom(to_backToTop, from_backToTop);
		MY10.compareSpecs.writeBackToTopButton(to_backToTop);			
		*/		
		
		/**
		 * Dimensions
		 */
		MY10.compareSpecs.dataMap.writeData(to_dimensions, colOne, from_dimesions, label, "sectionHdr");		
		MY10.compareSpecs.dataMap.writeData(to_dimensions_length, colOne, from_dimensions_length, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_seatHeight, colOne, from_dimensions_seatHeight, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_laden, colOne, from_dimensions_laden, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_unladen, colOne, from_dimensions_unladen, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_groundClear, colOne, from_dimensions_groundClear, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_rakeSteering, colOne, from_dimensions_rakeSteering, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_trail, colOne, from_dimensions_trail, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_wheelbase, colOne, from_dimensions_wheelbase, label, "cat");
		//MY10.compareSpecs.dataMap.writeData(to_dimensions_trackWidth, colOne, from_dimensions_trackWidth, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_dimensions_fuel, colOne, from_dimensions_fuel, label, "cat");			
		MY10.compareSpecs.dataMap.writeData(to_dimensions_oil, colOne, from_dimensions_oil, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_weight, colOne, from_dimensions_weight, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_dryWeight, colOne, from_dimensions_dryWeight, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_runningWeight, colOne, from_dimensions_runningWeight, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_luggage, colOne, from_dimensions_luggage, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_luggageVolume, colOne, from_dimensions_luggageVolume, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_dimensions_luggageWeight, colOne, from_dimensions_luggageWeight, label, "cat");		
				
		/**
		 * Powertrain
		 */
		MY10.compareSpecs.dataMap.writeData(to_powertrain, colOne, from_powertrain, label, "sectionHdr");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_engine, colOne, from_powertrain_engine, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_displacement, colOne, from_powertrain_displacement, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_bore, colOne, from_powertrain_bore, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_stroke, colOne, from_powertrain_stroke, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_torqueSae, colOne, from_powertrain_torqueSae, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_torqueFt, colOne, from_powertrain_torqueFt, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_torqueRpm, colOne, from_powertrain_torqueRpm, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fuel, colOne, from_powertrain_fuel, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_compression, colOne, from_powertrain_compression, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_mpg, colOne, from_powertrain_mpg, label, "catWithSubs");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fuelurban, colOne, from_powertrain_fuelurban, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fuelhwy, colOne, from_powertrain_fuelhwy, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_primaryDrive, colOne, from_powertrain_primaryDrive, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_gear, colOne, from_powertrain_gear, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_firstGear, colOne, from_powertrain_firstGear, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_secondGear, colOne, from_powertrain_secondGear, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_thirdGear, colOne, from_powertrain_thirdGear, label, "cat");		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fourthGear, colOne, from_powertrain_fourthGear, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fifthGear, colOne, from_powertrain_fifthGear, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_powertrain_sixthGear, colOne, from_powertrain_sixthGear, label, "cat");
				
		/**
		 * Wheels
		 */
		MY10.compareSpecs.dataMap.writeData(to_wheel, colOne, from_wheel, label, "sectionHdr");
		MY10.compareSpecs.dataMap.writeData(to_wheel_wheel, colOne, from_wheel_wheel, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_wheel_front, colOne, from_wheel_front, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_wheel_rear, colOne, from_wheel_rear, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_wheel_option, colOne, from_wheel_option, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_wheel_size, colOne, from_wheel_size, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_wheel_sizeFront, colOne, from_wheel_sizeFront, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_wheel_sizeRear, colOne, from_wheel_sizeRear, label, "cat");
				
		/**
		 * Electrical
		 */
		MY10.compareSpecs.dataMap.writeData(to_electrical, colOne, from_electrical, label, "sectionHdr");
		MY10.compareSpecs.dataMap.writeData(to_electrical_instruments, colOne, from_electrical_instruments, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_electrical_lamps, colOne, from_electrical_lamps, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_electrical_reverse, colOne, from_electrical_reverse, label, "cat");		
				
		/**
		 * Chassis
		 */
		MY10.compareSpecs.dataMap.writeData(to_chassis, colOne, from_chassis, label, "sectionHdr");
		MY10.compareSpecs.dataMap.writeData(to_chassis_brakes, colOne, from_chassis_brakes, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_chassis_parkingBrakes, colOne, from_chassis_parkingBrakes, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_chassis_leanAngle, colOne, from_chassis_leanAngle, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_chassis_exhaust, colOne, from_chassis_exhaust, label, "cat");
				
		/**
		 * Color
		 */
		MY10.compareSpecs.dataMap.writeData(to_color, colOne, from_color, label, "sectionHdr");		
				
		/**
		 * Pricing
		 */
		MY10.compareSpecs.dataMap.writeData(to_pricing, colOne, from_pricing, label, "sectionHdr");
		MY10.compareSpecs.dataMap.writeData(to_pricing_msrp, colOne, from_pricing_msrp, label, "catWithSubs");
		MY10.compareSpecs.dataMap.writeData(to_pricing_black, colOne, from_pricing_black, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_color, colOne, from_pricing_color, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_twoTone, colOne, from_pricing_twoTone, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_customColor, colOne, from_pricing_customColor, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_security, colOne, from_pricing_security, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_wheel, colOne, from_pricing_wheel, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_wheel2, colOne, from_pricing_wheel, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_abs, colOne, from_pricing_abs, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_reverse, colOne, from_pricing_reverse, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_cruise, colOne, from_pricing_cruise, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_california, colOne, from_pricing_california, label, "cat");
		MY10.compareSpecs.dataMap.writeData(to_pricing_freight, colOne, from_pricing_freight, label, "cat");	
	
	}, // end writeLabels	
	
	/**
	 * This method will set up the process of writing the model
	 * data to the page
	 * 
	 * @method writeModelData
	 * @param  {String} model: bike model
	 * @param  {String} pos: position to write data to	
	 * @param  {String} reset: are we reseting the data to init state	
	 */
	writeModelData : function (model, pos, reset){	
		
		var writePos;
		var dataMeasure;		
		
		// determine which column to write data to
		if(1 == pos)
			writePos = colTwo;	
		else if(2 == pos)
			writePos = colThree;
		else if(3 == pos)
			writePos = colFour
		
		// which measurement are we going to use	
		if("us" != market)
			dataMeasure = metricData;
		else
			dataMeasure = englishData;					
		
		// write the model image
		MY10.compareSpecs.dataMap.writeDataImage(to_hdr_image, writePos, pos, reset);		
		
		/**
		 * Dimensions
		 */			
		MY10.compareSpecs.dataMap.writeData(to_dimensions_length, writePos, from_dimensions_length, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_dimensions_laden, writePos, from_dimensions_laden, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_unladen, writePos, from_dimensions_unladen, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_groundClear, writePos, from_dimensions_groundClear, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_rakeSteering, writePos, from_dimensions_rakeSteering, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_trail, writePos, from_dimensions_trail, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_wheelbase, writePos, from_dimensions_wheelbase, dataMeasure, "cat", reset);
		//MY10.compareSpecs.dataMap.writeData(to_dimensions_trackWidth, writePos, from_dimensions_trackWidth, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_dimensions_fuel, writePos, from_dimensions_fuel, dataMeasure, "cat", reset);			
		MY10.compareSpecs.dataMap.writeData(to_dimensions_oil, writePos, from_dimensions_oil, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_dimensions_dryWeight, writePos, from_dimensions_dryWeight, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_runningWeight, writePos, from_dimensions_runningWeight, dataMeasure, "cat", reset);	
		MY10.compareSpecs.dataMap.writeData(to_dimensions_luggageVolume, writePos, from_dimensions_luggageVolume, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_dimensions_luggageWeight, writePos, from_dimensions_luggageWeight, dataMeasure, "cat", reset);		
				
		/**
		 * Powertrain
		 */				
		MY10.compareSpecs.dataMap.writeData(to_powertrain_engine, writePos, from_powertrain_engine, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_displacement, writePos, from_powertrain_displacement, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_bore, writePos, from_powertrain_bore, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_stroke, writePos, from_powertrain_stroke, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_torqueSae, writePos, from_powertrain_torqueSae, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_torqueFt, writePos, from_powertrain_torqueFt, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_torqueRpm, writePos, from_powertrain_torqueRpm, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fuel, writePos, from_powertrain_fuel, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_compression, writePos, from_powertrain_compression, dataMeasure, "cat", reset);			
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fuelurban, writePos, from_powertrain_fuelurban, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fuelhwy, writePos, from_powertrain_fuelhwy, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_primaryDrive, writePos, from_powertrain_primaryDrive, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_firstGear, writePos, from_powertrain_firstGear, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_secondGear, writePos, from_powertrain_secondGear, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_thirdGear, writePos, from_powertrain_thirdGear, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fourthGear, writePos, from_powertrain_fourthGear, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_fifthGear, writePos, from_powertrain_fifthGear, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_powertrain_sixthGear, writePos, from_powertrain_sixthGear, dataMeasure, "cat", reset);
				
		/**
		 * Wheels
		 */			
		MY10.compareSpecs.dataMap.writeData(to_wheel_front, writePos, from_wheel_front, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_wheel_rear, writePos, from_wheel_rear, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_wheel_option, writePos, from_wheel_option, dataMeasure, "cat", reset);		
		MY10.compareSpecs.dataMap.writeData(to_wheel_sizeFront, writePos, from_wheel_sizeFront, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_wheel_sizeRear, writePos, from_wheel_sizeRear, dataMeasure, "cat", reset);
				
		/**
		 * Electrical
		 */	
		MY10.compareSpecs.dataMap.writeData(to_electrical_instruments, writePos, from_electrical_instruments, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_electrical_lamps, writePos, from_electrical_lamps, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_electrical_reverse, writePos, from_electrical_reverse, dataMeasure, "cat", reset);		
				
		/**
		 * Chassis
		 */		
		MY10.compareSpecs.dataMap.writeData(to_chassis_brakes, writePos, from_chassis_brakes, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_chassis_parkingBrakes, writePos, from_chassis_parkingBrakes, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_chassis_leanAngle, writePos, from_chassis_leanAngle, dataMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_chassis_exhaust, writePos, from_chassis_exhaust, dataMeasure, "cat", reset);
				
		/**
		 * Color
		 */
		MY10.compareSpecs.dataMap.writeData(to_color_values, writePos, from_color_values, dataMeasure, "cat", reset);		
				
		/**
		 * Pricing
		 */		
		MY10.compareSpecs.dataMap.writeData(to_pricing_black, writePos, from_pricing_black, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_color, writePos, from_pricing_color, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_twoTone, writePos, from_pricing_twoTone, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_customColor, writePos, from_pricing_customColor, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_security, writePos, from_pricing_security, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_wheel, writePos, from_pricing_wheel, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_wheel2, writePos, from_pricing_wheel, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_abs, writePos, from_pricing_abs, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_reverse, writePos, from_pricing_reverse, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_cruise, writePos, from_pricing_cruise, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_california, writePos, from_pricing_california, nonMeasure, "cat", reset);
		MY10.compareSpecs.dataMap.writeData(to_pricing_freight, writePos, from_pricing_freight, nonMeasure, "cat", reset);			
		
	},
	
	/**
	 * This method do the actually getting of data from one location and 
	 * writing it to another
	 * 
	 * @method writeData
	 * @param  {String} toLocation: location id where data will be written to
	 * @param  {String} toPos: column in which data will be written to
	 * @param  {String} fromLocation: location id where data will be originally at
	 * @param  {String} fromPos: what type of data you are getting will help to parse the
	 * 					xml file structure
	 * @param  {String} reset: is true we will reset the column selected
	 */
	writeData : function (toLocation, toPos , fromLocation, fromPos, type, reset) {			
		var toEl = YUD.get(toLocation);
		var toTD = YUD.getElementsByClassName(toPos, "td", toEl);
		var data = MY10.compareSpecs.dataMap.getXmlData(fromLocation, fromPos, type);			
		
		// get second wheel option price if there is any (en_au and en_nz)
		if(locale == "en_au"){
			data = MY10.compareSpecs.dataMap.getWheelOptionPrice(toEl, fromLocation, fromPos, type, data);
		}
		
		// if reset we will just insert a space
		if(reset)
			toTD[0].innerHTML = "&nbsp;";	
		else if(toTD[0])	
			toTD[0].innerHTML = data;	
		
		// we are checking to see if the last item is written if so 
		// set finished to true	
		if(toLocation == to_pricing_freight)
			writeInProgress = false;		
		
		if((toLocation == to_pricing_freight) && (fromPos == "label") && !reset && !model && loaderOpen){
			MY10.closeLoader();	
			YUD.setStyle(my10CompareContainer, "display", "block");
			//SWFAddress.addEventListener(SWFAddressEvent.CHANGE , MY10.compareListener);									
		}						
		else if((toLocation == to_pricing_freight) && (fromPos != "label") && !reset && model && loaderOpen){
			MY10.closeLoader();						
			YUD.setStyle(my10CompareContainer, "display", "block");
			//SWFAddress.addEventListener(SWFAddressEvent.CHANGE , MY10.compareListener());					
		}
								
				
	}, // end writeData
	
	/**
	 * This method will write the models image to the page
	 * 
	 * @method writeDataImage
	 * @param  {String} toLocation: location id where data will be written to
	 * @param  {String} toPos: column in which data will be written to
	 * @param  {String} numberPos: to actually column number 1.2.3.4
	 * @param  {String} reset: if true reset image
	 */
	writeDataImage : function(toLocation, toPos, numberPos, reset) {			
		var toEl = YUD.get(toLocation);
		var titleClass = "title";		
		var bikeImageID = "bike_image";		
		var elTitle = YUD.getElementsByClassName(titleClass, "h1", containerNode);
		try {
			var linkCompareToText = YUD.get(from_modelOverviewText).innerHTML;
		}
		catch(e){
			var linkCompareToText = "An Error has occured."
		}
		var bikeHdr;
		var bikeImage;
		var bikeLink;
		
		// check if we are reseting the image
		if(!reset){			
			bikeHdr = elTitle[0].innerHTML;
			bikeImage = '<img src="' + YUD.get(bikeImageID).src + '" />';
			bikeLink = '<a href="javascript:void(0);" id="bikeLink_' + numberPos + '">'+ linkCompareToText + '</a><img src="/en_US/Media/images/Apps/2010_Motorcycles/specs/img_compareArrow.gif" alt="" />';
		}		
		else{			
			bikeHdr = '&nbsp;';
			bikeImage = '<img src="/en_US/Media/images/Apps/2010_Motorcycles/specs/empty_dom_c01_sws_s.jpg" />';	
			bikeLink = '&nbsp;';		
		} 					
				
		// get location to write image to		
		var toTD = YUD.getElementsByClassName(toPos, "td", toEl);			
		var bikeHdrLocation = YUD.getElementsByClassName("hdrBike", "div", toTD[0]);
		var bikeImageLocation = YUD.getElementsByClassName("bikeImage", "div", toTD[0]);
		var bikeLinkLocation = YUD.getElementsByClassName("bikeLink", "div", toTD[0]);		
		
		// write the image		
		if(bikeHdrLocation[0] && bikeImageLocation[0] && bikeLinkLocation[0]){			
			bikeHdrLocation[0].innerHTML = bikeHdr;
			bikeImageLocation[0].innerHTML = bikeImage;
			bikeLinkLocation[0].innerHTML = bikeLink;
		}		
		
		// we only want to add a listener when we are not 
		// reseting the page
		if (!reset) {			
			YUE.onContentReady("bikeLink_" + numberPos, function(){
				YUE.addListener(YUD.get("bikeLink_" + numberPos), "click", function(){
					switch (numberPos) {
						case 1:
							MY10.openPrintableSpecs(model);
							break;
						case 2:
							MY10.openPrintableSpecs(modelTwo);
							break;
						case 3:
							MY10.openPrintableSpecs(modelThree);
							break;
					}
				});
			});
		}	
		
	},
	
	/**
	 * This method will take a to location and from location and simply just
	 * write one to the other
	 * 
	 * @method writeSimpleToFrom
	 * @param  {String} toLocation: location id where data will be written to
	 * @param  {String} fromLocation: location id where data will be from	
	 */
	writeSimpleToFrom : function (toLocation, fromLocation) {
		var toEl = YUD.get(toLocation);
		var fromEl = YUD.get(fromLocation);
		
		if(fromEl)
			toEl.innerHTML = fromEl.innerHTML;				
	},
	
	/**
	 * This method will take a to location and from location and simply just
	 * write one to the other
	 * 
	 * @method getXmlData
	 * @param  {String} fromLocation: location id where data will be from	
	 * @param  {String} fromPos: id where data is located
	 * @param  {String} type: identifier used to map xml
	 * 
	 */	
	getXmlData : function ( fromLocation, fromPos, type ) {		
		
		var data;		
		
		// since the xml are all standard we will just need need to know the id of the
		// section to look in, and the type of data in that section you want, this section
		// will then parse the xml to find the data
		try {
			if ("sectionHdr" == type) {
				var xmlData = YUD.getElementsByClassName(fromPos, "h2", fromLocation);
				data = xmlData[0].innerHTML;
			}
			else 
				if ("cat" == type) {
					var xmlData = YUD.getElementsByClassName(fromPos, "td", fromLocation);
					data = xmlData[0].innerHTML;
				}
				else 
					if ("catWithSubs" == type) {
						var xmlData = YUD.getElementsByClassName(fromPos, "h3", fromLocation);
						data = xmlData[0].innerHTML;
					}
		}
		catch(e){
			data = "";
		}
		return data;			
		
	}, // getXmlDat	
	
	getWheelOptionPrice : function(toEl, fromLocation, fromPos, type, data){
		if(toEl.id == to_pricing_wheel2){
			var wop1 = document.getElementById(fromLocation);
			var sibling = YUD.getNextSibling(wop1);
			var wop2 = "&nbsp";
			if (sibling.id == fromLocation){
				var xmlData = YUD.getElementsByClassName(fromPos, "td", sibling);
				wop2 = xmlData[0].innerHTML;
				
			}
			var wop1lbl = YUD.getFirstChild(YUD.getPreviousSibling(toEl));
			wop1lbl.innerHTML = "Wheel Option<br/>(Solid Colour)";
			var wop2lbl = YUD.getFirstChild(toEl);
			wop2lbl.innerHTML = "Wheel Option<br/>(Two-Tone)";
			return wop2;
		}else{
			return data;
		}
	}
	
};
