// Faq
function hideAnswers(){
    var faq = document.getElementById("faq");
    if (faq != null) {
        var pCollection = faq.getElementsByTagName("p");
        if (pCollection != null) {
            for (var i = 0; i < pCollection.length; i++){
                pCollection[i].style.display = "none";
            }
        }
        var h3Collection = faq.getElementsByTagName("h3");
        if (h3Collection != null) {
            for (var i = 0; i < h3Collection.length; i++){
                h3Collection[i].style.cursor = "pointer";
                var pid = h3Collection[i].id.substring(4);
                if (pid == questionID) toggleQuestion(h3Collection[i])
            }
        }
    }
}

function toggleQuestion(element){
    var parentLi = element.parentNode;
    var pCollection = parentLi.getElementsByTagName("p");
    if (pCollection != null && pCollection.length > 0){
        var p = pCollection[0];
        if (p.style.display == "none"){
            p.style.display = "block";
            element.style.fontWeight = "bold";
            if (element.className == "arrow-up-white"){
                element.className = "arrow-down-white";
            }
            else if (element.className == "arrow-up-green"){
                element.className = "arrow-down-green";
            }
        }
        else{
            p.style.display = "none";
            element.style.fontWeight = "normal";
            if (element.className == "arrow-down-white"){
                element.className = "arrow-up-white";
            }
            else if (element.className == "arrow-down-green"){
                element.className = "arrow-up-green";
            }
        }
    }
}


// Faq Form Portlet
var mode = "intro";

function showForm(){
    var faqForm = document.getElementById("faqForm");
    if (faqForm != null){
        faqForm.style.display = "block";
        var textDiv = document.getElementById("text");
        if (textDiv != null){
            var textPs = textDiv.getElementsByTagName("p");
            if (textPs.length > 0){
                var arrowP = textPs[textPs.length - 1];
                arrowP.className = "arrow-down-green";
            }
        }
    }
}

function focusOnInput(element, defaultValue){
    if (element.value == defaultValue)
        element.value = "";
}

function sendMail(){
    var faqForm = document.getElementById("faqForm");
    if (faqForm != null){
        var selectedCategory = null;
        var selectedValue = null;
        var selects = faqForm.getElementsByTagName("select");
        if (selects.length > 0){
            var index = selects[0].selectedIndex;
            selectedCategory = selects[0].options[index].text;
            selectedValue = selects[0].options[index].value;
        }
        
        var message = faqForm.getElementsByTagName("textarea")[0].value;
        var name    = faqForm.getElementsByTagName("input")[0].value;
        var email   = faqForm.getElementsByTagName("input")[1].value;
        Lantmannen.Web.Web.Apps.FAQ.Portlets.SendQuestion.SendMailAjax(pageID, pageRootID, languageBranch, selectedCategory, selectedValue, message, name, email, sendMailAjax_callback);
    }
}

function sendMailAjax_callback(result){
    if (result != null && result.value != null){
        if (result.value.FormIsValid){
            var faqForm = document.getElementById("faqForm");
            if (faqForm != null){
                faqForm.style.display = "none";
            }
            
            var textDiv = document.getElementById("text");
            if (textDiv != null){
                if (mode == "intro"){
                    // change heading
                    var h1 = textDiv.parentNode.getElementsByTagName("h1")[0];
                    var oldH1Text = h1.firstChild;
                    var newH1Text = document.createTextNode(result.value.Heading);
                    h1.replaceChild(newH1Text, oldH1Text);
                    
                    // change body text
                    var bodyDivs = textDiv.getElementsByTagName("div"); 
                    if (bodyDivs.length > 0)
                        bodyDivs[0].innerHTML = result.value.Body;
                    
                    // change link text
                    var lnkToggleForm = document.getElementById("lnkToggleForm");
                    var oldLinkText = lnkToggleForm.firstChild;
                    var newLinkText = document.createTextNode(result.value.LinkText);
                    lnkToggleForm.replaceChild(newLinkText, oldLinkText);
                    
                    mode = "done";
                }

                // change arrow
                var textPs = textDiv.getElementsByTagName("p");
                if (textPs.length > 0){
                    var arrowP = textPs[textPs.length - 1];
                    arrowP.className = "arrow-up-green";
                }
            }
            
            resetForm(faqForm, result);
        }
        else{
            if (result.value.Errors.length > 0){
                var errorList = document.createElement("ol");
                errorList.className = "error";
                errorList.id = "errorList";
                for (var i = 0; i < result.value.Errors.length; i++){
                    var li = document.createElement("li");
                    var liText = document.createTextNode(result.value.Errors[i]);
                    li.appendChild(liText);
                    errorList.appendChild(li);
                }
                
                var oldErrorList = document.getElementById("errorList");
                if (oldErrorList != null){
                    oldErrorList.parentNode.replaceChild(errorList, oldErrorList);
                }
                else{
                    var faqForm = document.getElementById("faqForm");
                    if (faqForm != null){
                        var fieldsets = faqForm.getElementsByTagName("fieldset");
                        if (fieldsets.length > 0){
                            fieldsets[0].insertBefore(errorList, fieldsets[0].firstChild);
                        }
                    }
                }
            }
        }
    }
}

function resetForm(faqForm, result){
    var oldErrorList = document.getElementById("errorList");
    if (oldErrorList != null){
        oldErrorList.parentNode.removeChild(oldErrorList);
    }
    
    var selects = faqForm.getElementsByTagName("select");
    if (selects.length > 0){
        selects[0].selectedIndex = 0;
    }
    
    faqForm.getElementsByTagName("textarea")[0].value = result.value.Message;
    faqForm.getElementsByTagName("input")[0].value = result.value.Name;
    faqForm.getElementsByTagName("input")[1].value = result.value.Email;
}