var PeriodicalState = {};

PeriodicalState.CurrentOpenID = "";
PeriodicalState.ActiveArray = new Array();

PeriodicalState.MatchParentID = function(obj, sId){
    if(obj.parentNode.id == sId){
        return true;
    }
    if(obj.tagName == "HTML"){
        return false;
    }
    return PeriodicalState.MatchParentID(obj.parentNode, sId);
}

PeriodicalState.RemoveInactiveElements = function(sID){
    var Elements = document.getElementsByName(sID + "Element");
    var bHasActive = false;
    var ActiveElementID = sID + "ElementLink";
    for(z = 0; z < Elements.length; z++){
        
        if(Elements[z].nextSibling.getAttribute("name") != Elements[z].getAttribute("name")){
            bHasActive = PeriodicalState.CheckForActiveChild(Elements[z].nextSibling, ActiveElementID);
        }else{
            bHasActive = PeriodicalState.CheckForActiveChild(Elements[z], ActiveElementID);
        }
        
        if(!bHasActive){
            Elements[z].innerHTML = "";
        }
        
        bHasActive = false;
    }
}

PeriodicalState.CheckForActiveChild = function(Element, Name){
    var ChildCollection = Element.childNodes;
    if(typeof(ChildCollection) == "undefined"){
        return false;
    }
    for(z = 0; z < ChildCollection.length; z++){
        tag = ChildCollection[z].tagName;
        if(typeof(tag) == "undefined"){
            return false;
        }
        if(ChildCollection[z].getAttribute("name") == Name){
            return true;
        }else{
            return PeriodicalState.CheckForActiveChild(ChildCollection[z], Name);
        }
    }
    return false;
}

PeriodicalState.OnClick = function(sID, Hide){
    
    var HtmlTag = document.getElementsByTagName("HTML");
    var rootTag = HtmlTag[0];
    var Listener = function(ev){
        if(window.event){
            ev = window.event;
            var CurrentElement = ev.srcElement;
        }else{
            var CurrentElement = ev.target;
        }
        if(CurrentElement.id == PeriodicalState.CurrentOpenID + "Container" || CurrentElement.id == PeriodicalState.CurrentOpenID || PeriodicalState.MatchParentID(CurrentElement, PeriodicalState.CurrentOpenID) || PeriodicalState.MatchParentID(CurrentElement, PeriodicalState.CurrentOpenID + "Container") || PeriodicalState.MatchParentID(CurrentElement, PeriodicalState.CurrentOpenID + "2")){
            return false;
        }else{
            document.getElementById(PeriodicalState.CurrentOpenID + "Container").style.display = "none";
            PeriodicalState.CurrentOpenID = "";
            
            if(window.addEventListener){ // Mozilla, Netscape, Firefox
	            ev.currentTarget.removeEventListener("click", Listener, false);
            } else { // IE
                var HtmlTag = document.getElementsByTagName("HTML");
                var rootTag = HtmlTag[0];
	            rootTag.detachEvent("onclick");
            }
        }
    }
    
    var obj = document.getElementById(sID);
    var Container = document.getElementById(sID + "Container");
    if(Container.style.display == "none" && typeof(Hide) == "undefined" && !Hide){
        Container.style.display = "";
        if(PeriodicalState.CurrentOpenID != ""){
            document.getElementById(PeriodicalState.CurrentOpenID + "Container").style.display = "none";
        }
        if(window.addEventListener){ // Mozilla, Netscape, Firefox
	        rootTag.addEventListener("click", Listener, false);
        } else { // IE
	        rootTag.attachEvent("onclick", Listener);
        }
        PeriodicalState.CurrentOpenID = sID;
    }else{
        Container.style.display = "none";
        PeriodicalState.CurrentOpenID = "";
    }
    PeriodicalState.Active(sID);
    return false; 
}

PeriodicalState.Active = function(sID){
    var Image = document.getElementById(sID + "_Icon");
    if(typeof(Image) == "undefined" || Image == null){
        return false;
    }
    if(Image.src.match("Active")){
        Image.src = Image.src.replace("Active", "");
        Image.setAttribute("alt", Image.getAttribute("alt").replace("Close", "Open"));
        Image.setAttribute("title", Image.getAttribute("title").replace("Close", "Open"));
    }else{
        if(Image.src.match("2.gif")){
            Image.src = Image.src.replace("2.gif", "Active2.gif");
            Image.setAttribute("alt", Image.getAttribute("alt").replace("Open", "Close"));
            Image.setAttribute("title", Image.getAttribute("title").replace("Open", "Close"));
        }else{
            Image.src = Image.src.replace(".gif", "Active.gif");
            Image.setAttribute("alt", Image.getAttribute("alt").replace("Open", "Close"));
            Image.setAttribute("title", Image.getAttribute("title").replace("Open", "Close"));
        }
    }
}

