www.pudn.com > tsglxt.zip > smartnav.js, change:2012-08-31,size:9427b


var snSrc; 
if (window.__smartNav == null) 
{ 
    window.__smartNav = new Object(); 
    window.__smartNav.update = function() 
    { 
        var sn = window.__smartNav; 
        var fd; 
        document.detachEvent("onstop", sn.stopHif); 
        sn.inPost = false; 
        try { fd = frames["__hifSmartNav"].document; } catch (e) {return;} 
        var fdr = fd.getElementsByTagName("asp_smartnav_rdir"); 
        if (fdr.length > 0) 
        { 
            if (sn.sHif == null) 
            { 
                sn.sHif = document.createElement("IFRAME"); 
                sn.sHif.name = "__hifSmartNav"; 
                sn.sHif.style.display = "none"; 
                sn.sHif.src = snSrc; 
            } 
            try {window.location = fdr[0].url;} catch (e) {}; 
            return; 
        } 
        var fdurl = fd.location.href; 
        var index = fdurl.indexOf(snSrc); 
        if ((index != -1 && index == fdurl.length-snSrc.length) 
            || fdurl == "about:blank") 
            return; 
		var fdurlb = fdurl.split("?")[0]; 
		if (document.location.href.indexOf(fdurlb) < 0) 
		{ 
		    document.location.href=fdurl; 
		    return; 
		} 
		sn._savedOnLoad = window.onload; 
		window.onload = null; 
		window.__smartNav.updateHelper(); 
	} 
	window.__smartNav.updateHelper = function() 
	{ 
		if (document.readyState != "complete") 
		{ 
		    window.setTimeout(window.__smartNav.updateHelper, 25); 
		    return; 
		} 
		window.__smartNav.loadNewContent(); 
	} 
	window.__smartNav.loadNewContent = function() 
	{ 
		var sn = window.__smartNav; 
		var fd; 
		try { fd = frames["__hifSmartNav"].document; } catch (e) {return;} 
        if (sn.sHif != null) 
        { 
            sn.sHif.removeNode(true); 
            sn.sHif = null; 
        } 
        var hdm = document.getElementsByTagName("head")[0]; 
        var hk = hdm.childNodes; 
        var tt = null; 
        for (var i = hk.length - 1; i>= 0; i--) 
        { 
            if (hk[i].tagName == "TITLE") 
            { 
                tt = hk[i].outerHTML; 
                continue; 
            } 
            if (hk[i].tagName != "BASEFONT" || hk[i].innerHTML.length == 0) 
                hdm.removeChild(hdm.childNodes[i]); 
        } 
        var kids = fd.getElementsByTagName("head")[0].childNodes; 
        for (var i = 0; i < kids.length; i++) 
        { 
            var tn = kids[i].tagName; 
            var k = document.createElement(tn); 
            k.id = kids[i].id; 
            k.mergeAttributes(kids[i]); 
            switch(tn) 
            { 
            case "TITLE": 
                if (tt == kids[i].outerHTML) 
                    continue; 
                k.innerText = kids[i].text; 
                hdm.insertAdjacentElement("afterbegin", k); 
                continue; 
            case "BASEFONT" : 
                if (kids[i].innerHTML.length > 0) 
                    continue; 
                break; 
            default: 
                var o = document.createElement("BODY"); 
                o.innerHTML = "<BODY>" + kids[i].outerHTML + "</BODY>"; 
                k = o.firstChild; 
                break; 
            } 
            if(k!=null) 
                hdm.appendChild(k); 
        } 
        document.body.clearAttributes(); 
        document.body.id = fd.body.id; 
        document.body.mergeAttributes(fd.body); 
        var newBodyLoad = fd.body.onload; 
        if (newBodyLoad != null) 
            document.body.onload = newBodyLoad; 
        else 
            document.body.onload = sn._savedOnLoad; 
        var s = "<BODY>" + fd.body.innerHTML + "</BODY>"; 
        if (sn.hif != null) 
        { 
            var hifP = sn.hif.parentElement; 
            if (hifP != null) 
                sn.sHif=hifP.removeChild(sn.hif); 
        } 
        document.body.innerHTML = s; 
        var sc = document.scripts; 
        for (var i = 0; i < sc.length; i++) 
        { 
            sc[i].text = sc[i].text; 
        } 
        sn.hif = document.all("__hifSmartNav"); 
        if (sn.hif != null) 
        { 
            var hif = sn.hif; 
            sn.hifName = "__hifSmartNav" + (new Date()).getTime(); 
            frames["__hifSmartNav"].name = sn.hifName; 
            sn.hifDoc = hif.contentWindow.document; 
            if (sn.ie5) 
                hif.parentElement.removeChild(hif); 
            window.setTimeout(sn.restoreFocus,0); 
        } 
        if (typeof(window.onload) == "string") 
        { 
            try { eval(window.onload) } catch (e) {}; 
        } 
        else if (window.onload != null) 
        { 
            try { window.onload() } catch (e) {}; 
        } 
        sn._savedOnLoad = null; 
        sn.attachForm(); 
    }; 
    window.__smartNav.restoreFocus = function() 
    { 
        if (window.__smartNav.inPost == true) return; 
        var curAe = document.activeElement; 
        var sAeId = window.__smartNav.ae; 
        if (sAeId==null || curAe!=null && (curAe.id==sAeId||curAe.name==sAeId)) 
            return; 
        var ae = document.all(sAeId); 
        if (ae == null) return; 
        try { ae.focus(); } catch(e){}; 
    } 
    window.__smartNav.saveHistory = function() 
    { 
        if (window.__smartNav.hif != null) 
            window.__smartNav.hif.removeNode(); 
        if (    window.__smartNav.sHif != null 
            &&  document.all[window.__smartNav.siHif] != null) 
            document.all[window.__smartNav.siHif].insertAdjacentElement( 
                        "BeforeBegin", window.__smartNav.sHif); 
    } 
    window.__smartNav.stopHif = function() 
    { 
        document.detachEvent("onstop", window.__smartNav.stopHif); 
        var sn = window.__smartNav; 
        if (sn.hifDoc == null && sn.hif != null) 
        { 
            try {sn.hifDoc = sn.hif.contentWindow.document;} 
            catch(e){sn.hifDoc=null} 
        } 
        if (sn.hifDoc != null) 
        { 
            try {sn.hifDoc.execCommand("stop");} catch (e){} 
        } 
    } 
    window.__smartNav.init =  function() 
    { 
        var sn = window.__smartNav; 
        document.detachEvent("onstop", sn.stopHif); 
        document.attachEvent("onstop", sn.stopHif); 
        try { if (window.event.returnValue == false) return; } catch(e) {} 
        sn.inPost = true; 
        if (document.activeElement != null) 
        { 
            var ae = document.activeElement.id; 
            if (ae.length == 0) 
                ae = document.activeElement.name; 
            sn.ae = ae; 
        } 
        else 
            sn.ae = null; 
        try {document.selection.empty();} catch (e) {} 
        if (sn.hif == null) 
        { 
            sn.hif = document.all("__hifSmartNav"); 
            sn.hifDoc = sn.hif.contentWindow.document; 
        } 
        if (sn.hifDoc != null) 
            try {sn.hifDoc.designMode = "On";}catch(e){}; 
        if (sn.hif.parentElement == null) 
            document.body.appendChild(sn.hif); 
        var hif = sn.hif; 
        hif.detachEvent("onload", sn.update); 
        hif.attachEvent("onload", sn.update); 
        window.__smartNav.fInit = true; 
    }; 
    window.__smartNav.submit = function() 
    { 
        window.__smartNav.fInit = false; 
        try { window.__smartNav.init(); } catch(e) {} 
        if (window.__smartNav.fInit) 
            window.__smartNav.form._submit(); 
    }; 
    window.__smartNav.attachForm = function() 
    { 
        var cf = document.forms; 
        for (var i=0; i<cf.length; i++) 
        { 
            if (cf[i].__smartNavEnabled != null) 
            { 
                window.__smartNav.form = cf[i]; 
                break; 
            } 
        } 
        var snfm = window.__smartNav.form; 
        if (snfm == null) return false; 
        var sft = snfm.target; 
        if (sft.length != 0 && sft.indexOf("__hifSmartNav") != 0) return false; 
        var sfc = snfm.action.split("?")[0]; 
        var url = window.location.href.split("?")[0]; 
        if (url.charAt(url.length-1) != '/' && url.lastIndexOf(sfc) + sfc.length != url.length) return false; 
        if (snfm.__formAttached == true) return true; 
        snfm.__formAttached = true; 
        snfm.attachEvent("onsubmit", window.__smartNav.init); 
        snfm._submit = snfm.submit; 
        snfm.submit = window.__smartNav.submit; 
        snfm.target = window.__smartNav.hifName; 
        return true; 
    }; 
    window.__smartNav.hifName = "__hifSmartNav" + (new Date()).getTime(); 
    window.__smartNav.ie5 = navigator.appVersion.indexOf("MSIE 5") > 0; 
    var rc = window.__smartNav.attachForm(); 
    var hif = document.all("__hifSmartNav"); 
    if (snSrc == null) { 
	if (typeof(window.dialogHeight) != "undefined") { 
	        snSrc = "IEsmartnav1"; 
		hif.src = snSrc; 
	} else { 
		snSrc = hif.src; 
	} 
    } 
    if (rc) 
    { 
        var fsn = frames["__hifSmartNav"]; 
        fsn.name = window.__smartNav.hifName; 
        window.__smartNav.siHif = hif.sourceIndex; 
        try { 
            if (fsn.document.location != snSrc) 
            { 
                fsn.document.designMode = "On"; 
                hif.attachEvent("onload",window.__smartNav.update); 
                window.__smartNav.hif = hif; 
            } 
        } 
        catch (e) { window.__smartNav.hif = hif; } 
        window.attachEvent("onbeforeunload", window.__smartNav.saveHistory); 
    } 
    else 
        window.__smartNav = null; 
}