/* (C) Copyright 2006 Caderra Zofia Kornecka, Wszystkie Prawa Zastrzezone (All Rights Reserved).   */
/*                                                                                                 */
/* Ten program komputerowy jest chroniony prawem autorskim. Jakiekolwiek uzytkowanie, kopiowanie   */
/* badz rozpowszechnianie tego programu lub jakiejkolwiek jego czesci bez pisemnego upowaznienia   */
/* jest zabronione i moze spowodowac pociagniecie do odpowiedzialnosci cywilnej i karnej           */
/* w maksymalnym zakresie dopuszczalnym przez prawo.                                               */

function toggle_class(element, class1, class2, func) {
            if (element.className != class1) {
                element.className = class1;
                if (func != null) func(true);
            } else {
                element.className = class2;
                if (func != null) func(false);
            }
        }

        function get_next_div(elem) {
            var divs = document.getElementsByTagName("div")
            for (i = 0; i < divs.length - 1; i++) { //>
                if (divs[i] == elem) {
                    return divs[i + 1];
                }
            }
        }

        function update_properties(dest, src) {
            for (var key in src) {
                dest[key] = src[key]
            }
        }

        function toggle_display_next_div(element, closed_class, open_class) {
            var next_div = get_next_div(element);
            function div_display(cond) {
                if (cond) next_div.style.display = "none";
                else next_div.style.display = "block";
            }
            toggle_class(element, closed_class, open_class, div_display);
        }

        function toggle_display_next_div2(element, closed_class, open_class, closed_style, open_style) {
            var next_div = get_next_div(element);
            function div_display(cond) {
                if (cond) {
                    update_properties(next_div.style, closed_style);
                }
                else {
                    update_properties(next_div.style, open_style);
                }
            }
            toggle_class(element, closed_class, open_class, div_display);
        }

        function close_other_faq_items(element, closed_class, open_class) {
            var content = document.getElementById("content")
            var divs = getElementsByTagName("div")
            for (var i = 0; i < divs.length; i++) {
                if (divs[i] == element) continue;
                if (divs[i].className == open_class) {
                    toggle_display_next_div(divs[i], closed_class, open_class)
                    divs[i].className = closed_class
                }
            }
        }

        function close_other_documentation_lists(element, closed_class, open_class, closed_style, open_style) {
//            var content = document.getElementById("content")
            var divs = document.getElementsByTagName("div")
            for (var i = 0; i < divs.length; i++) {
                if (divs[i] == element) continue;
                if (divs[i].className == open_class) {
                    //log(divs[i].id)
                    toggle_display_next_div2(divs[i], closed_class, open_class, closed_style, open_style)
                    divs[i].className = closed_class
                }
            }
        }
        
function switch_faq_item_id(elemId){
	switch_faq_item(document.getElementById(elemId));
	
}

function switchFaq(faqId) {
    //log("switchin faq... "+faqId)
    var d = loadJSONDoc("ajax/faqSetPhaseListener.jsf?faqId=" + faqId);
    d.addCallbacks(setFaq, fetchFailed)
}

function setFaq(faq) {
    //log("setting faq...")
    //log("faqset: ", getElement("faqSet"))
    if (faq.description!=null)
	    getElement("faqSet").innerHTML = '<span class="faq-description">'+faq.description+'</span>';
	else 
		getElement("faqSet").innerHTML = '';
    var i = 0
    forEach(faq.faqItems, function(faqItem) {
        var question = DIV({"class" : "faq-question-closed"}, null)
        question.innerHTML = "<ul><li>" + faqItem.question + "</li></ul>"
       
        var showAnswer = DIV({"class" : "faq-question-closed","style" : "cursor:pointer;" ,"onclick" : "switch_faq_item(this)"}, "Odpowiedź")
        
        answerNode = DIV({"class" : "faq-answer-text"}, null)
        answerNode.innerHTML = faqItem.answer        
        var answer = DIV({"style" : "display: none", "class" : "faq-answer"}, 
                answerNode)    
        
        appendChildNodes("faqSet", question, showAnswer,answer)
        
        
        
//        if ((i < faq.faqItems.length) || faq.referencesContent != null && faq.referencesContent != '') {
//            appendChildNodes("faqSet", DIV({"class" : "content-dotted-separator"}, null))
//        }
	

//        i++
//        var question = SPAN({"class" : "faqset-question"}, SPAN({"class" : "faqset-number"}, i + ". "))
//        question.innerHTML += faqItem.question
//        var showAnswer = DIV({"class" : "faq-question-closed", "onclick" : "switch_faq_item(this)"}, "Odpowiedź")
//        var answerText = DIV({"class" : "faq-answer-text"})
//        answerText.innerHTML = faqItem.answer
//        var answer = DIV({"style" : "width:0px; height:0px; margin:0px", "class" : "faq-answer"},
//                DIV({"class" : "content-dotted-separator"}, null), answerText)
//        appendChildNodes("faqSet", question, showAnswer, answer)
//        if ((i < faq.faqItems.length) || faq.referencesContent != null && faq.referencesContent != '') {
//            appendChildNodes("faqSet", DIV({"class" : "content-dotted-separator"}, null))
//        }


    })
    if (faq.referencesContent != null && faq.referencesContent != '') {
    	getElement("references").innerHTML = faq.referencesContent
        //var referencesText = DIV({"class" : "faq-answer-text"}, null)
        //referencesText.innerHTML = faq.referencesContent
        //var referencesLabel = DIV({"class" : "faq-question-closed", "onclick" : "switch_faq_item(this)"}, "BIBLIOGRAFIA")
        //var references = DIV({"style" : "width:0px; height:0px; margin:0px", "class" : "faq-answer"}, DIV({"class" : "content-dotted-separator"}, null),
        //        referencesText)
        //appendChildNodes("faqSet", DIV({"class" : "faq-references"}, referencesLabel, references))
    }
}

function fetchFailed(err) {
    replaceChildNodes("faqSet", SPAN(null, "Wystąpił problem techniczny, proszę spróbować później." + err))
}
