// Page und CMS
function $ (id) { return document.getElementById(id); }

function formatText (tag)
{
  if (window.getSelection) {
    t = $('text');
    selectedText = t.value.substr(t.selectionStart, t.selectionEnd - t.selectionStart); }
  else if (document.getSelection) {
    selectedText = document.getSelection(); }
  else if (document.selection) {
    selectedText = document.selection.createRange().text; }

  if (selectedText != "") {
    newText = "[" + tag + "]" + selectedText + "[/" + tag + "]"; }
  if (window.getSelection) {
    $('text').value = $('text').value.replace(selectedText, newText); }
  else if (document.getSelection) {
    document.getSelection() = newText; }
  else if (document.selection) {
    document.selection.createRange().text = newText; }
}

function overInfo (e, text)
{
  var Xposition;
  var Yposition;
  var Xmax;

  if(!e) {
    e = window.event; }

  if(e.pageX) {
    Xposition = e.pageX;
    Yposition = e.pageY; }
  else {
    if(document.documentElement.scrollTop) {
      Yscroll = document.documentElement.scrollTop;
      Xscroll = document.documentElement.scrollLeft; }
    else {
      Yscroll = document.body.scrollTop;
      Xscroll = document.body.scrollLeft; }

    Yposition = e.clientY + Yscroll;
    Xposition = e.clientX + Xscroll;
  }

  if(Number(arguments[2]) > 0 && Xposition > Number(arguments[2]) - 21 - 200) {
    Xposition = Number(arguments[2]) - 21 - 200 }
  else {
    Xposition = Xposition + 18; }

  $('overInfo').innerHTML = text;
  $('overInfo').style.top = Number(Yposition + 18) + "px";
  $('overInfo').style.left = Xposition + "px";
  $('overInfo').style.display = "block";
}

function overInfo_off ()
{
  $('overInfo').style.display = "none";
}

function checked (id)
{
  if($(id).checked == true)
    $(id).checked = false;
  else
    $(id).checked = true;
}

function loginFocus () {
  if(document.logform.username.value == "") {
    formFocus("logform", "username"); }
  else {
    formFocus("logform", "passw"); }
}

function formFocus(form, field) {
  document.forms[form].elements[field].focus();
}

function hide (element) {
  if(element != "") {
    var div = $(element);
    if(div.style.display != "none") {
      div.style.display = "none"; }
    else {
      div.style.display = "block"; }
  }
}

var usrfdr_opener;
var usrfdr_user = new Array();
function usrfdr_add (a, b, c) {
  var d = true;
  for(var i = 0; i < usrfdr_user[a].length; i ++)
  {
    d = (usrfdr_user[a][i] == b) ? false : d;
  }

  if(d == true) {
    usrfdr_user[a].push(b);
    if(usrfdr_opener == "groups") {
      usrfdr_add_groups(a, b, c, (usrfdr_user[a].length - 1)); }
  }
  else {
   alertBox('', '', 'Dieser Benutzer ist bereits Gruppenmitglied.'); }
}

