<?php

// comments
if(!function_exists('wp_list_comments')) { // WP 2.7- only check	
	function theme_legacy_comments($file) {	
		return TEMPLATEPATH.'/legacy-comments.php';	
	}
	add_filter('comments_template', 'theme_legacy_comments');
}

// widgets
function theme_vmenu_widget($args) { // for wp < 3.0
	extract($args);
	$source = theme_get_option('theme_vmenu_source');
	echo $before_widget;
	echo $before_title . __($source, THEME_NS) . $after_title;
	echo theme_get_menu(array(
			'source' => $source,
			'depth' => theme_get_option('theme_vmenu_depth'),
			'class' => 'art-vmenu'
		));
	echo $after_widget;
}

// init widgets
function artWidgetsInit(){
	if ( function_exists('register_sidebar_widget') ) {
		register_sidebar_widget('vmenu', 'vmenu_widget');
	}
}
add_action('widgets_init', 'artWidgetsInit');



// functions
if (!function_exists('get_home_url')) {
	function get_home_url() {
		return get_option('home');
	}
}

if (!function_exists('_n')) {
	function _n( $single, $plural, $number, $domain = 'default' ) {
		return __($plural, $domain);
	}
}

if (!function_exists('_x')) {
	function _x() {
		$args = func_get_args();
		$what = array_shift($args); 
		$args[0] = $what.'|'.$args[0];
		return call_user_func_array('_c', $args);
	}
}

if (!function_exists('esc_url'))
{
	function esc_url( $url, $protocols = null, $context = 'display' ) {
		$args = func_get_args();
		return call_user_func_array('clean_url', $args);
	}
}

if (!function_exists('theme_get_widget_style')) {
	function theme_get_widget_style($id, $style = null)
	{
		if(theme_is_vmenu_widget($id)) return 'vmenu';
		$result = 'default'; 
		if ($style != null) {
			if (!in_array($style,array('block', 'post', 'simple'))) {
				$style = 'block';		
			}
			if($result == 'default') { 
				$result = $style;
			}
		}
		return $result;
	}
}

if (!function_exists('get_the_date')) {
	function get_the_date($format = 'F jS, Y') {
		return get_the_time(__($format, THEME_NS));
	}
}

if (!function_exists('esc_attr')) {
	function esc_attr( $text ) {
		return attribute_escape($text);
	}
} 

if (!function_exists('esc_html')) {
	function esc_html( $text ) {
		return wp_specialchars($text);
	}
}
 
if (!function_exists('get_the_author_meta')) {
	function get_the_author_meta($field = '', $user_id = false) {
		if (!user_id) {
			global $authordata;
		} else {
			$authordata = get_userdata($user_id);
		}
		
		$field = strtolower($field);
		$user_field = 'user_' . $field;
		
		if ( 'id' == $field ) {
			$value = isset($authordata->ID) ? (int) $authordata->ID : 0;
		} elseif (isset($authordata->$user_field)) {
			$value = $authordata->$user_field;
		} else {
			$value = isset($authordata->$field) ? $authordate->$field : '';
		}
		
		return apply_filters('get_the_author_' . $field, $value, $user_id);
	}
}

if (!function_exists('get_search_form')) {
	function get_search_form() {
		$search_form_template = theme_locate_template(array('searchform.php'));
		if ( '' == $search_form_template ) return;
		require($search_form_template);
	}
}


if (!function_exists('theme_locate_template')) {
	function theme_locate_template($template_names, $load = false, $require_once = true ) {
		if ( !is_array($template_names) )
			return '';
		
		$located = '';
		foreach ( $template_names as $template_name ) {
			if ( !$template_name )
				continue;
			if ( file_exists(STYLESHEETPATH . '/' . $template_name)) {
				$located = STYLESHEETPATH . '/' . $template_name;
				break;
			} else if ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
				$located = TEMPLATEPATH . '/' . $template_name;
				break;
			}
		}
		
		if ( $load && '' != $located )
			theme_load_template( $located, $require_once );
		
		return $located;
	}
}

if (!function_exists('theme_load_template')) {
	function theme_load_template( $_template_file, $require_once = true ) {
		global $posts, $post, $wp_did_header, $wp_did_template_redirect, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID;

		if ( is_array( $wp_query->query_vars ) )
			extract( $wp_query->query_vars, EXTR_SKIP );

		if ( $require_once )
			require_once( $_template_file );
		else
			require( $_template_file );
	}	
}

if (!function_exists('get_template_part')) {
	function get_template_part( $slug, $name = null ) {
		do_action( "get_template_ptheme_{$slug}", $slug, $name );
		
		$templates = array();
		if ( isset($name) )
			$templates[] = "{$slug}-{$name}.php";
		
		$templates[] = "{$slug}.php";
		
		theme_locate_template($templates, true, false);
	}
}

if (!function_exists('get_previous_posts_link')) {
	function get_previous_posts_link($label)
	{
		ob_start();
		previous_posts_link($label);
		return ob_get_clean();
	}
}

if (!function_exists('get_next_posts_link')) {
	function get_next_posts_link($label)
	{
		ob_start();
		next_posts_link($label);
		return ob_get_clean();
	}
}
