var form; // needs to be set by the page
var resultViewBackup = '';
var actionBackup = '';

function checkOutputOptions() {   
     if (getCheckedValue(document.formSearchAgent.boolExtendToNonRanked)==1) {
       resultViewBackup = document.formSearchAgent.resultView.value;
       actionBackup = document.formSearchAgent.action;
       document.formSearchAgent.resultView.value = 'selection';
       document.getElementById('trefferAlsListeDiv').innerHTML = document.getElementById('trefferAlsListeDiv').innerHTML.replace('Ranking','Liste');
       document.formSearchAgent.action = document.formSearchAgent.action.replace('ranking-',''); 
     } else {
       document.formSearchAgent.resultView.value = resultViewBackup;       
       document.formSearchAgent.action  = actionBackup;
       document.getElementById('trefferAlsListeDiv').innerHTML = document.getElementById('trefferAlsListeDiv').innerHTML.replace('Liste','Ranking');
     }
}


function getHits() {
	//var favIcon = document.getElementById('favBoxIcon'+id);
	//if (favIcon) favIcon.src = 'img/ajax/loading_indicator_tiny.gif';

	// if (document.formSearchAgent) form = document.formSearchAgent;
	// else if (document.formTender) form = document.formTender;  

	var params = "";

    // Result View
    params += "&rv=" + form.resultView.value;

    // Kriterien 
	if (form.sucheKompetenzen.checked) {
	   for (var i=1;i<=9;i++) {
            if (form.competences[i-1] && form.competences[i-1].checked) {
                params += "&competence"+i+"=1";
            }
       }
       params += "&innerConjunctionCompetences=" + getCheckedValue(form.innerConjunctionCompetences);
       params += "&outerConjunctionCompetences=" + getCheckedValue(form.outerConjunctionCompetences);
       params += "&sucheKompetenzen=1";
	}
	
	// BRanchen 
	if (form.sucheBranchen.checked) {
	   for (var i=1;i<=23;i++) {
            if (form.branches[i-1] && form.branches[i-1].checked) {
                params += "&branches"+i+"=1";
            }
       }
       params += "&innerConjunctionBranches=" + getCheckedValue(form.innerConjunctionBranches);
       params += "&outerConjunctionBranches=" + getCheckedValue(form.outerConjunctionBranches);
       params += "&sucheBranchen=1";
	}

    // Budgeteignung
        
    if (form.sucheBudgeteignung.checked) {
        // Budget
        // params += "&budget" + document.formSearchAgent.budget;        
        for (var i=1;i<=9;i++) {
            if (form.budgets[i-1] && form.budgets[i-1].checked) {
                params += "&budget"+i+"=1";
            }
        }
    }    
        
        
        // Gruppe
    if (form.sucheBudgeteignung.checked || (document.location.href.indexOf('ranking')>=0&&!form.boolExtendToNonRanked.checked) ) {        
        //if (form.boolGroupA && form.boolGroupA.checked) params += ("&grpA=1");
        //if (form.boolGroupB && form.boolGroupB.checked) params += ("&grpB=1");
        params += ("&grpA=1");
        params += ("&grpB=1");
        params += "&innerConjunctionBudgets=" + getCheckedValue(form.innerConjunctionBudgets);
        //params += "&innerConjunctionGroup=" + getCheckedValue(form.innerConjunctionGroup);
        //params += "&outerConjunctionBudgets=" + getCheckedValue(form.outerConjunctionBudgets);
        params += "&innerConjunctionGroup=OR";
        params += "&outerConjunctionBudgets=AND";
        params += "&sucheBudgeteignung=1";
    }


    // Auszeichnungen
    // Mitgliedschaften

    // Standort
    if (form.sucheStandort.checked) {
        // countries
	    for (var i=1;i<=3;i++) {
		    if (form.countries[i] && form.countries[i].checked) {
		        params += "&ctry"+(i-1)+"=1";
		    }
	    }
	    if (form.countries[0] && form.countries[0].checked) {
	         params += "&ctry3=1";
	    }
	    
	    // zips
	    for (var i=0;i<=9;i++) {
            if (form.zipsDe[i] && form.zipsDe[i].checked) {
                params += "&zipDe"+i+"=1";
            }
            if (form.zipsAt[i] && form.zipsAt[i].checked) {
                params += "&zipAt"+i+"=1";
            }
            if (form.zipsCh[i] && form.zipsCh[i].checked) {
                params += "&zipCh"+i+"=1";
            }
        }
        params += "&outerConjunctionLocation=" + getCheckedValue(form.outerConjunctionLocation);
        params += "&sucheStandort=1";    
    }

    // Kundenzufriedenheit
    if (form.sucheKundenzufriedenheit.checked) {    
        if (form.minimumGrade1) params += "&grade1=" + form.minimumGrade1.value;//(form.minimumGrade1.value-2)/2;
        if (form.minimumGrade2) params += "&grade2=" + form.minimumGrade2.value;//(form.minimumGrade2.value-2)/2;
        if (form.minimumGrade3) params += "&grade3=" + form.minimumGrade3.value;//(form.minimumGrade3.value-2)/2;
        if (form.minimumGrade4) params += "&grade4=" + form.minimumGrade4.value;//(form.minimumGrade4.value-2)/2;
        if (form.minimumGrade5) params += "&grade5=" + form.minimumGrade5.value;//(form.minimumGrade5.value-2)/2;
        if (form.minimumGrade6) params += "&grade6=" + form.minimumGrade6.value;//(form.minimumGrade6.value-2)/2;
        params += "&innerConjunctionGrades=" + getCheckedValue(form.innerConjunctionGrades);
        params += "&outerConjunctionGrades=" + getCheckedValue(form.outerConjunctionGrades);
        params += "&sucheKundenzufriedenheit=1";    
    }

    // Benchpark-Siegel
    if (form.sucheBenchparkSiegel.checked) {        
        if (form.boolGradeRequiredExcellent && form.boolGradeRequiredExcellent.checked) {
            params += "&boolGradeRequiredExcellent=1";
        }
        if (form.boolGradeRequiredVerygood && form.boolGradeRequiredVerygood.checked) {
            params += "&boolGradeRequiredVeryGood=1";
        }
        if (form.boolGradeRequiredGood && form.boolGradeRequiredGood.checked) {
            params += "&boolGradeRequiredGood=1";
        }
        if (form.boolGradeRequiredAny && form.boolGradeRequiredAny.checked) {
            params += "&boolGradeRequiredAny=1";
        }        
        params += "&innerConjunctionSeal=" + getCheckedValue(form.innerConjunctionSeal);
        params += "&outerConjunctionSeal=" + getCheckedValue(form.outerConjunctionSeal);
        params += "&sucheBenchparkSiegel=1";
    }

    // Empfehlbarkeit
    if (form.sucheEmpfehlbarkeit.checked) {
        if (form.minimumRecommendationGrade) {
            params += "&minimumRecommendationGrade=" + form.minimumRecommendationGrade.value;
        }
        params += "&sucheEmpfehlbarkeit=1";
    }    

    // Extend/Limit to Non/Ranked
    if (form.boolLimitToRanked && form.boolLimitToRanked.checked) {
        params += "&boolLimitToRanked=1";
    }
    if (form.boolExtendToNonRanked && form.boolExtendToNonRanked.checked) {
        params += "&boolExtendToNonRanked=1";
    }

	initServerUrl();

    var url = serverUrl + "ajax/?act=getSearchAgentHits" + params;

    // alert(url);

    httpRequest("GET",uncache(url),true,handleResponseHits);

    var hitsCell = document.getElementById('hits');
    if (hitsCell) hitsCell.innerHTML = '<img src=\"../../../img/ajax/loading_indicator_tiny.gif\">';   

}

