var _clones=new Hash(), max=1;

function initiativ(typ, stelle){
    if(typ == 1){
    	  if(!stelle) var g = '/initiativbewerbung/dozenten/forschung-und-lehre.html';
        else var g = '/initiativbewerbung/dozenten/ausschreibung-' + stelle + '.html';
    } else if(typ == 2) {
        if(!stelle) var g = '/initiativbewerbung/mitarbeiter/administration-und-support.html';
        else var g = '/initiativbewerbung/mitarbeiter/ausschreibung-' + stelle + '.html';
    } else {
        if(!stelle) var g = '/initiativbewerbung/kooperationspartner/fuer-absolventen.html';
        else var g = '/initiativbewerbung/kooperationspartner/ausschreibung-' + stelle + '.html';
    }
    window.location.href = g;
}


window.addEvent('domready',function() {
    $$('input[type=checkbox]','select').each(function(e){
        e.addEvent('change',function(E){
            revalidate(e);
        });
        var tn = e.tagName.toLowerCase();
        if(tn=='select') max++;
        
        /*
        if(tn=='select'){
            var ca = new Hash({});
            $each(e.options,function(o){
                var k = o.value;
                var v = o.innerHTML;
                ca.set(k,v);
            });
            _clones.set(e.name,ca);
        } */
    });
    /*var f = $('freitext');
    if(f){
        f.addEvents({
            'keydown': function(e){
                if(e.key=='enter'){
                    //$('right').innerHTML += 'enter1 '+$$('input[name=submit_frei]').length;
                    $$('input[type=submit]').each(function(w){
                        if(w.name != 'submit_frei'){
                            w.destroy();
                            //w.value = 'XXXX';
                        }
                    })
                    //$('sub_frei').setProperty('type','submit');
                    $$('form')[0].submit();
                    e.stopPropagation();
                    e.preventDefault();
                }
            },
            'keypress': function(e){
                if(e.key=='enter'){
                    e.stopPropagation();
                    e.preventDefault();
                }
            },
            'keyup': function(e){
                if(e.key=='enter'){
                    e.stopPropagation();
                    e.preventDefault();
                }
            }
            
        })
    }*/


    $$('.homebox a').each(function(e){
        var p = e.getParent('.homebox');
        p.addEvent('click',function(){
            window.location.href = e.href;
        });
        p.addClass('pointer');
    })

    $$('.homebox2 a').each(function(e){
        var p = e.getParent('.homebox2');
        p.addEvent('click',function(){
            window.location.href = e.href;
        });
        p.addClass('pointer');
    })

    revalidate($('t-1'),true);

});