function usrfdr_add_groups (a, b, c, d) {
  var name = document.createTextNode(c);
  var del = document.createElement("img");
  del.setAttribute("src", "../images/icons/delete.gif", 0);
  del.setAttribute("onClick", "usrfdr_del(" + a + ", " + d + "," + b + ");", 0);
  del.setAttribute("onMouseOver", "overInfo(event, 'User aus Gruppe löschen.');", 0);
  del.setAttribute("onMouseOut", "overInfo_Off();", 0);

  var td1 = document.createElement("td");
  var td2 = document.createElement("td");
  var td3 = document.createElement("td");

  td1.setAttribute("class", "cell", 0);
  td2.setAttribute("class", "cell", 0);
  td1.setAttribute("id", "usrn." + a + "." + d, 0);
  td2.setAttribute("id", "usrd." + a + "." + d, 0);
  td3.setAttribute("colspan", "2", 0);

  td1.appendChild(name);
  td2.appendChild(del);

  var mod = d % 4;
  if(mod == 0) {
    alert('Neue Zeile: grp.' + a + '.' + (d/4 + 1));
    var tr = document.createElement("tr");
    tr.setAttribute("id", "grp." + a + "." + (d/4 + 1), 0);
    tr.appendChild(td3);
    tr.appendChild(td1);
    tr.appendChild(td2);
    $('grp.' + a).appendChild(tr); }
  else {
    alert('Zeile: grp.' + a + '.' + (d + (4 - (d % 4)))/4);
    $('grp.' + a + '.' + (d + (4 - (d % 4)))/4).appendChild(td1);
    $('grp.' + a + '.' + (d + (4 - (d % 4)))/4).appendChild(td2); }

  var e = new Array(2);
  e[0] = new Object(2);
  e[0]['name'] = "action";
  e[0]['value'] = "add";
  e[1] = new Object(2);
  e[1]['name'] = "gid";
  e[1]['value'] = a;
  e[2] = new Object(2);
  e[2]['name'] = "uid";
  e[2]['value'] = b;
  sendAJAX("../../AJAX/grp_member.php", e);
}

function usrfdr_del (a, b, c) {
  $('usrn.' + a + '.' + b).style.visibility = "hidden";
  $('usrd.' + a + '.' + b).style.visibility = "hidden";

  var d = new Array(3);
  d[0] = new Object(2);
  d[0]['name'] = "action";
  d[0]['value'] = "del";
  d[1] = new Object(2);
  d[1]['name'] = "gid";
  d[1]['value'] = a;
  d[2] = new Object(2);
  d[2]['name'] = "uid";
  d[2]['value'] = c;
  sendAJAX("../../AJAX/grp_member.php", d);
}

function sendAJAX(a, b) {
  var c = null;
  saveFormName = "other";

  try {
    c = new XMLHttpRequest(); }
  catch (ms) {
    try {
      c = new ActiveXObject("Msxml2.XMLHTTP"); } 
    catch (nonms) {
      try {
        c = new ActiveXObject("Microsoft.XMLHTTP"); } 
      catch (failed) {
        c = null; }
    }
  }

  if (c == null) {
    alert("Error creating request object!"); }

  c.open('POST', a, true);
  c.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

  c.onreadystatechange = function() {
    switch(c.readyState) {
      case 4:
        if(c.status != 200) {
          alert("Fehler:" + c.status); }
        else {
          sendFormDataSuccess(c.responseText); }
      break;

      default:
        return false;
      break;
    }
  };

  var d = "send=true";

  for(i = 0; i < b.length; i++)
  {
    d = d.concat("&" + b[i]['name'] + "=" + b[i]['value'])
  }

  c.send(d);
}

// Page
function picture_counter(a)
{
  var b  = a.split("/");
  var c = b[1].split("gallery");
  var d = b[2].split(".");
  var e = d[0].split("image");

  try {
    req = new XMLHttpRequest(); }
  catch (ms) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP"); } 
    catch (nonms) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP"); } 
      catch (failed) {
        req = null; }
    }  
  }

  
  
  if (req == null) {
    alert("Error creating request object!"); }

  req.open('POST', 'sonst/piccounter.php', true);
  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  req.onreadystatechange = function() {
    switch(req.readyState) {
      case 4:
        if(req.status != 200) {
          alert("Fehler:" + req.status); }
      break;

      default:
        return false;
      break;
    }
  };

  sendString = "gal=" + c[1] + "&pic=" + e[1];

  req.send(sendString);
}

function insert (smily)
{
  selectedText = "";
  if(document.selection) {
    selectedText = document.selection.createRange().text; }

  if(selectedText != "") {
    document.selection.createRange().text = document.selection.createRange().text + smily; }
  else {
    $('text').value = $('text').value + " " + smily; }
}

