/****************************************************************************************
Copyright (c) 2007 Ethicon Endo-Surgery, Inc.(EES).

This software is the confidential and proprietary information of EES. ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in accordance with the terms of the license agreement you entered into with EES.

VERSION 	1.1
AUTHOR		Doug Scamahorn

DATE       	NAME           	DESCRIPTON
09/24/2007 	Doug Scamahorn  Initial creation.
12/10/2007	Doug Scamahorn	Updated interactWithWidget function. When gathering form values the form was incorrectly targeted. Changed definiitio of variable "f" to f = bmiCalcForm;.
03/06/2010	Ben Rondot		Added atlas tag and dcsMultiTrack to the submit function.

****************************************************************************************/
//Initialize the BMI Calculator Widget
function initializeBMICalcWidget() {
	//Test for browser support of DOM
	if (!document.getElementById) return false;
	//Test for DOM elements
	if(!document.getElementById("bmiCalcManual")) return false;
	//Gather page information
	var bmiCalcManual = document.getElementById("bmiCalcManual");
	var bmiCalcContainer = bmiCalcManual.parentNode;
	//Add the Widget container
	var bmiCalcWidget = document.createElement("div");
	bmiCalcWidget.setAttribute("id","bmiCalcWidget");
	bmiCalcContainer.insertBefore(bmiCalcWidget,bmiCalcManual);
	//Remove the Manual content
	bmiCalcContainer.removeChild(bmiCalcManual);
	//Add the Widget to the content
	bmiCalcWidget.innerHTML = "<form name='bmiCalcForm' id='bmiCalcForm' class='bmiCalcForm'><fieldset><legend>Your Height and Weight:</legend><p class='cc_formFieldRequired'><img src='/images/interface/requiredField.gif' alt='(Required Field)' class='cc_formFieldRequired'/> <em>= required field</em></p><p id='bmiCalcRowHeight'><label for='bmiCalcTxtFldFeet'>Height:</label><select name='bmiCalcSelectHeight' id='bmiCalcSelectHeight'><option value='Select' selected>Select</option><option value='48'>4&#39; 0&#34;</option><option value='49'>4&#39; 1&#34;</option><option value='50'>4&#39; 2&#34;</option><option value='51'>4&#39; 3&#34;</option><option value='52'>4&#39; 4&#34;</option><option value='53'>4&#39; 5&#34;</option><option value='54'>4&#39; 6&#34;</option><option value='55'>4&#39; 7&#34;</option><option value='56'>4&#39; 8&#34;</option><option value='57'>4&#39; 9&#34;</option><option value='58'>4&#39; 10&#34;</option><option value='59'>4&#39; 11&#34;</option><option value='60'>5&#39; 0&#34;</option><option value='61'>5&#39; 1&#34;</option><option value='62'>5&#39; 2&#34;</option><option value='63'>5&#39; 3&#34;</option><option value='64'>5&#39; 4&#34;</option><option value='65'>5&#39; 5&#34;</option><option value='66'>5&#39; 6&#34;</option><option value='67'>5&#39; 7&#34;</option><option value='68'>5&#39; 8&#34;</option><option value='69'>5&#39; 9&#34;</option><option value='70'>5&#39; 10&#34;</option><option value='71'>5&#39; 11&#34;</option><option value='72'>6&#39; 0&#34;</option><option value='73'>6&#39; 1&#34;</option><option value='74'>6&#39; 2&#34;</option><option value='75'>6&#39; 3&#34;</option><option value='76'>6&#39; 4&#34;</option><option value='77'>6&#39; 5&#34;</option><option value='78'>6&#39; 6&#34;</option><option value='79'>6&#39; 7&#34;</option><option value='80'>6&#39; 8&#34;</option><option value='81'>6&#39; 9&#34;</option><option value='82'>6&#39; 10&#34;</option><option value='83'>6&#39; 11&#34;</option><option value='84'>7&#39; 0&#34;</option></select><img src='/images/interface/requiredField.gif' alt='(Required Field)' class='cc_formFieldRequired'/></p><p id='bmiCalcRowWeight'><label for='bmiCalcTxtFldWeight'>Weight:</label><input name='bmiCalcTxtFldWeight' type='text' id='bmiCalcTxtFldWeight' size='3' maxlength='3' tabindex='3'>&nbsp;(lbs)<img src='/images/interface/requiredField.gif' alt='(Required Field)' class='cc_formFieldRequired'/></p></fieldset><p><input class='submit' type='image' name='bmiCalcBtnSubmit' id='bmiCalcBtnSubmit' src='/images/interface/btnSubmit.gif' tabindex='4'></p></form>";
	//Create Widget Error Message Header
	bmiCalcWidgetErrorHeader = document.createElement("p");	//Global variable accessible outside the function
	var bmiCalcWidgetErrorHeaderText = document.createTextNode("One or more required fields below contain errors. Please correct the items noted below then re-submit the form.");
	bmiCalcWidgetErrorHeader.setAttribute("class","cc_formErrorHeader");
	bmiCalcWidgetErrorHeader.setAttribute("id","bmiCalcWidgetErrorHeader");
	bmiCalcWidgetErrorHeader.appendChild(bmiCalcWidgetErrorHeaderText);
	//Create Widget Height Error Message
	bmiCalcWidgetErrorHeight = document.createElement("span");	//Global variable accessible outside the function
	var bmiCalcWidgetErrorHeightText = document.createTextNode("Please select your height.");
	bmiCalcWidgetErrorHeight.setAttribute("class","cc_formError");
	bmiCalcWidgetErrorHeight.setAttribute("id","bmiCalcWidgetErrorHeight");
	bmiCalcWidgetErrorHeight.appendChild(bmiCalcWidgetErrorHeightText);
	//Create Widget Weight Error Message
	bmiCalcWidgetErrorWeight = document.createElement("span");	//Global variable accessible outside the function
	var bmiCalcWidgetErrorWeightText = document.createTextNode("Please enter a number for your weight.");
	bmiCalcWidgetErrorWeight.setAttribute("class","cc_formError");
	bmiCalcWidgetErrorWeight.setAttribute("id","bmiCalcWidgetErrorWeight");
	bmiCalcWidgetErrorWeight.appendChild(bmiCalcWidgetErrorWeightText);
	//Create the Widget Results - <p id="bmiCalcResults"><strong>Your Current BMI is:</strong><span></span> <strong id="bmiCalcResultValue">Unknown</strong></p>
	bmiCalcResults = document.createElement("p");	//Global variable accessible outside the function
	bmiCalcResults.setAttribute("id","bmiCalcResults");
	var bmiCalcResultsSpan = document.createElement("span");
	var bmiCalcResultsSpanStrong = document.createElement("strong");
	var bmiCalcResultsSpanStrongText = document.createTextNode("Your Current BMI is:");
	bmiCalcResultValue = document.createElement("strong");	//Global variable accessible outside the function
	var bmiCalcResultValueText = document.createTextNode("Unknown");
	bmiCalcResultValue.setAttribute("id","bmiCalcResultValue");
	bmiCalcResultValue.appendChild(bmiCalcResultValueText);
	bmiCalcResultsSpanStrong.appendChild(bmiCalcResultsSpanStrongText);
	bmiCalcResults.appendChild(bmiCalcResultsSpanStrong);
	bmiCalcResults.appendChild(bmiCalcResultsSpan);
	bmiCalcResults.appendChild(bmiCalcResultValue);
	//Attach the onclick event to the submit button
	var bmiCalcBtnSubmit = document.getElementById("bmiCalcBtnSubmit");
	bmiCalcBtnSubmit.onclick = function() {
		//Atlas tag. Fires when BMI calculator is submitted
		//$("body").append("<iframe src='http://view.atdmt.com/iaction/uj3rez_RealizeJavaScriptBMICalculatorUse_6' width='1' height='1' frameborder='0' scrolling='No' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0'></iframe>").hide();
		//Pass event parameter value pairs to the dcsMultiTrack function 
		//passEventParametersToMultiTrack("'DCS.dcsuri','/dtcf/components/BMICalculator','WT.ti','Used-BMI-Calculator','DCSext.bmi','"+Calculated BMI+"'");
		//Build the image path
		//var path = "/images/analytics/"+widgetType+"bmiWTP.png?WT.cg_n="+contentGroup+":RevealUse&WT_cg_s="+subContentGroup+"&DCSext.page_name="+pageName+pageType+"&DCSext."+widgetType+"_bmi="+Calculated&nbsp;BMI;
		//Load the image
		//$("body").append("<div class='wta' style='position:absolute; top:32px; left:32px; z-index:100;'><img src="+path+" style='display:none;'/></div>");
		interactWithWidget();
		return false;
	}
}
//Function for performing BMI calculation
function calculateBMI(lbs, ins) {
	h2 = ins * ins;
	bmi = lbs/h2 * 703
	   f_bmi = Math.floor(bmi);
	diff  = bmi - f_bmi;
	diff = diff * 10;
	diff = Math.round(diff);
	if (diff == 10) {
		f_bmi += 1;
		diff   = 0;
	}
	bmi = f_bmi + "." + diff;
	return bmi;
}
//Function for managing form interaction
function interactWithWidget() {
	//Test for browser support of DOM
	if (!document.getElementById) return false;
	//Test for DOM elements
	if(!document.getElementById("bmiCalcWidget")) return false;
	//Gather page information
	var bmiCalcWidget = document.getElementById("bmiCalcWidget");
	var bmiCalcRowHeight = document.getElementById("bmiCalcRowHeight");
	var bmiCalcRowWeight = document.getElementById("bmiCalcRowWeight");
	var bmiCalcForm = document.getElementById("bmiCalcForm");
	var bmiCalcFormFieldsets = bmiCalcForm.getElementsByTagName("fieldset");
	var bmiCalcFormParagraphs = bmiCalcForm.getElementsByTagName("p");
	//Reset error messaging
	if(document.getElementById("bmiCalcWidgetErrorHeight")) {
		bmiCalcRowHeight.removeChild(bmiCalcWidgetErrorHeight);
	}
	if(document.getElementById("bmiCalcWidgetErrorWeight")) {
		bmiCalcRowWeight.removeChild(bmiCalcWidgetErrorWeight);
	}
	if(document.getElementById("bmiCalcWidgetErrorHeader")) {
		bmiCalcFormFieldsets[0].removeChild(bmiCalcWidgetErrorHeader);
	}
	//Gather the Form and it's values
	var f = bmiCalcForm;
	var weight = f.bmiCalcTxtFldWeight.value;
	var height = f.bmiCalcSelectHeight.value;
	//Validate that height is selected
	if (!chkw(height)) {
		bmiCalcFormFieldsets[0].insertBefore(bmiCalcWidgetErrorHeader,bmiCalcFormParagraphs[0]);
		bmiCalcRowHeight.appendChild(bmiCalcWidgetErrorHeight);
		f.bmiCalcSelectHeight.focus();
		return;
	}
	//Validate that weight is input and it is a number
	if (!chkw(weight)) {
		bmiCalcFormFieldsets[0].insertBefore(bmiCalcWidgetErrorHeader,bmiCalcFormParagraphs[0]);
		bmiCalcRowWeight.appendChild(bmiCalcWidgetErrorWeight);
		f.bmiCalcTxtFldWeight.focus();
		return;
	}
	//Perform the calculation
	var bmi = calculateBMI(weight, height);
	//Set the BMI Result Value
	if (bmiCalcResultValue.firstChild.nodeType==3) {
		bmiCalcResultValue.firstChild.nodeValue = bmi;
	}
	
	//Atlas tag. Fires when BMI calculator is submitted
		//$("body").append("<iframe src='http://view.atdmt.com/iaction/uj3rez_RealizeJavaScriptBMICalculatorUse_6' width='1' height='1' frameborder='0' scrolling='No' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0'></iframe>").hide();
		//Pass event parameter value pairs to the dcsMultiTrack function 
		passEventParametersToMultiTrack("'DCS.dcsuri','/dtcf/components/BMICalculator','WT.ti','Used-BMI-Calculator','DCSext.bmi','"+bmi+"'");
		//Build the image path
		//var path = "/images/analytics/"+widgetType+"bmiWTP.png?WT.cg_n="+contentGroup+":RevealUse&WT_cg_s="+subContentGroup+"&DCSext.page_name="+pageName+pageType+"&DCSext."+widgetType+"_bmi="+Calculated&nbsp;BMI;
		//Load the image
		//$("body").append("<div class='wta' style='position:absolute; top:32px; left:32px; z-index:100;'><img src="+path+" style='display:none;'/></div>");
	//Show the Results
	bmiCalcWidget.appendChild(bmiCalcResults);
	fadeUpResults();
}
//Validate the values for Height and Weight are input and numeric
function chkw(w) {
	if (isNaN(parseInt(w))) {
		return false;
	} else if (w < 0) {
		return false;
	} else {
		return true;
	}
}
//Function for performing the background fade on the results
function fadeUpResults() {
	$("#bmiCalcResults").fadeIn(500);
	//var bmiResultsContainer = document.getElementById("bmiCalcResults");
	//fadeUp(bmiResultsContainer, 255, 247, 207);
	/*for (var i = 0; i < bmiResultsContainer.length; i++) {
        fadeUp(bmiResultsContainer[i], 153, 204, 0);
    }*/
}
//On Page Load Events
$(document).ready(function(){
	initializeBMICalcWidget();
});
/*addLoadEvent(initializeBMICalcWidget);*/