text:
<?php
class Product_model extends CI_Model {
	private $_table='product';
	private $_table_image='product_image';
	private $_table_price='product_price';
	private $_table_country='product_country';
	private $_table_category='product_category';
	private $_tag='tags';
	private $_table_tag='product_tag';
	private $_table_discount='product_discount';
	private $_SiteSession="";
	private $_tmp_cart="temp_cart";
	private $_tmp_shipping="user_temp_cart_shipping";
        private $_table_deal="product_deal";
        private $_table_brand="product_brand";
        private $_table_seller="product_seller";
        private $_table_template="product_view_page";
        private $_table_views="product_views";

        private $_currentUserCountryCode="";

	function __construct() {
		$this->_SiteSession=$this->session->userdata('USER_SITE_SESSION_ID');
                $this->_currentUserCountryCode=$this->session->userdata('FE_SESSION_USER_LOCATION_VAR');
	}

	public function get_all_admin($PerPage=0,$PageNo=0){
            //echo '
'.print_r($_POST);die;
            $userId=  $this->session->userdata('FE_SESSION_VAR');
            $Title              =  $this->input->get_post('SearchFilterTitle',TRUE);
            $productModel       =  $this->input->get_post('SearchFilterCode',TRUE);
            $Status             =  $this->input->get_post('SearchFilterStatus',TRUE);
            $Featured           =  $this->input->get_post('SearchFilterFeatured',TRUE);
            $Deals           =  $this->input->get_post('SearchFilterDeal',TRUE);
            $Popular           =  $this->input->get_post('SearchFilterPopular',TRUE);
            $categoryId         =  $this->input->get_post('SearchFilterTopCategory',TRUE);
            $Region             =  $this->input->get_post('SearchFilterRegion',TRUE);
            $isNew             =  $this->input->get_post('SearchFilterIsNew',TRUE);

            //echo '$Title'.$Title.'$Status '.$Status.'$Featured'.$Featured.'$categoryId'.$categoryId.'$Region'.$Region.' $Deals '.$Deals.' $isNew '.$isNew;die;

            //echo 'PerPage '.$PerPage.'   $PageNo  '.$PageNo;die;
		//$sql="SELECT p.*,pi.Image,co.CountryName,c.CategoryName FROM `product` as p JOIN `product_image` as pi ON(p.productId=pi.productId) JOIN `product_country` AS pc ON(p.productId=pc.productId) JOIN `category` AS c ON(p.categoryId=c.categoryId) LEFT JOIN `country` AS co ON(pc.CountryID=co.CountryID)  WHERE p.Status < 2 AND c.Status='1' ORDER BY p.productId DESC";
                $this->db->select('p.*,pi.image,c.categoryName')->from('product p');
                $this->db->join('product_image pi','p.productId=pi.productId');
                $this->db->join('product_seller ps','p.productId=ps.productId');
                $this->db->join('product_category pc','pc.productId=p.productId');
                $this->db->join('category c','pc.categoryId=c.categoryId', 'LEFT');
                //$this->db->where('c.status','1');
                $this->db->where('ps.userId',$userId);

                if($Status==""){
                    $this->db->where('p.status <','2');
                }else{
                    $this->db->where('p.status',$Status);
                }

                /*if($Featured!=""){
                    $this->db->where('p.Featured',$Featured);
                }*/

                if($categoryId!=""){
                    $this->db->where('p.categoryId',$categoryId);
                }

                if($Title!=""){
                    $this->db->like('p.title',$this->db->escape_like_str($Title));
                }

                /*if($isNew!=""){
                    $this->db->like('p.isNew',$isNew);
                }

                if($Deals!=""){
                    $this->db->like('p.Deals',$Deals);
                }

                if($Popular!=""){
                    $this->db->like('p.Popular',$Popular);
                }*/

                if($productModel!=""){
                    $this->db->like('p.model',$productModel);
                }
                $this->db->group_by('p.productId');
                $this->db->order_by('p.productId','DESC');
                //$this->db->order_by('p.DealPriceUpdateTime','DESC');

                if($PerPage>0){
                    $this->db->limit($PerPage,$PageNo);
                }
                $dataArr= $this->db->get()->result();
                //echo '
'.$this->db->last_query(); die;
                return $dataArr;
	}

        public function get_admin_total(){
            $userId=  $this->session->userdata('FE_SESSION_VAR');
                $Title              =  $this->input->get_post('SearchFilterTitle',TRUE);
                $productModel       =  $this->input->get_post('SearchFilterCode',TRUE);
                $Status             =  $this->input->get_post('SearchFilterStatus',TRUE);
                $Featured           =  $this->input->get_post('SearchFilterFeatured',TRUE);
                $Deals              =  $this->input->get_post('SearchFilterDeal',TRUE);
                $Popular              =  $this->input->get_post('SearchFilterPopular',TRUE);
                $categoryId         =  $this->input->get_post('SearchFilterTopCategory',TRUE);
                $Region             =  $this->input->get_post('SearchFilterRegion',TRUE);
                $IsNew             =  $this->input->get_post('SearchFilterIsNew',TRUE);

                $this->db->select('p.*,pi.Image,co.CountryName,c.CategoryName,c.isAddToCart')->from('product p');
                $this->db->join('product_image pi','p.productId=pi.productId');
                $this->db->join('product_seller ps','p.productId=ps.productId');
                $this->db->join('product_country pc','p.productId=pc.productId');
                $this->db->join('category c','p.categoryId=c.categoryId');
                $this->db->join('country co','pc.CountryID=co.CountryID');
                $this->db->where('c.Status','1');
                $this->db->where('ps.userId',$userId);

                if($Status==""){
                    $this->db->where('p.Status <','2');
                }else{
                    $this->db->where('p.Status',$Status);
                }

                if($Featured!=""){
                    $this->db->where('p.Featured',$Featured);
                }

                if($categoryId!=""){
                    $this->db->where('p.categoryId',$categoryId);
                }

                if($Region!=""){
                    $this->db->where('pc.CountryID',$Region);
                }

                if($IsNew!=""){
                    $this->db->where('p.isNew',$IsNew);
                }

                if($Deals!=""){
                    $this->db->where('p.Deals',$Deals);
                }

                if($Popular!=""){
                    $this->db->where('p.Popular',$Popular);
                }

                if($Title!=""){
                    $this->db->like('p.Title',$this->db->escape_like_str($Title));
                }

                if($productModel!=""){
                    $this->db->like('p.Model',$productModel);
                }

                $this->db->order_by('p.productId','DESC');
                $this->db->order_by('p.DealPriceUpdateTime','DESC');
		$rs=$this->db->get()->result();
                //echo $this->db->last_query();die;
                return count($rs);

        }
	public function get_all_product(){
		$this->db->select('*')->from($this->_table)->where('Status','1');
		return $this->db->get()->result();
	}

	public function add($dataArr){
		$this->db->insert($this->_table,$dataArr);
		return $this->db->insert_id();
        }

        public function add_brand($data){
            $this->db->insert($this->_table_brand,$data);
            return $this->db->insert_id();
        }

        function edit_brand($DataArr,$productId){
            $this->db->where('productId',$productId);
            $this->db->update($this->_table_brand,$DataArr);
            return TRUE;
        }

        function add_product_category($dataArr){
            $rs=$this->db->from($this->_table_category)->where('categoryId',$dataArr['categoryId'])->where('productId',$dataArr['productId'])->get()->result();
            if(count($rs)==0){
                $this->db->insert($this->_table_category,$dataArr);
                return $this->db->insert_id();
            }else{
                return FALSE;
            }
        }

        function add_product_owner($dataArr){
		$this->db->insert($this->_table_seller,$dataArr);
		return $this->db->insert_id();
        }

	public function edit($DataArr,$productId){
		$this->db->where('productId',$productId);
		$this->db->update($this->_table,$DataArr);
		//echo $this->db->last_query();die;
		return TRUE;
	}

	public function change_status($productId,$action){
		if($action=='active'){
			$Status=1;
		}else{
			$Status=0;
		}
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Status'=>$Status));
		//echo $this->db->last_query();die;
		return TRUE;
	}

	public function remove_featured($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Featured'=>0));
		return TRUE;
	}

        public function featured($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Featured'=>1));
		return TRUE;
	}

