PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/miyou/Tpl/default/Public/js/common.js

http://iiccms.googlecode.com/
JavaScript | 543 lines | 390 code | 57 blank | 96 comment | 88 complexity | 4e6c8c2d75d0b46e645d7195540586ab MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, LGPL-2.1
  1. //+---------------------------------------------------
  2. //| ???????????????
  3. //+---------------------------------------------------
  4. var selectRowIndex = Array();
  5. //+---------------------------------------------------
  6. //| ???????????
  7. //+---------------------------------------------------
  8. function $byid(objectId){
  9. return reobj=(typeof(objectId)=="object") ? objectId : document.getElementById(objectId);
  10. }
  11. //+---------------------------------------------------
  12. //| ?????????
  13. //+---------------------------------------------------
  14. function display(objectId){
  15. if($byid(objectId).style.display=='none'){
  16. $byid(objectId).style.display='block';
  17. }else{
  18. $byid(objectId).style.display='none';
  19. }
  20. }
  21. //+---------------------------------------------------
  22. //| JS?list?????
  23. //+---------------------------------------------------
  24. function sortBy (field,sort){
  25. if(sort=='A' | sort=='asc'){
  26. sort='asc';
  27. }else{
  28. sort='desc';
  29. }
  30. location.href = clearurl(REQUEST_URI,"/?")+"/?p=1&order="+field+"&sort="+sort;
  31. }
  32. //+---------------------------------------------------
  33. //| JS?list?????
  34. //| AjaxSortBy (??,??,??,??,??)
  35. //+---------------------------------------------------
  36. function AjaxSortBy (model,action,field,sort,obj){
  37. if(sort=='A' | sort=='asc'){
  38. sort='asc';
  39. }else{
  40. sort='desc';
  41. }
  42. //alert(APP+"/"+model+"/"+action+"/","p/1/order/"+field+"/sort/"+sort);
  43. ThinkAjax.get(APP+"/"+model+"/"+action+"/","p/1/order/"+field+"/sort/"+sort,obj);
  44. }
  45. //+---------------------------------------------------
  46. //| JS?list?????
  47. //| AjaxSortBy (??,??,??,??,??,??)
  48. //+---------------------------------------------------
  49. function AjaxPageBy (model,action,field,sort,obj,page){
  50. if(sort=='A' | sort=='asc'){
  51. sort='asc';
  52. }else{
  53. sort='desc';
  54. }
  55. ThinkAjax.get(APP+"/"+model+"/"+action+"/","p/"+page+"/order/"+field+"/sort/"+sort,obj);
  56. //ThinkAjax.get(APP+"/"+model+"/"+action+"/p/"+page+"/order/"+field+"/sort/"+sort,,obj);
  57. }
  58. //+---------------------------------------------------
  59. //| ????????????????
  60. //+---------------------------------------------------
  61. function PopModalWindow(url,width,height){
  62. var result=window.showModalDialog(url,"win","dialogWidth:"+width+"px;dialogHeight:"+height+"px;center:yes;status:no;scroll:no;dialogHide:no;resizable:no;help:no;edge:sunken;");
  63. return result;
  64. }
  65. //+---------------------------------------------------
  66. //| ????????????
  67. //+---------------------------------------------------
  68. function view(id){
  69. var keyValue;
  70. if (id)
  71. {
  72. keyValue = id;
  73. }else {
  74. keyValue = getSelectCheckboxValue();
  75. }
  76. if (!keyValue)
  77. {
  78. alert('??????????');
  79. return false;
  80. }
  81. //location.href = URL+"/view/id/"+keyValue;
  82. var ps = Per_host+URL+"/view/id/"+keyValue;
  83. lhgdialog.opendlg( '??????',ps, 600, 450 );
  84. }
  85. //+---------------------------------------------------
  86. //| ????
  87. //+---------------------------------------------------
  88. function add(url){
  89. var ps;
  90. if(!url){
  91. ps = Per_host+URL+"/add/";
  92. }else{
  93. ps = Per_host+url;
  94. }
  95. lhgdialog.opendlg( '????',ps, 600, 450 );
  96. }
  97. //+---------------------------------------------------
  98. //| ??????
  99. //+---------------------------------------------------
  100. function addinfo(tid,cid){
  101. var ps = Per_host+URL+"/addinfo/"+tid+"/cid/"+cid;
  102. lhgdialog.opendlg( '????????',ps, 600, 450 );
  103. }
  104. //+---------------------------------------------------
  105. //| ??????
  106. //+---------------------------------------------------
  107. function audition(tid){
  108. var ps = Per_host+APP+"/Music/add/tid/"+tid;
  109. lhgdialog.opendlg( '??????',ps, 600, 450 );
  110. }
  111. //+---------------------------------------------------
  112. //| ??????
  113. //+---------------------------------------------------
  114. function edit(id){
  115. var keyValue;
  116. if (id)
  117. {
  118. keyValue = id;
  119. }else {
  120. keyValue = getSelectCheckboxValue();
  121. }
  122. if (!keyValue)
  123. {
  124. alert('????????');
  125. return false;
  126. }
  127. //location.href = URL+"/edit/id/"+keyValue;
  128. var ps = Per_host+URL+"/edit/id/"+keyValue;
  129. lhgdialog.opendlg( '???????',ps, 600, 450 );
  130. }
  131. //+---------------------------------------------------
  132. //| ?????js??,????????,????delete
  133. //+---------------------------------------------------
  134. function del(id){
  135. var keyValue;
  136. if (id)
  137. {
  138. keyValue = id;
  139. }else {
  140. keyValue = getSelectCheckboxValues();
  141. }
  142. if (!keyValue)
  143. {
  144. alert('???????');
  145. return false;
  146. }
  147. if (window.confirm('??????????'))
  148. {
  149. location.href = Per_host+URL+"/delete/id/"+keyValue;
  150. //ThinkAjax.send(URL+"/delete/","id="+keyValue+'&_AJAX_SUBMIT_=1',doDelete);
  151. }
  152. }
  153. //+---------------------------------------------------
  154. //| ?????????????????
  155. //+---------------------------------------------------
  156. function doDelete(){
  157. var Table = $byid('checkList');
  158. var len = selectRowIndex.length;
  159. for (var i=len-1;i>=0;i-- )
  160. {
  161. //?????
  162. Table.deleteRow(selectRowIndex[i]);
  163. }
  164. selectRowIndex = Array();
  165. }
  166. //+---------------------------------------------------
  167. //| ???????
  168. //+---------------------------------------------------
  169. function delAttach(id,showId){
  170. var keyValue;
  171. if (id)
  172. {
  173. keyValue = id;
  174. }else {
  175. keyValue = getSelectCheckboxValues();
  176. }
  177. if (!keyValue)
  178. {
  179. alert('???????');
  180. return false;
  181. }
  182. if (window.confirm('??????????'))
  183. {
  184. $byid('result').style.display = 'block';
  185. ThinkAjax.send(URL+"/delAttach/","id="+keyValue+'&_AJAX_SUBMIT_=1');
  186. if (showId != undefined)
  187. {
  188. $byid(showId).innerHTML = '';
  189. }
  190. }
  191. }
  192. //+---------------------------------------------------
  193. //??URL?????????????????#????????
  194. //url??????,ps??
  195. //+---------------------------------------------------
  196. function clearurl(url,ps){
  197. var s=url;
  198. var sarray=new Array();
  199. sarray=s.split(ps);
  200. var sa=sarray[0];
  201. // alert(sa);
  202. return sa;
  203. }
  204. //+---------------------------------------------------
  205. //| ????Checkbox??????,????????????
  206. //+---------------------------------------------------
  207. function getSelectCheckboxValue(){
  208. var obj = document.getElementsByName('key');
  209. var result ='';
  210. for (var i=0;i<obj.length;i++)
  211. {
  212. if (obj[i].checked==true)
  213. return obj[i].value;
  214. }
  215. return false;
  216. }
  217. //+---------------------------------------------------
  218. //| ?????checkbox,????????????
  219. //+---------------------------------------------------
  220. function CheckAll(strSection)
  221. {
  222. var i;
  223. var colInputs = document.getElementById(strSection).getElementsByTagName("input");
  224. for (i=1; i < colInputs.length; i++)
  225. {
  226. colInputs[i].checked=colInputs[0].checked;
  227. }
  228. }
  229. //+---------------------------------------------------
  230. //| ????Checkbox??????,????????????
  231. //+---------------------------------------------------
  232. function getSelectCheckboxValues(){
  233. var obj = document.getElementsByName('key');
  234. var result ='';
  235. var j= 0;
  236. for (var i=0;i<obj.length;i++)
  237. {
  238. if (obj[i].checked==true){
  239. selectRowIndex[j] = i+1;
  240. result += obj[i].value+",";
  241. j++;
  242. }
  243. }
  244. return result.substring(0, result.length-1);
  245. }
  246. //---------------------------------------------------------------------
  247. //LIST?????
  248. //---------------------------------------------------------------------
  249. var lastrowoffset = 0; // footer row
  250. var usecss = true; // use css
  251. var rowclass = 'ewTableRow'; // ??????
  252. var rowaltclass = 'ewTableAltRow'; // ??????
  253. var rowmoverclass = 'ewTableHighlightRow'; // ????????
  254. var rowselectedclass = 'ewTableSelectRow'; // ????????
  255. var roweditclass = 'ewTableEditRow'; // ????????
  256. var rowcolor = '#FFFFFF'; // row color
  257. var rowaltcolor = '#F5F5F5'; // row alternate color
  258. var rowmovercolor = '#FFCCFF'; // row mouse over color
  259. var rowselectedcolor = '#CCFFFF'; // row selected color
  260. var roweditcolor = '#FFFF99'; // row edit color
  261. // ?????????
  262. function ew_mouseover(row) {
  263. row.mover = true; // mouse over
  264. if (!row.selected) {
  265. if (usecss)
  266. row.className = rowmoverclass;
  267. else
  268. row.style.backgroundColor = rowmovercolor;
  269. }
  270. }
  271. // ?????????
  272. function ew_mouseout(row) {
  273. row.mover = false; // mouse out
  274. if (!row.selected) {
  275. ew_setcolor(row);
  276. }
  277. }
  278. // ??????
  279. function ew_setcolor(row) {
  280. if (row.selected) {
  281. if (usecss)
  282. row.className = rowselectedclass;
  283. else
  284. row.style.backgroundColor = rowselectedcolor;
  285. }
  286. else if (row.edit) {
  287. if (usecss)
  288. row.className = roweditclass;
  289. else
  290. row.style.backgroundColor = roweditcolor;
  291. }
  292. else if ((row.rowIndex-firstrowoffset)%2) {
  293. if (usecss)
  294. row.className = rowaltclass;
  295. else
  296. row.style.backgroundColor = rowaltcolor;
  297. }
  298. else {
  299. if (usecss)
  300. row.className = rowclass;
  301. else
  302. row.style.backgroundColor = rowcolor;
  303. }
  304. }
  305. // ???????
  306. function ew_click(row) {
  307. if (row.deleteclicked)
  308. row.deleteclicked = false; // reset delete button/checkbox clicked
  309. else {
  310. var bselected = row.selected;
  311. ew_clearselected(); // clear all other selected rows
  312. if (!row.deleterow) row.selected = !bselected; // toggle
  313. ew_setcolor(row);
  314. }
  315. }
  316. // ???????
  317. function ew_clearselected() {
  318. var table = document.getElementById(tablename);
  319. for (var i = firstrowoffset; i < table.rows.length; i++) {
  320. var thisrow = table.rows[i];
  321. if (thisrow.selected && !thisrow.deleterow) {
  322. thisrow.selected = false;
  323. ew_setcolor(thisrow);
  324. }
  325. }
  326. }
  327. //---------------------------------------------------------------------
  328. // ?????? by Liu21st at 2005-11-29
  329. //-------------------------begin---------------------------------------
  330. function searchItem(item){
  331. for(i=0;i<selectSource.length;i++)
  332. if (selectSource[i].text.indexOf(item)!=-1)
  333. {selectSource[i].selected = true;break;}
  334. }
  335. function addItem(){
  336. for(i=0;i<selectSource.length;i++)
  337. if(selectSource[i].selected){
  338. selectTarget.add( new Option(selectSource[i].text,selectSource[i].value));
  339. }
  340. for(i=0;i<selectTarget.length;i++)
  341. for(j=0;j<selectSource.length;j++)
  342. if(selectSource[j].text==selectTarget[i].text)
  343. selectSource[j]=null;
  344. }
  345. function delItem(){
  346. for(i=0;i<selectTarget.length;i++)
  347. if(selectTarget[i].selected){
  348. selectSource.add(new Option(selectTarget[i].text,selectTarget[i].value));
  349. }
  350. for(i=0;i<selectSource.length;i++)
  351. for(j=0;j<selectTarget.length;j++)
  352. if(selectTarget[j].text==selectSource[i].text) selectTarget[j]=null;
  353. }
  354. function delAllItem(){
  355. for(i=0;i<selectTarget.length;i++){
  356. selectSource.add(new Option(selectTarget[i].text,selectTarget[i].value));
  357. }
  358. selectTarget.length=0;
  359. }
  360. function addAllItem(){
  361. for(i=0;i<selectSource.length;i++){
  362. selectTarget.add(new Option(selectSource[i].text,selectSource[i].value));
  363. }
  364. selectSource.length=0;
  365. }
  366. function getReturnValue(){
  367. for(i=0;i<selectTarget.length;i++){
  368. selectTarget[i].selected = true;
  369. }
  370. }
  371. function loadBar(fl)
  372. //fl is show/hide flag
  373. {
  374. var x,y;
  375. if (self.innerHeight)
  376. {// all except Explorer
  377. x = self.innerWidth;
  378. y = self.innerHeight;
  379. }
  380. else
  381. if (document.documentElement && document.documentElement.clientHeight)
  382. {// Explorer 6 Strict Mode
  383. x = document.documentElement.clientWidth;
  384. y = document.documentElement.clientHeight;
  385. }
  386. else
  387. if (document.body)
  388. {// other Explorers
  389. x = document.body.clientWidth;
  390. y = document.body.clientHeight;
  391. }
  392. var el=document.getElementById('loader');
  393. if(null!=el)
  394. {
  395. var top = (y/2) - 50;
  396. var left = (x/2) - 150;
  397. if( left<=0 ) left = 10;
  398. el.style.visibility = (fl==1)?'visible':'hidden';
  399. el.style.display = (fl==1)?'block':'none';
  400. el.style.left = left + "px"
  401. el.style.top = top + "px";
  402. el.style.zIndex = 2;
  403. }
  404. }
  405. /**
  406. * X-browser event handler attachment and detachment
  407. * TH: Switched first true to false per http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
  408. *
  409. * @argument obj - the object to attach event to
  410. * @argument evType - name of the event - DONT ADD "on", pass only "mouseover", etc
  411. * @argument fn - function to call
  412. */
  413. function addEvent(obj, evType, fn){
  414. if (obj.addEventListener){
  415. obj.addEventListener(evType, fn, false);
  416. return true;
  417. } else if (obj.attachEvent){
  418. var r = obj.attachEvent("on"+evType, fn);
  419. return r;
  420. } else {
  421. return false;
  422. }
  423. }
  424. function removeEvent(obj, evType, fn, useCapture){
  425. if (obj.removeEventListener){
  426. obj.removeEventListener(evType, fn, useCapture);
  427. return true;
  428. } else if (obj.detachEvent){
  429. var r = obj.detachEvent("on"+evType, fn);
  430. return r;
  431. } else {
  432. alert("Handler could not be removed");
  433. }
  434. }
  435. /**
  436. *lee99.??js??????
  437. * Gets the full width/height because it's different for most browsers.
  438. */
  439. function getViewportHeight() {
  440. if (window.innerHeight!=window.undefined) return window.innerHeight;
  441. if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
  442. if (document.body) return document.body.clientHeight;
  443. return window.undefined;
  444. }
  445. function getViewportWidth() {
  446. var offset = 17;
  447. var width = null;
  448. if (window.innerWidth!=window.undefined) return window.innerWidth;
  449. if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth;
  450. if (document.body) return document.body.clientWidth;
  451. }
  452. /**
  453. * Gets the real scroll top
  454. */
  455. function getScrollTop() {
  456. if (self.pageYOffset) // all except Explorer
  457. {
  458. return self.pageYOffset;
  459. }
  460. else if (document.documentElement && document.documentElement.scrollTop)
  461. // Explorer 6 Strict
  462. {
  463. return document.documentElement.scrollTop;
  464. }
  465. else if (document.body) // all other Explorers
  466. {
  467. return document.body.scrollTop;
  468. }
  469. }
  470. function getScrollLeft() {
  471. if (self.pageXOffset) // all except Explorer
  472. {
  473. return self.pageXOffset;
  474. }
  475. else if (document.documentElement && document.documentElement.scrollLeft)
  476. // Explorer 6 Strict
  477. {
  478. return document.documentElement.scrollLeft;
  479. }
  480. else if (document.body) // all other Explorers
  481. {
  482. return document.body.scrollLeft;
  483. }
  484. }
  485. function addinfo(tid,catid){
  486. }