var br;

var isIE=false;
var isFireFox=false;
if(navigator.userAgent.toLowerCase().indexOf('msie') > -1)    {isIE=true;}
if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {isFireFox=true;}

function key_press(evt) {
if (br == 'ie4') {ok(event.keyCode);}
else             {ok(evt.which);}
}

document.onmousedown = MouseAction;
var MouseXPos=0;
var MouseYPos=0;

function MouseAction(evt) {
if (!evt) {evt = window.event;}
if (document.getElementById) {MouseXPos = evt.clientX;
                              MouseYPos = evt.clientY;}
}

function VAL(e) {
if(typeof e == 'string')  {if(document.getElementById(e)) {return document.getElementById(e).value;}
                           else                           {return undefined;}
                          }
else                      {return e.value;}
}

function E(e) {
if(typeof e == 'string')  {if(document.getElementById(e)) {return document.getElementById(e);}
                           else                           {return null;}
                          }
else                      {return e;}
}


var SCR = function (){      // Screen Geometry
if(window.innerWidth) { // all browser but IE
        SCR.ViewWidth  = parseInt(window.innerWidth,10);
        SCR.ViewHeight = parseInt(window.innerHeight,10);
        }
else if(document.documentElement && document.documentElement.clientWidth) {  // for IE if DOCTYPE
        SCR.ViewWidth  = parseInt(document.documentElement.clientWidth,10);
        SCR.ViewHeight = parseInt(document.documentElement.clientHeight,10);
        }
else if(document.body.clientWidth) {    //IE6 without DOCTYPE
        SCR.ViewWidth  = parseInt(document.body.clientWidth,10);
        SCR.ViewHeight = parseInt(document.body.clientHeight,10);
        }
}

function set_opacity(obj_id,opac) {
if(br=='ie4') {document.getElementById(obj_id).style.filter='Alpha(opacity=' + parseFloat(opac)*100 + ')';}
else          {document.getElementById(obj_id).style.opacity=opac;}
}

function get_element_coords(e) {
var xPos=0;
var yPos=0;
xPos=e.offsetLeft;
yPos=e.offsetTop;
while (e.offsetParent) {xPos+=e.offsetParent.offsetLeft;
                        yPos+=e.offsetParent.offsetTop;
                        e=e.offsetParent;
                       }
var coord=new Array(xPos,yPos);
return coord;
}

function get_element_Ycoord(e) {
var yPos=0;
while (e.offsetParent) {yPos+=e.offsetParent.offsetTop;
                        e=e.offsetParent;
                       }
return yPos;
}


function place_layer(layer,pos_left,pos_top) {
if(brw=='all') {document.all[layer].style.top=pos_top;
               document.all[layer].style.left=pos_left;}
if(brw=='dom') {pos_left+='px'; pos_top+='px';
               document.getElementById(layer).style.left = pos_left;
               document.getElementById(layer).style.top=pos_top;}
}

function hide_layer(layer) {
place_layer(layer,-1500,-1500);
}

function newImage(arg) { if (document.images) {rslt = new Image();
                                               rslt.src = arg;
                                               return rslt;}
}
function preloadImages() {
var path;
        if (document.images) {for (var i=0;i<img_pre.length;i++) {path='./images/navigation/' + img_pre[i];
                                                                  imgs[i] = newImage(path);}
                              preloadFlag = true;
                             }
}

function do_nothin(){}

function remove_char(str,ch) {
var le=str.length;
var out='';
for (i=0;i<le;i++) {
        if ( str.charAt(i) != ch ) {out=out + str.charAt(i);}
        }
        return out;
}
function replace_char(str,ch1,ch2) {
var le=str.length;
var out='';
for (i=0;i<le;i++) {
        if ( str.charAt(i) != ch1 ) {out=out + str.charAt(i);}
        else                        {out=out + ch2;}
        }
return out;
}

