//Sortierung nach gefundenen Keyords im Text 

	function show_keyword_property(form_name, field_name, text, felder) {
		var mindest_text_laenge = 10;
		//win = new Window({className: "default", title: "Sample", width:200, height:150, destroyOnClose: true, recenterAuto:false}); 
		win = new Window({className: "mac_os_x", title: "Keyword-Eigenschaften", width:450, height:400, destroyOnClose: true, recenterAuto:false});
		strAusgabe = keyword_property(form_name, field_name, text, felder);
		if (strAusgabe.length >= mindest_text_laenge) {
			win.getContent().update(strAusgabe); 
			win.showCenter();
		} else {
			win.getContent().update("zu wenig Text"); 
			win.showCenter();
		}
	}
	
	function keyword_property(form_name, field_name, text, felder) {	
	
	    //Init-Variablen
	    var mindest_anz_gef_begriffe = 2;  //Mind.anzahl gefundener Begriffe im Text
	    var mindest_laenge_suchbegriff = 4;
	    
	    var anz_woerter = 0;
	    var keyw_pos = 0;
	    var keyw_prominence = 0;
		var erstes_vorkommen = 0;
		var array_ausgabe = new Array(); 
		var index_ausgabe_array = 0;  //bei 'zuFuss'-Berechnung
		var erg_array = new Array();
		var index_erg_array = 0;
		var erg_ausgabe = "";
		
		//HTML-/Spezial-Tags beseitigen
		var TextTagless = text_tagless(text);
		//alert(TextTagless); return
		
		//Text aufsplitten
		var woerter = TextTagless.split(" ");
	
		//zu wenig Text
		//if (woerter.length < mindest_text_laenge) {alert('zu wenig Text'); return}
		
		//Trim von Array-Werten (nach split)
		for (var i1 = 0; i1 < woerter.length; i1++) {
			woerter[i1] = trim_12(woerter[i1]);	
			if (woerter[i1].length > 1) anz_woerter++;
		}
		
		erg_ausgabe = "<br><br><font style='margin-left:20px;' size='-1'>W&ouml;rter im Gesamttext: <b>"+anz_woerter+"</b></font><br><br>";
		erg_ausgabe = erg_ausgabe + "<font size='-1' style='margin-left:20px;'><u>Formularfeld 'Meta-Keywords'</u></font><br>";
		erg_ausgabe = erg_ausgabe + "<table border='1' style='margin-left:20px;'>";
		erg_ausgabe = erg_ausgabe + "<tr><td><b>Wort</b></td><td><b>Vork.<br>im Text</b></td><td><b>Density [%]</b></td><td><b>Prominence</b></td></tr>";
		
		//-----------------------------------------------------------
		//Keyword-Eigenschaften fuer Woerter aus Feld 'meta_keywords' 
		//-----------------------------------------------------------
		var keyw_feld = document[form_name][field_name].value.split(",");
		
		//Trim von Array-Werten (nach split)
		for (var i1 = 0; i1 < keyw_feld.length; i1++) {
			keyw_feld[i1] = trim_12(keyw_feld[i1]);	
			//document.write("keyw_feld[i1]: "+keyw_feld[i1])+"<br>";  //TEST
		}
	
		for (var key_i1 = 0; key_i1 < keyw_feld.length; key_i1++) {
			
			//Keyworddensity mit RegExp
			var re_metakeyw = new RegExp(" "+keyw_feld[key_i1]+" ","gi");
			var Ergebnis_metakeyw = TextTagless.match(re_metakeyw);
		
			if (Ergebnis_metakeyw && keyw_feld[key_i1].length > 1) {
			
			    //Keyword-Prominence
			    keyw_pos = 1;
		    	for (var key_i2 = 0; key_i2 < woerter.length; key_i2++) {
		    	
		    		if (woerter[key_i2].length > 1) {
		    		
		    			//Wortphrasen als Keyword
		    			var keyw_feld_split = keyw_feld[key_i1].split(" ");
		    		
		    			if (keyw_feld_split.length > 1) {
		    				if ((keyw_feld_split[0].toLowerCase() == woerter[key_i2].toLowerCase()) && (keyw_feld_split[1].toLowerCase() == woerter[key_i2+1].toLowerCase())) {
		    					/*
								document.write("<br>SPLIT ("+keyw_feld[key_i1]+"): Laenge: "+keyw_feld_split.length+"<br>");
								document.write("keyw_feld_split[0]: "+keyw_feld_split[0]+"<br>");
								document.write("keyw_feld_split[1]: "+keyw_feld_split[1]+"<br>");
								document.write("keyw_pos: "+keyw_pos+"<br>");
								*/
		    		    		keyw_prominence = 1-(keyw_pos/anz_woerter);
		    		    		break;
		    		    	}
		    			} else {
		    				if (woerter[key_i2].toLowerCase() == keyw_feld[key_i1].toLowerCase()) {
		    					keyw_prominence = 1-(keyw_pos/anz_woerter);
		    					break;
		    				}
		    			}
		    			keyw_pos++;
		    			
		    		}
		    		
				}
			    
  				erg_ausgabe = erg_ausgabe + "<tr><td align='left'><b>"+keyw_feld[key_i1]+"</b></td><td align='center'><b>"+Ergebnis_metakeyw.length+"</b></td><td align='center'><b>"+Nachkomma((Ergebnis_metakeyw.length/anz_woerter)*100,3)+"</b></td><td align='center'><b>"+Nachkomma(keyw_prominence,3)+"</b></td></tr>";
				
			} else {
			    if (keyw_feld[key_i1].length > 1)
					erg_ausgabe = erg_ausgabe + "<tr><td><b>"+keyw_feld[key_i1]+"</b></td><td colspan='3' align='center'><b>kein Fund</b></td></tr>";
				else
					erg_ausgabe = erg_ausgabe + "<tr><td colspan='4' align='center'><b>keine Eingaben</b></td></tr>"
			}
			
		}

		erg_ausgabe = erg_ausgabe + "</table><br>";
	
		
		//---------------------------------------------------------------
		//Keyw.-Eigensch.: kompletten Text iterativ auf Vorkommen pruefen
		//---------------------------------------------------------------
		
		for (var i1 = 0; i1 < woerter.length; i1++) {
		    erstes_vorkommen = 1;
		    
		    //Pruefen auf vorheriges Vorkommen des Begriffs 
		    if (i1 == 1 && woerter[0].length>1 && (woerter[0].toLowerCase() == woerter[1].toLowerCase())) erstes_vorkommen = 0;
		    if (i1 > 1) {
		    	for (var i3 = 0; i3 < i1; i3++) {
		    		if (woerter[i1].toLowerCase() == woerter[i3].toLowerCase()) erstes_vorkommen = 0;	
				}
			}
			
			//bei erstem Vorkommen des Begriffes (keine Wiederholung)
			if (erstes_vorkommen == 1) {

                /*
				//zu Fuss
				anz_vorkommen = 1;
				for (var i2 = 0; i2 < woerter.length; i2++) {
					if (i1 != i2 && woerter[i1].toLowerCase() == woerter[i2].toLowerCase()) anz_vorkommen++;
				}
				//neues Array mit einmaligen Begriffen indizieren
				if (anz_vorkommen >= mindest_anz_gef_begriffe && woerter[i1].length >= mindest_laenge_suchbegriff) {
					array_ausgabe[index_ausgabe_array] = anz_vorkommen+" "+woerter[i1];
					index_ausgabe_array++;
				}
				*/
				
				//Keyword-Density mit RegExp
				//document.write(woerter[i1]+' xxx<br>');  //Testausgabe
				var re = new RegExp(" "+woerter[i1]+" ","gi");
				var Ergebnis = TextTagless.match(re);
				
				if (Ergebnis && Ergebnis.length >= mindest_anz_gef_begriffe  && woerter[i1].length >= mindest_laenge_suchbegriff) {
				
					//Keyword-Prominence
					keyw_pos = 1;
		    		for (var i7 = 0; i7 < woerter.length; i7++) {
		    			if (woerter[i7].length > 1) {
		    				if (woerter[i1].toLowerCase() == woerter[i7].toLowerCase()) {
		    					keyw_prominence = 1-(keyw_pos/anz_woerter)
		    					break;
		    				}	
		    				keyw_pos++;
		    			}
					}
				
  					erg_array[index_erg_array] = new Array();
  					erg_array[index_erg_array][0] = woerter[i1];
  					erg_array[index_erg_array][1] = Ergebnis.length;
  					erg_array[index_erg_array][2] = (Ergebnis.length/anz_woerter)*100;
  					erg_array[index_erg_array][3] = keyw_prominence;
  					index_erg_array++;
  				}
			}
		}
		
		/*
		//Ausgabe zu Fuss
		//array_ausgabe absteigend sortieren
		array_ausgabe.sort();
		array_ausgabe.reverse();
		
		for (var i4 = 0; i4 < array_ausgabe.length; i4++) {
	
			var array_split_dummy = array_ausgabe[i4].split(" ");
		    erg_ausgabe = erg_ausgabe + array_split_dummy[1]+": "+array_split_dummy[0]+"\n";
		}
		alert(erg_ausgabe);
		*/
		
		//Ausgabe mit RegExp
		erg_array.sort(arr_sort);  //Sortieren nach Anzahl
		erg_array.reverse();  //absteigende Anzahl
		
  		erg_ausgabe = erg_ausgabe + "<font size='-1' style='margin-left:20px;'><u>Felder: "+felder+"</u></font><br>";
  		erg_ausgabe = erg_ausgabe + "<table border='1' style='margin-left:20px;'>";
  		erg_ausgabe = erg_ausgabe + "<tr><td><b>Wort</b></td><td><b>Vork.<br>im Text</b></td><td><b>Density [%]</b></td><td><b>Prominence</b></td></tr>";
  		
  		for (var i6 = 0; i6 < erg_array.length; i6++) {
  			erg_ausgabe = erg_ausgabe + "<tr><td align='left'><b>"+erg_array[i6][0]+"</b></td><td align='center'><b>"+erg_array[i6][1]+"</b></td><td align='center'><b>"+Nachkomma(erg_array[i6][2],3)+"</b></td><td align='center'><b>"+Nachkomma(erg_array[i6][3],3)+"</b></td></tr>";
		}
		
		erg_ausgabe = erg_ausgabe + "</table>";
		
		//kein Ergebnis
		if (erg_array.length == 0) {
			erg_ausgabe = erg_ausgabe + "<font size='+1'><b>kein Ergebnis</b></font>";
		}
		
		//var erg_ausgabe_url = encodeURI("showKeywords.php?erg_ausgabe="+erg_ausgabe);
		//fenster_keyw = window.open(erg_ausgabe_url, "Keywordfunktionen", "width=350,height=400,left=100,top=200,status=no,scrollbars=yes,resizable=no");
		//fenster_keyw.focus();
		
		//alert(erg_ausgabe);
	
		//document.write(erg_ausgabe);
		
		return erg_ausgabe;
	}
	
	function Nachkomma(zahl,nk)
	{
	var fValue = parseFloat(zahl);
	var newText = "" + fValue;

	if(newText.charAt(0) == '.')  // Zahl < 1,00
  	newText = "0" + newText;

	if(newText.search(/\./) < 0)  // keine Nachkommastellen vorhanden
  	newText += ".";

	for(i = 0; i < nk; i++)       // egal wieviele Nachkommastellen
  	newText += "0";             // einfach "0en" anhaengen

	// je nach Bedarf math.round();

	if (nk != 0) nk++;

	newText = newText.substring(0,newText.search(/./) + nk);
	return newText;
}

	function arr_sort(x,y)
	{
 		if (x[1]<y[1]) {res=-1} else if(y[1]<x[1]){res=1} else{res=0}
 		return(res);
	}
	
	function trim_12(str) {
    	if(typeof(str)=="string") return str.replace(/^\s+|\s+$/g,"");
    	else return str;
    }
	
	//HTML-/Spezial-Tags beseitigen
	function text_tagless(strText) {
	
		//Probleme mit best. Tags im RexEXP !!!!!
		var arrayTags = new Array("<strong>","</strong>",",","\\.",";","\\?","/","'","\"","\\[","\\]","\\{","\\}","\\(","\\)");
		for (var i=0; i < arrayTags.length; i++) {
			var reg_tag = new RegExp(arrayTags[i],"gi");
			strText = strText.replace(reg_tag," ");	
		}
		
		//HTML-Tags entfernen
		var reg_html_tags  = /<\S[^><]*>/g;
		strText = strText.replace(reg_html_tags," ");
		
		//nachtraeglich Tags entfernen
		arrayTags = new Array("<",">");
		for (i=0; i < arrayTags.length; i++) {
			reg_tag = new RegExp(arrayTags[i],"gi");
			strText = strText.replace(reg_tag," ");	
		}
		
		return strText;
	}

