// GLOBAL VARS

  var doc = document, ie4 = document.all, opera = window.opera;

  var innerLayer, layer, x, y, doWheel = false, offsetX = 15, offsetY = 5;

  var tickerc = 0, mTimer = new Array(), tickerTo = new Array(), tickerSpeed = new Array();



// DZCP JAVASCRIPT LIBARY

  var DZCP = {



  //init

    init: function() {

      doc.body.id = 'dzcp-engine';

      var div = doc.createElement('div');

          div.setAttribute('id', 'infoDiv');

      doc.body.appendChild(div);



    	layer = $('infoDiv');

    	doc.body.onmousemove = DZCP.trackMouse;

      

   // refresh shoutbox

      if($('navShout')) window.setInterval("var myAjax = new Ajax.Updater('navShout', '../inc/ajax.php?i=shoutbox', {method: 'get', onFailure: function() { var myAjax = new Ajax.Updater('navShout', '../inc/ajax.php?i=shoutbox', {method: 'get' }); } });", 1500);

	// refresh teamspeak

      if($('navTeamspeakContent')) window.setInterval("var myAjax = new Ajax.Updater('navTeamspeakContent', '../inc/ajax.php?i=teamspeak', {method: 'get', onFailure: function() { var myAjax = new Ajax.Updater('navTeamspeakContent', '../inc/ajax.php?i=teamspeak', {method: 'get' }); } });", 1500);

    },



  // handle events

    addEvent : function(obj, evType, fn) {

      if(obj.addEventListener)

      {

        obj.addEventListener(evType, fn, false);

        return true;

      } else if (obj.attachEvent) {

        var r = obj.attachEvent('on' + evType, fn);

        return r;

      } else return false;

    },



  // track mouse

    trackMouse: function(e) {

      innerLayer = $('infoInnerLayer');

      if(typeof(layer) == 'object')

      {

        var ie4 = doc.all;

        var ns6 = doc.getElementById && !doc.all;

        var mLeft = 5;

        var mTop = -15;



      	x = (ns6) ? e.pageX-mLeft : window.event.clientX+doc.documentElement.scrollLeft - mLeft;

      	y = (ns6) ? e.pageY-mTop  : window.event.clientY+doc.documentElement.scrollTop  - mTop;



        if(innerLayer)

        {

        	var layerW = ((ie4) ? innerLayer.offsetWidth : innerLayer.clientWidth) - 3;

          var layerH = (ie4) ? innerLayer.offsetHeight : innerLayer.clientHeight;



        } else {

        	var layerW = ((ie4) ? layer.clientWidth : layer.offsetWidth) - 3;

          var layerH = (ie4) ? layer.clientHeight : layer.offsetHeight;

        }

        	var winW   = (ns6) ? (window.innerWidth) + window.pageXOffset - 12

                     : doc.documentElement.clientWidth + doc.documentElement.scrollLeft;



        	var winH   = (ns6) ? (window.innerHeight) + window.pageYOffset

                     : doc.documentElement.clientHeight + doc.documentElement.scrollTop;



          layer.style.left = ((x + offsetX + layerW >= winW - offsetX) ? x - (layerW + offsetX) : x + offsetX) + 'px';

          layer.style.top  = (y + offsetY) + 'px';

      }

    	return true;

    },



  // handle popups

    popup: function(url, x, y) {

      url = (url.indexOf('img=') == -1) ? url : '../popup.php?' + url;

      x = parseInt(x); y = parseInt(y) + 50;



      popup = window.open(url, 'Popup', "width=1,height=1,location=0,scrollbars=0,resizable=1,status=0");



      popup.resizeTo(x, y);

      popup.moveTo((screen.width - x) / 2, (screen.height-y) / 2);

      popup.focus();

    },



  // init Gameserver via Ajax

    initGameServer: function(serverID) {

      var myAjax = new Ajax.Updater('navGameServer_' + serverID, '../inc/ajax.php?i=server&serverID=' + serverID, {method: 'get', onFailure: function() {

          DZCP.initGameServer(serverID);        

        }

      });

    },



  // init Teamspeakserver via Ajax

    initTeamspeakServer: function() {

      var myAjax = new Ajax.Updater('navTeamspeakServer', '../inc/ajax.php?i=teamspeak', {method: 'get', onFailure: function() { DZCP.initTeamspeakServer(); }});

    },

  

  // submit shoutbox

    shoutSubmit: function() {

      var myAjax = new Ajax.Request('../shout/index.php?ajax', {method: 'post', postBody: Form.serialize('shoutForm'), onSuccess: function(s) {

        if(s.responseText) alert(s.responseText.replace(/  /g, ' '));

        var myAjax = new Ajax.Updater('navShout', '../inc/ajax.php?i=shoutbox', {method: 'get', onFailure: function() {

          var myAjax = new Ajax.Updater('navShout', '../inc/ajax.php?i=shoutbox', {method: 'get' });

        } });

        if(!s.responseText) $('shouteintrag').value = '';

      } });

      

      return false;

    },



  // switch userlist

    switchuser: function() {

      var url = doc.formChange.changeme.options[doc.formChange.changeme.selectedIndex].value;

      window.location.href = url

    },



  // Templateswitch

    tempswitch: function() {

      var url = doc.form.tempswitch.options[doc.form.tempswitch.selectedIndex].value;

      if(url != 'lazy') DZCP.goTo(url);

    },



  // go to defined url

    goTo: function(url, n) {

      if(n == 1) window.open(url);

      else window.location.href = url

    },



  // limit text lenthn

    maxlength: function(field, countfield, max) {

    	if(field.value.length > max) field.value = field.value.substring(0, max);

    	else                         countfield.value = max - field.value.length;

    },



  // handle info layer

    showInfo: function(info) {

      if(typeof(layer) == 'object')

      {

        layer.innerHTML =

          '<div id="hDiv">' +

          '  <table class="hperc" cellspacing="0" style="height:100%">' +

          '    <tr>' +

          '      <td style="vertical-align:middle">' +

          '        <div id="infoInnerLayer">' +

          '          <table class="hperc" cellspacing="0">'+info+'</table>' +

          '        </div>' +

          '      </td>' +

          '    </tr>' +

          '  </table>' +

          '</div>';



      //IE Fix

        if(ie4 && !opera)

        {

          layer.innerHTML += '<iframe id="ieFix" frameborder="0" width="' + $('hDiv').offsetWidth + '" height="' + $('hDiv').offsetHeight + '"></iframe>'

          layer.style.display = 'block';

        } else layer.style.display = 'block';

      }

    },



    hideInfo: function() {

      if(typeof(layer) == 'object')

      {

        layer.innerHTML = '';

        layer.style.display = 'none';

      }

    },



  // toggle object

    toggle: function(id) {

      if(id == 0) return;

      else {

        if($('more' + id).style.display == 'none')

        {

        	$('more' + id).style.display = '';

        	if($('img' + id)) $('img' + id).src = '../inc/images/collapse.gif';

        } else {

        	$('more' + id).style.display = 'none';

          if($('img' + id)) $('img' + id).src = '../inc/images/expand.gif';

        }

      }

    },



  // resize images

    resizeImages: function() {

    	for(var i=0;i<doc.images.length;i++)

      {

        var d = doc.images[i];



        if(d.className == 'content')

        {

      	  var imgW = d.width;

      	  var imgH = d.height;



      	  if(maxW != 0 && imgW > maxW)

          {

       		  d.width = maxW;

      		  d.height = Math.round(imgH * (maxW / imgW));



      		  if(!DZCP.linkedImage(d))

            {

              var textLink = doc.createElement("span");

      			  var popupLink = doc.createElement("a");



              textLink.appendChild(doc.createElement("br"));

              textLink.setAttribute('class', 'resized');

              textLink.appendChild(doc.createTextNode('auto resized to '+d.width+'x'+d.height+' px'));



              popupLink.setAttribute('href', d.src);

              popupLink.setAttribute('rel', 'lightbox');

              popupLink.appendChild(d.cloneNode(true));



              d.parentNode.appendChild(textLink);

      			  d.parentNode.replaceChild(popupLink, d);

      		  }

          }

        }

    	}

    },



    linkedImage: function(node) {

    	do {

    		node = node.parentNode;

    		if (node.nodeName == 'A') return true;

    	}

    	while(node.nodeName != 'TD' && node.nodeName != 'BODY');



    	return false;

    },



  // ajax calendar switch

    calSwitch: function(m, y) {

      var myAjax = new Ajax.Updater('navKalender', '../inc/ajax.php?i=kalender&month=' + m + '&year=' + y, {method: 'get'});

    },



  // ajax team switch

    teamSwitch: function(obj) {

      clearTimeout(mTimer[1]);

      var myAjax = new Ajax.Updater('navTeam', '../inc/ajax.php?i=teams&tID=' + obj, {method: 'get', onComplete: function() {

        DZCP.initTicker('teams', 'h', 60);

      }});

    },



  // ajax vote

    ajaxVote: function(id) {

      DZCP.submitButton('contentSubmitVote');

      var pars = Form.serialize('navAjaxVote');

      var myAjax = new Ajax.Updater('navVote', '../votes/index.php?action=do&ajax=1&what=vote&id='+id,{method: 'post', postBody: pars});



      return false;

    },



  // ajax forum vote

   ajaxFVote: function(id) {

     DZCP.submitButton('contentSubmitFVote');

  	 var pars = Form.serialize('navAjaxFVote');

  	 var myAjax = new Ajax.Updater('navFVote', '../votes/index.php?action=do&fajax=1&what=fvote&id='+id,{method: 'post', postBody: pars});



	 return false;

	},



  // ajax preview

    ajaxPreview: function(form) {

      var tag=doc.getElementsByTagName("textarea");

      for(var i=0;i<tag.length;i++)

      {

        var thisTag = tag[i].className;

        var thisID = tag[i].id;

        if(thisTag == "editorStyle" || thisTag == "editorStyleWord" || thisTag == "editorStyleNewsletter")

        {

          var inst = tinyMCE.getInstanceById(thisID);

          $(thisID).value = inst.getBody().innerHTML;

        }

      }



      var url = prevURL;

      var addpars = (form == 'cwForm') ? '&s1='+$('screen1').value+'&s2='+$('screen2').value+'&s3='+$('screen3').value+'&s4='+$('screen4').value : '';

      var pars = Form.serialize(form) + addpars;



      $('previewDIV').innerHTML = '<div style="width:100%;text-align:center">'

                                + ' <img src="../inc/images/admin/loading.gif" alt="" />'

                                + '</div>';



      var myAjax = new Ajax.Updater('previewDIV', url, {method: 'post', postBody: pars});

    },



  // confirm delete

    del: function(txt) {

      txt = txt.replace(/\+/g, ' ');

      txt = txt.replace(/oe/g, 'ö');



      return confirm(txt + '?');

    },



  // forum search

    hideForumFirst: function() {

      $('allkat').checked = false;

    },



    hideForumAll: function() {

    	for(var i = 0; i < doc.forms['search'].elements.length; i++)

    	{

    		var box = doc.forms['search'].elements[i];



        if(box.id.match(/k_/g))

    		  box.checked = false;

    	}

    },



  // Google Maps API

    googleAPI: function(overlay) {

    // init

      map = new GMap2($("memberMap"));

      map.addControl(new GLargeMapControl());

      map.addControl(new GMapTypeControl());



    // functions needed

      function initMember(point, userInfo, team)

      {

        var icon = new GIcon();



        if(team == 1) icon.image = '../inc/images/mappin_team.png';

        else icon.image = '../inc/images/mappin.png';



        icon.iconSize = new GSize(20, 34);

        icon.iconAnchor = new GPoint(10, 32);

        icon.infoWindowAnchor = new GPoint(10, 2);



        var marker = new GMarker(point,icon);

        GEvent.addListener(marker, "mouseover", function() { DZCP.showInfo(userInfo); });

        GEvent.addListener(marker, "mouseout", function() { DZCP.hideInfo(); });

        GEvent.addListener(marker, "click", function() { DZCP.hideInfo();map.showMapBlowup(marker.getPoint(),5); });

        map.addOverlay(marker);

      }



      function handle(delta)

      {

       	var s = '';

       	if (delta < 0) s += "down";

       	else           s += "up";

       	if(s == "down") map.zoomOut();

       	if(s == "up")   map.zoomIn();

      }



      var mt = map.getMapTypes();

      for (var i=0; i<mt.length; i++) {

        mt[i].getMinimumResolution = function() {return 4;};

        mt[i].getMaximumResolution = function() {return 17;};

      }



      map.setCenter(new GLatLng(51.200000, 12.50000), 6);

      /*map.setMapType(G_HYBRID_MAP);*/

      new GKeyboardHandler(map);

      map.addControl(new GMapTypeControl());

    // initialize overlays

      eval(overlay);

    },



  // disable submit button

    submitButton: function(id) {

      submitID = (id) ? id : 'contentSubmit';



      $(submitID).disabled = true;

      $(submitID).style.color = '#909090';

      $(submitID).style.cursor = 'default';



      return true;

    },



  // Newticker

    initTicker: function(objID, to, ms) {

     // set settings

      tickerTo[tickerc] = (to == 'h' || to == 'v') ? to : 'v';

      tickerSpeed[tickerc] = (parseInt(ms) <= 01) ? 10 : parseInt(ms);



     // prepare  object

      var orgData = $(objID).innerHTML;

      var newData  = '  <div id="scrollDiv' + tickerc +'" class="scrollDiv" style="position:relative;left:0;z-index:1">';

          newData += '    <table id="scrollTable' + tickerc +'" class="scrolltable"  cellpadding="0" cellspacing="0">';

          newData += '      <tr>';

          newData += '        <td onmouseover="clearTimeout(mTimer[' + tickerc +'])" onmouseout="DZCP.startTickerDiv(' + tickerc +')">';

          for(var i=0;i<10;i++) newData += orgData;

          newData += '        </td>';

          newData += '      </tr>';

          newData += '    </table>';

          newData += '  </div>';



      $(objID).innerHTML = newData;

     // start ticker

      window.setTimeout("DZCP.startTickerDiv("+tickerc+");",1500);

      tickerc++;

    },



    startTickerDiv: function(subID) {

      tableObj        = $('scrollTable' + subID);

      obj             = tableObj.parentNode;

      objWidth        = (tickerTo[subID] == 'h') ? tableObj.offsetWidth : tableObj.offsetHeight;

      newWidth        = (Math.floor(objWidth/2)*2)+2;

      obj.style.width = newWidth;



      DZCP.moveDiv(obj, newWidth, subID);

    },



    moveDiv: function(obj, width, subID) {

      var thisObj = (typeof(obj) == 'string') ? $(obj) : obj;

      if(tickerTo[subID] == 'h') thisObj.style.left = (parseInt(thisObj.style.left) <= (0-(width/2)+2)) ? 0 : parseInt(thisObj.style.left)-1 + 'px';

      else thisObj.style.top = (thisObj.style.top == '' || (parseInt(thisObj.style.top)<(0-(width/2)+6))) ? 0 : parseInt(thisObj.style.top)-1 + 'px';

      mTimer[subID] = setTimeout("DZCP.moveDiv('"+thisObj.id+"', " + width + ", " + subID + ");", tickerSpeed[subID]);

    },



  // ADD FLASH

    addFlash: function() {

      var ret = new Object(); ret.embedAttrs = new Object(); ret.params = new Object(); ret.objAttrs = new Object();

      var def = new Array('menu|false', 'quality|high', 'wmode|transparent', 'classid|clsid:d27cdb6e-ae6d-11cf-96b8-444553540000', 'type|application/x-shockwave-flash');



      for(var i=0; i<arguments.length; i=i+2)

      {

        ret.objAttrs[arguments[i]]   = arguments[i+1];

        ret.embedAttrs[arguments[i]] = ret.params[arguments[i]] = arguments[i+1];

        ret.params[arguments[i]]     = arguments[i+1];

      }



      for(var i=0; i<def.length; i++)

      {

        var s = def[i].split('|');

        if(!ret.params[s[0]])

        {

          ret.objAttrs[s[0]]   = s[1];

          ret.embedAttrs[s[0]] = s[1];

          ret.params[s[0]]     = s[1];

        }

      }



      var str = '<object ';

      for(var i in ret.objAttrs)   str += i + '="' + ret.objAttrs[i] + '" '; str += '>';

      for(var i in ret.params)     str += '<param name="' + i + '" value="' + ret.params[i] + '" /> ';  str += '<embed ';

      for(var i in ret.embedAttrs) str += i + '="' + ret.embedAttrs[i] + '" '; str += ' ></embed></object>';



      doc.write(str);

    }

  }



