var $j = jQuery.noConflict();
var bwbpsActiveGallery = 0;
var displayedGalleries = "";
var bwbpsUploadStatus = false;
var bwbpsAddedImages =0;

$j(document).ready(function() { 
	//Show and hide the Loading icon on Ajax start/end
	$j("#bwbps_loading")
	.ajaxStart(function(){
		$j(this).show();
	})
	.ajaxComplete(function(){
		$j(this).hide();
		if(	bwbpsUploadStatus == false)
			{
				$j("#bwbps_submitBtn").removeAttr('disabled');
				$j("#bwbps_imgcaptionInput").removeAttr('disabled');
				$j('#bwbps_message').html("The maximum file size allowed is 400k.  Please resize and try again.");
			}
		bwbpsUploadStatus = false;
	});

	
	
	$j('#bwbps_uploadform').submit(function() { 
		$j('#bwbps_message').html('');
		ajaxLoadImage(this); 
		//$j(this).ajaxSubmit(options); 
		return false; 
	});
	
	//make sure the upload form radio button is on Select file
	$j("#bwbpsSelectFileRadio").attr("checked","checked");
});

function ajaxLoadImage(myForm){
	var options = { 
		beforeSubmit:  bwbpsVerifyUploadRequest,
		success:      bwbpsUploadSuccess , 
		failure: function(){alert('failed');},
		url:       bwbpsAjaxUpload,
		dataType:  'json'
	}; 
	
	$j(myForm).ajaxSubmit(options); 
	return false;
}

$j(window).bind("load",  psSetGalleryHts);

function psSetGalleryHts(){
	if(displayedGalleries == '') return;
	var ps = displayedGalleries.split('|');
	
	var i=0;
	var icnt = ps.length;
	for(i=0;i < icnt;i++){
		if(ps[i] != ""){
			bwbps_equalHeight($j(".psgal_" + ps[i]));
		}
	}
}

function bwbpsVerifyUploadRequest(formData, jqForm, options) { 
	var fileToUploadValue;
	
	$j("#bwbps_imgcaption").val($j("#bwbps_imgcaptionInput").val());
			
	if($j('#bwbpsSelectURLRadio').attr("checked")){
		$j('#bwbps_uploadfile').val("");
		fileToUploadValue = true;
	} else {
		fileToUploadValue = $j('#bwbps_uploadfile').val();		
	}
	
	

	if (!fileToUploadValue) { 
		$j('#bwbps_message').html('Please select a file.'); 
		return false; 
	} 

	$j("#bwbps_submitBtn").attr('disabled','disabled');

	$j("#bwbps_imgcaptionInput").attr('disabled','disabled');
	$j('#bwbps_result').html('');

	return true;
} 