function list () {
 type = prompt(typeText, "");
 if ((type == "abc") || (type == "123") || (type == "square")) {
  tag1 = "[list-" + type + "]\n";
  tag2 = "[/list] ";
 }
 else {
  tag1 = "\n[list]\n";
  tag2 = "[/list]\n";
 }
 insert(tag1);
 var goon = 1;
 while (goon == 1) {
  list = prompt(valueText, "");
  if (list == "") {
   goon = 0; }
  else {
  li = "[li]" + list + "\n";
  insert(li);
  }
 }
 insert(tag2);
}

function href () {
 www = prompt(urlText, document.selection.createRange().text);
 text = prompt(nameText, document.selection.createRange().text);
 if(www != "" || text != "") {
  ref = "[url='" + www + "' new]" + text + "[/url]";
  insert(ref);
 }
}

function img () {
  image = prompt(urlText, document.selection.createRange().text);
  if(image != "") {
    tags = "[img]" + image + "[/img]";
    insert(tags);
  }
}

function thumbUp (no, pic) {
  var src = "images/icons/" + pic + ".gif";
  $(no).src = src;
}

function parseForm() {
  var n = $('name'), p = $('passw');

  if(n.value == "") {
    n.focus();
    alert("Bitte Name eingeben");
    return false; }

  if(p.value == "") {
    p.focus();
    alert("Bitte Passwort eingeben");
    return false; }

  p.value = hex_hmac_md5($('key').value, hex_md5(p.value));
  $('js').value = 1;
  return true;
}

var openedBy;

function miniDate (e, element)
{
  openedBy = $(element);
  var Xposition;
  var Yposition;
  var Xmax;

  if(!e) {
    e = window.event; }

  if(e.pageX) {
    Xposition = e.pageX;
    Yposition = e.pageY; }
  else {
    if(document.documentElement.scrollTop) {
      Yscroll = document.documentElement.scrollTop;
      Xscroll = document.documentElement.scrollLeft; }
    else {
      Yscroll = document.body.scrollTop;
      Xscroll = document.body.scrollLeft; }

    Yposition = e.clientY + Yscroll;
    Xposition = e.clientX + Xscroll;
  }

  if(Number(arguments[2]) > 0 && Xposition > Number(arguments[2]) - 21 - 200) {
    Xposition = Number(arguments[2]) - 21 - 200 }
  else {
    Xposition = Xposition + 18; }

  $('miniDate').style.top = Number(Yposition + 18) + "px";
  $('miniDate').style.left = Xposition + "px";
  $('miniDate').style.display = "block";
}

function miniDate_off ()
{
  $('miniDate').style.display = "none";
}

function miniDateAdjust(data, value) {
  if(data == "month") {
    currentMonth = value; }
  if(data == "year") {
    currentYear = value; }

  var firstDate = new Date(currentYear, currentMonth, 01);
  var pointer = firstDate.getDay();
  if(pointer == 0) {
    pointer = 7; }

  var Link = document.createElement("a");
  var Txt;

  var cell;

  var removed;

  var month;
  var day;

  var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  for(var i = 1; i <= 37; i++)
  {
    cell = $('d' + i);
    if(cell.childNodes.length != 0) {
      removed = cell.removeChild(cell.firstChild); }
  }

  for(var i = 1; i <= monthDays[firstDate.getMonth()]; i++)
  {
    cell = $('d' + Number(i + pointer - 1));
    if(Number(currentMonth) + 1 < 10) {
      month = "0" + (Number(currentMonth) + 1); }
    else {
      month = (Number(currentMonth) + 1); }

    if(i < 10) {
      day = "0" + i; }
    else {
      day = i; }

    if(i == currentDay) {
      cell.style.border = "solid 1px #000000"; }
    else {
      cell.style.border = "solid 0px #000000"; }

    var Link = document.createElement("a");
    var Txt = document.createTextNode(day);
    Link.appendChild(Txt);

    Link.href = "JavaScript:openedBy.value='" + currentYear + "-" + month + "-" + day + "'; miniDate_off();";
    cell.appendChild(Link);
  }
}

