var ie4 = document.all;
var doc = document;
var opera = window.opera;
var offsetX = 10;
var offsetY = -5;
var innerLayer,layer,x,y;
var doWheel = false;
var maxW = 500,lng = 'de';
var rc_preImages = new Array();
var rc_preloadCount = 0;
var rc_preloaded = new Array();
var i;
var rc_covered;
var rc_preloadTimer;
var rc_preloadImages = new Array();
var imageMaxWidth = 430;
var imageMaxHeight = 0;

function ajaxPreview(form)
{
  var tag=document.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=="editorStyleMini")
    {
      var inst = tinyMCE.getInstanceById(thisID);
//      $(thisID).value = inst.getBody().innerHTML;
      $(thisID).value = tinyMCE.get(thisID).getContent();
    }
  }
  var url = prevURL;
  var pars = Form.serialize(form);

  $('previewDIV').innerHTML = '<div style="width:100%;text-align:center">'
                             +' <img src="images/forum/loading.gif" alt="" />'
                             +'</div>';

  var myAjax = new Ajax.Updater('previewDIV', url, {method: 'post', postBody: pars});
}

function calendarSwitch(month, year)
{
  var myAjax = new Ajax.Updater('navKalender', 'index.php?module=calendar&op=SwitchCalendar&month=' + month + '&year=' + year, {method: 'get'});
}

function insertBBCodeTag(tagname,text,value)
{
  var input = document.forms['coolsus'].elements['message'];
  input.focus();
  var startTag;
  if(typeof value == "undefined" || value == '')
    startTag = "[" + tagname + "]";
  else
    startTag = "[" + tagname + "=" + value + "]";
  var endTag = "[/" + tagname + "]";
  var vText = "";
  if(typeof text != "undefined")
    vText = text;
  if(typeof document.selection != 'undefined')
  {
    var range = document.selection.createRange();
	var insText = range.text + vText;
	range.text = startTag + insText + endTag;
	range = document.selection.createRange();
	if (insText.length == 0)
	{
	  range.move('character', -endTag.length);
	}
	else
	{
	  range.moveStart('character', startTag.length + insText.length + endTag.length);
	}
	range.select();
  }
  else if(typeof input.selectionStart != 'undefined')
  {
    var start = input.selectionStart;
	var end = input.selectionEnd;
	var insText = input.value.substring(start, end) + vText;
	input.value = input.value.substr(0, start) + startTag + insText + endTag + input.value.substr(end);
	var pos;
	if (insText.length == 0)
	{
	  pos = start + startTag.length;
	}
	else
	{
	  pos = start + startTag.length + insText.length + endTag.length;
	}
	input.selectionStart = pos;
	input.selectionEnd = pos;
  }
}

function fontFormat(value,type)
{
  insertBBCodeTag(type,value);
}

function insertEmail()
{
  var email = prompt(str_enteremail,"");
  if(email == null || email == "")
    return;
  insertBBCodeTag("email",email);
}

function insertLink()
{
  var name = prompt(str_enterlinkname,"");
  if(name == null)
    return;
  var url = prompt(str_enterurl,"http://");
  if(url == null)
    return;
  if(name != "")
    insertBBCodeTag("url",name,url);
  else
    insertBBCodeTag("url",url);
}

function insertImage()
{
  var img = prompt(str_enterimg,"http://");
  if(img == null || img == "")
    return;
  insertBBCodeTag("img",img);
}

function insertQuote()
{
  var author = prompt(str_enterauthor,"");
  if(author == null)
    return;
  var quote = prompt(str_enterquote,"");
  if(quote == null)
    return;
  if(author != "")
    insertBBCodeTag("quote",quote,author);
  else
    insertBBCodeTag("quote",quote);
}

