var data = {}
var dept = {}
var group = {}
var option = ''

function getOptionValue(id) {
    if ($(id)) {
        return $(id).options
    } else {
        return ''
    }
}

function getOptionParse(dept, group) {
   
    data = {}

    for (i = 0; i < group.length; i++) {
    
        j = group[i].value.substring(0,2)
        if (!data[j])
            data[j] = []
        data[j] = data[j].concat([OPTION(update({"value":group[i].value},group[i].selected ? {selected:true} : {} ), group[i].innerHTML)])
    }
    
}
function values(obj){
	return map(function(e){return e[1]}, items(obj))
}
function handleOnchange(event) {
    getOptionParse(dept, group)
    var value = event.target().value
    if (value) {
        replaceChildNodes($("sp82_md_aff_group"),OPTION({"value":""},""), data[value])
    } else {
        replaceChildNodes($("sp82_md_aff_group"),OPTION({"value":""},""), values(data))
    }
}

function mailEncrypt() {
    if ($('mvd')) {
        var mail = evalJSON($('mvd').value)
        var mlist = evalJSON($('mlist').value)
        for (i = 0; i < mlist.length; i++) {
            $(mlist[i]).href = 'mailto:' + mail[mlist[i]]
            $(mlist[i]).innerHTML = mail[mlist[i]]
        }
    }
}

function init(event) {

    if ($('sp82_md_aff_group')) {
        connect("sp82_md_aff_dept", "onchange", handleOnchange)
        option = $('sp82_md_aff_group').innerHTML
    } else {
        option = ''
    }
    mailEncrypt()
    var getInfo = partial(map, function(option){
    	return {text:option.text,value:option.value, innerHTML:option.innerHTML,selected:option.selected}})
    var filterNull = partial(filter, function(option){
    	return option.text
    })
    dept = getInfo(filterNull(getOptionValue('sp82_md_aff_dept')))
    group = getInfo(filterNull( getOptionValue('sp82_md_aff_group')))
    getOptionParse(dept, group)
    if ($('sp82_md_aff_dept') && $('sp82_md_aff_dept').boxObject && $('sp82_md_aff_dept').boxObject.element && $('sp82_md_aff_dept').boxObject.element.value) {
        replaceChildNodes($("sp82_md_aff_group"),OPTION({"value":""},""), data[$('sp82_md_aff_dept').boxObject.element.value])
    }
}

addLoadEvent(init)