	public function make_new($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('isNew'=>1));
		return TRUE;
	}

        public function make_old($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('isNew'=>0));
		return TRUE;
	}

        public function deals($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Deals'=>1));
		return TRUE;
	}

        public function remove_deals($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Deals'=>0));
		return TRUE;
	}

	public function popular($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Popular'=>1));
		return TRUE;
	}

        public function remove_popular($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->update($this->_table,array('Popular'=>0));
		return TRUE;
	}

	public function delete($productId){
		// delete from product table
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table);

		// delete prodcut image
		$this->delete_product_image($productId);

		// delete prodcut  price
		$this->delete_product_price($productId);

		// delete prodcut  price
		$this->delete_product_tag($productId);

                $this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_brand);

                $this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_category);

                $this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_deal);

                $this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_seller);
		return TRUE;
	}

	public function add_image($dataArr){
		$this->db->insert_batch($this->_table_image,$dataArr);
		return $this->db->insert_id();
	}

        function edit_image_product($dataArr,$productId){
            $this->db->insert_batch($this->_table_image,$dataArr);
            return $this->db->insert_id();
        }

        function remove_product_by_file($FileName,$productId){
            $this->db->where('productId',$productId);
            $this->db->where('image',$FileName);
            $this->db->delete($this->_table_image);
        }

	public function edit_product_image($dataArr,$productId){
		$this->db->where('productId',$productId);
		$this->db->update($this->_table_image,$dataArr);
		//echo $this->db->last_query();die;
		return TRUE;
	}

	public function get_products_images($productId,$app=false){
            $this->db->select('*')->from($this->_table_image)->where_in('productId',explode(',',$productId));
            if($app)
                return $this->db->get()->result_array();
            else
                return $this->db->get()->result();
	}

	public function delete_product_image($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_image);
	}

	public function add_product_price($dataArr){
            $this->db->insert_batch($this->_table_price,$dataArr);
            return $this->db->insert_id();
	}

        public function edit_product_price($dataArr,$productId){
            $this->db->where('productId',$productId);
            $this->db->delete($this->_table_price);
            $this->db->insert_batch($this->_table_price,$dataArr);
            return $this->db->insert_id();
        }

	public function add_country($dataArr){
		$this->db->insert($this->_table_country,$dataArr);
		return $this->db->insert_id();

	}
	public function edit_price($dataArr,$productId){
		$this->db->where('productId',$productId);
		$this->db->update($this->_table_price,$dataArr);
		//echo $this->db->last_query();die;
		return TRUE;
	}

	public function delete_product_price($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_price);
	}

	public function add_product_tag($dataArr){
            $productId=$dataArr["productId"];
            if(!array_key_exists('tagStr', $dataArr)){return FALSE;}
            $tagArr=explode(',',$dataArr["tagStr"]);
            if(empty($tagArr)){return FALSE;}
            foreach($tagArr AS $k){
                if($this->is_product_tag_added($k,$productId)==FALSE){
                    $this->add_tag_product(array('productId'=>$productId,'tag'=>$k));
                }
            }
            return true;
	}

        public function add_category_tag($dataArr){
            $categoryId=$dataArr["categoryId"];
            $tagArr=explode(',',$dataArr["TagStr"]);
            $categoryTagArr=array();
            foreach($tagArr AS $k){
                $tagDataArr=array();
                $tagDataArr=$this->get_tag_id_by_tag($k);
                if(count($tagDataArr)>0){
                    $rs=$this->db->query("SELECT * FROM category_tag WHERE categoryId='".$categoryId."' AND tagId='".$tagDataArr[0]->tagId."'")->result();
                    if(empty($rs))
                        $categoryTagArr[]=array('categoryId'=>$categoryId,'tagId'=>$tagDataArr[0]->tagId);
                }else{
                    if($k!=""){
                        //echo '
not exis add new
';
                        $tagId=$this->add_tag($k);
                        if($tagId>0){
                                $categoryTagArr[]=array('categoryId'=>$categoryId,'tagId'=>$tagId);
                        }
                    }
                }
            }
            pre($categoryTagArr);
            return true;
	}
	public function get_tag_by_product_id($productId){
            return $this->db->select('GROUP_CONCAT(`tag`) AS productTag',false)->from($this->_table_tag)->where('productId',$productId)->get()->row();
        }
        public function is_product_tag_added($productId,$tag){
            $sql="SELECT * FROM product_tag WHERE `productId`='".$productId."' AND `tag`='".$tag."'";
            $dataArr=$this->db->query($sql)->result();
            if(count($dataArr)>0){
                return TRUE;
            }else{
                return FALSE;
            }
	}
	public function add_tag($tag){
		$dataArr=array('name'=>$this->db->escape_str($tag));
		$this->db->insert($this->_tag,$dataArr);
		return $this->db->insert_id();
	}

	public function get_tag_id_by_tag($tag){
		$this->db->select('*')->from($this->_tag)->where('name',$this->db->escape_str($tag));
		$rs=$this->db->get()->result();
                //echo $this->db->last_query();die;
                return $rs;
	}

	public function add_tag_product($DataArr){
		$this->db->insert($this->_table_tag,$DataArr);
		return $this->db->insert_id();
	}

	public function delete_product_tag($productId){
		$this->db->where_in('productId',explode(',',$productId));
		$this->db->delete($this->_table_tag);
	}

	public function details($id,$app=FALSE){
            $sql="SELECT p.*,b.title AS brandTitle,b.brandId FROM `product` AS p JOIN `product_brand` AS pb ON(p.productId=pb.productId) "
                    . " JOIN `brand` AS b ON(pb.brandId=b.brandId) WHERE p.productId='".$id."' ";
            //die($sql);
            if($app)
                return $this->db->query($sql)->result_array();
            else
                return $this->db->query($sql)->result();
	}

	public function products_for_discount($app=false){
            $sql="SELECT p.productId,p.Title,pc.CountryID "
                    . " FROM product AS p JOIN `product_country` AS pc ON(pc.productId=p.productId) WHERE p.Status=1";
            if($app)
                return $this->db->query($sql)->result_array();
            else
                return $this->db->query($sql)->result();
	}

	public function add_product_discount($dataArr){
            $sql="DELETE FROM `product_discount` WHERE productId IN(".$dataArr['productId'].")";
            $this->db->query($sql);

            $this->db->insert($this->_table_discount,$dataArr);
            return $this->db->insert_id();
	}

	public function add_category_discount($dataArr){
		$productIdArr=$this->db->select('productId')->from($this->_table)->where('categoryId',$dataArr["categoryId"])->where('Status','1')->get()->result();
		if(count($productIdArr)>0){
			$newArr=array();$batchDataArr=array();
			foreach($productIdArr as $k){
				//print_r($k);die;
				$newArr[]=$k->productId;
				$batchDataArr[]=array('productId'=>$k->productId,'DiscountID'=>$dataArr["DiscountID"]);
			}

			$this->db->where_in('productId',$newArr);
			$this->db->delete($this->_table_discount);

			$this->db->insert_batch($this->_table_discount, $batchDataArr);
		}
		return TRUE;
	}

	public function manage_tmp_cart(){
		$countryShortName=$this->session->userdata('USER_SHIPPING_COUNTRY_NAME');

		$sql="DELETE FROM ".$this->_tmp_cart." WHERE  IP='".$this->input->ip_address()."'";
		$this->db->query($sql);
		//echo $this->db->last_query();die;

		$sql="DELETE FROM ".$this->_tmp_shipping."  WHERE IP='".$this->input->ip_address()."'";
		$this->db->query($sql);
		$this->session->unset_userdata('ShippingSelected');
		$this->session->set_userdata('TotalItemInCart',0);
		$this->session->unset_userdata('IsShipping');
		$this->session->unset_userdata('ShippingID');

		$this->session->unset_userdata('OrderDetails');
		$this->session->unset_userdata('OrderID');
		$this->session->unset_userdata('PaymentThanksPageOrderID');

		return TRUE;
	}

	public function manage_tmp_cart1(){
		$countryShortName=$this->session->userdata('USER_SHIPPING_COUNTRY_NAME');

		$sql="DELETE FROM ".$this->_tmp_cart." WHERE PurchaseLocation <> '".$countryShortName."' AND IP='".$this->input->ip_address()."'";
		$this->db->query($sql);
		//echo $this->db->last_query();die;

		$sql="DELETE FROM ".$this->_tmp_shipping." WHERE PurchaseLocation <> '".$countryShortName."' AND IP='".$this->input->ip_address()."'";
		$this->db->query($sql);
		return TRUE;
	}

	public function copy_tag($productId,$NewCopyproductId){
		$OldTagArr=$this->db->select('*')->from($this->_table_tag)->where('productId',$productId)->get()->result();
		$BatchArr=array();
		$TmpArr=array();
		foreach($OldTagArr AS $k){
			$TmpArr=array('productId'=>$NewCopyproductId,'tagId'=>$k->tagId);
			$BatchArr[]=$TmpArr;
		}
		$this->db->insert_batch($this->_table_tag,$BatchArr);
		//echo $this->db->last_query();die;
		return TRUE;
	}

        public function get_all_tag(){
            return $this->db->select('*')->from($this->_tag)->order_by("tagId", "desc")->get()->result();
        }

        public function update_tag_state($tagId,$DataArr){
		$this->db->where_in('tagId',explode(',',$tagId));
		$this->db->update($this->_tag,$DataArr);
		return TRUE;
	}

        public function get_top_category($categoryId){
            //echo '$categoryId = '.$categoryId;
            $sql="SELECT CategoryName,ParrentcategoryId,categoryId "
                    . " FROM `category` WHERE `categoryId`=(select `ParrentcategoryId` from category where `categoryId`=$categoryId)";
            //echo $sql;die;
                $rs=$this->db->query($sql)->result();
            //echo '
';print_r($rs);//
            if($rs[0]->ParrentcategoryId>0){
                $sql1="SELECT CategoryName,ParrentcategoryId FROM `category` WHERE `categoryId`='".$rs[0]->ParrentcategoryId."'";
                //echo $sql1; //die;
                $rs1=$this->db->query($sql1)->result();
               // echo '
';print_r($rs1);die;
                return strtolower($rs1[0]->CategoryName);
            }else{
                return strtolower($rs[0]->CategoryName);
            }
        }

    function is_exist_deal_for_category($TopcategoryId,$RegionID){
        $rs=$this->db->from($this->_table_deal)->where('RegionID',$RegionID)->where('categoryId',$TopcategoryId)->get()->result();
        if(count($rs)>0)
            return TRUE;
        else
            return FALSE;
    }

    public function get_recent($noOfItem=12,$app=false,$latitude="",$longitude=""){
        if($app==TRUE){
            $this->_currentUserCountryCode=get_counry_code_from_lat_long($latitude,$longitude);
        }
        $sql="SELECT p.productId,p.title,p.lowestPrice,p.heighestPrice,p.qty,p.minQty,pi.image,c.categoryName "
                . " FROM product AS p JOIN product_image AS pi ON(pi.productId=p.productId) "
                . " JOIN product_category AS pc ON(pc.productId=p.productId) JOIN category AS c ON(pc.categoryId=c.categoryId) "
                . " JOIN product_seller AS ps ON(p.productId=ps.productId) JOIN user AS u ON(ps.userId=u.userId) "
                . " JOIN billing_address AS ba ON(u.userId=ba.userId) JOIN country AS co ON(ba.countryId=co.countryId) "
                . " WHERE co.countryCode='".$this->_currentUserCountryCode."' AND p.status=1 AND p.isNew = 1 AND c.status=1 GROUP BY pi.productId ORDER BY p.productId DESC,p.updateTime DESC LIMIT 0,$noOfItem";
        if($app==TRUE)
            return $this->db->query($sql)->result_array();
        else
            return $this->db->query($sql)->result();
    }

    public function get_best_selling($noOfItem=12,$app=false,$latitude="",$longitude=""){
        if($app==TRUE){
            $this->_currentUserCountryCode=get_counry_code_from_lat_long($latitude,$longitude);
        }
        $sql="SELECT p.productId,p.title,p.lowestPrice,p.heighestPrice,p.qty,p.minQty,pi.image,c.categoryName "
            . " FROM product AS p JOIN product_image AS pi ON(pi.productId=p.productId) "
            . " JOIN product_category AS pc ON(pc.productId=p.productId) JOIN category AS c ON(pc.categoryId=c.categoryId)  "
            . " JOIN product_seller AS ps ON(p.productId=ps.productId) JOIN user AS u ON(ps.userId=u.userId) "
            . " JOIN billing_address AS ba ON(u.userId=ba.userId) JOIN country AS co ON(ba.countryId=co.countryId) "
            . " WHERE co.countryCode='".$this->_currentUserCountryCode."' AND p.status=1 AND p.popular = 1 AND c.status=1 GROUP BY pi.productId ORDER BY p.productId DESC,p.updateTime DESC LIMIT 0,$noOfItem";
        if($app==TRUE)
            return $this->db->query($sql)->result_array();
        else
            return $this->db->query($sql)->result();
    }

    public function get_featured_products($noOfItem=12,$app=false,$latitude="",$longitude=""){
        if($app==TRUE){
            $this->_currentUserCountryCode=get_counry_code_from_lat_long($latitude,$longitude);
        }
        $sql="SELECT p.productId,p.title,p.lowestPrice,p.heighestPrice,p.qty,p.minQty,pi.image,c.categoryName "
            . " FROM product AS p JOIN product_image AS pi ON(pi.productId=p.productId) "
            . " JOIN product_category AS pc ON(pc.productId=p.productId) JOIN category AS c ON(pc.categoryId=c.categoryId)  "
            . " JOIN product_seller AS ps ON(p.productId=ps.productId) JOIN user AS u ON(ps.userId=u.userId) "
            . " JOIN billing_address AS ba ON(u.userId=ba.userId) JOIN country AS co ON(ba.countryId=co.countryId) "
            . " WHERE co.countryCode='".$this->_currentUserCountryCode."' AND p.status=1 AND p.featured = 1 AND c.status=1 GROUP BY pi.productId ORDER BY p.productId DESC,p.updateTime DESC LIMIT 0,$noOfItem";
        if($app==TRUE)
            return $this->db->query($sql)->result_array();
        else
            return $this->db->query($sql)->result();
    }

    function get_page_template($app=false){
        if($app)
            return $this->db->from($this->_table_template)->get()->result_array();
        else
            return $this->db->from($this->_table_template)->get()->result();
    }

    function get_products_price($produtcId,$app=false){
        if($app)
            return $this->db->from($this->_table_price)->where('productId',$produtcId)->order_by('qty','asc')->get()->result_array();
        else
            return $this->db->from($this->_table_price)->where('productId',$produtcId)->order_by('qty','asc')->get()->result();
    }

    function get_products_price_details_by_id($productPriceId,$app=false){
        if($app)
            $data = $this->db->from($this->_table_price)->where('productPriceId',$productPriceId)->get()->result_array();
        else
            $data = $this->db->from($this->_table_price)->where('productPriceId',$productPriceId)->get()->result();

        if(empty($data))
            return array();
        else
            return $data[0];
    }

    function update_view($productId){
        $rs=  $this->db->get_where($this->_table_views,array('productId'=>$productId))->result();
        if(count($rs)>0){
            $this->db->where('productId',$productId);
            $this->db->update($this->_table_views,array('noOfViews'=>(int)$rs[0]->noOfViews+1));
        }else{
            $this->db->insert($this->_table_views,array('noOfViews'=>1,'productId'=>$productId));
        }
        return TRUE;
    }

    function get_views_times_by_seller($app=false){
        $this->db->select('p.title,pv.*')->from($this->_table.' p')->join($this->_table_seller.' ps','p.productId=ps.productId');
        $this->db->join($this->_table_views.' pv','p.productId=pv.productId','left')->where('ps.userId',  $this->session->userdata('FE_SESSION_VAR'));
        if($app)
            return $this->db->get()->result_array();
        else
        return $this->db->get()->result();
    }

    function update_product_quantity($productId,$qty,$action='-'){
        $this->db->query("UPDATE `product` SET `qty`=`qty`$action".$qty." WHERE `productId`=".$productId);
    }

    function edit_product_tag($dataArr){
        $productId=$dataArr["productId"];
        if(!array_key_exists('tagStr', $dataArr)){return FALSE;}
        $tagArr=explode(',',$dataArr["tagStr"]);
        if(empty($tagArr)){return FALSE;}
        $tagDataArr=array();
        foreach($tagArr AS $k){
            if($this->is_product_tag_added($productId,$k)==FALSE){
                $tagDataArr[]=array('productId'=>$productId,'tag'=>$k);
            }
        }
        if(!empty($tagDataArr))
            $this->db->insert_batch($this->_table_tag,$tagDataArr);
        return true;
    }

    function get_tax_for_current_location($productId,$taxCol){
        return $this->db->select('c.'.$taxCol)->from('category c')->join($this->_table_category.' pc','pc.categoryId=c.categoryId')->join($this->_table.' p','p.productId=pc.productId')->where('p.productId',$productId)->get()->row();
    }

    public function get_new_product($latitude,$longitude){
        $this->_currentUserCountryCode=get_counry_code_from_lat_long($latitude,$longitude);
        $sql="SELECT p.productId,p.title,p.lowestPrice,p.heighestPrice,p.qty,p.minQty,pi.image,c.categoryName "
                . " FROM product AS p JOIN product_image AS pi ON(pi.productId=p.productId) "
                . " JOIN product_category AS pc ON(pc.productId=p.productId) JOIN category AS c ON(pc.categoryId=c.categoryId) "
                . " JOIN product_seller AS ps ON(p.productId=ps.productId) JOIN user AS u ON(ps.userId=u.userId) "
                . " JOIN billing_address AS ba ON(u.userId=ba.userId) JOIN country AS co ON(ba.countryId=co.countryId) "
                . " WHERE co.countryCode='".$this->_currentUserCountryCode."' AND p.status=1 AND p.isNew = 1 AND c.status=1 GROUP BY pi.productId ORDER BY p.productId DESC,p.updateTime DESC";
        return $this->db->query($sql)->result_array();
    }

    public function get_all_best_selling_product($latitude="",$longitude=""){
        $this->_currentUserCountryCode=get_counry_code_from_lat_long($latitude,$longitude);
        $sql="SELECT p.productId,p.title,p.lowestPrice,p.heighestPrice,p.qty,p.minQty,pi.image,c.categoryName "
            . " FROM product AS p JOIN product_image AS pi ON(pi.productId=p.productId) "
            . " JOIN product_category AS pc ON(pc.productId=p.productId) JOIN category AS c ON(pc.categoryId=c.categoryId)  "
            . " JOIN product_seller AS ps ON(p.productId=ps.productId) JOIN user AS u ON(ps.userId=u.userId) "
            . " JOIN billing_address AS ba ON(u.userId=ba.userId) JOIN country AS co ON(ba.countryId=co.countryId) "
            . " WHERE co.countryCode='".$this->_currentUserCountryCode."' AND p.status=1 AND p.popular = 1 AND c.status=1 GROUP BY pi.productId ORDER BY p.productId DESC,p.updateTime DESC";
        return $this->db->query($sql)->result_array();
    }

    public function get_all_featured_product($latitude="",$longitude=""){
        $this->_currentUserCountryCode=get_counry_code_from_lat_long($latitude,$longitude);

        $sql="SELECT p.productId,p.title,p.lowestPrice,p.heighestPrice,p.qty,p.minQty,pi.image,c.categoryName "
            . " FROM product AS p JOIN product_image AS pi ON(pi.productId=p.productId) "
            . " JOIN product_category AS pc ON(pc.productId=p.productId) JOIN category AS c ON(pc.categoryId=c.categoryId)  "
            . " JOIN product_seller AS ps ON(p.productId=ps.productId) JOIN user AS u ON(ps.userId=u.userId) "
            . " JOIN billing_address AS ba ON(u.userId=ba.userId) JOIN country AS co ON(ba.countryId=co.countryId) "
            . " WHERE co.countryCode='".$this->_currentUserCountryCode."' AND p.status=1 AND p.featured = 1 AND c.status=1 GROUP BY pi.productId ORDER BY p.productId DESC,p.updateTime DESC";
        return $this->db->query($sql)->result_array();
    }

    public function admin_list($per_page,$offcet=0){
        $ProductName=$this->input->post('FilterProductName',TRUE);
        $FilterProductStatus=$this->input->post('FilterProductStatus',TRUE);

        $this->db->select('p.*,pi.image,c.categoryName,u.email AS sellerEmail,u.firstName AS sellerFirstName,u.lastName AS sellerLastName,ba.city,co.countryName');
        $this->db->from('product p');
        $this->db->join('product_image pi','p.productId=pi.productId');
        $this->db->join('product_seller ps','p.productId=ps.productId');
        $this->db->join('user u','ps.userId=u.userId');
        $this->db->join('billing_address ba','ba.userId=u.userId');
        $this->db->join('country co','co.countryId=ba.countryId');
        $this->db->join('product_category pc','pc.productId=p.productId');
        $this->db->join('category c','pc.categoryId=c.categoryId', 'LEFT');
        //$this->db->where('c.status','1');

        if($FilterProductStatus==""){
            $this->db->where('p.status <','2');
        }else{
            $this->db->where('p.status',$FilterProductStatus);
        }

        /*if($Featured!=""){
            $this->db->where('p.Featured',$Featured);
        }*/

        if($ProductName!=""){
            $this->db->like('p.title',$this->db->escape_like_str($ProductName));
        }

        /*if($isNew!=""){
            $this->db->like('p.isNew',$isNew);
        }

        if($Deals!=""){
            $this->db->like('p.Deals',$Deals);
        }

        if($Popular!=""){
            $this->db->like('p.Popular',$Popular);
        }

        if($productModel!=""){
            $this->db->like('p.model',$productModel);
        }*/
        $this->db->group_by('p.productId');
        $this->db->order_by('p.productId','DESC');
        //$this->db->order_by('p.DealPriceUpdateTime','DESC');

        if($per_page>0){
            $this->db->limit($per_page,$offcet);
        }
        $dataArr= $this->db->get()->result();
        //echo '
'.$this->db->last_query(); die;
        return $dataArr;

        /*$sql='SELECT p.*,u.email AS sellerEmail,u.firstName AS sellerFirstName,u.lastName AS sellerLastName '
                . ' FROM `product` AS p JOIN `product_seller` AS ps ON(p.productId=ps.productId) '
                . ' JOIN `user` AS u ON(u.userId=ps.userId) WHERE o.status >1 ';

        if($FilterProductStatus!=""):
            $sql.=" AND p.status=$FilterProductStatus ";
        endif;

        $sql .= 'ORDER BY p.productId DESC';
        $sql.=" LIMIT $offcet,$per_page";
        $arr=$this->db->query($sql)->result();
        //echo $this->db->last_query(); die;
        return $arr;*/
    }

    public function admin_list_total($per_page,$offcet=0){
        $ProductName=$this->input->post('FilterProductName',TRUE);
        $FilterProductStatus=$this->input->post('FilterProductStatus',TRUE);

        $this->db->select('p.*,pi.image,c.categoryName,u.email AS sellerEmail,u.firstName AS sellerFirstName,u.lastName AS sellerLastName,ba.city,co.countryName');
        $this->db->from('product p');
        $this->db->join('product_image pi','p.productId=pi.productId');
        $this->db->join('product_seller ps','p.productId=ps.productId');
        $this->db->join('user u','ps.userId=u.userId');
        $this->db->join('billing_address ba','ba.userId=u.userId');
        $this->db->join('country co','co.countryId=ba.countryId');
        $this->db->join('product_category pc','pc.productId=p.productId');
        $this->db->join('category c','pc.categoryId=c.categoryId', 'LEFT');
        //$this->db->where('c.status','1');

        if($FilterProductStatus==""){
            $this->db->where('p.status <','2');
        }else{
            $this->db->where('p.status',$FilterProductStatus);
        }

        /*if($Featured!=""){
            $this->db->where('p.Featured',$Featured);
        }*/

        if($ProductName!=""){
            $this->db->like('p.title',$this->db->escape_like_str($ProductName));
        }

        /*if($isNew!=""){
            $this->db->like('p.isNew',$isNew);
        }

        if($Deals!=""){
            $this->db->like('p.Deals',$Deals);
        }

        if($Popular!=""){
            $this->db->like('p.Popular',$Popular);
        }

        if($productModel!=""){
            $this->db->like('p.model',$productModel);
        }*/
        $this->db->group_by('p.productId');
        $this->db->order_by('p.productId','DESC');
        //$this->db->order_by('p.DealPriceUpdateTime','DESC');

        if($per_page>0){
            $this->db->limit($per_page,$offcet);
        }
        $dataArr= $this->db->get()->result();
        //echo '
'.$this->db->last_query(); die;
        return count($dataArr);
    }
}


