var orgArray=new Array();

function loadOrgArray(){
	var url = '/GetOrganisationSuggestion;jsessionid=' + jsid;
    var pars = 'do=suggest'
    
	var myAjax = new Ajax.Request( url, {
	        method: 'get', 
	        parameters: pars, 
	 	    onComplete: loadOrgArrayCallback
	       });
}

function loadOrgArrayCallback(transport){
   		var msg = transport.responseText;
   		orgArray= msg.split("$");
   
   		if ($('organisationChooserDiv1'))
			$('organisationChooserDiv1').innerHTML=getOrganisationChooser(1);
		
		if ($('organisationChooserDiv2')) 
			$('organisationChooserDiv2').innerHTML=getOrganisationChooser(2);
		
		if ($('activeOrganisation').value>0){
			// set the active organisation in chooser 2 as selected
			org = $('activeOrganisation').value;
			//alert("active "+$('activeOrganisation').value);
		
			if ($('organisationChooserDiv2')){ 	
				for(i = 0; i < document.forms.orgChooserForm2.organisationSelect2.length  ; i++){
    				if (document.forms.orgChooserForm2.organisationSelect2.options[i].value==org){
    					document.forms.orgChooserForm2.organisationSelect2.options[i].selected=true;
    				}
 		   		}		
			}
			
			if ($('organisationChooserDiv1')){	
				for(i = 0; i < document.forms.orgChooserForm1.organisationSelect1.length  ; i++){
	    			if (document.forms.orgChooserForm1.organisationSelect1.options[i].value==org){
	    				document.forms.orgChooserForm1.organisationSelect1.options[i].selected=true;
	    			}
	 		    }		
			}
		}
}

function onSelectChange(event){
	//
}

function filterOrganisations(key_event){
	//num = $("activeOrganisationChooser").value;
	
	id="";
	var key=0;
	if (document.all) //Checks for IE 4.0 or later
    {
      key = event.keyCode;
      id = event.srcElement.id; 
    }
    else if (document.getElementById) //checks for Netscape 6 or later
    {
      key = key_event.which;
      id=key_event.target.id; 
    }
    else if (document.layers) //Checks for Netscape 4
    {
      key = key_event.which;
      id=key_event.target.id; 
    }	
    //alert("test"+num);
    
    num = id.split("_")[1];

    if(key=="40"){
	    $('organisationSelect'+num).focus();

	}else{
		select = "<select name='organisationSelect"+num+"' id='organisationSelect"+num+"' size='10' class='organisationSuggest' onKeyDown='javascript:onSelectChange(event, "+num+")'>";

		var query = $('organisationChooser_'+num).value.toLowerCase();
		
		qarray = query.trim().split(' ');

		if (qarray.length>0){

	for (var i=0; i<orgArray.length; i++){
		
		entry=orgArray[i].split('#')[0].replace(/,/g," ").replace(/-/g," ").toLowerCase();
		id = orgArray[i].split('#')[1];
		// für jedes element in qarray, schaue, ob es in entry i vorkommt.
		// wenn für alle ja: i ist ein treffer
		hit = 1;
 		for (var j=0; j<qarray.length;j++){
 		    
 			needle = qarray[j].trim();
 			if (needle.length>0){
 				heystack = entry;
 			
 				var matchPos = heystack.search(needle);
 	 			if (matchPos<0){
 					hit=0;
 				} 
 			}
 		}	
 		
 		// baue ein Akronym
 		earray = orgArray[i].split('#')[0].replace(/,/g," ").replace(/-/g," ").trim().split(' ');
 		acronym="";
 		//alert(earray);
 		for (var j = 0; j<earray.length; j++){
 			if (earray[j].charAt(0) == earray[j].charAt(0).toUpperCase()){
 				acronym = acronym + earray[j].charAt(0).toLowerCase();
 			}
 		}
 		
 		// teste das Akronym
 		for (var j=0; j<qarray.length;j++){
 		    
 			needle = qarray[j].trim();
 			if (needle.length>0){
 				heystack = acronym;
 			
 				var matchPos = heystack.search(needle);
 	 			if (matchPos>=0){
 					hit=1;
 				} 
 			}
 		}	
 		
		if (hit==1){
			//alert("hit"+ i + customarray[i] );
			
			// add to select box
			select = select + "<option value='"+id+"' >"+orgArray[i].split('#')[0]+"</option>";
			
		}
	}
	}
	select = select+ "</select>";
	$('organisationSelectDiv'+num).innerHTML = select;
	
	}
}


function getOrganisationChooser(num){
		
        html="<form name='orgChooserForm"+num+"'>";
        html+="<div id='organisationPane"+num+"'>";
    	html+="Filter: <input id='organisationChooser_"+num+"' size='30' maxlength='128' type='text' onkeyup='javascript:filterOrganisations(event)'> ";
		html+="</div>";
		html+="<div id='organisationSelectDiv"+num+"' >";

		html+="<select name='organisationSelect"+num+"' id='organisationSelect"+num+"' size='10' class='organisationSuggest' onKeyDown='javascript:onSelectChange(event, "+num+")'>";
		//alert(orgArray.length);
		for( i=0; i< orgArray.length;i++){
			html+= "<option value='"+orgArray[i].split('#')[1]+"' >"+orgArray[i].split('#')[0]+"</option>";
		}
		html+="</select>";
		html+="</div>";
		html+="</form>";
		
		return html;
}

