/**
  * Notify Event Handler
  *
  * @param 	unknown_type $event
  * @access 	public
  */
 function notify($event)
 {
     $medium = $event->get('medium');
     // if there is no session referer then return
     if (!$event->get('session_referer')) {
         return OWA_EHS_EVENT_HANDLED;
     }
     // Make entity
     $r = owa_coreAPI::entityFactory('base.referer');
     $r->load($event->get('referer_id'));
     if (!$r->wasPersisted()) {
         // Set id
         if ($event->get('referer_id')) {
             $r->set('id', $event->get('referer_id'));
         } else {
             $r->set('id', $r->generateId($event->get('session_referer')));
         }
         // set referer url
         $r->set('url', $event->get('session_referer'));
         // Set site
         $url = owa_lib::parse_url($event->get('session_referer'));
         $r->set('site', $url['host']);
         if ($medium === 'organic-search') {
             $r->set('is_searchengine', true);
         }
         // set title. this will be updated later by the crawler.
         $r->set('page_title', '(not set)');
         // Crawl and analyze refering page
         if (owa_coreAPI::getSetting('base', 'fetch_refering_page_info') && $medium != 'organic-search') {
             //owa_coreAPI::debug('hello from logReferer');
             $crawler = new owa_http();
             //$crawler->fetch($this->params['HTTP_REFERER']);
             $res = $crawler->getRequest($event->get('session_referer'));
             owa_coreAPI::debug('http request response: ' . print_r($res, true));
             //Extract Title
             $title = trim($crawler->extract_title());
             if ($title) {
                 $r->set('page_title', owa_lib::utf8Encode($title));
             }
             $se = $r->get('is_searchengine');
             //Extract anchortext and page snippet but not if it's a search engine...
             if ($se != true) {
                 $snippet = $crawler->extract_anchor_snippet($event->get('inbound_page_url'));
                 if ($snippet) {
                     if (function_exists('iconv')) {
                         $snippet = iconv('UTF-8', 'UTF-8//TRANSLIT', $snippet);
                     }
                     $r->set('snippet', $snippet);
                 }
                 $anchortext = $crawler->anchor_info['anchor_text'];
                 if ($anchortext) {
                     $r->set('refering_anchortext', owa_lib::utf8Encode($anchortext));
                 }
             }
         }
         // Persist to database
         $ret = $r->create();
         if ($ret) {
             return OWA_EHS_EVENT_HANDLED;
         } else {
             return OWA_EHS_EVENT_FAILED;
         }
     } else {
         owa_coreAPI::debug('Not Persisting. Referrer already exists.');
         return OWA_EHS_EVENT_HANDLED;
     }
 }