Catch this best chance to find perfect products at trendygolf.com with our excellent reduction: 50% off Trendy Golf Sale Lines. Enjoy savings.
Get amazing savings on select items at affordable prices using David Jones coupon: Saving 30% off at David Jones.
Find a gorgeous selection of products you need at jetradar.com: Up to $16 saving on Jetradar.com. Purchase what you like with affordable price.
Enjoy a great bargain when you shop at lipstickqueen.com, Save $22 off sitewide. This sale will end soon.
Just take this chance to find your favourites at sophieallport.com with this great deal: On the farm lampshade only £40. For limited time only.
By providing our dear customers with 0 coupon codes, 0 deals and other in-store offers, FLAVR discount offers for your all orders, so you can get your FLAVR items for less, especially with your FLAVR promo code!
We provide all the newest FLAVR coupon & promo codes for you at FLAVR or online. We try our best to find all the discounts going on at FLAVR and shopflavr.com in order to save your money. We also give detailed shopping tips to let you successfully use the FLAVR promo code. Start applying the FLAVR coupon code for free before checkout.
Apply our best FLAVR promo code and get bigger discounts at online store FLAVR. Amazing discounts at FLAVR are waiting for you. Click now, don't regret it.
How to Use Promo Codes at shopflavr.com?
Save with these tested FLAVR promo code valid in April 2019. Best FLAVR Coupon Codes for you tody: receive 15% off with our 3 discount codes.


