//---> all scripts written by Ulli Stemmeler/all scripts by: Ulli@Stemmeler.net

onerror=fehlermeldung;
var ScrollerX=0, ScrollDirection="R";

var myself=basename(location.toString()), myname=self.name.toString();

var ns4 = (document.layers) ? true:false
var op=(navigator.userAgent.toLowerCase().match("opera")) ? true:false
var ie = (document.all && !op) ? true:false
var ns6=(navigator.userAgent.toLowerCase().match("netscape6")) ? true:false
var ns7=(navigator.userAgent.toLowerCase().indexOf("netscape/7")>0) ? true:false
var moz=((navigator.userAgent.toLowerCase().match("mozilla"))&&(navigator.userAgent.toLowerCase().match("gecko"))&&(!ns6)&&(!ns7)) ? true:false
var icab=(navigator.userAgent.toLowerCase().match("icab")) ? true:false
var safari=(navigator.userAgent.toLowerCase().indexOf("safari")>-1) ? true:false
var modernbrowser=(document.getElementById) ? true:false
var ie4=(!modernbrowser && ie) ? true:false
var gurkenbrowser=ns4 ? true:false
var netscapefamily=(ns4 || ns6 || ns7 || moz) ? true:false
var modernnetscape=(ns6 || ns7 || moz) ? true:false
var notgurkenbrowser=(modernbrowser || ie4) ? true:false
var is_mac=(navigator.platform.toLowerCase().match("mac")) ? true:false
var is_win=(navigator.platform.toLowerCase().match("win")) ? true:false
var is_win_ie=((ie) && (navigator.platform.toLowerCase().match("win"))) ? true:false
var is_mac_ie=((ie) && (navigator.platform.toLowerCase().match("mac"))) ? true:false
var knowsComplete=(ie || (is_win && op)) ? true:false

var separator="\n"; 
if(is_mac_ie) { separator="\r"; }
if(is_win_ie) { separator="\r\n"; }
var DummyForEverything=false;

raederwerk("visible",myname);

if(myname.match("Content")) {
 top.copyrighthinweiswarschon=false; 
 if(notgurkenbrowser) {
        build_window_title();
       onload=zeigdich; 
  }
} 

if (ns4) {
var Breite_vor_resize = self.innerWidth;
var Hoehe_vor_resize  = self.innerHeight;
self.focus();
}

var mousex=0,mousey=0;
var windefstat=top.document.title;
window.defaultStatus=windefstat; 
var imgzoom=10;

function build_window_title() {
  txt=document.title; while(txt.match("'")) txt=txt.replace("'","");
  toptext=top.SiteName;
  if(!txt.match(toptext)) top.document.title=toptext+": "+txt;
}

function fehlermeldung() {
 // alert("So geht das nicht!");
 return false;
}

function zeigdich() {
  ;
}

function check_plugin(MType,AXControl) {
var check=0;
if(is_win_ie) { var iecheck=is_plugin(AXControl); if(iecheck) check=1; }
else if(is_mac_ie && ie4) { alert("Ihr Browser ist leider volllkommen veraltet!\nYour Browser is too old!"); return 0; }
else if (navigator.mimeTypes[MType]) {  if(navigator.mimeTypes[MType].enabledPlugin!=null) { check=1; } } 
return check;
}

function init_plugin_check() {
if(is_win_ie) dr("<script language=\"VBScript\">\n\nfunction is_plugin(AXObj)\n On Error Resume Next\n  is_plugin=(IsObject(CreateObject(AXObj)))\nend function\n</script>\n\n");
else dr("<script type=\"text/javascript\">\nfunction is_plugin(AXObj) {\nreturn false;\n}\n</script>\n\n");
}

function zurueckgehen() {
 if(opener) { opener.focus(); window.close(); }
 else { history.back(); }
}

function callback() {
  arrowcheck(); 
  loc=location.toString(); jawoll=false;
  with(top.frames.SiteMenu) {
    for(i=0;i<document.links.length;i++) {
       chk=document.links[i].toString();
       if(loc==chk) { angeklickt(document.links[i]); jawoll=true; break; }
    }
  }
 if(!jawoll && top.frames.SiteMenu.LastClicked) {
    top.frames.SiteMenu.LastClicked.id="NmLink"; top.frames.SiteMenu.LastClicked=false;
 }
}

