/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


// ANKER Variablen
var ankerArray = new Array();
var docUrl = getdocURL();

// ACCORDION Variablen
var accActItem = '';
var accEvents = new Object();
var pageLangTxt = new Object();
pageLangTxt.de = '&nbsp;...mehr Infos';
pageLangTxt.en = '&nbsp;...more info';

window.addEvent('domready',function(){
    //###############
    //ANKER setzten
    //###############
    if($$('.anker').length > 0&& !Browser.ie6){
        //Ankertitel auslesen
        var i = 0;
        $$('.anker').each(function(el){
            var ankerTitel = el.get('html');  
            //Menuarray füllen
            ankerArray[i] = new Array('#anker' + i, ankerTitel);
            ankerTitel = ankerTitel.replace(/\|/g," ");
            
            //Anker vor Ankertitel setzen
            ankerTitel = '<a name="anker' + i + '" href="javascript:window.scrollTo(0,0)"></a>' + ankerTitel;
            
            el.set('html',ankerTitel);
            i++;
        })  
        
        //Ankermenu erstellen wenn Anker gesetzt sind
        var ankermenu = '<div id="qlinks"><h4>Quicklinks</h4><ul>';
        for(ankerLauf = 0; ankerLauf < ankerArray.length; ankerLauf++){
			
			ankerArray[ankerLauf][1] = ankerArray[ankerLauf][1].replace(/<br>/g,"");
			ankerArray[ankerLauf][1] = ankerArray[ankerLauf][1].replace(/<br\/>/g,"");
			ankerArray[ankerLauf][1] = ankerArray[ankerLauf][1].replace(/\|/g,"<br/>");
			
            ankermenu +='<li><a href="' + docUrl + ankerArray[ankerLauf][0] + '">' + ankerArray[ankerLauf][1] + '</a></li>';
        }
        if($$('#jobmaillink').length==1){
            ankermenu +='<li>'+$$('#jobmaillink').get('html')+'</li>';
			var bb = pageLang == 'de'?'Zur&uuml;ck zu Übersicht': 'Back to Overview'
			var joblistlink = $$('#backlinkJobs').get('href');
	        ankermenu +='<li><a href="'+joblistlink+'" class="jobmailLink">'+bb+'</a></li>';
        }
        ankermenu += '</ul></div>';
      
        $$('#cassiniRightBar').set('html',ankermenu);
        
        $(document).addEvent('scroll', function(event){
           sc= $(document.body).getScroll()
           //$$('#qlinks h4')[0].set('html',sc.y)
           if(sc.y*1 > 290){
               $$('#qlinks').setStyles({'position':'fixed','margin-top':'-140px'});
           }else{
               $$('#qlinks').setStyles({'position':'relative','margin-top':'155px'});
           }
        });
    }
    if($$('.dispStelle').length > 0){
        if($$('.dispStelle strong').get('html') == '')
            $$('.dispStelle')[0].set('html','');
    }
   
    //###############
    // ACCORDION
    //###############
   if($$('.acci .item').length > 0 && !Browser.ie6){
      pageLang
      var i = 0;
      $$('.item').each(function(el){
         // Item Rundung in footer
         el.set('html','<div class="accitemtop"></div><div class="accitemfooter"></div><div class="itemfg"></div>' + el.get('html'));
         // setzt Id für Item
         el.set('id','itemid' + i);
         
         // Text vorbereiten für Ansicht mit more
         var lessHtml = $$('#itemid' + i + ' .item-left-text-less').get('html') + "";
         var lesstext =lessHtml.substr(0, lessHtml.lastIndexOf("</p>")) + '<span class="more">'+pageLangTxt[pageLang]+'</span></p>';
         // eintsellung für ie7 und ie8
         if(Browser.ie8 || Browser.ie7){
             lesstext =lessHtml.substr(0, lessHtml.length*1-4) + '<span class="more">'+pageLangTxt[pageLang]+'</span></p>';
         }
         
         // Text vorbereiten für Ansicht mit ganzem Text
         var moreHTML = $$('#itemid'+i+' .item-left-text-more').get('html')+""; 
         var moretext = lessHtml.substr(0, lessHtml.length*1-4) +' '+ moreHTML.substr(20)+'';
         // eintsellung für ie7 und ie8
         if(Browser.ie8){
             moretext = lessHtml.substr(0, lessHtml.length*1-4)+' '+ moreHTML.substr(18)+'';
         }
         if(Browser.ie7){
             moretext = lessHtml.substr(0, lessHtml.length*1-4)+' '+ moreHTML.substr(39)+'';
         }      
        
         // einfügen der bearbeiteten Texte
         $$('#itemid'+i+' .item-left-text-less').set('html',lesstext);
         $$('#itemid'+i+' .item-left-text-more').set('html',moretext);
         $$('#itemid'+i+' .item-left-text-more').setStyle('display','none');
        
        //anpassen der Höhe der einzelnen Elemente
         var htmp = $$('#itemid'+i+' .item-left-text-less').getHeight();
         htmp =htmp*1+40;
         el.setStyle('height',htmp);
         $$('#itemid'+i+' .accitemfooter').setStyle('height',el.getStyle('height'));
         $$('#itemid'+i+' .itemfg').setStyle('height',el.getStyle('height'));
         
         // Animationen erstellen
         accEvents['itemid'+i] = new Object();
         accEvents['itemid'+i].bg = new Fx.Tween(el,{duration:'500'});
         accEvents['itemid'+i].footer = new Fx.Tween($$('#itemid'+i+' .accitemfooter')[0],{duration:'500'});
         accEvents['itemid'+i].fg = new Fx.Tween($$('#itemid'+i+' .itemfg')[0],{duration:'500'});
         
         $$('#'+el.get('id')+' .item-right')[0].setStyle('height',el.getHeight()-1)

                   
         //Clickevent
         el.addEvent('click', function(event){
             if(accActItem != el){
                 animateAcc(el,'more');
                 
                if(accActItem != '' ) {
                    //nicht bei dem ersten Aufruf
                    animateAcc(accActItem,'less');
                    
                }else if(accActItem != -1){
                   accActItem = el;
                   //transparenter Vordergrund wird sichtbar
                   $$('.item').each(function(el){
                       if(el!=accActItem){
                            $$('#'+el.get('id')+' .itemfg')[0].setStyles({'display':'block', 'opacity' : ' 0'});
                            $$('#'+el.get('id')+' .itemfg')[0].fade(0.7);
                            
                       }
                   }) 
                }
                accActItem = el
             }else if(accActItem ==-1){
                animateAcc(el,'more');
                accActItem = el
             }else{ 
                accActItem = "";
                animateAcc(el,'less');
                $$('.item').each(function(el){
                       if(el!=accActItem){
                            $$('#'+el.get('id')+' .itemfg')[0].fade(0); 
                       }
                   }) 
                
             }
             
         })
         // transparenter FadeOut
         el.addEvent('mouseover', function(event){
             if(accActItem != '' && accActItem != el) {
                $$('#'+this.get('id')+' .itemfg')[0].fade(0); 
             }
         })
         // transparenter FadeIn
         el.addEvent('mouseout', function(event){
             if(accActItem != ''&& accActItem != el) {
                $$('#'+this.get('id')+' .itemfg')[0].setStyle('display','block');
                $$('#'+this.get('id')+' .itemfg')[0].fade(0.7); 
             }
         })
         i++;
       })
   }
    //###############
    // JOBS
    //###############
    if($$('.jobcats').length == 1 && !Browser.ie6){
        var jobRequest = new Request({
            url: document.URL+'?tx_bmcjobs_pi1[tx_bmcjobs_ort]=2&type=5000',
            method: 'get',
            onRequest: function(){

            },
            onSuccess: function(responseText){
               jobArray = JSON.decode(responseText);
               makeJobLinks(jobArray)
            },
            onFailure: function(){
            }
        });
        jobRequest.send();
    }

})