Experience the technology that powers the world's largest datacenters, at no cost.
Go beyond hyperconverged infrastructure and get hands-on experience with the Enterprise Cloud Platform that powers the world's largest datacenters.
Experience a live Nutanix instance for 2 hours.
Ready to use Community Edition in your own environment? Register to get free access.
We saw immediate performance gains across the board with Nutanix, enabling us to virtualize all of our workloads, including our large MS SQL databases and our Exchanges servers.
Get the details to help you be most productive using Community Edition.
Join the Next Community to exchange ideas with peers, learn best practices from experts and share your knowledge with a thriving worldwide community.


Future-proof your operations with technology that drives improvement, anywhere in the world.
Business is changing all the time. The way we work is evolving, becoming more flexible and agile. The challenge is ensuring communications technology can keep up.
Chances are, your existing clunky, traditional on-premise telephony infrastructure wasn't built with today's demands in mind. It could be holding your business back.
Work no longer just takes place in the office. It happens at home, on the road and at clients' premises. When traditional phone systems can't cope, you need an integrated solution that joins up all the dots.
Wavenet can help, creating a bespoke telephony solution for your business which provides the latest features and innovations, via a simple Cloud-based portal.
It will give your staff the flexibility to be brilliant from wherever they are, while you get greater control over your team, your business and your performance.
The power of the Cloud.
By 2020, 80% of UK businesses will be using some form of Cloud-based communications technology.
With technology and innovation evolving constantly, our solutions will always keep your business ahead of the competition.
Wavenet's continuous and reliable service provides bespoke solutions to suit your exact business requirements.
Cloud phone systems keep your workforce agile and flexible, helping to drive productivity and boost staff morale and job satisfaction.
We'll work with you to ensure you always have access to the latest, proven emerging technologies from leading suppliers.
Easy to set-up, implement and scale, your business can enjoy the benefits of a Cloud phone system straight away.


This was a time when Thomas De Rotherham the Archbishop of York owned considerable land in Dalton and endowed the College of Jesus in Rotherham, which he founded in 1482, with land in the Dalton parish.
In this medieval period the area was thought to be common land and also forested Royal hunting grounds, in the 14th and 15th centuries as the demand increased for land, the area now known as Dalton Magna was cleared and farm dwellings were built. This is probably quite correct as Dalton Magna was first recorded in this century as opposed to being referred to as simply Dalton.
Back then a farm labourer was paid the princely sum of 2/- a week, whilst the local carpenter and Mason would receive 3/- per week. The farmers at Dalton in 1468 were ordered to yoke their pigs until Michaelmas day which fell on the 29th day of September that year, this was ordered by the Manorial Court of the time and the order was to ensure the preservation of crops. The fine for a breach of this order was 6d for every week pigs were found without a yoke.
On the 25th October 1471 the court ordered all tenants to repair the boundaries of cultivated land abutting on Coleryddyng. From which we learn that coal mining was taking place by the good old Dalton folk way back then, failure to complete the order before Martinmas on the 11th November would incur a 2d fine for each ditch, which were known as a Gappe in the period.
In the same year a further Dalton Penalty enjoined John Tagg constables and others present it is enjoined on Alexander Rookeby and Thomas Shaghe to scour a water-course there before the feat of the Invention of the Holy Cross next under penalty on both separately 4d.
Also in 1483 Dalton amercement 4d John Rawlyn constable and his fellows present John Moody 4d for not attending tourn, which means he failed to appear at Conisbrough Court.
Again in this year a Dalton Penalty enjoined John Tagg, constable, and his fellows present that it is enjoined on Alexander Rookeby and Thomas Shaghe to scour a water-course there before the feast of the Invention of the Holy Cross next under penalty on both separately 4d.


Triple schezwan crispy noodles with crackling spinach add a special crunchy touch to these tasty noodle preparation.
Cut spinach into thin long strips. Heat sufficient oil in a kadai.
Cut the boiled noodles into small pieces and deep-fry till crisp. Drain on absorbent paper. Similarly, deep-fry spinach till crisp, drain on absorbent paper, sprinkle some salt.
Heat a non-stick pan, add 2 tablespoons of Schezwan chutney and rice and mix well. Saute till the rice is heated through.
Place half the fried noodles on a serving plate. Spread the rice over the noodles.
Heat ½ cup Schezwan chutney in the same pan. Break the dried red chillies and add to the pan. Add chicken mince and sauté for 1-2 minutes. Add ½ cup water and cook for 5-8 minutes or till the mince is cooked.
Add tomato ketchup to the pan and mix. Add spring onion greens and mix well.
Put the chicken over the rice. Top it with fried spinach and remaining fried noodles and serve.


text:
How ESPN, College Football Playoff are saving bowl games
Lost in the shadow of the mighty College Football Playoff, several less prestigious postseason bowl games recently have faced a tough choice.
Costs had gone up. Attendance was going down. What could they do about it?
Three of them decided to bail out:
• In January, the non-profit owner of the Poinsettia Bowl in San Diego announced it was cancelling the game after 12 years.
• A few months later, the non-profit Miami Beach Bowl announced it was selling itself to ESPN Events after not being able to find a title sponsor since its birth in 2014.
• After losing money in 2013 and 2014, the non-profit owner of the Foster Farms Bowl also transferred ownership of the game to a new owner last year with deeper pockets, the San Francisco 49ers.
"The Playoff had had a bigger impact than expected in terms of diminishing the other bowls," said Gary Cavalli, the former executive director of the San Francisco Bowl Game Association, which founded the Foster Farms Bowl in 2002.
More:Mayfield, Love top USA TODAY Sports' college football All-American team
More:Amway Coach's Call of the Year semifinals: Cast your vote
More:10 leading candidates to win Heisman in 2018
As a result, more lower-tier bowl games have been picked up on the cheap by for-profit companies such as ESPN Events – altering the complexion and business model of an industry that previously was exclusively run by local non-profit civic organizations that promoted tourism.
It's part of the fallout of an industry that is now dominated by the Playoff, which started in 2014. It's also a result of market saturation. In 1996, there were only 18 bowl games, virtually all of them run by these stand-alone non-profits.
This year, there are 40 major college postseason games, starting Saturday, with a record 17 of them owned by larger for-profit businesses, including three pro sports franchises: the 49ers, Detroit Lions (Quick Lane Bowl) and New York Yankees (Pinstripe Bowl).
The biggest game, the national championship, is owned by the College Football Playoff Administration LLC, a for-profit entity whose members are the 10 major college football conferences and Notre Dame.
The other 13 "for-profit" games are owned by ESPN Events, a division of the cable sports network. That's crept up considerably since 2005, when ESPN Events owned just three of the 28 bowl games.
"The ownership and operation of a bowl game is something that is more in the wheelhouse of ESPN Events," said Chuck Sullivan, spokesman for the American Athletic Conference, which owned the Miami Beach Bowl before selling it to ESPN Events. "So as long as we maintained a spot in the bowl on an annual basis, it made sense to sell the game to them."
The Miami Beach Bowl drew just 15,262 to last year's game at Marlins Park, whose capacity is about 37,000. After buying it from the AAC, ESPN Events moved it to a 20,500-seat soccer stadium in Frisco, Texas, where Southern Methodist (7-5) will face Louisiana Tech (6-6) in the inaugural Frisco Bowl on Dec. 20.
The move underscores why ESPN values these lower-tier games. It's not because of crowd size. It's about television viewership, too. Average bowl game attendance has declined for nine straights years, down to 41,718 last season, the lowest mark since the 1940s, when there were only around a dozen bowl games, according to NCAA records.
But smaller crowds and the struggles of some of these games don't mean the overall bowl industry is in trouble. Far from it. The business model is just shifting.
A profit of $517 million
The system is still about supply and demand. And There's still plenty of demand for these bowls from the conferences, schools and fans who want their teams to play in them if they're eligible with at least a 6-6 record. Three bowl-eligible teams were left out of the bowl schedule this year and weren't happy about it: Buffalo (6-6), Western Michigan (6-6) and Texas San Antonio (6-5).
There's also plenty of money supply now to help pay the expenses of all the teams when they go to these games, mostly coming from the windfall of the Playoff, which gets about $470 million per year from ESPN.
The bowl games collectively paid out about $622 million to conferences and schools last season, including $441 million from the Playoff alone, according to NCAA financial records reviewed by USA TODAY Sports. After $105 million in expenses, the conferences and schools took home a $517 million "profit."
"The bowl system is really healthy," said Clint Overby, vice president at ESPN Events.
For conferences that participate in lower-tier games, it's healthy in large part because the Playoff subsidizes them even if they don't participate in the Playoff.
Last year, for example, the American Athletic Conference (AAC) placed seven teams in bowl games, including Tulsa in the Miami Beach Bowl.
The AAC got $20.3 million from the Playoff in revenue sharing despite not having a team involved in it. If not for that Playoff share, the AAC would have lost more than a $1 million on its bowl trips because the lower-tier games didn't pay enough to cover $5.9 million in combined league expenses, according to NCAA financial forms.
It's a system that works well for the biggest bowls and all the leagues and teams that play in the postseason. But it hasn't exactly worked for some of the smaller local stand-alone organizations whose visibility and importance have been shrunk by the Playoff. Those businesses needed to sell tickets, sponsorships and TV rights to keep the lights on and meet the payout required to the participating conferences that put their teams in their games.
And that's why some have bailed and other business models have taken over instead.
Trouncing the competition
Such games arguably make more financial sense for ESPN than traditional non-profit bowl organizations because the currency of the realm for ESPN is eyeballs on screens and not so much butts in stadium seats.
"The ESPN bowl games, which account for the growth in bowl games, are essentially made-for-TV events," Stanford economist Roger Noll told USA TODAY Sports.
Consider that Miami Beach Bowl in which Tulsa beat Central Michigan last year, 55-10. A crowd of 15,262 was bad news for a small non-profit that relies on ticket sales and corporate sponsorships to make ends meet.
But attendance doesn't matter as much to a deep-pocketed media network. ESPN wants live television programming during the holiday season to draw viewers, sell advertising and beat the competition, reinforcing the channel's value with cable distributors and satellite providers.
The game drew an average of 795,000 TV viewers, trouncing other channels that day, on a Monday afternoon. Fox Sports 1 and NBC Sports Network both had less than 280,000 viewers on average during the same time period, according to Nielsen. For comparison, ESPN boasted earlier this year that its Wednesday Night Baseball viewership had increased to an average of 636,000 in April, up 11% from a year earlier.
"Think of how well it would rate in a different time slot," Overby said of the Miami Beach Bowl
Even though it was the least watched bowl game of the season, it was still a ratings win for ESPN. Live sports games are especially coveted by advertisers because viewers are considered more likely to watch their commercials live, unlike non-sports content that often is recorded with a DVR to skip the ads.
By owning these games, ESPN also doesn't have to pay an outside middleman for the right to broadcast them. This year, Disney-owned ESPN and ABC networks will televise 35 of the 40 postseason games, including the 13 games owned by ESPN Events.
"We can institute scale and some learnings across multiple games to identify the best models at each," Overby told USA TODAY Sports. "That's ultimately how we're able to make these things work competitively across the board."
Don't get him wrong: ESPN wants to sell lots of tickets to these games. Yet even if they don't, ESPN still can succeed financially where a local non-profit bowl owner cannot.
Owning these games also makes more sense for a pro franchise such as the 49ers, which can use its own stadium, staff and corporate relationships to put on a bowl game and make extra money. Likewise, the Lions started the Quick Lane Bowl in 2014 and host it annually at their stadium, Ford Field. The Yankees have staged the Pinstripe Bowl at Yankee Stadium since 2010.
"The old non-profit model, at least in our case in the most competitive sports market in the country, was probably going to be more and more difficult," said Cavalli, who recently retired from the San Francisco Bowl Game Association. "From our standpoint, it made sense to turn the game over to a successful, deep-pocketed pro team that had a new stadium, lots of personnel and the ability to sell sponsorships as part of packages rather than as a one-off."
In effect, ESPN Events and pro franchises are saving or stabilizing these lower-tier games. Both recognize the demand for them, from teams, fans and viewers.
"What really gets missed sometimes is that college football is wholly unique in that it has a full-on celebration of its season every year at the end of the year through the bowl system," Overby said.
ESPN Events is more invested in it than ever before. It also owns the Celebration Bowl, a game between historically black colleges and universities. This year it's Grambling State vs. North Carolina A&T on Saturday on ABC.
"We want to help benefit the system in whatever capacity we can," Overby said.

