/* CALCULATOR */var errMsg = "";var errF;var d = document.forms[0];var fel="";function validateCalc() {errF = false;errMsg = "";txt="";fel="";// clean input$('aSal').value = trim(replaceSubstring(replaceSubstring($('aSal').value,',',''),'$',''));$('nEmp').value = trim($('nEmp').value);$('nWeek').value = trim($('nWeek').value);$('hpWeek').value = trim($('hpWeek').value);checkEl($('aSal').value,'aSal', 'Average salary',true,true,false,true);checkEl($('nEmp').value,'nEmp', 'Number of employees',true,true,false,true);checkEl($('nWeek').value,'nWeek', 'Non paid weeks/year',false,true,true,false);checkEl($('hpWeek').value,'hpWeek', 'Hours worked/week',true,true,false,true);if (errF ) {	$('resultsWrap').setStyle('display', 'none');	$('errWrap').setStyle('display', 'block');	return ( false );}$('errWrap').setStyle('display', 'none');$('resultsWrap').setStyle('display', 'block');return ( true );}function checkEl(ev,elid, txt, v1, v2, v3, v4) {	if (( ev.length==0 ) && (v1)) {		errMsg =  "enter a value\n";	} else if ((isNaN(ev)) && (v2)) {		errMsg = "enter a numeric value\n";	} else if((ev<0) && (v3)) {		errMsg = "enter a positive value\n";	} else if((ev<=0) && (v4)) {		errMsg = "enter a positive value greater than zero\n";	}		if ($('mb_error_'+elid)) {$('mb_error_'+elid).remove()}		se = $(elid);	se.removeClass('inputErr');	if (errMsg != "" ) {	  se.addClass('inputErr');	  if(fel=="") {fel=elid;}	  errF=true;	  $(fel).focus();       var errFlag = new Element('div').setProperty('id', 'mb_error_'+elid).addClass('calcErr').setHTML(errMsg);       errFlag.injectAfter(elid);	  return ( false );     }}function compute(){  if (validateCalc()) {    calcRes()  }}function calcRes() {if ($('nWeek').value==null||$('nWeek').value.length==0){$('nWeek').value=0;}if ($('aSal').value != 0){with (Math){var dsf = 260;var hoursPerYearWorked = (52-$('nWeek').value)*$('hpWeek').value;var TotalAnnualCost = (($('aSal').value/hoursPerYearWorked)*dsf)*$('nEmp').value;var TotalCostPerYear = floor((TotalAnnualCost/1));var TotalCostPerMonth = floor(TotalCostPerYear/12);var TotalCostPerWeek = floor(TotalCostPerYear/52);dspResult(TotalCostPerYear, TotalCostPerMonth, TotalCostPerWeek)    }}return;}// display resultsfunction dspResult(yen, mon, wen) {      $('rMonth').setHTML(formatCurrency(mon));      $('rYear').setHTML(formatCurrency(yen));      $('rWeek').setHTML(formatCurrency(wen));      doResult() }function resetCalc() {   dspResult('','','');   $('aSal').value='';   $('nEmp').value='';   $('hpWeek').value='';   $('nWeek').value='';}function trim(aStr) {	return aStr.replace(/^\s{1,}/, "").replace(/\s{1,}$/, "")}function replaceSubstring(fullString,from,to) {	temp = "" + fullString; // temporary holder	while (temp.indexOf(from)>-1) {     	pos= temp.indexOf(from);	     temp = "" + (temp.substring(0, pos) + to + 	     temp.substring((pos + from.length), temp.length));	}	return temp;}function formatCurrency(num) {num = num.toString().replace(/\$|\,/g,'');if(isNaN(num))num = "0";sign = (num == (num = Math.abs(num)));num = Math.floor(num*100+0.50000000001);cents = num%100;num = Math.floor(num/100).toString();if(cents<10)cents = "0" + cents;for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));return (((sign)?'':'-') + '$' + num + '.' + cents);}function doResult() {     exampleFx = new Fx.Style('resultsInner', 'width', {	duration: 300, 	transition: Fx.Transitions.quartInOut});exampleFx.start(300,0).chain(	exampleFx.start.pass([0,300], exampleFx))/*  $('resultsInner').effect('width',{	duration: 1000,	transition: Fx.Transitions.bounceOut  }).start(300,0)  */}function doDetailVis(obj) {var ship=getCheckedValue(document.cartdetailsform.shippingToggle);if (ship=="2") {var heightFin=$(cartDetailsTable2).getSize().size.x;} else {var heightFin=0}var detailFx = new Fx.Style('shipHide', 'height', {duration: 300, transition: Fx.Transitions.quartInOut});detailFx.start(heightFin)}