﻿
		var curTab = 0;
		var lastTab = 0; 
		
		function getNamedElements(sTagName, sName)
		{
            var rtn;
            try {
		        //workaround for IE not returning getElementsbyName correctly
                rtn = document.getElementsByName('geometrylength')
                if (rtn.length == 0 ) {
                    rtn = new Array();
                    var tmp = document.getElementsByTagName(sTagName);  //use tag name to speed up search
                    tmp = document.getElementsByTagName(sTagName);
                    for (var i=0; i<tmp.length; i++) {
                        if (tmp[i].name != null ) {
                            if (tmp[i].name == sName) {
                                rtn.push (tmp[i]);
                            }
                        }
                    }
                }
            }
            catch (ex) {
                //debugger;
            }
            return rtn; 
		}	
		
        function getObjInnerText(obj){
            if (document.all) { // IE;
                return obj.innerText;
            }
            else if (obj.textContent){ 
                return obj.textContent; //Firefox, other
            }
            else if (obj.text) {
                return obj.text; //other
            }
        }				

        function setObjInnerText(obj, sVal){
            if (document.all) { // IE;
                obj.innerText = sVal;
            }
            else if (obj.textContent){
                obj.textContent = sVal; //Firefox, other
            }
            else if (obj.text) {
                obj.text = sVal; //other
            }
        }
		
        function displayCurrentTab() {
            var tabIds = new Array('product_overview_tab', 'product_specs_tab', 'product_geo_tab', 'product_reviews_tab', '', '');
            for (var i = 0; i < tabIds.length; i++) {
                var obj = document.getElementById(tabIds[i]);
                if (obj != null)
                    obj.className = "";
            }
            
            var obj = document.getElementById(tabIds[curTab]);
            if (obj != null)
                obj.className = "selected";
                
            var tabContent = new Array("product_overview", "product_specs", "product_geo", "product_reviews", "product_write_review");
            for (var i = 0; i < tabContent.length; i++)
                document.getElementById(tabContent[i]).className = "displayNone";
            
            document.getElementById(tabContent[curTab]).className = "content";
			
			if(curTab != 0) {
				document.getElementById("product_detail_left_div").style.display = "";
			}
			else {
				document.getElementById("product_detail_left_div").style.display = "none";
			}
        }
        
		function queryOverview() {
			curTab = 0;
			displayCurrentTab();
		}
	
		function queryFullSpecs() {
			curTab = 1;
			displayCurrentTab();
		}
		
		function queryGeometry() {
			curTab = 2;
			updateCentimetersInches ('"');  //display in inches initially. comment out to display in mm.
			displayCurrentTab();
		}
		
		function queryReviews() {
			curTab = 3;
			displayCurrentTab();
		}
		
		function queryWriteReview() {
			curTab = 4;
			displayCurrentTab();
		}
		
		
		function linearMeasurement(inches, mm) {
		    this.inches = inches;
		    this.millimeters = mm;
		}
		
		var linearMeasurements = new Array();
					
		function updateCentimetersInches(changeTo) {
		    try {
		        if (linearMeasurements.length == 0 ){
		            //build the table of measurements
                    var geoCells = getNamedElements('SPAN', 'geometrylength');
		            for (var i = 0; i < geoCells.length; i++) {
                        //it's a length that needs converting.
                        //var rawValue = geoCells[i].innerHTML;
                        var rawValue = getObjInnerText(geoCells[i]);
                        
                        var mmValue = 0.0;
                        var inValue = 0.0;
                        rawValue = rawValue.replace(' ' , '');
                        if ((rawValue.indexOf('in') > -1) || (rawValue.indexOf('"') > -1)) {
                            //its in inches, convert to mm
                            inValue = parseFloat(rawValue.replace('"','').replace('in',''));
                            mmValue = inValue * 25.4;
                        }
                        else {//assume in mm if other or no units
                            //its in mm, convert to inches
                            mmValue = parseFloat(rawValue.replace('mm',''));
                            inValue = mmValue / 25.4;
                        }
                        mmValue = Math.round(mmValue * 10) /10;
                        inValue = Math.round(inValue * 10) /10;
                        var bothMeasurements = new linearMeasurement(inValue, mmValue);
                        linearMeasurements.push (bothMeasurements)
                        
                    } //for each cell            
                } //null geometry array
            } 
            catch (myErr)
            {
                //debugger;
            }
 
            //do the conversion
            try {
                var measurementIndex = 0;
                var geoCells = getNamedElements('SPAN', 'geometrylength');
		        for (var i = 0; i < geoCells.length; i++) {
                    //it's a length that needs converting.
                    var bothMeasurements = linearMeasurements[measurementIndex];
                                
                    if (changeTo=='mm') {
                        //display in mm
                        setObjInnerText (geoCells[i], bothMeasurements.millimeters + changeTo);
                        //geoCells[i].innerHTML = bothMeasurements.millimeters + changeTo;
                    }
                    else {
                        //display in inches
                        setObjInnerText (geoCells[i], bothMeasurements.inches + changeTo);
                        //geoCells[i].innerHTML =  bothMeasurements.inches + changeTo;
                    }
                                
                    measurementIndex++;
                } //for each cell     
            }
            catch (myErr)       
            {
                //debugger;
            }
		}
		