var ECLIPSE_FRAME_NAME = "ContentViewFrame";
var eclipseBuild = false;

var liveDocsBaseUrl = "http://livedocs.adobe.com/flex/3";
var liveDocsBookName = "langref";

//Bug #1851041 shinde Date:18072008
function gotoHome(linkURL) 
{
	var windowURL= window.location.href;
	var value = windowURL.replace(/title-bar\.html.*/,linkURL );
 	if (value != null) { 
		parent.top.location = value;
	}
}

function findObject(objId) {

    if (document.getElementById)
        return document.getElementById(objId);

    if (document.all)
        return document.all[objId];
}

function isEclipse() {
    return eclipseBuild;
//  return (window.name == ECLIPSE_FRAME_NAME) || (parent.name == ECLIPSE_FRAME_NAME) || (parent.parent.name == ECLIPSE_FRAME_NAME);
}


function configPage() {
    setRowColorsInitial(true, "Property");
    setRowColorsInitial(true, "Method");
    setRowColorsInitial(true, "ProtectedMethod");   
    setRowColorsInitial(true, "Event");
    setRowColorsInitial(true, "Style");
    setRowColorsInitial(true, "Constant");
    if (isEclipse()) {
        if (window.name != "classFrame")
        {
            var localRef = window.location.href.indexOf('?') != -1 ? window.location.href.substring(0, window.location.href.indexOf('?')) : window.location.href;
            localRef = localRef.substring(localRef.indexOf("langref/") + 8);
            if (window.location.search != "")
                localRef += ("#" + window.location.search.substring(1));

            window.location.replace(baseRef + "index.html?" + localRef);
            return;
        }
        else
        {
            setStyle(".eclipseBody", "display", "block");
//          var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
//          if (isIE == false && window.location.hash != "")
            if (window.location.hash != "")
                window.location.hash=window.location.hash.substring(1);
        }
    }
    else if (window == top) { // no frames
        findObject("titleTable").style.display = "";
    }
    else { // frames
        findObject("titleTable").style.display = "none";
    }
    showTitle(asdocTitle);
}

function loadFrames(classFrameURL, classListFrameURL) {
    var classListFrame = findObject("classListFrame");
    if(classListFrame != null && classListFrameContent!='')
        classListFrame.document.location.href=classListFrameContent;

    if (isEclipse()) {
        var contentViewFrame = findObject(ECLIPSE_FRAME_NAME);
        if (contentViewFrame != null && classFrameURL != '')
            contentViewFrame.document.location.href=classFrameURL;
    }
    else {
        var classFrame = findObject("classFrame");
        if(classFrame != null && classFrameContent!='')
            classFrame.document.location.href=classFrameContent;
    }
}

function showTitle(title) {
    if (!isEclipse())
        top.document.title = title;
}

function loadClassFrame(classFrameURL) {
    if (parent.frames["classFrame"] != null) {
        parent.frames["classFrame"].location = classFrameURL;
    }
    else if (parent.frames["packageFrame"] != null) {
        if (parent.frames["packageFrame"].frames["classFrame"] != null) {
            parent.frames["packageFrame"].frames["classFrame"].location = classFrameURL;
        }
    }
}

function loadClassListFrame(classListFrameURL) {
    if (parent.frames["classListFrame"] != null) {
        parent.frames["classListFrame"].location = classListFrameURL;
    }
    else if (parent.frames["packageFrame"] != null) {
        if (parent.frames["packageFrame"].frames["classListFrame"] != null) {
            parent.frames["packageFrame"].frames["classListFrame"].location = classListFrameURL;
        }
    }
}

function gotoLiveDocs(primaryURL, secondaryURL, locale) {
        if (locale == "en-us" || locale == "en_us" || locale == "en_US") {
             locale = "";
        } 
        else {
              locale = "_" + locale.substring(3);
        }

    var url = liveDocsBaseUrl + locale + "/" + liveDocsBookName + "/index.html?" + primaryURL;
    if (secondaryURL != null && secondaryURL != "")
        url += ("&" + secondaryURL);

    window.open(url, "mm_livedocs", "menubar=1,toolbar=1,status=1,scrollbars=1,resizable=yes");
}