function validEMail(adr) {
var check=/[a-zA-Z0-9_]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_]+/;
if(adr.toLowerCase().match("ä|ö|ü|ß| ")) return false;
return check.test(adr);
}

function validHomepage(adr) {
var check=/[a-zA-Z0-9-]+\.[a-zA-Z0-9]+/;
if(adr.toLowerCase().match("ä|ö|ü|ß| ")) return false;
if(adr.match("www")) { check=/[www]+\.[a-zA-Z0-9-]+\.[a-zA-Z0-9]+/; return check.test(adr); }
return check.test(adr);
}

function basename(file) { 
  file=file.toString();
  if(file.match("/")) file=file.split("/"); 
  else if(file.match(/\\/)) file=file.split("\\"); 
  else if(file.match(":")) file=file.split(":"); 
  file=file[(file.length-1)]; file=file.split("?"); file=file[0]; return file; 
}

function dirname(file) { 
  var nf=new Array(); file=file.toString().split("/");
  for(i=0;i<(file.length-1);i++) { nf[i]=file[i] }
  nf=nf.join("/"); return nf;
}

function get_parms(file) { return file.search.replace("?","&");  }

function get_GetVar(VarName,file) {
  var ln=file.toString(); var found="";
  if(ln.match(VarName+"=")) { found=ln.split(VarName+"="); found=found[1]; }
  if(found.match("&")) { found=found.split("&"); found=found[0]; }
  return found;
}

function fn(o,txt) { 
  if(!gurkenbrowser) o.title=txt; 
  window.status=txt; 
  return true 
}

function raederwerk(status,wer) {
     if(top.frames.SiteUnten.raederwerkeln) {
       top.frames.SiteUnten.raederwerkeln(status,wer);
     }
     else void window.setTimeout("raederwerk('"+status+"','"+wer+"')",1000);
}

function newID(o,nid) { o.id=nid; }

function dr(txt) { document.writeln(txt); }

function print_button() {
 if(self.print) { dr("<form><input type=button id=\"ButtBl\" value=\"drucken\" onclick=\"self.print()\"></form>\n"); }
}

function pageprint(titel,browser) {
 if(self.print) { if(confirm("Diese Seite ("+titel+") ausdrucken?")) { self.print(); } }
 else { alert("Leider ist Ihr Browser ("+browser+") nicht fähig,\nden Ausdruck dieser Seite ("+titel+")\nauf diesem Wege zu bewerkstelligen.\nDieses ist ein Manko, wie es den Internet-Explorer für Apple-McIntosh auszeichnet.\n\nBenutzen Sie bitte die im Browser zur Verfügung gestellte Druck-Option."); }
}

function fenster_groesse(br,ho) {
 if (is_win_ie) resizeTo(br+12,ho+32); 
 else if(is_mac_ie) resizeTo(br+30,ho+30);
 else if(op) resizeTo(br+12,ho+31);
 else { window.innerWidth=br; window.innerHeight=ho; }
}

function nada() { ; }

function ape(name,val,zeichen) {
// ape= add parm escaped, zeichen= ? oder &
return zeichen+name+"="+escape(val);
}

function init_mousepos() { 
        document.onmousemove = mouseMove
        if (netscapefamily|op) document.captureEvents(Event.MOUSEMOVE)
}

function mouseMove(e) {
  if(netscapefamily) { mousex=e.pageX; mousey=e.pageY }
  if(ie) { mousex=event.x+document.body.scrollLeft;  mousey=event.y+document.body.scrollTop; }
  if(op) { mousex=event.clientX; mousey=event.clientY; }
}

function zoomen(img) {
    imgzoom=10; if(img.zoomstat) imgzoom=img.zoomstat;
    limit=20; if(img.height<200) limit=50;
    if (event.wheelDelta >= 120) {  imgzoom--; }
    else if (event.wheelDelta <= -120) { imgzoom++; }
    if(imgzoom>limit) imgzoom=limit;
    if(imgzoom<4) imgzoom=4;
    img.zoomstat=imgzoom; window.status="Zoomfaktor: "+imgzoom+ "0%"
    img.style.zoom = imgzoom+"0%"; 
    if(self==top) { 
      if((((img.width/100)*(imgzoom*10))>img.width) || (((img.height/100)*(imgzoom*10))>img.height)) {
        fenster_groesse((img.width/100)*(imgzoom*10),(img.height/100)*(imgzoom*10));
      }
    }
}

