req = null;
action = null;
handleId = null;

function createEntry(resp)
{
  // felder einlesen
	var url   = document.getElementById("url").value;
	var desc  = document.getElementById("beschreibung").value;
	var titel = document.getElementById("titel").value;


    // neuen eintrag erstellen
	var div = document.createElement("div");
    div.setAttribute("id", resp);
    div.setAttribute("class", "noBlock");

    var a = document.createElement("a");
    a.setAttribute("href", url);
    if(NewWindow==1){a.setAttribute("target","_blank");}
    a.appendChild(document.createTextNode(titel));

    var img = document.createElement("img");
    img.setAttribute("src", "imgs/del.gif");
    img.setAttribute("alt", "loeschen");
    img.setAttribute("title", "L"+ String.fromCharCode(246) +"schen");
    img.onclick = function()
    {
    del(resp);
    };

    // zeilenumbrueche
    var zeilen = desc.split("\n");
  	var spanbeschr = document.createElement("span");
    for(var i = 0; i < zeilen.length; i++)
    {
      spanbeschr.appendChild(document.createTextNode(zeilen[i]));
      spanbeschr.appendChild(document.createElement("br"));
    }


    var span = document.createElement("span");
    span.setAttribute("class", "ColouredUrl");
    span.appendChild(document.createTextNode(url));

    // jetzt noch alles ins div packen
    div.appendChild(a);
    div.appendChild(img);
    div.appendChild(document.createElement("br"));
    if(desc != ""){div.appendChild(spanbeschr);}
    div.appendChild(span);
    div.appendChild(document.createElement("br"));
    div.appendChild(document.createElement("br"));

    // ganz vorne einfuegen einfuegen
    document.getElementById("newlinkarea").insertBefore(div, document.getElementById("insertAfter").nextSibling);
    
    // ladegrafik ausblenden:
	  document.getElementById("LadeGrafik").style.display = 'none';

}

function del(delID)
{

  // zu ladende url
  loadURL = "./jobs/ajax/delete.php?lid=" + delID;
  
  // action auf 2 setzten, steht fuer eintrag loeschen
  action = 2;
  // url async. aufrufen
  handleId = delID;
	reload(0, loadURL, 1);

}

function save()
{
    // felder einlesen
	var url   = document.getElementById("url").value;
	var desc  = document.getElementById("beschreibung").value;
	var titel = document.getElementById("titel").value;


	if(url != "" && titel != "")
	{
	  // ladegrafik anzeigen:
	  document.getElementById("LadeGrafik").style.display = 'inline';
	  
    // linkzahl korrigieren
  	var numLinks = parseInt(document.getElementById("dynNumLinks").firstChild.nodeValue) + 1;
	  document.getElementById("dynNumLinks").firstChild.nodeValue = numLinks;

	  // zu ladende url
	  var loadURL = "./jobs/ajax/new.php";

	  // post-string mit den variablen
      var poststr = "titel=" + escape(encodeURI(titel)) +"&url=" +
                 escape(encodeURI(url)) +"&desc="+ escape(encodeURI(desc)) +"&folder="+ escape(encodeURI(Folder));

    // action auf 1 setzten, steht fuer neuer eintrag
    action = 1;
    // url async. aufrufen, post-string uebergebn
    reload(poststr, loadURL, 2);


	}
}

function editEntry(id)
{
   // url die zu laden ist
   var loadURL = "./jobs/ajax/getData.php?id=" + id;
   
   // action = 3 fuer edit
   action = 3;
   reload(0, loadURL, 3)
}

function handleResp()
{
	switch(req.readyState)
    {
    	case 4:
        if(req.status!=200)
        {
        	alert("Fehler:"+req.status);
        }
        else
        {
            if(action==1)
            {  // neuen link erstellen
              server_resp = req.responseText;
              createEntry(server_resp);
            }
            else if(action==2)
            {  // link loeschen
              answer = req.responseText;
              if(answer == "success")
              {
                // eintrag loeschen
                document.getElementById(handleId).parentNode.removeChild(document.getElementById(handleId));

                // linkzahl korrigieren
                var numLinks = document.getElementById("dynNumLinks").firstChild.nodeValue - 1;
                document.getElementById("dynNumLinks").firstChild.nodeValue = numLinks;
              }
            }
            else if(action==3)
            {  // link bearbeiten
              answer = req.responseText;
              
              
            }
        }
        break;

        default:
        	return false;
        break;
    }
}

function reload(parameters, loadURL)
{
	//erstellen des requests

    try
    {
    	req = new XMLHttpRequest();
    }
    catch (e)
    {
    	try
      {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {
        	try
          {
            	req = new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch (failed)
          {
            	req = null;
          }
      }
    }

    if (req == null)
    	alert("Error creating request object!");

    //anfrage erstellen
    //request ist asynchron
    var url = loadURL;
    req.onreadystatechange = handleResp;
    if(action == 1)
    {
      req.open("POST", url, true);

      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send(parameters);
    }
    else if(action == 2)
    {
      req.open("GET", url, true);

      req.send(null);
    }
    else if(action == 3)
    {
      req.open("GET", url, true);
      
      req.send(null);
    }


    url = "";
    loadURL = "";
}

