/*
var calcHTML = '';
calcHTML += '<h4>Calculator</h4><div><p>Convert [feet|kilos] to [meters|tonnes] by entering the values in the field below</p></div>';
calcHTML += '<div id="calculator"><form id="calc" name="calc" method="post" action="" onsubmit="return copyValueToForm(this.field2.value,this.targetField);">';
calcHTML += '<input type="hidden" value="" name="mode" id="mode" /><input type="hidden" value="" name="conversionFactor" id="conversionFactor" /><input type="hidden" value="" name="targetField" id="targetField" />';
calcHTML += '<div id="inputs"><table cellpadding="2" cellspacing="2" border="0"><tr><td><label for="field1">Feet | Kilos</label></td><td><input type="text" name="field1" id="field1" value="" onBlur="convertValue(this.value,this.form.elements[\'conversionFactor\'].value,this.form.elements[\'field2\']);"/></td></tr>';
calcHTML += '<tr><td><label for="field2">Meters | Tonnes</label></td><td><input type="text" name="field2" id="field2" value="" readonly /></td></tr>';
calcHTML += '<tr><td>&nbsp;</td><td><input type="submit" name="submit1" id="submit1" value="Copy to form" disabled="true"/></td></tr></table></div></form></div>';

var helpHTML = '<h4>Help Panel</h4><div id="helptext"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p></div>';
*/
// handles opening of panel and setting of mode
/*
function openHelpPanel(mode,submode,yPos,nodeID) {
	// start
	// map purpose text strings to ints - must map to inpage call
	var modeArray = new Array();
	modeArray[0] = 'helptext';
	modeArray[1] = 'calculator';
	// switch
	switch(mode) {
		case modeArray[0]:
			// help text
			break;
		case modeArray[1]:
			// calc
			// prepare and render form in help panel
			// get form element references
			theForm = document.getElementById('calc');
			// variable containers
			theForm.elements['targetField'].value = nodeID;
			theForm.elements['mode'].value = submode;
			// don't submit till ready
			theForm.elements['submit1'].disabled = false;
			switch(submode) {
				case "f2m":
					theForm.elements['conversionFactor'].value = ".3048";
					break;
				case "k2t":
					theForm.elements['conversionFactor'].value = "1000";
					break;
				default:
					theForm.elements['conversionFactor'].value = "1";
					break;
			}
			//
			break;
		default:
			break;
	}
	//window.alert(theForm.elements['mode'].value + ' / ' + theForm.elements['conversionFactor'].value);
	//return false;
}
*/

function openHelpPanel(mode,submode,showFlag) {
	//
	switch(mode) {
		case 'helptext':
			break;
		case 'calculator':
			showPanel.start();
			break;
		default:
			break;
	}
}

function explodeObject(obj) {
	var s = '';
	for (prop in obj) {
		s += prop + ':' + obj[prop] + ', ';
	}
	return s;
}

function isBlank(s) {
	// expects value as string
	var errFlag = true;
	if((s.length > 0) && (s != " ")&& (s != "  ") && (s != "   ") && (s != "\n")) {
		errFlag = false;
	}
	return errFlag;
}

function removeIllegalChars(str) {
	// define array of regexp's
	var illegalchars = new Array(/"+/g,/\'+/g);
	for(i=0; i<illegalchars.length; i++) {
		if(illegalchars[i].test(str)) {
			str = str.replace(illegalchars[i],"");
		}
	}
	return str;
}

function convertValue(ina,conversionFactor,displayFieldRef) {
	// this function multiplies ina * conversionFactor so the direction is assummed and the value to convert is ina
	// conversionFactor number is set dynamically, so watch for a blank "" value
	var n = 0; //
	ina = removeIllegalChars(ina);
	conversionFactor = removeIllegalChars(conversionFactor);
	if(!isBlank(conversionFactor) && validateIsNumeric(conversionFactor)) {
		// check that passed values are legal
		if(!isBlank(ina) && validateIsNumeric(ina)) {
			n = ina * conversionFactor;
			// round n to 3 decimal places
			n = String(n);
			n = (n.indexOf('.') != -1) ? n.substring(0,n.indexOf('.') + 4) : n;
			//
			theForm = document.getElementById('calc');
			theForm.elements['submit1'].disabled = false;
			//
		}
	} else {
		window.alert("conversionFactor is missing");
	}
	displayFieldRef.value = n;
}

function validateIsNumeric(val) {
	// allow + values only
	// allow '10','1','.1','.01','.001','.0001'
	// check all characters are digits
	var flag = true;
	for(i=0;i<val.length;i++) {
		if(!isDigit(val.charAt(i))) {
			flag = false;
			break;
		}
	}
	return true;
}

function isDigit (c) {
	var strAllowed = "1234567890.";
	return (strAllowed.indexOf (c) != -1);
}

function copyValueToForm(newVal,targetField) {
	//window.alert(newVal + "/" + document.getElementById(targetField.value));
	tf = document.getElementById(targetField.value);
	//window.alert(tf);
	tf.value = newVal;
	return false;
}


