﻿function initSearchFilters(frmName, frmElements, aF, cF) {

    var targetForm = document.getElementById(frmName);
    var availFilter = document.getElementById(aF);
    var currFilter = document.getElementById(cF);
    var currFilterBox = document.getElementById(divCurrFilters);
    var availableFilterHeading = document.getElementById('availableFilterHeading');
    currFilterBox.style.display = "none";

    // Cycle through all elements of the form
    for (var n = 0; n < targetForm.elements.length; n++) {

        // If element is on our list to render and a multi select render LI with multi selects name
        if (frmElements.indexOf(targetForm.elements[n].getAttribute('displayname')) > -1 &&
		    targetForm.elements[n].type.toLowerCase() == 'select-multiple') {
            var li = createChildLIwithTextNode(availFilter, targetForm.elements[n].getAttribute('displayname'), 'availableFilterType');

            // If multi select has children render UL and Child nodes
            if (targetForm.elements[n].length > 0) {
                var ul = document.createElement('ul');
                li.appendChild(ul);

                // If multi select element is 'selected' add to current filters...else add to available item ul
                for (var i = 0; i < targetForm.elements[n].length; i++) {
                    if (targetForm.elements[n].options[i].selected) {
                        createChildLIwithTextNode(currFilter, targetForm.elements[n].options[i].text, 'FilterItemSelected');
                        currFilterBox.style.display = "block";
                    } else {
                        createChildLIwithTextNode(ul, targetForm.elements[n].options[i].text, 'FilterItem');
                    }
                }
            }
        }
    }
}

function createChildLIwithTextNode(parent, childText, clsName){

	var span = document.createElement("span");
	span.appendChild(document.createTextNode(childText));
	
	var li = document.createElement('li');
	li.className = clsName;
	li.appendChild(span);
	parent.appendChild(li);	
	
	return li;
}

function toggleElement(e, frm) {

    var target;
    var thisForm = document.getElementById(frm);
	var isChild = false;
	
    // Get the target of the users action.
    if (!e) var e = window.event;
    var target = e.srcElement ? e.srcElement : e.target;
    if (target.nodeType == 3) // defeat Safari bug
        target = target.parentNode;

    // Cycle through all form elements
    for (y = 0; y < thisForm.elements.length; y++) {
        var currFormElement = document.getElementById(thisForm.elements[y].id);

        // Check to see of the current form element has the same name as the target elements text...if to toggle class
        // This is a top level node and will collapse / expand based on css attributes
        if (currFormElement.getAttribute('displayname') &&
                currFormElement.getAttribute('displayname').toLowerCase() == target.childNodes[0].nodeValue.toLowerCase()) {
            if (target.parentNode.className == 'availableFilterType') {
                target.parentNode.className = 'availableFilterTypeSelected'
            } else {
                target.parentNode.className = 'availableFilterType'
            }
        } else {
            // If it's not a top level node check to see if it's the text of multi select option and toggle selection and class
            for (var i = 0; i < currFormElement.length; i++) {
                if (currFormElement.options[i].text.toLowerCase() == target.childNodes[0].nodeValue.toLowerCase()) {
				isChild = true;
                    if (currFormElement.options[i].selected) {
                        currFormElement.options[i].selected = false;
                        target.parentNode.className = 'FilterItem';
                    } else {
                        currFormElement.options[i].selected = true;
                        target.parentNode.className = 'FilterItemSelected';
                    }
                }
            }
        }
    }
	
	if (isChild) {
        document.getElementById(btnSearchSubmit).click();
        
    }
}

function RemoveImage(name) {
    document.getElementById(name).innerHTML = '';
}

function SetDefaultText(id, defaultValue) {
    var element = document.getElementById(id);
    if (element.value == '') {
        element.value = defaultValue;
    }
    else if (element.value == defaultValue) {
        element.value = '';
    }
}
