function hide_mine(elmnt) {
        if( !is_ie ) return;
        var a = elmnt.getElementsByTagName("div");
        var div = a[0];
        elmnt.style.zIndex = 1;
        div.style.display = "none";
}

function show_mine(elmnt) {
        if( !is_ie ) return;
         var a = elmnt.getElementsByTagName("div");
        var div = a[0];
        elmnt.style.zIndex = 100;
        div.style.display = "block";
}

function switch_tab(name,hide) {
        if(document.getElementById('tab-'+name) == null) return;

         if(hide === undefined) window.location.hash = name;


         // "Alten" Tab zurücksetzen
         if(activetab != "" && document.getElementById('tabheader-'+activetab) != null) {
                 document.getElementById('tabheader-'+activetab).className = "tab-item";
                 document.getElementById('tab-'+activetab).style.display = "none";
         }

         document.getElementById('tab-'+name).style.display="";
         document.getElementById('tabheader-'+name).className = "tab-item-active";

         //alert(document.getElementById('tabheader-'+name).className);

         activetab = name;




         return;
}

function switch_tab2(name,hide) {
        if(document.getElementById('tab-'+name) == null) return;

         if(hide === undefined) window.location.hash = name;


         // "Alten" Tab zurücksetzen
         if(activetab != "" && document.getElementById('tabheader-'+activetab) != null) {
                 document.getElementById('tabheader-'+activetab).className = "";
                 document.getElementById('tab-'+activetab).style.display = "none";
         }

         document.getElementById('tab-'+name).style.display="";
         document.getElementById('tabheader-'+name).className = "current";

         //alert(document.getElementById('tabheader-'+name).className);

         activetab = name;




         return;
}

function toggle_showhide(elem) {
         var c = $(elem);

         //if(c.style.display=='none') Effect.SlideDown(elem);
         //else Effect.SlideUp(elem);

         if(c.style.display=='none') c.appear();
         else c.hide();

         return;
}

