<?php
	
	function ninzio_portfolio() {

	  $labels = array(
		'name'               => __('Portfolio', TEMPNAME),
		'singular_name'      => __('Portfolio', TEMPNAME),
		'add_new'            => __('Add new', TEMPNAME),
		'add_new_item'       => __('Add new project', TEMPNAME),
		'edit_item'          => __('Edit project', TEMPNAME),
		'new_item'           => __('New project', TEMPNAME),
		'all_items'          => __('All projects', TEMPNAME),
		'view_item'          => __('View project', TEMPNAME),
		'search_items'       => __('Search projects', TEMPNAME),
		'not_found'          => __('No projects found', TEMPNAME),
		'not_found_in_trash' => __('No projects found in trash', TEMPNAME), 
		'parent_item_colon'  => '',
		'menu_name'          => __('Portfolio', TEMPNAME)
	  );

	  $args = array(
	    'labels'             => $labels,
	    'public'             => true,
	    'publicly_queryable' => true,
	    'show_ui'            => true, 
	    'show_in_menu'       => true, 
	    'query_var'          => true,
	    'rewrite'            => array( 'slug' => 'portfolio' ),
	    'capability_type'    => 'post',
	    'has_archive'        => true, 
	    'hierarchical'       => false,
	    'menu_position'      => null,
	    'menu_icon'          => '',
	    'supports'           => array( 'title', 'editor', 'thumbnail', 'comments', 'excerpt'),
	  ); 

	  register_post_type( 'portfolio', $args );

	}

	add_action( 'init', 'ninzio_portfolio' );

	function portfolio_taxonomies() {

		register_taxonomy('portfolio-category', 'portfolio', array(
			'hierarchical' => true,
			'labels' => array(
				'name' 				=> __( 'Portfolio category', TEMPNAME ),
				'singular_name' 	=> __( 'Portfolio category', TEMPNAME ),
				'search_items' 		=> __( 'Search portfolio category', TEMPNAME ),
				'all_items' 		=> __( 'All portfolio categories', TEMPNAME ),
				'parent_item' 		=> __( 'Parent portfolio category', TEMPNAME ),
				'parent_item_colon' => __( 'Parent portfolio category', TEMPNAME ),
				'edit_item' 		=> __( 'Edit portfolio category', TEMPNAME ),
				'update_item' 		=> __( 'Update portfolio category', TEMPNAME ),
				'add_new_item' 		=> __( 'Add new portfolio category', TEMPNAME ),
				'new_item_name' 	=> __( 'New portfolio category', TEMPNAME ),
				'menu_name' 		=> __( 'Portfolio categories', TEMPNAME ),
			),
			'rewrite' => array(
				'slug' 		   => 'portfolio-category',
				'with_front'   => true,
				'hierarchical' => true
			),
			'show_in_nav_menus' => true,
			'show_tagcloud'     => true,
			'show_admin_column' => true
		));

		register_taxonomy('portfolio-tag', 'portfolio', array(
			'hierarchical' => false,
			'labels' => array(
				'name' 				=> __( 'Portfolio tags', TEMPNAME ),
				'singular_name' 	=> __( 'Portfolio tag', TEMPNAME ),
				'search_items' 		=> __( 'Search portfolio tags', TEMPNAME ),
				'all_items' 		=> __( 'All portfolio tags', TEMPNAME ),
				'parent_item' 		=> __( 'Parent portfolio tags', TEMPNAME ),
				'parent_item_colon' => __( 'Parent portfolio tag:', TEMPNAME ),
				'edit_item' 		=> __( 'Edit portfolio tag', TEMPNAME ),
				'update_item' 		=> __( 'Update portfolio tag', TEMPNAME ),
				'add_new_item'	    => __( 'Add new portfolio tag', TEMPNAME ),
				'new_item_name' 	=> __( 'New portfolio tag', TEMPNAME ),
				'menu_name' 		=> __( 'Portfolio tags', TEMPNAME ),
			),
			'rewrite' 		   => array(
				'slug' 		   => 'portfolio-tag',
				'with_front'   => true,
				'hierarchical' => false
			),
		));

	}
	add_action( 'init', 'portfolio_taxonomies', 0 );


	add_action("admin_init", "ninzio_add_portfolio_meta_box");
	function ninzio_add_portfolio_meta_box(){

		add_meta_box(
	        "ninzio-portfolio-format-options", 
	        __("Format", TEMPNAME),
	        "render_ninzio_portfolio_format_options", 
	        "portfolio",
	        "normal", 
	        "high"
	    );

		add_meta_box(
	        "ninzio-portfolio-details-options", 
	        __("Project details ", TEMPNAME),
	        "render_ninzio_portfolio_details_options", 
	        "portfolio",
	        "normal", 
	        "high"
	    );

	    add_meta_box(
	        "ninzio-portfolio-media-options", 
	        __("Project media", TEMPNAME),
	        "render_ninzio_portfolio_media_options", 
	        "portfolio",
	        "normal", 
	        "high"
	    );

	}

	function render_ninzio_portfolio_details_options($post) {

		$values                         = get_post_custom( $post->ID );
	    $ninzio_portfolio_client               = isset( $values['ninzio_portfolio_client'] ) ? esc_attr( $values["ninzio_portfolio_client"][0] ) : "";
	    $ninzio_portfolio_project_link         = isset( $values['ninzio_portfolio_project_link'] ) ? esc_url( $values["ninzio_portfolio_project_link"][0] ) : "";

?>
        <div>
            <label for="ninzio_portfolio_client"><?php echo __('Enter  client name here:', TEMPNAME); ?></label>
            <input name="ninzio_portfolio_client" id="portfolio-client" type="text" value="<?php echo $ninzio_portfolio_client;?>"/>
        </div>
        <div>
            <label for="ninzio_portfolio_project_link"><?php echo __('Enter project URL here:', TEMPNAME); ?></label>
            <input name="ninzio_portfolio_project_link" id="portfolio-project-link" type="text" value="<?php echo $ninzio_portfolio_project_link;?>"/>
        </div>

<?php

	}

	function render_ninzio_portfolio_media_options($post) {

		$values                          = get_post_custom( $post->ID );
		$ninzio_portfolio_featured_media = isset( $values['ninzio_portfolio_featured_media'] ) ? esc_attr( $values["ninzio_portfolio_featured_media"][0] ) : "yes";
	    $ninzio_portfolio_audio_mp3      = isset( $values['ninzio_portfolio_audio_mp3'] ) ? esc_url( $values["ninzio_portfolio_audio_mp3"][0] ) : "";
	    $ninzio_portfolio_audio_ogg      = isset( $values['ninzio_portfolio_audio_ogg'] ) ? esc_url( $values["ninzio_portfolio_audio_ogg"][0] ) : "";
	    $ninzio_portfolio_audio_embed    = isset( $values['ninzio_portfolio_audio_embed'] ) ? esc_attr( $values["ninzio_portfolio_audio_embed"][0] ) : "";
	    $ninzio_portfolio_video_mp4      = isset( $values['ninzio_portfolio_video_mp4'] ) ? esc_url( $values["ninzio_portfolio_video_mp4"][0] ) : "";
	    $ninzio_portfolio_video_ogv  	 = isset( $values['ninzio_portfolio_video_ogv'] ) ? esc_url( $values["ninzio_portfolio_video_ogv"][0] ) : "";
	    $ninzio_portfolio_video_webm     = isset( $values['ninzio_portfolio_video_webm'] ) ? esc_url( $values["ninzio_portfolio_video_webm"][0] ) : "";
	    $ninzio_portfolio_video_embed    = isset( $values['ninzio_portfolio_video_embed'] ) ? esc_attr( $values["ninzio_portfolio_video_embed"][0] ) : "";
	    $ninzio_portfolio_video_poster   = isset( $values['ninzio_portfolio_video_poster'] ) ? esc_attr( $values["ninzio_portfolio_video_poster"][0] ) : "";

	    wp_nonce_field( 'ninzio_portfolio_meta_nonce', 'ninzio_portfolio_meta_nonce' );
?>	
		<div class="portfolio-featured-media-wrap">
			<label for="portfolio-featured-media">
	            <input type="checkbox" id="portfolio-featured-media" name="ninzio_portfolio_featured_media" value="no" <?php checked( $ninzio_portfolio_featured_media, "no" ); ?> />
	            <?php echo __(' - Disable Featured Media in this project (Featured Image / Featured Gallery / Featured Video / Featured Audio)', TEMPNAME); ?>
	        </label>
		</div>

		<div id="ninzio-portfolio-featured-image" class="ninzio-portfolio-option">
			<?php echo __("Set featured image at the right sidebar, like regular posts' featured image", TEMPNAME); ?>
		</div>

		<div id="ninzio-portfolio-featured-audio" class="ninzio-portfolio-option">
	        <h4><?php echo __("Audio options", TEMPNAME); ?></h4>
	        <div>
	            <label for="ninzio_portfolio_audio_mp3"><?php echo __('Enter  MP3 audio file link here:', TEMPNAME); ?></label>
	            <input name="ninzio_portfolio_audio_mp3" id="portfolio-audio-mp3" type="text" value="<?php echo $ninzio_portfolio_audio_mp3;?>"/>
	        </div>
	        <div>
	            <label for="ninzio_portfolio_audio_embed"><?php echo __('Enter  OGG audio file link here:', TEMPNAME); ?></label>
	            <input name="ninzio_portfolio_audio_embed" id="portfolio-audio-ogg" type="text" value="<?php echo $ninzio_portfolio_audio_ogg;?>"/>
	        </div>
	        <div>
	            <label for="ninzio_portfolio_audio_embed"><?php echo __('Embed audio here:', TEMPNAME); ?></label>
	            <textarea name="ninzio_portfolio_audio_embed" id="portfolio-audio-embed"><?php echo $ninzio_portfolio_audio_embed;?></textarea>
	        </div>
	    </div>

	    <div id="ninzio-portfolio-featured-video" class="ninzio-portfolio-option">
	        <h4><?php echo __("Video options", TEMPNAME); ?></h4>
	        <div>
	            <label for="ninzio_portfolio_video_mp4"><?php echo __('Enter  MP4 video file link here:', TEMPNAME); ?></label>
	            <input name="ninzio_portfolio_video_mp4" id="portfolio-video-mp3" type="text" value="<?php echo $ninzio_portfolio_video_mp4;?>"/>
	        </div>
	        <div>
	            <label for="ninzio_portfolio_video_ogv"><?php echo __('Enter  OGV video file link here:', TEMPNAME); ?></label>
	            <input name="ninzio_portfolio_video_ogv" id="portfolio-video-ogv" type="text" value="<?php echo $ninzio_portfolio_video_ogv;?>"/>
	        </div>
	        <div>
	            <label for="ninzio_portfolio_video_webm"><?php echo __('Enter  WEBM video file link here:', TEMPNAME); ?></label>
	            <input name="ninzio_portfolio_video_webm" id="portfolio-video-webm" type="text" value="<?php echo $ninzio_portfolio_video_webm;?>"/>
	        </div>
	        <br>
	        <div>
	            <div class="ninzio-upload">
	                <input name="ninzio_portfolio_video_poster" id="portfolio-video-poster" type="hidden" class="ninzio-upload-path" value="<?php echo $ninzio_portfolio_video_poster;?>"/> 
	                <input class="ninzio-button-upload button" type="button" value="<?php echo __('Upload video poster image', TEMPNAME) ?>" />
	                <input class="ninzio-button-remove button" type="button" value="<?php echo __('Remove video poster image', TEMPNAME) ?>" />
	                <br>
	                <img src='<?php echo $ninzio_portfolio_video_poster; ?>' class='ninzio-preview-upload'/>
	            </div>
	        </div>
	        <div>
	            <label for="ninzio_portfolio_video_embed"><?php echo __('Embed video here:', TEMPNAME); ?></label>
	            <textarea name="ninzio_portfolio_video_embed" id="portfolio-video-embed"><?php echo $ninzio_portfolio_video_embed;?></textarea>
	        </div>
	    </div>

	    <div id="ninzio-portfolio-featured-gallery" class="ninzio-portfolio-option">
	        <h4><?php echo __("Gallery options", TEMPNAME); ?></h4>
        	<div><?php echo __('Use 2nd/3rd ... Featured Images (in the right sidebar, right after main featured image) to upload images for the project gallery', TEMPNAME); ?></div>
	    </div>

<?php 

	}

	function render_ninzio_portfolio_format_options($post) {

		$values                  = get_post_custom( $post->ID );
	    $ninzio_portfolio_format = isset( $values['ninzio_portfolio_format'] ) ? esc_attr( $values["ninzio_portfolio_format"][0] ) : "";

?>
		<div class="select-featured-media-type">
			<fieldset class="ninzio-clearfix">
				<div id="p-image" class="featured-media-type-option">
	            	<input type="radio" id="portfolio-featured-image" name="ninzio_portfolio_format" class="portfolio-featured-media-option" value="image" checked <?php checked( $ninzio_portfolio_format, "image" ); ?> />
					<label for="ninzio_portfolio_format"><?php echo __("Image", TEMPNAME); ?></label>
				</div>
				<div id="p-gallery" class="featured-media-type-option">
	           		<input type="radio" id="portfolio-featured-gallery" name="ninzio_portfolio_format" class="portfolio-featured-media-option" value="gallery" <?php checked( $ninzio_portfolio_format, "gallery" ); ?> /> 
					<label for="ninzio_portfolio_format"><?php echo __("Gallery", TEMPNAME); ?></label>
				</div>
	            <div id="p-video" class="featured-media-type-option">
	            	<input type="radio" id="portfolio-featured-video" name="ninzio_portfolio_format" class="portfolio-featured-media-option" value="video" <?php checked( $ninzio_portfolio_format, "video" ); ?> /> 
	            	<label for="ninzio_portfolio_format"><?php echo __("Video", TEMPNAME); ?></label>
	            </div>
	            <div id="p-audio" class="featured-media-type-option">
	            	<input type="radio" id="portfolio-featured-audio" name="ninzio_portfolio_format" class="portfolio-featured-media-option" value="audio" <?php checked( $ninzio_portfolio_format, "audio" ); ?> /> 
	            	<label for="ninzio_portfolio_format"><?php echo __("Audio", TEMPNAME); ?></label>
	            </div>  
		    </fieldset>
		</div>

<?php

	}

	add_action( 'save_post', 'save_ninzio_portfolio_options' );  
	function save_ninzio_portfolio_options( $post_id )  
	{  
	    
	    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; 
	    if( !isset( $_POST['ninzio_portfolio_meta_nonce'] ) || !wp_verify_nonce( $_POST['ninzio_portfolio_meta_nonce'], 'ninzio_portfolio_meta_nonce' ) ) return;  
	    if( !current_user_can( 'edit_post' ) ) return;

	    if( isset( $_POST['ninzio_portfolio_format'] ) ){update_post_meta($post_id, "ninzio_portfolio_format",$_POST["ninzio_portfolio_format"]);}
	    if( isset( $_POST['ninzio_portfolio_audio_mp3'] ) ){update_post_meta($post_id, "ninzio_portfolio_audio_mp3",$_POST["ninzio_portfolio_audio_mp3"]);}
	    if( isset( $_POST['ninzio_portfolio_audio_ogg'] ) ){update_post_meta($post_id, "ninzio_portfolio_audio_ogg",$_POST["ninzio_portfolio_audio_ogg"]);}
	    if( isset( $_POST['ninzio_portfolio_audio_embed'] ) ){update_post_meta($post_id, "ninzio_portfolio_audio_embed",$_POST["ninzio_portfolio_audio_embed"]);}
	    if( isset( $_POST['ninzio_portfolio_video_mp4'] ) ){update_post_meta($post_id, "ninzio_portfolio_video_mp4",$_POST["ninzio_portfolio_video_mp4"]);}
	    if( isset( $_POST['ninzio_portfolio_video_ogv'] ) ){update_post_meta($post_id, "ninzio_portfolio_video_ogv",$_POST["ninzio_portfolio_video_ogv"]);}
	    if( isset( $_POST['ninzio_portfolio_video_webm'] ) ){update_post_meta($post_id, "ninzio_portfolio_video_webm",$_POST["ninzio_portfolio_video_webm"]);}
	    if( isset( $_POST['ninzio_portfolio_video_embed'] ) ){update_post_meta($post_id, "ninzio_portfolio_video_embed",$_POST["ninzio_portfolio_video_embed"]);}
	    if( isset( $_POST['ninzio_portfolio_video_poster'] ) ){update_post_meta($post_id, "ninzio_portfolio_video_poster",$_POST["ninzio_portfolio_video_poster"]);}

	    if( isset( $_POST['ninzio_portfolio_client'] ) ){update_post_meta($post_id, "ninzio_portfolio_client",$_POST["ninzio_portfolio_client"]);}
	    if( isset( $_POST['ninzio_portfolio_project_link'] ) ){update_post_meta($post_id, "ninzio_portfolio_project_link",$_POST["ninzio_portfolio_project_link"]);}

    	$ninzio_portfolio_featured_media_checked = ( isset( $_POST['ninzio_portfolio_featured_media'] ) ) ? "no" : "yes";
        update_post_meta($post_id, "ninzio_portfolio_featured_media", $ninzio_portfolio_featured_media_checked);

	}