redpajama_set_name: RedPajamaCommonCrawl


text:
Home » Championship » Football » Leeds travel to Rotherham with Milanic seeking first win
Leeds travel to Rotherham with Milanic seeking first win
Leeds United travel to Yorkshire rivals Rotherham, with new boss Darko Milanic set to make a number of subtle changes. It is reported that academy coach, and former caretaker manager Neil Redfearn will be included in the backroom staff, while talented Brazilian loanee Adryan could also be in contention for a place in the squad, after impressing in the reserves.
The away side are 9/4 with Coral to secure a win, with Milanic so far having a defeat and two draws on his Whites record, a slight, but not disastrous slump in form from when Redfearn was in charge of first team duties. The last time the two sides played each other was in the football league trophy in 2008, a game which Rotherham won 4-2.
With a victory, Leeds can get right back in the race for the play-offs, and their current 14th place league position doesn't necessarily reflect the amount of talent they have in their squad that is gradually starting to gel. Just three points ahead of their opponents, who are 6/5 for the win, Leeds will go to dominate as they did against Sheffield Wednesday, at home when they were unlucky not to take all three points.
Top scorer Souleymane Doukara is a good price at 2/1 to net anytime, and is a handful for any defence, while Billy Sharp started his career at Rotherham as a youngster, so will be looking to return to haunt them. Take odds of 13/2 for the latter to open the scoring.
Speaking recently, Sharp spoke of the task the squad have had unifying, so that they are all on the same page.
"It's always hard when there's a lot of players coming in, there's the language barrier as well but I'm sure with time the blend will get better and we can only improve as a team."
The home team have the likes of former Blackburn Rovers striker Matt Derbyshire leading the line for them, who has one goal to his name in all competitions, and he is 11/2 to net the first goal. Perhaps crucially for Leeds, former player Luciano Becchio will be injured for the match and will be a major blow for manager Steve Evans, with the Argentine having hit two goals in the league already this campaign.
Play-off hero from last season, Alex Revell is yet to find the net for Rotherham this term, however will be motivated even more against their big Yorkshire rivals, and is 6/1 to find the net first.
« Pablo Counago hits back at former boss Roy Keane's criticism
Double delight for Saints with Koeman and Pelle scooping prizes »
A long-suffering Leeds fan, Matt studied Sports Journalism at university, and has a plethora of multi-industry experience. Having worked on behalf of multiple hedge funds and top-tier investment banks in executive search, he has also had a stint with the BBC and the Press Association. Outside of work, he pursues entrepreneurial activities and likes to keep fit.
Although he has interviewed current England manager Roy Hodgson as well as Rafa Benitez and a number of other names, he is honoured to have spent time in the company of Gordon Banks. Matt enjoys cultivating long-lasting professional and personal relationships, is solution orientated, and supports Coral's sports content provision.
Premier League final day: Foxes to finish season in style by sinking QPR
Five Emerging England stars as Gareth Southgate eyes fresh faces
Welbeck fancied to fire United to easy success


Chatham, NJ – November 16, 2018 – Westy Self Storage supports the Santa Claus Shop for the 6th consecutive year. Westy Self Storage in Chatham, NJ has donated 1 month free rent for a storage unit and free use of the Westy truck equipped with driver to assist with the group's annual event.
This year, the Santa Claus Shop celebrates its 52nd year of continued service. The Santa Claus Shop, strictly a volunteer organization, is affiliated with SHIP, Summit Helping Its People. In late November, the Santa Claus Shop will magically open its doors for two days of holiday shopping to more than 500 low-income families and senior citizens of Summit, New Providence and Berkeley Heights. The Santa Claus Shop guests, who are referred by social service agencies, enjoy a dignified, free shopping experience with complimentary refreshments provided by local businesses and gift wrapping by volunteers. Each guest is invited to personally pick out new clothing, housewares and toys for members of their immediate families. For more information please visit, www.summitsantaclausshop.com.
Westy is open 7 days a week. Hours are 8 a.m. to 6 p.m. weekdays, 9 a.m. to 6 p.m. Saturdays and 11 a.m. to 4 p.m. Sundays. Call 973-701-7771 or visit www.westy.com for directions.
Westy offers affordable state-of-the-art storage solutions for individuals and businesses. Westy was founded in 1990 and since then the superior quality of their buildings has revolutionized the self storage industry. Among Westy's family of customers are homeowners, apartment dwellers, professionals, businesses, retailers, and people who consider their Westy room an extension of their home or office. With corporate headquarters in Stamford, CT, Westy spans the tri-state area with 15 centers; 7 centers in NY, 4 centers in CT and 4 centers in NJ. Westy Storage Centers are open seven days a week. For more information visit www.westy.com or call (866) 22WESTY.


These soft and slightly stretchy bright purple fishnet thigh highs are a perfect way to add some attitude for any outfit! A solid band at the top makes these perfect for garters! One size fits most. Hand wash cold, dry flat. Do not iron, only non-chlorine bleach when needed. 100% Nylon.


text:
SCOTTY HAMILTON
Floyd "Scotty" Hamilton was an all-state player for Grafton High in West Virginia. Hamilton was the star of of West Virginia's 1942 NIT national championship team. In the tournament, Hamilton led the last-seeded Mountaineers to a monumental 58-49 overtime win against Coach Clair Bee's Long Island squad, which came into the game with a 42-game winning streak. The Mountaineers finished 19-4. Hamilton averaged 8.7 points per game to become West Virginia's first-ever basketball All-America selection. In 1943, Hamilton joined the Navy and served in World War II. He was head basketball coach at Washington & Lee for two seasons and was the long-time athletic director at Marietta (Ohio) High School.
SCOTTY HAMILTON Height: 5:11 Weight: 190 College: West Virginia'43
Floyd Scott Hamilton Born: Nov 21, 1921 Died: Apr 11, 1976 Hometown: Grafton, WV
1939-40 West Virginia (Frosh) College
1940-41 West Virginia College 19 62 28 57 .491 152 8.0
1942-43 West Virginia College 21 92 39 64 .609 223 10.6
1944-45 Wilmington ABL 7 8 9 25 3.6
1946-47 San Diego Tecate Dons AAU
Major League Totals 7 8 9 0 0 0 25 3.6
Major League Totals 3 5 1 11 3.7


text:
Поликетиды (от  — много +  — ацетон +  — виды) — поликарбонильные соединения, которые представляют собой вторичные метаболиты, образующиеся в клетках бактерий, грибов, животных и растений. Отличительной особенностью поликетидов является их специфический биосинтез, который осуществляется сложноорганизованными ферментами поликетидсинтазами.

Биосинтез
Биосинтез поликетидов осуществляется полимеризацией простых блоков, ацетильных и пропильных групп (в виде ацил-CoА), и напоминает синтез жирных кислот. Фактически, синтазы жирных кислот, являющихся ферментами биосинтеза жирных кислот, являются разновидностями поликетидсинтаз. Из-за сходства их механизма функционирования поликетидсинтазы классифицируют в соответствии с номенклатурой типов синтаз жирных кислот с некотороми изменениями при необходимости. Реакция между отдельными блоками проходит по типу конденсации Кляйзена . Конечная дериватизация может включать последующее окисление продукта.