// load global events

  DZCP.addEvent(window, 'load', DZCP.init);

  DZCP.addEvent(window, 'load', DZCP.resizeImages);

  DZCP.addEvent(window, 'error', function() { return true; } );

  

  //////////////////////////////////////////////////////////



function setNavi(id)

{

  $('nnews').style.display = 'none';

  $('nmatches').style.display = 'none';

  $('nawards').style.display = 'none';

  $('nforum').style.display = 'none';

  

  $('n' + id).style.display = '';

}



function setInfo(id)

{

  $('mnews').style.display = 'none';

  $('mmatches').style.display = 'none';

  $('mawards').style.display = 'none';

  $('mforum').style.display = 'none';

  

  $('m' + id).style.display = '';

  

}



/////////////////////////////////////////////////////////////////

var isHover = new Array(); var clearMe = new Array(); var zIndex=1;

function changePic(id,hide)

{

  isHover['main'] = 0; isHover['clan'] = 0; isHover['server'] = 0; isHover['misc'] = 0;

  hideNavi('main'); hideNavi('clan'); hideNavi('server'); hideNavi('misc');



  if(!$(id).src.match(/\_hover/))

    $(id).src = $(id).src.replace(/\.jpg/, '_hover.jpg');



  if(hide != 0) {

    $(id).onmouseout = function() {

      if(isHover[this.id] != 1) this.src = this.src.replace(/\_hover\.jpg/, '.jpg');

    }

  } else {

    $(id).onmouseout = function() {

      isHover[this.id] = 0;

      hideNavi(this.id);

    }

  } 

}



