/*
 * Copyright (c) 2006 Talentum Oyj.
 * All rights reserved.
 */
var selections = new Object();
//var toimialaSelectItemId = "template:content:searchform:searchform:sectors";
//var sijaintiSelectItemId = "template:content:searchform:searchform:locations";
//var muotoSelectItemId = "template:content:searchform:searchform:modes";
//var queryInputItemId = "template:content:searchform:searchform:query";
var toimialaSelectItemId = "sectors";
var sijaintiSelectItemId = "locations";
var muotoSelectItemId = "modes";
var queryInputItemId = "query";

function setupMultiSelect() {
        //Defaults used on main page
        var selectItemIds = new Array(toimialaSelectItemId, sijaintiSelectItemId, muotoSelectItemId);
        setupMultiSelect(selectItemIds);
}

function setupMultiSelect(selectItemIds) {
    for (id in selectItemIds) {
        var selectItemId = selectItemIds[id];
        selections[selectItemId] = new Array();

        var selectItem = document.getElementById(selectItemId);
        for (var i = 0; i < selectItem.length; i++) {
            selections[selectItemId][i] = selectItem[i].selected;
        }

        if(navigator.appName == "Microsoft Internet Explorer") {
            selectItem.onchange=handleChange;
        } else {
            selectItem.onclick=handleClick;
        }
    }
}
// For IE
function handleChange(e) {
    e = getEvent(e);
    var selectItem = getEventTargetElement(e);
    var index = selectItem.selectedIndex;

    if (typeof(e.ctrlKey) != 'undefined' && e.ctrlKey) {
        for (var i = 0; i < selectItem.length; i++) {
            if (selectItem[i].selected) {
              selections[selectItem.id][i] = selectItem[i].selected;
            }
        }
    } else {
        selections[selectItem.id][index] = !selections[selectItem.id][index];
        redrawSelectItem(selectItem);
    }
}

// For FF & Opera
function handleClick(e) {
    e = getEvent(e);
    var selectItem = getEventTargetElement(e).parentNode;
    var index = selectItem.selectedIndex;

    // TODO: ctrl tunnistus ei toimi Operassa
    if (typeof(e.ctrlKey) != 'undefined' && e.ctrlKey) {
        for (var i = 0; i < selectItem.length; i++) {
            if (selectItem[i].selected) {
              selections[selectItem.id][i] = selectItem[i].selected;
            }
        }
    } else {
        selections[selectItem.id][index] = !selections[selectItem.id][index];
        redrawSelectItem(selectItem);
    }
}

function redrawSelectItem(selectItem) {
    for (var i = 0; i < selectItem.length; i++) {
        selectItem[i].selected = selections[selectItem.id][i];
    }
}

function getEventTargetElement(e) {
    return (e.target) ? e.target : e.srcElement;
}

function getEvent(e) {
    return (typeof e == 'undefined') ? window.event : e;
}

function saveToWatchdog() {
        toimialaParamString = "sectors=";
        sijaintiParamString = "locations=";
        muotoParamString = "modes=";
        queryParamString = "query=" + document.getElementById(queryInputItemId).value;

        var selectItem = document.getElementById(toimialaSelectItemId);
        var selectItemSelectedIndexes = getSelectedIndexes(selectItem);
        for (var i = 0; i < selectItemSelectedIndexes.length; i++) {
                toimialaParamString += selectItemSelectedIndexes[i];
                if (i < selectItemSelectedIndexes.length - 1) {
                        toimialaParamString += "&sectors=";
                }
        }

        var selectItem = document.getElementById(sijaintiSelectItemId);
        var selectItemSelectedIndexes = getSelectedIndexes(selectItem);
        for (var i = 0; i < selectItemSelectedIndexes.length; i++) {
                sijaintiParamString += selectItemSelectedIndexes[i];
                if (i < selectItemSelectedIndexes.length - 1) {
                        sijaintiParamString += "&sectors=";
                }
        }

        var selectItem = document.getElementById(muotoSelectItemId);
        var selectItemSelectedIndexes = getSelectedIndexes(selectItem);
        for (var i = 0; i < selectItemSelectedIndexes.length; i++) {
                muotoParamString += selectItemSelectedIndexes[i];
                if (i < selectItemSelectedIndexes.length - 1) {
                        muotoParamString += "&sectors=";
                }
        }
       location.href="watchdog.action?" + toimialaParamString + "&" + sijaintiParamString + "&" +  muotoParamString + "&" +  queryParamString;
}

function getSelectedIndexes(selectItem) {
        
        var selected = new Array();
        for (var i = 0; i < selectItem.length; i++) {
                if (selectItem[i].selected) {
                        selected.push(selectItem[i].value);
                }
        }
        return selected;

}