Применение
Структурно к поликетидам относятся соединения естественного происхождения с самыми разнообразными биологическими активностями и фармакологическими свойствами. Поликетиды используются в качестве сырья для широкого спектра натуральных и полусинтетических продуктов. Наиболее важными группами поликетидов, в качестве лекарственных средств, являются: противораковые препараты (доксорубицин, ), антибиотики (макролиды, тетрациклины и др.),  (авермектины), средства для снижения уровня холестерина (статины), кокцидиостатики, противогрибковые препараты, факторы роста животных, токсины (афлатоксин) и природные инсектициды.

Примечания

Ссылки

 Химия и биохимия изопреноидов сопряженного биосинтеза

Антибиотики
Поликетиды

redpajama_set_name: RedPajamaWikipedia


(FFF) Arrange these states in increasing order of the area they occupy from the smallest to the largest.
(1000) Which of these blessings wishes victory to someone?
(2000) Which of these is a major kharif crop?
(3000) In a famous Doha 'Dukh me sumiran sab kare, sukh me kare na koi', what does 'sumiran' mean?
(10000) Which 2017 Hindi film shares its title with a popular song from the 1968 film 'Padosan'?
(20000) What is the name of the toilet usage campaign started by the Government of India?
(40000) Jharkhand was formed on 15th November 2000 on the birth anniversary of which tribal leader?
(80000) Which of the following is capable of surviving without its head for a week or longer?
(160000) "Sinhasan khali karo ki janta aati hai" are the lines of a poem written by which poet?
(320000) According to the Mahabharata Bhishma, Karna and Dronacharya were the disciples of which of these gurus?
(640000) Who became the first Indian to win the men's singles Australian Open Super Series in 2017?
(1250000) Which of the following leaders of India's struggle for independence wrote the book 'India Divided'?
(2500000) Which of these Supreme Court judges has also served in the International Court of Justice?


text:
Hippellozoon novaezelandiae is een mosdiertjessoort uit de familie van de Phidoloporidae. De wetenschappelijke naam van de soort is, als Retepora novaezelandiae, voor het eerst geldig gepubliceerd in 1895 door Waters.

Phidoloporidae


text:
__БЕЗКН__

NGC 3759A је спирална галаксија у сазвежђу Велики медвед која се налази на NGC листи објеката дубоког неба.

Деклинација објекта је + 55° 9' 44" а ректасцензија 11-{h}- 36-{m}- 58,0-{s}-. Привидна величина (магнитуда) објекта -{NGC}- 3759 износи 13,6 а фотографска магнитуда 14,3. -{NGC}- 3759A је још познат и под ознакама -{UGC 6582, MCG 9-19-135, CGCG 268-65, IRAS 11342+5526, PGC 35948}-.

Референце

Литература
Revised New General Catalogue and Index Catalogue, Wolfgang Steinicke, 2012. Доступно у овом фајлу са објашњењем на овој страници
SIMBAD база података, Стразбуршки центар астрономских података (CDS), Стразбур

Види још
Нови општи каталог

Спољашње везе

Интерактивни каталог NGC, IC и Месјеових објеката
-{SIMBAD}- база података

Нови општи каталог сазвежђе Велики медвед


Since 2012, the KPBS Explore Local Content Project has yielded over 17 series, 19 documentaries and four podcasts produced through the project. The project's goal is to grow the quality and quantity of local content by supporting the work of independent producers. This year the KPBS Explore Program is proud to hold a special screening highlighting three documentaries produced through the KPBS Explore Local Content Project- "San Diego Gay Bar History", "Rounding Third" and "Tres Bien: The Big Heart of the Big Kitchen". The Film Consortium is proud to have collaborated with the KPBS since 2015.
Judy "The Beauty" Forman from the Big Kitchen will be present for Q&A.


text:
Credit: Jean Anderson
Photo Credit: Jean Anderson
Under SB 350, which SCE supports, at least 50 percent of the electricity the utility sells would come from renewable resources like solar energy.
Proposed Legislation Would Increase Renewable Energy and Transportation Electrification in California
SCE supports SB 350, a proposed bill that would allow 50 percent of the electricity the utility sells to customers to come from renewables.
By Lauren Bartlett
At least 50 percent of the electricity Southern California Edison (SCE) sells to customers would come from renewable resources under a bill the company is supporting.
SB 350, authored by Senate Pro Tem Kevin de León, is pending in the state Legislature. It has two key components to be achieved by 2030: requires that 50 percent of energy sales to customers come from renewable power and doubles energy-efficiency savings.
Under current law, investor-owned utilities are required to have 33 percent of their electricity sales come from renewable resources by 2020.
"We believe SB 350 is a positive step and creates a meaningful path toward the state's ambitious climate goals," said Gary Stern, SCE director of energy policy. "The amended bill would assure safe, reliable and affordable electric service for our customers as the state follows this new plan to achieve its clean energy and climate goals."
In setting the 50 percent renewables target, the bill would expand some flexibility of the rules in place for the 33 percent renewables requirement. For example, it would allow for a modest use of shorter-term power purchases to secure lower-cost resources that can save customers money.
In the transportation area, the bill would allow utilities to play a long-term role for creating infrastructure for electric vehicles. SCE has information available to educate customers about installing a home charging station, home fueling and electricity rate plans for electric vehicle owners.
The bill also would establish a new integrated resource planning process to foster the development of comprehensive plans that meet California's greenhouse gas reduction goals while assuring safe, reliable and affordable service.
SCE and other utilities would be able to use all tools available to the electric sector, from renewables to emerging technologies like energy storage, to implement the state's goals. SCE's efforts to further the development of the 21st century power system align well with the integrated resource planning process.
SCE worked collaboratively with the offices of the governor, Senate pro tem and Assembly speaker on the key aspects of the legislation.
A Brighter Future for This Lancaster Community
The apartment community serves 100 limited-income families and recent efforts to implement energy upgrades, including a solar rooftop system, have helped to build community, benefit residents and strengthen the neighborhood. A rebate from...
Huntington Beach Substation Receives Ocean Friendly Makeover
Greg Goran grew up surfing the waters off Huntington Beach. Over the past 35 years, he has seen a noticeable change in the water — it's much dirtier. "Urban runoff is the No. 1 source of ocean pollution and a primary reason why the water is so much...
Southern California Edison Proposal Continues Support of Solar
In recognition of the maturing of the rooftop solar industry in the state, California passed legislation (AB327) at the end of 2013 to make changes in the way utility customers who install solar panels are compensated. To carry out the law, the...


Product description. Play Star Girl Now! Star Girl puts you in the high heels of an aspiring celebrity who is setting out to build her career as a superstar while. A must-read for middle-schoolers to discuss. Read Common Sense Media's Stargirl review, age rating, and parents guide. Become the fairy tale princess you've always dreamed of! Live the whimsical life of royalty and capture the hearts of dashing princes in this chic fashion.
McFly - Star Girl Stargirl has ratings and reviews. Emma (Miss Print) said: Okay, I'm going to say it. Stargirl by Jerry Spinelli is a young adult classic . It's YOUR time to shine like a star! Live a whole new life filled with beauty, fashion , and glamour! ✮ ALL THE DRESSES YOU CAN WEAR Delve into a world of. Read reviews, compare customer ratings, see screenshots, and learn more about Star Girl. Download Star Girl and enjoy it on your iPhone, iPad, and iPod touch.
Please try again later" it does this for the ads as well, and recently I lost everything I own!!! It is set in the erratic climate of teen emotions, realistically depicted through ordinary events and conversations. Where are my Clothes?


The usual advice given is not to feed frames of honey openly, as a) it means bees from different hives eating honey they didn't produce, which can spread disease and b) it encourages robbing, because bees nearby will do the round dance to tell foragers there is food in the local area. I understand the temptation to do it though, because the frames do get cleared very quickly. Could you put them in the hives instead? I like the sheet!


When you join North Shields Poly your details are sent to England Athletics. After England Athletics have processed your membership, you will receive a competition or volunteer licence through the post.
By going to https://myathletics.uka.org.uk/ProfileManager/ you can update details about yourself to ensure you get the right information.
Your username at https://myathletics.uka.org.uk/ProfileManager/ is your membership number and your password is sent out along with your competition or volunteer licence. If you do not know your password you can click on the password reminder button or contact Membership Services on 0121 347 6543 or at affiliation@englandathletics.org.
See the England Athletics website for information on how to update your details once you have logged in.


Chongqing Fly Dragon (CBA) tabbed 30-year old American forward Dorell Wright (206-95kg-85, agency: Wasserman Media). He has played for the last two years at Portland Trail Blazers in the NBA. In 47 games he averaged 4.7ppg and 2.4rpg last season. He helped them to win the Northwest Division title.
In 2004 Wright was drafted by Miami Heat (NBA) in first round (19th overall).
He has played previously professionally in NBA (Golden State Warriors and Philadelphia 76ers) and D-League (Florida F.).


text:
Q: R Shiny: fast reactive image display I'm trying to display images in my shiny app reactively. I've successfully done that in the server.R script with:
output$display.image <- renderImage({

    image_file <- paste("www/",input$image.type,".jpeg",sep="")

    return(list(
      src = image_file,
      filetype = "image/jpeg",
      height = 520,
      width = 696
    ))

  }, deleteFile = FALSE)

BUT it's very slow.
However, it is VERY fast to embed one of the images into the ui.R script like so:
tabPanel("Live Images", img(src = "img_type1.jpeg"))

Why is there such a difference? Is there any way to make the reactive images appear faster?

A: Hi you can use conditionalPanel to do this, it embed all your images but only the one which have TRUE to the condition will be displayed :
tabPanel("Live Images",
     conditionalPanel(condition = "input.image_type == 'img_type1'",
                      img(src = "img_type1.jpeg")
     ),
     conditionalPanel(condition = "input.image_type == 'img_type2'",
                      img(src = "img_type2.jpeg")
     )
)

And change the name of your input from image.type to image_type because . have special meaning in Javascript (as between input and image_type).
If you have a lot of images, you can always do something like that :
tabPanel("Live Images",
         lapply(X = seq_len(10), FUN = function(i) {
           conditionalPanel(condition = paste0("input.image_type == 'img_type", i, "'"),
                            img(src = paste0("img_type", i, ".jpeg"))
           )
         })
)

For example, with images from this post by tsperry (you can find it on rbloggers too), you can do :
library("shiny")
ui <- fluidPage(
  tabsetPanel(
    tabPanel("Live Images",
         # 50 images to display
         lapply(X = seq_len(50), FUN = function(i) {
           # condition on the slider value
           conditionalPanel(condition = paste0("input.slider == ", i),
                            # images are on github
                            img(src = paste0("https://raw.githubusercontent.com/pvictor/images/master/",
                                             sprintf("%04d", i), "plot.png"))
           )
         }),
         sliderInput(inputId = "slider", label = "Value", min = 1, max = 50, value = 1,
                     animate = animationOptions(interval = 100, loop = TRUE))
    )
  )
)

server <- function(input, output) {

}

