// ==UserScript==
// @name           AllegroTools (GMaps) for IE i FF
// @namespace      http://allegrotoolsie.hopto.org/
// @description    Integracja z serwisem Google Maps // v0.20070509.0.experimental
// @include        http*://*allegro.pl/item*
// ==/UserScript==

/////////////////////////////////////////////////////////////////

// Returns the number-th parent node of the element
function getParentNode(element, number)
{
  var parent = element;
  while((number > 0) && (parent))
  {
    parent = parent.parentNode;
    number--;
  }
  
  return parent;
}

// Returns the number-th next sibling of the element
// for IE/FF compatibility skips #text nodes
function getNextSibling(element, number)
{
  var sibling = element;
  while((number > 0) && (sibling))
  {
    sibling = sibling.nextSibling;
    if (sibling && (sibling.nodeType == 1))
    {
      number--;
    }
  }
  
  return sibling;
}

// FF uses textContent property while IE uses innerText property
// to return the inner text of an element
function getInnerText(element)
{
  var result = null;
  
  if (element)
  {
    // For IE
    result = element.innerText;
  
    if(result == null)
    {
      // For FireFox
      result = element.textContent;
    }
  }
  
  return result;
}

/////////////////////////////////////////////////////////////////

function addLocationButton()
{
  var location = false;
  var locationTD = false;

  var tdArray = document.getElementsByTagName("td");
  if(tdArray)
  {
    for(var i = 0; i < tdArray.length; i++)
    {
      if (getInnerText(tdArray[i]) == "Lokalizacja")
      {
        locationTD = getNextSibling(tdArray[i], 1);
        location = getInnerText(locationTD);
        break;
      }
    }
  }
  
  if (location && locationTD)
  {
    var mapsForm = document.createElement('div');
    mapsForm.innerHTML = "<form action='http://maps.google.com/maps?q=" + location + "'" +
                         "method='post' name='form' target='_blank'>" +
                         "<input type='submit' name='submit' value='Znajdz w Google Maps' style='font-size=8pt' " +
                         "title='Znajdz w Google Maps'>" +
                         "</form>";
    locationTD.appendChild(mapsForm);
  }
}

function allegrotoolsMaps()
{
  addLocationButton();
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Start Allegro Tools (Maps) script
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
allegrotoolsMaps()