PeriodicalState.ChangeState = function(sContainerID, Year, TypeID, Period, File, Method, PSID, obj, ShowAll){
//    if(typeof(ShowAll) == "undefined"){
//        if(typeof(PeriodicalState.ActiveArray[PSID]) == "undefined"){
//            var ActiveElement = document.getElementsByName(PSID + "ElementLinkCurrent");
//            var LastObj = ActiveElement[0];
//            var LastID = LastObj.id.replace("Disable", "Active");
//            alert(LastObj.id);
//            LastObj.style.display = "none";
//            document.getElementById(LastID).style.display = "";
//        }else{
//            var LastObj = document.getElementById(PeriodicalState.ActiveArray[PSID]);
//            var LastID = LastObj.id.replace("Disable", "Active");
//            LastObj.style.display = "none";
//            document.getElementById(LastID).style.display = "";
//        }
//        var Current = obj.id.replace("Active", "Disable");
//        obj.style.display = "none";
//        document.getElementById(Current).style.display = "";
//        PeriodicalState.ActiveArray[PSID] =  Current;
//    }else{
//        if(typeof(PeriodicalState.ActiveArray[PSID]) == "undefined"){
//            var ActiveElement = document.getElementsByName(PSID + "ElementLinkCurrent");
//            var LastObj = ActiveElement[0];
//        }else{
//            var LastObj = document.getElementById(PeriodicalState.ActiveArray[PSID]);
//        }
//        var LastID = LastObj.id.replace("Disable", "Active");
//        LastObj.style.display = "none";
//        document.getElementById(LastID).style.display = "";
//    }
//    
//    var Container = document.getElementById(sContainerID);
//    if(Container.tagName == "TABLE"){
//        Container = Container.childNodes[0];
//        Container = Container.childNodes[0];
//    }
//    Container.innerHTML = "";
//    
//    var PSObject = document.getElementById(PSID);
//    var PSContainerObject = document.getElementById(PSID + "Container");
//    PSContainerObject.style.display = "none";
//    if(typeof(ShowAll) == "undefined"){
//        PeriodicalState.Active(PSID);
//    }
//    PeriodicalState.CurrentOpenID = "";
//    if(typeof(ShowAll) != "undefined" && ShowAll){
//        PSObject.firstChild.innerHTML = "All Opened";
//    }else{
//        PSObject.firstChild.innerHTML = obj.innerHTML;
//    }
//    var oLoading = new LoadingImage(Container);
//	oLoading.Style = "text-align: center;";
//	oLoading.Render();
//    
//    var HttpRequest = new CHttpRequest();
//	HttpRequest.AddProperty("AjaxType", "HTML");
//	HttpRequest.AddProperty("RequestFile", File);
//	HttpRequest.AddProperty("MethodName", Method);
//	HttpRequest.AddProperty("Arguments[PSYear]", Year);
//	HttpRequest.AddProperty("Arguments[PSTypeID]", TypeID);
//	HttpRequest.AddProperty("Arguments[PSPeriod]", Period);
//	HttpRequest.Additional = Container;
//	HttpRequest.onReturn = "PeriodicalState.CallBack";
//	HttpRequest.Send();
	var Container = document.getElementById(sContainerID);
    if(Container.tagName == "TABLE"){
		Container = Container.childNodes[0];
		Container = Container.childNodes[0];
	}
	Container.innerHTML = "";
	
	var PSObject = document.getElementById(PSID);
	var PSContainerObject = document.getElementById(PSID + "Container");
	PSContainerObject.style.display = "none";
	if(typeof(ShowAll) == "undefined"){
		PeriodicalState.Active(PSID);
	}
	PeriodicalState.CurrentOpenID = "";
	if(typeof(ShowAll) != "undefined" && ShowAll){
		PSObject.firstChild.innerHTML = "All Opened";
	}else{
		PSObject.firstChild.innerHTML = obj.innerHTML;
	}
	var oLoading = new LoadingImage(Container);
	oLoading.Style = "text-align: center;";
	oLoading.Render();
	
	var HttpRequest = new CHttpRequest();
	HttpRequest.AddProperty("AjaxType", "HTML");
	HttpRequest.AddProperty("RequestFile", File);
	HttpRequest.AddProperty("MethodName", Method);
	HttpRequest.AddProperty("Arguments[PSYear]", Year);
	HttpRequest.AddProperty("Arguments[PSTypeID]", TypeID);
	HttpRequest.AddProperty("Arguments[PSPeriod]", Period);
	HttpRequest.Additional = Container;
	HttpRequest.onReturn = "PeriodicalState.CallBack";
	HttpRequest.Send();
}

PeriodicalState.CallBack = function(HttpRequest, AdditionalData){
	AdditionalData.innerHTML = HttpRequest.responseText;
	if(HttpRequest.responseText == ""){
		AdditionalData.innerHTML = "N/A";
	}
}

PeriodicalState.Expant = function(obj, sContainerID){
    var oContainer = document.getElementById(sContainerID);
    var src = obj.src;
    if(oContainer.style.display == "none"){
        oContainer.style.display = "";
        if(!src.match("2.gif")){
            obj.setAttribute("src", src.replace(".gif", "2.gif"));
        }
        obj.setAttribute("onmouseover", "");
        obj.setAttribute("onmouseout", "");
    }else{
        oContainer.style.display = "none";
        obj.setAttribute("src", src.replace("2.gif", ".gif"));
        obj.setAttribute("onmouseover", "this.src='" + src + "'");
        obj.setAttribute("onmouseout", "this.src='" + src.replace("2.gif", ".gif") + "'");
    }
}