//event handlers for XMLHttpRequest


function handleResponseHits(){

    var xmlReturnVal;
    var jsonReturnVal;

    if(request.readyState == 4){
        if(request.status == 200){

			jsonReturnVal = request.responseText;
			var hitsCell = document.getElementById('hits');
			if (hitsCell) hitsCell.innerHTML = jsonReturnVal;			
			
        } else {
            alert("Sorry, diese Funktion kann z.Zt. nicht ausgeführt werden.");
        }
    } //end outer if
}

    function markAllCountries() {
        for (var i=0;i<=3;i++) form.countries[i].checked=true;
        unmarkAllCountries();
        getHits();
    }

	
    function unmarkAllCountries() {
        for (var i=0;i<=3;i++) {
            if (!form.countries[i].checked) {
                setCheckedValue(form.radioAllCountries, 0);
            	if (i==1){
            		for (var j=0;j<=9;j++) form.zipsDe[j].checked=false;
            		setCheckedValue(form.radioAllZipsDe, 0);
            	}
            	if (i==2){
            		for (var j=0;j<=8;j++) form.zipsAt[j].checked=false;
            		setCheckedValue(form.radioAllZipsAt, 0);
            	}
            	if (i==3){
            		for (var j=0;j<=8;j++) form.zipsCh[j].checked=false;
            		setCheckedValue(form.radioAllZipsCh, 0);
            	}
            }else{
            	if (i==1){
            		markAllZips('De');
            		form.radioAllZipsDe.checked=true;
            	}
            	if (i==2){
            		markAllZips('At');
            		form.radioAllZipsAt.checked=true;
            	}
            	if (i==3){
            		markAllZips('Ch');
            		form.radioAllZipsCh.checked=true;
            	}
            }
        }
        getHits();
    }

    function markAllZips(countryKey) {
        if (countryKey=='De') {
          for (var i=0;i<=9;i++) form.zipsDe[i].checked=true;
          form.countries[1].checked=true;
        } else if (countryKey=='At') {
          for (var i=0;i<=8;i++) form.zipsAt[i].checked=true;
          form.countries[2].checked = true;
        } else if (countryKey=='Ch') {
          for (var i=0;i<=8;i++) form.zipsCh[i].checked=true;
          form.countries[3].checked = true;
        }
        getHits();
    }

    function unmarkAllZips(countryKey) {
    	var countryCheck = false;
        if (countryKey=='De') {
	        for (var i=0;i<=9;i++) { 
	            if (!form.zipsDe[i].checked) {
	                setCheckedValue(form.radioAllZipsDe, 0);
	            }else{
	            	countryCheck = true;
	            }
	        }
	        if (countryCheck){
	        	form.countries[1].checked=true;
	        }else{
	        	form.countries[1].checked = false;
	        }
        } else if (countryKey=='At') {
            for (var i=0;i<=8;i++) { 
                if (!form.zipsAt[i].checked) {
                    setCheckedValue(form.radioAllZipsAt, 0);
                }else{
	            	countryCheck = true;
	            }
            }
            if (countryCheck){
	        	form.countries[2].checked=true;
	        }else{
	        	form.countries[2].checked = false;
	        }
        } else if (countryKey=='Ch') {
            for (var i=0;i<=8;i++) { 
                if (!form.zipsCh[i].checked) {
                    setCheckedValue(form.radioAllZipsCh, 0);
                }else{
	            	countryCheck = true;
	            }
            }
            if (countryCheck){
	        	form.countries[3].checked = true;
	        }else{
	        	form.countries[3].checked = false;
	        }
        }
        getHits();
    }

    function initPage() {
        if (document.formSearchAgent) form = document.formSearchAgent;
        else if (document.formTender) form = document.formTender;
          
        checkKriterienanzeige(form.sucheKompetenzen,'tabKompetenzen')
        checkKriterienanzeige(form.sucheKompetenzen,'tabBranchen')
        checkKriterienanzeige(form.sucheBudgeteignung,'tabBudgeteignung');
        checkKriterienanzeige(form.sucheStandort,'tabStandort');
        checkKriterienanzeige(form.sucheBudgeteignung,'tabGruppenzugehoerigkeit');        
        checkKriterienanzeige(form.sucheKundenzufriedenheit,'tabKundenzufriedenheit');
        checkKriterienanzeige(form.sucheBenchparkSiegel,'tabSiegel');
        checkKriterienanzeige(form.sucheEmpfehlbarkeit,'tabEmpfehlungsneigung');
    }

    function checkKriterienanzeige(checkbox,tab) {
       // alert(checkbox+" "+tab);
        if (checkbox!=null) {
	        if (document.getElementById(tab)) {
	           if (checkbox.checked) show(document.getElementById(tab));
	           else hide (document.getElementById(tab));
	        }
        }

        if (form.sucheKompetenzen.checked &&
            (form.sucheBranchen.checked || form.sucheBudgeteignung.checked || form.sucheStandort.checked || form.sucheKundenzufriedenheit.checked
             || form.sucheBudgeteignung.checked || form.sucheBenchparkSiegel.checked || form.sucheEmpfehlbarkeit.checked )
            ) {
           show( document.getElementById('tabOuterConjunctionCompetences') );
        } else {
           hide( document.getElementById('tabOuterConjunctionCompetences') );
        }
        
        if (form.sucheBranchen.checked &&
            (form.sucheBudgeteignung.checked || form.sucheStandort.checked || form.sucheKundenzufriedenheit.checked
             || form.sucheBudgeteignung.checked || form.sucheBenchparkSiegel.checked || form.sucheEmpfehlbarkeit.checked )
            ) {
           show( document.getElementById('tabOuterConjunctionBranches') );
        } else {
           hide( document.getElementById('tabOuterConjunctionBranches') );
        }
        
        if (form.sucheBudgeteignung.checked &&
            (form.sucheStandort.checked || form.sucheKundenzufriedenheit.checked
             || form.sucheBenchparkSiegel.checked || form.sucheEmpfehlbarkeit.checked )
            ) {
           show( document.getElementById('tabOuterConjunctionBudgets') );           
        } else {
           hide( document.getElementById('tabOuterConjunctionBudgets') );           
        }

       
        
        if (form.sucheStandort.checked &&
            (form.sucheKundenzufriedenheit.checked
             || form.sucheBenchparkSiegel.checked || form.sucheEmpfehlbarkeit.checked )
            ) {
           show( document.getElementById('tabOuterConjunctionLocation') );
        } else {
           hide( document.getElementById('tabOuterConjunctionLocation') );
        }

        if (form.sucheKundenzufriedenheit.checked &&
            (form.sucheBenchparkSiegel.checked || form.sucheEmpfehlbarkeit.checked )
            ) {
           show( document.getElementById('tabOuterConjunctionGrades') );
        } else {
           hide( document.getElementById('tabOuterConjunctionGrades') );
        }

        if (form.sucheBenchparkSiegel.checked &&
            (form.sucheEmpfehlbarkeit.checked )
            ) {
           show( document.getElementById('tabOuterConjunctionSeal') );
        } else {
           hide( document.getElementById('tabOuterConjunctionSeal') );
        }

        /*
        if (form.sucheKompetenzen.checked && form.sucheBudgeteignung.checked) {            
            show( document.getElementById('tabOuterConjunctionCompetences') );
        } else {
            hide( document.getElementById('tabOuterConjunctionCompetences') );
        }
        */

        getHits();
    }