shinyApp(ui = ui, server = server)

redpajama_set_name: RedPajamaStackExchange


text:
Board index » Forums » TV and Movies
DVD/BluRay Deal thread
Post subject: DVD/BluRay Deal thread
Best Buy has the X-men franchise on sale this week ($4 for DVD $8 for BluRay) each one has a ticket to the new X-men film on it. I figure that'd be worth the purchase of at least 1 and/or 2
Post subject: Re: DVD/BluRay Deal thread
as disappointing as 3 was, I didn't entirely hate it. At least not to the point that I'd hate owning it. Plus it'd bother me to only have 2 out of 3 parts of a trilogy. hence owning spiderman 3 and matrix revolutions.
Yeah, I only needed 3 tickets so I just went for 1, 2, and Origins. I'm kinda ok with missing out on 3 for a little while.
origins over 3?
The Supreme High Lord of the Sniff
Location: Confirmed, Sending Supplies
As long as you walked out after the first twenty minutes, Origins was a decent movie.
illblamesum1else wrote:
Snifit is the King of Forever.
Snifit wrote:
Naw, Origins was fun popcorn fluff until around the third act. I had fun before he went to THE ISLAND
I chose Origins because I have legit never seen it. I figured might as well get 2 new movies out of it.
If it sucks, OH WELL
Crashman
KSK Mastermind
Location: Orange Park
TheBatman wrote:
he's kinda right... My main gripes were Gambit's lack of Cajun-ity, and Deadpool being utterly ruined all over the place.
But seeing Wolverine fuck people up was fun....
The key to these movies is trying REALLY hard that there are no such things as comics...
but as a comic fan... its hard to do so.
That's why I'm going to do with GL the same thing you did with FF. See it once as a movie goer and a second time as a fanboy.
the way I see it, FUCK IT...all the films were freebies for buying a ticket to see Xmen First class
Crashman wrote:
I never really read comics. I love a lot of the characters, but never got into them because I always felt like there was too much that I needed to be clued in on since they all have DECADES of development and detail to them.
That being said, even with much less of a knowledge of the characters themselves, Origins still sucked
Origins was terrible, and not just cuz they completely fucked up Deadpool. Here's my main beef with it: production quality.
The scene where Wolverine opens up his claws for the first time, the CGI in that scene looks like something a person could do on a laptop. Actually, I take that back, I SAW a movie that was done by a couple of dudes on a laptop, and it had better graphics than that scene. It just looked too shiny and fake. I would've preferred him to have Claymation Claws at that point. Or Roger Rabbit Style drawn-on claws or something.
And, shit, the way they de-aged Patrick Stewart at one point with CGI? That looked fucking terrible.
Point is, you have a big hollywood budget series, and people are going to expect it to look fuckin nice, right? Then you just throw some shitty graphics into a movie with a bad plot, give it the same name as the big budget, awesome series, and get people to come see it based on what they've seen in the series already and what they're expecting out of the series.
Origins was shit. Besides which, Wolverine gets too much credit as the main character of the series. X-men 2 was already his damn origin story, essentially, wasn't it? Show us another cool mutant like Gambit (who was really lacking in his appearances in Wolverine Origin, I felt), or Deadpool, or something. Hell, I'd take a Squirrel Girl movie.
Hell, I'd take a Squirrel Girl movie.
That would be hilarious.
Gambit was a bit lame in the movie but I think the worst part is no Stan Lee cameo...
I think the worst part is no Stan Lee cameo...
Woah, okay. I just realized that.
Which makes me think that this was done as a side project, without the big budget, and not a whole lot of backing from the higher ups.
A Squirrel Girl movie would be badass under one condition, they have to have the fight between her and Dr. Doom...where she wins.
But yeah Origins, for me, had two redeeming qualities. Reynolds as Deadpool and Blob. Other than that? Fuck that movie. I was excited to see Gambit but he was underutilized and not really well done. I don't recall Gambit being able to charge his staff, twirl it, and hover down from thirty feet. WTF? And there was NO reason for him to be in there. He had no relation to Wolverine save for a rivalry between the two once they were both actual X-Men. His origin and introduction only ties in with Storm. It was such a blatant move by the studio to say "Hey fanboys like this Gambo guy, we need to put him in the movie! And then have him fight Wolverine because they want to see him fight!" No. No we don't. We want to see a smooth talking cajun thief who fights people with a staff and blows up robots with cards. THAT'S what we want to see. You know what would've been better than Origins' version of Gambit? Remember that scene in X2 when they were killing mutants with the think-hard ray? There should've been a fast scene of a guy at a pool table in a trench coat shuffling cards and falling over in pain. That. That would've been better. A brief tease rather than a full on disappointment.
...wow, I didn't expect to get that worked up about it. Oh well.
Ryan Reynolds and Blob were good, Origins sucked, movie studios suck.
The scene where Wolverine opens up his claws for the first time, the CGI in that scene looks like something a person could do on a laptop.
You mean the scene in the bathroom when he slices the sink in half? Yeah, I'm still convinced that was test footage that they never fully completed.
Also, I'm learning that it's not at all that difficult to do things like that without a huge budget. Check out Freddie Wong or Corridor Digital on youtube. If you know your way around editing and post production software at all, it's really not that difficult, yet a big budget film still managed to get it wrong.
http://www.youtube.com/user/freddiew
http://www.youtube.com/user/freddiew2
http://www.youtube.com/user/CorridorDigital
Oh yeah, Freddie W is awesome. I see his stuff on Stumbleupon all the time. Which, if HE can do it, and Hollywood can't do it right, then there's something seriously wrong with how they allocated their budget for the film.
Maybe they had to pay the big name actors more to be a part of the crappiness.
http://www.dealcatcher.com/images/print ... 371378.pdf
http://tinyurl.com/6k7mjjc
Amazon is having a huge Anime sale on DVD and Bluray til the 8th of August.
I'm thinking of picking up a few things:
1) Summer Wars
2) East of Eden
Would anyone recommend East of Eden? Because I'd be purchasing that one blind.