function hideNavi(id,timer)

{



  if(timer == 1 && isHover[id] != 1)

  { 

    $('n_' + id).style.display = 'none';

    $(id).src = $(id).src.replace(/\_hover\.jpg/, '.jpg');

  } else window.setTimeout("hideNavi('"+id+"',1)",100);

}



//////////////////////////////////////////////////////////////////////////



function showNavi(id)

{

  changePic(id, 0);

  isHover[id] = 1;

  $('n_' + id).style.display = 'block';

  $('n_' + id).style.zIndex = zIndex; zIndex++;

  

  $('n_' + id).onmouseover = function() {

    var id = this.id.replace(/n\_/, '');

    isHover[id] = 1;

  }



  $('n_' + id).onmouseout = function() {

    var id = this.id.replace(/n\_/, '');

    changePic(id);

  }

}



var img = new Array();

function initNavigation()

{

  var tags = $('navi').getElementsByTagName('img');

  for(var i=0;i<tags.length;i++)

  {

    if(tags[i].className == 'h')

    {

      img[tags[i].id] = new Image();

      img[tags[i].id].src = tags[i].src.replace(/\.jpg/,'_hover.jpg');

    }

  }

}



////////////////////Mouse-Over/////////////////////



var subid = false;

var timeout = false;



function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}



function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}



function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}



function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}