function check_date_d(dat_obj) {
date_to_check=dat_obj.name;
var out='';
var d;
var m;
var y;
var dt=preproc_date(dat_obj);

dat_notok=0;
if (dt !='') {if(dt != '-')  {  da=new Array();
                                da=dt.split('.');
                                d = parseInt(da[0],10);
                                m = parseInt(da[1],10)-1;
                                y = parseInt(da[2],10);
                                if ( d >= 1 && m >= 0 && y > 1000 && y < 3000) {
                                        dx = new Date(y,m,d);
                                        if(dx.getDate() != d || dx.getMonth() != m || dx.getFullYear() != y) {dat_notok=1;}
                                        else                                                                 {dat_obj.value=dt;}
                                        }
                                else    {dat_notok=1;}
                        }
         else           {dat_notok=1;}
        }
if(dat_notok==1) {alert("Inkorrekte Datumsangabe! (Format: tt.mm.jjjj)");
                        dat_obj.value='';
                        dat_obj.focus();
                        return false;}
else             {return true;}
}

function preproc_date(obj) {
var d='';
var m='';
var y='';
var delim=false;
var da=obj.value;
var ok=true;

if(da!='') {
        var dat=new Array();
        da=replace_char(da,' ', '.');
        da=replace_char(da,',', '.');
        da=replace_char(da,'-', '.');
        if(da.indexOf('.') > -1) {delim=true;}
        var lda=da.length;
        var yt=0;

        if(delim==true) {if ((lda >= 3 && lda <=9) || lda ==10) {
                                        dat=da.split('.');
                                        d=dat[0];
                                        m=dat[1];
                                        if(dat[2]!=undefined && dat[2]!='') {y=dat[2];}
                                        else                                {var dx=new Date(); y=dx.getFullYear();}
                                        }
                         else           {ok=false;}
                        }
        else            {
                        var mt=0;
                        switch(lda) {
                        case 4:         d=da.substr(0,1);                       //no delim possible
                                        m=da.substr(1,1);
                                        y=da.substr(2,2);
                                        break;
                        case 5:
                                        mt=parseInt(da.substr(1,2),10);         //no delim possible
                                        if(mt > 12){d=da.substr(0,2);
                                                    m=da.substr(2,1);
                                                    y=da.substr(3,2);}
                                        else       {if (mt <10) {d=da.substr(0,2);
                                                                 m=da.substr(2,1);
                                                                 y=da.substr(3,2);
                                                                }
                                                    else        {d=da.substr(0,1);
                                                                 m=da.substr(1,2);
                                                                 y=da.substr(3,2);
                                                                }
                                                   }
                                        break;
                        case 6:         mt=parseInt(da.substr(2,2),10);
                                        if(mt > 12){d=da.substr(0,1);
                                                m=da.substr(1,1);
                                                y=da.substr(2,4);}
                                        else       {d=da.substr(0,2);
                                                m=da.substr(2,2);
                                                y=da.substr(4,2);}
                                       break;
                        case 7:        ok=false;
                                       break;
                        case 8:        d=da.substr(0,2);
                                       m=da.substr(2,2);
                                       y=da.substr(4,4);
                                       break;
                        default:       ok=false;
                                }
                        }

        if(ok==true) {yt=parseInt(y,10);
                      if (yt <= 99) {if(yt > 35) {y='19'+y;}
                                     else        {y='20'+y;}
                                    }
                     da=format_date(d,m,y);
                     return da;}
        else        {return '-';}
        }
else    {return da;}
}

function format_date(d,m,y) {
d=parseInt(d,10);
m=parseInt(m,10);
y=parseInt(y,10);
if(d<10) {d='0' + d;}
if(m<10) {m='0'+m;}
else     {if(m<13) {m=m + '';}
          else     {y++; m='01';}
         }
var output=d + '.' + m + '.' + y;
return output;
}

function compare_nos (ax,op,bx) {
if(op == '<=') {if(ax > bx) {return false;}
              }
if(op == '<') {if(ax >= bx) {return false;}
              }
if(op == '>') {if(ax <= bx) {return false;}
              }
if(op == '>=') {if(ax < bx) {return false;}
              }
if(op == '=') {if(ax != bx) {return false;}
              }
return true;
}

