/*
* jQuery pager plugin
* Version 1.0 (02/02/2011)
* @requires jQuery latest
* @requires jQuery UI latest
*
* Copyright (c) 2011 FIELD Co., Ltd.
* http://www.fieldcorp.jp/
*
* License:
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* 
*/

// Settings how to....
/************************************
*
*
* pagenumber: 1,                       // Page that you want to show at 1st, Default 1
* nav: 'jqueryPager_nav',              // class attribute for CSS styling. Default: jqueryPager_nav
* navPos: 'bottom',                    // position of navigation 'top' 'bottom' or 'both',  Default: bottom
* navImg: false,                       // use image for navigation, Default: false
* navImgDir: '/ekiblo/images/index/',  // image file directory; Use with navImg true
* navImgSuffix: 'icon_pager',          // image file suffix; Use with navImg true, Deafult: icon_pager i.e: your file name would be icon_pager1 icon_pager2 ....
* navImgExt: 'gif',                    // image format, Default: 'gif'
* navImgActive: false,                 // change  icon image for active page. prepare file name with '_active', Default: false i.e: your file name would be icon_pager1_active icon_pager2_active ....
* section: 'recommend_entries'         // div class name
* effect: fade                         // effect default: fade
*************************************/
jQuery.noConflict();
(function($) {
	$.fn.fadeTo = function(speed,to,callback) { 
		return this.animate({opacity: to}, speed, function() { 
			if (to == 1 && $.browser.msie)  
				this.style.removeAttribute('filter');  
			if ($.isFunction(callback)) 
				callback();  
		});
	};
		   
})(jQuery);