function findTitleTableObject(id)
{
    if (isEclipse())
        return parent.titlebar.document.getElementById(id);
    else if (top.titlebar)
        return top.titlebar.document.getElementById(id);
    else
        return document.getElementById(id);
}

function titleBar_setSubTitle(title)
{
    if (isEclipse() || top.titlebar)
        findTitleTableObject("subTitle").childNodes.item(0).data = title;
}

function titleBar_setSubNav(showConstants,showProperties,showStyles,showEffects,showEvents,showConstructor,showMethods,showExamples,
                showPackageConstants,showPackageProperties,showPackageFunctions,showInterfaces,showClasses,showPackageUse)
{
    if (isEclipse() || top.titlebar)
    {
        findTitleTableObject("propertiesLink").style.display = showProperties ? "inline" : "none";
        findTitleTableObject("propertiesBar").style.display = (showProperties && (showPackageProperties || showConstructor || showMethods || showPackageFunctions || showEvents || showStyles || showEffects || showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("packagePropertiesLink").style.display = showPackageProperties ? "inline" : "none";
        findTitleTableObject("packagePropertiesBar").style.display = (showPackageProperties && (showConstructor || showMethods || showPackageFunctions || showEvents || showStyles || showConstants || showEffects || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("constructorLink").style.display = showConstructor ? "inline" : "none";
        findTitleTableObject("constructorBar").style.display = (showConstructor && (showMethods || showPackageFunctions || showEvents || showStyles || showEffects || showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("methodsLink").style.display = showMethods ? "inline" : "none";
        findTitleTableObject("methodsBar").style.display = (showMethods && (showPackageFunctions || showEvents || showStyles || showEffects || showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("packageFunctionsLink").style.display = showPackageFunctions ? "inline" : "none";
        findTitleTableObject("packageFunctionsBar").style.display = (showPackageFunctions && (showEvents || showStyles || showEffects || showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("eventsLink").style.display = showEvents ? "inline" : "none";
        findTitleTableObject("eventsBar").style.display = (showEvents && (showStyles || showEffects || showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("stylesLink").style.display = showStyles ? "inline" : "none";
        findTitleTableObject("stylesBar").style.display = (showStyles && (showEffects || showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("effectsLink").style.display = showEffects ? "inline" : "none";
        findTitleTableObject("effectsBar").style.display = (showEffects && (showConstants || showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("constantsLink").style.display = showConstants ? "inline" : "none";
        findTitleTableObject("constantsBar").style.display = (showConstants && (showPackageConstants || showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("packageConstantsLink").style.display = showPackageConstants ? "inline" : "none";
        findTitleTableObject("packageConstantsBar").style.display = (showPackageConstants && (showInterfaces || showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("interfacesLink").style.display = showInterfaces ? "inline" : "none";
        findTitleTableObject("interfacesBar").style.display = (showInterfaces && (showClasses || showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("classesLink").style.display = showClasses ? "inline" : "none";
        findTitleTableObject("classesBar").style.display = (showClasses && (showPackageUse || showExamples)) ? "inline" : "none";

        findTitleTableObject("packageUseLink").style.display = showPackageUse ? "inline" : "none";
        findTitleTableObject("packageUseBar").style.display = (showPackageUse && showExamples) ? "inline" : "none";

        findTitleTableObject("examplesLink").style.display = showExamples ? "inline" : "none";
    }
}

function titleBar_gotoClassFrameAnchor(anchor)
{
    if (isEclipse())
        parent.classFrame.location = parent.classFrame.location.toString().split('#')[0] + "#" + anchor;
    else
        top.classFrame.location = top.classFrame.location.toString().split('#')[0] + "#" + anchor;
}

function setMXMLOnly() 
{
    if (getCookie("showMXML") == "false")
    {
        toggleMXMLOnly();
    }
}

function toggleMXMLOnly() 
{
    var mxmlDiv = findObject("mxmlSyntax");
    var mxmlShowLink = findObject("showMxmlLink");
    var mxmlHideLink = findObject("hideMxmlLink");
    if (mxmlDiv && mxmlShowLink && mxmlHideLink)
    {
        if (mxmlDiv.style.display == "none")
        {
            mxmlDiv.style.display = "block";
            mxmlShowLink.style.display = "none";
            mxmlHideLink.style.display = "inline";
            setCookie("showMXML","true", new Date(3000,1,1,1,1), "/", document.location.domain);
        }
        else
        {
            mxmlDiv.style.display = "none";
            mxmlShowLink.style.display = "inline";
            mxmlHideLink.style.display = "none";
            setCookie("showMXML","false", new Date(3000,1,1,1,1), "/", document.location.domain);
        }
    }
}

function showHideInherited()
{   
    setInheritedVisible(getCookie("showInheritedConstant") == "true", "Constant");
    setInheritedVisible(getCookie("showInheritedProtectedConstant") == "true", "ProtectedConstant");
    setInheritedVisible(getCookie("showInheritedProperty") == "true", "Property");
    setInheritedVisible(getCookie("showInheritedProtectedProperty") == "true", "ProtectedProperty");
    setInheritedVisible(getCookie("showInheritedMethod") == "true", "Method");
    setInheritedVisible(getCookie("showInheritedProtectedMethod") == "true", "ProtectedMethod");
    setInheritedVisible(getCookie("showInheritedEvent") == "true", "Event");
    setInheritedVisible(getCookie("showInheritedStyle") == "true", "Style");
    setInheritedVisible(getCookie("showInheritedEffect") == "true", "Effect");
}


function setInheritedVisible(show, selectorText)
{
    if (document.styleSheets[0].cssRules != undefined)
    {
        var rules = document.styleSheets[0].cssRules;
        for (var i = 0; i < rules.length; i++)
        {
            if (rules[i].selectorText == ".hideInherited" + selectorText)
                rules[i].style.display = show ? "" : "none";
                
            if (rules[i].selectorText == ".showInherited" + selectorText)
                rules[i].style.display = show ? "none" : "";
        }
    }
    else
    {
        document.styleSheets[0].addRule(".hideInherited" + selectorText, show ? "display:inline" : "display:none");
        document.styleSheets[0].addRule(".showInherited" + selectorText, show ? "display:none" : "display:inline");
    }

    setCookie("showInherited" + selectorText, show ? "true" : "false", new Date(3000,1,1,1,1), "/", document.location.domain);
    setRowColors(show, selectorText);
}

function setRowColors(show, selectorText)
{
    var rowColor = "#F2F2F2";
    var table = findObject("summaryTable" + selectorText);

    if (table != null)
    {
        var rowNum = 0;
        for (var i = 1; i < table.rows.length; i++)
        {
            if (table.rows[i].className.indexOf("hideInherited") == -1 || show)
            {
                rowNum++;
                table.rows[i].bgColor = (rowNum % 2 == 0) ? rowColor : "#FFFFFF";
            }           
        }
    }
}

function setRowColorsInitial(show, selectorText)
{
    var rowColor = "#F2F2F2";
    var table = findObject("summaryTable" + selectorText);

    if (table != null)
    {
        var rowNum = 0;
        for (var i = 1; i < table.rows.length; i++)
        {
            if (table.rows[i].className.indexOf("hideInherited") == -1 && show)
            {
                rowNum++;
                table.rows[i].bgColor = (rowNum % 2 == 0) ? rowColor : "#FFFFFF";
            }           
        }
    }
}

function setStyle(selectorText, styleName, newValue)
{
    if (document.styleSheets[0].cssRules != undefined)
    {
        var rules = document.styleSheets[0].cssRules;
        for (var i = 0; i < rules.length; i++)
        {
            if (rules[i].selectorText == selectorText)
            {
                rules[i].style[styleName] = newValue;
                break;
            }
        }
    }
    else
    {
        document.styleSheets[0].addRule(selectorText, styleName + ":" + newValue);
    }
}