/*====================================================================*/
/*	PORTFOLIO ADMIN COLUMNS
/*====================================================================*/
	
	add_filter("manage_edit-portfolio_columns", "portfolio_edit_columns");

	function portfolio_edit_columns($columns){


		$columns['cb']             = "<input type=\"checkbox\" />";
		$columns['title']          = __("Project title", TEMPNAME);
		$columns['format']         = __("Format", TEMPNAME);
		$columns['category']       = __("Category", TEMPNAME);
		$columns['portfolio-tags'] = __("Tags", TEMPNAME);

		return $columns;
	}

	add_action("manage_portfolio_posts_custom_column", "portfolio_custom_columns");

	function portfolio_custom_columns($column){

		global $post;
		$values = get_post_custom();

		$ninzio_portfolio_format = isset($values["ninzio_portfolio_format"][0]) ? $values["ninzio_portfolio_format"][0] : "image";

		switch ($column){

			case "format":
				
				echo '<span title="'.$ninzio_portfolio_format.' format" class="'.$ninzio_portfolio_format.'">&nbsp;</span>';
				
			break;

			case "category":

				$terms = get_the_terms( $post->ID, 'portfolio-category' );

				if ( !empty( $terms ) ) {
					$out = array();
					foreach ( $terms as $term ) {
						$out[] = sprintf( '<a href="%s">%s</a>',
							esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'portfolio-category' => $term->slug ), 'edit.php' ) ),
							esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'portfolio-category', 'display' ) )
						);
					}

					echo join( ', ', $out );

				} else {
					echo __("No categories", TEMPNAME);
				}
				
			break;

			case "portfolio-tags":

				$terms = get_the_terms( $post->ID, 'portfolio-tag' );

				if ( !empty( $terms ) ) {
					$out = array();
					foreach ( $terms as $term ) {
						$out[] = sprintf( '<a href="%s">%s</a>',
							esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'portfolio-tag' => $term->slug ), 'edit.php' ) ),
							esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'portfolio-tag', 'display' ) )
						);
					}

					echo join( ', ', $out );

				} else {
					echo __("No tags", TEMPNAME);
				}
				
			break;

		}
	}

?>