function smilie(form, code)
{
  var input = form;
  input.focus();
  var vText = code;
  if(typeof document.selection != 'undefined')
  {
    var range = document.selection.createRange();
	var insText = range.text + vText;
	range.text = insText;
	range = document.selection.createRange();
	if (insText.length == 0)
	{
	  range.move('character', insText.length);
	}
	else
	{
	  range.moveStart('character', range.start + insText.length);
	}
  }
  else if(typeof input.selectionStart != 'undefined')
  {
    var start = input.selectionStart;
	var end = input.selectionEnd;
	var insText = input.value.substring(start, end) + vText;
	input.value = input.value.substr(0, start) + insText + input.value.substr(end);
	var pos;
	if (insText.length == 0)
	{
	  pos = start;
	}
	else
	{
	  pos = start + insText.length;
	}
	input.selectionStart = pos;
	input.selectionEnd = pos;
  }
}

function addcolor(theform) {
  selectcolor = document.coolsus.color.value;
  bbcolor = "color";
  insertBBCodeTag(bbcolor, '', selectcolor);
  document.coolsus.color.selectedIndex = 0;
}

function addfont(theform) {
  selectfont = document.coolsus.font.value;
  bbfont = "font";
  insertBBCodeTag(bbfont, '', selectfont);
  document.coolsus.font.selectedIndex = 0;
}

function addsize(theform) {
  selectsize = document.coolsus.size.value;
  bbsize = "size";
  insertBBCodeTag(bbsize, '', selectsize);
  document.coolsus.size.selectedIndex = 0;
}

function getActiveText(msg) {
  selectedText = (document.all) ? document.selection.createRange().text : document.getSelection();
  if (msg.createTextRange) msg.caretPos = document.selection.createRange().duplicate();
  return true;
}

function more(id) {
  if(id == 0) return;
  else {
    if (document.getElementById("more"+id).style.display == "")
	{
      document.getElementById("more"+id).style.display = "block";
      document.getElementById("img"+id).src = "images/toggle_minus.gif";
	}
	else if (document.getElementById("more"+id).style.display == "none")
	{
      document.getElementById("more"+id).style.display = "block";
      document.getElementById("img"+id).src = "images/toggle_minus.gif";
  	}
  	else
  	{
      document.getElementById("more"+id).style.display = "none";
      document.getElementById("img"+id).src = "images/toggle_plus.gif";
  	}
  }
}

function Toggle_More(id) {
  if(id == 0) return;
  if (document.getElementById("ToggleRow_"+id).style.display == "none")
  {
    document.getElementById("ToggleRow_"+id).style.display = "block";
    document.getElementById("ToggleImg_"+id).src = "images/toggle_minus.gif";
  }
  else
  {
    document.getElementById("ToggleRow_"+id).style.display = "none";
    document.getElementById("ToggleImg_"+id).src = "images/toggle_plus.gif";
  }
}

function ToggleStats(id) {
  if (document.getElementById("ToggleRow_"+id).style.display == "none")
  {
    document.getElementById("ToggleRow_"+id).style.display = "block";
  }
  else
  {
    document.getElementById("ToggleRow_"+id).style.display = "none";
  }
}

function bbc_highlight(something, mode) {
  something.style.backgroundImage = "url(" + "" + (mode ? "images/forum/bbcode/_bbc_hoverbg.gif)" : "images/forum/bbcode/_bbc_bg.gif)");
}

function UnCryptMailto(s) {
  var n=0;
  var r="";
  for(var i=0; i < s.length; i++) {
    n=s.charCodeAt(i);
    if (n>=8364) {n = 128;}
    r += String.fromCharCode(n-(1));
  }
  return r;
}

function mailto(s) { //
  location.href='mailto:' + UnCryptMailto(s);
}

function captcha_reload() {
  var a= Math.floor(Math.random()*1000);
  document.captcha_image.src = "index.php?siteid=bW9kdWxlPWNhcHRjaGE="+a;
}

function checkSize(fieldname , counterid, limit) {
	var x = limit - fieldname.value.length;
		document.getElementById(counterid).firstChild.data = limit - fieldname.value.length;
}