function compare_dates(a,op,b) {
ax=new Array();
bx=new Array();
ax=a.split('.');
bx=b.split('.');
var aa=parseInt(ax[2],10)*10000 + parseInt(ax[1],10)*100 + parseInt(ax[0],10);
var bb=parseInt(bx[2],10)*10000 + parseInt(bx[1],10)*100 + parseInt(bx[0],10);
return compare_nos(aa,op,bb);
}

function clean_txt_entry(obj,non_verbose) {
if(non_verbose == undefined) {non_verbose=false;}
var val=obj.value;
var old_val=val;
if (val!='') {var a=new Array("<",">","#","~","|");
              for(var i=0;i<a.length;i++) {val=replace_char(val,a[i],'');}
              obj.value=val;
              if(old_val!=val) {if(!non_verbose) {alert('Die Zeichen ' + a + ' dürfen nicht benutzt werden!'); obj.focus();}
                                return false;}
              }
return true;
}

function clean(obj) {
var tst=trim_left(obj.value);
var tst_2=tst.replace(/\\s/gm,'');
if(remove_char(tst_2,' ')==''){obj.value='';}
else                          {obj.value=tst;}
}


function trim(str) {
var xstr='';
var obj=false;
if(typeof str == 'object') {xstr=str.value; obj=true;}
else                       {xstr=str;}
if(xstr!='') {var ar=new Array();
              ar=xstr.split('');
              while (ar[0]==' ') {ar.shift();}
              while (ar[ar.length-1]==' ') {ar.pop();}
              xstr=ar.join('');
            }
if(!obj) {return xstr;}
else     {str.value=xstr;}
}

function trim_left(str) {
while (str.charAt(0) == ' ') {str=str.substr(1,str.length);}
return str;
}

function check_time (time_obj) {
var ok=0;
var time=time_obj.value;
if(time !='') {
        time=replace_char(time,' ', ':');
        time=replace_char(time,',', ':');
        time=replace_char(time,'.', ':');
        if (time.indexOf(':') == -1) {time=time + ':';}
        if (time.indexOf(':') >= 1) {
                var t=new Array();
                t=time.split(':');
                if(t[1]=='') {t[1]='0';}
                if(t[0].length==1) {t[0]='0' + t[0];}
                if(t[1].length==1) {t[1]=t[1] + '0';}
                var h=parseInt(t[0],10);
                var min=parseInt(t[1],10);
                if (h >=0 && h <=23 && min >=0 && min <=59) {ok=1;}
                }
        if(ok==0)    {alert('Inkorrekte Zeitangabe (Format: hh:mm)');
                      time_obj.focus();
                      return false;
                     }
        else         {time_obj.value=t[0] + ':' + t[1];
                      return true;
                     }
        }
}
function check_num (number,max,min,mode,dig) {
clean(number);
var n=number.value;
n=replace_char(n,',','.');
var x;
if(mode) {n=remove_char(n,"'");}
var y=n.length;
var ok=1;
var i=1;
var msg;
var nt='';
if(mode) {nt=' (ganzzahlig)';}
if(n !=''){
   if((n.indexOf('-')==0 || n.indexOf('+')==0) && y > 1) {i=2;}
   for(i;i<=y;i++) {
         x=n.substr(i-1,i);
         x=parseFloat(x);
         x=Math.floor(x);
         if (isNaN(x)) {ok=0;break;}
         }

   if(ok == 1) { if (max != null) {msg = " <= " + max;}
               if (min != null) {msg = " >= " + min;}
               if (max != null && min != null) {msg = min + " ... " + max;}
               if((max != null && n > max) || (min != null && n < min)) {alert('Bitte eine Zahl ' + msg + ' eingeben!');
                                    number.value='';
                                    number.focus();
                                    return false;}
               else               {if(mode) {n=parseInt(n,10); number.value=format_number(n,'');}
                                   else     {if(!dig||dig==0) {number.value=parseFloat(n);}
                                             else{e=Math.pow(10,dig);
                                                  number.value=Math.round(n*e)/e;}
                                            }
                                   return true;
                                  }
               }
   else        {alert('Bitte nur Zahlen eingeben ' + nt + '!');
               number.value='';
               number.focus();
               return false;}
   }
}
function format_number(no,sep) {
no='' + no;
var len = no.length;
var i;
var k=0;
var nn='';
var nx='';
if (len > 3)  {for (i=len-1;i >=0; i--) {k++;
                                         nx=no.charAt(i);
                                         nn = '' + nx + nn;
                                         if(k==3 && i>0) {nn=sep + nn; k=0;}
                                        }
              }
else          {nn=no;}
return nn;
}
function format_no(no,digs) {
no=''+no;
var lno=no.length;
var i;
if (lno < digs) {for (i=0;i < (digs-lno);i++) {no='0' + no;}
               }
return no;
}
function check_url(url) {
var re=/(^http:\/\/|^https:\/\/)/ig;
if (url.match (re)) {re=/(\w\.\w)/ig;
                     return url.match(re);
                    }
}

