<!-- 
/*** Externe Datei mit Javascript Methoden für Schachfreunde Taunus e. V. ***/

/* Wiederaufbau der Seite nach Quereinstieg */
function quer () {
   if (top == self) self.location.href = '../index.htm';
   }
/* Öffnet separates Fenster einer beliebigen Seite */
function fenster(url,nr,breite,hoehe) {         
   neuesFenster = open(url,'Fenster'+nr,
     'height='+hoehe+', width='+breite+',scrollbars=yes,menubar=no,status=yes,resizable,toolbar=no,location=no,dependent=yes');
   }

/* Stadtplan in eigenem Fenster öffnen */
function stadtplan(stadt) {
   var url = " ";     
   if (stadt == 'S') {var url = "http://stadtplan.schwalbach.webdirekt.de/index2.php";}
   else if (stadt == 'K') {var url = "http://www.koenigstein.de/map";}
   return url;
   }

/* Vereins-DWZ Zahlen beim DSB: */
function dsbVerein(zps) {
   var url = "http://www.schachbund.de/dwz/db/verein.html?zps="+zps+"&amp;sort=alpha";
   open(url);
   }

/* Spiellokal */
function urlOrt(zps) {
	var url = "";
	switch (zps) {
		case 57001: url="http://maps.google.de/maps?q=b%C3%BCrgerhaus,+rossertstr+21,+eppstein&amp;hl=de&amp;ie=UTF8&amp;ll=50.141156,8.395121&amp;spn=0.009792,0.013926&amp;sll=50.15061,8.54061&amp;sspn=0.00979,0.013926&amp;vpsrc=0&start=0&hq=b%C3%BCrgerhaus,&hnear=Rossertstra%C3%9Fe+21,+Eppstein+65817+Eppstein,+Main-Taunus-Kreis,+Hessen&t=m&z=16";break;
		case 57003: url="http://maps.google.de/maps?q=stadthalle,+fl%C3%B6rsheim&amp;hl=de&amp;ie=UTF8&amp;ll=50.011104,8.423209&amp;spn=0.016051,0.022874&amp;sll=50.00884,8.45061&amp;sspn=0.008026,0.011437&amp;vpsrc=6&amp;t=m&amp;z=15";break;
		case 57005: url="http://maps.google.de/maps?q=frankfurter+str+46,+gro%C3%9F+gerau&amp;hl=de&amp;ie=UTF8&amp;sll=50.104203,8.541849&amp;sspn=0.00801,0.011437&amp;vpsrc=0&amp;t=m&amp;z=16";break;
		case 57007: url="http://maps.google.de/maps?q=Michael-Stumpf-Stra%C3%9Fe+5,+H%C3%B6chst,+Frankfurt+am+Main&amp;hl=de&amp;ie=UTF8&amp;ll=50.104203,8.541849&amp;spn=0.00801,0.011437&amp;sll=50.104091,8.542171&amp;sspn=0.00801,0.011437&amp;vpsrc=0&amp;t=m&amp;z=16";break;
		case 57008: url="http://maps.google.de/maps?q=Burgstr.+28,+Hofheim&amp;hl=de&amp;sll=50.15372,8.52849&amp;sspn=0.008002,0.011437&amp;vpsrc=0&ampt=m&amp;z=16";break;
		case 57013: url="http://maps.google.de/maps?q=ringstr+107,raunheim&amp;hl=de&amp;sll=50.013157,8.426912&amp;sspn=0.007873,0.014355&amp;vpsrc=0&amp;t=m&amp;z=16";break;
		case 57014: url="http://maps.google.de/maps?q=Am+Treff+11,+R%C3%BCsselsheim&amp;hl=de&amp;ie=UTF8&amp;ll=49.991657,8.426235&amp;spn=0.008029,0.011437&amp;sll=49.991674,8.426362&amp;sspn=0.008029,0.011437&amp;vpsrc=0&amp;t=m&amp;z=16";break;
		case 57026: url="http://maps.google.de/maps?q=gartenstr+2a,+bad+soden&amp;hl=de&amp;ll=50.140509,8.502259&amp;spn=0.007853,0.014355&amp;t=m&amp;z=16&amp;vpsrc=0";break;
		case 57033:	url="http://maps.google.de/maps?q=Bahnstr+11,+Schwalbach&amp;hl=de&amp;ll=50.150616,8.540604&amp;spn=0.007851,0.014355&amp;sll=50.15205,8.54135&amp;sspn=0.007851,0.014355&amp;vpsrc=0&amp;t=m&amp;z=16";break;
		case 570331:url="http://maps.google.de/maps?q=schwalbach,+marktplatz+1-2&amp;hl=de&amp;sll=51.151786,10.415039&amp;sspn=17.866606,27.509766&amp;vpsrc=0&amp;t=m&amp;z=16";break;
		case 570332:url="http://maps.google.de/maps?q=seniorentreff,+kugelherrnstr+6,+k%C3%B6nigstein&amp;hl=de&amp;ie=UTF8&amp;ll=50.183178,8.46282&amp;spn=0.004727,0.006963&amp;sll=51.151786,10.415039&amp;sspn=19.675485,28.520508&amp;vpsrc=6&amp;hq=seniorentreff,&amp;hnear=Kugelherrnstra%C3%9Fe+6,+K%C3%B6nigstein+61462+K%C3%B6nigstein,+Hochtaunuskreis,+Hessen&amp;t=m&amp;fll=50.183301,8.462777&amp;fspn=0.004727,0.006963&amp;z=17";break;
		default:	url="http://maps.google.de/maps?f=q&amp;source=s_q&amp;hl=de&amp;q=Kugelherrnstra%C3%9Fe+6,+61462+K%C3%B6nigstein+im+Taunus,+Hochtaunuskreis,+Hessen&amp;sll=51.151786,10.415039&amp;sspn=18.643079,22.192383&amp;ie=UTF8&amp;cd=1&amp;geocode=FRK8_QIdFCOBAA&amp;split=0&amp;hq=&amp;hnear=Kugelherrnstra%C3%9Fe+6,+61462+K%C3%B6nigstein+im+Taunus,+Hochtaunuskreis,+Hessen&amp;ll=50.183212,8.463442&amp;spn=0.004637,0.007929&amp;t=hamp;z=17";break;
	}
	if (url!="") {open(url);}
}