function AddCodeFromWindow(thecode) {
	opener.document.coolsus.message.value += thecode + " ";
	top.close();
	opener.coolsus.message.focus();
}

function popup(vars,x,y) {
  var object=vars;
  pUP = window.open(object,"PicturePopup" + new Date().getTime(),"width=1,height=1,location=0,scrollbars=0,resizable=1,status=0");
  pUP.resizeTo(x,y);
  pUP.moveTo((screen.width-x)/2,(screen.height-y)/2);
  pUP.focus();
}

function googleMapsAPI3(overlay)
{
    var myOptions = {
		zoom: 6,
		center: new google.maps.LatLng(51.3167000000000000000000000000000, 9.5000000000000000000000000000000),
		mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("memberMap"), myOptions);

	function initMember(point,userInfo,team)
	{
    	if(team == 1) { 
    		var icon = new google.maps.MarkerImage('images/dot_member.gif', 
    			new google.maps.Size(10, 10), 
	    		new google.maps.Point(0,0), 
    			new google.maps.Point(3, 3), 
    			new google.maps.Size(10, 10)
	    	);
    	} else { 
    		var icon = new google.maps.MarkerImage('images/dot.gif', 
    			new google.maps.Size(10, 10), 
	    		new google.maps.Point(0,0), 
    			new google.maps.Point(3, 3),
    			new google.maps.Size(10, 10)
	    	);
		} 
	    var marker = new google.maps.Marker({
    	    position: point,
        	map: map,
	        icon: icon,
    	});
		google.maps.event.addListener(marker, 'mouseover', function() {
			return overlib('' + userInfo + '', FGCLASS, 'row1', BGCLASS, 'overlib', CAPTIONFONTCLASS, 'row2', TEXTPADDING, '0', RIGHT);
		});
		google.maps.event.addListener(marker, 'mouseout', function() { 
			nd(); 
		});
	}
	eval(overlay);
}

function generateFlash(objAttrs,params,embedAttrs){ var str='<object '; for (var i in objAttrs) str += i + '="' + objAttrs[i] + '" '; str += '>'; for (var i in params) str += '<param name="' + i + '" value="' + params[i] + '" /> '; str += '<embed '; for (var i in embedAttrs) str += i + '="' + embedAttrs[i] + '" '; str += ' ></embed></object>'; document.write(str);}function addFlash(){ var ret=getFlashArgs(arguments); generateFlash(ret.objAttrs,ret.params,ret.embedAttrs);}function getFlashArgs(args){ var ret=new Object(); ret.embedAttrs=new Object(); ret.params=new Object(); ret.objAttrs=new Object(); for (var i=0; i < args.length; i=i+2){ var currArg=args[i].toLowerCase(); switch (currArg){ case "pluginspage": ret.embedAttrs[args[i]]=args[i+1]; break; case "src": case "movie": ret.embedAttrs["src"]=args[i+1]; ret.params["movie"]=args[i+1]; break; case "codebase": ret.objAttrs[args[i]]=args[i+1]; break; case "width": ret.objAttrs[args[i]]=args[i+1]; ret.embedAttrs["width"]=args[i+1]; ret.params["width"]=args[i+1]; break; case "height": ret.objAttrs[args[i]]=args[i+1]; ret.embedAttrs["height"]=args[i+1]; ret.params["height"]=args[i+1]; break; case "scale": default: ret.embedAttrs[args[i]]=ret.params[args[i]]=args[i+1];}}ret.objAttrs["classid"]="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"; ret.embedAttrs["type"]="application/x-shockwave-flash"; return ret;}

