<?php
/*
 * @package		Joomla.Framework
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 *
 * @component Phoca Component
 * @copyright Copyright (C) Jan Pavelka www.phoca.cz
 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later;
 */

defined('_JEXEC') or die();
use Joomla\CMS\MVC\Controller\FormController;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Filesystem\File;
jimport('joomla.application.component.controllerform');
jimport('joomla.client.helper');
phocagalleryimport('phocagallery.youtube.youtube');

class PhocaGalleryCpControllerPhocaGalleryYtb extends FormController
{
	//protected	$option 		= 'com_phocagallery';
	protected $context 	= 'com_phocagallery.phocagalleryytjjb';

	function __construct() {
		parent::__construct();
		$this->registerTask( 'import'  , 	'import' );
	}

	function import() {

		Session::checkToken() or die( 'Invalid Token' );
		$app = Factory::getApplication();
		//$post	= JFactory::getApplication()->input->get('post');
		//$ytb_link	= JFactory::getApplication()->input->get( 'ytb_link', '', 'post', 'string', J REQUEST_NOTRIM);
		//$field		= JFactory::getApplication()->input->get( 'field', '', 'post', 'string', J REQUEST_NOTRIM);
		$ytb_link	= Factory::getApplication()->input->get( 'ytb_link', '',  'string' );
		$field		= Factory::getApplication()->input->get( 'field', '',  'string' );
		$catid		= Factory::getApplication()->input->get( 'catid', 0,  'int' );

		$errorYtbMsg = '';

		$folder = '';
		if ((int)$catid > 0) {
			$db =Factory::getDBO();
			$query = 'SELECT c.userfolder'
			.' FROM #__phocagallery_categories AS c'
			.' WHERE c.id = '.$db->Quote((int)$catid);

			$db->setQuery($query, 0, 1);
			$folderObj = $db->loadObject();

			if (!$db->execute()) {
				$this->setError($db->getErrorMsg());
				return false;
			}

			if (isset($folderObj->userfolder) && $folderObj->userfolder != '') {
				$folder = $folderObj->userfolder . '/';// Save to category folder
			} else {
				$folder = '';// No category folder - save to root
			}
		} else {
			$errorYtbMsg .= Text::_('COM_PHOCAGALLERY_YTB_ERROR_NO_CATEGORY');
		}

		$ytb	= PhocaGalleryYoutube::importYtb($ytb_link, $folder, $errorYtbMsg);

/*
		$ytb_code 	= str_replace("&feature=related","",PhocaGalleryYoutube::getCode(strip_tags($ytb_link)));

		$msg = $errorMsg = '';
		$ytb				= array();
		$ytb['title']		= '';
		$ytb['desc']		= '';
		$ytb['filename']	= '';
		$ytb['link']		= strip_tags($ytb_link);

		if(!function_exists("curl_init")){
			$errorMsg .= Text::_('COM_PHOCAGALLERY_YTB_NOT_LOADED_CURL');
		} else if ($ytb_code == '') {
			$errorMsg .= Text::_('COM_PHOCAGALLERY_YTB_URL_NOT_CORRECT');
		} else {

			$folder = '';
			if ((int)$catid > 0) {
				$db =Factory::getDBO();
				$query = 'SELECT c.userfolder'
				.' FROM #__phocagallery_categories AS c'
				.' WHERE c.id = '.$db->Quote((int)$catid);

				$db->setQuery($query, 0, 1);
				$folderObj = $db->loadObject();

				if (!$db->query()) {
					$this->setError($db->getErrorMsg());
					return false;
				}

				if (isset($folderObj->userfolder) && $folderObj->userfolder != '') {
					$folder = $folderObj->userfolder . '/';// Save to category folder
				} else {
					$folder = '';// No category folder - save to root
				}
			} else {
				$errorMsg .= Text::_('COM_PHOCAGALLERY_YTB_ERROR_NO_CATEGORY');
			}

			// Data
			$cUrl		= curl_init("http://gdata.youtube.com/feeds/api/videos/".strip_tags($ytb_code));
            curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
            $xml		= curl_exec($cUrl);
            curl_close($cUrl);

			$xml 	= str_replace('<media:', '<phcmedia', $xml);
			$xml 	= str_replace('</media:', '</phcmedia', $xml);

			$data = simplexml_load_file($file);

			//Title
			if (isset($data->title)) {
				$ytb['title'] = (string)$data->title;
			}

			if ($ytb['title'] == '' && isset($data->phcmediagroup->phcmediatitle)) {
				$ytb['title'] = (string)$data->phcmediagroup->phcmediatitle;
			}

			if (isset($data->phcmediagroup->phcmediadescription)) {
				$ytb['desc'] = (string)$data->phcmediagroup->phcmediadescription;
			}

			// Thumbnail
			if (isset($data->phcmediagroup->phcmediathumbnail[0]['url'])) {
				$cUrl		= curl_init(strip_tags((string)$data->phcmediagroup->phcmediathumbnail[0]['url']));
				curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
				$img		= curl_exec($cUrl);
				curl_close($cUrl);
			}

			if ($img != '') {
				$cUrl		= curl_init("http://img.youtube.com/vi/".strip_tags($ytb_code)."/0.jpg");
				curl_setopt($cUrl,CURLOPT_RETURNTRANSFER,1);
				$img		= curl_exec($cUrl);
				curl_close($cUrl);
			}

			$ytb['filename']	= $folder.strip_tags($ytb_code).'.jpg';

            if (!File::write(JPATH_ROOT . '/' .'images' . '/' . 'phocagallery' . '/'. $ytb['filename'], $img)) {
				$errorMsg .= Text::_('COM_PHOCAGALLERY_YTB_ERROR_WRITE_IMAGE');
			}
		}*/

		if ((bool)$ytb !== false) {

			Factory::getApplication()->input->set('ytb_title', $ytb['title']);
			Factory::getApplication()->input->set('ytb_desc', $ytb['desc']);
			Factory::getApplication()->input->set('ytb_filename', $ytb['filename']);
			Factory::getApplication()->input->set('ytb_link', $ytb['link']);
		}

		if ($errorYtbMsg != '') {
			$msg 	= $errorYtbMsg;
			$import	= '';
			$redirect = 'index.php?option=com_phocagallery&view=phocagalleryytb&tmpl=component&field='.$field.'&catid='.(int)$catid.$import;
			$app->enqueueMessage($errorYtbMsg, 'error');
			$this->setRedirect( $redirect );
		} else {
			$msg 		= Text::_('COM_PHOCAGALLERY_YTB_SUCCESS_IMPORT');
			$import		= '&import=1';

			$app->getUserStateFromRequest( $this->context.'.ytb_title', 'ytb_title', $ytb['title'], 'string' );
			$app->getUserStateFromRequest( $this->context.'.ytb_desc', 'ytb_desc', $ytb['desc'], 'string' );
			$app->getUserStateFromRequest( $this->context.'.ytb_filename', 'ytb_filename', $ytb['filename'], 'string' );
			$app->getUserStateFromRequest( $this->context.'.ytb_link', 'ytb_link', $ytb['link'], 'string' );
			$redirect = 'index.php?option=com_phocagallery&view=phocagalleryytb&tmpl=component&field='.$field.'&catid='.(int)$catid.$import;
			$app->enqueueMessage($msg, 'message');
			$this->setRedirect( $redirect );
		}

	}

	function cancel($key = NULL) {
		$this->setRedirect( 'index.php?option=com_phocagallery' );
	}
}
?>
