hpmain.js
上传用户:xhdzkj
上传日期:2013-04-11
资源大小:4958k
文件大小:13k
源码类别:

FlashMX/Flex源码

开发平台:

CHM

  1. //--Global declaration
  2. var gxmlDoc = null;
  3. var garrLayoutParts = new Array();
  4. var arrParts = new Array("HPFrameHL", "HPFrameDL","HPFrameML");
  5. var blnIE5    = false;
  6. var blnBorder = false;
  7. var blnTrack  = false;
  8. var blnDebug  = false;
  9. var blnMoved  = false;
  10. var userAgent = navigator.userAgent;
  11. var MSIEIndex = userAgent.indexOf("MSIE");
  12. if (userAgent.indexOf("Win")  != -1 &&
  13. userAgent.indexOf("MSIE") != -1 &&
  14. userAgent.substring((MSIEIndex + 5),(MSIEIndex + 6)) > 4)
  15. {
  16. blnIE5 = true;
  17. }
  18. //--Object declaration
  19. function objPart(strPartName, strState, strOrder)
  20. {
  21. this.name = strPartName;
  22. this.state = strState;
  23. this.order = strOrder;
  24. }
  25. function loadPage(nthTrack,nthBorder)
  26. {
  27. var sFile = new String(window.document.location);
  28. var blnDefault = (sFile.toLowerCase().indexOf("morenews") == -1);
  29. blnDebug = (QueryString('dbg') != "");
  30. var s = QueryString("border");
  31. if (s != "") nthBorder = parseInt(s);
  32. s = QueryString("track");
  33. if (s != "") nthTrack = parseInt(s);
  34. //--Determine whether to track.
  35. if (nthTrack > 0)
  36. {
  37. var td = new Date();
  38. var xval = 67890;
  39. var yval = ((Math.round(Math.abs(Math.cos(td.getTime()))*xval)%xval));
  40. if ((yval % nthTrack) == 0)
  41. blnTrack = true;
  42. }
  43. if (blnIE5)
  44. {
  45. if (blnDefault)
  46. {  
  47. for (var i = 0; i < arrParts.length; i++)
  48. garrLayoutParts[i] = new objPart(arrParts[i], "EXPAND", i);
  49. //--Initialize part display state
  50. RearrangePartPos();
  51. loadSavedShowHide();
  52. //--Initialize mouse even handlers
  53. window.document.onmousedown = Document_OnMouseDown;
  54. window.document.onmousemove = Document_OnMouseMove;
  55. window.document.onmouseup   = Document_OnMouseUp;
  56. //--Determine whether to show border.
  57. if (nthBorder > 0)
  58. {
  59. var td = new Date();
  60. var xval = 12345;
  61. var yval = ((Math.round(Math.abs(Math.cos(td.getTime()))*xval)%xval));
  62. if ((yval % nthBorder) == 0)
  63. {
  64. blnBorder = true;
  65. document.all("HPFrameHLContent").style.borderColor = "#cccccc";
  66. document.all("HPFrameDLContent").style.borderColor = "#cccccc";
  67. document.all("HPFrameMLContent").style.borderColor = "#cccccc";
  68. }
  69. }
  70. }
  71. }
  72. else
  73. {
  74. //--Enable collapse/expand for IE4+
  75. if (blnDefault &&
  76.     userAgent.indexOf("MSIE") != -1 &&
  77.     userAgent.substring((MSIEIndex + 5),(MSIEIndex + 6)) > 3)
  78. {
  79. document.all('HPFrameHLTab3').src = "../../../../images/html/collapse.gif";
  80. document.all('HPFrameDLTab3').src = "../../../../images/html/collapse.gif";
  81. document.all('HPFrameMLTab3').src = "../../../../images/html/collapse.gif";
  82. }
  83. }
  84. }
  85. function saveState()
  86. {
  87. var udoLayout = document.all("oLayout");
  88. for (var i = 0; i < garrLayoutParts.length; i++)
  89. udoLayout.setAttribute(garrLayoutParts[i].name, (garrLayoutParts[i].state + "," + garrLayoutParts[i].order));
  90. //udoLayout.save("HPLayoutStore");
  91. }
  92. function loadSavedShowHide()
  93. {
  94. var udoLayout = document.all("oLayout");
  95. if (!udoLayout)
  96. return;
  97. udoLayout.load("HPLayoutStore");
  98. for (var i = 0; i < garrLayoutParts.length; i++)
  99. {
  100. var strAttr = udoLayout.getAttribute(garrLayoutParts[i].name);
  101. if (strAttr)
  102. {
  103. var strstate = strAttr.split(',')[0];
  104. if (strstate)
  105. {
  106. if (strstate == "EXPAND")
  107. showHideContent(garrLayoutParts[i].name, true);
  108. else if (strstate == "COLLAPSE")
  109. showHideContent(garrLayoutParts[i].name, false);
  110. }
  111. }
  112. }
  113. }
  114. function showHideContent(id,bOn)
  115. {
  116. var bMO = false;
  117. var oContent = document.all.item(id+"Content");
  118. var oImage   = document.all.item(id+"Tab3");
  119. if (!oContent || !oImage) return;
  120. if (event.srcElement)
  121. {
  122. bMO = (event.srcElement.src.toLowerCase().indexOf("_mo.gif") != -1);
  123. bOn = (oContent.style.display.toLowerCase() == "none");
  124. }
  125. if (bOn == false)
  126. {
  127. oContent.style.display = "";
  128. oImage.src = "../../../../images/html/expand" + (bMO? "_mo.gif" : ".gif");
  129. }
  130. else
  131. {
  132. oContent.style.display = "none";
  133. oImage.src = "../../../../images/html/collapse" + (bMO? "_mo.gif" : ".gif");
  134. }
  135. for (var i = 0; i < garrLayoutParts.length; i++)
  136. {
  137. if (id == garrLayoutParts[i].name)
  138. garrLayoutParts[i].state = bOn ? "EXPAND" : "COLLAPSE";
  139. }
  140. if (event.srcElement)
  141. saveState();
  142. MM_showHideLayers('HPFrameHLContent','','show');
  143. }
  144. function setBorder(id,bOn)
  145. {
  146. var oTab    = document.all.item(id+"Tab");
  147. var oTab1   = document.all.item(id+"Tab1");
  148. var oTab2   = document.all.item(id+"Tab2");
  149. var oTab3   = document.all.item(id+"Tab3");
  150. var oBorder = document.all.item(id+"Content");
  151. if (!oTab || !oTab1 || !oTab2 || !oTab3 || !oBorder) 
  152. return;
  153. if (bOn)
  154. {
  155. oTab.bgColor = "#3366CC";
  156. oTab2.color  = "#F3F3F3";
  157. if (oBorder.style.display == "none")
  158. oTab3.src = "../../../../images/html/expand_mo.gif";
  159. else
  160. oTab3.src = "../../../../images/html/collapse_mo.gif";
  161. }
  162. else
  163. {
  164. oTab.bgColor = "#CCCCCC";
  165. oTab2.color  = "#f3f3f3";
  166. if (oBorder.style.display == "none")
  167. oTab3.src = "../../../../images/html/expand.gif";
  168. else
  169. oTab3.src = "../../../../images/html/collapse.gif";
  170. }
  171. }
  172. function trackInfoForm(param)
  173. {
  174. if (blnTrack)
  175. {
  176. var sUrl = "#";
  177. if (blnDebug) alert(sUrl);
  178. // TrackForm.sPage.value = param;
  179. // TrackForm.action = sUrl;
  180. // TrackForm.submit();
  181. }
  182. }
  183. //-----------------------------------------------
  184. var partMover = null;
  185. var isPosition = false;
  186. var orgTop;
  187. var orgLeft;
  188. var frmholder = null;
  189. var zoneLeft = -1;
  190. var zoneTop = -1;
  191. var m_zoneElement = null;
  192. function Document_OnMouseUp()
  193. {
  194. if (!partMover) return;
  195. isPosition = false;
  196. partMover.releaseCapture();
  197. partMover.style.position = 'static';
  198. var m_prtSrc = window.event.srcElement;
  199. if (!CheckXPos(m_zoneElement) || !CheckYPos(m_zoneElement) || !blnMoved)
  200. {
  201. trackInfoForm(("HP_WPFound_"+(blnBorder? "BorderOn" : "BorderOff")));
  202. SetBorderOff();
  203. return;
  204. }
  205. PartSwap();
  206. saveState();
  207. blnMoved = false;
  208. trackInfoForm(("HP_WPSwap_"+(blnBorder? "BorderOn" : "BorderOff")));
  209. SetBorderOff();
  210. event.cancelBubble = true;
  211. }
  212. function RearrangePartPos()
  213. {
  214. m_zoneElement = document.all.item("DashZoneRight");
  215. if (m_zoneElement)
  216. {
  217. var udoLayout = m_zoneElement.document.all("oLayout");
  218. if (!udoLayout)
  219. return false;
  220. udoLayout.load("HPLayoutStore");
  221. for (var i = 0; i < garrLayoutParts.length; i++)
  222. {
  223. var strAttr = udoLayout.getAttribute(garrLayoutParts[i].name);
  224. if (strAttr)
  225. {
  226. var strorder = strAttr.split(',')[1];
  227. if (strorder)
  228. {
  229. if (strorder != garrLayoutParts[i].order)
  230. {
  231. PartSwap();
  232. return true;
  233. }
  234. }
  235. }
  236. }
  237. }
  238. return true;
  239. }
  240. function PartSwap()
  241. {
  242. var oPart= null;
  243. var oPartHolder = null;
  244. var oPartSpacer = null;
  245. var strOriginalLabel = "";
  246. var strReplacingLabel = "";
  247. outerloop:
  248. for (var i=0; i < m_zoneElement.children.length; i++)
  249. {  
  250. innerloop:
  251. for (var j=0; j < arrParts.length; j++)
  252. {
  253. var holderDiv = m_zoneElement.all.item(arrParts[j] + "Holder");
  254. strOriginalLabel = arrParts[j];
  255. var replacingDiv = null;
  256. if (j==0) 
  257. {
  258. replacingDiv = m_zoneElement.all.item(arrParts[j+1] + "Holder");
  259. strReplacingLabel = arrParts[j+1];
  260. }
  261. else
  262. {
  263. replacingDiv = m_zoneElement.all.item(arrParts[0] + "Holder");
  264. strReplacingLabel = arrParts[0];
  265. }
  266. if (holderDiv)
  267. {
  268. if (m_zoneElement.children.item(i).id == holderDiv.id)
  269. {   
  270. var holdernext = holderDiv.nextSibling;
  271. var replacingnext = replacingDiv.nextSibling;
  272. var holdernextnext = holdernext.nextSibling;
  273. var replacingnextnext = replacingnext.nextSibling;
  274. oPartHolder = m_zoneElement.replaceChild(
  275. replacingDiv, holderDiv);
  276. oPart = m_zoneElement.replaceChild(
  277. replacingnext, holdernext);
  278. oPartSpacer = m_zoneElement.replaceChild(
  279. replacingnextnext, holdernextnext);
  280. break outerloop;
  281. }
  282. }
  283. }
  284. m_zoneElement.appendChild(oPartHolder);
  285. m_zoneElement.appendChild(oPart);
  286. m_zoneElement.appendChild(oPartSpacer);
  287. for (var i = 0; i < garrLayoutParts.length; i++)
  288. {
  289. if (strReplacingLabel == garrLayoutParts[i].name)
  290. garrLayoutParts[i].order = "0";
  291. if (strOriginalLabel == garrLayoutParts[i].name)
  292. garrLayoutParts[i].order = "1";
  293. }
  294. }
  295. function CheckXPos(obj)
  296. {
  297. if ((partMover.style.pixelLeft + partMover.offsetWidth) < zoneLeft)
  298. return false;
  299. if (partMover.style.pixelLeft > (zoneLeft + obj.offsetWidth))
  300. return false;
  301. return true;
  302. }
  303. function CheckYPos(obj)
  304. {
  305. var movingpart = null;
  306. var part = null;
  307. var partLeft = -1;
  308. var partTop = -1;
  309. for (var k = 0; k < arrParts.length; k++)
  310. {
  311. movingpart = partMover.all.item(arrParts[k]);
  312. if (movingpart)
  313. {
  314. for(var j = 0; j < arrParts.length; j++)
  315. {
  316. part = obj.all.item(arrParts[j]);
  317. if (part && (part != movingpart))
  318. {
  319. partTop = GetAbsoluteTop(part);
  320. if ((partMover.style.pixelTop + 2*partMover.offsetHeight) < partTop)
  321. return false;
  322. if (partMover.style.pixelTop > (partTop + part.offsetHeight))
  323. return false;
  324. }
  325. }
  326. break;
  327. }
  328. }
  329. return true;
  330. }
  331. function SetBorderOff()
  332. {
  333. for (var i = 0; i < arrParts.length; i++)
  334. {
  335. var frm = partMover.all.item(arrParts[i]);
  336. if (frm)
  337. {
  338. setBorder(arrParts[i],false);
  339. break;
  340. }
  341. }
  342. frmholder.style.display = "none";
  343. frmholder.style.height = 0;
  344. }
  345. function Document_OnMouseDown()
  346. {
  347. //--Reinitialize partMover variable
  348. partMover = null;
  349. var m_prtSrc = window.event.srcElement;
  350. var tagName = event.srcElement.tagName.toUpperCase();
  351. if (tagName == "IMG" || tagName == "A")
  352. return;
  353. var m_tabElement = TraverseToClassName(m_prtSrc, "HPFrameTab");
  354. if (!m_tabElement)
  355. return;
  356. var m_classElement = TraverseToClassName(m_prtSrc, "divMoveClass");
  357. if (m_classElement == null)
  358. return;
  359. var strFrame = null;
  360. partMover = m_classElement;
  361. for (var i = 0; i < arrParts.length; i++)
  362. {
  363. var divPart = partMover.all.item(arrParts[i]);
  364. if (divPart)
  365. {
  366. strFrame = divPart.id;
  367. break;
  368. }
  369. }
  370. m_zoneElement = TraverseToClassName(m_prtSrc, "DashZoneRight");
  371. if ((zoneLeft == -1) || (zoneTop == -1))
  372. {
  373. zoneLeft = GetAbsoluteLeft(m_zoneElement);
  374. zoneTop = GetAbsoluteTop(m_zoneElement);
  375. }
  376. frmholder =  m_zoneElement.all.item(strFrame + "Holder"); 
  377. frmholder.style.height = partMover.offsetHeight;
  378. frmholder.style.display = "inline";
  379. partMover.style.position = 'absolute';
  380. partMover.style.width = partMover.offsetWidth;
  381. partMover.style.pixelLeft = event.x;
  382. partMover.style.pixelTop = event.y;
  383. orgLeft = partMover.style.pixelLeft;
  384. orgTop = partMover.style.pixelTop;
  385. partMover.style.display = "block";
  386. event.cancelBubble = true;
  387.     isPosition = true;
  388.     partMover.setCapture();
  389. }
  390. function Document_OnMouseMove()
  391. {
  392. if(!isPosition || !partMover)
  393. return;
  394. partMover.style.pixelLeft = event.x;
  395. partMover.style.pixelTop = event.y;
  396. event.cancelBubble = true;
  397. blnMoved = true;
  398. }
  399. function TraverseToClassName(srcElement,ClassName)
  400. {
  401. while(srcElement.className != ClassName)
  402. {
  403. srcElement = srcElement.parentElement;
  404. if (srcElement == null)
  405. return null;
  406. }
  407. return srcElement;
  408. }
  409. function GetAbsoluteTop(elem)
  410. {
  411. var topPosition = 0;
  412. while (elem)
  413. {
  414. if (elem.tagName == 'BODY')
  415. {
  416. break;
  417. }
  418. topPosition += elem.offsetTop;
  419. elem = elem.offsetParent;
  420. }
  421. return topPosition;
  422. }
  423. function GetAbsoluteLeft(elem)
  424. {
  425. var leftPosition = 0;
  426. while (elem)
  427. {
  428. if (elem.tagName == 'BODY')
  429. {
  430. break;
  431. }
  432. leftPosition += elem.offsetLeft;
  433. elem = elem.offsetParent;
  434. }
  435. return leftPosition;
  436. }
  437. function QueryString(sName)
  438. {
  439. var sSource = String(window.document.location);
  440. var sReturn = "";
  441. var sQUS = "?";
  442. var sAMP = "&";
  443. var sEQ = "=";
  444. var iPos;
  445. iPos = sSource.indexOf(sQUS);
  446. var strQuery = sSource.substr(iPos, sSource.length - iPos);
  447. var strLCQuery = strQuery.toLowerCase();
  448. var strLCName = sName.toLowerCase();
  449. iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ);
  450. if (iPos == -1)
  451. {
  452. iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ);
  453. if (iPos == -1)
  454. return "";
  455. }
  456. sReturn = strQuery.substr(iPos + sName.length + 2, 
  457.   strQuery.length-(iPos + sName.length + 2));
  458.    
  459. var iPosAMP = sReturn.indexOf(sAMP);
  460. if (iPosAMP == -1)
  461. return sReturn;
  462. else
  463. {
  464. sReturn = sReturn.substr(0, iPosAMP);
  465. }
  466. return sReturn;
  467. }
  468. function MM_findObj(n, d) { //v4.0
  469.   var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  470.     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  471.   if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  472.   for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  473.   if(!x && document.getElementById) x=document.getElementById(n); return x;
  474. }
  475. function MM_showHideLayers() { //v3.0
  476.   var i,p,v,obj,args=MM_showHideLayers.arguments;
  477.   for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
  478.     if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
  479.     obj.visibility=v; }
  480. }