(function($){
   var GalleryPS = function(element, options)
   {
	   
       var elem = $(element);
       var obj = this;
	   var imageCount = 0;
	   var pageCount = 0;
	   var paginationelements = "";
	   var slectedClass = "";
       var settings = $.extend({
           images_per_page: 15
       }, options || {});
       
       // Public method - can be called from client code
       this.init_gallery = function()
       {
         //  alert(settings.images_per_page);
				
					
					imageCount = $(elem).find("ul.image-slide-list > li").size();
					
					pageCount = Math.ceil(imageCount/settings.images_per_page);
				
					$(elem).find("div.image-countering").html('<span class="image-caount-number">1</span>/'+imageCount);
					
					i=1;
					$(elem).find("ul.image-slide-list > li").each( function(){
						$(this).attr("rel",Math.ceil(i/settings.images_per_page));
						$(this).find("a").attr("rel",i);
						i++;
					})
					$(elem).find("ul.image-slide-list li").css("display", "none");
                    $(elem).find("ul.image-slide-list li[rel=1]").css("display", "block");
					
					if (imageCount>settings.images_per_page) {
							paginationelements = "";
							for(p=1;p<=pageCount;p++) {
								slectedClass = "";
								if (p==1) slectedClass = 'class="selected"';
								paginationelements=paginationelements+'<li '+slectedClass+' rel="'+p+'"><a title="'+p+'" href="#" rel="'+p+'">'+p+'</a></li>';
							}
							$(paginationelements).insertAfter($(elem).find("ul.pagination li.prev"));
                            
							$(elem).find("ul.pagination li.next a").attr("rel",2);
							$(elem).find("ul.pagination li.prev").css("display","none");
							
							$(elem).find("ul.pagination li a").click( function(){
								$(elem).find("ul.image-slide-list li").css("display", "none");
								$(elem).find("ul.image-slide-list li[rel="+$(this).attr("rel")+"]").css("display", "block");
								$(this).parent().parent().find("li").removeClass("selected");
								$(this).parent().parent().find("li[rel="+$(this).attr("rel")+"]").addClass("selected");
								
								if ($(this).attr("rel")==pageCount) {
									$(elem).find("ul.pagination li.prev a").attr("rel",pageCount-1);
									$(elem).find("ul.pagination li.next").css("display","none");
									$(elem).find("ul.pagination li.prev").css("display","block");
								} else if ($(this).attr("rel")==1) {
									$(elem).find("ul.pagination li.next a").attr("rel",2);
									$(elem).find("ul.pagination li.prev").css("display","none");
									$(elem).find("ul.pagination li.next").css("display","block");
								} else {
									$(elem).find("ul.pagination li.prev a").attr("rel",parseInt($(this).attr("rel"))-1);
									$(elem).find("ul.pagination li.next a").attr("rel",parseInt($(this).attr("rel"))+1);
                                    $(elem).find("ul.pagination li.prev").css("display","block");
                                    $(elem).find("ul.pagination li.next").css("display","block");
								}
								
								return false;
							})
							
					} else {
						$(elem).find("ul.pagination").css("display","none");
					}
					$(elem).find("a.next-image").click( function(){
						img_id = (parseInt($(elem).find("ul.image-slide-list li.selected a").attr("rel"))+1)
						if ((parseInt($(elem).find("ul.image-slide-list li.selected a").attr("rel")))==imageCount) img_id = 1;
		
							changeGalleryImage(img_id,pageCount);
							return false;
				
						});
					$(elem).find("a.prev-image").click( function(){
						img_id = (parseInt($(elem).find("ul.image-slide-list li.selected a").attr("rel"))-1)
						if ((parseInt($(elem).find("ul.image-slide-list li.selected a").attr("rel"))-1)==0) img_id = imageCount;
				
						changeGalleryImage(img_id,pageCount);
							return false;
				
						});
					$(elem).find("ul.image-slide-list li a").click( function(){
							//alert($(this).attr("href"));
							changeGalleryImage($(this).attr("rel"),pageCount);
							return false;
				
						});
       };








       // Private method - can only be called from within this object
       var changeGalleryImage = function(e,pageCount)
       {
				$(elem).find("ul.image-slide-list li").removeClass("selected");
				$(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().addClass("selected");
				$(elem).find("div.cur-image div.image-conteiner img").attr("src",$(elem).find("ul.image-slide-list li a[rel="+e+"]").attr("href"));
                
                if(($(elem).find("ul.image-slide-list li a[rel="+e+"]").attr("title")!="" && $(elem).find("ul.image-slide-list li a[rel="+e+"]").attr("title")!=" ") || ($(elem).find("ul.image-slide-list li a[rel="+e+"] img").attr("title")!="" && $(elem).find("ul.image-slide-list li a[rel="+e+"] img").attr("title")!=" ")) {
                    $(elem).find("div.cur-image div.image-conteiner p").removeClass("empty")
                    $(elem).find("div.cur-image div.image-conteiner p").html($(elem).find("ul.image-slide-list li a[rel="+e+"]").attr("title")+"<span>"+$(elem).find("ul.image-slide-list li a[rel="+e+"] img").attr("title")+"</span>");
                } else {
                     $(elem).find("div.cur-image div.image-conteiner p").html("");
                    $(elem).find("div.cur-image div.image-conteiner p").addClass("empty")
                }

				
				if ($(elem).find("div.image-slide-box:visible").size()>0) {
				    $(elem).find("div.image-slide-box").hide();
                    jQuery("a.image-slide-link").each( function(){
                            img_src = jQuery(this).find("img").attr("src");
                                img_src = img_src.split("_over.gif");
                                img_src = img_src[0]+".gif";
                                jQuery(this).find("img").attr("src",img_src);
                        })
                }
				$(elem).find("div.image-countering span.image-caount-number").text(e);
				
					$(elem).find("ul.image-slide-list li").css("display", "none");
					$(elem).find("ul.image-slide-list li[rel="+$(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().attr("rel")+"]").css("display", "block");
					
					$(elem).find("ul.pagination li").removeClass("selected");
					$(elem).find("ul.pagination li[rel="+$(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().attr("rel")+"]").addClass("selected");
				
					if ($(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().attr("rel")==pageCount) {
	
						$(elem).find("ul.pagination li.prev a").attr("rel",pageCount-1);
						$(elem).find("ul.pagination li.next").css("display","none");
						$(elem).find("ul.pagination li.prev").css("display","block");
						
					} else if ($(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().attr("rel")==1) {
						
						$(elem).find("ul.pagination li.next a").attr("rel",2);
						$(elem).find("ul.pagination li.prev").css("display","none");
						$(elem).find("ul.pagination li.next").css("display","block");
						
					} else {
			
						$(elem).find("ul.pagination li.prev a").attr("rel",parseInt($(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().attr("rel"))-1);
						$(elem).find("ul.pagination li.next a").attr("rel",parseInt($(elem).find("ul.image-slide-list li a[rel="+e+"]").parent().attr("rel"))+1);
						
					}
       };
	   
	   
	   this.init_gallery();
   };
   
   
   
   
   
   

   $.fn.gallery_ps = function(options)
   {
	   
       return this.each(function()
       {
           var element = $(this);
          
           // Return early if this element already has a plugin instance
           if (element.data('gallery_ps')) return;

           // pass options to plugin constructor
           var gallery_ps = new GalleryPS(this, options);

           // Store plugin object in this element's data
           element.data('gallery_ps', gallery_ps);
       });
   };
})(jQuery);