/** Zählwerk für Bildstrecken. Auf der aufrufenden Seite muss nr global definiert sein
 * 
 * @param {Object} op
 * @param {Object} min
 * @param {Object} max
 */ 

function bildnr(op,min,max) {
					   
	 if (op=="+") {nr++;}
	 else if (op=="-") {nr--;}
	 else   nr=-1;
	 
	 if (nr < min) {nr = max;};
	 if (nr > max) {nr = min;};
/* window.alert(min + " " + nr + " " + max); */

	 return nr;
}
/* Ausgabe von einem Frame in den Bereich frm1 mit url1 und und angehängtem Text(!)Stream (nr1)*/
function einFrame(url1,frm1,nr1) {
    Frame1=eval("parent." + frm1);  /* main */
    Frame1.location.href = url1 + nr1;
//    window.alert(url1 + nr1); 
}
 /* Ausgabe von zwei Frames */
function zweiFrame(url1,url2,frm1,frm2) {
    
    Frame1=eval("parent." + frm1);  /* Bsp. headline */
    Frame2=eval("parent." + frm2);  /* main */
    Frame1.location.href = url1;
    Frame2.location.href = url2;
    return;
}

/* Bildwechsel Funktion */
function Bildwechsel(Bildnr,Bildobj) {
   if (Bildnr != -1) {
      window.document.images[Bildnr].src = Bildobj.src;
      }
      return Bildnr
}

/* DATUMSFUNKTIONEN */ 

/** Cient-PC-Datum in der Form JJJJMMTT.
 *  Alte Version mit ursprünglicher Sigantur unter Verwendung der neuen Version 
 */
function heutejmt(){
	return heutejmt(null);
}

/** Client-PC-Datum in der Form JJJJMMTT plus/minus Anzahl Tage als Offset. 
 *  Sollen keine Offset-Tage verwendet werden ist null anzugeben 
 * @param {Object} tageOffset
 */

function heutejmt(tageOffset){
   var jetzt = new Date();
   if (tageOffset != null){
   	jetzt.setDate(jetzt.getDate()+tageOffset);  //Offsettage aufaddieren
   } 
   var Tag = jetzt.getDate();
   var Monat = jetzt.getMonth()+1;
   var Jahr = jetzt.getFullYear();
   return  Jahr * 10000 + Monat * 100 + Tag;    /* PC-Datum in JJJJMMTT */
   }
   
/* Client-PC-Datum in der Form TT.MM.JJJJ */
function heuteTMJ(){
   var jetzt = new Date();
   var Tag = jetzt.getDate();
   var Monat = jetzt.getMonth()+1;
   var Jahr = jetzt.getFullYear();
   return  Tag + '.' + Monat + '.' + Jahr;    /* PC-Datum in TT.MM.JJJJ */
   }

/* Client-PC-Datum Jahr.Monat */
function heuteJahrMonat(){
   var jetzt = new Date();
   var monat = jetzt.getMonth()+1;
   var jahr = jetzt.getFullYear();
   return  jahr + '.' + monat;    /* PC-Datum Monat */
   }

/** Editierte Rückgabe des 8-stelligen, numerischen Datums der Form 
 *  HHJJMMTT in deutscher Notation TT.MM.HHJJ 
 * @param {Object} datum
 */
function EditTMJ(datum){
			var jahr = datum.toString().substr(0,4);
			var monat = datum.toString().substr(4,2);
			var tag = datum.toString().substr(6,2);
			return tag+"."+monat+"."+jahr;
} 

/* POSITIONIEREN */ 