function insert_bbcode(aTag, eTag) {
  if((typeof arguments[2]) == "undefined") {
         var input = document.getElementById('textarea_desc');
  } else {
          var input = document.getElementById(arguments[2]);
  }

  input.focus();
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des Formatierungscodes */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = aTag + insText + eTag;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -eTag.length);
    } else {
      range.moveStart('character', aTag.length + insText.length + eTag.length);
    }
    range.select();
  }
  /* für neuere auf Gecko basierende Browser */
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Einfügen des Formatierungscodes */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + aTag.length;
    } else {
      pos = start + aTag.length + insText.length + eTag.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* für die übrigen Browser */
  else
  {
    /* Abfrage der Einfügeposition */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Einfügen des Formatierungscodes */
    var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
  }
}

 function loadData(script,element)
{
  document.getElementById('response_loading').style.visibility = 'visible';
  new Ajax.Updater(element,'character_ajax.php?v='+script+'&ajax=1',
          { method: 'get',
                onSuccess: function() { document.getElementById('response_loading').style.visibility = 'hidden'; }
          }
  );
}

 function postData(script,target_element)
{
  document.getElementById('response_loading').style.visibility = 'visible';
  new Ajax.Request('character_ajax.php',
          { method: 'post',
            parameters: 'v='+script,
            onSuccess: function(transport) { Element.update(target_element,transport.responseText); document.getElementById('response_loading').style.visibility = 'hidden'; }
          }
  );
}

 function description_panels(guildid) {

        if($('descriptionform_'+guildid).visible()) {
                 $('descriptionform_'+guildid).hide();
                 $('description_content_'+guildid).show();
         } else {
                 $('descriptionform_'+guildid).show();
                 $('description_content_'+guildid).hide();
         }

 }

 function description_update(guildid) {

         var dest = 'description_box_'+guildid;
         var x = $('guilddesc_'+guildid).value;
         postData('guild&guildid='+guildid+'&description='+x,dest);



 }

  function update_guild_details(guildid)
  {

    var data = $('guild_form_'+guildid).serialize();
    //alert(data);
    document.getElementById('response_loading').style.visibility = 'visible';
    new Ajax.Request('character_ajax.php',
      { method: 'post',
        parameters: 'v=guild&guildid='+guildid+'&'+data,
        onSuccess: function(transport)
        {
          if(transport.responseText == 2) alert(transport.responseText);
          if(transport.responseText < 1)
            alert("Details konnten nicht gespeichert werden.");
          else if(transport.responseText == 1)
          {
            $('success_message').style.display = 'table-cell';
            window.setTimeout(function() {$('success_message').style.display = 'none'}, 10000);
          }

          document.getElementById('response_loading').style.visibility = 'hidden';
        }
      }
    ); // Ajax.Request Ende
  }

 function guildaction(source,action,guildid,accountid) {
  // Es gibt drei Listen, l_leaders, l_officers, l_members
  // Bei Erfolg kommen wir in die neue Tabelle

  // var random_number = Math.round(Math.random() * 100);

  var url = 'character_ajax.php?v=guild&'+action+'='+accountid+'&guildid='+guildid;

         new Ajax.Request(url, {
          method: 'get',
           sanitizeJSON: false,
           evalJSON: 'force',
          onSuccess: function(transport) {


             var x = transport.responseText;
             var x2 = transport.responseJSON;

             //var x = eval(transport.responseText);
             if (x2.status == "ok") {

             // Listenelement verschieben
             if(action == "promote" || action == "degrade") {

               // erstelle ein Listenelement
               var target_element = document.createElement("li");
                   target_element.innerHTML = x2.element;

               // Finde die Liste
               var target_list = $('l_'+x2.list);

               // neues Listenelement einfügen
               target_list.appendChild(target_element);
             }
               // alten Eintrag entfernen
               var remove_me = source.parentNode;

               // aus der Liste kicken
               source.parentNode.parentNode.removeChild(remove_me);
             }
            else {
              alert('Fehler bei der Datenübertragung, keine positive Rückmeldung erhalten.\n'+x2.errormessage);
             }
          }
        });
 }

 function toggle_vis(name) {
  if(document.getElementById(name).style.display == "none") document.getElementById(name).style.display = "";
  else document.getElementById(name).style.display = "none";
 }

 function update_panel(val) {
  if(document.getElementById('hero_select_'+val).checked == true) document.getElementById('hero_panel_'+val).style.display = "";
  else document.getElementById('hero_panel_'+val).style.display = "none";
 }

 function parserfor(el) {
  select = document.getElementById(el);
  return select.options[select.options.selectedIndex].value;
 }

 function confirm_delete(charname) {
  return confirm(unescape("Du l%F6schst deinen Charakter "+charname+" und alle damit verbundenen Daten nun unwiderruflich%21"));
 }

 function confirm_delete_a(charname) {
  return confirm(unescape("Du l%F6schst diese R%FCstung von "+charname+" nun unwiderruflich%21"));
 }

function setimage(id) {
  document.getElementById('armor_image').innerHTML = document.getElementById('armor_'+id).innerHTML;
 }



function showClassPanel(id) {
    for(var i = 0;i<=10;i++) {
        if(id != 'class_'+i) {
          $('class_'+i).style.display='none';
        }
    }
    if(!$(id).visible()) Element.show(id);
}


function timedUpdate(script,destination) {
  new Ajax.Request('character_ajax.php?v='+script,
          { method: 'get',
            onSuccess: function(transport) {
                    $(destination).update(transport.responseText);
                 window.setTimeout(function() {$(destination).remove()},3000);
            }
          }
  );
}

function removeComment(charid,msgid) {
  new Ajax.Request('character_ajax.php?v=comment&charid='+charid+'&del='+msgid,
          { method: 'get',
            onSuccess: function(transport) {
                    $('comment-'+msgid).update(transport.responseText);
                 window.setTimeout(function() {$('comment-'+msgid).remove()},3000);
            }
          }
  );
}