function revalidate(aktivator,init){
    if(max == 1) return; 
    
    var values = new Hash({'field1':[]});

    //Sammelt die geklickten Infos:
    var alleInputs = $$('input[type=checkbox]','select');
    var alleCBgeklickt = true;
    var doActivate = (aktivator.get('id')=='t-1' && aktivator.checked);
    
    alleInputs.each(function(e){
        var tn = e.tagName.toLowerCase();
        if(tn=='select'){
            var v = e.selectedIndex;
            var w = e.options[v];
            values.set(e.name,w.value);
        } else if(tn=='input' && (e.checked || doActivate)){
            values['field1'].include(e.value);
            if(doActivate) e.checked = true;
        } else if(tn=='input'){
            alleCBgeklickt = false;
        }
    });
    
    if(!alleCBgeklickt) {
        $('t-1').checked = false;
    }
    
    //Sammelt, welche Checks aktiviert werden müssen auf Basis der Selecteten Inputs
    if(max==4) var keepAlive = new Hash({'field1': [], 'field2': [], 'field3': [], 'field4': []});
    else            var keepAlive = new Hash({'field1': [], 'field2': [], 'field3': []});
    
    //Speichert die AngebotIDs zu den Angeboten, die noch anzuzeigen sind!
    var show = new Hash();
    AJAX.each(function(a,i){
        show[i] = 0;
        $each(values,function(v,j){
            if($type(v)=='array'){
                if(v.contains(a[j])) keepAlive[j].include(i);
            } else {
                if(a[j]==v || v==-1) keepAlive[j].include(i);
            }
        });
    });
    
    $each(keepAlive,function(vArr,field){
        vArr.each(function(x){
            show[x]++;
        });
        keepAlive[field].empty();
    });
    
    $each(show,function(anz,id){
        if(anz!=max) show.erase(id);
        else {
            keepAlive['field1'].include(AJAX[id]['field1']);
            keepAlive['field2'].include(AJAX[id]['field2']);
            keepAlive['field3'].include(AJAX[id]['field3']);
            if(max==4) keepAlive['field4'].include(AJAX[id]['field4']);
        }
    });
    
    
    alleInputs.each(function(e){
        if(e.id=='t-1'){
            return;
        }
        var tn = e.tagName.toLowerCase();
        if(tn=='select'){
            var sel = e.selectedIndex;
            /*ReCreating original Input* /
            e.empty();
            _clones[e.name].each(function(v,k){
                var option = new Element('option',{
                    'html': v,
                    'value': k
                });
                option.inject(e);
            })
            
            /**/
            e.selectedIndex = sel;
            var w = e.options;
            $each(w,function(o,i){
                if(!keepAlive[e.name]) alert('kein keepAlive für '+e.name);
                else {
                    if(keepAlive[e.name].contains(o.value) || o.value==-1){
                        //o.setStyle('color','green');
                        o.setStyle('display','block');
                    } else {
                        //o.setStyle('color','red');
                        //o.destroy();
                        o.setStyle('display','none');
                    }
                }
            })
        } else if(tn=='input' && e.name=='typen[]'){
            if(keepAlive['field1'].contains(e.value)){
                $$('label[for='+e.id+']')[0].setStyle('color','#6C6D70');
                e.setProperty('disabled',false);
                e.setProperty('title',false);
            } else {
                $$('label[for='+e.id+']')[0].setStyle('color','#aaa').setProperty('title','Zum aktivieren klicken Sie bitte auf "alle"');
                e.setProperty('disabled','disabled');
                e.setProperty('title','Zum aktivieren klicken Sie bitte auf "alle"');
                e.setProperty('checked',false);
            }
        } 
        
    });
    
    if(!init) revalidate(aktivator,true);
   
    
    /*
    var keepAlive = new Hash({
        'types': [],
        'field2': [],
        'field3': [],
        'field4': []
    });

    AJAX.each(function(e){
        var f1=e.types, f2=e.field2, f3=e.field3, f4=e.field4;

        if(values.types.contains(f1))   keepAlive['types'].include(f1);
        if(f2 == values['field2'] || values['field2'] == -1) keepAlive['field2'].include(f2);
        if(f3 == values['field3'] || values['field3'] == -1) keepAlive['field3'].include(f3);
        if(f4 == values['field4'] || values['field4'] == -1) keepAlive['field4'].include(f4);
    });
    
    $('right').innerHTML += 'Selected Values: '+ values.toJSON()+'<hr>';
    $('right').innerHTML += 'keepAlives: '+ keepAlive.toJSON()+'<hr>';

    alleInputs.each(function(e){
        var tn = e.tagName.toLowerCase();
        if(tn=='select'){
            var opt = e.options;
            
            $each(opt,function(f){
                if(keepAlive[e.name].contains(f.value)){
                    f.setStyle('color','green');
                    $('right').innerHTML += '<br>OK '+ f.value +' is in ('+e.name+') '+keepAlive[e.name].toJSON();
                } else {
                    f.setStyle('color','red');
                    $('right').innerHTML += '<br>NOK '+ f.value +' is in ('+e.name+') '+keepAlive[e.name].toJSON();
                }
            });
        } else if(tn=='input' && e.checked){
        }
        
    });
    */
    
    //alert(JSON.encode(values)+JSON.encode(keepAlive));
}

