function Paginator(IDtoPaginate,IDforPager) {
	//BASE SETTING
    this.selector = IDtoPaginate;
	this.SubNavID = null;
    this.itemsPerPage = 5;
    this.currentPage = 1;
    this.pages = 0;
    this.inited = false;
	this.paginator = IDforPager;
	this.totalItem = 0;
	this.fromValue = 0;
	this.toValue = 0;
	this.totalLinkSeen = 5;
	// Page Nav
	this.showFirstPageBtnNav = false;
	this.showPrevPageBtnNav = true;
	this.showNumberNav = true;
	this.showNextPageBtnNav = true;
	this.showLastPageBtnNav = false;
	this.showResultTextBool = true;
	this.showResultTextBoolSub = false;
	
	this.init = function() {
		// VAR INIT
        this.inited = true;
		var posChosen = null;
        this.totalItem = $("#"+this.selector).children('.video').length;
		if(this.itemsPerPage == 0){this.itemsPerPage = this.totalItem;}
        this.pages = Math.ceil(this.totalItem / this.itemsPerPage);
		this.currentPage = 1;
		
		if(this.totalLinkSeen > this.pages){
			this.totalLinkSeen = this.pages;
		}
		
		// INIT SHOW PAGE
		if(this.currentPage > this.pages)
		this.showPage(this.pages);
		else
		this.showPage(this.currentPage);
		
		// INIT SHOW PAGINATOR
		this.showPageNav(this.paginator);

        // init events
        this.enabled_hover();
		
    }

    this.enabled_hover = function() {
        $('#paginator span img').css({opacity:1,cursor:'pointer'});
        $('#paginator span img').hover(
        function(){
            var over_img_src = $(this).attr('src').replace('.jpg','_on.jpg');
            $(this).attr('src',over_img_src);
        },
        function(){
            var img_src = $(this).attr('src').replace('_on','');
            $(this).attr('src',img_src);
        });
    };
	
	this.showResultText = function() {
		var html = '<span class="feature">page '+this.currentPage+'/'+this.pages+'</span>';
		return html;
	}
	
	this.showPageNav = function(divID) {
		if (! this.inited) {
    		alert("not inited");
    		return;
    	}
		this.paginator = divID;
		var pagerHtml ="";
		var pagerSubHtml ="";
		
		if(this.showResultTextBoolSub == true) {
			pagerSubHtml += this.showResultText();
		}
		
		if(this.currentPage != 1) {
			if(this.showFirstPageBtnNav == true) {
				pagerHtml += '<span onclick="' + this.selector + '.first();"><img src="/assets/img/Bt_previousTotal.gif" alt="First Page" width="15" height="9" border="0" /></span> | ';
				pagerSubHtml += '<span onclick="' + this.selector + '.first();"><img src="/assets/img/Bt_previousTotal.gif" alt="First Page" width="15" height="9" border="0" /></span> | ';
			}
			
			if(this.showPrevPageBtnNav == true) {
				pagerHtml += '<span onclick="' + this.selector + '.prev();"><img src="/assets/img/prev_home.jpg" alt="Previous Page" width="11" height="19" border="0" /></span>';
				pagerSubHtml += '<span onclick="' + this.selector + '.prev();"><img src="/assets/img/prev_home.jpg" alt="Previous Page" width="15" height="9" border="0" /></span> | ';
			}
		}
		else {
			if(this.showFirstPageBtnNav == true) {
				pagerHtml += '<span class="disabled"><img src="/assets/img/Bt_previousTotal.gif" alt="First Page" width="15" height="9" border="0" /></span> | ';
				pagerSubHtml += '<span class="disabled"><img src="/assets/img/Bt_previousTotal.gif" alt="First Page" width="15" height="9" border="0" /></span> | ';
			}
			
			if(this.showPrevPageBtnNav == true) {
				pagerHtml += '<span class="disabled"><img src="/assets/img/prev_home.jpg" alt="Previous Page" width="11" height="19" border="0" /></span>';
				pagerSubHtml += '<span class="disabled"><img src="/assets/img/Bt_previous.gif" alt="Previous Page" width="15" height="9" border="0" /></span> | ';
			}
		}
		
		if(this.showResultTextBool == true) {
			pagerHtml += this.showResultText();
		}
		
		if(this.showNumberNav == true) {
			var eachSideLinks = Math.floor((this.totalLinkSeen - 1) / 2);
			
			if(this.currentPage + eachSideLinks >= this.pages) {
				firstLink = this.pages - this.totalLinkSeen + 1;
				lastLink = this.pages;
			}
			else if(this.currentPage - eachSideLinks <= 0) {
				firstLink = 1;
				lastLink = this.totalLinkSeen;
			}
			else {
				firstLink = this.currentPage - eachSideLinks;
				lastLink = firstLink + this.totalLinkSeen - 1;
			}
			for (var page = firstLink; page <= lastLink; page++) {
				if(page != this.currentPage) {
					pagerHtml += '<span id="pg' + page + '" onclick="' + this.selector + '.showPage(' + page + ');">' + page + '</span> | ';
					pagerSubHtml += '<span id="pg' + page + '" onclick="' + this.selector + '.showPage(' + page + ');">' + page + '</span> | ';
				}
				else {
					pagerHtml += '<span id="pg' + page + '" class="selectedPage" onclick="' + this.selector + '.showPage(' + page + ');">' + page + '</span> | ';
					pagerSubHtml += '<span id="pg' + page + '" class="selectedPage" onclick="' + this.selector + '.showPage(' + page + ');">' + page + '</span> | ';
				}
			}
		}
		
		if(this.currentPage != this.pages) {
			if(this.showNextPageBtnNav == true) {
				pagerHtml += '<span onclick="'+this.selector+'.next();"><img src="/assets/img/next_home.jpg" alt="Next Page" width="11" height="19" border="0" /></span>';
				pagerSubHtml += '<span onclick="'+this.selector+'.next();"><img src="/assets/img/bt_next.gif" alt="Next Page" width="17" height="9" border="0" /></span>';
			}
			
			if(this.showLastPageBtnNav == true) {
				pagerHtml += ' | <span onclick="' + this.selector + '.last();"><img src="/assets/img/Bt_nextTotal.gif" alt="Last Page" width="16" height="9" border="0" /></span>';
				pagerSubHtml += ' | <span onclick="' + this.selector + '.last();"><img src="/assets/img/Bt_nextTotal.gif" alt="Last Page" width="16" height="9" border="0" /></span>';
			}
		}
		else {
			if(this.showNextPageBtnNav == true) {
				pagerHtml += '<span class="disabled"><img src="/assets/img/next_home.jpg" alt="Next Page" width="11" height="19" border="0" /></span>';
				pagerSubHtml += '<span class="disabled"><img src="/assets/img/bt_next.gif" alt="Next Page" width="17" height="9" border="0" /></span>';
			}
			
			if(this.showLastPageBtnNav == true) {
				pagerHtml += ' | <span class="disabled"><img src="/assets/img/Bt_nextTotal.gif" alt="Last Page" width="16" height="9" border="0" /></span>';
				pagerSubHtml += ' | <span class="disabled"><img src="/assets/img/Bt_nextTotal.gif" alt="Last Page" width="16" height="9" border="0" /></span>';
			}
		}
        
		if(this.pages !=1){
			if(this.SubNavID != null){
				$('#'+this.SubNavID).html(pagerSubHtml);
			}
			$("#"+divID).html('<div class="zone">' + pagerHtml + '</div>');
		}
		else {
        	$("#"+divID).html('');
			$('#'+this.SubNavID).html('');
		}
    }
	
    this.showRecords = function(from, to) {
        $("#"+this.selector).children('.video').each(function(e) {
			if (e+1 < from || e+1 > to) {
            	$(this).hide();
			}
            else {
				$(this).show();
			}
        });
    }
    
    this.showPage = function(pageNumber) {
		if(pageNumber == null){
			pageNumber = 1;
		}
		
		// set Current Nav Number
		$('#'+this.paginator+' #pg'+this.currentPage).removeClass('selected');
        this.currentPage = pageNumber;
        $('#'+this.paginator+' #pg'+this.currentPage).attr('class', 'selected');
        
        var from = (pageNumber - 1) * this.itemsPerPage+1;
        var to = from + this.itemsPerPage - 1;
		
		if(to >= this.totalItem) {
			to = this.totalItem;
		}
		this.fromValue = from;
		this.toValue = to;
        this.showRecords(from, to);
		
		this.showPageNav(this.paginator);
        this.enabled_hover();
    }  
	
	// BTN CTRL
    this.first = function() {
		this.showPage(1);
	}
	
    this.prev = function() {
        if (this.currentPage > 1)
            this.showPage(this.currentPage - 1);
    }
    
    this.next = function() {
        if (this.currentPage < this.pages) {
            this.showPage(this.currentPage + 1);
        }
    }
	
	this.last = function() {
		this.showPage(this.pages);
	}
	
	
	// GETTER & SETTER
	
	
	// SETTING
	// REPORTS PER PAGE
	this.getSeenPageNav = function(){return this.totalLinkSeen;}
	this.setSeenPageNav = function(number){this.totalLinkSeen = number;}
	// REPORTS PER PAGE
	this.getItemPerPage = function(){return this.itemsPerPage;}
	this.setItemPerPage = function(number){this.itemsPerPage = number;this.init();}
	// PAGER
	// FIRST BTN VALUE
	this.getFirstPageBtnNavValue = function(){return this.showFirstPageBtnNav;}
    this.setFirstPageBtnNavValue = function(bool){this.showFirstPageBtnNav = bool;}
	// PREV BTN VALUE
	this.getPrevPageBtnNavValue = function(){return this.showPrevPageBtnNav;}
    this.setPrevPageBtnNavValue = function(bool){this.showPrevPageBtnNav = bool;}
	// NEXT BTN VALUE
	this.getNextPageBtnNavValue = function(){return this.showNextPageBtnNav;}
    this.setNextPageBtnNavValue = function(bool){this.showNextPageBtnNav = bool;}
	// LAST BTN VALUE
	this.getLastPageBtnNavValue = function(){return this.showLastPageBtnNav;}
    this.setLastPageBtnNavValue = function(bool){this.showLastPageBtnNav = bool;}
	// RESULT TEXT VALUE
	this.getResultTextBoolValue = function(){return this.showResultTextBool;}
    this.setResultTextBoolValue = function(bool){this.showResultTextBool = bool;}
	// RESULT TEXT SUB VALUE
	this.getResultTextBoolSubValue = function(){return this.showResultTextBoolSub;}
    this.setResultTextBoolSubValue = function(bool){this.showResultTextBoolSub = bool;}
	// SUB NAV
	this.setSubNav = function(IDforPager) {this.SubNavID = IDforPager;}
	this.setCurentItem = function() {this.init();}
}