function removeNewsComment(newsid,msgid) {
  new Ajax.Request('character_ajax.php?v=comment&newsid='+newsid+'&del2='+msgid,
          { method: 'get',
            onSuccess: function(transport) {
                    $('comment-'+msgid).update(transport.responseText);
                 window.setTimeout(function() {$('comment-'+msgid).remove()},3000);
            }
          }
  );
}

function accept_friend(inviteid) {
  new Ajax.Request('character_ajax.php?v=friends&acc='+inviteid,
          { method: 'get',
            onSuccess: function(transport) {
                    $('friendinvite-'+inviteid).update(transport.responseText);
                 window.setTimeout(function() {$('friendinvite-'+inviteid).remove()},3000);
            }
          }
  );
      //        loadData('friends&acc=<?php echo $friend['from_id']; ?>','infopanel_<?php echo $friend['from_id']; ?>');
}


// verkürzt den Inhalt des angegeben Elements so lange, bis eine gültige Zahl rauskommt
function only_numeric (elem) {
  while(isNaN(elem.value))
  {
    elem.value = elem.value.substr(0, elem.value.length -1);
  }
}

function interplay(elem, counterpart_id)
{
  if(elem.checked)
    $(counterpart_id).checked = false;
}

function select_all (id, on_off)
{
	if(on_off != false)
	  on_off = true;
	var select_elem = $(id).options;
	for(i = 0; i < select_elem.length;i++)
		select_elem[i].selected = on_off;
}

var tyria_options = new Array ('Nichts', 'Mission', 'Mission & Bonus', 'Bonus');
var cantha_elona_options = new Array ('Nichts', 'ein Schwert', 'zwei Schwerter', 'drei Schwerter');
var eotn_options = new Array ('Offen', 'Geschafft');
var dungeon_options = new Array ('Offen', 'Geschafft');

function dungeon_change ()
{
  if($('dungeonselect').value != 0)
  {
		$('missionselect').options[0].selected = true;
		change_status('normal', false);
	  change_status('hard', false);
		
		$('status_normal').options.length = 0;
		
		for(i = 0;i<dungeon_options.length;i++)
		{
		  $('status_normal').options[i] = new Option(dungeon_options[i], i);
		}
		
		$('status_hard').options.length = 0;

		for(i = 0;i<dungeon_options.length;i++)
		{
		  $('status_hard').options[i] = new Option(dungeon_options[i], i);
		}
	}
	if($('missionselect').value == 0 && $('dungeonselect').value == 0)
	{
	  change_status('normal', true);
	  change_status('hard', true);
	}
}

function mission_change ()
{
	var selected_value = $('missionselect').value;
	if(selected_value != 0)
	{
		$('dungeonselect').options[0].selected = true;
		change_status('normal', false);
	  change_status('hard', false);
		
		document.getElementById('response_loading').style.visibility = 'visible';
		var using_options = new Array();
		new Ajax.Request('character_ajax.php?v=findmission&mission='+selected_value,
		  { method: 'get',
		    onSuccess: function(transport)
				{
				  switch(transport.responseText)
				  {
				    case '1':
	            using_options = tyria_options;
				    break;
				    case '2':
				    case '3':
				      using_options = cantha_elona_options;
						break;
				    case '4':
				      using_options = eotn_options;
						break;
				  }

	        $('status_normal').options.length = 0;

					for(i = 0;i<using_options.length;i++)
					{
					  $('status_normal').options[i] = new Option(using_options[i], i);
					}

					$('status_hard').options.length = 0;

					for(i = 0;i<using_options.length;i++)
					{
					  $('status_hard').options[i] = new Option(using_options[i], i);
					}
	        document.getElementById('response_loading').style.visibility = 'hidden';
		    }
		  }
	  );
	}
	if(selected_value == 0 && $('dungeonselect').value == 0)
	{
	  change_status('normal', true);
	  change_status('hard', true);
	}
	
}

function change_status (type, disable)
{
	if(!disable)
	{
	  if(($('missionselect').value != 0 || $('dungeonselect').value != 0) && $('use_'+type).checked == true)
	    $('status_'+type).disabled = false;
	}
	else
	{
	  $('status_'+type).disabled = true;
	}
}

