<?php
namespace App\Http\Controllers;


use App\Models\Settings;
use App\Models\Category;
use App\Models\Product;
use App\Models\ProductCategory;
use App\Models\Options;
use App\Models\OptionsAssets;
use App\Models\AdditionalProduct;
use View;
use Input;
use Hash;
use Redirect;
use Session;
use Html;
use Image;
use Validator;

class OptionsAssetsController extends Controller
{
    public function getIndex()
    {   
		//if not login redirect to login page    
		if(!Session::has('dnradmin_id')) { return Redirect::to('dnradmin/');}
	
		$options =  OptionsAssets::orderby('fldOptionsAssetsPosition')->get();             
		$product_id = 0;
        return View::make('_admin.product.options_asset_display', array('options' => $options,'product_id'=>$product_id));
    }
	
	 public function getDisplay($option_id,$product_id="")
    {   
		//if not login redirect to login page    
		if(!Session::has('dnradmin_id')) { return Redirect::to('dnradmin/');}
		
		$main_id=0;		
		$options =  OptionsAssets::where('fldOptionsAssetsOptionID','=',$option_id)->orderby('fldOptionsAssetsPosition')->get();            
		if($product_id == "") {
			$prodOptions = OptionsAssets::join('tblProductOptions','tblProductOptions.fldProductOptionsAssetsID','=','tblOptionsAssets.fldOptionsAssetsID')
				   								->where('fldOptionsAssetsOptionID','=',$option_id)
				   								->select('fldProductOptionsProductID')
				   								->first();
			$product_id = empty($prodOptions) ? "" : $prodOptions->fldProductOptionsProductID;			   								
		}			   								
		
        return View::make('_admin.product.options_asset_display', array('options' => $options,'option_id'=>$option_id,'product_id'=>$product_id));
    }
	
  
   public function postIndex()
    {       
		
		$options = OptionsAssets::orderby('fldOptionsAssetsPosition')->get();        
        return View::make('_admin.product.options_asset_display', array('options' => $options));
        
    }	
	
	public function getNew($error=0,$option_id,$product_id)
   {
	   
	   	//if not login redirect to login page    
		if(!Session::has('dnradmin_id')) { return Redirect::to('dnradmin/');}
		
	   	$success = "";		
		
   		return View::make('_admin.product.options_assets_add',array('success'=>$success,'error'=>$error,'option_id'=>$option_id,'product_id'=>$product_id));
   } 
   
    public function getView($option_id)
    {       
		//if not login redirect to login page    
		if(!Session::has('dnradmin_id')) { return Redirect::to('dnradmin/');}
		
		$options =  OptionsAssets::where('fldOptionsAssetsOptionID','=',$option_id)->orderby('fldOptionsAssetsPosition')->get();    
        return View::make('_admin.product.options_asset_display', array('options' => $options));
    }
   
   public function getUpdatePosition($option_id) {
	   $pctr=1;
		
		foreach(Input::get('page_manager'.$option_id.'1') as $pageManager) {						
			$positionTR =  explode("_",$pageManager);			
			$position_id = $positionTR[0];			
								
			 $category = OptionsAssets::find($position_id);	
			 
			 if($category) {			 
				 $category->fldOptionsAssetsPosition = $pctr;	
				 $category->save();	
				 $pctr=$pctr+1;				
			 }
				
		
			
		}
		
	   
		
   }
   
   public function getUpdatePositionSub() {
	   $pctr=1;
		
		foreach(Input::get('page_manager1') as $pageManager) {						
			$positionTR =  explode("_",$pageManager);			
			$position_id = $positionTR[0];			
								
			 $category = OptionsAssets::find($position_id);	

			 if($category) {			 
				 $category->fldOptionsAssetsPosition = $pctr;	
				 $category->save();	
				 $pctr=$pctr+1;				
			 }
				
		
			
		}
		
	   
		
   }
   
   
   public function postNew() {
	   
					
			   $options = new OptionsAssets;
			   $options->fldOptionsAssetsName = Input::get('name');	
			   $options->fldOptionsAssetsOptionID = Input::get('option_id');	 
               $options->fldOptionsAssetsWidth = Input::get('width');	
			   $options->fldOptionsAssetsHeight = Input::get('height');	

			   $options->fldOptionsAssetsWidthFraction = Input::get('widthfraction');
			   $options->fldOptionsAssetsHeightFraction = Input::get('heightfraction');	


				$product_id =Input::get('product_id');	 
	
			  // $options->main_id = Input::get('main_id');	 
			   			   			  
			   //get last position
				$optionsPosition = OptionsAssets::where('fldOptionsAssetsOptionID','=',Input::get('option_id'))->orderby("fldOptionsAssetsPosition","desc")->first();
				if(count($optionsPosition)==1):
					$options->fldOptionsAssetsPosition = $optionsPosition->fldOptionsAssetsPosition+1;	
				else:
					$options->fldOptionsAssetsPosition = 1;
				endif;	
			   			   
			   $options->save();

				

			   	//echo $options->fldOptionsAssetsOptionID;	  			 	
			echo json_encode(array('option_id' => $options->fldOptionsAssetsOptionID,'product_id'=>$product_id));
			
   }
   
   public function getEdit($id,$option_id,$product_id) {	
   		//if not login redirect to login page    
		if(!Session::has('dnradmin_id')) { return Redirect::to('dnradmin/');}
		   
	    $options =  OptionsAssets::where('fldOptionsAssetsID', '=', $id)->first();
	    
	    return View::make('_admin.product.options_assets_edit', array('options' => $options,'option_id'=>$option_id,'product_id'=>$product_id));	

   }
   
   public function postEdit($id) {	  
	  	
	 
      $options = OptionsAssets::find($id);	  	 
      $options->fldOptionsAssetsName = Input::get('name');	 	
      $options->fldOptionsAssetsWidth = Input::get('width');	
      $options->fldOptionsAssetsHeight = Input::get('height');
      $options->fldOptionsAssetsWidthFraction = Input::get('widthfraction');
	  $options->fldOptionsAssetsHeightFraction = Input::get('heightfraction');			  
	  $options->save();
	  
	//  echo Input::get('option_id');
	$product_id =Input::get('product_id');	 

	 echo json_encode(array('option_id' => Input::get('option_id'),'product_id'=>$product_id));
	
   }
   
    public function getDelete($id) {
		//if not login redirect to login page    
		if(!Session::has('dnradmin_id')) { return Redirect::to('dnradmin/');}
		
		 $options = OptionsAssets::find($id);
		 //$mainid = $options->main_id;
		 $position = $options->fldOptionsAssetsPosition;
		 $option_id = $options->fldOptionsAssetsOptionID;
		 
		$options->delete();
		
		//update all category positions
		$optionsPos = OptionsAssets::where("fldOptionsAssetsPosition",">",$position)->orderby("fldOptionsAssetsPosition")->get();
		
		
		foreach($optionsPos as $optionsPoss) {
			 $optionUpdate = OptionsAssetsManagement::find($optionsPoss->fldOptionsAssetsIDPrimary);
			 	$optionUpdate->fldOptionsAssetsPosition = $optionsPoss->fldOptionsAssetsPosition - 1;
			 $optionUpdate->save();	
		}
		
		echo $option_id;
	}
}
