PageRenderTime 66ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/upload/js/shopping_flow.js

https://gitlab.com/BGCX261/zishashop-svn-to-git
JavaScript | 612 lines | 472 code | 69 blank | 71 comment | 95 complexity | 0351e73bd0429e67ea1cb75dbf1ba380 MD5 | raw file
  1. /* $Id : shopping_flow.js 4865 2007-01-31 14:04:10Z paulgao $ */
  2. var selectedShipping = null;
  3. var selectedPayment = null;
  4. var selectedPack = null;
  5. var selectedCard = null;
  6. var selectedSurplus = '';
  7. var selectedBonus = 0;
  8. var selectedIntegral = 0;
  9. var selectedOOS = null;
  10. var alertedSurplus = false;
  11. var groupBuyShipping = null;
  12. var groupBuyPayment = null;
  13. /* *
  14. * 改变配送方式
  15. */
  16. function selectShipping(obj)
  17. {
  18. if (selectedShipping == obj)
  19. {
  20. return;
  21. }
  22. else
  23. {
  24. selectedShipping = obj;
  25. }
  26. var supportCod = obj.attributes['supportCod'].value + 0;
  27. var theForm = obj.form;
  28. for (i = 0; i < theForm.elements.length; i ++ )
  29. {
  30. if (theForm.elements[i].name == 'payment' && theForm.elements[i].attributes['isCod'].value == '1')
  31. {
  32. if (supportCod == 0)
  33. {
  34. theForm.elements[i].checked = false;
  35. theForm.elements[i].disabled = true;
  36. }
  37. else
  38. {
  39. theForm.elements[i].disabled = false;
  40. }
  41. }
  42. }
  43. if (obj.attributes['insure'].value + 0 == 0)
  44. {
  45. document.getElementById('ECS_NEEDINSURE').checked = false;
  46. document.getElementById('ECS_NEEDINSURE').disabled = true;
  47. }
  48. else
  49. {
  50. document.getElementById('ECS_NEEDINSURE').checked = false;
  51. document.getElementById('ECS_NEEDINSURE').disabled = false;
  52. }
  53. var now = new Date();
  54. Ajax.call('flow.php?step=select_shipping', 'shipping=' + obj.value, orderShippingSelectedResponse, 'GET', 'JSON');
  55. }
  56. /**
  57. *
  58. */
  59. function orderShippingSelectedResponse(result)
  60. {
  61. if (result.need_insure)
  62. {
  63. try
  64. {
  65. document.getElementById('ECS_NEEDINSURE').checked = true;
  66. }
  67. catch (ex)
  68. {
  69. alert(ex.message);
  70. }
  71. }
  72. try
  73. {
  74. if (document.getElementById('ECS_CODFEE') != undefined)
  75. {
  76. document.getElementById('ECS_CODFEE').innerHTML = result.cod_fee;
  77. }
  78. }
  79. catch (ex)
  80. {
  81. alert(ex.message);
  82. }
  83. orderSelectedResponse(result);
  84. }
  85. /* *
  86. * 改变支付方式
  87. */
  88. function selectPayment(obj)
  89. {
  90. if (selectedPayment == obj)
  91. {
  92. return;
  93. }
  94. else
  95. {
  96. selectedPayment = obj;
  97. }
  98. Ajax.call('flow.php?step=select_payment', 'payment=' + obj.value, orderSelectedResponse, 'GET', 'JSON');
  99. }
  100. /* *
  101. * 团购购物流程 --> 改变配送方式
  102. */
  103. function handleGroupBuyShipping(obj)
  104. {
  105. if (groupBuyShipping == obj)
  106. {
  107. return;
  108. }
  109. else
  110. {
  111. groupBuyShipping = obj;
  112. }
  113. var supportCod = obj.attributes['supportCod'].value + 0;
  114. var theForm = obj.form;
  115. for (i = 0; i < theForm.elements.length; i ++ )
  116. {
  117. if (theForm.elements[i].name == 'payment' && theForm.elements[i].attributes['isCod'].value == '1')
  118. {
  119. if (supportCod == 0)
  120. {
  121. theForm.elements[i].checked = false;
  122. theForm.elements[i].disabled = true;
  123. }
  124. else
  125. {
  126. theForm.elements[i].disabled = false;
  127. }
  128. }
  129. }
  130. if (obj.attributes['insure'].value + 0 == 0)
  131. {
  132. document.getElementById('ECS_NEEDINSURE').checked = false;
  133. document.getElementById('ECS_NEEDINSURE').disabled = true;
  134. }
  135. else
  136. {
  137. document.getElementById('ECS_NEEDINSURE').checked = false;
  138. document.getElementById('ECS_NEEDINSURE').disabled = false;
  139. }
  140. Ajax.call('group_buy.php?act=select_shipping', 'shipping=' + obj.value, orderSelectedResponse, 'GET');
  141. }
  142. /* *
  143. * 团购购物流程 --> 改变支付方式
  144. */
  145. function handleGroupBuyPayment(obj)
  146. {
  147. if (groupBuyPayment == obj)
  148. {
  149. return;
  150. }
  151. else
  152. {
  153. groupBuyPayment = obj;
  154. }
  155. Ajax.call('group_buy.php?act=select_payment', 'payment=' + obj.value, orderSelectedResponse, 'GET');
  156. }
  157. /* *
  158. * 改变商品包装
  159. */
  160. function selectPack(obj)
  161. {
  162. if (selectedPack == obj)
  163. {
  164. return;
  165. }
  166. else
  167. {
  168. selectedPack = obj;
  169. }
  170. Ajax.call('flow.php?step=select_pack', 'pack=' + obj.value, orderSelectedResponse, 'GET', 'JSON');
  171. }
  172. /* *
  173. * 改变祝福贺卡
  174. */
  175. function selectCard(obj)
  176. {
  177. if (selectedCard == obj)
  178. {
  179. return;
  180. }
  181. else
  182. {
  183. selectedCard = obj;
  184. }
  185. Ajax.call('flow.php?step=select_card', 'card=' + obj.value, orderSelectedResponse, 'GET', 'JSON');
  186. }
  187. /* *
  188. * 选定了配送保价
  189. */
  190. function selectInsure(needInsure)
  191. {
  192. needInsure = needInsure ? 1 : 0;
  193. Ajax.call('flow.php?step=select_insure', 'insure=' + needInsure, orderSelectedResponse, 'GET', 'JSON');
  194. }
  195. /* *
  196. * 团购购物流程 --> 选定了配送保价
  197. */
  198. function handleGroupBuyInsure(needInsure)
  199. {
  200. needInsure = needInsure ? 1 : 0;
  201. Ajax.call('group_buy.php?act=select_insure', 'insure=' + needInsure, orderSelectedResponse, 'GET', 'JSON');
  202. }
  203. /* *
  204. * 回调函数
  205. */
  206. function orderSelectedResponse(result)
  207. {
  208. if (result.error)
  209. {
  210. alert(result.error);
  211. location.href = './';
  212. }
  213. try
  214. {
  215. var layer = document.getElementById("ECS_ORDERTOTAL");
  216. layer.innerHTML = (typeof result == "object") ? result.content : result;
  217. if (result.payment != undefined)
  218. {
  219. var surplusObj = document.forms['theForm'].elements['surplus'];
  220. if (surplusObj != undefined)
  221. {
  222. surplusObj.disabled = result.pay_code == 'balance';
  223. }
  224. }
  225. }
  226. catch (ex) { }
  227. }
  228. /* *
  229. * 改变余额
  230. */
  231. function changeSurplus(val)
  232. {
  233. if (selectedSurplus == val)
  234. {
  235. return;
  236. }
  237. else
  238. {
  239. selectedSurplus = val;
  240. }
  241. Ajax.call('flow.php?step=change_surplus', 'surplus=' + val, changeSurplusResponse, 'GET', 'JSON');
  242. }
  243. /* *
  244. * 改变余额回调函数
  245. */
  246. function changeSurplusResponse(obj)
  247. {
  248. if (obj.error)
  249. {
  250. try
  251. {
  252. document.getElementById("ECS_SURPLUS_NOTICE").innerHTML = obj.error;
  253. document.getElementById('ECS_SURPLUS').value = '0';
  254. document.getElementById('ECS_SURPLUS').focus();
  255. }
  256. catch (ex) { }
  257. }
  258. else
  259. {
  260. try
  261. {
  262. document.getElementById("ECS_SURPLUS_NOTICE").innerHTML = '';
  263. }
  264. catch (ex) { }
  265. orderSelectedResponse(obj.content);
  266. }
  267. }
  268. /* *
  269. * 改变积分
  270. */
  271. function changeIntegral(val)
  272. {
  273. if (selectedIntegral == val)
  274. {
  275. return;
  276. }
  277. else
  278. {
  279. selectedIntegral = val;
  280. }
  281. Ajax.call('flow.php?step=change_integral', 'points=' + val, changeIntegralResponse, 'GET', 'JSON');
  282. }
  283. /* *
  284. * 改变积分回调函数
  285. */
  286. function changeIntegralResponse(obj)
  287. {
  288. if (obj.error)
  289. {
  290. try
  291. {
  292. document.getElementById('ECS_INTEGRAL_NOTICE').innerHTML = obj.error;
  293. document.getElementById('ECS_INTEGRAL').value = '0';
  294. document.getElementById('ECS_INTEGRAL').focus();
  295. }
  296. catch (ex) { }
  297. }
  298. else
  299. {
  300. try
  301. {
  302. document.getElementById('ECS_INTEGRAL_NOTICE').innerHTML = '';
  303. }
  304. catch (ex) { }
  305. orderSelectedResponse(obj.content);
  306. }
  307. }
  308. /* *
  309. * 改变红包
  310. */
  311. function changeBonus(val)
  312. {
  313. if (selectedBonus == val)
  314. {
  315. return;
  316. }
  317. else
  318. {
  319. selectedBonus = val;
  320. }
  321. Ajax.call('flow.php?step=change_bonus', 'bonus=' + val, changeBonusResponse, 'GET', 'JSON');
  322. }
  323. /* *
  324. * 改变红包的回调函数
  325. */
  326. function changeBonusResponse(obj)
  327. {
  328. if (obj.error)
  329. {
  330. alert(obj.error);
  331. try
  332. {
  333. document.getElementById('ECS_BONUS').value = '0';
  334. }
  335. catch (ex) { }
  336. }
  337. else
  338. {
  339. orderSelectedResponse(obj.content);
  340. }
  341. }
  342. /**
  343. * 验证红包序列号
  344. * @param string bonusSn 红包序列号
  345. */
  346. function validateBonus(bonusSn)
  347. {
  348. Ajax.call('flow.php?step=validate_bonus', 'bonus_sn=' + bonusSn, validateBonusResponse, 'GET');
  349. }
  350. function validateBonusResponse(result)
  351. {
  352. alert(result);
  353. }
  354. /* *
  355. * 改变发票的方式
  356. */
  357. function changeNeedInv()
  358. {
  359. var obj = document.getElementById('ECS_NEEDINV');
  360. var objType = document.getElementById('ECS_INVTYPE');
  361. var objPayee = document.getElementById('ECS_INVPAYEE');
  362. var objContent = document.getElementById('ECS_INVCONTENT');
  363. var needInv = obj.checked ? 1 : 0;
  364. var invType = obj.checked ? (objType != undefined ? objType.value : '') : '';
  365. var invPayee = obj.checked ? objPayee.value : '';
  366. var invContent = obj.checked ? objContent.value : '';
  367. objType.disabled = objPayee.disabled = objContent.disabled = ! obj.checked;
  368. if(objType != null)
  369. {
  370. objType.disabled = ! obj.checked;
  371. }
  372. Ajax.call('flow.php?step=change_needinv', 'need_inv=' + needInv + '&inv_type=' + encodeURIComponent(invType) + '&inv_payee=' + encodeURIComponent(invPayee) + '&inv_content=' + encodeURIComponent(invContent), orderSelectedResponse, 'GET');
  373. }
  374. /* *
  375. * 改变发票的方式
  376. */
  377. function groupBuyChangeNeedInv()
  378. {
  379. var obj = document.getElementById('ECS_NEEDINV');
  380. var objPayee = document.getElementById('ECS_INVPAYEE');
  381. var objContent = document.getElementById('ECS_INVCONTENT');
  382. var needInv = obj.checked ? 1 : 0;
  383. var invPayee = obj.checked ? objPayee.value : '';
  384. var invContent = obj.checked ? objContent.value : '';
  385. objPayee.disabled = objContent.disabled = ! obj.checked;
  386. Ajax.call('group_buy.php?act=change_needinv', 'need_idv=' + needInv + '&amp;payee=' + invPayee + '&amp;content=' + invContent, null, 'GET');
  387. }
  388. /* *
  389. * 改变缺货处理时的处理方式
  390. */
  391. function changeOOS(obj)
  392. {
  393. if (selectedOOS == obj)
  394. {
  395. return;
  396. }
  397. else
  398. {
  399. selectedOOS = obj;
  400. }
  401. Ajax.call('flow.php?step=change_oos', 'oos=' + obj.value, null, 'GET');
  402. }
  403. /* *
  404. * 检查提交的订单表单
  405. */
  406. function checkOrderForm(frm)
  407. {
  408. var paymentSelected = false;
  409. var shippingSelected = false;
  410. // 检查是否选择了支付配送方式
  411. for (i = 0; i < frm.elements.length; i ++ )
  412. {
  413. if (frm.elements[i].name == 'shipping' && frm.elements[i].checked)
  414. {
  415. shippingSelected = true;
  416. }
  417. if (frm.elements[i].name == 'payment' && frm.elements[i].checked)
  418. {
  419. paymentSelected = true;
  420. }
  421. }
  422. if ( ! shippingSelected)
  423. {
  424. alert(flow_no_shipping);
  425. return false;
  426. }
  427. if ( ! paymentSelected)
  428. {
  429. alert(flow_no_payment);
  430. return false;
  431. }
  432. // 检查用户输入的余额
  433. if (document.getElementById("ECS_SURPLUS"))
  434. {
  435. var surplus = document.getElementById("ECS_SURPLUS").value;
  436. var error = Utils.trim(Ajax.call('flow.php?step=check_surplus', 'surplus=' + surplus, null, 'GET', 'TEXT', false));
  437. if (error)
  438. {
  439. try
  440. {
  441. document.getElementById("ECS_SURPLUS_NOTICE").innerHTML = error;
  442. }
  443. catch (ex)
  444. {
  445. }
  446. return false;
  447. }
  448. }
  449. // 检查用户输入的积分
  450. if (document.getElementById("ECS_INTEGRAL"))
  451. {
  452. var integral = document.getElementById("ECS_INTEGRAL").value;
  453. var error = Utils.trim(Ajax.call('flow.php?step=check_integral', 'integral=' + integral, null, 'GET', 'TEXT', false));
  454. if (error)
  455. {
  456. return false;
  457. try
  458. {
  459. document.getElementById("ECS_INTEGRAL_NOTICE").innerHTML = error;
  460. }
  461. catch (ex)
  462. {
  463. }
  464. }
  465. }
  466. frm.action = frm.action + '?step=done';
  467. return true;
  468. }
  469. /* *
  470. * 检查收货地址信息表单中填写的内容
  471. */
  472. function checkConsignee(frm)
  473. {
  474. var msg = new Array();
  475. var err = false;
  476. if (frm.elements['country'] && frm.elements['country'].value == 0)
  477. {
  478. msg.push(country_not_null);
  479. err = true;
  480. }
  481. if (frm.elements['province'] && frm.elements['province'].value == 0 && frm.elements['province'].length > 1)
  482. {
  483. err = true;
  484. msg.push(province_not_null);
  485. }
  486. if (frm.elements['city'] && frm.elements['city'].value == 0 && frm.elements['city'].length > 1)
  487. {
  488. err = true;
  489. msg.push(city_not_null);
  490. }
  491. if (frm.elements['district'] && frm.elements['district'].length > 1)
  492. {
  493. if (frm.elements['district'].value == 0)
  494. {
  495. err = true;
  496. msg.push(district_not_null);
  497. }
  498. }
  499. if (Utils.isEmpty(frm.elements['consignee'].value))
  500. {
  501. err = true;
  502. msg.push(consignee_not_null);
  503. }
  504. if ( ! Utils.isEmail(frm.elements['email'].value))
  505. {
  506. err = true;
  507. msg.push(invalid_email);
  508. }
  509. if (frm.elements['address'] && Utils.isEmpty(frm.elements['address'].value))
  510. {
  511. err = true;
  512. msg.push(address_not_null);
  513. }
  514. if (frm.elements['zipcode'] && frm.elements['zipcode'].value.length > 0 && (!Utils.isNumber(frm.elements['zipcode'].value)))
  515. {
  516. err = true;
  517. msg.push(zip_not_num);
  518. }
  519. if (Utils.isEmpty(frm.elements['tel'].value))
  520. {
  521. err = true;
  522. msg.push(tele_not_null);
  523. }
  524. else
  525. {
  526. if (!Utils.isTel(frm.elements['tel'].value))
  527. {
  528. err = true;
  529. msg.push(tele_invaild);
  530. }
  531. }
  532. if (frm.elements['mobile'] && frm.elements['mobile'].value.length > 0 && (!Utils.isTel(frm.elements['mobile'].value)))
  533. {
  534. err = true;
  535. msg.push(mobile_invaild);
  536. }
  537. if (err)
  538. {
  539. message = msg.join("\n");
  540. alert(message);
  541. }
  542. return ! err;
  543. }