var wmain;

function go_tsvg_main() {
wmain=window.open('./tsvg_main.html','tsvg_main');
wmain.focus();
}
function go_url(url,wnd) {
        var ww=window.open(url,wnd);
}

var user_str='';
var news_flag=false;

function go_cookie(c_name, visitor_id,doc,incr_vis) {
var date_exp = new Date(2009,12,31);
var date_old = new Date(2000,12,31);
window.document.cookie= "test=0001; expires=" +  date_old.toGMTString();
window.document.cookie= "test=0001; expires=" +  date_exp.toGMTString();
var test=read_cookies('test');
if(test) {
        var visits=0;
        var last_visit;
        var v_id='0';
        var today=new Date();
        today_str=convert_utc_date(today.toGMTString());
        var c_content=read_cookies(c_name);
        if(c_content) {last_visit=get_hash_val(c_content,'#','date');
                       last_visit=convert_utc_date(last_visit);
                       visits=get_hash_val(c_content,'#','visits');
                       v_id=get_hash_val(c_content,'#','id');
                      }
        else          {news_flag=true;}
        if(!last_visit) {last_visit=today_str;}
        if(v_id=='0')   {v_id=visitor_id;news_flag=true;}
        visits=parseInt(visits,10);
        if(!visits || visits.isNaN)   {visits=0;news_flag=true;}
        if (last_visit != today_str)  {last_visit_disp=last_visit; news_flag=true;}
        else                          {last_visit_disp='heute';}
        if(incr_vis==1) {visits++;}
        doc.visits.value=visits;
        doc.visitor_id.value=v_id;

        user_str='Ihre Besuche: ' + visits + ' - Ihr letzter Besuch: ' + last_visit_disp;

        var c_val='#id~' + v_id + '#visits~'+ visits + '#date~' + new Date();
        window.document.cookie= c_name + "=" + escape(c_val) + "; expires=" +  date_exp.toGMTString();
        }
}

function read_cookies(c_name) {
c_name=c_name + "=";
var cookies=unescape(window.document.cookie);
return get_hash_val(cookies,'; ',c_name);
}

function get_hash_val(hash,delim,key) {
var arr=new Array();
arr=hash.split(delim);
var lk=key.length;
if (arr.length >0) {for (i=0;i<arr.length;i++) {if (arr[i].indexOf(key)==0) {return arr[i].substring(lk+1,arr[i].length);
                                                                             break;
                                                                            }
                                               }
                   }
}
function convert_utc_date(utc_date) {
var dd=new Date(Date.parse(utc_date));
var m=dd.getUTCMonth()+1;
var loc_date=dd.getUTCDate() + '.' + m + '.' + dd.getUTCFullYear();
return loc_date;
}

function write_user_data() {
window.document.getElementById('user_data').innerHTML=user_str;

if(show_news_flag=='1') {
        var top=parseInt(document.all['head_sect'].offsetHeight);
        if(document.all['head_sect_2']) {top=top+parseInt(document.all['head_sect_2'].offsetHeight);}
        place_layer('news_pic',355,top+15);
        }

if (news_flag) {show_news();}
change_banner();
}

