/************************************ REVISION LOG ENTRY Revision By: Mihai Filimon ( mfl@exontrol.com ) Created on 3/12/2018 10:00:00 AM Comments: faq.js, faq.css This code may be used in compiled form in any way you desire. This file may not be redistributed modified or unmodified without the authors written consent. ************************************/ var bDisableShowFilterBoxInfo = false; var filterFrameParam = "FR"; var filterParam = "F"; var filterQuestionOnlyParam = "Q"; var filterWordOnlyParam = "W"; var expandParam = "E"; var vtQuestionOnlyClass = "question-only"; var vtWordOnlyClass = "word-only"; var scrollToQuestion = null; var expandFirstItem = null; window.onload = loadPage; window.addEventListener("click", clickWindow); window.onresize = resizeWindow; window.onscroll = scrollWindow; if ( !hasFilter() ) document.onreadystatechange = readyStateChange; var collapsedSections = new Array(); var collapsedSectionsInitialized = false; function getURLHash( sURL ) { var i = sURL.indexOf('#'); if ( i > 0 ) return sURL.substr( i + 1 ); return null; } function removeURLHash(sURL) { var i = sURL.indexOf( "#" ); if ( i >= 0 ) sURL = sURL.substr( 0, i ); return sURL; } function getURLParam( sURL, Param ) { var i = sURL.indexOf('#'); sURL = i === -1 ? sURL : sURL.substr(0, i); if (sURL.indexOf("?") > 0 ) { var arrParams = sURL.split("?"); var arrURLParams = arrParams[1].split("&"); var arrParamNames = new Array(arrURLParams.length); var arrParamValues = new Array(arrURLParams.length); var i = 0; for (i = 0; i < arrURLParams.length; i++) { var sParam = arrURLParams[i].split("="); arrParamNames[i] = sParam[0]; if (sParam[1] != "") arrParamValues[i] = unescape(sParam[1]); else arrParamValues[i] = ""; } for ( i = 0 ; i < arrURLParams.length; i++) if (arrParamNames[i] == Param) return arrParamValues[i]; } return null; } function addURLParam(sURL, Param, Value) { return updateURLParameter( sURL, Param, Value ); } function removeURLParam(sURL, Param) { return updateURLParameter( sURL, Param, null ); } function updateURLParameter(uri, key, value) { var i = uri.indexOf('#'); var hash = i === -1 ? '' : uri.substr(i); uri = i === -1 ? uri : uri.substr(0, i); var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); var separator = uri.indexOf('?') !== -1 ? "&" : "?"; if ( value ) { value = value.trim(); if (uri.match(re)) uri = uri.replace(re, '$1' + key + ( value.length ? ("=" + value) : "" ) + '$2'); else uri = uri + separator + key + ( value.length ? ("=" + value) : "" ); } else { uri = uri.replace( new RegExp("[?&]?" + key + "=[^&]*", "i"), '' ); if (uri.slice(-1) === '?') uri = uri.slice(0, -1); if (uri.indexOf('?') === -1) uri = uri.replace(/&/, '?'); // replace first occurrence of & by ? if no ? is present } return uri + hash; } function getIFrameURL( sURL ) { if ( sURL ) { var bGeneralFAQ = sURL.indexOf("/gfaq.jsp") == 0; if ( bGeneralFAQ ) sURL = sURL.replace("/gfaq.jsp", "/content/support/faq/" ); else { bGeneralFAQ = ( sURL.indexOf("/sg.jsp?content=support/faq/") == 0 ); if ( bGeneralFAQ ) sURL = sURL.replace("/sg.jsp?content=support/faq/", "/content/support/faq/"); } if ( bGeneralFAQ ) { if ( sURL.search( /(\\|\/)$/ ) < 0 ) // no \ / adds one sURL += "/"; sURL += "index.jsp"; } } return sURL; } function fixURLQuery( sURL ) { if ( sURL ) { sURL = sURL.replace("?","&"); var i = sURL.indexOf( "&" ); if ( i >= 0 ) sURL = sURL.substr( 0, i ) + "?" + sURL.substr( i + 1 ); } return sURL; } function getURL( sURL ) { if ( sURL ) { if ( sURL.indexOf("/content/products/") >= 0 ) { sURL = sURL.replace("?","&"); sURL = sURL.replace("/content/products/","/howto.jsp?product="); sURL = sURL.replace("/howto/how_to_do_","&lang="); sURL = sURL.replace(".htm", ""); sURL = fixURLQuery( sURL ); } else if ( sURL.indexOf("/content/support/faq/") >= 0 ) { sURL = sURL.replace("?","&"); sURL = sURL.replace("/content/support/faq/index.jsp","/gfaq.jsp"); sURL = sURL.replace("/content/support/faq/","/sg.jsp?content=support/faq/"); sURL = sURL.replace("index.jsp",""); sURL = fixURLQuery( sURL ); } } return sURL; } function getURLFAQ() { var sURL = document.URL.toString(); sURL = removeURLParam( sURL, filterFrameParam ); sURL = getURL( sURL ); return sURL; } function clickPage(anchor) { var f = Filter.value; if ( f.length != 0 ) if ( f != "Filter for..." ) anchor.href += "?F=" + f; } function nextID(el) { var c = el.nextElementSibling; if ( c ) { while ( c && ( el.id != c.id ) ) c = c.nextElementSibling; return c; } var c = el.nextSibling; while ( c && ( ( c.nodeType != 1 ) || ( el.id != c.id ) ) ) c = c.nextSibling; return c; } function isFrameFilterFor() { var fr = getURLParam( document.URL, filterFrameParam ); if ( fr != null ) return fr != ""; return false; } function isFilterForQ() { var frQ = getURLParam( document.URL, filterQuestionOnlyParam ); if ( frQ != null ) return frQ == "only"; return false; } function isFilterForW() { var frW = getURLParam( document.URL, filterWordOnlyParam ); if ( frW != null ) return frW == "only"; return false; } function getFilterFor( e ) { var o = e.textContent; if ( o != null ) return o; return e.innerText; } function getFilterForQ( e ) { var c = e.children; return getFilterFor(c[0]) + getFilterFor( c[1].firstElementChild ); } function filterFor(text) { onLayoutHeader(); CollapseAll( document.getElementById("toggleAllImage") ); var nResults = 0; var o = document.getElementById("question"); if ( text.length == 0 ) { while ( o != null ) { o.style.display = ""; o = nextID(o); } if ( !isFrameFilterFor() ) { var p = document.getElementById("pages"); if ( p != null ) p.style.display = ""; var c = document.getElementById("continue"); if ( c != null ) { c.innerHTML = ""; c.style.display = "none"; } } } else { // Shows only the items that match text = text.toLowerCase(); var rgFilter = new Array(); var rgAlternatives = text.split(","); var aCount = rgAlternatives.length; for ( var a = 0; a < aCount; a++ ) { var rgAlternative = new Array(); var rgFields = rgAlternatives[a].split(" "); var fCount = rgFields.length; for ( var f = 0; f < fCount; f++ ) { var sField = rgFields[f].replace(" ",""); if ( sField.length ) rgAlternative.push( sField ); } if ( rgAlternative.length ) rgFilter.push( rgAlternative ); } var l = rgFilter.length; if ( l > 0 ) { var bFilterForQ = isFilterForQ(), bFilterForW = isFilterForW(); while ( o != null ) { var s = bFilterForQ ? getFilterForQ(o) : getFilterFor(o); s = s.toLowerCase(); var bVisible = false; for ( var j = 0; !bVisible && ( j < l ); j++ ) { var i = 0, iCount = rgFilter[j].length; for ( i = 0; i < iCount; i++ ) { var w = rgFilter[j][i]; if ( bFilterForW ) { if ( s.search("\\b" + w + "\\b") == -1 ) break } else if ( s.indexOf(w) == -1) break; } bVisible = i == iCount; } o.style.display = bVisible ? "" : "none"; if ( bVisible ) nResults++; o = nextID(o); } } // Show additional information if ( !isFrameFilterFor() ) { /* var p = document.getElementById("pages"); if ( p != null ) p.style.display = "none"; */ var c = document.getElementById("continue"); if ( c != null ) { var iFrame = ""; { var f = Filter.value, iFrames = 0; if ( f.length != 0 ) { var p = document.getElementById("page"); while ( p != null ) { if (p.id=="page" ) { var s = p.getAttribute("href"); if ( s ) if ( s.length ) { s = getIFrameURL( s ); s += ( ( s.indexOf("?") > 0 ) ? "&" : "?" ) + filterFrameParam + "=" + f; if ( isFilterForQ() ) s += "&" + filterQuestionOnlyParam + "=only"; if ( isFilterForW() ) s += "&" + filterWordOnlyParam + "=only"; iFrame += ""; iFrames++; } } p = nextID(p); } try { localStorage.setItem("mainSectionFrames", iFrames ); startFilterFrames(); if ( iFrames == 0 ) endFilterFrames(); } catch (err) { } } } c.innerHTML = iFrame; c.style.display = ""; } } } var footer = document.getElementById("footerInfo"); if ( footer != null ) { var info = "", oInfo = "
"; var nURL = getURLFAQ(); if ( nURL.length > 0 ) { nURL += ( nURL.indexOf("?") > 0 ) ? "&" : "?"; nURL += "F="+ escape(text); if ( isFilterForQ() ) { nURL += ( nURL.indexOf("?") > 0 ) ? "&" : "?"; nURL += filterQuestionOnlyParam + "=only"; } if ( isFilterForW() ) { nURL += ( nURL.indexOf("?") > 0 ) ? "&" : "?"; nURL += filterWordOnlyParam + "=only"; } nURL = updateGlobalURL( nURL ); } if ( text.length != 0 ) { if ( nResults == 0 ) info = "no result(s)"; else info += nResults.toString() + " result(s)"; if ( nURL.length > 0 ) info += ", at " + nURL + ""; } oInfo = oInfo.replace( "<%INFO%>", info ); footer.outerHTML = oInfo; } } function wait() { } function InitCollapsedSections() { var i = 0; var imageId = Load("imageValue" + i); while (imageId != null) { collapsedSections[imageId] = "not expanded"; i++; imageId = Load("imageValue" + i); } } var noReentry = false; function OnLoadImage() { if (noReentry) return; if (!collapsedSectionsInitialized) { InitCollapsedSections(); collapsedSectionsInitialized = true; } elem = event.srcElement; if (ShouldExpand(elem)) { noReentry = true; try { elem.src = collapseImage.src; ExpandSection(elem); RemoveCollapsedItem(elem.id); collapsedSections[elem.id] = "expanded"; } catch (e) { } noReentry = false; } } function ShouldExpand(elem) { return (collapsedSections[elem.id] == null) || (Load("IsFirstPage") == null); } /* ********** ********** Begin ********** */ function LoadFrame(frame) { var doc = null; try { doc = frame.contentDocument || frame.contentWindow.document; } catch ( e ) { } if ( doc != null ) frame.style.height = getMainSectionHeight(doc); else { try { frame.style.height = localStorage.getItem("mainSectionHeight"); } catch ( e ) { } } try { frame.style.visibility = "visible"; if ( doc != null ) { try { var rgA = doc.getElementsByTagName("A"); if ( rgA ) { for ( var i = 0; i < rgA.length; i++ ) { var a = rgA[i]; if ( a.getAttribute("target") == null ) a.setAttribute( "target", "_top" ); } } } catch( err ) { } } var iFrames = localStorage.getItem("mainSectionFrames"); if ( iFrames ) { iFrames--; localStorage.setItem("mainSectionFrames", iFrames); if ( iFrames == 0 ) endFilterFrames(); } } catch(err) { } } function startFilterFrames() { var mainSection = document.getElementById("mainSection"); if ( mainSection ) { //mainSection.style.opacity = .5; var bottomTable = document.getElementById("bottomTable"); if ( bottomTable ) { //bottomTable.style.opacity = .5; var wait = document.getElementById("wait"); if ( wait == null ) { var newImage = document.createElement("IMG"); newImage.id = "wait"; newImage.className = "wait"; newImage.src = "http://www.exontrol.com/images/wait.gif"; newImage.style.top = Math.max( 32, mainSection.offsetTop ) + "px"; mainSection.parentElement.insertBefore( newImage, mainSection ); } else { wait.style.display = "block"; wait.style.top = mainSection.offsetTop + "px"; } } } } function endFilterFrames() { resetFilterFrames(); } function resetFilterFrames() { var mainSection = document.getElementById("mainSection"); if ( mainSection ) { mainSection.style.opacity = 1; var bottomTable = document.getElementById("bottomTable"); if ( bottomTable ) bottomTable.style.opacity = 1; var wait = document.getElementById("wait"); if ( wait != null ) wait.style.display = "none"; } onLayoutHeader(); } function getMainSectionHeight( doc ) { var h = 0, e; e = doc.getElementById("mainSection"); if ( e ) h += e.clientHeight; return h + "px"; } function addLineNumbers() { var pre = document.getElementsByTagName('pre'), pl = pre.length; for (var i = 0; i < pl; i++) addLineNumber( pre[i] ); } function addLineNumber( p ) { p.innerHTML = p.innerHTML.trim(); var num = p.innerText.replace(/\s+$/g, "").split(/\n/).length; if ( num > 1 ) { if ( num > 16 ) p.className += " lesscode"; p.innerHTML = '' + p.innerHTML; var j = 0; for (j = 0; j < num; j++) { var line_num = p.getElementsByTagName('span')[0]; line_num.innerHTML += '' + (j + 1) + ''; } if ( num > 16 ) { try { var rgBold = p.getElementsByTagName("B"); if ( rgBold ) if ( rgBold.length > 0 ) p.scrollTop = Math.max( 0, (rgBold[0].offsetTop - p.offsetTop) - p.clientHeight/2 ); // scrolls the highligted elements to the center of the
}
catch( err )
{
}
}
}
}
function replaceURL( sURL )
{
try
{
window.history.replaceState(null,null,sURL);
sURL = getURL( sURL );
window.parent.history.replaceState(null,null,sURL);
}
catch( err )
{
};
}
function SetFilterPlaceHolder()
{
var vtFilter = document.getElementById("Filter");
if ( vtFilter )
{
vtFilter.placeholder = "Filter For...";
vtFilter.value = "";
vtFilter.title = "The space separator indicates AND between words, while comma specifies OR between words.";
vtFilter.onkeypress = function(e) {
if ( e )
if ( e.keyCode == 13 )
{
filterFor( this.value );
onClickGo();
}
}
var vtFilterQuestionOnly = document.getElementById("btnFilterQuestionOnly");
if ( vtFilterQuestionOnly == null )
{
var x = document.createElement("SPAN");
x.appendChild( document.createTextNode("Full") );
x.name = "btnFilterQuestionOnly";
x.title = "The filter is applied to the full content, else the filter is applied to the visible-content only.";
x.id = "btnFilterQuestionOnly";
x.className = isFilterForQ() ? "" : vtQuestionOnlyClass;
x.onclick = function( e ){
if ( e )
if ( e.target )
{
var sURL = document.URL;
if ( e.target.className == vtQuestionOnlyClass )
sURL = addURLParam( sURL, filterQuestionOnlyParam, "only" );
else
sURL = removeURLParam( sURL, filterQuestionOnlyParam );
replaceURL( sURL );
var xClass = "";
if ( e.target.className.indexOf( vtQuestionOnlyClass ) < 0 )
xClass = vtQuestionOnlyClass;
e.target.className = xClass;
}
};
vtFilter.parentElement.insertBefore( x, document.getElementById("btnFilter") );
}
var vtFilterWordOnly = document.getElementById("btnFilterWordOnly");
if ( vtFilterWordOnly == null )
{
var x = document.createElement("SPAN");
x.appendChild( document.createTextNode("Word") );
x.name = "btnFilterWordOnly";
x.title = "The filter searches for any, else it searches for the exact word.";
x.id = "btnFilterWordOnly";
x.className = isFilterForW() ? vtWordOnlyClass : "";
x.onclick = function( e ){
if ( e )
if ( e.target )
{
var sURL = document.URL;
if ( e.target.className != vtWordOnlyClass )
sURL = addURLParam( sURL, filterWordOnlyParam, "only" );
else
sURL = removeURLParam( sURL, filterWordOnlyParam );
replaceURL( sURL );
var xClass = "";
if ( e.target.className.indexOf( vtWordOnlyClass ) < 0 )
xClass = vtWordOnlyClass;
e.target.className = xClass;
}
};
vtFilter.parentElement.insertBefore( x, document.getElementById("btnFilter") );
}
}
}
function SetActivePage()
{
var pages = document.getElementById("pages");
if ( pages )
{
var sURL = document.URL.toString(), p = pages.children;
for ( var i = 0; i < p.length; i++ )
{
var hP = p[i].getAttribute("href");
if ( sURL.indexOf( hP ) >= 0 )
{
p[i].removeAttribute("href");
p[i].removeAttribute("title");
p[i].className = "active";
}
}
}
}
function getToggleCount()
{
var vtResult = 0;
expandFirstItem = null;
try
{
var rgToggle = document.getElementsByClassName("toggle");
vtResult = rgToggle.length;
if ( vtResult > 0 )
if ( vtResult < 16 )
expandFirstItem = rgToggle[0];
}
catch( err )
{
}
return vtResult;
}
function SetFilterBoxInfo()
{
var btnFilter = document.getElementById("btnFilter");
if ( btnFilter )
{
var newSpan = document.createElement("SPAN");
var textnode = document.createTextNode( "Enter here the keywords you are looking for, separated by spaces or commas, and then press Enter key or click the Go button." );
newSpan.appendChild(textnode);
newSpan.className = "arrow-box";
newSpan.id = "filter-arrow-box";
btnFilter.parentElement.insertBefore( newSpan, btnFilter );
if ( getToggleCount() > 16 )
{
var filterFor = document.getElementById("Filter");
if ( filterFor )
setTimeout(function(){ showFilterBoxInfo(); }, 1000);
}
}
}
function setSessionItem( item, value )
{
try
{
window.sessionStorage.setItem(item, value);
}
catch( err )
{
};
}
function getSessionItem( item )
{
try
{
return window.sessionStorage.getItem( item );
}
catch( err )
{
};
return null;
}
function removeSessionItem( item )
{
try
{
window.sessionStorage.removeItem( item );
}
catch( err )
{
};
}
function showFilterBoxInfo()
{
if ( getSessionItem("showFilterBoxInfo") == null )
{
if ( !bDisableShowFilterBoxInfo )
{
var bContinue = true, filterFor = document.getElementById("Filter");
if ( filterFor )
bContinue = filterFor != document.activeElement;
if ( bContinue )
{
var filterInfo = document.getElementById("filter-arrow-box");
if ( filterInfo )
{
setSessionItem("showFilterBoxInfo", "show");
filterInfo.className = "arrow-box-show";
setTimeout(function(){ hideFilterBoxInfo(); }, 6000);
}
}
}
}
}
function hideFilterBoxInfo()
{
var filterInfo = document.getElementById("filter-arrow-box");
if ( filterInfo )
filterInfo.className = "arrow-box-hide";
}
function hasFilter()
{
return getURLParam(document.URL, filterParam) || getURLParam(document.URL, filterFrameParam);
}
function loadPage()
{
if ( true )
{
var bApplyFilter = false, vtFilter = document.getElementById("Filter");
var sF = hasFilter();
if ( sF != null )
if ( sF.length > 0 )
bApplyFilter = (vtFilter != null);
SetActivePage();
SetFilterPlaceHolder();
SetCollapseAll();
ExpandCollapseAll( document.getElementById("toggleAllImage") );
if ( bApplyFilter )
{
vtFilter.value = sF;
filterFor(sF);
}
if ( !bApplyFilter )
SetFilterBoxInfo();
}
else
SetToggleAllLabel( false );
// vs70.js did this to allow up/down arrow scrolling, I think
try { mainSection.setActive(); } catch(e) { }
// make body visible, now that we're ready to render
var sBody = "";
if ( isFrameFilterFor() )
{
if ( document.getElementById("error") != null )
sBody = "none";
else
{
var h = document.getElementById("header");
if ( h != null )
h.style.display = "none";
var f = document.getElementById("footer");
if ( f != null )
f.style.display = "none";
}
}
document.body.style.display = sBody;
parent.document.body.onhashchange = hashChange;
if ( isFrameFilterFor() )
{
try
{
localStorage.setItem("mainSectionHeight", getMainSectionHeight( document ) );
}
catch (e)
{
}
}
onLayoutHeader();
ensureVisibleHash();
}
function ensureVisibleHash()
{
try
{
var sURL = parent.document.URL, sHash = getURLHash(sURL);
var e = getURLParam( sURL, expandParam ), eID = null;
if ( e )
eID = "Img" + e;
if ( sHash )
{
var vtElementsHash = parent.document.getElementsByName(sHash), bFound = false;
if ( vtElementsHash.length )
{
var vtTR = vtElementsHash[0];
while ( vtTR && vtTR.tagName != "TR" )
vtTR = vtTR.parentElement;
if ( vtTR )
if ( vtTR.id == "question" )
{
var eIMG = vtTR.firstElementChild.firstElementChild;
if ( eIMG )
if ( eIMG.tagName == "IMG" )
{
eID = eIMG.id;
bFound = true;
}
}
}
if ( !bFound )
if ( e == null )
eID = "Img" + sHash;
}
if ( eID )
{
var img = parent.document.getElementById( eID );
if ( img )
{
img.parentElement.parentElement.style.display = ""; // if hash inside the page, and it is filter, it requires to be visible!
ExpandItem( img );
scrollToQuestion = img.parentElement.parentElement;
if ( scrollToQuestion )
{
setTimeout( function()
{
try
{
if ( scrollToQuestion )
parent.window.scrollTo( 0, scrollToQuestion.offsetTop );
scrollToQuestion = null;
}
catch (err)
{
}
}, 100 );
}
}
}
else
if ( expandFirstItem != null ) // set by getToggleCount
{
ExpandItem(expandFirstItem);
expandFirstItem = null;
}
}
catch (err)
{
}
}
function onLayoutHeader()
{
/*
var header = document.getElementById("header");
if ( header )
{
var mainSection = document.getElementById("mainSection");
if ( mainSection )
{
var headerTableRow2 = document.getElementById("headerTableRow2");
if ( headerTableRow2 )
{
var pages = document.getElementById("pages");
if ( 1 || window.pageYOffset || getURLParam( document.URL, expandParam ) || document.getElementById("Filter").value || headerTableRow2.style.whiteSpace.length )
{
if ( pages )
{
pages.style.cssFloat = "right";
pages.style.position = "relative";
pages.style.marginBottom = "-" + (pages.clientHeight) + "px";
pages.style.borderBottom = "0px";
}
headerTableRow2.style.whiteSpace = "nowrap";
header.style.position = "fixed";
// offsets-down all from mainSection
var e = mainSection, t = header.clientHeight + "px";
while ( e )
{
e.style.position = "relative";
e.style.top = t;
e = e.nextElementSibling;
}
}
else
{
if ( pages )
{
pages.style.cssFloat = "";
pages.style.position = "";
pages.style.marginBottom = "";
pages.style.borderBottom = "";
}
headerTableRow2.style.whiteSpace = "";
header.style.position = "";
mainSection.style.position = "";
mainSection.style.top = "";
}
}
}
}
*/
}
function resizeWindow( e )
{
onLayoutHeader();
}
function scrollWindow( e )
{
onLayoutHeader();
hideFilterBoxInfo();
}
function readyStateChange(e)
{
document.body.style.display = "block";
}
function hashChange()
{
ensureVisibleHash();
}
function clickWindow( e )
{
var bHideFilterBoxInfo = true;
var tag = e.target.tagName;
if ( tag )
{
if ( tag == "INPUT" )
{
var name = e.target.name;
if ( name )
if ( name == "btnFilter" )
{
bHideFilterBoxInfo = false;
onClickGo();
}
else
if ( name == "btnClear" )
onClickClear();
}
else
if ( tag == "IMG" )
{
var p = e.target.parentElement.parentElement;
if ( p != null )
if ( p.className == "code" )
previewImg( e.target );
}
else
{
if ( e.offsetY < 8 )
{
if ( tag == "PRE" ) // select code
selectCode(e.target);
else
if ( tag == "P" ) // toggle preview
previewImg( e.target.firstElementChild );
}
else
if ( tag == "PRE" )
{
if ( e.offsetY > e.target.clientHeight - 8 ) // copy
copyToClipboard( e.target );
}
else
if ( tag == "DIV" ) // share code
if ( e.offsetY > e.target.clientHeight )
shareCode( e.target );
}
}
if ( bHideFilterBoxInfo )
hideFilterBoxInfo();
bDisableShowFilterBoxInfo = true;
}
function onClickGo()
{
var sURL = document.URL, sOURL = sURL;
var filterFor = document.getElementById("Filter").value;
if ( ( filterFor == null ) || ( filterFor.length == 0 ) )
{
bDisableShowFilterBoxInfo = false;
removeSessionItem("showFilterBoxInfo");
showFilterBoxInfo();
sURL = removeURLParam(sURL, filterParam);
}
else
sURL = addURLParam(sURL, filterParam, filterFor);
if ( sOURL != sURL )
replaceURL( sURL );
}
function onClickClear()
{
resetFilterFrames();
window.scrollTo( 0, 0 );
var sURL = document.URL;
sURL = removeURLHash(sURL);
sURL = removeURLParam(sURL, filterParam);
sURL = removeURLParam(sURL, expandParam);
replaceURL( sURL );
}
function selectURL( sURL )
{
if ( sURL )
{
try
{
window.parent.parent.location = sURL;
}
catch ( err )
{
}
}
}
function updateGlobalURL( sURL )
{
if ( sURL )
{
try
{
var sProduct = "product";
var vtProduct = getURLParam( window.parent.parent.location.href, sProduct );
if ( vtProduct )
sURL = addURLParam( sURL, sProduct, vtProduct );
/*
var sContent = "content";
var vtContent = getURLParam( window.parent.parent.location.href, sContent );
if ( vtContent )
sURL = addURLParam( sURL, sContent, vtContent );
*/
}
catch ( err )
{
}
}
return sURL;
}
function shareCode( div )
{
if ( div )
{
try
{
var sURL = getURL( location.href.replace( filterFrameParam+"=",filterParam+"=" ) ); /*replace the FR with F*/
sURL = removeURLHash(sURL);
// shares the hash, in case it contains
var sHash = null;
if ( div.children.length )
{
var a = div.children[0];
if ( a.tagName == "A" )
{
sHash = a.getAttribute("name");
if ( sHash )
if ( sHash.length )
sURL += "#" + sHash;
}
}
if ( sHash == null ) // shares the E instead
{
var sE = div.parentElement.parentElement.firstElementChild.innerText.replace(":","").replace(" ","");
sURL = addURLParam( sURL, expandParam, sE );
}
if ( isFilterForQ() )
sURL = addURLParam( sURL, filterQuestionOnlyParam, "only" );
if ( isFilterForW() )
sURL = addURLParam( sURL, filterWordOnlyParam, "only" );
sURL = updateGlobalURL(sURL);
selectURL( sURL );
}
catch ( err )
{
}
}
}
function previewImg( img )
{
if ( img )
{
img.className = img.className.length == 0 ? "preview" : "";
/*
if ( img.style.height == "auto" )
{
img.style.maxHeight = e.target.style.height;
img.style.height = e.target.style.height;
img.style.opacity = 0.5;
}
else
{
img.style.maxHeight = "600%";
img.style.height = "auto";
img.style.opacity = 1;
}
*/
}
}
function addTogglePreview( img )
{
if ( img )
{
var p = img.parentElement;
if ( p )
if ( p.tagName == "P" )
if ( p.className.length == 0 )
if ( img.height > 128 )
p.className = "preview";
}
}
function selectCode( e )
{
var sel = window.getSelection();
if (sel)
{
sel.removeAllRanges();
var range = document.createRange();
try
{
var span = e.firstChild, s = span;
if ( span )
if ( span.tagName == "SPAN" )
if ( span.className == "line-number" )
s = span.nextSibling;
range.setStartBefore(s);
range.setEndAfter(e.lastChild);
}
catch( er )
{
var span = e.firstChild;
if ( span )
if ( span.tagName == "SPAN" )
if ( span.className == "line-number" )
span.style.display = "none";
range.selectNodeContents(e);
};
sel.addRange(range);
}
}
function copyToClipboard(e)
{
var bSuccess = false;
var sel = window.getSelection();
if (sel)
{
selectCode(e);
if ( bSuccess = document.execCommand('copy') )
sel.removeAllRanges();
}
return bSuccess;
}
var collapsedItems = new Array();
function ExpandItem(imageItem)
{
if ( imageItem )
{
imageItem.src = collapseImage.src;
ExpandSection(imageItem);
RemoveCollapsedItem(imageItem.id);
onExpandCollapse();
}
}
function CollapseItem(imageItem)
{
if ( imageItem )
{
imageItem.src = expandImage.src;
CollapseSection(imageItem);
AddCollapsedItem(imageItem.id);
onExpandCollapse();
}
}
function onExpandCollapse()
{
SetCollapseAll();
if ( isFrameFilterFor() )
{
try
{
var f = window.frameElement;
if ( f != null )
f.style.height = getMainSectionHeight( document );
}
catch (e)
{
}
}
}
function ExpandCollapse(imageItem)
{
if ( imageItem )
{
var bContinue = true;
try
{
if ( event )
if ( event.target.tagName == "DIV" ) // share code
if ( event.offsetY > event.target.clientHeight )
bContinue = false;
}
catch( err )
{
};
if ( bContinue )
{
noReentry = true; // Prevent entry to OnLoadImage
if( ItemCollapsed(imageItem.id) == true )
ExpandItem( imageItem );
else
CollapseItem( imageItem );
noReentry = false;
}
}
}
function CollapseAll(imageItem)
{
noReentry = true; // Prevent entry to OnLoadImage
var imgElements = document.getElementsByName("toggleSwitch");
var i;
imageItem.src = expandAllImage.src;
AddCollapsedItem(imageItem.id);
for(i = 0; i < imgElements.length; ++i)
{
wait();
imgElements[i].src = expandImage.src;
CollapseSection(imgElements[i]);
AddCollapsedItem(imgElements[i].id);
}
SetToggleAllLabel(true);
noReentry = false;
}
function ExpandHeaderInfo(e,b)
{
e.className = b ? "" : "collapsed";
}
function isLoading()
{
try
{
return event.type == "load";
}
catch( err )
{
}
return false;
}
function ExpandHeaderInfos()
{
if ( !isLoading() )
{
var rgInfos = document.getElementsByName("infos");
if ( rgInfos )
{
for ( var iInfo = 0; iInfo < rgInfos.length; iInfo++ )
ExpandHeaderInfo( rgInfos[iInfo], true );
}
}
}
function CollapseHeaderInfos()
{
if ( !isLoading() )
{
var rgInfos = document.getElementsByName("infos");
if ( rgInfos )
{
for ( var iInfo = 0; iInfo < rgInfos.length; iInfo++ )
ExpandHeaderInfo( rgInfos[iInfo], false );
}
}
}
function ExpandCollapseAll(imageItem)
{
if ( imageItem )
{
noReentry = true; // Prevent entry to OnLoadImage
var imgElements = document.getElementsByName("toggleSwitch");
var i;
if(ItemCollapsed(imageItem.id) == true)
{
ExpandHeaderInfos();
imageItem.src = collapseAllImage.src;
RemoveCollapsedItem(imageItem.id);
for(i = 0; i < imgElements.length; ++i)
{
wait();
imgElements[i].src = collapseImage.src;
ExpandSection(imgElements[i]);
RemoveCollapsedItem(imgElements[i].id);
}
SetToggleAllLabel(false);
}
else
{
CollapseHeaderInfos();
imageItem.src = expandAllImage.src;
AddCollapsedItem(imageItem.id);
for(i = 0; i < imgElements.length; ++i)
{
wait();
imgElements[i].src = expandImage.src;
CollapseSection(imgElements[i]);
AddCollapsedItem(imgElements[i].id);
}
SetToggleAllLabel(true);
}
noReentry = false;
}
}
function ExpandCollapse_CheckKey(imageItem)
{
if ( imageItem )
if(window.event.keyCode == 13)
ExpandCollapse(imageItem);
}
function ExpandCollapseAll_CheckKey(imageItem)
{
if ( imageItem )
if(window.event.keyCode == 13)
ExpandCollapseAll(imageItem);
}
function ExpandSection(imageItem)
{
if ( imageItem )
if ( imageItem.parentElement != null )
{
var c = imageItem.parentElement.parentElement.children;
if ( c.length == 2 )
{
var cAnswer = c[1].children["answer"];
if ( cAnswer )
{
cAnswer.style.display = "block";
cAnswer.parentElement.className = "answere";
c[0].style.background = "#f4f4f4";
try
{
var cQuote = cAnswer.firstElementChild.firstElementChild;
if ( cQuote )
{
try
{
// Adds line numbers once the user expands section
var rgPre = cQuote.getElementsByTagName("PRE");
if ( rgPre.length )
{
for ( var iPre = 0; iPre < rgPre.length; iPre++ )
{
var pre = rgPre[iPre];
if ( pre.getElementsByClassName )
{
var ln = pre.getElementsByClassName( "line-number" );
if ( ln )
if ( ln.length == 0 )
addLineNumber( pre );
}
else
break;
}
}
}
catch( err )
{
}
try
{
var rgImg = cQuote.getElementsByTagName("IMG");
if ( rgImg.length )
{
for ( var iImg = 0; iImg < rgImg.length; iImg++ )
addTogglePreview( rgImg[iImg] );
}
}
catch (err)
{
}
}
}
catch( err )
{
}
}
}
}
}
function CollapseSection(imageItem)
{
if ( imageItem )
if ( imageItem.parentElement != null )
{
var c = imageItem.parentElement.parentElement.children;
if ( c.length == 2 )
{
c[0].style.background = "";
var cAnswer = c[1].children["answer"];
if ( cAnswer )
{
cAnswer.style.display = "none";
cAnswer.parentElement.className = "";
}
}
}
}
function SetCollapseAll()
{
var imageElement = document.getElementById("toggleAllImage");
if(imageElement == null)
return;
var imgElements = document.getElementsByName("toggleSwitch");
var allCollapsed = true;
var i, l = imgElements.length;
for(i = 0; i < l; ++i)
{
wait();
allCollapsed = allCollapsed && ItemCollapsed(imgElements[i].id)
}
if(allCollapsed)
{
imageElement.src = expandAllImage.src;
AddCollapsedItem(imageElement.id);
}
else
{
imageElement.src = collapseAllImage.src;
RemoveCollapsedItem(imageElement.id);
}
SetToggleAllLabel(allCollapsed);
}
function SetToggleAllLabel(allCollapsed)
{
var labelElement;
labelElement = document.getElementById("collapseAllLabel");
if(labelElement == null)
return;
labelElement.style.display = "none";
labelElement = document.getElementById("expandAllLabel");
labelElement.style.display = "none";
if(allCollapsed)
{
labelElement = document.getElementById("expandAllLabel");
labelElement.style.display = "";
}
else
{
labelElement = document.getElementById("collapseAllLabel");
labelElement.style.display = "";
}
}
function ItemCollapsed(imageId)
{
var i;
for(i = 0; i < collapsedItems.length; ++i)
{
wait();
if(imageId == collapsedItems[i])
return true;
}
return false;
}
function AddCollapsedItem(imageId)
{
collapsedItems[collapsedItems.length] = imageId;
}
function RemoveCollapsedItem(imageId)
{
var i;
for(i = 0; i < collapsedItems.length; ++i)
{
wait();
if(imageId == collapsedItems[i])
collapsedItems.splice(i, 1);
}
}
function OpenSection(imageItem)
{
if(ItemCollapsed(imageItem.id) == true)
ExpandCollapse(imageItem);
}
function ClickHRefInside( e )
{
if ( e )
{
var rgA = e.getElementsByTagName("A");
if ( rgA.length == 1 )
selectURL( rgA[0].href );
}
}
function ExpandHeaderGroup( e )
{
if ( e )
e.parentElement.parentElement.className = e.parentElement.parentElement.className.length == 0 ? "collapsed" : "";
}