function.js 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963
  1. function nextPage(code,num){
  2. saveRecord(code);
  3. setTimeout(1500,location.replace(num+'.php'));
  4. }
  5. function nextPage2(code,url){
  6. saveRecord(code);
  7. setTimeout(1500,location.replace(url));
  8. }
  9. function selectItem(ans,num,check){
  10. if(!isStop){
  11. saveRecord(ans);
  12. saveRecord(250);
  13. document.getElementById("status").setAttribute('src', "image/check.jpg");
  14. document.getElementById("status").style.display="inline";
  15. document.getElementById("selectItem1").style.display="none";
  16. document.getElementById("selectItem2").style.display="none";
  17. document.getElementById("selectItem3").style.display="none";
  18. if(num == 4)
  19. document.getElementById("selectItem4").style.display="none";
  20. setTimeout(
  21. function(){
  22. saveRecord(check);
  23. if(check==200){
  24. error++;
  25. if(error==1){ //錯誤次數
  26. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  27. document.getElementById("status").style.display="inline";
  28. document.getElementById("buttonPrev").style.display="inline";
  29. document.getElementById("buttonNext").style.display="inline";
  30. document.getElementById("selectItem1").style.display="inline";
  31. document.getElementById("selectItem2").style.display="inline";
  32. document.getElementById("selectItem3").style.display="inline";
  33. if(num == 4)
  34. document.getElementById("selectItem4").style.display="inline";
  35. isStop = true;
  36. }
  37. else{
  38. document.getElementById("status").setAttribute('src', "image/retry.jpg");
  39. document.getElementById("status").style.display="inline";
  40. setTimeout(
  41. function(){
  42. document.getElementById("status").setAttribute('src', "");
  43. document.getElementById("status").style.display="none";
  44. },3000);
  45. }
  46. }
  47. else{
  48. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  49. document.getElementById("status").style.display="inline";
  50. document.getElementById("buttonPrev").style.display="inline";
  51. document.getElementById("buttonNext").style.display="inline";
  52. document.getElementById("selectItem1").style.display="inline";
  53. document.getElementById("selectItem2").style.display="inline";
  54. document.getElementById("selectItem3").style.display="inline";
  55. if(num == 4)
  56. document.getElementById("selectItem4").style.display="inline";
  57. isStop = true;
  58. }
  59. },3000);
  60. }
  61. }
  62. function dragPic(){
  63. dragTime = Math.floor(Date.now() / 1000);
  64. }
  65. function rotateArrow(top,bottom,value,direction){
  66. if(direction == 7 && (rotateZ-value)>=bottom){
  67. rotateZ = rotateZ - value;
  68. saveRecordr(550,0,0,-value,0);
  69. }
  70. else if(direction == 9 && (rotateZ+value)<=top){
  71. rotateZ = rotateZ + value;
  72. saveRecordr(500,0,0,value,0);
  73. }
  74. document.getElementById("picA").style.transform = 'rotateZ('+rotateZ+'deg)';
  75. }
  76. function rotatePic(top,bottom,value,direction){
  77. if(direction == 8){
  78. if((rotateX + value)==90 || (rotateX + value)==270 || (rotateX + value)==-90 || (rotateX + value)==-270 )
  79. value = value * 2;
  80. rotateX = rotateX + value;
  81. if(rotateX == 360)
  82. rotateX = 0;
  83. saveRecordr(300,value,0,0,0);
  84. }
  85. else if(direction == 2 && (rotateX-value)>=bottom){
  86. if((rotateX - value)==90 ||(rotateX - value)==270 || (rotateX - value)==-90 || (rotateX - value)==-270 )
  87. value = value * 2;
  88. rotateX = rotateX - value;
  89. if(rotateX == -360)
  90. rotateX = 0;
  91. saveRecordr(350,-value,0,0,0);
  92. }
  93. else if(direction == 4 && (rotateY+value)<=top){
  94. if((rotateY + value)==90 ||(rotateY + value)==270 || (rotateY + value)==-90 || (rotateY + value)==-270 )
  95. value = value * 2;
  96. rotateY = rotateY + value;
  97. if(rotateY == 360)
  98. rotateY = 0;
  99. saveRecordr(400,0,value,0,0);
  100. }
  101. else if(direction == 6 && (rotateY-value)>=bottom){
  102. if((rotateY - value)==90 ||(rotateY- value)==270 || (rotateY - value)==-90 || (rotateY - value)==-270 )
  103. value = value * 2;
  104. rotateY = rotateY - value;
  105. if(rotateY == -360)
  106. rotateY = 0;
  107. saveRecordr(450,0,-value,0,0);
  108. }
  109. else if(direction == 7 && (rotateZ-value)>=bottom){
  110. rotateZ = rotateZ - value;
  111. if(rotateZ == -360)
  112. rotateZ = 0;
  113. saveRecordr(550,0,0,-value,0);
  114. }
  115. else if(direction == 9 && (rotateZ+value)<=top){
  116. rotateZ = rotateZ + value;
  117. if(rotateZ == 360)
  118. rotateZ = 0;
  119. saveRecordr(500,0,0,value,0);
  120. }
  121. else if(direction == 3){
  122. if(picwidth==100){
  123. if(scale == (45/100)){
  124. scale = 69/100 ;
  125. document.getElementById("picB").style.top=140;
  126. }
  127. else if(scale == (69/100)){
  128. scale = 1;
  129. document.getElementById("picB").style.top=157;
  130. }
  131. saveRecordr(301,0,0,0,scale);
  132. }
  133. else if(picwidth==147){
  134. if(scale == (59/147)){
  135. scale = 93/147 ;
  136. document.getElementById("picB").style.top=136;
  137. }
  138. else if(scale == (93/147)){
  139. scale = 1;
  140. document.getElementById("picB").style.top=157;
  141. }
  142. saveRecordr(301,0,0,0,scale);
  143. }
  144. else if ((scale+value)<=top){
  145. scale = scale + value;
  146. saveRecordr(301,0,0,0,scale);
  147. }
  148. }
  149. else if(direction == 1){
  150. if(picwidth==100){
  151. if(scale == 1){
  152. scale = 69/100 ;
  153. document.getElementById("picB").style.top=140;
  154. }
  155. else if(scale == (69/100)){
  156. scale = 45/100;
  157. document.getElementById("picB").style.top=130;
  158. }
  159. saveRecordr(301,0,0,0,scale);
  160. }
  161. else if(picwidth==147){
  162. if(scale == 1){
  163. scale = 93/147 ;
  164. document.getElementById("picB").style.top=136;
  165. }
  166. else if(scale == (93/147)){
  167. scale = 59/147;
  168. document.getElementById("picB").style.top=124;
  169. }
  170. saveRecordr(301,0,0,0,scale);
  171. }
  172. else if ((scale-value)>=bottom){
  173. scale = scale - value;
  174. saveRecordr(302,0,0,0,scale);
  175. }
  176. }
  177. document.getElementById("picA").style.transform = 'rotateX('+rotateX+'deg)rotateY('+rotateY+'deg)rotateZ('+rotateZ+'deg)scale('+scale+','+scale+')';
  178. document.getElementById("picB").style.transform = 'rotateX('+rotateX+'deg)rotateY('+rotateY+'deg)rotateZ('+rotateZ+'deg)scale('+scale+','+scale+')';
  179. }
  180. function checkAns(questNum){
  181. switch(questNum){
  182. case 206:
  183. saveRecord(250);
  184. document.getElementById("status").setAttribute('src', "image/check.jpg");
  185. document.getElementById("status").style.display="inline";
  186. document.getElementById("pic7").style.display="none";
  187. document.getElementById("pic9").style.display="none";
  188. document.getElementById("chkButton").style.display="none";
  189. setTimeout(
  190. function(){
  191. if(rotateZ == -20){
  192. saveRecord(100);
  193. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  194. }
  195. else{
  196. saveRecord(200);
  197. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  198. }
  199. document.getElementById("status").style.display="inline";
  200. document.getElementById("buttonPrev").style.display="inline";
  201. document.getElementById("buttonNext").style.display="inline";
  202. },3000);
  203. break;
  204. case 310:
  205. saveRecord(250);
  206. document.getElementById("status").setAttribute('src', "image/check.jpg");
  207. document.getElementById("status").style.display="inline";
  208. document.getElementById("picA").style.display="none";
  209. document.getElementById("pic1").style.display="none";
  210. document.getElementById("pic2").style.display="none";
  211. document.getElementById("pic3").style.display="none";
  212. document.getElementById("pic4").style.display="none";
  213. document.getElementById("pic6").style.display="none";
  214. document.getElementById("pic7").style.display="none";
  215. document.getElementById("pic8").style.display="none";
  216. document.getElementById("pic9").style.display="none";
  217. document.getElementById("chkButton").style.display="none";
  218. setTimeout(
  219. function(){
  220. if(scale == 1){
  221. if(rotateX < 0)
  222. rotateX = rotateX + 360;
  223. if(rotateY < 0)
  224. rotateY = rotateY + 360;
  225. if(rotateZ < 0)
  226. rotateZ = rotateZ + 360;
  227. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateY>=160 && rotateY<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)))
  228. ||(rotateX>=160 && rotateX<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)) && rotateZ>=160 && rotateZ<=200)){
  229. saveRecord(100);
  230. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  231. }
  232. else{
  233. saveRecord(200);
  234. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  235. }
  236. }
  237. else{
  238. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  239. }
  240. document.getElementById("status").style.display="inline";
  241. document.getElementById("buttonPrev").style.display="inline";
  242. document.getElementById("buttonNext").style.display="inline";
  243. },3000);
  244. break;
  245. case 314:
  246. saveRecord(250);
  247. document.getElementById("status").setAttribute('src', "image/check.jpg");
  248. document.getElementById("status").style.display="inline";
  249. document.getElementById("picA").style.display="none";
  250. document.getElementById("pic1").style.display="none";
  251. document.getElementById("pic2").style.display="none";
  252. document.getElementById("pic3").style.display="none";
  253. document.getElementById("pic4").style.display="none";
  254. document.getElementById("pic6").style.display="none";
  255. document.getElementById("pic7").style.display="none";
  256. document.getElementById("pic8").style.display="none";
  257. document.getElementById("pic9").style.display="none";
  258. document.getElementById("chkButton").style.display="none";
  259. document.getElementById("tooltip1").style.display="none";
  260. document.getElementById("tooltip2").style.display="none";
  261. setTimeout(
  262. function(){
  263. if(scale == 1){
  264. if(rotateX < 0)
  265. rotateX = rotateX + 360;
  266. if(rotateY < 0)
  267. rotateY = rotateY + 360;
  268. if(rotateZ < 0)
  269. rotateZ = rotateZ + 360;
  270. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateY>=160 && rotateY<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)))
  271. ||(rotateX>=160 && rotateX<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)) && rotateZ>=160 && rotateZ<=200)){
  272. saveRecord(100);
  273. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  274. }
  275. else{
  276. saveRecord(200);
  277. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  278. }
  279. }
  280. else{
  281. saveRecord(200);
  282. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  283. }
  284. document.getElementById("status").style.display="inline";
  285. document.getElementById("buttonPrev").style.display="inline";
  286. document.getElementById("buttonNext").style.display="inline";
  287. },3000);
  288. break;
  289. case 406:
  290. saveRecord(250);
  291. count = 0;
  292. document.getElementById("status").setAttribute('src', "image/check.jpg");
  293. document.getElementById("status").style.display="inline";
  294. document.getElementById("picA").style.display="none";
  295. document.getElementById("pic7").style.display="none";
  296. document.getElementById("pic9").style.display="none";
  297. document.getElementById("chkButton").style.display="none";
  298. cxt.clearRect(0, 0, c.width, c.height);
  299. cxt.beginPath();
  300. cxt.lineWidth = 7;
  301. cxt.strokeStyle = '#ff0000';
  302. cxt.moveTo(210,87);
  303. for (var i = 0; i <= 70; i++) {
  304. count++;
  305. move(57,170,i,count,10);
  306. }
  307. setTimeout(
  308. function(){
  309. switch(rotateZ){
  310. case -15:
  311. saveRecord(200);
  312. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  313. count = 0;
  314. for (var i = 0; i <= 180; i=i+0.5){
  315. count++;
  316. movetoPos(127,240,i,count,10,15,-1,1);
  317. }
  318. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  319. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  320. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  321. posYArrow=240+240;
  322. rotateZ=15;
  323. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  324. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  325. document.getElementById("status").style.display="inline";
  326. document.getElementById("buttonPrev").style.display="inline";
  327. document.getElementById("buttonNext").style.display="inline";
  328. break;
  329. case 0:
  330. saveRecord(200);
  331. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  332. count = 0;
  333. for (var i = 0; i <= 180; i=i+0.5){
  334. count++;
  335. movetoPos(127,240,i,count,10,0,1,1);
  336. }
  337. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  338. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  339. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  340. posYArrow=240+240;
  341. rotateZ=15;
  342. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  343. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  344. document.getElementById("status").style.display="inline";
  345. document.getElementById("buttonPrev").style.display="inline";
  346. document.getElementById("buttonNext").style.display="inline";
  347. break;
  348. case 15:
  349. saveRecord(100);
  350. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  351. count = 0;
  352. for (var i = 0; i <= 180; i=i+0.5){
  353. count++;
  354. movetoPos(127,240,i,count,10,15,1,1);
  355. }
  356. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  357. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  358. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  359. posYArrow=240+240;
  360. rotateZ=15;
  361. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  362. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  363. document.getElementById("status").style.display="inline";
  364. document.getElementById("buttonPrev").style.display="inline";
  365. document.getElementById("buttonNext").style.display="inline";
  366. break;
  367. case 30:
  368. saveRecord(100);
  369. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  370. count = 0;
  371. for (var i = 0; i <= 180; i=i+0.5){
  372. count++;
  373. movetoPos(127,240,i,count,10,30,1,1);
  374. }
  375. posXCar=(127+180*Math.sin(30*(Math.PI / 180)));
  376. posYCar=(240+180*Math.cos(30*(Math.PI / 180)));
  377. posXArrow=127+240*(Math.tan(30*(Math.PI / 180)));
  378. posYArrow=240+240;
  379. rotateZ=30;
  380. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  381. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  382. document.getElementById("status").style.display="inline";
  383. document.getElementById("buttonPrev").style.display="inline";
  384. document.getElementById("buttonNext").style.display="inline";
  385. break;
  386. case 45:
  387. saveRecord(200);
  388. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  389. count = 0;
  390. for (var i = 0; i <= 180; i=i+0.5){
  391. count++;
  392. movetoPos(127,240,i,count,10,45,1,1);
  393. }
  394. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  395. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  396. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  397. posYArrow=240+240;
  398. rotateZ=15;
  399. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  400. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  401. document.getElementById("status").style.display="inline";
  402. document.getElementById("buttonPrev").style.display="inline";
  403. document.getElementById("buttonNext").style.display="inline";
  404. break;
  405. case 60:
  406. saveRecord(200);
  407. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  408. count = 0;
  409. for (var i = 0; i <= 180; i=i+0.5){
  410. count++;
  411. movetoPos(127,240,i,count,10,60,1,1);
  412. }
  413. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  414. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  415. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  416. posYArrow=240+240;
  417. rotateZ=15;
  418. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  419. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  420. document.getElementById("status").style.display="inline";
  421. document.getElementById("buttonPrev").style.display="inline";
  422. document.getElementById("buttonNext").style.display="inline";
  423. break;
  424. case 75:
  425. saveRecord(200);
  426. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  427. count = 0;
  428. for (var i = 0; i <= 180; i=i+0.5){
  429. count++;
  430. movetoPos(127,240,i,count,10,75,1,1);
  431. }
  432. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  433. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  434. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  435. posYArrow=240+240;
  436. rotateZ=15;
  437. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  438. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  439. document.getElementById("status").style.display="inline";
  440. document.getElementById("buttonPrev").style.display="inline";
  441. document.getElementById("buttonNext").style.display="inline";
  442. break;
  443. }
  444. },(count+1)*10);
  445. break;
  446. case 407:
  447. saveRecord(250);
  448. count = 0;
  449. document.getElementById("status").setAttribute('src', "image/check.jpg");
  450. document.getElementById("status").style.display="inline";
  451. document.getElementById("picA").style.display="none";
  452. document.getElementById("pic7").style.display="none";
  453. document.getElementById("pic9").style.display="none";
  454. document.getElementById("chkButton").style.display="none";
  455. cxt.clearRect(0, 0, c.width, c.height);
  456. cxt.beginPath();
  457. cxt.lineWidth = 7;
  458. cxt.strokeStyle = '#ff0000';
  459. cxt.moveTo(posYCar+40,posXCar+30);
  460. for (var i = 180; i <= 240; i=i+0.5){
  461. count++;
  462. movetoPos(127,240,i,count,10,posCarAngle,1,1);
  463. }
  464. setTimeout(
  465. function(){
  466. switch(rotateZ){
  467. case -15:
  468. saveRecord(200);
  469. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  470. count = 0;
  471. for (var i = 0; i <= 180; i++){
  472. count++;
  473. movetoPos(posXArrow,posYArrow,i,count,10,15,-1,1);
  474. }
  475. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  476. document.getElementById("status").style.display="inline";
  477. document.getElementById("buttonPrev").style.display="inline";
  478. document.getElementById("buttonNext").style.display="inline";
  479. break;
  480. case 0:
  481. saveRecord(200);
  482. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  483. count = 0;
  484. for (var i = 0; i <= 180; i++){
  485. count++;
  486. movetoPos(posXArrow,posYArrow,i,count,10,0,1,1);
  487. }
  488. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  489. document.getElementById("status").style.display="inline";
  490. document.getElementById("buttonPrev").style.display="inline";
  491. document.getElementById("buttonNext").style.display="inline";
  492. break;
  493. case 15:
  494. saveRecord(200);
  495. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  496. count = 0;
  497. for (var i = 0; i <= 180; i++){
  498. count++;
  499. movetoPos(posXArrow,posYArrow,i,count,10,15,1,1);
  500. }
  501. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  502. document.getElementById("status").style.display="inline";
  503. document.getElementById("buttonPrev").style.display="inline";
  504. document.getElementById("buttonNext").style.display="inline";
  505. break;
  506. case 30:
  507. if(posCarAngle<=rotateZ)
  508. saveRecord(200);
  509. else
  510. saveRecord(100);
  511. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  512. count = 0;
  513. for (var i = 0; i <= 180; i++){
  514. count++;
  515. movetoPos(posXArrow,posYArrow,i,count,10,30,1,1);
  516. }
  517. if(posCarAngle<=rotateZ)
  518. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  519. else
  520. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  521. document.getElementById("status").style.display="inline";
  522. document.getElementById("buttonPrev").style.display="inline";
  523. document.getElementById("buttonNext").style.display="inline";
  524. break;
  525. case 45:
  526. if(posCarAngle<=rotateZ)
  527. saveRecord(200);
  528. else
  529. saveRecord(100);
  530. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  531. count = 0;
  532. for (var i = 0; i <= 180; i++){
  533. count++;
  534. movetoPos(posXArrow,posYArrow,i,count,10,45,1,1);
  535. }
  536. if(posCarAngle<=rotateZ)
  537. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  538. else
  539. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  540. document.getElementById("status").style.display="inline";
  541. document.getElementById("buttonPrev").style.display="inline";
  542. document.getElementById("buttonNext").style.display="inline";
  543. break;
  544. case 60:
  545. saveRecord(100);
  546. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  547. count = 0;
  548. for (var i = 0; i <= 180; i++){
  549. count++;
  550. movetoPos(posXArrow,posYArrow,i,count,10,60,1,1);
  551. }
  552. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  553. document.getElementById("status").style.display="inline";
  554. document.getElementById("buttonPrev").style.display="inline";
  555. document.getElementById("buttonNext").style.display="inline";
  556. break;
  557. case 75:
  558. saveRecord(100);
  559. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  560. count = 0;
  561. for (var i = 0; i <= 180; i++){
  562. count++;
  563. movetoPos(posXArrow,posYArrow,i,count,10,75,1,1);
  564. }
  565. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  566. document.getElementById("status").style.display="inline";
  567. document.getElementById("buttonPrev").style.display="inline";
  568. document.getElementById("buttonNext").style.display="inline";
  569. break;
  570. }
  571. },(count+1)*10);
  572. break;
  573. case 410:
  574. saveRecord(250);
  575. document.getElementById("status").setAttribute('src', "image/check.jpg");
  576. document.getElementById("status").style.display="inline";
  577. document.getElementById("pic7").style.display="none";
  578. document.getElementById("pic9").style.display="none";
  579. document.getElementById("chkButton").style.display="none";
  580. setTimeout(
  581. function(){
  582. if(rotateZ > 45){
  583. saveRecord(100);
  584. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  585. }
  586. else{
  587. saveRecord(200);
  588. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  589. }
  590. document.getElementById("status").style.display="inline";
  591. document.getElementById("buttonPrev").style.display="inline";
  592. document.getElementById("buttonNext").style.display="inline";
  593. },3000);
  594. break;
  595. case 511:
  596. saveRecord(250);
  597. document.getElementById("status").setAttribute('src', "image/check.jpg");
  598. document.getElementById("status").style.display="inline";
  599. document.getElementById("picA").style.display="none";
  600. document.getElementById("pic1").style.display="none";
  601. document.getElementById("pic2").style.display="none";
  602. document.getElementById("pic3").style.display="none";
  603. document.getElementById("pic4").style.display="none";
  604. document.getElementById("pic6").style.display="none";
  605. document.getElementById("pic7").style.display="none";
  606. document.getElementById("pic8").style.display="none";
  607. document.getElementById("pic9").style.display="none";
  608. document.getElementById("chkButton").style.display="none";
  609. document.getElementById("tooltip1").style.display="none";
  610. document.getElementById("tooltip2").style.display="none";
  611. setTimeout(
  612. function(){
  613. if(scale == 1){
  614. if(rotateX < 0)
  615. rotateX = rotateX + 360;
  616. if(rotateY < 0)
  617. rotateY = rotateY + 360;
  618. if(rotateZ < 0)
  619. rotateZ = rotateZ + 360;
  620. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)) && rotateZ>=160 && rotateZ<=200) || (rotateX>=160 && rotateX<=200 && rotateY>=160 && rotateY<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)))){
  621. saveRecord(100);
  622. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  623. }
  624. else{
  625. saveRecord(200);
  626. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  627. }
  628. }
  629. else{
  630. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  631. }
  632. document.getElementById("status").style.display="inline";
  633. document.getElementById("buttonPrev").style.display="inline";
  634. document.getElementById("buttonNext").style.display="inline";
  635. },3000);
  636. break;
  637. case 606:
  638. saveRecord(250);
  639. document.getElementById("status").setAttribute('src', "image/check.jpg");
  640. document.getElementById("status").style.display="inline";
  641. document.getElementById("chkButton").style.display="none";
  642. document.getElementById("picA").style.display="none";
  643. document.getElementById("pic1").style.display="none";
  644. document.getElementById("pic2").style.display="none";
  645. document.getElementById("pic3").style.display="none";
  646. document.getElementById("pic4").style.display="none";
  647. document.getElementById("pic6").style.display="none";
  648. document.getElementById("pic7").style.display="none";
  649. document.getElementById("pic8").style.display="none";
  650. document.getElementById("pic9").style.display="none";
  651. document.getElementById("tooltip1").style.display="none";
  652. document.getElementById("tooltip2").style.display="none";
  653. setTimeout(
  654. function(){
  655. if(scale == 0.45){
  656. if(rotateX < 0)
  657. rotateX = rotateX + 360;
  658. if(rotateY < 0)
  659. rotateY = rotateY + 360;
  660. if(rotateZ < 0)
  661. rotateZ = rotateZ + 360;
  662. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateZ>=160 && rotateZ<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)))
  663. ||(rotateX>=160 && rotateX<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)) && rotateY>=160 && rotateY<=200)){
  664. saveRecord(100);
  665. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  666. }
  667. else{
  668. saveRecord(200);
  669. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  670. }
  671. }
  672. else{
  673. saveRecord(200);
  674. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  675. }
  676. document.getElementById("status").style.display="inline";
  677. document.getElementById("buttonPrev").style.display="inline";
  678. document.getElementById("buttonNext").style.display="inline";
  679. },3000);
  680. break;
  681. case 609:
  682. saveRecord(250);
  683. document.getElementById("status").setAttribute('src', "image/check.jpg");
  684. document.getElementById("status").style.display="inline";
  685. document.getElementById("chkButton").style.display="none";
  686. document.getElementById("picA").style.display="none";
  687. document.getElementById("pic1").style.display="none";
  688. document.getElementById("pic2").style.display="none";
  689. document.getElementById("pic3").style.display="none";
  690. document.getElementById("pic4").style.display="none";
  691. document.getElementById("pic6").style.display="none";
  692. document.getElementById("pic7").style.display="none";
  693. document.getElementById("pic8").style.display="none";
  694. document.getElementById("pic9").style.display="none";
  695. setTimeout(
  696. function(){
  697. if(scale == 0.69){
  698. if(rotateX < 0)
  699. rotateX = rotateX + 360;
  700. if(rotateY < 0)
  701. rotateY = rotateY + 360;
  702. if(rotateZ < 0)
  703. rotateZ = rotateZ + 360;
  704. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateZ>=160 && rotateZ<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)))
  705. ||(rotateX>=160 && rotateX<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)) && rotateY>=160 && rotateY<=200)){
  706. saveRecord(100);
  707. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  708. }
  709. else{
  710. saveRecord(200);
  711. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  712. }
  713. }
  714. else{
  715. saveRecord(200);
  716. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  717. }
  718. document.getElementById("status").style.display="inline";
  719. document.getElementById("buttonPrev").style.display="inline";
  720. document.getElementById("buttonNext").style.display="inline";
  721. },3000);
  722. break;
  723. case 612:
  724. saveRecord(250);
  725. document.getElementById("status").setAttribute('src', "image/check.jpg");
  726. document.getElementById("status").style.display="inline";
  727. document.getElementById("chkButton").style.display="none";
  728. document.getElementById("picA").style.display="none";
  729. document.getElementById("pic1").style.display="none";
  730. document.getElementById("pic2").style.display="none";
  731. document.getElementById("pic3").style.display="none";
  732. document.getElementById("pic4").style.display="none";
  733. document.getElementById("pic6").style.display="none";
  734. document.getElementById("pic7").style.display="none";
  735. document.getElementById("pic8").style.display="none";
  736. document.getElementById("pic9").style.display="none";
  737. setTimeout(
  738. function(){
  739. if(scale == 1){
  740. if(rotateX < 0)
  741. rotateX = rotateX + 360;
  742. if(rotateY < 0)
  743. rotateY = rotateY + 360;
  744. if(rotateZ < 0)
  745. rotateZ = rotateZ + 360;
  746. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateZ>=160 && rotateZ<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)))
  747. ||(rotateX>=160 && rotateX<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)) && rotateY>=160 && rotateY<=200)){
  748. saveRecord(100);
  749. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  750. }
  751. else{
  752. saveRecord(200);
  753. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  754. }
  755. }
  756. else{
  757. saveRecord(200);
  758. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  759. }
  760. document.getElementById("status").style.display="inline";
  761. document.getElementById("buttonPrev").style.display="inline";
  762. document.getElementById("buttonNext").style.display="inline";
  763. },3000);
  764. break;
  765. }
  766. }
  767. function saveRecord(code){
  768. xmlhttp = new XMLHttpRequest();
  769. xmlhttp.onreadystatechange = function() {
  770. if (xmlhttp.readyState==4) {
  771. if(xmlhttp.status==200) {
  772. xmlhttp.abort();
  773. }
  774. }
  775. };
  776. xmlhttp.open("POST","saveRecord.php",true);
  777. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  778. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000));
  779. }
  780. function saveRecordHTML5(obj){
  781. xmlhttp = new XMLHttpRequest();
  782. xmlhttp.onreadystatechange = function() {
  783. if (xmlhttp.readyState==4) {
  784. if(xmlhttp.status==200) {
  785. xmlhttp.abort();
  786. }
  787. }
  788. };
  789. var code = obj.code;
  790. var rotX = obj.rotX;
  791. var rotY = obj.rotY;
  792. var rotZ = obj.rotZ;
  793. var rotS = obj.rotS;
  794. xmlhttp.open("POST","saveRecord.php",true);
  795. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  796. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000) + "&rotx="+rotX+"&roty="+rotY+"&rotz="+rotZ+"&scale="+rotS);
  797. }
  798. function saveRecords(code,time){
  799. xmlhttp = new XMLHttpRequest();
  800. xmlhttp.onreadystatechange = function() {
  801. if (xmlhttp.readyState==4) {
  802. if(xmlhttp.status==200) {
  803. xmlhttp.abort();
  804. }
  805. }
  806. };
  807. xmlhttp.open("POST","saveRecord.php",true);
  808. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  809. xmlhttp.send("codenum=" + code + "&dragtime=" + time);
  810. }
  811. function saveRecordr(code,rotX,rotY,rotZ,rotS){
  812. xmlhttp = new XMLHttpRequest();
  813. xmlhttp.onreadystatechange = function() {
  814. if (xmlhttp.readyState==4) {
  815. if(xmlhttp.status==200) {
  816. xmlhttp.abort();
  817. }
  818. }
  819. };
  820. xmlhttp.open("POST","saveRecord.php",true);
  821. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  822. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000) + "&rotx="+rotX+"&roty="+rotY+"&rotz="+rotZ+"&scale="+rotS);
  823. }
  824. function saveSession(posXCar,posYCar,angle,posXArrow,posYArrow){
  825. xmlhttp = new XMLHttpRequest();
  826. xmlhttp.onreadystatechange = function() {
  827. if (xmlhttp.readyState==4) {
  828. if(xmlhttp.status==200) {
  829. xmlhttp.abort();
  830. }
  831. }
  832. };
  833. xmlhttp.open("POST","saveSession.php",true);
  834. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  835. xmlhttp.send("posXCar=" + posXCar + "&posYCar=" + posYCar + "&angle="+ rotateZ +"&posXArrow=" + posXArrow + "&posYArrow=" + posYArrow);
  836. }
  837. function move(x,y,k,i,t){
  838. setTimeout(function(){
  839. document.getElementById("car").style.top=x+k;
  840. document.getElementById("car").style.left=y+k;
  841. cxt.lineTo(y+k+40,x+k+30);
  842. cxt.stroke();
  843. },i*t);
  844. }
  845. function movetoPos(x,y,k,i,t,a,p1,p2){
  846. setTimeout(function(){
  847. document.getElementById("car").style.top=(x+p1*k*Math.sin(a*(Math.PI / 180)));
  848. document.getElementById("car").style.left=(y+p2*k*Math.cos(a*(Math.PI / 180)));
  849. cxt.lineTo((y+p2*k*Math.cos(a*(Math.PI / 180)))+40,(x+p1*k*Math.sin(a*(Math.PI / 180)))+30);
  850. cxt.stroke();
  851. },i*t);
  852. }
  853. function movetoPos2(x,y,k,i,t,a,p1){ // 碰線
  854. setTimeout(function(){
  855. document.getElementById("car").style.top=(x+p1*k*(Math.tan(a*(Math.PI / 180))));
  856. document.getElementById("car").style.left=(y+k);
  857. cxt.lineTo((y+k)+40,(x+p1*k*(Math.tan(a*(Math.PI / 180))))+30);
  858. cxt.stroke();
  859. },i*t);
  860. }
  861. function dateFormat(date, format) {
  862. if(format === undefined){
  863. format = date;
  864. date = new Date();
  865. }
  866. var map = {
  867. "M": date.getMonth() + 1,
  868. "d": date.getDate(),
  869. "h": date.getHours(),
  870. "m": date.getMinutes(),
  871. "s": date.getSeconds(),
  872. "q": Math.floor((date.getMonth() + 3) / 3),
  873. "S": date.getMilliseconds()
  874. };
  875. format = format.replace(/([yMdhmsqS])+/g, function(all, t){
  876. var v = map[t];
  877. if(v !== undefined){
  878. if(all.length > 1){
  879. v = '0' + v;
  880. v = v.substr(v.length-2);
  881. }
  882. return v;
  883. }
  884. else if(t === 'y'){
  885. return (date.getFullYear() + '').substr(4 - all.length);
  886. }
  887. return all;
  888. });
  889. return format;
  890. }
  891. //保存聊天记录
  892. function saveChat(data){
  893. xmlhttp = new XMLHttpRequest();
  894. xmlhttp.onreadystatechange = function() {
  895. if (xmlhttp.readyState==4) {
  896. if(xmlhttp.status==200) {
  897. xmlhttp.abort();
  898. }
  899. }
  900. };
  901. xmlhttp.open("POST","saveRecord.php",true);
  902. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  903. xmlhttp.send("codenum=" + code + "&dragtime=" + time);
  904. }
  905. function gettime(){
  906. var d = new Date();
  907. var time = d.toLocaleString();
  908. /*var Y = d.getFullYear();
  909. var m = d.getMonth()+1;
  910. var d = d.getDate();
  911. var H = d.getHours();
  912. var i=d.getMinutes();
  913. var s = d.getSeconds();
  914. var time = Y+"-"+m+"-"+d+" "+H+":"+i+":"+s;*/
  915. return time;
  916. }