/** Ermittelung terminabhängiger Anker der diversen Turniere. 
 *  Im Index=0 des turnierabhängigen Arrays termin mit den Termindaten steht das Offset für die
 *  Anzahl Tage auf das heute-Datum. Positive Zahlen bedeuten, dass die Positionierung erst
 *  nach Erreichen des Termins wechselt, negative dagegen umgekehrt. Kalenderberechnung wird 
 *  berücksichtigt (Februar noch prüfen!).
 *  Der Anker wird dann aus dem Index des ersten Datums gebildet, für das gilt: 
 *  heute+Offset <= Arrayelement. 
 *  Auf den so gebildetetn Anker (Format #Rdindex) wird positioniert.
 *  
 * @param {Object} turnier
 */ 
function buildAnker(turnier){
	/* in Index=0 wird das Anzahl-Tage-Offset gespeichert */
	var termin = new Array();
	if (turnier == 'M'){
		termin = new Array(-10,20110925,20111009,20111106,20111204,20120129,20120212,20120312,20120429,20120513);
	} else if (turnier == '4'){
		termin = new Array(-15,20101017,20101114);
	} else if (turnier == 'V'){
		termin = new Array(-7,20110916,20111007,20111028,20111118,20111209,20120113,20120203,20120224,20120316);
	} else if (turnier == 'P'){
		termin = new Array(-60,20111111,20120217,20120420,20120520);
	} else if (turnier == 'B'){
		termin = new Array(-25,20110930,20111125,20120127,20120330);
	}
		
	var heute = heutejmt(termin[0]);  //heute-Datum mit Offsettage aus Array-Index 0
//	var heute = heutejmt(0); // ohne Offset
	var runde = 0;
//		alert(termin[1]+"<"+heutejmt(-14)+"<"+termin[termin.length-1]);

	/* Aufsetzpunkt innerhalb des Turniers mit Vorlauf 10 Tage beim Turnierstart */	
	if(termin[1]<=heutejmt(10)&&heute<=termin[termin.length-1]){
			
	   /* Termin aus Array in Abhängigkeit vom heutigen Tag ermitteln */
	 	 for (var i = 1; i < termin.length; ++i){
	 		 if (heute <= termin[i]){
//				alert(i+" "+heute+"<="+termin[i]);
				runde = i;
				break;
			}
		}
	}
//	alert("Rd".concat(runde));
	return '#Rd'.concat(runde);
}

/** Festlegung von Tag des Vereinsabend und Ort in abhängigkeit vom heute-Tag */
function Vereinsabend(heute) {
   var rueck = new Array(2);   /* Rückgabeparamter Index 0 = Spielort, 1 = Termin-edititiert */

  /* Termine und Ort in Array einlesen */
  /* K bzw. S für Königstein bzw. Schwalbach, k, s = außer der Reihe, - = kein Spielabend, */
   var terminort = new Array(
							20120106,"K",
							20120113,"S",
							20120120,"K",
							20120127,"S",
							20120203,"K",
							20120210,"S",
							20120217,"K",
							20120224,"S",
							20120302,"K",
							20120309,"S",
							20120316,"K",
							20120323,"S",
							20120330,"K",
							20120406,"-",
							20120413,"K",
							20120420,"S",
							20120427,"K",
							20120504,"S",
							20120511,"K",
							20120518,"S",
							20120525,"K"
							); 
   /* Spielabend aus Array in Abhängigkeit vom heutigen Tag ermitteln */
   for (var i = 0; i < terminort.length; i=i+2)
        if (heute <= terminort[i]){
			rueck[0] = terminort[i+1];  //Spielort
			rueck[1] = EditTMJ(terminort[i]); //Spieltermin, editiert
			return rueck;
		}
	 }

/** liefert Bild "Achtung" mit beschreibenden Text zurück
 * 
 * @param {Object} text
 */ 
function achtung(text){
	var bildverweis = "<td><img src=\"bilder/achtung.gif\" vspace=\"5\" alt=\"&1\" title=\"&1\"></td>";
	return bildverweis.replace(/&1/g,text);
}

/** parametrisierter Aufruf zur Unterscheidung von diversen Dateien
 * Der Aufruf erfolgt durch Anhängen eines zweistelligen Parameters aa mit '?aa'
 * an den Dateinamen dieser Seite
 * 
 */
function file()
{
  var aufruf = " ";
  if (window.location.search.substring(1,3)) {aufruf=window.location.search.substring(1,3)};
  return aufruf;
}

/** parametrisierter Aufruf zur Unterscheidung von Menü-Button aus ulxxx 
 * oder direkter Ansprung des ausgewählten Ankers aus vxxxkopf.
 * Der Aufruf erfolgt durch Anhängen eines zweistelligen Parameters aa mit '?aa'
 * an den Dateinamen dieser Seite 
*/
function seite()
{
  var aufruf = "  ";
  if (window.location.search.substring(1,3)== "XX") {aufruf=window.location.search.substring(1,3)};
  return aufruf;
}

//--> 