function check_findmission_form()
{
	if($('status_normal').value == "" && $('status_hard').value == "")
	{
	  alert("Es muss mindestens ein Missionsstatus-Kriterium ausgewählt sein");
	  return false;
	}
	
	if(($('status_normal').value == "" && $('use_normal').checked == true) || ($('status_hard').value == "" && $('use_hard').checked == true))
	{
	  alert("Für alle ausgewählten Modi muss auch mindestens ein Missionsstatus ausgewählt sein.");
	  return false;
	}
	
	if($('use_normal').checked == false && $('use_hard').checked == false)
	{
	  alert("Es muss mindestens ein Modus ausgewählt sein..");
	  return false;
	}
	
	return true;
	
}

function join_group(groupid)
{
	var charid = $('join_chars').value;
  document.getElementById('response_loading').style.visibility = 'visible';
  new Ajax.Request('character_ajax.php',
    { method: 'post',
      parameters: 'v=group&do=joingroup&groupid='+groupid+'&charid='+charid,
      onSuccess: function(transport)
      {
        if(transport.responseText < 1)
          alert("Der Gruppe konnte wegen eines Fehlers nicht beigetreten werden.");
        else if(transport.responseText == 1)
        {
        	$('ajax_message').innerHTML = 'Du bist der Gruppe beigetreten.';
          $('ajax_message').style.display = 'block';
          $('join_form').hide();
          window.setTimeout(function() {$('ajax_message').style.display = 'none'}, 10000);
        }
        else if(transport.responseText == 2)
        {
        	$('ajax_message').innerHTML = 'Deine Anfrage wurde gespeichert. Sobald der Gruppenanführer dich freigeschaltet hat, bist du Mitglied der Gruppe.';
          $('ajax_message').style.display = 'block';
          $('join_form').hide();
          window.setTimeout(function() {$('ajax_message').style.display = 'none'}, 10000);
        }
        document.getElementById('response_loading').style.visibility = 'hidden';
      }
    }
  ); // Ajax.Request Ende
}

function accept_group_request (id, accept)
{
  document.getElementById('response_loading').style.visibility = 'visible';
  new Ajax.Request('character_ajax.php',
    { method: 'post',
      parameters: 'v=group&do=accept&requestid='+id+'&accept='+accept,
      onSuccess: function(transport)
      {
				var bezeichner = (accept ? 'angenommen' : 'abgelehnt');
        if(transport.responseText < 1)
          alert("Die Anfrage konnte nicht "+bezeichner+" werden.");
				else
				{
				  alert("Der Charakter wurde "+bezeichner+".");
				  $('request-'+id).hide();
				}
        document.getElementById('response_loading').style.visibility = 'hidden';
      }
    }
  ); // Ajax.Request Ende
}

function fill_input (target_id, text)
{
	$(target_id).value = text;
}

function cancel_invitation (invitation_id)
{
  document.getElementById('response_loading').style.visibility = 'visible';
  new Ajax.Request('character_ajax.php',
    { method: 'post',
      parameters: 'v=group&do=cancel_inv&inv_id='+invitation_id,
      onSuccess: function(transport)
      {
				if(transport.responseText == 0)
				{
				  alert("Einladung konnte nicht zurückgenommen werden. Fehlende Rechte oder Programmfehler. ");
				}
				else if(transport.responseText == 1)
				{
				  $('invitation-'+invitation_id).hide();
				}
				else if(transport.responseText == 2)
				{
				  alert("Einladung konnte nicht zurückgenommen werden. Datenbankfehler.");
				}
        document.getElementById('response_loading').style.visibility = 'hidden';
      }
    }
  ); // Ajax.Request Ende
}

