/**
* Javascript for Image Upload / My Gallery Image / Remove Image functionality
*
* @package js
* @author Tim Carr
* @version 1
* @copyright fish in a bottle 2009
*/

var refreshAreaObj;
var masterRefreshArea;

$(document).ready(function() {	
	// Upload file when file field is changed i.e user clicks add image button and selects image
	$("img.myGalleryUpload").livequery("click", function() {
		// Get refresh area ID
		refreshAreaObj = $(this).parent().parent().children();
		masterRefreshArea = $(this).parent().parent().children().attr("id");
        
		Boxy.load("/ajax/ajax.Gallery.php", { 
			modal : true, 
			closeable : true, 
			afterShow: function(r) {
				$('.boxy-modal-blackout').bgiframe();
				
                $(".gallery-output > #refreshArea > ul > li > img.selectImage").livequery("click", function(e) {
					// Get details																		                   
                    var imageID = this.id.split("_")[1] // New since upload					
					var primaryKey = eval($("input[@name=primaryKey]", refreshAreaObj).val()); 	
					var page = $("input[@name=page]", refreshAreaObj).val(); 	
					var module = $("input[@name=module]", refreshAreaObj).val(); 	
					var width = eval($("input[@name=width]", refreshAreaObj).val()); 	
					var showAdminSticker = eval($("input[@name=showAdminSticker]", refreshAreaObj).val()); 
					var linkType = $("input[@name=linkType]", refreshAreaObj).val(); 
                    
					// Save new image ID instantly, if applicable (ajax file will call GalleryHelper which will check)			
                    $.post(
						"/ajax/ajax.GalleryImage.php",
						{
							action: 'SaveMyGalleryImage',
							imageID: imageID,
							primaryKey: primaryKey,
							page: page,
							module: module,
							width: width,
							refreshArea: masterRefreshArea,
							showAdminSticker: showAdminSticker,
							linkType: linkType
						},
						function (data) {
							// Image ID saved - now show the image in the image viewer container
                            
							// Get details from top document i.e. our current image viewer	
							// Ignore imageID from document - we already have the new imageID
							var primaryKey = eval($("input[@name=primaryKey]", refreshAreaObj).val()); 	
							var page = $("input[@name=page]", refreshAreaObj).val(); 	
							var module = $("input[@name=module]", refreshAreaObj).val(); 		
							var width = eval($("input[@name=width]", refreshAreaObj).val()); 	
							var showAdminSticker = eval($("input[@name=showAdminSticker]", refreshAreaObj).val());
							var linkType = $("input[@name=linkType]", refreshAreaObj).val();
							
							if ($("input[@name=imageIDs]", refreshAreaObj).val() == "") {
								var imageIDs = imageID;
								var currentPage = 0;
							} else {
								var imageIDs = $("input[@name=imageIDs]", refreshAreaObj).val() + "," + imageID; // Existing image ID list + image ID
								var imageIDsArray = imageIDs.split(","); // Used to get length of array for currentPage
								var currentPage = imageIDsArray.length - 1;
							}			
							
							// Show the image in the image viewer container
                            DoAJAXRequest(  'GalleryHelper', 'ShowScaledImageViewer', 
                                            'args[]='+currentPage+'&args[]='+imageID+'&args[]='+primaryKey+'&args[]='+page+'&args[]='+module+
                                            '&args[]='+masterRefreshArea+'&args[]='+width+'&args[]='+showAdminSticker+'&args[]='+linkType+'&args[]='+imageIDs+
                                            '&args[]=0&args[]=0',
                                            function(data) { $("#"+masterRefreshArea, top.document).html(data); }, 
                                            function(data) { alert("An Error Occured"); });
						}
					);
					
					// Hide boxy			
					Boxy.get(this).hide();
                    Boxy.get(this).unload();			
				});			
			}
		});	
	
		return false;		
	});
	
	// Remove Image Button (global)
	$("img.removeImageUploadFrame").livequery("click", function() {															 
        // Get refresh area ID
		var refreshAreaObj = $(this).parent().parent().children();
		var refreshArea = $(this).parent().parent().children().attr("id");
        
		softConfirm("Do you want to remove this image?", 
					function(){
						// Get details of image set																		
						var currentPage = eval($("input[@name=pageNumber]", refreshAreaObj).val());                    
						var imageID = $("input[@name=imageID]", refreshAreaObj).val();
                        var primaryKey = eval($("input[@name=primaryKey]", refreshAreaObj).val()); 	
						var page = $("input[@name=page]", refreshAreaObj).val(); 	
						var module = $("input[@name=module]", refreshAreaObj).val(); 		 	
						var width = eval($("input[@name=width]", refreshAreaObj).val()); 	
						var showAdminSticker = eval($("input[@name=showAdminSticker]", refreshAreaObj).val());
						var imageIDs = $("input[@name=imageIDs]", refreshAreaObj).val();
								
						// Check if we have an array of images
                        var imageIDsArray = imageIDs.split(",");
                        if (imageIDsArray.length > 1) {				
                            // Multiple Images
                            var newImageIDsArray = new Array();
                            var i;
                            var j = 0;
                            
                            // Remove the currentPage key from the array 
                            for (i in imageIDsArray) {
                                if (i != currentPage) {
                                    newImageIDsArray[j] = imageIDsArray[i];
                                    j++;
                                } else {
                                    imageID = imageIDsArray[i]; // Used for deletion later on
                                }                                
                            }
                            
                            // Join array into comma seperated string, and remove any beginning comma
                            newImageIDs = newImageIDsArray.join(',');
                            // if (newImageIDs.search(/,/) == 0) newImageIDs = newImageIDs.substr(1);
                            
                            // Decrease page count by one to go down an image in the viewer
                            currentPage = (currentPage - 1) > 0 ? currentPage - 1 : 0;
                            newImageID = newImageIDs[currentPage];
						} else {
                            // Single / No Image
                            newImageIDs = '';
                            currentPage = 0;
                            newImageID = 0;
                        }
                        
						// Remove image ID instantly, if applicable (ajax file will call GalleryHelper which will check)			
						$.post(
							"/ajax/ajax.GalleryImage.php",
							{
								action: 'RemoveMyGalleryImage',
								imageID: imageID,
								primaryKey: primaryKey,
								page: page,
								module: module,
								width: width,
								refreshArea: refreshArea,
								showAdminSticker: showAdminSticker
							},
							function (data, textStatus) {
                                // Show the image in the image viewer container
                                DoAJAXRequest(  'GalleryHelper', 'ShowScaledImageViewer', 
                                                'args[]='+currentPage+'&args[]='+newImageID+'&args[]='+primaryKey+'&args[]='+page+'&args[]='+module+
                                                '&args[]='+refreshArea+'&args[]='+width+'&args[]='+showAdminSticker+'&args[]=none&args[]='+newImageIDs+
                                                '&args[]=0&args[]=0',
                                                function(data) { 
                                                    $("#"+refreshArea, top.document).html(data);
                                                    softAlert("Image Removed", alertOff); 
                                                }, 
                                                function(data, textStatus, errorThrown) { 
                                                    softAlert("An "+errorThrown+" "+textStatus+" has occured when attempting to upload an image.", alertOff); 
                                                });
							}
						);						
					}, 
					alertOff);				
	});
});
