//--Global declaration var gxmlDoc = null; var garrLayoutParts = new Array(); var arrParts = new Array("HPFrameHL", "HPFrameDL"); var blnIE5 = false; var blnBorder = false; var blnTrack = false; var blnDebug = false; var blnMoved = false; var userAgent = navigator.userAgent; var MSIEIndex = userAgent.indexOf("MSIE"); if (userAgent.indexOf("Win") != -1 && userAgent.indexOf("MSIE") != -1 && userAgent.substring((MSIEIndex + 5),(MSIEIndex + 6)) > 4) { blnIE5 = true; } //--Object declaration function objPart(strPartName, strState, strOrder) { this.name = strPartName; this.state = strState; this.order = strOrder; } function loadPage(nthTrack,nthBorder) { var sFile = new String(window.document.location); var blnDefault = (sFile.toLowerCase().indexOf("morenews") == -1); blnDebug = (QueryString('dbg') != ""); var s = QueryString("border"); if (s != "") nthBorder = parseInt(s); s = QueryString("track"); if (s != "") nthTrack = parseInt(s); //--Determine whether to track. if (nthTrack > 0) { var td = new Date(); var xval = 67890; var yval = ((Math.round(Math.abs(Math.cos(td.getTime()))*xval)%xval)); if ((yval % nthTrack) == 0) blnTrack = true; } if (blnIE5) { if (blnDefault) { for (var i = 0; i < arrParts.length; i++) garrLayoutParts[i] = new objPart(arrParts[i], "EXPAND", i); //--Initialize part display state RearrangePartPos(); loadSavedShowHide(); //--Initialize mouse even handlers window.document.onmousedown = Document_OnMouseDown; window.document.onmousemove = Document_OnMouseMove; window.document.onmouseup = Document_OnMouseUp; //--Determine whether to show border. if (nthBorder > 0) { var td = new Date(); var xval = 12345; var yval = ((Math.round(Math.abs(Math.cos(td.getTime()))*xval)%xval)); if ((yval % nthBorder) == 0) { blnBorder = true; document.all("HPFrameHLContent").style.borderColor = "#cccccc"; document.all("HPFrameDLContent").style.borderColor = "#cccccc"; } } } } else { //--Enable collapse/expand for IE4+ if (blnDefault && userAgent.indexOf("MSIE") != -1 && userAgent.substring((MSIEIndex + 5),(MSIEIndex + 6)) > 3) { document.all('HPFrameHLTab3').src = "/library/homepage/images/collapse.gif"; document.all('HPFrameDLTab3').src = "/library/homepage/images/collapse.gif"; } } } function saveState() { var udoLayout = document.all("oLayout"); for (var i = 0; i < garrLayoutParts.length; i++) udoLayout.setAttribute(garrLayoutParts[i].name, (garrLayoutParts[i].state + "," + garrLayoutParts[i].order)); udoLayout.save("HPLayoutStore"); } function loadSavedShowHide() { var udoLayout = document.all("oLayout"); if (!udoLayout) return; udoLayout.load("HPLayoutStore"); for (var i = 0; i < garrLayoutParts.length; i++) { var strAttr = udoLayout.getAttribute(garrLayoutParts[i].name); if (strAttr) { var strstate = strAttr.split(',')[0]; if (strstate) { if (strstate == "EXPAND") showHideContent(garrLayoutParts[i].name, true); else if (strstate == "COLLAPSE") showHideContent(garrLayoutParts[i].name, false); } } } } function showHideContent(id,bOn) { var bMO = false; var oContent = document.all.item(id+"Content"); var oImage = document.all.item(id+"Tab3"); if (!oContent || !oImage) return; if (event.srcElement) { bMO = (event.srcElement.src.toLowerCase().indexOf("_mo.gif") != -1); bOn = (oContent.style.display.toLowerCase() == "none"); } if (bOn == false) { oContent.style.display = "none"; oImage.src = "/library/homepage/images/expand" + (bMO? "_mo.gif" : ".gif"); } else { oContent.style.display = ""; oImage.src = "/library/homepage/images/collapse" + (bMO? "_mo.gif" : ".gif"); } for (var i = 0; i < garrLayoutParts.length; i++) { if (id == garrLayoutParts[i].name) garrLayoutParts[i].state = bOn ? "EXPAND" : "COLLAPSE"; } if (event.srcElement) saveState(); } function setBorder(id,bOn) { var oTab = document.all.item(id+"Tab"); var oTab1 = document.all.item(id+"Tab1"); var oTab2 = document.all.item(id+"Tab2"); var oTab3 = document.all.item(id+"Tab3"); var oBorder = document.all.item(id+"Content"); if (!oTab || !oTab1 || !oTab2 || !oTab3 || !oBorder) return; if (bOn) { oBorder.style.borderColor = "#cccccc"; oTab.bgColor = "#3366CC"; oTab1.src = "/library/homepage/images/curve_mo.gif"; oTab2.color = "#FFFFFF"; if (oBorder.style.display == "none") oTab3.src = "/library/homepage/images/expand_mo.gif"; else oTab3.src = "/library/homepage/images/collapse_mo.gif"; } else { oBorder.style.borderColor = blnBorder? "#cccccc" : "#ffffff"; oTab.bgColor = "#CCCCCC"; //oTab1.src = "/library/homepage/images/curve.gif"; oTab2.color = "#336699"; if (oBorder.style.display == "none") oTab3.src = "/library/homepage/images/expand.gif"; else oTab3.src = "/library/homepage/images/collapse.gif"; } } function trackInfo(obj, param) { if (blnTrack) { var sUrl = "http://www.microsoft.com/isapi/hpredir.asp" + ("?type=CT&source=WWW&sPage=" + param + "&tPage=" + obj.href); if (blnDebug) alert(sUrl); obj.href = sUrl; } } function trackSearch(qu, param) { if (!qu) return; var sUrl = "http://search.microsoft.com/us/SearchMS25.asp?qu="+ escape(qu.value) + "&so=RECCNT&boolean=ALL&intCat=0&intCat=1&intCat=2&intCat=3&intCat=4&intCat=5&intCat=6&intCat=7&intCat=8&intCat=9&nq=NEW&p=1"; if (blnTrack) { sUrl = "http://www.microsoft.com/isapi/hpredir.asp" + ("?type=CT&source=WWW&sPage=" + param + "&tPage=" + sUrl); if (blnDebug) alert(sUrl); } location.href = sUrl; } function trackInfoForm(param) { if (blnTrack) { var sUrl = "http://c.microsoft.com/trans_pixel.gif"; if (blnDebug) alert(sUrl); // TrackForm.sPage.value = param; // TrackForm.action = sUrl; // TrackForm.submit(); } } //----------------------------------------------- var partMover = null; var isPosition = false; var orgTop; var orgLeft; var frmholder = null; var zoneLeft = -1; var zoneTop = -1; var m_zoneElement = null; function Document_OnMouseUp() { if (!partMover) return; isPosition = false; partMover.releaseCapture(); partMover.style.position = 'static'; var m_prtSrc = window.event.srcElement; if (!CheckXPos(m_zoneElement) || !CheckYPos(m_zoneElement) || !blnMoved) { trackInfoForm(("HP_WPFound_"+(blnBorder? "BorderOn" : "BorderOff"))); SetBorderOff(); return; } PartSwap(); saveState(); blnMoved = false; trackInfoForm(("HP_WPSwap_"+(blnBorder? "BorderOn" : "BorderOff"))); SetBorderOff(); event.cancelBubble = true; } function RearrangePartPos() { m_zoneElement = document.all.item("DashZoneRight"); if (m_zoneElement) { var udoLayout = m_zoneElement.document.all("oLayout"); if (!udoLayout) return false; udoLayout.load("HPLayoutStore"); for (var i = 0; i < garrLayoutParts.length; i++) { var strAttr = udoLayout.getAttribute(garrLayoutParts[i].name); if (strAttr) { var strorder = strAttr.split(',')[1]; if (strorder) { if (strorder != garrLayoutParts[i].order) { PartSwap(); return true; } } } } } return true; } function PartSwap() { var oPart= null; var oPartHolder = null; var oPartSpacer = null; var strOriginalLabel = ""; var strReplacingLabel = ""; outerloop: for (var i=0; i < m_zoneElement.children.length; i++) { innerloop: for (var j=0; j < arrParts.length; j++) { var holderDiv = m_zoneElement.all.item(arrParts[j] + "Holder"); strOriginalLabel = arrParts[j]; var replacingDiv = null; if (j==0) { replacingDiv = m_zoneElement.all.item(arrParts[j+1] + "Holder"); strReplacingLabel = arrParts[j+1]; } else { replacingDiv = m_zoneElement.all.item(arrParts[0] + "Holder"); strReplacingLabel = arrParts[0]; } if (holderDiv) { if (m_zoneElement.children.item(i).id == holderDiv.id) { var holdernext = holderDiv.nextSibling; var replacingnext = replacingDiv.nextSibling; var holdernextnext = holdernext.nextSibling; var replacingnextnext = replacingnext.nextSibling; oPartHolder = m_zoneElement.replaceChild( replacingDiv, holderDiv); oPart = m_zoneElement.replaceChild( replacingnext, holdernext); oPartSpacer = m_zoneElement.replaceChild( replacingnextnext, holdernextnext); break outerloop; } } } } m_zoneElement.appendChild(oPartHolder); m_zoneElement.appendChild(oPart); m_zoneElement.appendChild(oPartSpacer); for (var i = 0; i < garrLayoutParts.length; i++) { if (strReplacingLabel == garrLayoutParts[i].name) garrLayoutParts[i].order = "0"; if (strOriginalLabel == garrLayoutParts[i].name) garrLayoutParts[i].order = "1"; } } function CheckXPos(obj) { if ((partMover.style.pixelLeft + partMover.offsetWidth) < zoneLeft) return false; if (partMover.style.pixelLeft > (zoneLeft + obj.offsetWidth)) return false; return true; } function CheckYPos(obj) { var movingpart = null; var part = null; var partLeft = -1; var partTop = -1; for (var k = 0; k < arrParts.length; k++) { movingpart = partMover.all.item(arrParts[k]); if (movingpart) { for(var j = 0; j < arrParts.length; j++) { part = obj.all.item(arrParts[j]); if (part && (part != movingpart)) { partTop = GetAbsoluteTop(part); if ((partMover.style.pixelTop + 2*partMover.offsetHeight) < partTop) return false; if (partMover.style.pixelTop > (partTop + part.offsetHeight)) return false; } } break; } } return true; } function SetBorderOff() { for (var i = 0; i < arrParts.length; i++) { var frm = partMover.all.item(arrParts[i]); if (frm) { setBorder(arrParts[i],false); break; } } frmholder.style.display = "none"; frmholder.style.height = 0; } function Document_OnMouseDown() { //--Reinitialize partMover variable partMover = null; var m_prtSrc = window.event.srcElement; var tagName = event.srcElement.tagName.toUpperCase(); if (tagName == "IMG" || tagName == "A") return; var m_tabElement = TraverseToClassName(m_prtSrc, "HPFrameTab"); if (!m_tabElement) return; var m_classElement = TraverseToClassName(m_prtSrc, "divMoveClass"); if (m_classElement == null) return; var strFrame = null; partMover = m_classElement; for (var i = 0; i < arrParts.length; i++) { var divPart = partMover.all.item(arrParts[i]); if (divPart) { strFrame = divPart.id; break; } } m_zoneElement = TraverseToClassName(m_prtSrc, "DashZoneRight"); if ((zoneLeft == -1) || (zoneTop == -1)) { zoneLeft = GetAbsoluteLeft(m_zoneElement); zoneTop = GetAbsoluteTop(m_zoneElement); } frmholder = m_zoneElement.all.item(strFrame + "Holder"); frmholder.style.height = partMover.offsetHeight; frmholder.style.display = "inline"; partMover.style.position = 'absolute'; partMover.style.width = partMover.offsetWidth; partMover.style.pixelLeft = event.x; partMover.style.pixelTop = event.y; orgLeft = partMover.style.pixelLeft; orgTop = partMover.style.pixelTop; partMover.style.display = "block"; event.cancelBubble = true; isPosition = true; partMover.setCapture(); } function Document_OnMouseMove() { if(!isPosition || !partMover) return; partMover.style.pixelLeft = event.x; partMover.style.pixelTop = event.y; event.cancelBubble = true; blnMoved = true; } function TraverseToClassName(srcElement,ClassName) { while(srcElement.className != ClassName) { srcElement = srcElement.parentElement; if (srcElement == null) return null; } return srcElement; } function GetAbsoluteTop(elem) { var topPosition = 0; while (elem) { if (elem.tagName == 'BODY') { break; } topPosition += elem.offsetTop; elem = elem.offsetParent; } return topPosition; } function GetAbsoluteLeft(elem) { var leftPosition = 0; while (elem) { if (elem.tagName == 'BODY') { break; } leftPosition += elem.offsetLeft; elem = elem.offsetParent; } return leftPosition; } function QueryString(sName) { var sSource = String(window.document.location); var sReturn = ""; var sQUS = "?"; var sAMP = "&"; var sEQ = "="; var iPos; iPos = sSource.indexOf(sQUS); var strQuery = sSource.substr(iPos, sSource.length - iPos); var strLCQuery = strQuery.toLowerCase(); var strLCName = sName.toLowerCase(); iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ); if (iPos == -1) { iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ); if (iPos == -1) return ""; } sReturn = strQuery.substr(iPos + sName.length + 2, strQuery.length-(iPos + sName.length + 2)); var iPosAMP = sReturn.indexOf(sAMP); if (iPosAMP == -1) return sReturn; else { sReturn = sReturn.substr(0, iPosAMP); } return sReturn; }