var isIE = true;
var ieVersion = null;
if(navigator.appName == 'Netscape')
    isIE = false;
else
{
    ieVersion = getIEVersion();
}


var mousePosX = 0;
var mousePosY = 0;
var dragobjekt = null;
var dragMaxLeft = null;
var dragMaxTop  = null;
var dragx = 0;
var dragy = 0;
var lastKeyCode = null;
var holdStrg    = false;
var holdAlt     = false;
var holdShift   = false;
var debuglevel  = false;
// var debuglevel  = true;

function debug(msg)
{
    if(typeof(console) == undefined || debuglevel != true)
        return;

    console.log(msg);
}
function getIEVersion()
{
   var vers = -1;
   if (navigator.appName == 'Microsoft Internet Explorer')
   {
      var ua = navigator.userAgent;
      var vers  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
      if (vers.exec(ua) != null)
         vers = parseFloat( RegExp.$1 );
   }
   return vers;
}

function flash_detection()
{
    var max_version = 15;
    var available_version = 0;

    if(typeof(navigator.plugins["Shockwave Flash"]) == "object")
    {
        var description = navigator.plugins["Shockwave Flash"].description;
        available_version = description.substr(16, (description.indexOf(".", 16) - 16));
    }
     else if(typeof(ActiveXObject) == "function")
    {
        for(var i = 2; i < (max_version + 1); i ++)
        {
            try
            {
                if(typeof(new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)) == "object")
                {
                    available_version = i;
                }
           }
           catch(error)
           {
           }
        }
    }
    return available_version;
}

function dragstart(element, mLeft, mTop)
{
    dragobjekt  = element;
    obj = dragobjekt.split(',');

    if(mLeft == undefined)
    {
        if($('fullPageOverlay'))
            dragMaxLeft = $('fullPageOverlay').getWidth() - $(obj[0]).getWidth() - 10;
        else
            dragMaxLeft = null;
    }
    if(mTop == undefined)
    {
        if($('fullPageOverlay'))
            dragMaxTop = $('fullPageOverlay').getHeight() - $(obj[0]).getHeight() - 10;
        else
            dragMaxTop = null;
    }


    // Wird aufgerufen, wenn ein Objekt bewegt werden soll.
    for(var i=0; i<obj.length; i++)
    {
        $(obj[i]).onselectstart = function(){return false;};
        $(obj[i]).unselectable             = "on";
        $(obj[i]).style.MozUserSelect      = "none";


        dragx       = mousePosX - parseInt($(obj[i]).offsetLeft);
        dragy       = mousePosY - parseInt($(obj[i]).offsetTop);
    }
}


function dragstop()
{
    //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
    dragobjekt  = null;
}


function lastKey(e)
{
    if(!e)
        e = window.event;

    if(e.altKey || e.ctrlKey || e.shiftKey)
    {
        if(e.altKey)
        {
            if(holdAlt == false)
                holdAlt = true;
            else
                holdAlt = false;
        }
        else if(e.ctrlKey)
        {
            if(holdStrg == false)
                holdStrg = true;
            else
                holdStrg = false;
        }
        if(e.shiftKey)
        {
            if(holdShift == false)
                holdShift = true;
            else
                holdShift = false;
        }

        lastKeyCode  = '';
        return;
    }
    lastKeyCode  = e.keyCode;
}


document.onmousemove = registerMousePos;
document.onkeydown      = lastKey;

var selfUri = 'index.php?'+sesName+'='+sesId;

