// XSS

var XSSInterface = {};

XSSInterface.pollTime = 100;

XSSInterface.canPM = function () {
   if (window.postMessage || document.postMessage) {
      return true;
   }
   
   return false;
};

XSSInterface.setHash = function (target, message, hack) {
   
   try {
      target.location.hash = '#'+message;
      return true;
   }
   catch (e0) {
      try {
         // Lamentablemente, un hack para IE6 e IE 7
         if (message = 'reloadPage') {
            target.location = hack;
         }
         return true;
      }
      catch (e1) {
         alert('Not supported!');
         return false;
      }
   }
   
};

XSSInterface.postMessage = function (target, message, hack) {
   if (XSSInterface.canPM()) {
      target.postMessage(message, '*');
      return true;
   }
   else {
      return XSSInterface.setHash(target, message, hack);
   }
};

XSSInterface.event = function(data) {
   return;
};

XSSInterface.compatibleHandler = function () {
   if ((window.location.hash.length > 1) && (window.location.hash != '#Blog')) {
      XSSInterface.event(window.location.hash);
      window.location.hash = '#Blog';
   }
      
   window.setTimeout(XSSInterface.compatibleHandler, XSSInterface.pollTime);
   
   return;
};

XSSInterface.newHandler = function (event) {
   XSSInterface.event('#'+event.data);
};

XSSInterface.applyListener = function(event) {
   
   XSSInterface.event = event;
   
   if (XSSInterface.canPM()) {
      if (window.attachEvent) {
         window.attachEvent('onmessage', XSSInterface.newHandler);
         return true;
      }
      
      if (window.addEventListener) {
         window.addEventListener('message', XSSInterface.newHandler, false);
         return true;
      }
      
      return false;
   }
   else {
      window.setTimeout(XSSInterface.compatibleHandler, XSSInterface.pollTime);
      return true;
   }
};