/**
 * jQuery Course Plugin 取得课程信息的插件
 * @requires jQuery v1.2.2 or later
 * @author: hongjing.sun
 * @date: 2009-01-06
 * @copyright (c) 2009 CSDN
 *
 * Revision: $Id$
 */
(function($) {
/*
    Usage Note:  
    -----------
    For example
    $(document).ready(function() {
        $('#course').getCourseInfo({settings});
        $('span[id*="course_"]').getCourseList({settings});
    });
*/

/**
 * get course info
 */
 $.fn.getCourseInfo = function( settings ) 
 {
	default_settings = 	{
		prefix	: '分类：',
		postUrl	: '/index.php/course/info',
		courseUrl 	: '/course/detail/',
		CourseTitle : '',
		CourseID 	: $(this).attr('title'),
		target 	: $(this).attr('id'),
		cutSub : false,
		sublen : 10,
		usePost : true
	};
	settings = jQuery.extend( default_settings , settings);
	
	if(settings.usePost==true){
		$.post( settings.postUrl,{param:settings.CourseID}, function(data) 
		{
			data = eval('('+data+')');
			if( data.username !=''){
				if(settings.cutSub==true){
					var title = $.cutString(settings.prefix+data.title,settings.sublen);
				}else{
					var title = settings.prefix+data.title;
				}
				var info = '<a href="'+settings.courseUrl+data.id+'">'+title+'</a>';
				$("#"+settings.target).html(info);
			}
		});
	}else{
		$.get( settings.postUrl,{param:settings.CourseID}, function(data) 
		{
			data = eval('('+data+')');
			if( data.username !=''){
				if(settings.cutSub==true){
					var title = $.cutString(settings.prefix+data.title,settings.sublen);
				}else{
					var title = settings.prefix+data.title;
				}
				var info = '<a href="'+settings.courseUrl+data.id+'">'+title+'</a>';
				$("#"+settings.target).html(info);
			}
		});
	}
	
 };
 
 /**
 * get course list
 */
 $.fn.getCourseList = function(settings)
 {  
	default_settings = 	{
		prefix	: '分类：',
		dom : 'p',
		referAttr : 'title', 
		postUrl    : '/index.php/course/info',
		courseUrl : '/course/detail/',
		courseID : '',
		cutSub : false,
		sublen : 10,
		usePost : true
    };
	settings = jQuery.extend( default_settings , settings);
 	
   this.each( function(){	
		settings.courseID += $(this).attr('title')+"|";
  	});
  	
	if(settings.usePost==true){
		$.post( settings.postUrl,{param:settings.courseID}, function(data) 
		{
			data = eval('('+data+')');
			var info = '';
			for( i in data)
			{
				if(data[i].id!=''){
					if(settings.cutSub==true){
						var title = $.cutString(settings.prefix+data[i].title,settings.sublen);
					}else{
						var title = settings.prefix+data[i].title;
					}
					info = '<a href="'+settings.courseUrl+data[i].id+'">'+title+'</a>';
					$(settings.dom+"["+settings.referAttr+"='"+data[i].id+"']").html(info);
				}
			}
		});
	}else{
		$.get( settings.postUrl,{param:settings.courseID}, function(data) 
		{
			data = eval('('+data+')');
			var info = '';
			for( i in data)
			{
				if(data[i].id!=''){
					if(settings.cutSub==true){
						var title = $.cutString(settings.prefix+data[i].title,settings.sublen);
					}else{
						var title = settings.prefix+data[i].title;
					}
					info = '<a href="'+settings.courseUrl+data[i].id+'">'+title+'</a>';
					$(settings.dom+"["+settings.referAttr+"='"+data[i].id+"']").html(info);
				}
			}
		});
	}
 };
 
 /**
 * get course list
 */
 $.fn.getCategoryList = function(settings)
 {  
	default_settings = 	{
		prefix	: '分类：',
		dom : 'p',
		referAttr : 'name', 
		postUrl    : '/index.php/course/category',
		url : '/course/list/',
		courseID : '',
		cutSub : false,
		sublen : 10,
		usePost : true
    };
	settings = jQuery.extend( default_settings , settings);
 	
   this.each( function(){	
		settings.courseID += $(this).attr('title')+"|";
  	});
  	
	if(settings.usePost==true){
		$.post( settings.postUrl,{param:settings.courseID}, function(data) 
		{
			data = eval('('+data+')');
			var info = '';
			for( i in data)
			{
				if(data[i].id!=0){
					if(settings.cutSub==true){
						var title = $.cutString(settings.prefix+data[i].name,settings.sublen);
					}else{
						var title = settings.prefix+data[i].name;
					}
					info = '<a href="'+settings.url+data[i].id+'" target="_blank">'+title+'</a>';
					$(settings.dom+"["+settings.referAttr+"='category_"+data[i].cid+"']").html(info);
				}
			}
		});
	}else{
		$.get( settings.postUrl,{param:settings.courseID}, function(data) 
		{
			data = eval('('+data+')');
			var info = '';
			for( i in data)
			{
				if(data[i].id!=0){
					if(settings.cutSub==true){
						var title = $.cutString(settings.prefix+data[i].name,settings.sublen);
					}else{
						var title = settings.prefix+data[i].name;
					}
					info = '<a href="'+settings.url+data[i].id+'" target="_blank">'+title+'</a>';
					$(settings.dom+"["+settings.referAttr+"='category_"+data[i].cid+"']").html(info);
				}
			}
		});
	}
 };
 /**
 * get string sub info
 */
 $.fn.subStringInfo = function(settings)
 {  
	default_settings = 	{
		prefix	: '',
		child: false,
		length: 10
    };
	settings = jQuery.extend( default_settings , settings);

	if( settings.child == false ){
		var text = $(this).html();
	}else{
		var text = $(this).children().html();
	}
	var sub  = text.substring(0,settings.length);
	var view = '';
	if ( text.length > settings.length ) {
		view = settings.prefix+sub+"…";
	}else {
		view = settings.prefix+text;
	}
	if( settings.child == false ){
		$(this).html(view);
	}else{
		$(this).children().html(view);
	}
 };
 
 /**
 * get string sub info
 */
 $.fn.subStringList = function(settings)
 {  
	default_settings = 	{
		prefix	: '',
		child: false,
		length: 10
    };
	settings = jQuery.extend( default_settings , settings);
	
   this.each( function(i){	
		if(settings.child==false){
			var text = $(this).html();
		}else{
			var text = $(this).children().html();
		}
		var sub  = text.substring(0,settings.length);
		var view = '';
		if ( text.length > settings.length ) {
			view = settings.prefix+sub+"…";
		}else {
			view = settings.prefix+text;
		}
		if(settings.child==false){
			$(this).html(view);
		}else{
			$(this).children().html(view);
		}
  	});
 };
 
 $.cutString = function(str, len) {
	var sub  = str.substring(0,len);
	var view = '';
	if ( str.length > len ) {
		view = sub+"…";
	}else {
		view = str;
	}
	return view;
 };
     
})(jQuery);