// STRING Funktionen erweitern
String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function()
{
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function()
{
	return this.replace(/\s+$/,"");
}

function isNumeric(str)
{
    for(var pos=0; pos<str.length; pos++)
    {
        var chr = str.charAt(pos);
        if(chr != '0' && chr != '1' && chr != '2' && chr != '3' && chr != '4' &&
           chr != '5' && chr != '6' && chr != '7' && chr != '8' && chr != '9')
        {
            return false;
        }
    }
    return true;
};


function registerMousePos(e)
{
    if(isIE == false)
    {
       mousePosX = e.pageX;
       mousePosY = e.pageY;
    }
    else
    {
       mousePosX = window.event.x;
       mousePosY = window.event.y;
    }

    if(dragobjekt != null)
    {
        obj = dragobjekt.split(',');
        for(var i=0; i<obj.length; i++)
        {
            toLeft = (mousePosX - dragx);
            toTop  = (mousePosY - dragy);

            if(toLeft < 0)
                toLeft = 0;

            if(toTop < 0)
                toTop = 0;

            if(dragMaxLeft != null && dragMaxLeft < toLeft)
                toLeft = dragMaxLeft;

            if(dragMaxTop != null && dragMaxTop < toTop)
                toTop = dragMaxTop;

            $(obj[i]).style.left = (toLeft-151) + "px";
            $(obj[i]).style.top = (toTop-50) + "px";
        }
    }
}

function fadeElement(el, from, to, time, dspl)
{
    var param = new Object();
    param['duration'] = time / 1000;
    param['from']   = from / 100;
    param['to']     = to / 100;

    if(dspl == true)
    {
        if(param['to'] > param['from'])
        {
            $(el).setOpacity(0);
            $(el).style.display = 'block';
        }
        else
        {
            window.setTimeout("$('"+el+"').style.display = 'none';", time);
        }
    }

    debug('FadeElement');
    debug(param);

    $(el).fade(param);
}
function autoFadeElement(el, from, to, time, dspl)
{
    if($(el).style.display == 'block')
        fadeElement(el, to, from, time, dspl);
    else
        fadeElement(el, from, to, time, dspl);
}



function goWF(step, goBack)
{
    $('wfStep').value = step;

    if(goBack)
        $('wfGoBack').value = 'true';

    document.workflow.submit();
    return false;
}


function sendBestMailAgain(id, art)
{
    var param       = {};
    param['func']   = 'sendBestMailAgain';
    param['id']     = id;
    param['art']    = art;

    if(!confirm('Soll dem '+art+' wirklich die Bestaetigungsmail neu gesendet werden?'))
        return;

    displayPageOverlay('Mail wird gesendet', true);
    new Ajax.Request(mainLink+'ajax.php?'+sesName+'='+sesId, {
        method:     'post',
        parameters: param,
        onSuccess:  function(ret) {
            alert(ret.responseText);
            hidePageOverlay(true);
        }
    });
}

function viewPassword(id)
{
    if($('pw_'+id).style.display == 'block')
    {
        $('pw_'+id).style.display   = 'none';
        $('pwt_'+id).style.display  = 'block';
    }
    else
    {
        $('pwt_'+id).style.display  = 'none';
        $('pw_'+id).style.display   = 'block';
    }
}

function ajaxError(ret, elId)
{
    if($(elId) != null)
    {
        var status  = ret.status;
        var htm     = '';

        if(status == '401')
            status = 'Nicht authorisiert';
        else if(status == '406')
            status = 'Funktionsaufruf ist nicht erlaubt';
        else if(status == '501')
            status = 'Nicht implementierte Funktion';

        htm  = '<b class="error">Fehler!</b>';
        htm += '<br>Daten wurden nicht geladen.<br><br>';
        htm += '<b>Status:</b><br><i>'+status+'</i>';
        $(elId).innerHTML      = htm;
    }
}


function moveToCenter(el)
{
    if(typeof(el) != 'object')
        el = $(el);

    var width       = 0;
    var height      = 0;

    // Fensterbreite
    if(isIE == true)
    {
        width       = (document.body.offsetWidth / 2)-(el.getWidth() / 2);
        height      = (document.body.offsetHeight / 2)-(el.getHeight() / 2);
    }
    else
    {
        width       = (innerWidth / 2)-(el.getWidth() / 2);
        height      = (innerHeight / 2)-(el.getHeight() / 2);
    }

    if(width < 0)
        width = 10;
    if(height < 0)
        height = 10;

    el.style.top    = height+'px';
    el.style.left   = width+'px';
}

function download(file, fileName)
{
    if(fileName == undefined)
        fileName = '';

    var dl  = mainLink+'index.php?'+sesName+'='+sesId+'&popup=download&';
        dl += 'file='+file;
        dl += '&fileName='+fileName;

    window.open(dl, 'DownloadFile', 'width=150, height=80');
}
function loadTemplate(tplName, target, obj)
{
    var param = {};

    if(typeof(obj) == 'object')
        param = obj;

    param['func'] = 'getTemplate';
    param['tpl']  = tplName;

    $(target).innerHTML = 'Daten werden aktualisiert...';
    new Ajax.Request(mainLink+'ajax.php?'+sesName+'='+sesId, {
        method:     'post',
        parameters: param,
        onSuccess:  function(ret) {
                $(target).innerHTML = ret.responseText;
                window.setTimeout("hidePageOverlay(true);", 1500);
        }
    });
}
function getFckText(fckName)
{
    for(i=0; i<parent.frames.length; ++i)
    {
        if(parent.frames[i].FCK)
            parent.frames[i].FCK.UpdateLinkedField();
    }
    return document.getElementById(fckName).value;
}

function setFckText1(fckName, text)
{
    document.getElementById(fckName).value = text;
    for(i=0; i<parent.frames.length; ++i)
    {
        if(parent.frames[i].FCK)
        {
            parent.frames[i].FCK.UpdateLinkedField();
        }
    }
}

function setFckText(fckName, text)
{
   // Get the editor instance that we want to interact with.
   var oEditor = FCKeditorAPI.GetInstance(fckName) ;

   // Check the active editing mode.
   if ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG )
   {
      // Insert the desired HTML.
      oEditor.InsertHtml(text) ;
   }
   else
      alert( 'Sie müssen im WYSIWYG - Modus sein!' ) ;
}


