var JetztBildergalerie = Class.create(JetztAjax, {
	initialize: function(useridVal, isOwner, numEntriesVal){
		this.page=1;
		this.userid=useridVal;
		this.isOwner=isOwner;
		this.numEntries=numEntriesVal;
		this.fancyboxLeft;
		this.fancyboxRight;
	},
	
	deleteImages: function(imageidsVal){
		   this.post('/ajax/Bildergalerie/deleteImages',
				     {'imageids': imageidsVal}, function() {
				    	 jQuery.fancybox.close();
				  	     this.switchContent(this.page);
				  	     window.location.reload();
				     	}.bind(this));
				  	 
	},
	
	
	addImage: function(imageId, thumbSrc, fadeIn){
			var imgElem = document.createElement("img");
			imgElem.src = thumbSrc;     
			
		    var linkElem = document.createElement("a");
		    linkElem.href = '/jetztlightbox/bildanzeigen/'+imageId;
		    linkElem.appendChild(imgElem);
		    $(linkElem).addClassName('gallery-image');
		    $(linkElem).writeAttribute('rel', 'image');

            jQuery(linkElem).fancybox({
                'titleShow': true, 
                'titlePosition': 'over', 
                'hideOnContentClick': false,
                'autoScale': true
            });
            

            
		    var liElem = document.createElement("li");
		    $(liElem).appendChild(linkElem);
		    
		    $(liElem).writeAttribute('id', 'image_'+imageId);
		    
		    //Show deletebox only if user is owner of gallery
		    if (this.isOwner) {
		    	 var checkboxElem = document.createElement("input");
		    	 checkboxElem.name='editImage';
                 checkboxElem.type='checkbox';
                 $(checkboxElem).addClassName('bildergalerieEditImageCheckbox');
                 checkboxElem.value=imageId;
                 checkboxElem.setStyle({'display':'none'});
		    	$(liElem).appendChild(checkboxElem);
		    	
		    	
		    	
			    var divElem = document.createElement("div");
			    $(divElem).addClassName('selectable');
			    $(divElem).addClassName('checkboxDeselected');
			    $(liElem).appendChild(divElem);
			    
			    jQuery(divElem).click(function() {
			    	if(jQuery(this).siblings("input[type=checkbox]").attr("checked")) {
		    			jQuery(this)
		    				.removeClass("checkboxSelected")
		    				.addClass("checkboxDeselected");
		    			jQuery(this).siblings("input[type=checkbox]").attr("checked",false);
		    			}
		    		else {
		    			jQuery(this)
		    				.addClass("checkboxSelected")
		    				.removeClass("checkboxDeselected");
		    			jQuery(this).siblings("input[type=checkbox]").attr("checked",true);
		    			}
			    });
		    }
		    
		    if (fadeIn) {
		    	liElem.hide();
		    	$("bildergalerie").appendChild(liElem);
		    	Effect.Appear('image_'+imageId);
		    } else {		    
		    	$("bildergalerie").appendChild(liElem);
		    }

		    return liElem;
	},
	
	showEditDescription: function() {
		$("beschreibungTextarea").value=$("beschreibungSpan").innerHTML;
		$("beschreibungAnzeigen").hide();
		$("bildergalerieBeschreibungBearbeiten").show();
		$("beschreibungTextarea").focus();

		//Hide switching arrows
		this.fancyboxRight=($("fancybox-right").getStyle('display')=='inline')
		this.fancyboxLeft=($("fancybox-left").getStyle('display')=='inline')

		$("fancybox-right").hide();
		$("fancybox-left").hide();
	},
	
	hideEditDescription: function() {
		$("beschreibungAnzeigen").show();
		$("bildergalerieBeschreibungBearbeiten").hide();
		
		//Show switching arrows
		if (this.fancyboxRight) {
			$("fancybox-right").setStyle({display: 'inline'});
		}
		if (this.fancyboxLeft) {
			$("fancybox-left").setStyle({display: 'inline'});
		}		
	},
		
    switchContent: function(pageVal){
	   this.post('/ajax/Bildergalerie/getContent',
	     {userid: this.userid, page: pageVal, numEntries: this.numEntries},
	     function(transport) {
  	       response = transport.responseText.evalJSON();
  	       images=response.images;
  	       $("bildergalerie").innerHTML="";

  	       this.page=pageVal;
  	       images.each(function(image){
 
  	    	 listElem=this.addImage(image.id, image.thumbSrc, false);
	  	    	 if (image.active==0) {
	  	    		listElem.setStyle({'display':'none'});
	  	    	 }
      	    }.bind(this));

  	       if (response.pages<this.page) {
  	    	   this.page=response.pages;
  	       }

  	       this.updatePager(response.pages);

	  	     if (jQuery.trim($("bildergalerie").innerHTML)=="") {
		  	    	$('noImages').show();
		  	     } else {
		  	    	$('noImages').hide();
		  	     }

    	  }.bind(this));
    },
    
	editDescription: function(imageIdVal) {

		descriptionVal=$("beschreibungTextarea").value;
			
		this.post('/ajax/Bildergalerie/editDescription',
				 {description: descriptionVal, imageId: imageIdVal}, function() {
					 $("beschreibungSpan").innerHTML=descriptionVal;
					 if (descriptionVal!="") {
						$("beschreibungLinkEdit").show();
						$("beschreibungLinkEdit").setStyle({display: "block"});
						$("beschreibungLinkNew").hide();
					 } else {
						$("beschreibungLinkEdit").hide();
						$("beschreibungLinkNew").show();
					 }
					 this.hideEditDescription();
					 jQuery.fancybox.resize();
				 }.bind(this));
	},
	
	 updatePager: function(pages) {

		var html='';
		if(pages<=1){
			$("pager").update('');
			$("pager").style.display="none";
		}else{
			start=1;
			end=pages;
			
			html+='<div class="paging font-capital font-grey clearfix">';

			    //zurück        
			    html +='<a href="';
			    if(this.page == 1){
			    	html+='javascript:void(0);';
			    }else{
			    	html+="javascript:jetztBildergalerie.switchContent("+(this.page-1)+");";
			    }
			    html+='" onfocus="this.blur()" title="zurück" class="back ';
			    if(this.page == 1){html+='inaktiv';}
			    html+='">Zur&#252;ck</a> ';
			    
			    html+=' Seite ';
			    stopskip=false;
			    for(i=start;i<=end;i++){
			    	if(i==this.page){
			    		html+='<span class="this.page current">'+i+'</span> ';
			    	}else{
			    		if(i==start){
			    			html+='<a href="javascript:jetztBildergalerie.switchContent('+i+');" onfocus="this.blur()" class="this.page" title="Seite '+i+'"><b>'+i+'</b></a> ';
			    		}else{
			    			if(i==end){
			    				html+='<a href="javascript:jetztBildergalerie.switchContent('+i+');" onfocus="this.blur()" class="this.page" title="Seite '+i+'"><b>'+i+'</b></a> ';
			    			}else{
			    				if(i>=(this.page-2) && i<this.page){
			    					html+='<a href="javascript:jetztBildergalerie.switchContent('+i+');" onfocus="this.blur()" class="this.page" title="Seite '+i+'"><b>'+i+'</b></a> ';
			    					stopskip=false;
			    				}else{
				    				if(i<=(this.page+2) && i>this.page){
				    					html+='<a href="javascript:jetztBildergalerie.switchContent('+i+');" onfocus="this.blur()" class="this.page" title="Seite '+i+'"><b>'+i+'</b></a> ';
				    					stopskip=false;
				    				}else{
				    					if(stopskip!=true){
				    						html+='...';
					    					stopskip=true;
				    					}
				    				}
			    				}
			    			}
			    		}
			    	}
			    }
			    
			    
			    //weiter
				    html +='<a href="';
				    if(this.page == pages){
				    	html+='javascript:void(0);';
				    }else{
				    	html+="javascript:jetztBildergalerie.switchContent("+(this.page+1)+");";
				    }
				    html+='" onfocus="this.blur()" title="weiter" class="more ';
				    if(this.page == pages){html+='inaktiv';}
				    html+='">Weiter</a> ';

				    html+='</div>'
		    	
		    	$("pager").update('');
		    	$("pager").insert(html);
		    	$("pager").style.display="block";
		}
	},
	getPage: function() {
		return this.page;
	},
	editSelectChanged: function() {
		var checkedList = [];
		
		$$('.bildergalerieEditImageCheckbox').each(function(e){
		   if ($(e).checked) {
		       checkedList.push($(e).value);
		   }
		});
		if (checkedList.length==0) {
			$("editSelect").selectedIndex=0;
			return;
		}
		if ($("editSelect").value=="delete") {

			jQuery.fancybox.showActivity();

			jQuery.ajax({
				type		: "POST",
				cache	: false,
				url		: "/jetztlightbox/bilderLoeschen",
				data		: ({'selectedImages': checkedList}),
				success: function(data) {
					jQuery.fancybox(data);
				}
			});
			
		}
		if ($("editSelect").value=="edit") {
			$("editInput").value=checkedList;
			$("editForm").submit();
		}
		$("editSelect").selectedIndex=0;
		return;
	}
});
