// By Sebastian Werner sebastian-werner.net
// Licensed under GPLv2
function removeFocusBorders() {
	var tags = [ "img", "input", "a" ];
	for (var i=0; i<tags.length; i++) {
		var nodes = document.getElementsByTagName(tags[i]);
		for (var j=0; j<nodes.length; j++) {
			if (tags[i] != "input" || (nodes[j].getAttribute("type") != "text" && nodes[j].getAttribute("type") != "password" && nodes[j].getAttribute("type") != "file")) {
				nodes[j].onfocus = function() { if(this.blur) this.blur(); }
			}
		}
	}
}

// Cookie function by alistapart.com
function readCookie(name) {
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0){
    offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

function writeCookie(name, value) {
  var expire = "";
  expire = new Date((new Date()).getTime() + 18748800);
  expire = "; expires=" + expire.toGMTString();
  path   = "; path=/";
  document.cookie = name + "=" + escape(value) + expire + path;
}

function xBox(obj, content, id)
{
  this.toggle = function(lobj, iobj, name)
  {
    var status, newtarget, newimg;

    status = lobj.style.display;

    if (status == "" || status == "block" || status == "table-row")
    {
      newtarget = "none"
      newimg = iobj.getAttribute("asrc")
    }
    else
    {
      // Mozilla nimmt CSS2 konform "table-row" als Default... alle anderen sollten mit "block" zufrieden sein...
      if((navigator.product && navigator.product.toLowerCase() == "gecko") || window.opera) newtarget = "table-row"
      else newtarget="block"

      newimg = iobj.getAttribute("osrc")
    }

    // hack to support 2 cookies
    if (iobj.src.indexOf("help") != -1) name="help"
    else if (iobj.src.indexOf("mize") != -1) name="content"

    writeCookie(("box_" + this.boxname + "_" + this.id + "_" + name), newtarget)

    lobj.style.display = newtarget;
    iobj.src = newimg;
  }


  this.index = function()
  {
    // Bereiche Hilfe & Inhalt finden
    var trs = this.content.getElementsByTagName("tr");
    for (var j=0; j<trs.length; j++)
    {
      if (trs[j].className == "boxHelp") this.lhelp = trs[j]
      else if (trs[j].className == "boxContent") this.lcontent = trs[j];
    }


    // Schalter finden
    var tds = this.obj.getElementsByTagName("td");
    for (var j=0; j<tds.length; j++)
    {
      if (tds[j].className == "boxTopRight") this.lbuttons = tds[j];
    }

    var bts = this.lbuttons.getElementsByTagName("img");
    for (var j=0; j<bts.length; j++)
    {
      if (bts[j].getAttribute("job") == "help") this.bhelp = bts[j];
      else if (bts[j].getAttribute("job") == "content") this.bcontent = bts[j];
    }
  }

  this.addEvents = function()
  {
    // Initialisierung
    var inithelp = readCookie("box_" + this.boxname + "_" + this.id + "_" + "help")
    var initcontent = readCookie("box_" + this.boxname + "_" + this.id + "_" + "content")

    // Events zuweisen
    if (typeof(this.bhelp) != "undefined" && this.bhelp != null)
    {
    	 this.bhelp.setAttribute("osrc", this.bhelp.getAttribute("src"));
       this.bhelp.onclick = function(event) { copy.toggle(copy.lhelp, copy.bhelp); };


       if (inithelp == "" || inithelp == "none")
         this.toggle(this.lhelp, this.bhelp)
    }

    if (typeof(this.bcontent) != "undefined" && this.bcontent != null)
    {
    	 this.bcontent.setAttribute("osrc", this.bcontent.getAttribute("src"));
    	 this.bcontent.onclick = function(event) { copy.toggle(copy.lcontent, copy.bcontent) };

       if (initcontent == "none")
         this.toggle(this.lcontent, this.bcontent)
    }

  }


  this.id = id;
  this.obj = obj;
  this.content = content;

  this.boxname = this.obj.getAttribute("name");

  var copy = this;

  this.index();
  this.addEvents();
}

function traceBoxes()
{
  if (!document.getElementById) return 1;

  var tables = document.getElementsByTagName("table");
  var boxCache = new Array();
  var boxId = 0;

  for (var i=0; i<tables.length; i++)
  {
    // Nur Boxen
    if (tables[i].className != "box") continue;

    var pos = boxCache.length
    boxCache[pos] = new xBox(tables[i], tables[i].nextSibling, boxId);
    boxId++;

    i++;
  }
}


function xWindow() {
  this.__getValue = function(value)
  {
    var e1,e2,e3;

    e1 = eval("window.inner" + value)
    e2 = eval("document.documentElement.client" + value)
    e3 = eval("document.body.client" + value)

    return e1 ? e1 : e2 ? e2 : e3 ? e3 : none;
  }

  this.getWidth = function() {
    return this.__getValue("Width")
  }

  this.getHeight = function() {
    return this.__getValue("Height")
  }
}

_window = new xWindow();

function init()
{
  if(document.layers) return;

  setwin();
  //traceBoxes();
  removeFocusBorders();

  /*
  document.getElementById("content").style.marginRight="0px"

  boxes=document.getElementsByTagName("table")

  for(var i=0; i<boxes.length; i++)
  {
    if (boxes[i].className != "box") continue;
    boxes[i].style.width=boxes[i].offsetWidth-20
  }



  var f=document.getElementById("scrollcontainer")
  if (f)
  {
    f.style.width="300px"
    __fixscrollcontainer()
  }
  */


  window.onresize = function() { setwin(); }
}

function setwin()
{
  var value, con;

  con = document.getElementById("box")
  value = _window.getHeight() - 87 - 22;

  // fix ie
  if (document.all && !window.opera) value -= 30;

  con.style.height = value + "px";
}


function previewfix(main, sel)
{
  sel.style.display = "inline";
  sel.style["float"] = "left";
  main.style.display = "inline";
  main.style["float"] = "right";

  sel.style.verticalAlign = "middle";
  main.style.verticalAlign = "middle";
  
 	main.style.border = "1px solid #000000";
 	main.style.padding = "1px";
 	main.style.backgroundColor = "#FFFFFF";
}

function findsel(name)
{
  var sels = document.getElementsByTagName("select");
  var sel;

  for (var i=0; i<sels.length; i++)
  {
    if (sels[i].name == name)
    {
      sel = sels[i];
      break;
    }
  }

  return sel;
}

function fontpreview()
{
  var sel = findsel("td_font_family")
  var main = document.getElementById("fontpreview_frame");
  
  main.innerHTML="ABCDEFGabcdefg123456"

  previewfix(main, sel);

  var newfont;
  if (sel.value=="times") newfont="'Times New Roman', Times, serif"
  else if (sel.value=="tresbuchet") newfont="'Trebuchet MS', Geneva, Arial, Helvetica, sans-serif"
  else if (sel.value=="tahoma") newfont="Tahoma, Arial, Helvetica, sans-serif"
  else if (sel.value=="verdana") newfont="Verdana, Geneva, Arial, Helvetica, sans-serif"
  else if (sel.value=="palatino") newfont="'Palatino Linotype', 'Times New Roman', Times, serif"
  else newfont="Arial, Helvetica, sans-serif"

  main.style.fontFamily = newfont;

  return;
}

function colorpreview(array)
{
  if (array) _cp_array = array;
  
  var el = new Array();
  var sel = findsel("td_style");
  
 	var main = document.getElementById("colorthemepreview_frame");
  previewfix(main, sel);
 	main.innerHTML = "";
  main.style.fontSize = "15px";
  // because the last div creates a one pixel right border so the sum is otherwise 2 pixel
  main.style.paddingRight = "0px";

  for (var i=0; i<_cp_array.length; i+=2)
  {
  	if (typeof(_cp_array[i]) == "undefined") break;

  	var id=_cp_array[i];

    if (id == sel.value)
    {
    	var ar = _cp_array[i+1]

    	for (var j=0; j<ar.length; j++)
    	{
        el[j] = document.createElement("div");
        el[j].style.backgroundColor = "#" + ar[j];
        el[j].appendChild(document.createTextNode(String.fromCharCode(160)));
        
        el[j].style.borderRight = "1px solid #FFFFFF";

        el[j].style.display = "inline";
        el[j].style["float"] = "left";

        main.appendChild(el[j]);
    	}

      break;
    }
  }
}


<!-- UGLY HARDCODED -->
function handlefieldtype()
{
  var obj=document.getElementById("select_fieldtype")

  var i1 = document.getElementById("tr_confcheck1");
  var i2 = document.getElementById("tr_confcheck2");
  var m1 = document.getElementById("tr_confmltext");
  var s1 = document.getElementById("tr_confselect");

  if (obj.value == "text")
  {
    if (i1 != null) i1.style.display = "";
    if (i2 != null) i2.style.display = "";
    if (m1 != null) m1.style.display = "none";
    if (s1 != null) s1.style.display = "none";

    if (!i1) return;

    var f1 = document.getElementById("check_searchfor");
    var f2 = document.getElementById("check_emailreceiver");
    var f3 = document.getElementById("check_emailsender");
    var f4 = document.getElementById("check_number");
    var f5 = document.getElementById("check_email");
    var f6 = document.getElementById("check_url");
    var f7 = document.getElementById("check_text");

    var checked = false;
    for (var i=1; i<8; i++)
    {
      obj = eval("f" + i)
      if (obj != null)
        if (obj.checked) { checked = true; break }
    }

    if (!checked) f7.checked = true;
  }
  else if (obj.value == "mltext")
  {
    if (i1 != null) i1.style.display = "none";
    if (i2 != null) i2.style.display = "none";
    if (m1 != null) m1.style.display = "";
    if (s1 != null) s1.style.display = "none";

    if (!m1) return;

    var f1 = document.getElementById("ml_mltext");
    var f2 = document.getElementById("ml_emailcontent");

    var checked = false;
    for (var i=1; i<3; i++)
    {
      obj = eval("f" + i)
      if (obj != null)
        if (obj.checked) { checked = true; break }
    }

    if (!checked) f1.checked = true;
  }
  else if (obj.value == "radio")
  {
    if (i1 != null) i1.style.display = "none";
    if (i2 != null) i2.style.display = "none";
    if (m1 != null) m1.style.display = "none";
    if (s1 != null) s1.style.display = "";
    
    if (!s1) return;        

    var f1 = document.getElementById("select_checkbox");
    var f2 = document.getElementById("select_radio");
    var f3 = document.getElementById("select_list");

    var checked = false;
    for (var i=1; i<4; i++)
    {
      obj = eval("f" + i)
      if (obj != null)
        if (obj.checked) { checked = true; break }
    }

    if (!checked) f1.checked = true;
  }
  else
  {
    if (i1 != null) i1.style.display = "none";
    if (i2 != null) i2.style.display = "none";
    if (m1 != null) m1.style.display = "none";
    if (s1 != null) s1.style.display = "none";
  }
}


// Fix scroll container
function __fixscrollcontainer()
{
  // Nur im Internet Explorer
  if (document.all && navigator.userAgent.toLowerCase().indexOf("opera") == -1 && navigator.userAgent.toLowerCase().indexOf("konqueror") == -1)
  {
    lw=290
    tw=18

    var f=document.getElementById("scrollcontainer")
    if (f)
    {
      f.style.width=(document.body.offsetWidth - lw) + "px";

      // Tabellenbreite = Frame-Breite - Scrollbarbreite
      if (f.firstChild.nodeName.toLowerCase()=="table")
        f.firstChild.style.width=(document.body.offsetWidth - lw - tw) + "px";

      window.onresize = __fixscrollcontainer;
    }
  }
}



tcount=0;
window.setInterval(function(){if(tcount>0)tcount--;if(tcount>3)window.status=Math.round(tcount/25*100)+"%"; else window.status=""},700);

function track()
{
  tcount++;
  if (tcount==25) document.getElementById("track").submit();
}

