Autor: Lunna | Publicado: 2011-07-21T14:54:00-07:00

O final de semana&nbsp;anterior passou como um tiro...
Foi&nbsp;um daqueles&nbsp;que&nbsp;eu&nbsp; congelaria,&nbsp;no sabado em Santana do Parnaíba, ouve momentos de nostalgia, como&nbsp;quando o Marcelinho da Back Spin argumentou que o Hip Hop é puro&nbsp;amor, puro sentimento de algo que pertence as nossas vidas.
Participar de uma mesa de debates ao lado de representantes como Gaspar do ZÁfrica, DJ Dandan, Beto Teoria e Derf, através do convite vindo de uma pessoa tão especial como a Giza's e ainda poder compartilhar conhecimentos e ideias com o Tom.

Relembrar passagens pela São Bento, ou mesmo comentar sobre MT Bronxs, dentre outros pioneiros, falar sobre projetos, ideias que deram certo dentro do Hip Hop...

Já no Domingo logo pela manhã, a cidade da garoa intensiva suas gotas, mas isso não me impede de seguir viagem a São José dos Campos, por lá, sinto-me satisfeita por ver que a organização feminina venceu as barreiras e as "Minas do Vale" realizaram o evento. Após ouvir depoimentos de DJ Simmone e Edd Wheeler, ainda ouvir relatos de Meire, filmar a história da DaySoul e relembrar momentos de correria na epoca em que o site Mulheres no Hip Hop era hospedado no Rap Nacional.

... Que tempo bom, que não volta nunca mais...

﻿// used to save the current hostname
var gAvgHostName = "";
var gAvgDataElement = null;

function avg_ls_does_url_contain(url, contain)
{
 if ((url == null) || (url.length < 1))
 {
  return false;
 }

 var strUrl = new String(url);

 // breakup the url to check
 var parts = strUrl.split("/");
 if (parts.length < 3)
 {
  return false;
 }

 var domain= parts[2].toLowerCase();

 if (domain.indexOf(contain) > -1)
 {
  return true;
 }

 return false;
}

function avg_ls_valid_gmail_search(url)
{
  if ((url == null) || (url.length < 1))
  return false;

 var hostMatch = false;

 // split the url based on '/'
 var strUrl = new String(url);
 var parts = strUrl.split("/");

 // need domain and path
 if ((parts == null) || (parts.length < 4))
  return false;

 var domain= parts[2];
 var path  = parts[3];

 if ((domain.indexOf("mail.google.") != -1) || 
  (domain.indexOf("gmail.") != -1))
 {
        // save the hostname to use getting links
        gAvgHostName = "google.com";
        return true;
 }

 return false;
}

function avg_ls_get_parent_div(element)
{
 if ((element == null) || (element.parentNode == null))
  return null;

 while (element != null)
 {
  if ((element.tagName == "DIV") && element.className && 
   (element.className.length > 0))
   return element;

  element = element.parentNode;
 }

 // no div
 return null;
}

function avg_ls_parse_ads(href)
{
 if (!href)
  return href;

 // check for google ad
 var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&adurl\=(.+)";
 var re = new RegExp(regex);
 var matches = href.match(re);
 if (matches && (matches.length >= 4))
 {
  // else we want the fourth value
  var match = matches[3];
  if (match && (match.length > 0))
   return match
 }

 return href;
}

function avg_ls_get_gmail_links(doc, processFrames)
{
 if (doc == null)
  return;

 var links = new Array();
 var anchors = avg_ls_get_anchors(doc);
 var element = null;
 var outHref = "";
 var elemClass = "";

 // loop through all 
 for (var i = 0; (i < anchors.length) && anchors; i++)
 {
  element = anchors[i];
        
  // already processed this element
  if (element.getAttribute("avglschecked"))
   continue;

  // mark that we have seen it
  element.setAttribute("avglschecked", "1");

  // initial checks
  if ((element.href == null) || (element.href.length < 1))
   continue;

  if (avg_ls_does_url_contain(element.href, gAvgHostName))
      continue;

  // don't mark anything but http://
  if (element.href.indexOf("mailto") == 0)
   continue;

  if (element.parentNode)
  {
   var parentDiv = avg_ls_get_parent_div(element);
   if ((parentDiv.tagName == "DIV") && 
    ((parentDiv.className == "ii gt") || // mail message body
     (parentDiv.className == "mv") ||    // top sponsored links
     (parentDiv.className == "vb") ||  // right sponsored links
     (parentDiv.className == "im") ||  // inside quotes
     (parentDiv.className == "gmail_quote") // quote
     ))   // right ads
   {
    // parse for any ads
    var newHref = avg_ls_parse_ads(element.href);

    // add the image
    avg_ls_check_url(doc, element, newHref);
   }
  }
 }

 // recursively process all frames
 if (processFrames && doc.frames && (doc.frames.length > 0))
 {
  for (var j = 0; j < doc.frames.length; j++)
  {
   // 'editable' frame it's probably a reply
   if (doc.frames[j].frameElement.className && 
    (doc.frames[j].frameElement.className.indexOf("editable") != -1))
   {
    continue;
   }
  
   avg_ls_get_gmail_links(doc.frames[j].document, processFrames);
  }
 }

 return links;
}