text:
>> New Year's Eve Las Vegas
New Year's Eve Las Vegas
Police move New Year's Eve command post to southwest Las Vegas
Clark County Undersheriff Kevin McMahill announced Monday that data center operator Switch would host law enforcement this year.
By	Max Michor	/ Las Vegas Review-Journal
Undersheriff Kevin McMahill speaks about preparations for the upcoming New Year's Eve celebration as Switch Sr. Vice President Betsy Fretwell, left, Clark County Fire Chief Greg Cassell, and Mayor Pro Tem Michele Fiore, right, look during a press conference on Monday, Dec. 23, 2019, in Las Vegas. (Bizuayehu Tesfaye/Las Vegas Review-Journal) @bizutesfaye
Southern Nevada law enforcement agencies are moving their New Year's Eve command post.
Previously, the Metropolitan Police Department and other local agencies had used a Nevada Highway Patrol station for their command center, but Clark County Undersheriff Kevin McMahill announced Monday that data center operator Switch will host law enforcement this year.
"Southern Nevada public safety agencies have outgrown their current Strip command center," McMahill said during a news conference at Rob Roy's Innevation Center, near Decatur Boulevard and the 215 Beltway.
"After a lot of consideration, we decided moving here was an ideal solution, as it's strategically located for public safety to monitor this event," he said.
Metro expects more than 400,000 visitors during this year's holiday, and McMahill said Strip hotels reported a 98 percent occupancy rate.
Setup and street closures on the Strip begin at 5 p.m. Dec. 31 and should be completed by 6:30 p.m., McMahill said. Glass bottles, coolers and backpacks are not permitted on the Strip during the event.
Federal, state and local law enforcement join forces every year to monitor and control activity on the Strip, including Metro, the U.S. Marshals Service, Department of Homeland Security, FBI and Secret Service.
"As we stand here today, there is no known specific, credible threat to Las Vegas or Southern Nevada," McMahill said. "Rest assured, we are actively monitoring our threat streams with all of our partners to stay abreast of any indicators of nefarious activity."
McMahill, along with Clark County Fire Chief Greg Cassell, Clark County Commissioner Michael Naft, Las Vegas City Councilwoman Michele Fiore and Gary Schofield, U.S. Marshal for the District of Nevada, attended the news conference to ask residents and partygoers to be responsible, as well as caution would-be lawbreakers to watch themselves on New Year's Eve.
"You don't come here if you're going to break laws or raise Cain in any way, shape or form, because the guys in brown are going to be right in your business if you do," Cassell said.
Anyone who spots suspicious activity is encouraged to report it to the counterterrorism center at 702-828-7777 or 311.
Contact Max Michor at mmichor@reviewjournal.com or 702-383-0365. Follow @MaxMichor on Twitter.
Posted on: Entertainment, Local, Local Las Vegas, New Year's Eve Las Vegas, The Strip
Tagged: mc-entertainment
ENTERTAINMENT NEWS YOUR WAY
Sign up for your free daily Entertainment Update newsletter.
Tiësto headlines CES 2020 closing party at Hakkasan Nightclub - VIDEO
Tiesto performs for CES conventioneers and clubgoers during the DreamlandXR Closing Night Party at Hakkasan Nightclub at the MGM Grand on the Las Vegas Strip in the early hours of Friday, Jan. 10, 2020. (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
Locals cheer on James Holzhauer at 'Jeopardy!' watch party - VIDEO
Imitation is the sincerest form of flattery. But James Holzhauer would have a better chance at winning "Jeopardy! The Greatest of All Time" tournament if Ken Jennings would stop copying his aggressive betting strategy. (James Schaeffer / Las Vegas Review-Journal)
Drake's first show of 2020 at XS Nightclub in Las Vegas - VIDEO
Drake performs at the indoor/outdoor XS and Encore Beach Club at Wynn Las Vegas on the Las Vegas Strip in the early morning hours of Thursday, Jan. 9, 2020. (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
Ceremony held for Elvis artist Trent Carlini - VIDEO
A ceremony was held for Elvis impersonator Trent Carlini on Wednesday night at The Space in Las Vegas. (James Schaeffer / Las Vegas Review-Journal)
Lady Gaga joins her band leader at his after-hours show - VIDEO
After finishing her "Jazz + Piano" show at Park Theater, Lady Gaga joined her band leader Brian Newman for a rousing version of "Fly Me to the Moon" during his show at NoMad Restaurant at Park MGM on the Las Vegas Strip after midnight on New Year's Day, 2020. (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
Brian Newman rings in 2020 at NoMad at Park MGM - VIDEO
Brian Newman, bandleader for Lady Gaga, performs at NoMad Restaurant at Park MGM on the Las Vegas Strip on New Year's Eve 2019. (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
New Year's Fireworks on the Las Vegas Strip - VIDEO
Fireworks explode over the Las Vegas Strip to celebrate the new year of 2020. (James Schaeffer / Las Vegas Review-Journal)
Kats hits Las Vegas Strip on New Year's Eve - VIDEO
Man-about-town columnist John Katsilometes covers entertainment on the Strip on New Year's Eve Tuesday, Dec. 31, 2019. Mayfair Supper Club overlooking Bellagio fountains. (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
RJ LIVE from Drai's nightclub on the Las Vegas Strip - VIDEO
Aaron Drawhorn live from Drai's nightclub on the Las Vegas Strip across from the Bellagio fountains on New Year's Eve.
Ayesha Curry and Michael Mina talk about opening International Smoke
Ayesha Curry and Michael Mina, partners in International Smoke, admit things don't always admit things don't always work the first time. (Al Mancini/Las Vegas Review-Journal)
Unravel the story of House of Eternal Return at Meow Wolf - VIDEO
New Mexico art collective Meow Wolf created the House of Eternal Return in 2016. The group is opening an original immersive experience in Las Vegas next year. (Meow Wolf)
Story behind Spago's two-pound truffle - VIDEO
Spago chef Mark Andelbradt shares the story of a truffle hunter who found the truffle. (Al Mancini/Las Vegas Review-Journal)
Ayesha Curry preps for International Smoke opening
Ayesha Curry talks about preparing for the opening of International Smoke, her collaboration with Michael Mina at MGM Grand in Las Vegas (Al Mancini/Las Vegas Review-Journal)
Making the French Onion Burger at Topgolf in Las Vegas - VIDEO
Kreg Klaver, executive chef at Topgolf at MGM Grand in Las Vegas, makes the French Onion Burger by topping a 7-ounce beef patty with horseradish-Dijon, caramelized onions, Gruyere and crispy onions, on a pretzel bun. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Mayfair Supper Club preview
The finishing touches are still being put on Bellagio's new Mayfair Supper club, which is set to open on New Year's Eve. But the creative team behind the experience gave members of the media a little preview on Thursday in a rehearsal space they've been using at Park MGM. (Al Mancini/Las Vegas Review-Journal)
Holiday Honey Toast at Sake Rok in Las Vegas
Bill Lee, executive sous chef at Sake Rok at The Park in Las Vegas, makes Holiday Honey Toast by hollowing out soft white pain de mie bread, coating it in butter, honey and sugar, toasting it and topping with three scoops of mint-chocolate chip ice cream, more honey-butter, gumdrops, candy canes, powdered sugar and cinnamon. (Heidi Knapp Rinella/Las Vegas Review-Journal)
New lunch menu at Momofuku Las Vegas
Chef Michael Rubinstein talks about the new lunch menu at Momofuku. (Al Mancini/Las Vegas Review-Journal)
The Cube by Nanotak at Intersect Festival - VIDEO
The cube synced with driving electronic music and glowed with LEDs that twinkled along the cube's lines. (Janna Karel Las Vegas Review-Journal)
Elvis Presley tribute artist Trent Carlini dies - VIDEO
Trent Carlini, a renowned Elvis Presley tribute artist who performed at several Las Vegas resorts for almost 30 years, has died. Clark County officials confirmed Carlini died on Sunday, Dec. 8, 2019, at a Las Vegas hospital. (Las Vegas Review-Journal)
Intersect drone light show - VIDEO
The Intersect Music Festival in Las Vegas featured a special drone light show. (Samia DeCubas)
Shirley Chung is "coming home" for Paired dinner
Celebrity chef Shirley Chung is back in Las Vegas to co-host a sold out collaborative dinner Saturday night at Red Plate in The Cosmopolitan of Las Vegas. (Al Mancini/Las Vegas Review-Journal)
Dandelion Chocolate opening at The Venetian
San Francisco's Dandelion Chocolate will open its first Las Vegas café and retail store in The Venetian on Saturday. To celebrate, they'll be offering guests free hot chocolate. (Al Mancini/Las Vegas Review-Journal)
Lbertine Social's Pastrami Feast
Libertine Social's massive, house-made short-rib pastrami for $175 latter consists of three bones of short rib brined for seven days, smoked for six hours and cooked sous vide for two days before it's finished in the restaurant's pizza oven to give it a bark. It's then carved and presented tableside with an assortment of sides and lettuce for making wraps. What's "leftover" is then returned to the kitchen and prepared as Reuben sandwiches.
Ellis Island unveils The Front Yard
Ellis Island's marketing director Christina Ellis talks about the new addition of the Front Yard. (Al Mancini/Las Vegas Review-Journal)
Las Vegas parents 'thrilled' with New Year's baby
By Glenn Puit / RJ
January 1, 2020 - 7:58 am January 1, 2020 - 4:48 pm
Marquis Johnson Jr. is believed to be the first baby born in Las Vegas not just in 2020, but also in the new decade.
Lady Gaga soars, and smooches, to toast New Year's Eve
Unexpected in this dizzying NYE tableau was Lady Gaga's PDA with an unidentified gentleman at NoMad Restaurant.
Troopers make 31 DUI arrests over New Year's Eve in Las Vegas area
By Glenn Puit and Sabrina Schnur / RJ
Between 6 p.m. Tuesday and 6 a.m. Wednesday,the Nevada Highway Patrol arrested 31 drivers on suspicion of DUI, according to spokesman Jason Buratczuk.
Las Vegas welcomes 2020 in style
By Rio Lacanlale / RJ
January 1, 2020 - 2:35 am January 1, 2020 - 2:35 am
In true Vegas style, there was no shortage of colorful characters on the Strip and in downtown Las Vegas as 2019 came to an end.
New Year's Eve in downtown Las Vegas — PHOTOS
The Fremont Street Experience was the scene of the official New Year's Eve party of the City of Las Vegas Tuesday night.
New Year's Eve on the Las Vegas Strip — PHOTOS
January 1, 2020 - 12:25 am January 1, 2020 - 2:13 am
Revelers packed the Las Vegas Strip to usher out 2019 and ring in 2020 on New Year's Eve.
Ad promotes Las Vegas during ball drop in New York's Times Square
By Anastasia Hendrix / RJ
As the glittering New Year's Eve ball dropped in Times Square in New York at midnight on Tuesday night, an ad atop the 200-foot-tall LED signage behind it beckoned viewers to visit Las Vegas.
Happy New Year 2020, Las Vegas! — BLOG
December 31, 2019 - 4:57 pm January 1, 2020 - 1:54 am
The night sky sparkled at midnight as more than 80,000 fireworks exploded over Las Vegas, welcoming the new year — and the new decade.
You don't have to go to the Strip to celebrate the New Year
The Strip isn't the only place in Las Vegas to party like it's 2019. Ring in the new year away from Strip at these parties and events.
Where to watch fireworks in Las Vegas on New Year's Eve
By Las Vegas Review-Journal / RJ
Las Vegas will ring in 2020 with a number of fireworks shows. Here's where you can see them.


The portion of Filomeno Valles memorial that you are trying to access requires an extension in order to become active again. Would you like to contribute to the memorial?s extension?
It is with great sadness that the family of Filomeno Amor Valles announces his passing on Thursday, January 10th, 2019. He was surrounded by his loved ones at his home. He will be lovingly remembered by his wife of 66 years, Adoracion Basco Valles. He was also blessed to have 11 children, Evangeline, Amy, Lody, Edith, Susan, Fernando, Jocelyn, Marilou, Edwin, Edgardo and Ronaldo. Filomeno was adored by his sons-in-law, Salce, Rico, Noel, Ronnie and John and his daughters-in-law, Carol, Rose, Norma and Leslie. Papa, as he was known by his family and friends, also had 26 grandchildren, Lynne, Dolly, Joy, Sheilla, Michelle, Dustin, Andrew, Darren, Daniel, Danzel, Danica, Timothy, J.R., Catherine, Ezekiel, Erica, Axel, Reena, Jacob, Mateo, Isabela, Amalia, Graeme, Evan, Lee and Aaron. He also had 5 great-grandchildren, Téa, Ella, Shya, Mila and Isaac.
Papa will be greatly missed by his family and friends. It will be the family's honour to have you join them for his visitation in commemorating his life.
So sorry for the loss of Papa. I hope knowing he is with God now can bring everyone peace.
So sorry for your loss a beautiful family your dad was a lovely man know him from Scarborough Gospel Temple God has called him home He has done his work on earth RIP!


Summer is almost gone and, for some of us, that means back to school for our kids. Whether you are in the season of selecting a preschool, transitioning your teen to high school or sending off your baby to college, it is sure to be an emotional experience for all parties involved. Here are a few tips to help ease into the new routine.
Name it to Tame It: The proverbial "place your oxygen mask on first before assisting others" comes to mind. We must first tend to our own emotional needs before we can be present for our children. Having an awareness of our own feelings as we enter this rite of passage can help us best support our children. Identifying and naming our emotions about this transition can help usfeel more grounded and also models healthy self-regulation to our children.
Honor the Rite of Passage: Now that you've identified your feelings about this transition, create a meaningful ceremony to honor this new way of being as a family. Come together as a family, create an altar with meaningful objects that symbolize this transition whether it be entering preschool or high school. Then, create an intention that will support you as a family, for example, "our family's intention is to support one another's emotional growth with kindness and compassion as we step into this new way of being". Ask for guidance from ancestors, spirit guides, or whatever has heart and meaning to you and your family. And finally, celebrate! Sing, dance or eat a special meal at your favorite restaurant. Embrace the upcoming transition with hopefulness and dedication to working thorough all the up's and down's as a family.
Identify a Support Team: Familiarize yourself and your child with their school's community. Having access to supportive adults during the school day can help your child feel safe and give you peace of mind. Create a relationship with your child's teachers, school counselor or school psychologist. For high school aged students it can be helpful forthem to explore school clubs to foster healthy extracurricular activities and expand their social circle. Encourage them to identify supportive people on campus so they can practice self-advocacy. Additionally, some school campuses have Licensed Therapists or Social Worker's on campus to support the students, ask your school principal if this is available on your campus should your child need that level of support.
Placing expectations on our children instead of allowing their own natural inclinations to emerge spontaneously may well result in an emotional Grand Canyon between us. As the gap widens, a flood of anxiety will rush in to fill it—anxiety not only for your child but also for yourself.
The pressure we place on our youth to preform and fit in is greater than ever. As parents it is our job to instill values of compassion, empathy, curiosity, emotional insight. We can do this by creating a daily ritual of coming together as a family, slowing down and talking with our children but instead of inquiring "how did you do on that test today?", ask them "how did you manage your anxiety about that test you had today?", "what kind of self talk did you use to get you through that experience?". Take interest in your child's developing emotional landscape, question their thoughts and feelings about dating and relationships rather than filling in the blanks with your own ideas. And last, but certainly not least, encourage children to have periods of rest, relaxation and stillness; time for them to detach from the pressures of their day and return to a quiet, peaceful place within.
A beautiful quote from poet and author, Bianca Sparacino.
A beautiful book for children ages 4-8 with meditation, guided visualizations and affirmations to support emotional balance.
An inspirational and transformative parenting book. A must have!