// Callback for successful Ajax image upload
// Displays the image or error messages
function bwbpsUploadSuccess(data, statusText)  {
	
	//This Alternate function is set in PhotoSmash Settings Advanced page
	//If the alternate function returns false...continue with standard function
	if(bwbpsAlternateUploadFunction(data, statusText)){ return false;}

	$j("#bwbps_submitBtn").removeAttr('disabled');
	$j("#bwbps_imgcaptionInput").removeAttr('disabled');
	bwbpsUploadStatus = true;
	if (statusText == 'success') {
		if(data == -1){
				alert('nonce');
			//The nonce	 check failed
			$j('#bwbps_message').html("<span class='error'>Upload failed due to invalid authorization.  Please reload this page and try again.</span>");
			return false;
	 	}
	 	
		if( data.succeed == 'false'){
			//Failed for some reason
			$j('#bwbps_message').html(data.message); 
			return false;
		}
		
		if (data.img != '') {
			//We got an image back...show it
			$j('#bwbps_result').html('<img src="' + bwbpsThumbsURL + data.img+'" />'); 
			$j('#bwbps_message').html('<b>Upload successful!</b>'); 
			
			//Add the New Images box for custom Layouts			
			var adderdiv;
			
			if(bwbpsCustomLayout && bwbpsAddedImages < 1){
				adderdiv = $j('<div></div>');
				adderdiv.attr('id','bwbps_galcont_' + data.gallery_id).attr('class','bwbps_gallery_div');
				
				var bbtbl = $j('<table></table>');
				var bbtr = $j('<tr></tr>');
				bbtr.appendTo(bbtbl);
				var bbtd = $j('<td></td>');
				
				bbtd.appendTo(bbtr);
				
				var newImgUL = $j('<ul></ul>').attr('class','bwbps_gallery').attr('id','bwbps_stdgal_' + data.gallery_id);
				newImgUL.appendTo(bbtd);
				bbtbl.appendTo(adderdiv);
				adderdiv.insertAfter('#bwbpsAdderInsertionPoint');
			}
			
			
			
			var li = $j('<li></li>').attr('class','psgal_' + data.gallery_id).appendTo('#bwbps_stdgal_' + data.gallery_id);
			
			if (data.li_width > 0) {
				li.css('width', data.li_width + '%');
			}else{
				li.css('margin','15px');	
			}	
			
			//Manually set the LI height for Custom Layouts
			if(bwbpsCustomLayout && bwbpsAddedImages < 1){
				li.css('height', data.thumb_height + 20);
			}
			
			bwbpsAddedImages++;
			var imgdiv;
			
			if ($j.browser.msie) {
				imgdiv = $j('<div></div>').css('width', data.thumb_width);
			} else {
				imgdiv = $j('<div></div>').css('width', data.thumb_width).css('margin', 'auto');
			}
			
			var ahref = $j('<a></a>').attr('href', bwbpsImagesURL + data.img).attr('rel',data.imgrel);
			
			$j('<img src="' + bwbpsThumbsURL + data.img+'" />').appendTo(ahref);
					
			if(data.show_imgcaption > 0){
				$j('<br />').appendTo(ahref);
				$j('<span>' + data.image_caption + '</span>').attr('class','bwbps_caption').appendTo(ahref);
			}
			
			ahref.appendTo(imgdiv);
			
			imgdiv.appendTo(li);
			
			bwbps_equalHeight($j(".psgal_" + data.gallery_id));
			
			li.append('&nbsp;');
			
			
		} else {
			$j('#bwbps_message').html( data.error); 
		}
	} else {
		$j('#bwbps_message').html('Unknown error!'); 
	}
} 


//Show the Photo Upload Form
function bwbpsShowPhotoUpload(gal_id, post_id){

	bwbpsActiveGallery = gal_id;
	$j('#bwbps_galleryid').val(gal_id);
	$j('#bwbps_post_id').val(post_id);
}

function bwbpsShowPhotoUploadNoThickbox(gal_id, post_id){
	bwbpsActiveGallery = gal_id;

	$j('#bwbps_galleryid').val(gal_id);
	$j('#bwbps_post_id').val(post_id);
	$j('#bwbps-formcont').hide();
	$j('#bwbps-formcont').appendTo('#bwbpsFormSpace_' + gal_id);
	
	$j('#bwbpsFormSpace_' + gal_id).show();
	$j('#bwbps-formcont').show('slow');
}

function bwbpsHideUploadForm(gal_id){
	$j('#bwbps-formcont').hide('slow');
	$j('#bwbpsFormSpace_' + gal_id).hide('slow');
}

//Toggle File or URL field in upload
function bwbpsToggleFileOrURL(bShowUrl, uploadInstance){
	if(!uploadInstance){uploadInstance = "";}
	if(bShowUrl){
		$j("#bwbps_uploadfile"+uploadInstance).hide();
		$j("#bwbps_uploadurlspan"+uploadInstance).fadeIn("slow");
	}else{
		$j("#bwbps_uploadurlspan"+uploadInstance).hide();
		$j("#bwbps_uploadfile"+uploadInstance).fadeIn("slow");
	}
	return false;
}