//###############
//ACCORDION
// Click animation
function animateAcc(el,way){   
    //animationen werden angehalten
    if(el != -1){
        accEvents[el.get('id')].bg.cancel();
        accEvents[el.get('id')].footer.cancel();
        accEvents[el.get('id')].fg.cancel();

        if(way == 'more'){
            //Eintrag wird geöffnet
            el.addClass('actC');
            $$('#'+el.get('id')+' .item-left-text-more').setStyle('display','block');
            $$('#'+el.get('id')+' .item-left-text-less').setStyle('display','none');
            $$('#'+el.get('id')+' .itemfg').setStyle('height',$$('#'+el.get('id') + ' .item-left-text-more').getHeight()*1+60);
            $$('#'+el.get('id')+' .itemfg')[0].setStyles({'display':'block','visibility': 'visible','opacity':' 0'})
            $$('#'+el.get('id')+' .item-right')[0].setStyle('height','auto')
            
            accEvents[el.get('id')].bg.start('height',$$('#'+el.get('id') + ' .item-left-text-more').getHeight()*1+60)//.chain(function(){alert('ende')});
            accEvents[el.get('id')].footer.start('height',$$('#'+el.get('id') + ' .item-left-text-more').getHeight()*1+60);
        }else{
            //Eintrag wird geschlossen
            el.removeClass('actC');
            $$('#'+el.get('id')+' .item-left-text-more').setStyle('display','none');
            $$('#'+el.get('id')+' .item-left-text-less').setStyle('display','block');
            $$('#'+el.get('id')+' .itemfg')[0].setStyles({'display':'block','visibility': 'visible','opacity':' 0'})
            if(accActItem!=-1)
                $$('#'+el.get('id')+' .itemfg')[0].fade(0.7); 

            accEvents[el.get('id')].bg.start('height',$$('#'+el.get('id') + ' .item-left-text-less').getHeight()*1+40);
            accEvents[el.get('id')].footer.start('height',$$('#'+el.get('id') + ' .item-left-text-less').getHeight()*1+40);
            accEvents[el.get('id')].fg.start('height',$$('#'+el.get('id') + ' .item-left-text-less').getHeight()*1+40).chain(function(){$$('#'+el.get('id')+' .item-right')[0].setStyle('height',el.getHeight()-1)});
        } 
    }
}