function revalidateW(){
    var values = new Hash({
        'field1': [],
        'field2': false,
        'field3': false,
        'field4': false
    });

    //Sammelt die geklickten Infos:
    var alleInputs = $$('input[type=checkbox]','select');
    alleInputs.each(function(e){
        var tn = e.tagName.toLowerCase();
        if(tn=='select'){
            var v = e.selectedIndex;
            var w = e.options[v];
            values[e.name] = w.value;
        } else if(tn=='input' && e.checked){
            values['field1'].include(e.value);
        }
    });
    
    //Sammelt, welche Checks aktiviert werden müssen auf Basis der Selecteten Inputs
    var keepAlive = new Hash({'field1': [], 'field2': [], 'field3': [], 'field4': []});
    
    //Speichert die AngebotIDs zu den Angeboten, die noch anzuzeigen sind!
    var show = new Hash();
    AJAX.each(function(a,i){
        show[i] = 0;
        $each(values,function(v,j){
            if($type(v)=='array'){
                if(v.contains(a[j])) keepAlive[j].include(i);
            } else {
                if(a[j]==v || v==-1) keepAlive[j].include(i);
            }
        });
    });
    
    $each(keepAlive,function(vArr,field){
        vArr.each(function(x){
            show[x]++;
        });
        keepAlive[field].empty();
    });
    
    $each(show,function(anz,id){
        if(anz!=max) show.erase(id);
        else {
            keepAlive['field1'].include(AJAX[id]['field1']);
            keepAlive['field2'].include(AJAX[id]['field2']);
            keepAlive['field3'].include(AJAX[id]['field3']);
            if(max==4) keepAlive['field4'].include(AJAX[id]['field4']);
        }
    })
    
    
    alleInputs.each(function(e){
        var tn = e.tagName.toLowerCase();
        if(tn=='select'){
            var sel = e.selectedIndex;
            /*ReCreating original Input* /
            e.empty();
            _clones[e.name].each(function(v,k){
                var option = new Element('option',{
                    'html': v,
                    'value': k
                });
                option.inject(e);
            })
            
            /**/
            e.selectedIndex = sel;
            var w = e.options;
            $each(w,function(o,i){
                if(keepAlive[e.name].contains(o.value) || o.value==-1){
                    //o.setStyle('color','green');
                    o.setStyle('display','block');
                } else {
                    //o.setStyle('color','red');
                    //o.destroy();
                    o.setStyle('display','none');
                }
            })
        } else if(tn=='input' && e.name=='typen[]'){
            if(keepAlive['field1'].contains(e.value)){
                $$('label[for='+e.id+']')[0].setStyle('color','#6C6D70');
                e.setProperty('disabled',false);
            } else {
                $$('label[for='+e.id+']')[0].setStyle('color','#aaa');
                e.setProperty('disabled','disabled');
            }
        }
        
    })
   
    
        

    
    
    
    /*
    var keepAlive = new Hash({
        'types': [],
        'field2': [],
        'field3': [],
        'field4': []
    });

    AJAX.each(function(e){
        var f1=e.types, f2=e.field2, f3=e.field3, f4=e.field4;

        if(values.types.contains(f1))   keepAlive['types'].include(f1);
        if(f2 == values['field2'] || values['field2'] == -1) keepAlive['field2'].include(f2);
        if(f3 == values['field3'] || values['field3'] == -1) keepAlive['field3'].include(f3);
        if(f4 == values['field4'] || values['field4'] == -1) keepAlive['field4'].include(f4);
    });
    
    $('right').innerHTML += 'Selected Values: '+ values.toJSON()+'<hr>';
    $('right').innerHTML += 'keepAlives: '+ keepAlive.toJSON()+'<hr>';

    alleInputs.each(function(e){
        var tn = e.tagName.toLowerCase();
        if(tn=='select'){
            var opt = e.options;
            
            $each(opt,function(f){
                if(keepAlive[e.name].contains(f.value)){
                    f.setStyle('color','green');
                    $('right').innerHTML += '<br>OK '+ f.value +' is in ('+e.name+') '+keepAlive[e.name].toJSON();
                } else {
                    f.setStyle('color','red');
                    $('right').innerHTML += '<br>NOK '+ f.value +' is in ('+e.name+') '+keepAlive[e.name].toJSON();
                }
            });
        } else if(tn=='input' && e.checked){
        }
        
    });
    */
    
    //alert(JSON.encode(values)+JSON.encode(keepAlive));
}




/*
['486'] => Array(1)
    ['field1'] => 10747
['477'] => Array(4)
    ['field1'] => 10747
    ['field2'] => 0c94714688
    ['field3'] => 0b254282ba
    ['field4'] => 5007868
['478'] => Array(4)
    ['field1'] => 10747
    ['field2'] => 0c94714688
    ['field3'] => 0b254282ba
    ['field4'] => 5007868
['476'] => Array(4)
    ['field1'] => 10696
    ['field2'] => 20124ca6f2
    ['field3'] => 1f32b73dc8
    ['field4'] => 5007878
['475'] => Array(4)
    ['field1'] => 10696
    ['field2'] => 20124ca6f2
    ['field3'] => 1f32b73dc8
    ['field4'] => 5007878
['487'] => Array(1)
    ['field1'] => 10696
*/
