
(function($) {

	$.fn.easySlider = function(options){
	  
		// default configuration properties
		var defaults = {
            obj_id: 'slider', 
            prevId: 		'back',
            prevIdDisabled:	'back_disabled',
            prevText: 		'Back',
            nextId: 		'next',
            nextIdDisabled: 'next_disabled',
            nextText: 		'Next',
            statID: 		'stat',
            orientation:	'', //  'vertical' is optional;
            speed: 			800,
            start_from: 1,
            symbol_cnt : 0,
            symbols_per_block: 7,
            after_str: '',		
            before_str: '',
            ajax_url:'',
            ajax_params:''		
		}; 
		
		var options = $.extend(defaults, options);  
		
		return this.each(function() {  
			var s = $("#" + options.obj_id+" #content div").size();
			var w = $("#" + options.obj_id).width(); 
			var h = $("#" + options.obj_id).height(); 
			var ts = options.symbol_cnt <= options.symbols_per_block?1: Math.ceil(options.symbol_cnt/options.symbols_per_block)  ;//s-1;
			var t = options.start_from;
			var vertical = (options.orientation == 'vertical')?true:false;
         if (options.before_str > '') $("#" + options.obj_id).before(options.before_str);
         if (options.after_str > '') $("#" + options.obj_id).after(options.after_str);

         $("#" + options.obj_id+" #content").css({"top": "0", "left": "0", "margin": "0","padding": "0","overflow": "hidden","position": "relative"});
		   
         if (vertical){
            $("#" + options.obj_id+" #content").css({"width": w,"height": ts*h }); 
         }else{
            $("#" + options.obj_id+" #content").css({"width": ts*w,"height": h }); 
         }
      
         animate("start");

			$("#"+options.nextId).click(function(){		
            animate("next");
			});
            
			$("#"+options.prevId).click(function(){		
				animate("prev");
			});	
            
			function animate(dir){
            if(dir == "prev"){
					t = (t > 1) ? t-1: 1 ;
            } else if(dir == "next"){
					t = (t < ts) ? t+1 : ts  ;	
				};	

            
            if ( s < ts && t==s ){

                if(options.ajax_url>''){
                    params = options.ajax_params;
                    params['per_page'] = options.symbols_per_block;
                    params['page'] = t+1;
                    params['page_cn'] = s;
                    $.get(options.ajax_url,params,function(data) { 
                        $(data).appendTo($("#" + options.obj_id+ " #content" ));
                        s = s + 1;
                    });
                }else{
                    ts = s;
                }
            }

//            cur_page = $("#" + options.obj_id+" #content div:eq("+(t-1)+")");
//            alert( $(cur_page).width()+ ' '+$(cur_page).height() );
            
				if(!vertical ) {
					p = ((t-1)*w*-1);
					$("#" + options.obj_id+ " #content" ).animate({left:p+"px"}, options.speed);		//marginLeft		
				} else {
					p = ((t-1)*h*-1);
					$("#" + options.obj_id + " #content").animate({marginTop: p}, options.speed);					
				}
                
            if(t >= ts){
                $("#"+options.nextId).hide();
                $("#"+options.nextIdDisabled).fadeIn();
            }else{
                $("#"+options.nextIdDisabled).hide();
                $("#"+options.nextId).fadeIn();
            }
				if(t < 2){ 
               $("#"+options.prevId).hide();
               $("#"+options.prevIdDisabled).fadeIn();
            }else{
               $("#"+options.prevIdDisabled).hide();
               $("#"+options.prevId).fadeIn();
            }
            
            end_pos = (options.symbol_cnt<(t)*options.symbols_per_block) ? options.symbol_cnt : ((t)*options.symbols_per_block);
            $("#" + options.statID).html((((t-1)*options.symbols_per_block)+1) + '-' + end_pos + '&nbsp;&nbsp;&nbsp;&nbsp;/' + options.symbol_cnt);

			};
            
		});
	  
	};

})(jQuery);