//###############
//ANKER
// url für anker funktion
function getdocURL(){
    var dUrl = document.URL;
    var sout = dUrl.search('#');
    if(sout != -1){
        dUrl = dUrl.substring(0,sout);
    }
    return dUrl;
}

//###############
//AJAX Jobs
var ortArray = new Object();
var posArray = new Object();
var actJobOptionId = new Object();
actJobOptionId.ort = new Object();
actJobOptionId.ort.id = ''
actJobOptionId.ort.uid = -1
actJobOptionId.pos = new Object();
actJobOptionId.pos.id = ''
actJobOptionId.pos.uid = -1
var jobArray
var vorhang


/*
 *
 *      desOrt = Bitte wählen Sie den Standort
        desPos = Bitte wählen Sie eine Position
        allOrt = alle Standorte
        allPos = alle Stellenangebote
        aktWahl = Auswahl aktueller Stellenangebote:
        suche = Das Ergebnis Ihrer Suche
        standorte = Standort(e):
        position = Position:
        mailText = Zur Online-Bewerbung
 *
 */
function makeJobLinks(){
    //Animation
    $$('.jobslist').set('html','<div id="vorhang"></div>'+$$('.jobslist').get('html'))
    vorhang = new Fx.Tween($$('#vorhang')[0],{duration:'500'});
    
    // ul liste
    writeOption($$('.jobsLeft ul')[0],jobArray.ort.i,'ort',ortArray,jobArray.lang.allOrt)
    writeOption($$('.jobsRight ul')[0],jobArray.pos.i,'pos',posArray,jobArray.lang.allPos)
}

function writeOption(idItem, items, zus, optionArray,text){
    var $content = '';
    //HTML wird umgestellt
    for(i=0 ; i <= items.count ; i++){
        if(i==0){
            $content += '<li><a class="all" id="'+zus+i+'">'+text+'</a></li>';
        }else{
            $content += '<li><a id="'+zus+i+'">'+items[i].name+'</a></li>';
        }
    }
    
    idItem.set('html',$content);
    
    // Events werden erstell
    for(i=0 ; i <= items.count ; i++){
        // Object mit Informationen zur Id
        optionArray[zus+i] = new Object();
        optionArray[zus+i].uid = items[i].uid;
        optionArray[zus+i].listid = idItem;
        optionArray[zus+i].zus = zus;
        
         //Clickevent
         $$('#'+zus+i).addEvent('click', function(event){
             optionItem = optionArray[this.get('id')];
             //alert(actJobOptionId[optionItem.zus]);
             if(actJobOptionId[optionItem.zus].id!=''){
                 $(actJobOptionId[optionItem.zus].id).set('class','');
             }
             // wenn uid != -1 dann werden links Ausgegraut
             if(optionItem.uid != -1){
                 $(optionItem.listid).set('class','chosed');
                 this.set('class','act');
                 actJobOptionId[optionItem.zus].id = this.get('id');
             }else{
                 $(optionItem.listid).set('class','');
             }
             actJobOptionId[optionItem.zus].uid = optionItem.uid;
             
             vorhang.cancel();
             $$('#vorhang').setStyles({'display':'block', 'visibility' : 'visible', 'opacity' : ' 0','height' : $$('.jobslist')[0].getStyle('height')})
             vorhang.start('opacity','1').chain(refreschJobListe);
             //refreschJobListe()

         })
    }
}

function refreschJobListe(){
    
    $$('.jobslist h4').set('html',jobArray.lang.suche)
    jobs = jobArray.jobs;
    content = '';
    for(i=0; i<jobs.count; i++){
        if(fitsOptions(jobs[i]['pos'],actJobOptionId.pos.uid) && fitsOptions(jobs[i]['ort'],actJobOptionId.ort.uid)){
            content += '<div class="foundItem"><a href="'+jobs[i].link+'">'+jobs[i].name+'</a>'
            content += '<div class="catrow">'+jobArray.lang.standorte+' '+getOptNames(jobs[i]['ort'],jobArray.ort.i)+'</div>';
            content += '<div class="catrow">'+jobArray.lang.position+' '+getOptNames(jobs[i]['pos'],jobArray.pos.i)+'</div>';
            content += '</div>';            
        }
    }
    content = content==''?jobArray.lang.keinFund:content;
    
    $$('#joblistentrys')[0].set('html',content);
    $$('#vorhang').setStyles({'display':'block', 'visibility' : 'visible', 'opacity' : ' 1','height' : $$('.jobslist')[0].getStyle('height')})
    vorhang.start('opacity','0').chain(function(){$$('#vorhang').setStyles({'display':'none'})});
    
}
function getOptNames(opt,names){
    ctmp = ''
    for(j = 0; opt[j]; j++){
        ctmp += j==0?'':', ';
        ctmp += names[opt[j]].name
    }
    return ctmp;
}
function fitsOptions(findIn,searchFor){
    
    if(searchFor==-1 || searchFor=='')    
        return true;
    
    for(j=0; findIn[j]; j++)
        if(findIn[j] == searchFor)    
            return true;
        

    return false
}