function show_pic(url,Breite,Hoehe) {
  if(url.match("thumb-")) { url=url.replace("thumb-",""); }
  with(top) { if(ImageWindow)  ImageWindow.close(); ImageWindow=false; }
  top.ImageWindow=window.open("showpic.php"+ape("url",url,"?"),"Bild","left=0,top=0,width="+Breite+",height="+Hoehe+",resizable=yes");
  return false;
}

function download_pic(img) {
 with(top) { if(DownloadWindow)  DownloadWindow.close(); DownloadWindow=false; }
 top.DownloadWindow=window.open("downloadpic.php"+ape("url",img,"?")+ape("Lang",Lang,"&"),"Bild","left=0,top=0,width="+(screen.width-20)+",height="+(screen.height-40)+",resizable=yes");
 return false;
}

function soundwindow(file) {
  file=basename(file); loc=location.toString(); ziel="soundwindow.php"; ThisWin=top.AudioWindow;
  if(loc.match("service/")) { ziel="../programme/"+ziel; }
  else if(!loc.match("programme/")) { ziel="../"+ziel; }
  sw=ziel+"?RA="+top.ra+"&MP3="+top.MP3+"&file="+escape(file);

  if(typeof(ThisWin)=="object") { ThisWin.close(); top.AudioWindow=false; }
  top.AudioWindow=window.open(sw,"IslandFestival","left=0,top=0,width=360,height=190,resizable=no"); 
}

function downloadwindow(file) {
    doit=confirm("Die gewünschte Datei \""+basename(file)+"\" wird in einem separaten Fenster geöffnet.\nWas dann passiert hängt von der Konfiguration Ihres Systems bzw. Ihres Browsers ab.\n\nSpeichern Sie die Datei im neuen Fenster auf Ihrer Festplatte.");
    if(doit) top.DownloadWindow=window.open(file);
 //   file=basename(file); loc=location.toString(); ziel="downloadwindow.php"; 
 //   if(loc.match("service/")) { ziel="../programme/"+ziel; }
 //   sw=ziel+"?file="+escape(file);
 //   top.DownloadWindow=window.open(sw,"Island-Festival","left=0,top=0,width=360,height=190,resizable=no");
 //   window.setTimeout("top.DownloadWindow.close()",5000);
}

function bild_info(obj,nr,status) {
  status=(status==1) ? "visible":"hidden";
  textobj=get_obj("BildText"+nr);
   if(textobj) { 
     if(safari) { textobj.style.visibility="visible"; void window.setTimeout("hide_bildinfo("+nr+")",4000); }
     else  textobj.style.visibility=status; 
  }
}

function hide_bildinfo(nr) {
   textobj=get_obj("BildText"+nr);
   if(textobj)  textobj.style.visibility="hidden";  
}

function bildwechsel(bild,neuesbild) {
if(is_win_ie) {
  bild.filters.blendTrans.Apply();
  bild.src=neuesbild.src;
  bild.filters.blendTrans.Play();
}
  else { bild.src=neuesbild.src; }
}

function xborder() {
  var xfactor=800;
  if (netscapefamily) xfactor=window.innerWidth;
  if (op) xfactor=window.innerWidth-20;
  if (ie) xfactor=document.body.offsetWidth;
  return xfactor
}
 
function yborder() {
  var yfactor=600;
  if (netscapefamily) yfactor=window.innerHeight;
  if (op) yfactor=window.innerHeight-20;
  if (ie) yfactor=document.body.offsetHeight;
  return yfactor
}

function get_obj(nombre) { 
if(modernbrowser) { 
  var erg=document.getElementById(nombre); if(!erg) erg=document.getElementsByName(nombre)[0]
  return erg;  
}
if(ie4) { for(i=0;i<window.document.all.length;i++) {  var obj=window.document.all[i]; if(obj.name==nombre) { return obj; } } }
if(ns4 || document.layers) { for(i=0;i<window.document.layers.length;i++) { var obj=window.document.layers[i]; if(obj.name==nombre){ return obj; } 
    else { for(j=0;j<window.document.layers[i].layers.length; j++) { var obj=window.document.layers[i].layers[j]; 
    if(obj.name==nombre) { return obj; } } } }
}
return false;
}

