var giginfo = {

  getGigInfo: function(e)
  {
    // alert("bin in getGigInfo, e: " + e.keyCode);
    
    var el = Event.element(e);
    // alert("el: " + el + ", el.nodeName.toLowerCase(): " + el.nodeName.toLowerCase());
    
    // alert("el.nodeName.toLowerCase(): " + el.nodeName.toLowerCase() );
    if(el.nodeName.toLowerCase() != 'a' && el.nodeName.toLowerCase() != 'span')
    {
      return false;
    }
    
    var liElement = el.parentNode;
    // alert("el.parentNode: " + el.parentNode);
    
    // alert("start checkForOpenBox");
    if ( $('giginfo') )
    {
      var eff = new Effect.SlideUp($('giginfo'),{duration: 0.3, afterFinish: function(effect){ callback(); }   });
      function callback()
      {
        giginfo.deleteInfoBox($('giginfo'));
        giginfo.createInfoBox(liElement);
      }
    } else
    {
      giginfo.createInfoBox(liElement);
    }
    
    
    
    // giginfo.setRequest(liElement);
    
    if (window.event)
    {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.stopPropagation && e.preventDefault)
    {
      e.stopPropagation();
      e.preventDefault();
    }
  },
  
  createInfoBox: function(liElement)
  {
    var firstHtml = "<ul id=\"giginfo\"><li id=\"giginfoBox\" class=\"loading\"></li></ul>";
    liElement.innerHTML += firstHtml;
    giginfo.gigInfoUl = $('giginfo');
    giginfo.gigInfoLi = $('giginfoBox');
    // alert("Effect.SlideDown");
    var eff = new Effect.SlideDown(giginfo.gigInfoUl, {duration: 0.3});
    giginfo.setRequest(liElement);
  },

  setRequest: function(liElement)
  {
    var data = "gigid=" + liElement.id.substring( liElement.id.indexOf( "_" )+1, liElement.id.length )
    var url = "/ajax/get_party_info.php";
    // alert("data: " + data);
    var myAjax = new Ajax.Request( url, {method: 'get', parameters: data, onComplete: giginfo.displayGigInfo});
  },

  displayGigInfo: function(dom)
  {
    // alert("displayGigInfo");
    var gigs = dom.responseXML.getElementsByTagName('gigs');
    // alert( "$('giginfoBox'): " + $('giginfoBox') + ", gigs: " + gigs );
    if ( gigs.length > 0 )
    {
      // alert("gigs.length > 0 : " + gigs.length);
      var gig = gigs[0].getElementsByTagName('gig');
      if ( gig.length > 0 )
      {
        // alert("gig.length > 0 : " + gig.length);
        var photo1 = giginfo.getXmlValue(gig, 'photo1');
        // alert("photo1: " + photo1);
        var photo2 = giginfo.getXmlValue(gig, 'photo2');
        var ort = giginfo.getXmlValue(gig, 'ort');
        var land = giginfo.getXmlValue(gig, 'land');
        var club = giginfo.getXmlValue(gig, 'club');
        var thema = giginfo.getXmlValue(gig, 'thema');
        var lineup = giginfo.getXmlValue(gig, 'lineup');
        var info = giginfo.getXmlValue(gig, 'info');
        var link1 = giginfo.getXmlValue(gig, 'link1');
        var link1_text = giginfo.getXmlValue(gig, 'link1_text');
        var link2 = giginfo.getXmlValue(gig, 'link2');
        var link2_text = giginfo.getXmlValue(gig, 'link2_text');
        var link3 = giginfo.getXmlValue(gig, 'link3');
        var link3_text = giginfo.getXmlValue(gig, 'link3_text');
        var startzeit = giginfo.getXmlValue(gig, 'startzeit');
        var vvk_tel = giginfo.getXmlValue(gig, 'vvk_tel');
        var vvk_website = giginfo.getXmlValue(gig, 'vvk_website');
        var display_city = giginfo.getXmlValue(gig, 'display_city');
        var keine_infos = giginfo.getXmlValue(gig, 'keine_infos');
        var beginn = giginfo.getXmlValue(gig, 'beginn');
        var vvk = giginfo.getXmlValue(gig, 'vvk');
        var info_schliessen = giginfo.getXmlValue(gig, 'info_schliessen');
        
        var innerHTML = "<span id=\"giginfoImg\">"
				if ( photo1 != "" ) 
				{ 
					innerHTML = innerHTML + "<img src=\"../i/gigs/" + photo1 + "\" width=\"100\" border=\"0\" title=\"" + club + "\" alt=\"" + club + "\" />";
				}
				if ( photo2 != "" ) 
				{ 
					innerHTML = innerHTML + "<br /><br /><img src=\"../i/gigs/" + photo2 + "\" width=\"100\" border=\"0\" title=\"" + club + "\" alt=\"" + club + "\" />";
				}
        innerHTML = innerHTML + "</span>" + 
                "<span id=\"giginfoText\">" + 
                  "<span class=\"textLeft\">" + display_city + ":</span>" + 
                  "<span class=\"textRight\">";

				if ( ort != "" || land != "" )
				{
					innerHTML = innerHTML +  ort;
          if ( land != "" )
				  {
            innerHTML = innerHTML +  "/" + land;
				  }
				}
				else
				{
          innerHTML = innerHTML + keine_infos;
				}
        innerHTML = innerHTML + "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";

				if ( club != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">Location:</span>" + 
                  "<span class=\"textRight\">" + club + "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";
        }
        innerHTML = innerHTML + 
                  "<span class=\"textLeft\">Party:</span>" +
                  "<span class=\"textRight\">";

				if ( thema != "" )
				{
				  innerHTML = innerHTML + thema;
				}
				else
				{
          innerHTML = innerHTML + keine_infos;
				}
        innerHTML = innerHTML + 
                  "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";

				if ( lineup != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">LineUp:</span>" + 
                  "<span class=\"textRight\">" + lineup + 
                  "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";
				}
				if ( info != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">Info:</span>" +
                  "<span class=\"textRight\">" + info + "</span>" +
                  "<span class=\"clearBoth\">&nbsp;</span>";
        }
				if ( startzeit != "" && vvk_tel != startzeit )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">" + beginn + ":</span>" +
                  "<span class=\"textRight\">" + startzeit + "</span>" +
                  "<span class=\"clearBoth\">&nbsp;</span>";

				}
				if ( vvk_tel != "" || vvk_website != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">" + vvk + ":</span>" +
                  "<span class=\"textRight\">";

				  if ( vvk_tel != "" )
				  {
            innerHTML = innerHTML + vvk_tel + "<br />";
          }
          if ( vvk_website != "" )
				  {
            innerHTML = innerHTML + 
              "<a href=\""+ vvk_website + "\" title=\"&ouml;ffnet ein neues Fenster\" target=\"_blank\">Tickets</a>"
				  }
          innerHTML = innerHTML + 
                  "</span>" +
                  "<span class=\"clearBoth\">&nbsp;</span>";
				}
        if ( link1 != "" && link1_text != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">&nbsp;</span>" + 
                  "<span class=\"textRight\">" + 
                    "<img src=\"/i/pfeil_blau.gif\" width=\"9\" height=\"7\" border=\"0\" alt=\"\" />" + 
										"&nbsp;<a class=\"linkblue\" href=\"" + link1 + "\" target=\"_blank\">" + link1_text + "</a>" + 
                  "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";
				}
				if ( link2 != "" && link2_text != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">&nbsp;</span>" + 
                  "<span class=\"textRight\">" + 
                    "<img src=\"/i/pfeil_blau.gif\" width=\"9\" height=\"7\" border=\"0\" alt=\"\" />" + 
										"&nbsp;<a class=\"linkblue\" href=\"" + link2 + "\" target=\"_blank\">" + link2_text + "</a>" + 
                  "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";
				}
				if ( link3 != "" && link3_text != "" )
				{
          innerHTML = innerHTML + 
                  "<span class=\"textLeft\">&nbsp;</span>" + 
                  "<span class=\"textRight\">" + 
                    "<img src=\"/i/pfeil_blau.gif\" width=\"9\" height=\"7\" border=\"0\" alt=\"\" />" + 
										"&nbsp;<a class=\"linkblue\" href=\"" + link3 + "\" target=\"_blank\">" + link3_text + "</a>" + 
                  "</span>" + 
                  "<span class=\"clearBoth\">&nbsp;</span>";
				}
        innerHTML = innerHTML + 
                "</span>" + 
                "<span id=\"giginfoClose\"><a onclick=\"giginfo.closeInfo()\" title=\"" + info_schliessen + "\"><img src=\"/i/gigs/close.gif\" width=\"7\" height=\"7\" alt=\"" + info_schliessen + "\" /></a></span>" + 
                "<span class=\"clearBoth\">&nbsp;</span>";
        
        // alert("innerHTML: " + innerHTML);
        $('giginfoBox').className = "";
        $('giginfoBox').removeAttribute('class');
        
        // alert("giginfo.gigInfoLi: " + giginfo.gigInfoLi);
        // giginfo.gigInfoLi.innerHTML = innerHTML;
        $('giginfoBox').innerHTML = innerHTML;
        // alert("$('giginfoBox'): " + $('giginfoBox') + "\n innerhtml: " + $('giginfoBox').innerHTML);
      }
    }
  },
  
  getXmlValue: function(xmlNode, node)
  {
    var value = xmlNode[0].getElementsByTagName(node);
    // alert("titel: " + titel[0].firstChild.nodeValue );
    if ( value[0].firstChild && value[0].firstChild.nodeValue )
    {
      var info = value[0].firstChild.nodeValue
      while ( info.indexOf("[br/]") != -1 )info = info.replace("[br/]", "<br/>");
      return info;
    }
    else
      return value = "";
  },
  
  closeInfo: function()
  {
    // alert("$('giginfo'): " + $('giginfo'));
    var eff = new Effect.SlideUp($('giginfo'),{duration: 0.3, afterFinish: function(effect){ while($('giginfo')){giginfo.deleteInfoBox($('giginfo'));} }   });
  },
  
  deleteInfoBox: function(gigInfoBox)
  {
    if (gigInfoBox && gigInfoBox.parentNode )
    {
      // alert("gigInfoBox.parentNode: " + gigInfoBox.parentNode);
      while($('giginfo'))
      {
      var infoboxParentNode = $('giginfo').parentNode;
      infoboxParentNode.removeChild($('giginfo'));
      
      if ( infoboxParentNode.childNodes.length  )
      {
        for ( var i = 0; i < infoboxParentNode.childNodes.length; i++ )
        {
          if ( infoboxParentNode.childNodes[i].nodeName.toLowerCase() == "a" || infoboxParentNode.childNodes[i].nodeName.toLowerCase() == "span" )
          {
            // alert("add event, node: " + infoboxParentNode.childNodes[i].nodeName.toLowerCase());
            Event.observe(infoboxParentNode.childNodes[i], 'click', giginfo.getGigInfo, false);
            break;
          } else
          {
            // alert("else: infoboxParentNode.childNodes[" + i + "].nodeName.toLowerCase(): " + infoboxParentNode.childNodes[i].nodeName.toLowerCase());
          }
        }
      }
      }

    }
  },
  
  init: function()
  {
    if( !document.getElementById || !document.getElementsByTagName ) return;
    var infoLinks = document.getElementsByClassName('getGigInfo');
    // alert("init - infoLinks.length: " + infoLinks.length);
    for ( var i = 0; i < infoLinks.length; i++ )
    {
        Event.observe(infoLinks[i], 'click', giginfo.getGigInfo, false);
    }
  }

};