(function($) {

    $.fn.pager = function(options) {

        var opt = $.extend({}, $.fn.pager.defaults, options);
		
		var pegeContentainer = $(this);
		var navID = '.' + opt.nav;
		var pageSeparater = '.' + opt.section;
		var pageCount = $(pageSeparater ,pegeContentainer).length;
		var i = 1;
		var paused = false;
		var url = document.URL;
		var params = getParametersFromURL(url);
		
		
		function init(){
			buildNav();
			setPages();
			show();
		}
		

			if(opt.history){
				if(params['ppid'] && params['ppid'] != 'undefined'){ var i = parseInt(params['ppid']); }
			}
		
		function getParametersFromURL(url) {
			var params = {};
			/*
			if (url.match(/https?[^?]+\#([^#]*)/)) {
				var query = RegExp.$1;
				
				var arr = query.split('&');
				for (var n in arr) {
					if (arr[n].match(/^([^=]+)=(.*)$/)) {
						params[RegExp.$1] = decodeURIComponent(RegExp.$2);
					}
				}
			}
			return params;
			*/
		}
		
		function show(){
			
			$(document).stopTime("transition");
			
			var curPage = i;
			
			$(pageSeparater ,pegeContentainer).hide(opt.effect, 100, function(){
				if($.browser.msie){
					this.style.removeAttribute('filter');
				}
			});
			
			var p = 1;
			$('ul', navID).find('li').each(function(){
				$('img', this).attr('src', opt.navImgDir + opt.navImgSuffix + p + '.' + opt.navImgExt);
				p++;
				if(p > pageCount) p = 1;
			});
				
				$(pageSeparater ,pegeContentainer).eq(i-1).show(opt.effect, 150, function(){
					if($.browser.msie){
						this.style.removeAttribute('filter');
					}
				});
				
				
				if(opt.navImgActive){
					$('ul', navID).find('li').each(function(){
						var hover = $(this).index();
						if((i - 1)  == hover){
							$('img', this).attr("src", opt.navImgDir + opt.navImgSuffix + i + '_active.' + opt.navImgExt);
						}
					});
			}
			
			
			if(opt.Auto == true){
				if(opt.StopOnHover == true){
					
					$(pegeContentainer).hover(function(){
							$(document).stopTime("pages");
							paused = true;
						},
						function(){
							$(document).everyTime(opt.Stay, "pages", function(){
								showNext();
						}, 1);
						paused = false;
					});
					
					if(paused == false){
						$(document).stopTime("pages");
						$(document).everyTime(opt.Stay, "pages", function(){
							showNext();
						}, 1);
					}
					
				}else{
					$(document).stopTime("pages");
					$(document).everyTime(opt.Stay, "pages", function(){
						showNext();
					}, 1);
				}
			}
		}
		
		function showNext(){
			if(i + 1 <= pageCount) {
				i = i + 1;
			}else if(i + 1 > pageCount) {
				i = 1;
			}
			show();
		}
				
		
		function setPages(){
			var heighest = 0;
			$(pageSeparater ,pegeContentainer).each(function(){

								
				$(this).append('<div class="pagerClearFix"></div>');
				$('.pagerClearFix', this).css({'clear':'both'});
				
				var ContainerHeight = $(this).innerHeight();
				set_ContainerHeight = heighest > ContainerHeight ? heighest : ContainerHeight;
				heighest = ContainerHeight > heighest ? ContainerHeight : heighest;
				//alert(heighest);
				
				$(pegeContentainer).css({
									'position': 'relative',
									'height': heighest
									});
				
				$(this).css({
							'position': 'absolute',
							'top': 0,
							'left': '1px',
							'height': $.browser.msie ? $(this).innerHeight() +10 : $(this).innerHeight() 
							});
				
				if(!$(this).index() == (opt.pagenumber - 1)){
					$(this).hide();
				}
			});
						
		}
		
		$('ul', navID).find('li').live('click', function(){
			if(opt.history){
				$("a", this).history(function(event, hash) {
					var j = $('img', this).attr('rel');
					i = j;
					show();
					i = parseInt(i) + 1;
					return false;
				});
			}else{
				var j = $('img', this).attr('rel');
				i = j;
				show();
				i = parseInt(i) + 1;
				return false;
			}
				
		});
		
		
		function buildNav(){
			if(opt.navPos == 'top'){
				var nav = $(pegeContentainer).before('<div class="'+ opt.nav +'"></div>');
			}else if(opt.navPos == 'bottom'){
				var nav = $(pegeContentainer).after('<div class="'+ opt.nav +'"></div>');
			}else if(opt.navPos == 'both'){
				var nav = $(pegeContentainer).before('<div class="'+ opt.nav +'"></div>');
				var nav = $(pegeContentainer).after('<div class="'+ opt.nav +'"></div>');
			}
			
			if(!opt.navImg){
				if(pageCount > 1){
					$(navID).append('<ul></ul>');
					for(p = 1; p <= pageCount; p++){
						if(p == pageCount){
							$('ul', navID).append('<li class="last">'+ p +'</li>');
						}else{
							$('ul', navID).append('<li>'+ p +'</li>');
						}
					}
				}
				
				$(navID + '> ul li').css({ 
										 'display': 'inline',
										 'cursor': 'pointer'
				});
			}else{
				if(pageCount > 1){
					$(navID).append('<ul></ul>');
					for(var c = 1; c <= pageCount; c++){
						if(c == pageCount){
							
							if(c == opt.pagenumber && opt.navImgActive){
								$('ul', navID).append('<li class="last"><img rel="'+ c +'" src="'+ opt.navImgDir + opt.navImgSuffix + c + '_active.' + opt.navImgExt +'" alt="'+ c +'" /></li>');
							}else{
								$('ul', navID).append('<li class="last"><img rel="'+ c +'" src="'+ opt.navImgDir + opt.navImgSuffix + c + '.' + opt.navImgExt +'" alt="'+ c +'" /></li>');
							}
						}else{
							
							if(c == opt.pagenumber && opt.navImgActive){
								$('ul', navID).append('<li><img rel="'+ c +'" src="'+ opt.navImgDir + opt.navImgSuffix + c + '_active.' + opt.navImgExt +'" alt="'+ c +'" /></li>');
							}else{
								$('ul', navID).append('<li><img rel="'+ c +'" src="'+ opt.navImgDir + opt.navImgSuffix + c + '.' + opt.navImgExt +'" alt="'+ c +'" /></li>');
							}
						}
					}
				}
				
				$(navID + '> ul li').css({ 
										 'display': 'inline',
										 'cursor': 'pointer'
										 });
			}
			
			
									
		}
		
		
		
		/*
        return this.each(function() {

        	//$(this).empty();
            
            $(opts.nav).mouseover(function() { document.body.style.cursor = "pointer"; }).mouseout(function() { document.body.style.cursor = "auto"; });
        });
		*/
		
		init();
		/*
		if(opt.history){
			var ppid = 1;
			function history(){
				$('ul', navID).find('li').each(function(){
					$('img', this).wrap('<a href="#ppid='+ ppid +'"></a>');
					ppid++;
				});
			}
		
			history();
		}
		*/
    };
	

    // pager defaults. hardly worth bothering with in this case but used as placeholder for expansion in the next version
    $.fn.pager.defaults = {
        pagenumber: 1,
		nav: 'jqueryPager_nav',
		navPos: 'bottom',
		navImg: false,
		navImgDir: '/ekiblo/images/index/',
		navImgSuffix: 'icon_entry',
		navImgExt: 'gif',
		navImgActive: false,
		section: 'recommend_entries',
		effect: 'fade',
		Auto: true,
		Stay: 5000,
		StopOnHover: true,
		history: false
    };

})(jQuery);