function avg_ls_has_image(element)
{
 if ((element == null) || (element.firstChild == null))
  return false;
 
 var nextElem = element.firstChild;
 while (nextElem)
 {
  if (nextElem.id && (nextElem.id.indexOf("avg_ls_image") != -1))
   return true;

  nextElem = nextElem.nextSibling;
 }

 return false;
}

function avg_ls_add_image(doc, element, image)
{
 if ((doc == null) || (element == null))
  return ;

 // if no image, nothing to add
 if (image == null) 
  return;

 // create a new image
 var img = doc.createElement('img');
 img.src = image;
 img.border=0;
 img.id = "avg_ls_image";

 // append the image to the link
 element.appendChild(img);
}

var timeoutId = null;
var stopGmail = false;
function avg_ls_monitor_gmail(doc, processFrames)
{
 // clear the timer if set
 if (timeoutId)
 {
  clearTimeout(timeoutId);
  timeoutId = null;
 }

 // get the links
 avg_ls_get_gmail_links(doc, processFrames);

 // reset the 
 if (!stopGmail)
  timeoutId = setTimeout(function() {avg_ls_monitor_gmail(doc, processFrames);}, 1000);
}

function avg_ls_process_links(doc, processFrames)
{
 if (avg_ls_valid_gmail_search(doc.location.href))
 {
  // process the gmail links
  stopGmail = false;
  avg_ls_monitor_gmail(doc, processFrames);
 }
}

function avg_ls_reload(e)
{
 avg_ls_process_links(document, true); 
}

function avg_ls_onload(e)
{
 if (timeoutId)
 {
  clearTimeout(timeoutId);
  timeoutId = null;
 }

 var doc = document;

 // set the event handler for the data element to listen for load/reloads
 var data_element = doc.getElementById("avglsdata");
 if (data_element)
 {
  // save data element for use in later iframes
  gAvgDataElement = data_element;

  // rowexit event used to notify javascript of a page data load
  avg_ls_remove_event(data_element, "rowexit", avg_ls_reload);
  avg_ls_add_event(data_element, "rowexit", avg_ls_reload);

  // process links for the document
  avg_ls_process_links(doc, true);
 }
}

function avg_ls_get_anchors(doc)
{
 return doc.getElementsByTagName("a");
}

function avg_ls_call_func(doc, name, param1, param2, param3, param4, param5)
{
 var avg_ls_data = null;

 // get the data element
 if (gAvgDataElement == null)
 {
  avg_ls_data = doc.getElementById("avglsdata");
  if ((avg_ls_data == null) || (name == null))
  {
   // data element does not exist
   return;
  }
  gAvgDataElement = avg_ls_data;
 }
 else
 {
  avg_ls_data = gAvgDataElement;
 }

 // for some reason you can't fire and event on an element with no parent node
 if ((avg_ls_data == null) || (avg_ls_data.parentNode == null))
 {
  return;
 }

 // set the attributes
 avg_ls_data.setAttribute("function", name);
 
 if (param1)
  avg_ls_data.setAttribute("param1", param1);
 if (param2)
  avg_ls_data.setAttribute("param2", param2);
 if (param3)
  avg_ls_data.setAttribute("param3", param3);
 if (param4)
  avg_ls_data.setAttribute("param4", param4);
 if (param5)
  avg_ls_data.setAttribute("param5", param5);

 avg_ls_data.fireEvent("onrowenter");

 // get the result
 return avg_ls_data.getAttribute("result"); 
}

function avg_ls_get_image(result)
{
 if ((result == null) || (result.length < 1))
  return null;

 var strResult = new String(result);
 var parts = strResult.split("::");

 var image = null;
 switch(parseInt(parts[0]))
 {
  case 0:
   // don't show greens inline
   //image = "linkscanner:safe12.png";
   break;
  case 1:
   image = "linkscanner:caution12.png";
   break;
  case 2:
   image = "linkscanner:warning12.png";
   break;
  case 3:
   image = "linkscanner:blocked12.png";
   break;
  default:
   image = "linkscanner:unknown12.gif";
   break;
 }
 return image;
}

// do the url check
function avg_ls_check_url(doc, element)
{
 if (avg_ls_has_image(element))
  return;

 var result = avg_ls_call_func(doc, "MalsiteCheck", element.href);
 if (result == null)
  return;

 // mark as processed
 element.setAttribute("avglschecked", "1");

 // get the image from the result
 var image = avg_ls_get_image(result);
 if (image == null)
  return;

 // add the image
 avg_ls_add_image(doc, element, image);
}

function avg_ls_add_event(obj, name, func)
{
 if (obj.addEventListener)
 {
  obj.addEventListener(name, func, false);
  return true;
 }
 else if (obj.attachEvent)
 {
  return obj.attachEvent("on"+name, func);
 }
 else
 {
  return false;
 }
}

function avg_ls_remove_event(obj, name, func)
{
 if (obj.removeEventListener)
 {
  obj.removeEventListener(name, func, false);
  return true;
 }
 else if (obj.detachEvent)
 {
  return obj.detachEvent("on"+name, func); 
 }
 else
 {
  return false;
 }
}

avg_ls_add_event(window, "load", avg_ls_onload);