protected function event_setup()
 {
     parent::event_setup();
     //look for cms content by calling functions etc
     WaxEvent::clear("cms.content.lookup");
     WaxEvent::add("cms.content.lookup", function () {
         $obj = WaxEvent::data();
         $dealer_lookup = false;
         //check domain name
         $server = $_SERVER['HTTP_HOST'];
         if ($server != Config::get("domains/live") && $server != Config::get("domains/dev")) {
             $dclass = $obj->domain_class;
             $domain = new $dclass();
             if (($found = $domain->filter("webaddress", $server)->filter("status", 1)->first()) && ($dealer = $found->dealers) && ($dealer = $dealer->first()) && ($page = $dealer->pages) && ($page = $page->scope("live")->first())) {
                 $dealer_lookup = $page;
                 $obj->setup_dealer_vars($page, $dealer);
             }
         }
         if (!$dealer_lookup) {
             $obj->content_lookup($obj);
             if (in_array("dealers", $obj->cms_stack) && count($obj->cms_stack) > 1) {
                 $obj->dealer_checked = "/" . trim(implode("/", array_slice($obj->cms_stack, 0, 2)), "/") . "/";
                 $obj->dealer_check();
             }
         }
         //lookin for dealer, so push the dealer urls on to the stack
         if ($dealer_lookup) {
             $obj->dealer_checked = $dealer_lookup->permalink;
             $original_stack = $obj->cms_stack;
             foreach (array_reverse(explode("/", trim($dealer_lookup->permalink, "/"))) as $push) {
                 array_unshift($obj->cms_stack, $push);
             }
             $obj->content_lookup($obj);
             //this might be one of those magic internal pages then...
             if ($obj->cms_throw_missing_content) {
                 $obj->cms_throw_missing_content = false;
                 $obj->cms_stack = $original_stack;
                 $obj->content_lookup($obj);
                 $obj->canonical_url = "/" . trim(implode("/", $original_stack), "/") . "/";
             }
         }
         //check for dealer urls /dealer/xx
         if ($obj->cms_throw_missing_content) {
             $stack = $obj->cms_stack;
             //if this is a dealer url, then pop off the first 2
             if (array_shift($stack) == "dealers" && count($stack)) {
                 $dealer = array_shift($stack);
                 $obj->cms_stack = $stack;
                 if (!$obj->dealer_checked) {
                     $obj->dealer_checked = "/dealers/" . $dealer . "/";
                 }
                 $obj->cms_throw_missing_content = false;
                 $obj->canonical_url = "/" . trim(implode("/", $stack), "/") . "/";
                 WaxEvent::run("cms.content.lookup", $obj);
             }
         }
         if (($dealer_model = $obj->dealer_model) && defined("UVL")) {
             WaxEvent::add("uvl.vehicle.filters", function () use($dealer_model) {
                 $model = WaxEvent::data();
                 $model->filter("dealer_id", $dealer_model->id);
             });
         }
     });
 }