( function() {
  if (typeof window.addEvent == 'undefined'){
    var evtHnd = '__EVT__HANDLER__';
    window.addEvent = function () {
    var obj, name, func;
	var args = arguments;
	if( args.length == 1 && typeof args[0] == 'object') {
      obj = args[0]['obj']; name = args[0]['evt']; func = args[0]['func'];
    } else {
      obj = args[0]; name = args[1]; func = args[2];
    }
    if(!obj) obj = window;
    if(!name) name = 'load';
    if( typeof func != 'function') return alert('Keine Funktionsreferenz!');
    if(!obj[evtHnd]) obj[evtHnd] = {};
    if(!obj[evtHnd][name]) obj[evtHnd][name] = [];
    obj[evtHnd][name].push( func );
    if(!obj['on' + name])  obj['on' + name] = function(e){
      if(!e) e = window.event;
	  if(!obj[evtHnd] || !obj[evtHnd][name]) return false;
	  var ret = false;
	  for(var i = 0; i < obj[evtHnd][name].length;i++)  ret = obj[evtHnd][name][i].call(obj, e);
	    return ret;
  	  };
      return true;
    };
    window.removeEvent = function (o, n, f) {
    if(o[evtHnd] && o[evtHnd][n]) {
  	  for(var i = 0; i < o[evtHnd][n].length;i++)
	    if(o[evtHnd][n][i])  {
	      o[evtHnd][n].splice(i, 1);
		  return true;
	    }
	  }
    }
  };
}())

function rc_loadImages(d, p, c) {
  for (i = 0; i < rc_preloadImages.length; i++) {
    rc_preImages[i] = new Image()
    rc_preImages[i].src = rc_preloadImages[i]
  }
  for (i = 0; i < rc_preImages.length; i++) {
    rc_preloaded[i] = false
  }
  rc_checkLoaded(d, p, c);
}

function rc_checkLoaded(d, p, c) {
  if (rc_preloadCount == rc_preImages.length) {
    rc_picsPreloaded(d, c);
  } else {
    for (i = 0; i <= rc_preImages.length; i++) {
      if (rc_preloaded[i] == false && rc_preImages[i].complete) {
        rc_preloaded[i] = true;
        rc_preloadCount++;
        document.getElementById(p).innerHTML = parseInt(rc_preloadCount / rc_preImages.length * 100) + "%";
      }
    }
    rc_preloadTimer = setTimeout("rc_checkLoaded('"+d+"', '"+p+"', '"+c+"')", 10)
  }
}

function rc_picsPreloaded(d, c) {
  document.getElementById(d).style.visibility = "hidden";
  document.getElementById(d).style.display = "none";
  document.getElementById(c).style.visibility = "visible";
  document.getElementById(c).style.display = "";
}

function resizeImages() {
  for (var i = 0; i < document.images.length ;i++){
    if (document.images[i].className == 'resizeImage') {
	  var imageWidth = document.images[i].width;
	  var imageHeight = document.images[i].height;
	  if ((imageMaxWidth != 0 && imageWidth > imageMaxWidth) || (imageMaxHeight != 0 && imageHeight > imageMaxHeight)) {
	    if (imageMaxWidth != 0) var div1 = imageMaxWidth / imageWidth;
		else var div1 = 1;
		if (imageMaxHeight != 0) var div2 = imageMaxHeight / imageHeight;
		else var div2 = 1;
		if (div1 < div2) {
		  document.images[i].width = imageMaxWidth;
		  document.images[i].height = Math.round(imageHeight * div1);
		}
		else {
		  document.images[i].height = imageMaxHeight;
		  document.images[i].width = Math.round(imageWidth * div2);
		}
		if (!isLinked(document.images[i])) {
		  var popupLink = document.createElement("a");
		  popupLink.setAttribute('href', document.images[i].src);
		  popupLink.setAttribute('target', '_blank');
		  popupLink.appendChild(document.images[i].cloneNode(true));
	      document.images[i].parentNode.replaceChild(popupLink, document.images[i]);
	    }
	  }
	}
  }
}

function isLinked(node) {
  do {
    node = node.parentNode;
	if (node.nodeName == 'A') return true;
  }
  while (node.nodeName != 'TD' && node.nodeName != 'BODY');
  return false;
}
