var selSub = null; var selChip = null; var varRoll = null; var sBlank=0; var sRoll=1; var sSel=2; var sublayers = [[[15,15],[13,39],[11,66],[8,96]],[[19,19],[16,48],[13,78],[10,120]],[[27,27],[22,66],[17,102],[13,156]],[[32,32],[25,75],[19,114],[15,180]]]; var chiplayers = [[0.99, 19.80],[0.90, 45],[0.82, 82],[0.75, 187.50],[0.69, 345]]; function initCore() { for (var i=0;i<9;i++) (new Image()).src = "P"+i+".gif"; (new Image()).src = "Pb"+i+".gif"; var set = ["images/BG.gif","images/BGC.gif","images/BGR.gif"]; for (var i=0;i$'+pricea+tag+'Price:$'+priceb+''; } function centerDivToImg(img,div) { } function onsub(e) { if (selSub==this) { changeLyr(this,sRoll); selSub=null; } else { if (selSub) changeLyr(selSub,sBlank); selSub = this; changeLyr(selSub=this,sSel); } if (varRoll==this) varRoll==null; updateTotal(); } function onchip() { if (selChip==this) { changeLyr(this,sRoll); selChip=null; } else { if (selChip) changeLyr(selChip,sBlank); selChip = this; changeLyr(selChip=this,sSel); } updateTotal(); } function onOver() { if (varRoll && varRoll!=selSub && varRoll!=selChip) changeLyr(varRoll,sBlank); if ((selSub==this)||(selChip==this)) return; changeLyr(varRoll=this,sRoll); } function onOut(e) { if (e) { if ((e.pageX>this.x) && (e.pageY>this.y) && (e.pageXimg.x+img.width) || (e.y>img.y+img.height)) img.onMouseOut(e); } function onchipdivout(e) { var strSub = String(this.memo); var col = Number(strSub.substr(strSub.length-1,1)); eval("var img = document.images.ichip"+col); if (e) if ((e.ximg.x+img.width) || (e.y>img.y+img.height)) img.onMouseOut(e); } function onsubdiv(e) { var strSub = String(this.memo); var row = Number(strSub.substr(strSub.length-2,1)); var col = Number(strSub.substr(strSub.length-1,1)); eval("document.images.isub"+row+col+".onMouseDown(e)"); } function onsubdivover(e) { var strSub = String(this.memo); var row = Number(strSub.substr(strSub.length-2,1)); var col = Number(strSub.substr(strSub.length-1,1)); eval("var img = document.images.isub"+row+col); img.onMouseOver(e); varRoll=img; } function onchipdiv(e) { var strSub = String(this.memo); var col = Number(strSub.substr(strSub.length-1,1)); eval("document.images.ichip"+col+".onMouseDown(e)"); } function onchipdivover(e) { var strSub = String(this.memo); var col = Number(strSub.substr(strSub.length-1,1)); eval("document.images.ichip"+col+".onMouseOver(e)"); } function changeLyr(lyr,state) { // lyr=event.srcElement; if (!lyr || state>sSel) return; // alert(lyr); // for (x in lyr) // alert(x); var images=["images/BG.gif","images/BGR.gif","images/BGC.gif"]; lyr.src = images[state]; } function updateTotal() { var total=0; if (selSub) { var strSub = String(selSub.id); var row = Number(strSub.substr(strSub.length-2,1)); var col = Number(strSub.substr(strSub.length-1,1)); document.forms[0].elements["T11:steps:Step01:level"].value=row; document.forms[0].elements["T11:steps:Step01:len"].value=col; total += sublayers[row][col][1]; } else { document.forms[0].elements["T11:steps:Step01:level"].value="none"; document.forms[0].elements["T11:steps:Step01:len"].value="none"; } if (selChip) { var strChip = String(selChip.id); var col = Number(strChip.substr(strChip.length-1,1)); document.forms[0].elements["T11:steps:Step01:chip"].value=col; total += chiplayers[col][1]; } else document.forms[0].elements["T11:steps:Step01:chip"].value="none"; var strTotal = String(formatPrice(total)); var index=0; for (var i=strTotal.length-1;i>=0;i--) { var digit = strTotal.substr(i,1); if (digit=='.') continue; eval("document.images.img_p"+index+".src='images/P"+digit+".gif'"); index++; } for (;index<5;index++) eval("document.images.img_p"+index+".src='images/Pb.gif'"); } function formatPrice(price) { return formatNumber(price,9,2,true,false) } function formatNumber(number,width,accuracy,rounded,padded) { // number is the number to be operated on, it must be in standard format, // not scientific notation // width is the output width, which must be greater than 0 // accuracy is the digits to the right of the decimal // rounded is a boolean whether to round the number or not // padded is a boolean whether to pad the number on the left with blanks // Examples: // myNewValue = formatNumber(121.355,9,2,false,true); // myNewValue contains " 121.35" // myNewValue = formatNumber(121.355,9,2,true,true); // myNewValue contains " 121.36" // myNewValue = formatNumber(121.355,9,2,true,false); // myNewValue contains "121.36" var myNum, errorString, leftDigits, leftPadLength, leftWidth; var roundingAddend, zeroString; var decimalFound, searchString, i; var myNum = number; // handle bad parameters if (isNaN(width)){ return '*'; } if (width < 1) { return '*'; } if (isNaN(accuracy)){ return '*'; } if (accuracy < 0) { return '*'; } if (isNaN(myNum)){ return '*'; } // handle oversized values errorString = '********************'; leftDigits = 1 + Math.floor(Math.log(myNum) / Math.LN10); if (accuracy > 0) { leftWidth = width - accuracy - 1; } else { leftWidth = width; } if (myNum < 0) { leftWidth -= 1; } if (leftDigits > leftWidth) { return errorString.substring(0,width); } // do rounding if(rounded) { roundingAddend = Math.pow(10,( - accuracy)) * .5; myNum = parseFloat(myNum) + roundingAddend; } // pad the number if(padded) { leftPadLength = width - leftDigits - accuracy - 1; if (leftPadLength > 0) { for (i=1;i<=leftPadLength;i++) { myNum = " " + myNum; } } } // see if there is a decimal point searchString = " " + myNum; decimalFound = searchString.indexOf("."); if(decimalFound < 0) { zeroString = "."; } else { zeroString = ""; } // add a string of zeroes for(i=1;i<=width;i++) { zeroString += "0"; } myNum += zeroString; // now make the trimmed number if(accuracy > 0) { return myNum.substring(0,myNum.indexOf(".") + accuracy + 1); } else { return myNum.substring(0,width); } } function priceForCell(price) { var strPrice=formatPrice(price); if (strPrice.substr(strPrice.length-3)==".00") strPrice = strPrice.substr(0,strPrice.length-3); return strPrice; }