function toDoListe()
{
    var url = '../todoliste.php?'+sesName+'='+sesId;
    var win = window.open(url, "ToDo - Liste", "width=900, height=700");
    win.focus();
}

function number_format(number, decimals, dec_point, thousands_sep)
{
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1)
  {
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }

  if (decimals != null)
  {
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ?
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0)
  {
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }

  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != "")
  {
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }

  return sign + integer + fractional + exponent;
}
// V4
document.write("<script language='javascript1.5' src='"+mainLink+"scripts/quickmenu.js' type='text/javascript'><\/script>");
document.write("<script language='javascript1.5' src='"+mainLink+"scripts/prototype.js' type='text/javascript'><\/script>");
document.write("<script language='javascript1.5' src='"+mainLink+"scripts_src/scriptaculous.js' type='text/javascript'><\/script>");
document.write("<script language='javascript1.5' src='"+mainLink+"scripts/cmenu.js' type='text/javascript'><\/script>");
document.write("<script language='javascript1.5' src='"+mainLink+"scripts/v4_effects.js' type='text/javascript'><\/script>");
document.write("<script language='javascript1.5' src='"+mainLink+"scripts/AC_RunActiveContent.js' type='text/javascript'><\/script>");

// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/effects.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/functions.js' type='text/javascript'><\/script>");
//  document.write("<script language='javascript1.5' src='"+mainLink+"scripts/navigation.js' type='text/javascript'><\/script>");
//  document.write("<script language='javascript1.5' src='"+mainLink+"scripts/elementposition.js' type='text/javascript'><\/script>");
//  document.write("<script language='javascript1.5' src='"+mainLink+"scripts/kalender.js' type='text/javascript'><\/script>");
//  document.write("<script language='javascript1.5' src='"+mainLink+"scripts/form.js' type='text/javascript'><\/script>");
//  document.write("<script language='javascript1.5' src='"+mainLink+"scripts/formfields.js' type='text/javascript'><\/script>");



// V3
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/prototype.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts_src/scriptaculous.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/cmenu.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/effects.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/functions.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/navigation.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/elementposition.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/kalender.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/form.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/formfields.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/kis.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/buchungssystem.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/sichten.js' type='text/javascript'><\/script>");
// document.write("<script language='javascript1.5' src='"+mainLink+"scripts/csv.js' type='text/javascript'><\/script>");