function check_email(email) {
var cs=email.length;
if (email!='') {var m=eval('email.match(/[^a-z0-9_.@-]/ig)');
                if(m==null) {
                        pos_at=email.indexOf('\@');
                        if (pos_at > 0) {
                                var e=new Array();
                                e=email.split('\@');
                                if (e[0].indexOf('.') != 0 && e[0].lastIndexOf('.') != e[0].length-1) {
                                           if(e[1].indexOf('.') > 0) {
                                                var f=e[1].split('.');
                                                if(f[0].length>0 && f[1].length>1) {return true;}
                                                else                               {return false;}
                                                }
                                           else {return false;}
                                           }
                                else       {return false;}
                                }
                        else    {return false;}
                        }
                else    {return false;}
               }
else           {return false;}
return true;
}

function check_email_format(obj) {
var ok=true;
var email=obj.value;
if (email != '') {
        var pos_at=email.indexOf('@');
        if (pos_at <1) {ok=false;}

        if(ok) {
                var len=email.length;
                var dot_pre=0;
                var dot_after=0;
                var last_dot_pos=0;
                for(var i=0;i<len;i++) {if (email.charAt(i) == '.') {if (i < pos_at) {dot_pre++;}
                                                                else            {dot_after++;}
                                                                last_dot_pos=i;
                                                                }
                                }
                if(dot_pre   >1 )       {ok= false;}
                if(dot_after <1 )       {ok= false;}
                if(last_dot_pos == len-2) {ok=false;}
                }
        }

if(ok) {return true;}
else   {alert('Inorrektes E-Mail-Format!');
        obj.focus();
        return false;}
}

function show_pic (url,head,sub,res,w,h) {
if(url!='') {
                var scr_h=screen.availHeight*0.9;
                var scr_w=screen.availWidth*0.9;
                var attribs='location=no';
                if (w)  {if(w=='full'){attribs=attribs + ',width=' + scr_w + ',height=' + scr_h;}
                         else         {attribs=attribs + ',width=' + w + ',height=' + h;}
                        }
                else    {attribs=attribs + 'width=800,height=600';}
                if (res){attribs=attribs+',resizable=yes';}
                if(document.layers) {window.open(url,'',attribs);}
                else                {   var w;
                                        w=window.open('','',attribs);
                                        var d=w.document.open('text/html');
                                        d.writeln('<html><head><title>TSV Großhadern</title>');
                                        d.writeln('<link rel=stylesheet type=\'text/css\' href=\'./css/tsg.css\'></head><body>');
                                        d.writeln('<br><table>');
                                        d.writeln('<tr><td align=left><input class=btn_8 type=button value=\"schließen\" onClick=\'javascript:window.close()\'></td></tr>');

                                        d.writeln('<tr><td align=center><h3>' + head + '</h3></td></tr><td align=center><img src=\'' + url + '\' border=0></td></tr>');
                                        d.writeln('<tr><td align=center><b>' + sub + '</b></td></tr><tr><td>&nbsp;</td></tr>');
                                        d.writeln('<tr><td align=left><input class=btn_8 type=button value=\"schließen\" onClick=\'javascript:window.close()\'></td></tr>');
                                        d.writeln('</table></body></html>');
                                   }
            }
}

function y_offset() {
if(brw=='dom') {return pageYOffset;}
else           {return document.body.scrollTop;}
}

function x_offset() {
if(brw=='dom') {return pageXOffset;}
else           {return document.body.scrollLeft;}
}

function go_map(town, addr, title) {
var adc=town + ', ' + addr + ', Deutschland';
adc=escape(adc);
title=escape(title);
window.open("./map.plx?address=" + adc + "&map_title=" + title,w,'resizable=yes,scrollbars=yes,status=no,width=700,height=530');
}

function disp_map(dsn,tbl,id,aux_id) {
window.open("./map.plx?loc_type=" + dsn + "&loc_obj=" + tbl + "&loc_id=" + id + "&aux_id=" + aux_id,'tsvg_map','resizable=yes,scrollbars=yes,status=no,width=900,height=800');
}
