public function homeSearch()
 {
     DB::connection()->enableQueryLog();
     $user_config = array('keywords' => \Input::get('keywords'), 'location' => \Input::get('location'));
     $ltype = '';
     if (!is_numeric($user_config['location'])) {
         if (strpos($user_config['location'], ',') === false) {
             $data['location'] = $user_config['location'];
             $ltype = 'city';
         } else {
             $loc = explode(', ', $user_config['location']);
             $data['search_city'] = $loc[0];
             $data['search_state'] = $loc[1];
             $data['location'] = $data['search_city'] . ', ' . $data['search_state'];
             $ltype = 'default';
         }
     } else {
         //Assign zip code to the data
         $data['location'] = $user_config['location'];
         $ltype = 'zip';
     }
     //Get the filter options matching the location
     $data['filter_options']['city'] = \App\City::take(5)->get();
     if (count(Input::get()) == 3) {
         if ($ltype == 'default') {
             $search_type = 'default';
         } elseif ($ltype == 'city') {
             $search_type = 'default_city';
         } else {
             $search_type = 'default_zip';
         }
     } else {
         if ($ltype == 'default') {
             $search_type = 'filter';
         } elseif ($ltype == 'city') {
             $search_type = 'filter_city';
         } else {
             $search_type = 'filter_zip';
         }
     }
     //echo $search_type;
     //dd(Input::get());
     switch ($search_type) {
         case 'default':
             $data['restaurants'] = \App\Restaurants::join('city', 'city.id', '=', 'restaurants.city_id')->join('state', 'state.id', '=', 'restaurants.state_id')->join('restaurants_info', 'restaurants_info.restaurants_id', '=', 'restaurants.id')->where(function ($query) use($user_config) {
                 $query->where('restaurants.name', 'LIKE', '%' . $user_config['keywords'] . '%')->orWhere('restaurants.categories', 'LIKE', '%' . $user_config['keywords'] . '%');
             })->where('city.city', '=', $loc[0])->where('state.short', '=', $loc[1])->orderBy('restaurants.rank', 'desc')->orderBy('restaurants.categories', 'asc')->paginate(10);
             foreach ($data['restaurants'] as $rest) {
                 $reviews = $this->getReviewsThree($rest->permalink);
                 //$data['restaurants'][$rest->permalink] = $rest;
                 $rest->reviews_group = $reviews;
                 //dd($rest);
             }
             $data['meta_title'] = 'Find the Best ' . $user_config['keywords'] . ' Restaurants in ' . $loc[0] . ', ' . $loc[1] . ' | Restaurant Listings|';
             $data['meta_description'] = $user_config['keywords'] . ' in ' . $loc[0] . ', ' . $loc[1] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             $data['meta_keywords'] = $loc[0] . ', ' . $loc[1] . ', ' . $user_config['keywords'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             session(["search_city" => $loc[0], "search_state" => $loc[1], "search_zip" => ""]);
             break;
         case 'default_city':
             $data['restaurants'] = \App\Restaurants::join('city', 'city.id', '=', 'restaurants.city_id')->join('restaurants_info', 'restaurants_info.restaurants_id', '=', 'restaurants.id')->where(function ($query) use($user_config) {
                 $query->where('restaurants.name', 'LIKE', '%' . $user_config['keywords'] . '%')->orWhere('restaurants.categories', 'LIKE', '%' . $user_config['keywords'] . '%');
             })->where('city.city', '=', $data['location'])->orderBy('restaurants.rank', 'desc')->orderBy('restaurants.categories', 'asc')->paginate(10);
             foreach ($data['restaurants'] as $rest) {
                 $reviews = $this->getReviewsThree($rest->permalink);
                 //$data['restaurants'][$rest->permalink] = $rest;
                 $rest->reviews_group = $reviews;
                 //dd($rest);
             }
             $data['meta_title'] = 'Find the Best ' . $user_config['keywords'] . ' Restaurants in ' . $data['location'] . ' | Restaurant Listings|';
             $data['meta_description'] = $user_config['keywords'] . ' in ' . $data['location'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             $data['meta_keywords'] = $data['location'] . ', ' . $user_config['keywords'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             session(["search_city" => $data['location'], "search_state" => "", "search_zip" => ""]);
             break;
         case 'default_zip':
             //Get restaurants matching the keywords and the location
             $data['restaurants'] = \App\Restaurants::join('city', 'city.id', '=', 'restaurants.city_id')->join('state', 'state.id', '=', 'restaurants.state_id')->join('restaurants_info', 'restaurants_info.restaurants_id', '=', 'restaurants.id')->where(function ($query) use($user_config) {
                 $query->where('restaurants.name', 'LIKE', '%' . $user_config['keywords'] . '%')->orWhere('restaurants.categories', 'LIKE', '%' . $user_config['keywords'] . '%');
             })->where('restaurants.zip', 'LIKE', $user_config['location'])->orderBy('restaurants.rank', 'desc')->orderBy('restaurants.categories', 'asc')->paginate(10);
             foreach ($data['restaurants'] as $rest) {
                 $reviews = $this->getReviewsThree($rest->permalink);
                 //$data['restaurants'][$rest->permalink] = $rest;
                 $rest->reviews_group = $reviews;
                 //dd($rest);
             }
             $data['meta_title'] = 'Find the Best ' . $user_config['keywords'] . ' Restaurants in ' . $user_config['location'] . ' | Restaurant Listings|';
             $data['meta_description'] = $user_config['keywords'] . ' in ' . $user_config['location'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             $data['meta_keywords'] = $user_config['location'] . ', ' . $user_config['keywords'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             session(["search_city" => "", "search_state" => "", "search_zip" => $user_config['location']]);
             break;
         case 'filter':
             $data['restaurants'] = \App\Restaurants::join('city', 'city.id', '=', 'restaurants.city_id')->join('state', 'state.id', '=', 'restaurants.state_id')->join('restaurants_info', 'restaurants_info.restaurants_id', '=', 'restaurants.id')->where(function ($query) use($user_config) {
                 $query->where('restaurants.name', 'LIKE', '%' . $user_config['keywords'] . '%')->orWhere('restaurants.categories', 'LIKE', '%' . $user_config['keywords'] . '%');
             })->where('city.city', '=', $loc[0])->where('state.short', '=', $loc[1])->where(function ($query) {
                 $category = Input::has('category') ? Input::get('category') : NULL;
                 if (isset($category)) {
                     foreach ($category as $c) {
                         $query->orWhere('restaurants.categories', 'LIKE', '%' . $c . '%');
                     }
                 }
                 $ordering = Input::has('ordering') ? Input::get('ordering') : NULL;
                 if (isset($ordering)) {
                     foreach ($ordering as $o) {
                         $query->where('restaurants_info.more_info', 'LIKE', '%' . $o . '%');
                     }
                 }
                 $features = Input::has('features') ? Input::get('features') : NULL;
                 if (isset($features)) {
                     foreach ($features as $f) {
                         $query->where('restaurants_info.more_info', 'LIKE', '%' . $f . '%');
                     }
                 }
                 $reservation = Input::has('reservation') ? 'Takes Reservations  --> Yes' : NULL;
                 if (isset($reservation)) {
                     $query->where('restaurants_info.more_info', 'LIKE', '%' . $reservation . '%');
                 }
                 $price_1 = Input::has('price_1') ? '$' : NULL;
                 $price_2 = Input::has('price_2') ? '$$' : NULL;
                 $price_3 = Input::has('price_3') ? '$$$' : NULL;
                 $price_4 = Input::has('price_4') ? '$$$$' : NULL;
                 if (isset($price_1) || isset($price_2) || isset($price_3) || isset($price_4)) {
                     $query->where(function ($query) use($price_1, $price_2, $price_3, $price_4) {
                         $query->where('restaurants_info.price_range', '=', $price_1)->orWhere('restaurants_info.price_range', '=', $price_2)->orWhere('restaurants_info.price_range', '=', $price_3)->orWhere('restaurants_info.price_range', '=', $price_4);
                     });
                 }
             })->orderBy('restaurants.rank', 'desc')->orderBy('restaurants.categories', 'asc')->paginate(10);
             foreach ($data['restaurants'] as $rest) {
                 $reviews = $this->getReviewsThree($rest->permalink);
                 //$data['restaurants'][$rest->permalink] = $rest;
                 $rest->reviews_group = $reviews;
                 //dd($rest);
             }
             $data['meta_title'] = 'Find the Best ' . $user_config['keywords'] . ' Restaurants in ' . $loc[0] . ', ' . $loc[1] . ' | Restaurant Listings|';
             $data['meta_description'] = $user_config['keywords'] . ' in ' . $loc[0] . ', ' . $loc[1] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             $data['meta_keywords'] = $loc[0] . ', ' . $loc[1] . ', ' . $user_config['keywords'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             session(["search_city" => $loc[0], "search_state" => $loc[1], "search_zip" => ""]);
             break;
         case 'filter_city':
             $data['restaurants'] = \App\Restaurants::join('city', 'city.id', '=', 'restaurants.city_id')->join('restaurants_info', 'restaurants_info.restaurants_id', '=', 'restaurants.id')->where(function ($query) use($user_config) {
                 $query->where('restaurants.name', 'LIKE', '%' . $user_config['keywords'] . '%')->orWhere('restaurants.categories', 'LIKE', '%' . $user_config['keywords'] . '%');
             })->where('city.city', '=', $data['location'])->where(function ($query) {
                 $category = Input::has('category') ? Input::get('category') : NULL;
                 $reservation = Input::has('reservation') ? 'Takes Reservations  --> Yes' : NULL;
                 if (isset($category)) {
                     foreach ($category as $c) {
                         $query->orWhere('restaurants.categories', 'LIKE', '%' . $c . '%');
                     }
                 }
                 if (isset($reservation)) {
                     $query->where('restaurants_info.more_info', 'LIKE', '%' . $reservation . '%');
                 }
                 $price_1 = Input::has('price_1') ? '$' : NULL;
                 $price_2 = Input::has('price_2') ? '$$' : NULL;
                 $price_3 = Input::has('price_3') ? '$$$' : NULL;
                 $price_4 = Input::has('price_4') ? '$$$$' : NULL;
                 if (isset($price_1) || isset($price_2) || isset($price_3) || isset($price_4)) {
                     $query->where(function ($query) use($price_1, $price_2, $price_3, $price_4) {
                         $query->where('restaurants_info.price_range', '=', $price_1)->orWhere('restaurants_info.price_range', '=', $price_2)->orWhere('restaurants_info.price_range', '=', $price_3)->orWhere('restaurants_info.price_range', '=', $price_4);
                     });
                 }
             })->orderBy('restaurants.rank', 'desc')->orderBy('restaurants.categories', 'asc')->paginate(10);
             foreach ($data['restaurants'] as $rest) {
                 $reviews = $this->getReviewsThree($rest->permalink);
                 //$data['restaurants'][$rest->permalink] = $rest;
                 $rest->reviews_group = $reviews;
                 //dd($rest);
             }
             $data['meta_title'] = 'Find the Best ' . $user_config['keywords'] . ' Restaurants in ' . $data['location'] . ' | Restaurant Listings|';
             $data['meta_description'] = $user_config['keywords'] . ' in ' . $data['location'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             $data['meta_keywords'] = $data['location'] . ', ' . $user_config['keywords'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             session(["search_city" => $data['location'], "search_state" => "", "search_zip" => ""]);
             break;
         case 'filter_zip':
             $data['restaurants'] = \App\Restaurants::join('city', 'city.id', '=', 'restaurants.city_id')->join('state', 'state.id', '=', 'restaurants.state_id')->join('restaurants_info', 'restaurants_info.restaurants_id', '=', 'restaurants.id')->where(function ($query) use($user_config) {
                 $query->where('restaurants.name', 'LIKE', '%' . $user_config['keywords'] . '%')->orWhere('restaurants.categories', 'LIKE', '%' . $user_config['keywords'] . '%');
             })->where('restaurants.zip', 'LIKE', $user_config['location'])->where(function ($query) {
                 $category = Input::has('category') ? Input::get('category') : NULL;
                 $reservation = Input::has('reservation') ? 'Takes Reservations  --> Yes' : NULL;
                 if (isset($category)) {
                     foreach ($category as $c) {
                         $query->orWhere('restaurants.categories', 'LIKE', '%' . $c . '%');
                     }
                 }
                 if (isset($reservation)) {
                     $query->where('restaurants_info.more_info', 'LIKE', '%' . $reservation . '%');
                 }
                 $price_1 = Input::has('price_1') ? '$' : NULL;
                 $price_2 = Input::has('price_2') ? '$$' : NULL;
                 $price_3 = Input::has('price_3') ? '$$$' : NULL;
                 $price_4 = Input::has('price_4') ? '$$$$' : NULL;
                 if (isset($price_1) || isset($price_2) || isset($price_3) || isset($price_4)) {
                     $query->where(function ($query) use($price_1, $price_2, $price_3, $price_4) {
                         $query->where('restaurants_info.price_range', '=', $price_1)->orWhere('restaurants_info.price_range', '=', $price_2)->orWhere('restaurants_info.price_range', '=', $price_3)->orWhere('restaurants_info.price_range', '=', $price_4);
                     });
                 }
             })->orderBy('restaurants.rank', 'desc')->orderBy('restaurants.categories', 'asc')->paginate(10);
             foreach ($data['restaurants'] as $rest) {
                 $reviews = $this->getReviewsThree($rest->permalink);
                 //$data['restaurants'][$rest->permalink] = $rest;
                 $rest->reviews_group = $reviews;
                 //dd($rest);
             }
             $data['meta_title'] = 'Find the Best ' . $user_config['keywords'] . ' Restaurants in ' . $user_config['location'] . ' | Restaurant Listings|';
             $data['meta_description'] = $user_config['keywords'] . ' in ' . $user_config['location'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             $data['meta_keywords'] = $user_config['location'] . ', ' . $user_config['keywords'] . ' Online food Order, Get Menu, Reviews, Contact, Location Maps, Directions';
             session(["search_city" => "", "search_state" => "", "search_zip" => $user_config['location']]);
             break;
     }
     $data['cuisine'] = DB::table('categories')->get();
     foreach ($data['restaurants'] as $r) {
         /*    if($r->hours !!= ''){
                          $hours = explode('||', $r->hours);
         
                          foreach($hours as $h)
                          {
                              $ho = explode(' -->', $h);
         
                              if((date('D') == str_replace(' ', '',$ho[0])) && (strpos($ho[1], 'Closed') === false)){
                                  if(strpos($ho[1], 'Open 24 hours') === false){
                                      $r->id = $r->restaurants_id;
         
                                      $td_hours = explode('-', $ho[1]);
                                      $open_time = strtotime(str_replace(' ', '', $td_hours[0]));
                                      $close_time = strtotime(str_replace(' ', '', $td_hours[1]));
                                      if((strtotime(date('g:ia')) > $open_time) && (strtotime(date('g:ia')) < $close_time))
                                      {
                                          $r->opened = 'yes';
                                          break;
                                      }else{
                                          $r->opened = 'no';
                                          break;
                                      }
                                  }else{
                                      $r->opened = 'yes';
                                  }
                              }else{
                                  $r->opened = 'no';
                              }
                          }
                      }else{
                          $r->opened = 'no';
                      }*/
         $r->opened = 'yes';
     }
     $agent = new Agent();
     $agent = $agent->isMobile();
     //dd($data);
     //dd(DB::getQueryLog());
     if ($agent != false) {
         return \View::make('mobile_search')->with($data);
     } else {
         return \View::make('search')->with($data);
     }
 }