function medianMain(){w=420;h=220;var s="";s+='
';s+='';s+='
';s+='
';s+='
';s+='
';s+='
';s+='
';s+='';s+='';s+='';s+='';s+='
';s+='
';s+='
© 2015 MathsIsFun.com v 0.8
';s+='
';document.write(s);el=document.getElementById('canvasId');ratio=2;el.width=w*ratio;el.height=h*ratio;el.style.width=w+"px";el.style.height=h+"px";g=el.getContext("2d");g.setTransform(ratio,0,0,ratio,0,0);console.log('aaa');MIN=1;MAX=99;shapes=[];startX=10;cellWidth=40;spacing=10;dragging=false;numbers=[];gameCount=0;hints=['Sort the list (drag them left or right), find the median, type in your answer.','Remember the Median is the "middle number" in a sorted list of numbers.','What if I have 2 numbers in the middle?!!! Calculate the average of those 2 numbers to find the median.'];currentHint=0;newGame();document.getElementById('median-check').addEventListener('click',checkMedian);document.getElementById('median-try').addEventListener('click',newGame);document.getElementById('median-help').addEventListener('click',nextHint);el.addEventListener("mousedown",mouseDownListener,false);el.addEventListener('touchstart',ontouchstart,false);el.addEventListener("mousemove",dopointer,false);} function checkMedian(){var answer=document.getElementById('median-answer').value,half=Math.floor(numbers.length/2),results=document.getElementById('median-results');numbers.sort(function(a,b){return a-b;});if(numbers.length%2){median=numbers[half];}else{median=(numbers[half-1]+numbers[half])/2.0;} if(answer==median){results.innerHTML='Yes! Median = '+median;results.classList.add('median-success');results.classList.remove('median-error');}else{results.innerHTML='Oops... try again.';results.classList.add('median-error');results.classList.remove('median-success');}} function newGame(){var numLen,number;gameCount++;numbers=[];if(gameCount<3){numLen=2+gameCount;}else{numLen=4+Math.round(Math.random()*4);} for(var n=0;nhighestIndex){dragHoldX=mouseX-shapes[i].x;dragHoldY=mouseY-shapes[i].y;highestIndex=i;dragIndex=i;}}} if(dragging){if(evt.touchQ){window.addEventListener('touchmove',ontouchmove,false);}else{window.addEventListener("mousemove",mouseMoveListener,false);}} if(evt.touchQ){theCanvas.removeEventListener("touchstart",ontouchstart,false);window.addEventListener("touchend",ontouchend,false);}else{el.removeEventListener("mousedown",mouseDownListener,false);window.addEventListener("mouseup",mouseUpListener,false);} if(evt.preventDefault){evt.preventDefault();} else if(evt.returnValue){evt.returnValue=false;} return false;} function mouseUpListener(evt){el.addEventListener("mousedown",mouseDownListener,false);window.removeEventListener("mouseup",mouseUpListener,false);if(dragging){dragging=false;window.removeEventListener("mousemove",mouseMoveListener,false);}} function mouseMoveListener(evt){if(dragIndex<0)return;var bRect=el.getBoundingClientRect();mouseX=(evt.clientX-bRect.left)*(el.width/ratio/bRect.width);mouseY=(evt.clientY-bRect.top)*(el.height/ratio/bRect.height);var minX=0;var maxX=el.width-shapes[dragIndex].wd;var posX=mouseX-dragHoldX;posX=(posXmaxX)?maxX:posX);var posY=20;shapes[dragIndex].x=posX;shapes[dragIndex].y=posY;var xCurr=-1000;var moveQ=false;var moveNo=0;var moveTo=0;for(var i=0;ixCurr){}else{moveQ=true;if(i==dragIndex){moveNo=i-1;moveTo=i;}else{moveNo=i;moveTo=i-1;}} xCurr=shape.x;} if(moveQ){if(dragIndex==moveNo)dragIndex=moveTo;if(dragIndex==moveTo)dragIndex=moveNo;var temp=shapes[moveNo];shapes[moveNo]=shapes[moveTo];shapes[moveTo]=temp;setTilesPos();} drawShapes();} function setTilesPos(){for(var i=0;i(shape.x+shape.wd))return false;if(my>(shape.y+shape.ht))return false;return true;} function makeShapes(numbers){shapes=[];for(var i=0;i