function Copyright(o) {
 if(!o) o=this;
//  if(!top.copyrighthinweiswarschon) { alert("© Island-Festival, Köln"); top.copyrighthinweiswarschon=true; }
 o.onbeforecopy=Copyright;
 o.oncopy=Copied;
 event.returnValue=false;
 return false;
}

function Copied() {
event.returnValue=false; ty=new Date(); ty=ty.getYear();
linie="==============================";
einleitung="Text von www.Island-Festival.de:"+separator+linie+separator+separator;
anhang=separator+linie+separator+"© "+ty+", Island-Festival, Köln";
window.clipboardData.setData("Text", einleitung+document.selection.createRange().text+anhang);
}

function gurkencheck(warum,wer) {
if(document.layers) { if(document.layers && !wer.ns4) wer.location.reload(); }
}

function blurren(o) {
 if(notgurkenbrowser) o.blur();
}

// Formulareingabekontrollen:

function foc(o) {  if(notgurkenbrowser) o.id="InputFoc"; }

function bluPP(o) { 
 if(notgurkenbrowser) {
  if(o.value) {
    o.value=trim(o.value," "); if(o.type=="textarea") { o.value=trim(o.value,separator); }
    if(o.name.match("eMail|Homepage")) { while(o.value.match(" ")) { o.value=o.value.replace(" ",""); } }
    strip_tags(o);
    o.id="InputFull"; o.title="Hier steht: "+o.value;
    if(o.name.match("eMail") && !validEMail(o.value)) { o.id="InputFalta";  o.title="ungültige eMail-Adresse!"; }
    if(o.name.match("Homepage") && !validHomepage(o.value)) { o.id="InputFalta"; o.title="ungültige Homepage-Eingabe!"; }
  }
  else { o.id="Inputs"; o.title="Hier steht nichts"; }
 }
}

function how_much(o) { 
 strip_tags(o); c=o.value; z=c.split(separator); o.title=c.length+" Zeichen, "+z.length+" Zeilen"; window.status=o.title;
 if(z.length>MaxTextZeilenAnzahl) { 
   o.id="InputFalta"; tst=""; for(i=0;i<(MaxTextZeilenAnzahl-1);i++) { if(z[i]) tst+=z[i]+separator; }
   if(z[(MaxTextZeilenAnzahl-1)]) tst+=z[(MaxTextZeilenAnzahl-1)];
   c=tst; o.value=tst; alert("Das sind genügend Zeilen....");
 }
 if(c.length>MaxTextLaenge) { o.id="InputFalta"; alert("Das genügt, quantitativ gesehen...."); o.value=c.substring(0,1000); }
}

function strip_tags(o) {
t=o.value; 
ct=/<(.*)>/;  ol=/on(.*)=/;  js=/<script/; js2=/javascript:/; js3=/img src=/;

hw="Javascript ja, aber jeder auf seiner eigenen Website...";
hw2="Bilder ja, aber jeder auf seiner eigenen Website...";
if(t.match(js)) {  t=t.replace(js,"<bockmist"); o.value=t; alert(hw); }
if(t.match(js2)) {  t=t.replace(js2,"bockmist:"); o.value=t; alert(hw); }
if(t.match(js3)) {  t=t.replace(js3,"bild ursprung="); o.value=t; alert(hw2); }
if(t.match(ol)) {  t=t.replace(ol,"doingBockmist="); o.value=t; alert(hw); }
while(t.match(ct)) { t=t.replace(ct,""); o.value=t; }
}

