function addEvent(elm,evType,fn,useCapture) {
		if (elm.addEventListener) {
			elm.addEventListener(evType,fn,useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}	
      }
      
      addEvent(window,'load',addListeners, false);
      
      function addListeners() {
      	if(!document.getElementById)
      		return false;
      	var cop = document.getElementById('cop');
      	var cog = document.getElementById('cog');
      	addEvent(cop,'keyup',update,false);
      	addEvent(cog,'keyup',update,false);
      }
      
      function update(e) {
        /*** calculate values ***/
      	var cop = document.getElementById('cop').value;
      	cop = parseFloat(cop.replace(/[^.0-9]/g,''));
      	cop = isNaN(cop) ? 0 : cop;
      	var cog = document.getElementById('cog').value;
      	cog = parseInt(cog.replace(/\D/g,''));
      	cog = isNaN(cog) ? 0 : cog;
      	var ceb = (cop*cog)/100;
      	var cm = cop * .065;
      	var setUp = 0;
      	var yearly = 180;
      	var cashB = parseInt(ceb + cm + setUp);
      	var savings = cop - cashB;
      	var percentage = Math.round(((cop - cashB) / cop) * 100);
      	percentage = percentage < 0.1  ? 0 : percentage;
      	
      	/*** display values **/
      	cop = cop.toLocaleString();
      	
      	document.getElementById('ppO').value = cop;
      	document.getElementById('ppB').value = cop;
      	document.getElementById('ns').value = cop;
      	document.getElementById('ce').value = "(" + cop + ")";
      	document.getElementById('ceB').value = "(" + ceb.toLocaleString() + ")";
      	document.getElementById('cm').value = "(" + cm.toLocaleString() + ")";
      	document.getElementById('cashO').value = "(" + cop + ")";
      	document.getElementById('cashB').value = "(" + cashB.toLocaleString() + ")";
      	document.getElementById('savings').value = savings.toLocaleString();
      	document.getElementById('percentage').value = percentage + "%";
      }