function check_group_form ()
{
	var elements = document.forms.mc_group_form.elements;
	for(var i = 0; i < elements.length;i++)
	{
	  var name = elements[i].name;
	  var val = elements[i].value;
	  switch(name)
	  {
	    case 'goal':
	      if(val == "")
	      {
	        alert("Es muss ein Ziel angegeben sein.");
	        return false;
				}
	    break;
	    case 'date':
	      if(!val.match(/\d{1,2}\.\d{1,2}\.\d{4}/))
	      {
	        alert("Das Datum wurde im falschen Format eingegeben.");
	        return false;
				}
	    break;
	    case 'time':
	      if(!val.match(/\d{1,2}\:\d{2}/))
	      {
	        alert("Die Zeit wurde im falschen Format eingegeben.");
	        return false;
				}
	    break;
	    case 'max_size':
	      if(val.NaN || val > 12 || val < 2)
	      {
	        alert("Die maximale Gruppengröße muss zwischen 2 und 12 liegen.");
	        return false;
				}
	    break;
	  }
	}
	return true;
}

function get_titlestats (title, id, image)
{
  document.getElementById('response_loading').style.visibility = 'visible';
  new Ajax.Request('character_ajax.php',
    { method: 'post',
      parameters: 'v=stats&do=get_titlestats&title='+title,
      onSuccess: function(transport)
      {
        //alert(transport.responseText);
        //return;
        var data = transport.responseText.split("#");
        data.pop(); // leeren Teil entfernen

        var parent_row = $(id);
        for(var i = 0; i < data.length; i++)
        {
					var parts = data[i].split(";");
	        var new_row = document.createElement("tr");
	        new_row.style.backgroundColor = "#E5E5E5";
	        var new_field = document.createElement("td");
	        new_row.appendChild(new_field);
	        
	        var new_field = document.createElement("td");
	        new_field.innerHTML = parts[0];
	        new_row.appendChild(new_field);
	        
	        var new_field = document.createElement("td");
	        new_field.innerHTML = "<a href='charstats.php?view=title,"+title+","+parts[1]+"'>"+parts[2]+"</a> ("+parts[1]+")";
	        new_row.appendChild(new_field);

	        parent_row.parentNode.insertBefore(new_row, parent_row.nextSibling);
	        image.src = "content/cm/icons/minus.png";
	        image.alt = "Schließen";
	        image.setAttribute('onclick', "close_details('"+title+"', this);", false);
        }
        document.getElementById('response_loading').style.visibility = 'hidden';
      }
    }
  ); // Ajax.Request Ende
}

function close_details (title, image, account)
{
  var acc = (account ? "a" : "");
	var start_row = $(acc+'titlestats-'+title);
	var current_row = start_row.nextSibling;

	while(current_row && !current_row.id)
	{
	  current_row.style.display = 'none';
	  current_row = current_row.nextSibling;
	}
  image.src = "content/cm/icons/plus.png";
  image.alt = "Details";
  image.setAttribute('onclick', "open_details('"+title+"', this, "+(account ? "true" : "false")+");", false);
}

function open_details (title, image, account)
{
	var acc = (account ? "a" : "");
  var start_row = $(acc+'titlestats-'+title);
	var current_row = start_row.nextSibling;

	while(current_row && !current_row.id)
	{
	  current_row.style.display = 'table-row';
	  current_row = current_row.nextSibling;
	}
  image.src = "content/cm/icons/minus.png";
  image.alt = "Schließen";
  image.setAttribute('onclick', "close_details('"+title+"', this , "+(account ? "true" : "false")+");", false);
}

function toggle_elites(id)
{
	container = $('elite_box_'+id);
	inputs = container.getElementsByTagName('input');
	for(var i = 0; i < inputs.length; i++)
	{
	  if(inputs[i].checked)
	  	inputs[i].checked = false;
		else
		  inputs[i].checked = true;
	}
}

function conversation_change(select_element)
{
	for(var i = 0; i < select_element.options.length; i++)
	{
		current = select_element.options[i];
		charid = current.value;
		if(msg_chars[charid])
		{
		  if(current.selected)
  		{
  		  for(j = 0; j < msg_chars[charid].length; j++)
		    {
		      $('message-'+msg_chars[charid][j]).show();
		    }
      }
		  else
		  {
		    for(j = 0; j < msg_chars[charid].length; j++)
		    {
		      $('message-'+msg_chars[charid][j]).hide();
		    }
		  }
		}
	}
	//alert(select_element.value);
}