function gb_formcheck() {
 mangel=""; mnr=0;  fe=false;
 thisform=document.forms.editor;  if(gurkenbrowser) { thisform=getformforgurke(); }
 with(thisform) {
   for(i=0;i<elements.length;i++) {
     e=elements[i];
     if(!e.value && !e.name.match("Homepage")) { 
        mnr++; e.id="InputFalta"; mangel+=mnr+". Das Feld "+e.name.replace("NXGB_","")+" will gefüllt werden!\n"; if(!fe) fe=e;
     }
     else {
       if(e.name.match("eMail") && !validEMail(e.value)) { 
          mnr++; e.id="InputFalta"; mangel+=mnr+". Das Feld "+e.name.replace("NXGB_","")+" ist unschön und falsch gefüllt!\n"; if(!fe) fe=e;
       }
       if(e.name.match("Homepage") && e.value && !validHomepage(e.value)) { 
         mnr++; e.id="InputFalta"; mangel+=mnr+". Das Feld "+e.name.replace("NXGB_","")+" ist unschön und falsch gefüllt!\n"; if(!fe) fe=e;
       }
       if(e.name.match("Text") && e.value) {
         c=e.value; z=c.split(separator); tst=""; for(i=0;i<(MaxTextZeilenAnzahl-1);i++) { if(z[i]) tst+=z[i]+separator; }
         if(z[(MaxTextZeilenAnzahl-1)]) tst+=z[(MaxTextZeilenAnzahl-1)];
         c=tst; z=c.split(separator); e.value=tst; cond=(c.length<MinTextLaenge && z.length<3) ? true:false;
         if(cond) { 
           mnr++; e.id="InputFalta"; mangel+=mnr+". Das scheint nicht gerade ein sinnvoller Gästebucheintrag zu sein (weniger als "+MinTextLaenge+" Zeichen)\n"; if(!fe) fe=e;
         }
       }
     }
   }

 if(mangel) { 
   mangel="Folgendes gibt es zu bemängeln:\n\n"+mangel+"\nSo wird das leider nichts mit dem Gästebuch-Eintrag..."; alert(mangel); if(fe) fe.focus(); 
  return false; 
 }
 Script.value=1;
 }
 return true
}

function anfrage_formcheck() {
 mangel=""; mnr=0;  fe=false;
 thisform=document.forms.editor;  if(gurkenbrowser) { thisform=getformforgurke();  }
  if(thisform) { 
   with(thisform) { 
     for(i=0;i<elements.length;i++) { 
       e=elements[i]; et=false; if(e.type) et=(e.type.toString().match("text")) ? true:false; 
       en=e.name; if(en) must=(!en.match("ONX_")) ? true:false;
       if(et && must) { 
         setcookie(e);
         if(!e.value && !en.match("Homepage")) { 
           mnr++; e.id="InputFalta"; mangel+=mnr+". Das Feld "+en.replace("NX_","")+" will gefüllt werden!\n"; if(!fe) fe=e;
         }
         else {
           if(en.match("eMail") && !validEMail(e.value)) { 
              mnr++; e.id="InputFalta"; mangel+=mnr+". Das Feld "+en.replace("NX_","")+" ist unschön und falsch gefüllt!\n"; if(!fe) fe=e;
           }
           if(en.match("Homepage") && e.value && !validHomepage(e.value)) { 
             mnr++; e.id="InputFalta"; mangel+=mnr+". Das Feld "+en.replace("NX_","")+" ist unschön und falsch gefüllt!\n"; if(!fe) fe=e;
           }
         }
       }
     }

   if(mangel) { 
     was="Anfrage";
     mangel="Folgendes gibt es zu bemängeln:\n\n"+mangel; 
     alert(mangel); if(fe) fe.focus(); 
     return false; 
   }
   Script.value=1;
  }
 }
 return true 
}

function setcookie(o) {
 if(navigator.cookieEnabled == true) {
  if(!o.name.match("Text")) {
   Name=o.name; Value=o.value; Name="C_"+Name.replace("NX_|NXGB_",""); 
   var ablauf = new Date(), bis = ablauf.getTime() + (365* 24 * 60 * 60 * 1000); ablauf.setTime(bis); 
   top.document.cookie = Name+"="+Value+"; expires=" + ablauf.toGMTString();
  }
 }
}

function getformforgurke() {
 thisform=document.forms.editor;
 if(!thisform) {
  for(i=0;i<window.document.layers.length;i++) {
    lay=window.document.layers[i]; if(lay.document.forms.length) return lay.document.forms[0];
    else { 
       for(j=0;j<lay.document.layers.length;j++) {
         slay=lay.document.layers[i]; if(slay.document.forms.length) return slay.document.forms[0];
       }
    }
  }
 }
 return thisform;
}