//Toggle Form Visible setting in PhotoSmash Default Settings Admin page
function bwbpsToggleFormAlwaysVisible(){
	if($j("#bwbps_use_thickbox").attr('checked')){
		$j("#bwbps_formviz").fadeOut('slow');
	} else {
		$j("#bwbps_formviz").fadeIn('slow');
	}
	
}

//Reset the height of all the LI's to be the same
function bwbps_equalHeight(group) {
    tallest = 0;
    group.each(function() {
        thisHeight = $j(this).height();
        if(thisHeight > tallest) {
            tallest = thisHeight;
        }
    });
    group.height(tallest);
}

function bwbpsConfirmResetDefaults(){
	return confirm('Do you want to Reset all PhotoSmash Settings back to Default?');
}

function bwbpsConfirmDeleteGallery(){
	var fieldname = jQuery("#bwbpsGalleryDDL option:selected").text();
	return confirm('Do you want to delete Gallery: ' + fieldname + '?');
}

function bwbpsConfirmCustomForm(){
	var fieldname = jQuery("#bwbpsCFDDL option:selected").text();
	return confirm('Do you want to Custom Form: ' + fieldname + '?');
}

function bwbpsConfirmGenerateCustomTable(){
	return confirm('Do you want to generate the Table with your Custom Fields?');
}

function bwbpsConfirmDeleteField(completeDelete){
	var fieldname = jQuery("#supple_fieldDropDown option:selected").text();
	if(completeDelete){
		return confirm('Delete field and Drop from Custom Data table?\n\nComplete Delete will delete the field and remove it from the Custom Data Table.  Do you want to completely delete field: ' + fieldname + '?');
	}else{
		return confirm('Delete field (does not drop from table)?\n\nThis removes the field from your list of custom fields.  It does not remove from the Custom Data Table if you have generated the table already.  Do you want to delete field: ' + fieldname + '?');
	}
}

//Moderate/Delete Image
function bwbpsModerateImage(action, image_id)
{
	var imgid = parseInt('' + image_id);
	var myaction = false;
	
	if(action == 'bury'){ myaction = "delete";}
	if(action == 'approve'){ myaction = "approve";}
	if(action == 'savecaption'){ myaction = 'savecaption';}
	if(!myaction){ alert('Invalid action.'); return false;}
	
	if(!confirm('Do you want to ' + myaction + ' this image (id: ' + imgid + ')?')){ return false;}
	
	var _moderate_nonce = $j("#_moderate_nonce").val();
	
	var image_caption = '';
	var image_url = "";
	if(action == 'savecaption'){ 
		image_caption = $j('#imgcaption_' + imgid).val(); 
		image_url = $j('#imgurl_' + imgid).val(); 
	}
	
	try{
		$j('#ps_savemsg').show();
	}catch(err){}
	
	$j.ajax({
		type: 'POST',
		url: bwbpsAjaxURL,
		data: { 'action': myaction,
       'image_id': imgid,
       '_ajax_nonce' : _moderate_nonce,
       'image_caption' : image_caption,
       'image_url' : image_url
       },
		dataType: 'json',
		success: function(data) {
			bwbpsModerateSuccess(data, imgid);
		}
	});
	return false;
}

// Callback for successful Ajax image moderation
function bwbpsModerateSuccess(data, imgid)  { 
		try{
			$j('#ps_savemsg').hide();
		}catch(err){}
		if(data == -1){
				alert('Failed due to security: invalid nonce');
			//The nonce	 check failed
			$j('#psmod_' + imgid).html("fail: security"); 
			return false;
	 	}
	 	
		if( data.status == 'false' || data.status == 0){
			//Failed for some reason
			$j('#psmod_' + imgid).html("update: fail"); 
			return false;
		} else {
			//this one passed
			$j('#psmod_' + imgid).html( data.action); 
			if(data.deleted == 'deleted'){
				$j('#psimage_' + imgid).html('');				
			}
			$j('#psimg_' + imgid).removeClass('ps-moderate');
			return false;
		}
}