function trim(IPS,Zeichen) {
  if(typeof IPS != "string") { return IPS; }
  if(IPS.indexOf(Zeichen)==-1) { return IPS; }
  var RetVal=IPS, ch=RetVal.substring(0,Zeichen.length);
  while(ch==Zeichen) { RetVal = RetVal.substring(Zeichen.length,RetVal.length); ch=RetVal.substring(0,Zeichen.length); }
  ch=RetVal.substring(RetVal.length-Zeichen.length,RetVal.length);
  while(ch==Zeichen) { RetVal=RetVal.substring(0,RetVal.length-Zeichen.length); ch=RetVal.substring(RetVal.length-Zeichen.length,RetVal.length); }
  if(Zeichen==" ") { while(RetVal.indexOf(Zeichen+Zeichen)!=-1) {  RetVal=RetVal.replace(Zeichen+Zeichen,Zeichen);  } }
  return RetVal; 
} 

// Scroll-Actions:

function GetScrollX() {
    wert=0;
    if (window.pageXOffset) wert=window.pageXOffset;
    else if (document.body && document.body.scrollLeft) wert=document.body.scrollLeft;
    return wert;
}

function arrowcheck() {
  if(MSP) stat=(MSP>1) ? "visible":"hidden";
  else stat="hidden";
  raederwerk("hidden","egal");
  if(top.frames.SiteUnten) { PfeilStat("ScrollerRight",stat); PfeilStat("ScrollerLeft","hidden"); }
  else void window.setTimeout("arrowcheck()",1000);
}

function PfeilStat(wer,stat) {
   if(top.frames.SiteUnten.get_obj) {
     top.frames.SiteUnten.get_obj(wer).style.visibility=stat;
 //   stat=(stat=="hidden") ? "none":"inline"; top.frames.SiteUnten.get_obj(wer).style.display=stat;
   }
  else void window.setTimeout("PfeilStat('"+wer+"','"+stat+"')",1000);
}

function prep_select_unterseite(nr) {
  void window.setTimeout("select_unterseite("+nr+")",2000);
}

function select_unterseite(nr) {  
   if(top.frames.SiteContent.goToPage) top.frames.SiteContent.goToPage(nr);
   else void window.setTimeout("select_unterseite("+nr+")",1000);
}

function goToPage(Nr) {
  CUP=Nr; ScrollDirection="R";
  ScrollerMoving(((Nr-1)*EBR),1,(Nr*EBR),(Nr*20));
}

function scrollerAction(direction) {
  ScrollerX=GetScrollX(); f=0; ScrollDirection=direction;
  if(direction=="R" && CUP<MSP) { ScrollerX+=EBR; CUP++; CUP=Math.min(MSP,CUP);  f=1; }
  else if(direction=="L"&& CUP>1) { ScrollerX-=EBR; CUP--; CUP=Math.max(CUP,1); f=-1; }
  ScrollerMoving(ScrollerX,f,EBR,20);
}

function FastScrollerAction(direction) { 
  f=0; ScrollDirection=direction;
  if(direction=="R") { ScrollerX=EBR*MSP; CUP=MSP; PfeilStat("ScrollerRight","hidden");  f=1; }
  else if(direction=="L") { ScrollerX=0; CUP=1; PfeilStat("ScrollerLeft","hidden");  f=-1; }
  ScrollerMoving(ScrollerX,f,(EBR*(MSP-1)),(MSP*40));
}

function ScrollerWeg() {
     PfeilStat("ScrollerLeft","hidden"); PfeilStat("ScrollerRight","hidden");
}

function ScrollerCheck() {
     PfeilStat("ScrollerLeft",(CUP==1) ?"hidden":"visible");
     PfeilStat("ScrollerRight",(CUP==MSP) ?"hidden":"visible");
}

function ScrollerMoving(x,f,br,d) {
    ScrollerActionIsRunning=true; st=Math.round(br/d)*f; t=10;
    for(i=0;i<d;i++) { iv=i*t; void window.setTimeout("window.scrollBy("+st+",0)",iv); }
    iv=(d+1)*t;  void window.setTimeout("window.scrollTo("+x+",0); ScrollerCheck()",iv);
}



