var GENERIC_AJAX_ERROR = "An error occurred during your request. Please try again momentarily.";
var LOADING_IMAGE = '<img alt="image" src="/img/connecting.gif" />';
var availableTags = '';
var isInstantScoop = 0;
var previewEmailRequest;
var $outerLiner; //for mass deleting of clips

var clipReportTemplateId = 24;
if(window.location.href.toLowerCase().indexOf('usamap=') > 0) {
	clipReportTemplateId = '25,31';
}

$(window).load(function () {
	if($('#instantScoopStatus').length > 0){
		isInstantScoop = 1;
	}
	
	/*******************************************/
	/********* Email A Result Dialog ***********/
	/*******************************************/
	var $sendEmailDialog = $('#sendEmailDialog');
	var $loadingUserPrefs = $('#loadingUserPrefs');
	var $sendEmailLoadingMessage = $('#sendEmailLoading');
	var $sendEmailForm = $('#sendEmailForm');
	var $sendEmailBuildingPreview = $('#sendEmailBuildingPreview');
	var $sendEmailBuildingPreviewLoading = $('#sendEmailBuildingPreviewLoading');
	var $sendEmailBuildingPreviewComplete = $('#sendEmailBuildingPreviewComplete');
	var $sendEmailResultCount = $('#sendEmailResultCount');
	$sendEmailDialog.dialog({
		modal: true, 
		bgiframe: false,
		autoOpen: false,
		resizable: false,
		draggable: false,
		minHeight: 0,
		minWidth: 0,
		width: 700,
		close : function () {
			$('#scheduleSavedNewsletterId').val('');
			$sendEmailResultCount.text('');
			$sendEmailForm.show();
			$loadingUserPrefs.hide();
			$sendEmailBuildingPreview.hide();
			$sendEmailLoadingMessage.hide();
		},
		open : function () {
			if($sendEmailLoadingMessage.css('display') != 'block') {
				$sendEmailDialog.trigger('openDialog');
			}
		}
	});
	$sendEmailDialog.bind('openDialog', function (evt, emailCartUserInstance) {
		$loadingUserPrefs.show();
		$sendEmailForm.hide();
		$sendEmailBuildingPreview.hide();
		$sendEmailLoadingMessage.hide();
		$.ajax({
			type: 'GET',
			dataType: 'json',
			url: '/ajax/bulk_clips/getEmailAResultUserPrefs.cfm',
			success: function (data, textStatus) {
				$('#defaultFrom').val(data.EMAILFROMADDRESS);
				$('#defaultReplyTo').val(data.EMAILREPLYTOADDRESS);
				$('#defaultTo').val(data.EMAILTOADDRESSES);
				$('#defaultCc').val(data.EMAILCCADDRESSES);
				$('#defaultBcc').val(data.EMAILBCCADDRESSES);
				$('#defaultSubject').val(data.EMAILSUBJECT);
				$('#defaultTemplate').val(data.CRTID);
				$('#defaultLogo').val(data.LOGOUUID);
				$('#defaultFormat').val(data.EMAILFORMAT);
				$('#defaultMessage').val(data.EMAILMESSAGE);
				$('#defaultSaveDefaults').val(data.SAVEDEFAULTS);
				$('#clipReportTemplateOptionId').val(data.CLIPREPORTTEMPLATEOPTIONID);
				$('#sendEmailForm').trigger('userPreferenceSaved');
				$loadingUserPrefs.hide();
				$sendEmailForm.show();
				if($('#advancedEmailResultOptions').css('display') != 'none'){
					$('#advancedEmailResultOptions').hide();
					$('#hideadvancedEmailResultOptionsLink').hide();
					$('#advancedEmailResultOptionsLink').show();
				}
				resetMailForm();
				resetEmailFormToDefaults();
				if(emailCartUserInstance == null || emailCartUserInstance + '' == 'undefined' || emailCartUserInstance == '') {
					if($('#sendEmailJoatCacheIDs').val() != '') {
						//Why are we doing this here?  The popup being created for the advanced option needs to know the instanceid,
						// but the popup will be denied if not executed directly in the onclick event.  So no ajax on click then run.
						addToEmailUserCart(
							{'jrid' : $('#jrid').val(), 'joatcacheid': $('#sendEmailJoatCacheIDs').val(), 'requestinstance': 'yes', 'IsInstantScoop': isInstantScoop},
							function (data) {
								$('#emailCartUserInstance').val(data.INSTANCE);
							},
							function () {
								$('#sendEmailDialog').dialog('close');
							}
						);
					} else {
						$('#emailCartUserInstance').val(0);
					}
				}
				$('#imageThumbnailDisplay, #logoChooser div.dividingOr').show();
				$('.ui-dialog:visible').center();
			},
			error : function (XMLHttpRequest, textStatus, errorThrown) {
				alert(GENERIC_AJAX_ERROR);
				$sendEmailDialog.dialog('close');
			}
		});
	});
	$('.advancedEmailResultOptionsLinkContainer a').bind('click', function () {
		$('#advancedEmailResultOptions').toggle();
		$('.advancedEmailResultOptionsLinkContainer a').toggle();
	});
	$('#sendEmailCancelChanges').click(function () {
		$sendEmailDialog.dialog('close');
	});
	$('#advancedSimpleTemplateToggle').bind('click', function () {
		if($('#templateChooser:visible').length) {
			$('#advancedSimpleTemplateToggle span.templateType').text('Simple');
			$('#templateChooser').hide();
			$('#templateChooserAdvanced').show();
		} else {
			$('#advancedSimpleTemplateToggle span.templateType').text('Advanced');
			$('#templateChooser').show();
			$('#templateChooserAdvanced').hide();
		}
	});
	var $templateLi = $('.templateChooser ul.templateChooserContainer li');
	var $showOrHideFromTemplate = $('#logoChooser, #optionsMessageContainer, #sendEmailResult, #previewEmailResult');
	$templateLi.bind('click', function () {
		$('.templateChooser').attr('cancelId', $('li.templateSelected').attr('id'));
		$templateLi.removeClass('templateSelected');
		var $this = $(this);
		$this.addClass('templateSelected');
	}).bind('mouseover', function () {
		var $this = $(this);
		$this.oneTime(100, function () {
			var $img = $this.find('img');
			var imgSource = $img.attr('src').replace(/_thumbnail/i, '_example');
			if($('#templateSelectPreviewImage').length) {
				$('#templateSelectPreviewImage img').attr('src', imgSource);
			} else {
				$('body').append('<span id="templateSelectPreviewImage" class="imageSelectPreviewImage"><img src="' + imgSource + '" alt="image" style="width:400px;" /></span>');
			}
			$('#templateSelectPreviewImage').offset({top: 0, left: 0});
			$('#templateSelectPreviewImage').position({
				of: $('.templateChooser:visible'),
				my: 'left top',
				at: 'left bottom',
				collision: 'none'
			});
		});
	}).bind('mouseout', function () {
		$(this).stopTime();
		$('#templateSelectPreviewImage').offset({top: -10000, left: -10000});
	});
	$('#imageDialog_0').bind('newImageSelected', function () {
		var key = 0;
		$('#selectedLogo_' + key).attr('src', $('#imageDialog_' + key + ' .imageSelected div img').attr('src'));
		$('#2_' + key + 'Ul').html($('#imageDialog_' + key + ' .imageSelected').outerHTML());
		$('#2_' + key + 'Ul .imageSelected').removeClass('imageSelected');
		$('#2_' + key + 'Ul .deleteImg').remove();
		$('#2_' + key + 'Li').show();
		$('#sendEmailLogoUuid').val($('#imageDialog_' + key + ' .imageSelected div img').attr('src').replace(/.*?i=/ig, ''));
	});
	
	//Actions buttons for Email A Result dialog
	$('#advancedEmailResult').bind('click', function () {
		$sendEmailForm.hide();
		$sendEmailLoadingMessage.show();
		saveEmailResultDefault();
		var winLink = '/newsletter/newsletter.cfm?ecui=' + $('#emailCartUserInstance').val() + '&crtid=' + $('.templateChooser ul.templateChooserContainer li.templateSelected').attr('id').replace('crtid', '');
    var child = window.open(winLink, 'emailclip');
    if (parseInt(navigator.appVersion) >= 4) { 
    	child.window.focus(); 
    }
    $sendEmailDialog.dialog('close');
	});
	$('#sendEmailResult').bind('click', function () {
		$sendEmailForm.hide();
		$sendEmailLoadingMessage.show();
		createNewsletterForEmailResult(true);
	});
	$('#previewEmailResult').bind('click', function () {
		$sendEmailForm.hide();
		$sendEmailLoadingMessage.show();
		createNewsletterForEmailResult(false);
	});
	
	//Preview Buttons
	$('#previewCancel').bind('click', function () {
		previewEmailRequest.abort();
		clearTimeout(statusTimeout);
		$sendEmailForm.show();
		$sendEmailBuildingPreview.hide();		
	});
	$('#previewComplete').bind('click', function () {
		var emailToArr = buildEmailList('.emailToSpan');
		var emailCcArr = buildEmailList('.emailCcSpan');
		var emailBccArr = buildEmailList('.emailBccSpan');
		var emailFrom = $('#emailFrom').text();
		var emailReplyTo = $('#emailReplyTo').text();
		var emailSubject = $('#emailSubjectTextEntry').val();
		
		$('#previewEmailResultNewsletterId').val($('#previewNewsletterId').val());
		$('#previewEmailResultTo').val(emailToArr);
		$('#previewEmailResultCc').val(emailCcArr);
		$('#previewEmailResultBcc').val(emailBccArr);
		$('#previewEmailResultFrom').val(emailFrom);
		$('#previewEmailResultReplyTo').val(emailReplyTo);
		$('#previewEmailResultSubject').val(emailSubject);

    $sendEmailDialog.dialog('close');
	});
	
	/*******************************************/
	/********* Choose Template Dialog **********/
	/*******************************************/
	$('#chooseTemplateDialog').dialog({
		modal: true, 
		bgiframe: false,
		autoOpen: false,
		resizable: false,
		draggable: false,
		minHeight: 0,
		minWidth: 0,
		width: 550,
		open: function () {
			var currentOffset = $('#chooseTemplateDialog').parent().offset();
			var windowHeight = $(window).height();
			if(windowHeight < 900) {
				currentOffset.top = currentOffset.top - ((windowHeight - 450) / 2);
			} else {
				currentOffset.top = currentOffset.top - 200;
			}
			$('#chooseTemplateDialog').parent().offset(currentOffset);
		}
	});
	$('#chooseTemplateButton').bind('click', function () {
		$('#chooseTemplateDialog').dialog('open');
	});
	$('#chooseTemplateCancelChanges').bind('click', function () {
		$templateLi.removeClass('templateSelected');
		$('#' + $('.templateChooser').attr('cancelId')).addClass('templateSelected');
		$('#chooseTemplateDialog').dialog('close');
	});
	$('#chooseTemplateConfirmChanges').bind('click', function () {
		var $this = $('.templateChooser ul.templateChooserContainer li.templateSelected');
		$('#chosenTemplateContainer .clipreportTemplateChoice .templatePreviewImage').attr('src', $this.find('img').attr('src'));
		if($this.hasClass('advanced1')) {
			$showOrHideFromTemplate.hide();
			$('#advancedEmailResult').show();
		} else {
			$showOrHideFromTemplate.show();
			$('#advancedEmailResult').hide();
			//If we're not advanced then check other options.
			if($this.hasClass('hasMessage0')) {
				$('#optionsMessageContainer').hide();
			} else {
				$('#optionsMessageContainer').show();
			}
			if($this.hasClass('hasLogo0')) {
				$('#logoChooser').hide();
			} else {
				$('#logoChooser').show();
			}
			if($this.hasClass('isSpreadsheet1')) {
				$('div.optionsContainer').hide();
				$('#emailFormat').hide();
				$('#sendAsPdf').attr('checked', false);
				$('#previewEmailResult').hide();
			} else {
				$('div.optionsContainer').show();
				$('#emailFormat').show();
				$('#previewEmailResult').show();
			}
		}
		var optionsAllowed = $('#crtOptions' + $this.attr('id').replace(/crtid/, '')).val();
		if(optionsAllowed) {
			optionsAllowed = optionsAllowed.split(/,/);
		} else {
			optionsAllowed = '';
		}
		var $options = $('#chosenTemplateContainer label.clipReportTemplateOption');
		var $checkboxes = $('#chosenTemplateContainer input.clipReportTemplateOptionCheckbox');
		$options.addClass('disabled');
		$checkboxes.attr('disabled', 'disabled').removeAttr('checked');
		var defaultOptions = $('#clipReportTemplateOptionId').val().split(/,/);
		var optionLoop;
		for(optionLoop = 0; optionLoop < optionsAllowed.length; optionLoop++) {
			var optionId = optionsAllowed[optionLoop];
			$('#clipReportTemplateOptionLabel' + optionId).removeClass('disabled');
			$('#clipReportTemplateOption' + optionId).removeAttr('disabled');
			if($.browser.msie) {
				//IE and lower doesn't have the indexOf function for arrays
				var indexLoop;
				for(indexLoop = 0; indexLoop < defaultOptions.length; indexLoop++) {
					var currentOption = defaultOptions[indexLoop];
					if(currentOption == optionId) {
						$('#clipReportTemplateOption' + optionId).attr('checked', 'checked');
					}
				}
			} else {
				if(defaultOptions.indexOf(optionId) >= 0) {
					$('#clipReportTemplateOption' + optionId).attr('checked', 'checked');
				}
			}
		}
		$('#chooseTemplateDialog').dialog('close');
	});
	
	/********************************************************/
	/****************** Extra Info Result *******************/
	/********************************************************/
	var $showExtraInfoDialog = $('#showExtraInfoDialog');
	var $showExtraInfoForm = $('#showExtraInfoForm');
	var $showExtraInfoLoading = $('#showExtraInfoLoading');
	var $showExtraInfoContent = $('#showExtraInfoContent');
	$showExtraInfoDialog.dialog({
		modal: true, 
		bgiframe: false,
		autoOpen: false,
		resizable: false,
		draggable: false,
		minHeight: 0,
		minWidth: 0,
		width: 600,
		height: 600,
		close: function () {
			$showExtraInfoContent.text('');
			$('#showExtraInfoLink').val('');
			$showExtraInfoLoading.show();
			$showExtraInfoForm.hide();
		},
		open: function () {
			if($('#showExtraInfoLink').val() != '') {
				$.ajax({
					type: 'GET',
					dataType: 'html',
					url: $('#showExtraInfoLink').val(),
					success: function (data, textStatus) {
						$showExtraInfoContent.html(data);
						$showExtraInfoLoading.hide();
						$showExtraInfoForm.show();
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert(GENERIC_AJAX_ERROR);
						$showExtraInfoDialog.dialog('close');
					}
				});
			}
		}
	});
	
	$('#showExtraInfoConfirmChanges').bind('click', function () {
		$showExtraInfoDialog.dialog('close');
	});
	
	$('#zoomInOnTemplate').bind('click', function () {
		var imgSource = $('#chosenTemplateContainer img.templatePreviewImage').attr('src').replace(/_thumbnail/i, '_example');
		$showExtraInfoContent.html('<img src="' + imgSource + '" alt="Template." />');
		$showExtraInfoLoading.hide();
		$showExtraInfoForm.show();		
		$showExtraInfoDialog.dialog('open');
	});
	$('#zoomInOnLogo').bind('click', function () {
		var imgSource = $('#selectedLogo_0').attr('src');
		$showExtraInfoContent.html('<img src="' + imgSource + '" alt="image" />');
		$showExtraInfoLoading.hide();
		$showExtraInfoForm.show();		
		$showExtraInfoDialog.dialog('open');
	});
	
	/*******************************************/
	/******** Criteria Preview Dialog **********/
	/*******************************************/
	$('#criteriaPreviewDialog').dialog({
		modal: true, 
		bgiframe: false,
		autoOpen: false,
		resizable: false,
		draggable: false,
		minHeight: 0,
		minWidth: 0,
		width: 300,
		close : function () {
			$('#criteriaPreviewLoading').show();
			$('#criteriaPreviewDisplay').hide();
			$('#criteriaPreviewAjaxContainer').html('');
		},
		buttons: {}
	});
	$('#criteriaPreviewConfirmChanges').click(function () {
		$('#criteriaPreviewDialog').dialog('close');
	});
	if($('#availableTags').length > 0) {
		availableTags = $('#availableTags').val().split(/,/);
		var $allResults = $('#allResults');
	}
	
	
	//Static functions - elements will never be removed from the DOM
	$('#viewCriteriaButton').bind('click', function () {
		$.ajax({
			type: 'POST',
			dataType: 'html',
			url: '/newsletter/previewBuilder.cfm?' + $('#originalQueryString').val(),
			success: function (data, textStatus) {
				$('#criteriaPreviewLoading').hide();
				$('#criteriaPreviewDisplay').show();
				$('#criteriaPreviewAjaxContainer').html(data);
			},
			error : function (XMLHttpRequest, textStatus, errorThrown) {
				$('#criteriaPreviewLoading').hide();
				$('#criteriaPreviewDisplay').show();
				$('#criteriaPreviewAjaxContainer').text('An error has occured while processing your request. Please try again in a moment.');					
			}
		});
		$('#criteriaPreviewDialog').dialog('open');
	});
	if($('#changeTimeDialog').length > 0) {
		$('#changeTimeDialog').changeTimeDialog();
		$('#changeTimeButton').bind('click', function () {
			$('#changeTimeDialog').dialog('open');
		});
		$('div.sortBySelectDisplay').dropDown({
			dropDownType: 'click',
			zIndex: 1000,
			cssOptions: {width: 113},
			optionList: 
				[
					'Time',
					'Relevance',
					'State',
					'Source',
					'Headline',
					'Alexa',
					'Reverse Order'
				]
		}).bind('itemSelected', function (data, optionIndex, optionText) {
			var currentQueryString = $('#currentQueryString').val().toLowerCase();
			var originalQueryString = $('#originalQueryString').val().toLowerCase();
			var originalOrderBy = currentQueryString.replace(/^.*?&orderby=|&.*?$/g, '');
			var queryString = originalQueryString.replace(/&orderby=[^&]+/g, '');
			if(optionIndex == 0) { //time
				window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=time';
			} else if(optionIndex == 1) { //relevance
				window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=relevance';
			} else if(optionIndex == 2) { //state
				window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=state';
			} else if(optionIndex == 3) { //source
				window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=source';
			} else if(optionIndex == 4) { //headline
				window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=headline';
			} else if(optionIndex == 5) { //alexa
				window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=alexalowtohigh';
			} else if(optionIndex == 6) { //reverse order
				if(originalOrderBy.indexOf('asc') >= 0 || originalOrderBy.indexOf('desc') >= 0) {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=' + originalOrderBy.replace(/asc|desc/, '');
				} else if(originalOrderBy == 'alexalowtohigh') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=alexahightolow';
				} else if(originalOrderBy == 'alexahightolow') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=alexalowtohigh';
				} else if(originalOrderBy == 'time') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=timeAsc';
				} else if(originalOrderBy == 'relevance') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=relevanceAsc';
				} else if(originalOrderBy == 'state') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=stateDesc';
				} else if(originalOrderBy == 'source') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=sourceDesc';
				} else if(originalOrderBy == 'headline') {
					window.location.href = '/reports/viewclips/reportview.cfm?' + queryString + '&orderby=headlineDesc';
				}
			}
		});
	}
	$('div.expandCollapseAllButton').bind('click', function () {
		var showThem = $('#allResults li.expanded').length;
		var $allLi = $('#allResults li.resultMainRow, #allResults li.expandedInfo').detach();
		if(showThem) {
			//there is one expanded so collapse all
			$allLi.removeClass('expanded').addClass('collapsed');
			updateUserPreference('DefaultClipView', 1);
		} else {
			$allLi.removeClass('collapsed').addClass('expanded');
			updateUserPreference('DefaultClipView', 0);
		}
		$allLi.insertAfter('#allResults li:first-child');
		$allLi = null;
	});
	$('#allResults input.checkUncheckAll').bind('click', function () {
		$('#allResults input.checkUncheckAll').first().oneTime(1, function () {
			if($('#allResults input.resultCheckbox:checked').length) {
				$('#allResults input.resultCheckbox').attr('checked', false);
				$('#allResults input.checkUncheckAll').attr('checked', false);
				showOrHideBulkOptions();
			} else {
				$('#allResults input.resultCheckbox').attr('checked', true);
				$('#allResults input.checkUncheckAll').attr('checked', true);
				showOrHideBulkOptions();
			}
		});
		return false;
	});
	
	$('#allResults input.checkUncheckAll').dropDown({
		dropDownType: 'click',
		cssOptions: {width: 170},
		optionList: 
			[
				'Select All Results',
				'Unselect All Results',
				'Invert Selection',
				'Select All On All Pages'
			]
	}).bind('itemSelected', function (data, optionIndex, optionText) {
		if(optionIndex == 0) {
			//Select All
			$('#allResults input.resultCheckbox').attr('checked', true);
			$('#allResults input.checkUncheckAll').attr('checked', true);
			showOrHideBulkOptions();
		} else if(optionIndex == 1) {
			//Unselect All
			$('#allResults input.resultCheckbox').attr('checked', false);
			$('#allResults input.checkUncheckAll').attr('checked', false);
			showOrHideBulkOptions();
		} else if(optionIndex == 2) {
			//Invert Selection
			$('#allResults input.resultCheckbox').each(function (index, elem) {
				var $elem = $(elem);
				$elem.attr('checked', !$elem.attr('checked'));
			});
			showOrHideBulkOptions();
		} else if(optionIndex == 3) {
			$('#allResults input.resultCheckbox').attr('checked', true);
			$('#allResults input.checkUncheckAll').attr('checked', true);
			showOrHideBulkOptions();
			$wwaDialog.dialog('open');
		}
	});

	if($allResults) {
		//Initialize the editAResultDialog if it's available
		var $editAResultDialog = $('#editAReultsDialog');
		if($editAResultDialog.length) {
			$editAResultDialog.editAResult();
			
			$allResults.delegate('button.editAResult', 'click', function () {
				var resultIdentifier = $(this).attr('id').replace('editAResult_result', '');
				$editAResultDialog.dialog('open');
				$editAResultDialog.trigger('dialogOpen', resultIdentifier);
			});
			
		}
		
		//Dynamic functions - elements can be removede and re-added
		$allResults.delegate('div.expandCollapse', 'click', function () {
			var resultIdentifier = $(this).attr('id').replace('expandCollapse_', '');
			$('#expandedInfo_' + resultIdentifier + ', #' + resultIdentifier).toggleClass('expanded collapsed');
		});
		$allResults.delegate('input.resultCheckbox', 'click', function () {
			var checkedCount = $('#allResults input.resultCheckbox:checked').length;
			if(checkedCount == $('#allResults input.resultCheckbox').length) {
				$('#allResults input.checkUncheckAll').attr('checked', true);
			} else {
				$('#allResults input.checkUncheckAll').attr('checked', false);
			}
			showOrHideBulkOptions();
		});
		
		/********************************************************/
		/******************** Email A Result ********************/
		/********************************************************/
		$allResults.delegate('div.emailResult', 'click', function () {
			var $this = $(this);
			var joatCacheId = $this.parent().attr('id').replace('actions_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var currentLinkID = $('#resultLinkId_' + resultIdentifier).val();
			$('#sendEmailJoatCacheIDs').val(joatCacheId);
			$sendEmailResultCount.text('1');
			$sendEmailDialog.dialog('open');
		});
		// En Masse Function
		$('#workWithSelectedResultsContainer div.emailResult').bind('click', function () {
			$emailResultsDialog.dialog('open');
		});
		// En Masse Form
		var $emailResultsDialog = $('#emailEnMasseDialog');
		var $emailResultsDialogLoadingMessage = $('#emailEnMasseDialog div.loadingMessage');
		var $emailResultsDialogForm = $('#emailEnMasseDisplay');
		$emailResultsDialog.dialog({
			modal: true, 
			bgiframe: false,
			autoOpen: false,
			resizable: false,
			draggable: false,
			minHeight: 0,
			width: 450,
			open: function () {
				$('#sendEmailJoatCacheIDs').val('');
				$('#emailSelectedCount').text($('#allResults input.resultCheckbox:checked').length);
				if($('#allResults input.resultCheckbox:checked').length > 1) {
					$('#emailSelectedCountPlural').show();
				} else {
					$('#emailSelectedCountPlural').hide();
				}
				$('#emailEnMassePreviewContainer').hide();
				$('#emailEnMasseSendNow').show();
				$('#emailEnMasseAddToList').show();
				$('#emailEnMasseAddAndSend').show();
				$.ajax({
					type: 'POST',
					dataType: 'json',
					url: '/ajax/bulk_clips/emailResultCount.cfm',
					success: function (data, textStatus) {
						$('.emailEnMasseCount').text(data.RESULTCOUNT);
						if(data.RESULTCOUNT > 1) {
							$('#emailEnMasseCountPlural').show();
						} else {
							$('#emailEnMasseCountPlural').hide();
						}
						$emailResultsDialogForm.show();
						$emailResultsDialogLoadingMessage.hide();
						if(data.RESULTCOUNT == 0) {
							$('#emailEnMasseSendCart').hide();
							$('#emailEnMasseDeleteList').hide();
							$('#emailEnMassePreviewList').hide();
						} else {
							$('#emailEnMasseSendCart').show();
							$('#emailEnMasseDeleteList').show();
							$('#emailEnMassePreviewList').show();
						}
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert(GENERIC_AJAX_ERROR);
						$emailResultsDialog.dialog('close');
					}
				});
			},
			close: function () {
				$('#emailEnMasseOptions a').show();
				$emailResultsDialogForm.hide();
				$emailResultsDialogLoadingMessage.show();
			}
		});
		$('#toolbarEmailResultsLi').bind('click', function () {
			$emailResultsDialog.dialog('open');
			$('#emailEnMasseSendNow').hide();
			$('#emailEnMasseAddToList').hide();
			$('#emailEnMasseAddAndSend').hide();
		});
		$('#emailEnMasseCancelChanges').bind('click', function () {
			$emailResultsDialog.dialog('close');
		});
		$('#emailEnMasseSendNow').bind('click', function () {
			var joatCacheIDArr = new Array();
			$allResults.find('input.resultCheckbox:checked').each(function (index, elem) {
				joatCacheIDArr.push($(elem).attr('id').replace('checkbox_result', ''));
			});
			$('#sendEmailJoatCacheIDs').val(joatCacheIDArr + '');
			$sendEmailResultCount.text(joatCacheIDArr.length);
			$emailResultsDialog.dialog('close');
			$sendEmailDialog.dialog('open');
		});
		$('#emailEnMasseAddToList').bind('click', function () {
			$emailResultsDialogForm.hide();
			$emailResultsDialogLoadingMessage.show();
			var joatCacheIDArr = new Array();
			$allResults.find('input.resultCheckbox:checked').each(function (index, elem) {
				joatCacheIDArr.push($(elem).attr('id').replace('checkbox_result', ''));
			});
			addToEmailUserCart(
				{'jrid' : $('#jrid').val(), 'joatcacheid': joatCacheIDArr + '', 'IsInstantScoop': isInstantScoop},
				function () {
					$('#emailEnMasseDialog').dialog('close');
				},
				function () {
					$('#emailEnMasseDisplay').show();
					$('#emailEnMasseDialog div.loadingMessage').hide();
				}
			);
		});
		$('#emailEnMasseAddAndSend').bind('click', function () {
			$emailResultsDialogForm.hide();
			$emailResultsDialogLoadingMessage.show();
			var joatCacheIDArr = new Array();
			$allResults.find('input.resultCheckbox:checked').each(function (index, elem) {
				joatCacheIDArr.push($(elem).attr('id').replace('checkbox_result', ''));
			});
			addToEmailUserCart(
				{'jrid' : $('#jrid').val(), 'joatcacheid': joatCacheIDArr + '', 'IsInstantScoop': isInstantScoop},
				function (data) {
					$('#sendEmailResultCount').text(data.COUNT);
					$('#emailEnMasseDialog').dialog('close');
					$('#sendEmailDialog').dialog('open');
				},
				function () {
					$('#emailEnMasseDisplay').show();
					$('#emailEnMasseDialog div.loadingMessage').hide();
				}
			);
		});
		$('#emailEnMasseSendCart').bind('click', function () {
			$emailResultsDialog.dialog('close');
			$sendEmailResultCount.text($('.emailEnMasseCount').first().text());
			$sendEmailDialog.dialog('open');
		});
		$('#emailEnMasseDeleteList').bind('click', function () {
			if(confirm('Are you sure you want to clear ' + $('.emailEnMasseCount').first().text() + ' from your email list?')) {
				$.ajax({
					type: 'POST',
					dataType: 'json',
					url: '/ajax/bulk_clips/deleteEmailUserCart.cfm',
					success: function (data, textStatus) {
						$emailResultsDialog.dialog('close');
						$('div.toolbarOptions li').last().hide();
						$('div.toolbarOptions li').last().prev().addClass('lastChild');
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert(GENERIC_AJAX_ERROR);
						$emailResultsDialogForm.show();
						$emailResultsDialogLoadingMessage.hide();
					}
				});
			}
		});
		$('#emailEnMassePreviewList').bind('click', function () {
			$('#emailEnMassePreviewContainer').show();
			$('#emailEnMassePreviewLoading').show();
			$('#emailEnMassePreviewContent').hide();
			$.ajax({
				type: "POST",
				url: "/ajax/bulk_clips/getEmailAResultPreview.cfm",
				dataType: 'json',
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
					$('#emailEnMassePreviewContainer').hide();
					$('#emailEnMassePreviewLoading').hide();
				},
				success: function (data, textStatus) {
					$('#emailEnMassePreviewContent').html('');
					if(data.RESULTS.length > 0) {
						for(var hlLoop in data.RESULTS) {
							var oneHeadline = data.RESULTS[hlLoop];
							$('#emailEnMassePreviewContent').append('<div class="oneHeadline">' + ((hlLoop-0)+1) + ') <a href="' + oneHeadline.LINKHTTP + '" target="clipwindow">' + oneHeadline.HEADLINE + '</a></div>');
						}
					} else {
						alert(GENERIC_AJAX_ERROR);
						$('#emailEnMassePreviewContainer').hide();
						$('#emailEnMassePreviewLoading').hide();
					}
					$('#emailEnMassePreviewLoading').hide();
					$('#emailEnMassePreviewContent').show();					
				}
			});
		});
	
		/********************************************************/
		/**************** Show Extra Info Result ****************/
		/********************************************************/
		$allResults.delegate('a.sourceNameContainer', 'click', function () {
			$('#showExtraInfoLink').val($(this).attr('href') + '&showinline=yes');
			$showExtraInfoDialog.dialog('open');
			return false;
		});
		$allResults.delegate('a.bylineContainer', 'click', function () {
			$('#showExtraInfoLink').val($(this).attr('href') + '&showinline=yes');
			$showExtraInfoDialog.dialog('open');
			return false;
		});
		
		/********************************************************/
		/********************* Delete Result ********************/
		/********************************************************/
		$allResults.delegate('div.deleteResult', 'click', function () {
			var $this = $(this);
			var $parent = $this.parent();
			var joatCacheId = $parent.attr('id').replace('actions_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var tagInputValue = $.trim($('#tagInput_' + resultIdentifier).val());
			var $actionsDropDown = $('#actionsDropDown_' + resultIdentifier);
			$actionsDropDown.html(LOADING_IMAGE).show();
			$parent.hide();
			if(tagInputValue.length > 0) {
				//We have tags
				var currentLinkID = $('#resultLinkId_' + resultIdentifier).val();
				$.ajax({
					type: "POST",
					url: "/ajax/bulk_clips/bulk_delete_optionsdd.cfm",
					dataType: 'html',
					data: {'LinkID' : currentLinkID},
					error: function (XMLHttpRequest, textStatus, errorThrown) {
						alert(GENERIC_AJAX_ERROR);
						cleanUpAction(resultIdentifier);
					},
					success: function (data, textStatus) {
						$actionsDropDown.html(data);
						$allResults.find('select.deleteOptionsSelect').focus();
					}
				});
			} else {
				//Not currently using a userfolder
				$.ajax({
					type: 'POST',
					dataType: 'json',
					url: '/ajax/bulk_clips/bulk_delete.cfm',
					data: {'joatCacheIdList' : joatCacheId + '', 'UserFolderID': ''},
					success: function (data, textStatus) {
						if($.isArray(joatCacheId)) {
							for(delLoop = 0; delLoop < joatCacheId.length; delLoop++) {
								var oneResultIdentifier = joatCacheId[delLoop];
								deleteOneClip('result' + oneResultIdentifier);
							}
						} else {
							deleteOneClip('result' + joatCacheId);
						}
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert(GENERIC_AJAX_ERROR);
						cleanUpAction(resultIdentifier);
					}
				});
			}
		});
		$allResults.delegate('select.deleteOptionsSelect', 'change', function () {
			var $this = $(this);
			var joatCacheId = $this.parent().attr('id').replace('actionsDropDown_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var userFolderId = $this.val();
			if(userFolderId != '') {
				if(userFolderId == 0) {
					userFolderId = '';
				}
				var searchedFolders = $('#userFolderIdList').val();
				$.ajax({
					type: 'POST',
					dataType: 'json',
					url: '/ajax/bulk_clips/bulk_delete.cfm',
					data: {'joatCacheIdList' : joatCacheId + '', 'UserFolderID': userFolderId, 'SearchedFolders' : searchedFolders},
					success: function (data, textStatus) {
						if(data.FOLDERNAME != '' && data.FOLDERNAME + '' != 'undefined') {
							var regExp = buildDeleteFolderRegExp(data.FOLDERNAME);
							deleteOneFolder(resultIdentifier, regExp);
						} else {
							deleteOneClip(resultIdentifier);
						}
						cleanUpAction(resultIdentifier);
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert(GENERIC_AJAX_ERROR);
					}
				});
			} else {
				cleanUpAction(resultIdentifier);
			}
		});
		$allResults.delegate('select.deleteOptionsSelect', 'blur', function () {
			var resultIdentifier = $(this).parent().attr('id').replace('actionsDropDown_', '');
			cleanUpAction(resultIdentifier);
		});
		// En Masse Function
		var userFolderId = $.trim($('#UserFolderIdList').val());
		var $bulkDeleteDialog = $('#bulkDeleteForm');
		var $bulkDeleteForm = $('#bulkDeleteForm div.deleteForm');
		var $bulkDeleteLoadingMessage = $('#bulkDeleteForm div.loadingMessage');
		$('#workWithSelectedResultsContainer div.deleteResult').bind('click', function () {
			$('#bulkDeleteForm span.bulkDeleteClipCount').text($allResults.find('input.resultCheckbox:checked').length);
			$bulkDeleteDialog.dialog('open');
		});
		// En Masse Form
		//Handle which type of dialog to show, UserFolder option, or generic delete	
		if(userFolderId == ''){
			$('#deleteConfirmationContainer').show();
			$('#deleteOptionsContainer').hide();
			//Workwithall stuff
			$('#wwaDeleteConfirmationContainer').show();
			$('#wwaDeleteOptionsContainer').hide();		
		} else {
			$('#deleteOptionsContainer').show();
			$('#deleteConfirmationContainer').hide();
			//Workwithall stuff
			$('#wwaDeleteOptionsContainer').show();
			$('#wwaDeleteConfirmationContainer').hide();
		}
		$bulkDeleteDialog.dialog({
			modal: true, 
			bgiframe: false,
			autoOpen: false,
			resizable: false,
			draggable: false,
			minHeight: 0,
			width: 400,
			open: function () {	
				$bulkDeleteForm.hide();
				$bulkDeleteLoadingMessage.show();
				if(userFolderId != ''){
					//If we have searched for folders
					$.ajax({
						type: 'POST',
						dataType: 'html',
						url: '/ajax/bulk_clips/bulk_delete_folderlist.cfm',
						data: {'UserFolderId' : userFolderId},
						success: function (data, textStatus) {
							$('#deleteFolderListContainer').empty().append(data);
							$('#bulkDeleteFromAccountRadio').trigger('click');
							$('#deleteFolderListContainer input').attr('disabled', 'disabled');
							$bulkDeleteForm.show();
							$bulkDeleteLoadingMessage.hide();
						},
						error : function (XMLHttpRequest, textStatus, errorThrown) {
							alert("An error occured while attempting to complete your request. Please try again shortly.");
							$bulkDeleteDialog.dialog('close');
						}
					});
				} else {
					//If we haven't searched for folders
					$bulkDeleteForm.show();
					$bulkDeleteLoadingMessage.hide();
				}
			}
		});
		$('#bulkDeleteFromFoldersRadio').bind('click', function () {
			$('#folderListUl input.deleteFromFolderList').removeAttr('disabled');
		});
		$('#bulkDeleteFromAccountRadio').bind('click', function () {
			$('#folderListUl input.deleteFromFolderList').attr('disabled', 'disabled');
		});
		$('#deleteClipsCancelChanges').bind('click', function () {
			$bulkDeleteDialog.dialog('close');
		});
		$('#deleteClipsConfirmChanges').bind('click', function (evt, jrid) {
			var $bulkFromFolders = $('#bulkDeleteFromFoldersRadio');
			var $bulkFolderListContainer = $('#deleteFolderListContainer');
			var $currentDialog = $bulkDeleteDialog;
			var $currentForm = $bulkDeleteForm;
			var $currentLoadingMessage = $bulkDeleteLoadingMessage;
			var workWithAll = '';
			if(jrid != null && jrid != '') {
				$bulkFromFolders = $('#wwaBulkDeleteFromFoldersRadio');
				$bulkFolderListContainer = $('#wwaDeleteFolderListContainer');
				$currentDialog = $wwaDialog;
				$currentForm = $wwaForm;
				$currentLoadingMessage = $wwaLoadingMessage;
				//This indicates that we need to use the jrid to affect results
				workWithAll = 1;
			}
			
			$currentForm.hide();
			$currentLoadingMessage.show();
			var deleteUserFolderId = '';
			var deleteUserFolderName = '';
			if(userFolderId != '' && $bulkFromFolders.attr('checked')){
				deleteUserFolderId = new Array();
				deleteUserFolderName = new Array();
				$bulkFolderListContainer.find('input:checked').each(function (idx, elem) {
					var $elem = $(elem);
					deleteUserFolderId.push($elem.val());
					deleteUserFolderName.push($elem.attr('name'));
				});
				deleteUserFolderId = deleteUserFolderId + '';
				if(deleteUserFolderId == ''){
					alert('You must select at least one folder to delete from.');
					$bulkDeleteForm.show();
					$bulkDeleteLoadingMessage.hide();
					return false;
				}
			}
			var joatCacheIDArr = new Array();
			$allResults.find('input.resultCheckbox:checked').each(function (index, elem) {
				joatCacheIDArr.push($(elem).attr('id').replace('checkbox_result', ''));
			});
			
			var expandedIdList = new Array();
			if(joatCacheIDArr.length > 50) {
				$allResults.find('li.expanded').each(function (index, elem) {
					var elemId = $(elem).attr('id');
					if(elemId.indexOf('expandedInfo') < 0) {
						expandedIdList.push(elemId.replace('result', ''));
					}
				});
			}
			
			$.ajax({
				type: 'POST',
				dataType: 'json',
				url: '/ajax/bulk_clips/bulk_delete.cfm',
				data: {'jrid': jrid, 'joatCacheIdList' : joatCacheIDArr + '', 'UserFolderID': deleteUserFolderId, 'SearchedFolders': userFolderId, 'workWithAll': workWithAll},
				success: function (data, textStatus) {
					var regExp = '';
					if(deleteUserFolderName.length > 0) {
						regExp = buildDeleteFolderRegExp(deleteUserFolderName);
					}
					if(deleteUserFolderName == '') {
						//We are deleting clips en masse
						var arrLength = 0;
						for(var oneLinkID in data.RESULTS) {
							arrLength++;
						}
						if(arrLength > 50) {
							$allResults.bind('resultsManagerFinishedAddingNewRows', function () {
								$allResults.unbind('resultsManagerFinishedAddingNewRows');
								$('#allResults li.deleted input.resultCheckbox').attr('checked', false).removeAttr('checked').attr('disabled', 'disabled').removeClass('resultCheckbox').addClass('resultCheckBoxDeleted');
								showOrHideBulkOptions();
							});
							$allResults.trigger('fetchPage', {'expandedIdList': expandedIdList + '', 'checkedIdList': joatCacheIDArr + ''});
							$currentDialog.dialog('close');
							$currentForm.show();
							$currentLoadingMessage.hide();
						} else {
							var $allLi = $('#allResults li').detach();
							$outerLiner = $('<div id="tempOuterDiv"></div>').append($allLi);
							$outerLiner.attr('numberCompleted', 0);
							$allLi = null;
							deleteEnMasse(data.RESULTS, arrLength);
							$currentDialog.dialog('close');
							$currentForm.show();
							$currentLoadingMessage.hide();
						}
					} else {
						//We are deleting folders en masse
						for(var oneLinkID in data.RESULTS) {
							var oneClip = data.RESULTS[oneLinkID]
							deleteOneFolder('result' + oneClip.JOATCACHEID, regExp);
						}
						$currentDialog.dialog('close');
						$currentForm.show();
						$currentLoadingMessage.hide();
					}
				},
				error : function (XMLHttpRequest, textStatus, errorThrown) {
					alert("An error occured while attempting to complete your request. Please try again shortly.");
					$currentForm.show();
					$currentLoadingMessage.hide();
				}
			});
		});
		
		/********************************************************/
		/********************* Restore Result *******************/
		/********************************************************/
		$allResults.delegate('button.restorResultButton', 'click', function () {
			var $this = $(this);
			var joatCacheId = $this.parent().attr('id').replace('restore_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			
			$('#restore_' + resultIdentifier + ' button.restorResultButton').attr('disabled', 'disabled');
			$('#restore_' + resultIdentifier).append(LOADING_IMAGE);
					
			$.ajax({
				type: "POST",
				dataType: 'json',
				url: "/ajax/bulk_clips/restore.cfm",
				data: {'joatCacheIdList' : joatCacheId + ''},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
					$('#restore_' + resultIdentifier + ' button.restorResultButton').removeAttr('disabled');
					$('#restore_' + resultIdentifier + ' img').remove();
				},
				success: function (data, textStatus) {
					if($.isArray(joatCacheId)) {
						for(restoreLoop = 0; restoreLoop < joatCacheId.length; restoreLoop++) {
							var oneResultIdentifier = joatCacheId[restoreLoop];
							var currentLinkId = $('#resultLinkId_result' + oneResultIdentifier).val();
							var clipInfo = data.CLIPINFO[currentLinkId];
							restoreOneClip('result' + oneResultIdentifier, clipInfo);
						}
					} else {
						var currentLinkId = $('#resultLinkId_result' + joatCacheId).val();
						var clipInfo = data.CLIPINFO[currentLinkId];
						restoreOneClip('result' + joatCacheId, clipInfo);
					}
				}
			});
			return false;
		});
	
		/********************************************************/
		/****************** Autocomplete Result *****************/
		/********************************************************/
		$allResults.delegate(".tagItInput", "keydown", function( event ) {
			var $this = $(this);
			$this.stopTime();
			if(event.keyCode != $.ui.keyCode.BACKSPACE 
					&& event.keyCode != $.ui.keyCode.DELETE 
					&& event.keyCode != $.ui.keyCode.LEFT 
					&& event.keyCode != $.ui.keyCode.RIGHT
					&& event.keyCode != $.ui.keyCode.COMMA
					&& extractLast($this.val()).length > 49) {
				return false;
			}
			// don't navigate away from the field on tab when selecting an item
			if (event.keyCode === $.ui.keyCode.TAB && $this.data("autocomplete").menu.active ) {
				event.preventDefault();
			}
			if (event.keyCode === $.ui.keyCode.ENTER) {
				var resultIdentifier = $this.attr('id').replace(/tagInput_/, '');
				$('#tagItButton_' + resultIdentifier).click();
			}
			$this.css({'backgroundColor': '#FFFF33'});
		}).delegate(".tagItInput", 'focus', function () {
			var $this = $(this);
			$this.stopTime();
			$this.autocomplete({
				minLength: 0,
				source: function( request, response ) {
					// delegate back to autocomplete, but extract the last term
					//var obj = $.ui.autocomplete.filter(availableTags, extractLast(request.term)); 
					var results = new Array();
					var termMatch = new RegExp("^" + RegExp.escape(extractLast(request.term)), "i");
					for(var oneLoc in availableTags) {
						var oneTag = availableTags[oneLoc];
						if(termMatch.test(oneTag)) {
							results.push(oneTag);
						}
					}
					response(results);
				},
				focus: function() {
					// prevent value inserted on focus
					return false;
				},
				select: function( event, ui ) {
					var terms = splitterm( this.value );
					// remove the current input
					terms.pop();
					// add the selected item
					terms.push( ui.item.value );
					// add placeholder to get the comma-and-space at the end
					terms.push("");
					this.value = terms.join(", ");
					event.preventDefault();
					return false;
				}
			});
		}).delegate(".tagItInput", 'blur', function () {
			var $this = $(this);
			$this.oneTime(1000, function () {
				$this.autocomplete('destroy');
			});
		});
	
		/********************************************************/
		/*********************** Tag Result *********************/
		/********************************************************/
		$allResults.delegate('div.tagResult', 'click', function () {
			var $this = $(this);
			var $parent = $this.parent();
			var joatCacheId = $parent.attr('id').replace('actions_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var currentLinkID = $('#resultLinkId_' + resultIdentifier).val();
			
			var $actionsDropDown = $('#actionsDropDown_' + resultIdentifier);
			$actionsDropDown.html(LOADING_IMAGE).show();
			$parent.hide();
			
			$.ajax({
				type: "POST",
				url: "/ajax/bulk_clips/bulk_folderlist.cfm",
				data: {"LinkID": currentLinkID},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
					cleanUpAction(resultIdentifier);
				}, 
				success: function (data, textStatus) {
					$actionsDropDown.html(data);
					$allResults.find('select.clipDropDown').focus();
				}
			});
		});
		$allResults.delegate('select.clipDropDown', 'change', function () {
			var $this = $(this);
			var joatCacheId = $this.parent().attr('id').replace('actionsDropDown_result', '');
			var currentJrid = $('#jrid').val();
			var currentTagSelected = $this.val();
			if(currentTagSelected != '') {
				$.ajax({
					type: 'POST',
					dataType: 'json',
					url: '/ajax/bulk_clips/bulk_save.cfm',
					data: {'jrid': currentJrid, 'joatCacheIdList' : joatCacheId + '', 'UserFolderID': currentTagSelected, 'IsInstantScoop': isInstantScoop},
					success: function (data, textStatus) {
						for(var oneLinkID in data.RESULTS) {
							var oneLinkObj =  data.RESULTS[oneLinkID];
							var resultIdentifier = 'result' + oneLinkObj.JOATCACHEID;
							var $tagInput = $('#mainClipInfo_' + resultIdentifier + ' input.tagItInput');
							var currentFolders = '';
							var keySortArr = new Array();
							for(var folderLoop in oneLinkObj.FOLDERS){
								keySortArr.push(oneLinkObj.FOLDERS[folderLoop].VALUE);
							}
							keySortArr.sort( function (a,b){ return (a > b) - (a < b);});
							$tagInput.val(keySortArr.join(', '));
							cleanUpAction(resultIdentifier);
							$tagInput.css({'backgroundColor': '#FFF'});
							$tagInput.effect("highlight", {}, 500);
						}
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert("An error occured while attempting to complete your request. Please try again shortly.");
						$currentForm.show();
						$currentLoadingMessage.hide();
					}
				});
			} else {
				cleanUpAction(resultIdentifier);
			}
		});
		$allResults.delegate('select.clipDropDown', 'blur', function () {
			var resultIdentifier = $(this).parent().attr('id').replace('actionsDropDown_', '');
			cleanUpAction(resultIdentifier);
		});
		$allResults.delegate('button.tagItButton', 'click', function () {
			var $this = $(this);
			var joatCacheId = $this.attr('id').replace('tagItButton_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var currentLinkID = $('#resultLinkId_' + resultIdentifier).val();
			var $actionsDropDown = $('#actionsDropDown_' + resultIdentifier);
			var $actionsContainer = $('#actions_' + resultIdentifier);
			var $tagInput = $('#tagInput_' + resultIdentifier);
			$actionsDropDown.html(LOADING_IMAGE).show();
			$actionsContainer.hide();
			
			$this.attr('disabled', 'disabled');
			$tagInput.attr('disabled', 'disabled');
					
			verifyFolderInList($tagInput.val().split(','));
					
			$.ajax({
				type: 'POST',
				url: '/AJAX/bulk_clips/autocomplete_updateNewFolders.cfm',
				dataType: 'json',
				data: {'linkId': currentLinkID, 'sid_joatcache_id': joatCacheId, 'newFolders': $tagInput.val(), 'IsInstantScoop': isInstantScoop},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
					$this.removeAttr('disabled');
					$tagInput.removeAttr('disabled');
					cleanUpAction(resultIdentifier);
				}, 
				success: function (data, textStatus) {
					$tagInput.val('');
					var newTags = [];
					for( i = 0; i < data.RESULTS.length; i++){
						var userFolderName = data.RESULTS[i].VALUE;
						newTags.push(userFolderName);
					}
					var newTagString = newTags.join(', ');
					$tagInput.val(newTagString);
					$tagInput.attr('name', newTagString);
					$this.removeAttr('disabled');
					$tagInput.removeAttr('disabled');
					cleanUpAction(resultIdentifier);
					$tagInput.css({'backgroundColor': '#FFF'});
					$tagInput.effect("highlight", {}, 500);
				}
			});
		});
		
		//En Masse Functions
		var $bulkTagForm = $('#bulkSaveFolderForm div.saveToFolderForm');
		var $bulkTagLoadingMessage = $('#bulkSaveFolderForm div.loadingMessage');
		var $bulkSaveFolderForm = $('#bulkSaveFolderForm');
		$('#workWithSelectedResultsContainer div.tagResult').bind('click', function () {
			$('#bulkSaveFolderClipCount').text($allResults.find('input.resultCheckbox:checked').length);
			$bulkSaveFolderForm.dialog('open');
		});
		
		$bulkSaveFolderForm.dialog({
			modal: true, 
			bgiframe: false,
			autoOpen: false,
			resizable: false,
			draggable: false,
			width: 500,
			open: function () {
				$bulkTagForm.hide();
				$bulkTagLoadingMessage.show();
				$.ajax({
					type: 'POST',
					dataType: 'html',
					url: "/ajax/bulk_clips/bulk_folderlist.cfm",
					data: {'LinkID' : 1},
					success: function (data, textStatus) {
						$('#bulkSaveSelectContainer').empty().append(data);
						$bulkTagForm.show();
						$bulkTagLoadingMessage.hide();
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert("An error occured while attempting to complete your request. Please try again shortly.");
						$bulkSaveFolderForm.dialog('close');
					}
				});
			}
		});
		$('#saveClipsCancelChanges').bind('click', function () {
			$bulkSaveFolderForm.dialog('close');
		});
		$('#saveClipsConfirmChanges').bind('click', function (evt, jrid) {
			var $bulkSelect = $('#bulkSaveSelectContainer select');
			var $currentDialog = $bulkSaveFolderForm;
			var $currentForm = $bulkTagForm;
			var $currentLoadingMessage = $bulkTagLoadingMessage;
			var workWithAll = '';
			if(jrid != null && jrid != '') {
				$bulkSelect = $('#wwaBulkSaveSelectContainer select');
				$currentDialog = $wwaDialog;
				$currentForm = $wwaForm;
				$currentLoadingMessage = $wwaLoadingMessage;
				//This indicates that we need to use the jrid to affect results
				workWithAll = 1;
			}
			var saveToFolderId = $bulkSelect.val();
			var saveToFolderName = $bulkSelect.find('option:selected').text();
			if(saveToFolderId == ''){
				return false;
			}
			$currentForm.hide();
			$currentLoadingMessage.show();
			var joatCacheIDArr = new Array();
			$allResults.find('input.resultCheckbox:checked').each(function (index, elem) {
				joatCacheIDArr.push($(elem).attr('id').replace('checkbox_result', ''));
			});
			var regExp = buildDeleteFolderRegExp(saveToFolderName);
			$.ajax({
				type: 'POST',
				dataType: 'json',
				url: '/ajax/bulk_clips/bulk_save.cfm',
				data: {'jrid': jrid, 'joatCacheIdList' : joatCacheIDArr + '', 'UserFolderID': saveToFolderId, 'IsInstantScoop': isInstantScoop, 'workWithAll': workWithAll},
				success: function (data, textStatus) {
					for(var oneLinkID in data.RESULTS) {
						var oneLinkObj =  data.RESULTS[oneLinkID];
						var $tagInput = $('#mainClipInfo_result' + oneLinkObj.JOATCACHEID + ' input.tagItInput');
						var currentFolders = '';
						var keySortArr = new Array();
						for(var folderLoop in oneLinkObj.FOLDERS){
							keySortArr.push(oneLinkObj.FOLDERS[folderLoop].VALUE);
						}
						keySortArr.sort( function (a,b){ return (a > b) - (a < b);});
						$tagInput.val(keySortArr.join(', '));
					}
					$currentDialog.dialog('close');
					$currentForm.show();
					$currentLoadingMessage.hide();
				},
				error : function (XMLHttpRequest, textStatus, errorThrown) {
					alert("An error occured while attempting to complete your request. Please try again shortly.");
					$currentForm.show();
					$currentLoadingMessage.hide();
				}
			});
		});
	
		/********************************************************/
		/********************** Rate Result *********************/
		/********************************************************/
		$allResults.delegate('div.rateResult', 'click', function () {
			var $this = $(this);
			$parent = $this.parent();
			var joatCacheId = $parent.attr('id').replace('actions_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var currentLinkID = $('#resultLinkId_' + resultIdentifier).val();
			var $actionsDropDown = $('#actionsDropDown_' + resultIdentifier);
			
			$actionsDropDown.html(LOADING_IMAGE).show();
			$parent.hide();
			
			$.ajax({
				type: "POST",
				url: "/ajax/bulk_clips/bulk_ratelist.cfm",
				data: {"LinkID" : currentLinkID},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
				},
				success: function (data, textStatus) {
					$actionsDropDown.html(data);
					$allResults.find('select.clipDropDownRating').focus();
				}
			});
		});
		$allResults.delegate('select.clipDropDownRating', 'change', function () {
			var $this = $(this);
			var resultIdentifier = $this.parent().attr('id').replace('actionsDropDown_', '');
			//IE Hack alert: IE thinks the DD has changed even when it hasn't. So we have to verify the change has occured before finishing the event.
			if($.trim($this.find('option:selected').text()) != $.trim($('#expandedInfo_' + resultIdentifier + ' span.currentRatingText').text())) {
				var ratingId = $this.val();
				$this.oneTime(0, function () {
					$('#rating_' + resultIdentifier + '_' + ratingId).trigger('click');
				});
			}
		});
		$allResults.delegate('select.clipDropDownRating', 'blur', function () {
			var resultIdentifier = $(this).parent().attr('id').replace('actionsDropDown_', '');
			cleanUpAction(resultIdentifier);
		});
		$allResults.delegate('div.oneRatingBox', 'click', function () {
			var $this = $(this);
			var thisId = $this.attr('id');
			var rating = thisId.replace('rating_result', '').replace(/^.*?_/ig, '');
			var joatCacheId = thisId.replace('rating_result', '').replace(/_.*?$/ig, '');
			var resultIdentifier = 'result' + joatCacheId;
			var ratingColor = $this.css('backgroundColor');
			var ratingName = $this.attr('tooltip');
			var $allRatingBoxesForThisResult = $('#expandedInfo_' + resultIdentifier + ' div.oneRatingBox');
			$allRatingBoxesForThisResult.addClass('oneRatingBoxSaving');
	
			$.ajax({
				type: 'POST',
				dataType: 'json',
				url: '/ajax/bulk_clips/bulk_rate.cfm',
				data: {'joatCacheIdList' : joatCacheId, 'UserFolderID': rating, 'IsInstantScoop': isInstantScoop},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
					$allRatingBoxesForThisResult.removeClass('oneRatingBoxSaving');
					cleanUpAction(resultIdentifier);
				}, 
				success: function (data, textStatus) {
					rateOneResult(resultIdentifier, rating, ratingColor, ratingName);
					cleanUpAction(resultIdentifier);
				}
			});
		});
		
		//En Masse
		var $bulkRateDialog = $('#bulkRateForm');
		var $bulkRateForm = $('#bulkRateForm div.rateForm');
		var $bulkRateLoadingMessage = $('#bulkRateForm div.loadingMessage');
		$('#workWithSelectedResultsContainer div.rateResult').click(function () {
			$('#bulkRateClipCount').text($allResults.find('input.resultCheckbox:checked').length);
			$bulkRateDialog.dialog('open');
		});
		
		$bulkRateDialog.dialog({
			modal: true, 
			bgiframe: false,
			autoOpen: false,
			resizable: false,
			draggable: false,
			width: 450,
			open: function () {
				$bulkRateForm.hide();
				$bulkRateLoadingMessage.show();
				$.ajax({
					type: 'POST',
					dataType: 'html',
					url: '/reports/cliputils/ratelist.cfm',
					data: {'LinkID' : 1},
					success: function (data, textStatus) {
						$('#rateSelectListContainer').empty().append(data);
						$bulkRateForm.show();
						$bulkRateLoadingMessage.hide();
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert("An error occured while attempting to complete your request. Please try again shortly.");
						$bulkRateDialog.dialog('close');
					}
				});
			}
		});
		$('#rateClipsCancelChanges').click(function () {
			$bulkRateDialog.dialog('close');
		});
		$('#rateClipsConfirmChanges').click(function (evt, jrid) {
			var $bulkSelect = $('#rateSelectListContainer select');
			var $currentDialog = $bulkRateDialog;
			var $currentForm = $bulkRateForm;
			var $currentLoadingMessage = $bulkRateLoadingMessage;
			var workWithAll = '';
			if(jrid != null && jrid != '') {
				$bulkSelect = $('#wwaRateSelectListContainer select');
				$currentDialog = $wwaDialog;
				$currentForm = $wwaForm;
				$currentLoadingMessage = $wwaLoadingMessage;
				//This indicates that we need to use the jrid to affect results
				workWithAll = 1;
			}		
			
			var UserFolderId = $bulkSelect.val();
			if(UserFolderId == ''){
				return false;
			}
			$currentForm.hide();
			$currentLoadingMessage.show();
			var joatCacheIDArr = new Array();
	
			$allResults.find('input.resultCheckbox:checked').each(function (index, elem) {
				joatCacheIDArr.push($(elem).attr('id').replace('checkbox_result', ''));
			});
			
			var expandedIdList = new Array();
			if(joatCacheIDArr.length > 50) {
				$allResults.find('li.expanded').each(function (index, elem) {
					var elemId = $(elem).attr('id');
					if(elemId.indexOf('expandedInfo') < 0) {
						expandedIdList.push(elemId.replace('result', ''));
					}
				});
			}
			
			$.ajax({
				type: 'POST',
				dataType: 'json',
				url: '/ajax/bulk_clips/bulk_rate.cfm',
				data: {'jrid': jrid, 'joatCacheIdList' : joatCacheIDArr + '', 'UserFolderID': UserFolderId, 'IsInstantScoop': isInstantScoop, 'workWithAll': workWithAll},
				success: function (data, textStatus) {
					var arrLength = 0;
					for(var oneLinkID in data.RESULTS) {
						arrLength++;
					}
					if(arrLength > 50) {
						$allResults.bind('resultsManagerFinishedAddingNewRows', function () {
							$allResults.unbind('resultsManagerFinishedAddingNewRows');
							showOrHideBulkOptions();
						});
						$allResults.trigger('fetchPage', {'expandedIdList': expandedIdList + '', 'checkedIdList':joatCacheIDArr + ''});
						$currentDialog.dialog('close');
						$currentForm.show();
						$currentLoadingMessage.hide();
					} else {
						for(var oneLinkID in data.RESULTS) {
							var ratingInfo = data.RESULTS[oneLinkID];
							rateOneResult('result' + ratingInfo.JOATCACHEID, ratingInfo.ID, '#' + ratingInfo.COLOR, ratingInfo.VALUE);
						}
						$currentDialog.dialog('close');
						$currentForm.show();
						$currentLoadingMessage.hide();
					}
				},
				error : function (XMLHttpRequest, textStatus, errorThrown) {
					alert("An error occured while attempting to complete your request. Please try again shortly.");
					$currentForm.show();
					$currentLoadingMessage.hide();
				}
			});
		});
		
		/********************************************************/
		/******************** Notes For Result ******************/
		/********************************************************/
		$allResults.delegate('textarea.notesInput', 'keydown', function () {
			$(this).css({'backgroundColor': '#FFFF33'});
		});
		$allResults.delegate('button.saveNoteButton', 'click', function () {
			var $this = $(this);
			var joatCacheId = $this.attr('id').replace('saveNote_result', '');
			var resultIdentifier = 'result' + joatCacheId;
			var $textArea = $('#noteInput_' + resultIdentifier);
			
			$.ajax({
				type: "POST",
				dataType : 'json',
				url: "/ajax/bulk_clips/bulk_note.cfm",
				data: {"joatCacheIdList": joatCacheId, "clipNote": $textArea.val(), 'IsInstantScoop': isInstantScoop},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert(GENERIC_AJAX_ERROR);
				},
				success: function (data, textStatus) {
					$textArea.css({'backgroundColor': '#FFF'});
					$textArea.effect("highlight", {}, 500);
				}
			});
		});
		
		/********************************************************/
		/****************** Work With All Form ******************/
		/********************************************************/
		var $wwaDialog = $('#bulkWorkWithAllForm');
		var $wwaForm = $('#bulkWorkWithAllForm div.workWithAllForm');
		var $wwaLoadingMessage = $('#bulkWorkWithAllForm div.loadingMessage');
		var currentJrid = $('#jrid').val();
		$wwaDialog.dialog({
			modal: true, 
			bgiframe: false,
			autoOpen: false,
			resizable: false,
			draggable: false,
			width: '455px',
			open: function () {
				workWithAllAjaxCount = 0;
				workWithAllAjaxCountCompleted = 0;
				$wwaLoadingMessage.show();
				$wwaForm.hide();
				if($('#wwaDeleteOptionsContainer').css('display') == 'block'){
					workWithAllAjaxCount++;
					$.ajax({
						type: "POST",
						dataType: 'html',
						url: "/ajax/bulk_clips/bulk_delete_folderlist.cfm",
						data: {'UserFolderId' : $('#userFolderIdList').val()},
						success: function (data, textStatus) {
							$('#wwaDeleteFolderListContainer').empty().append(data);
							$('#wwaDeleteFolderListContainer input').attr('disabled', 'disabled');
							$('#wwaBulkDeleteFromAccountRadio').trigger('click');
							workWithAllAjaxCountCompleted++;
						},
						error: function (XMLHttpRequest, textStatus, errorThrown) {
							alert(GENERIC_AJAX_ERROR);
							$wwaDialog.dialog('close');
						}
					});
				}
				//Fetch Updated ratings
				workWithAllAjaxCount++;
				$.ajax({
					type: 'POST',
					dataType: 'html',
					url: '/reports/cliputils/ratelist.cfm',
					data: {'LinkID' : 1},
					success: function (data, textStatus) {
						$('#wwaRateSelectListContainer').empty().append(data);
						workWithAllAjaxCountCompleted++;
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert("An error occured while attempting to complete your request. Please try again shortly.");
						$wwaDialog.dialog('close');
					}
				});
				//Fetch updated folders
				workWithAllAjaxCount++;
				$.ajax({
					type: 'POST',
					dataType: 'html',
					url: "/ajax/bulk_clips/bulk_folderlist.cfm",
					data: {'LinkID' : 1},
					success: function (data, textStatus) {
						$('#wwaBulkSaveSelectContainer').empty().append(data);
						workWithAllAjaxCountCompleted++;
					},
					error : function (XMLHttpRequest, textStatus, errorThrown) {
						alert("An error occured while attempting to complete your request. Please try again shortly.");
						$wwaDialog.dialog('close');
					}
				});
				$wwaDialog.everyTime(300, function () {
					if(workWithAllAjaxCount == workWithAllAjaxCountCompleted) {
						$wwaLoadingMessage.hide();
						$wwaForm.show();
						$wwaDialog.stopTime();
					}
				});
			}
		});
		$('#wwaCancelButton').click(function () {
			$wwaDialog.dialog('close');
		});
		$('#wwaBulkDeleteFromFoldersRadio').click(function () {
			$('#wwaDeleteFolderListContainer input').removeAttr('disabled');
		});
		$('#wwaBulkDeleteFromAccountRadio').click(function () {
			$('#wwaDeleteFolderListContainer input').attr('disabled', 'disabled');
		});
		$('#wwaSaveClipsButton').bind('click', function () {
			$('#saveClipsConfirmChanges').trigger('click', currentJrid);
		});
		$('#wwaRateClipsButton').bind('click', function () {
			$('#rateClipsConfirmChanges').trigger('click', currentJrid);
		});
		$('#wwaDeleteClipsFromFoldersButton').bind('click', function () {
			$('#deleteClipsConfirmChanges').trigger('click', currentJrid);
		});
		$('#wwaDeleteClipsFromAccountButton').bind('click', function () {
			$('#wwaBulkDeleteFromAccountRadio').attr('checked', true);
			$('#deleteClipsConfirmChanges').trigger('click', currentJrid);
		});
		$('#wwaEmailClipsButton').bind('click', function () {
			$wwaDialog.dialog('close');
			$sendEmailForm.hide();
			$sendEmailLoadingMessage.show();
			$sendEmailDialog.dialog('open');
			addToEmailUserCart(
				{'jrid' : $('#jrid').val(), 'requestinstance' : 'yes', 'IsInstantScoop': isInstantScoop},
				function (data) {
					$('#emailCartUserInstance').val(data.INSTANCE);
					$('#sendEmailResultCount').text(data.COUNT);
					$('#sendEmailLoading').hide();
					$('#sendEmailForm').show();
					$('#sendEmailDialog').trigger('openDialog', data.INSTANCE);
				},
				function () {
					$('#sendEmailDialog').dialog('close');
					$('#bulkWorkWithAllForm').dialog('open');
				}
			);
		});
		$allResults.resultsManager();
		
		$allResults.bind('resultsManagerClearRows', function () {
			$('#allResults input.checkUncheckAll').attr('checked', false);
			showOrHideBulkOptions();
		});
	}	
	
	/********************************************************/
	/********************** Save Report *********************/
	/********************************************************/
	$('#saveDialog').saveDialog({
		ajaxLocation: '/ajax/saveNewsletter.cfm',
		ajaxMethod: 'GET',
		dataFunction: function () {
			return $('#saveReportLink').attr('link') + '&savedNewsletterName=' + $('#saveDialogInputName').val() + '&savedNewsletterDescription=' + $('#saveDialogInputDescription').val() + '&clipReportTemplateId=' + clipReportTemplateId;
		},
		overwriteWrapper: function () {
			var description = $('#saveDialogInputDescription').val();
			if(description.toLowerCase() == 'description'){
				description = '';
			} 
			if($('#saveDialogMessage').text() != ''){
				return $('#saveReportLink').attr('link').replace(/savedNewsletterName=[^&]*&?|savedNewsletterDescription=[^&]*&?/ig, '') + '&savedNewsletterDescription=' + description + '&savedNewsletterName=' + $('#saveDialogInputName').val() + '&overwrite=1' + '&clipReportTemplateId=' + clipReportTemplateId;
			} else {
				return $('#saveReportLink').attr('link').replace(/savedNewsletterName=[^&]*&?|savedNewsletterDescription=[^&]*&?/ig, '') + '&savedNewsletterDescription=' + description + '&savedNewsletterName=' + $('#saveDialogInputName').val() + '&clipReportTemplateId=' + clipReportTemplateId;
			}
		}
	});
	$('.toolbarSaveReport').click(function () {
		$('#saveDialog').dialog('open');
	});
	$('input.saveReportLinkButton').click(function () {
		$('#saveDialog').dialog('open');
	});

	//Initilize anything that needs it
	$('.templateChooser ul.templateChooserContainer li.templateSelected').trigger('click');
});

function saveEmailResultDefault() {
	var validForm = validateEmailForm();
	if(validForm) {		
		//Build Email Info
		var emailToArr = buildEmailList('.emailToSpan');
		var emailCcArr = buildEmailList('.emailCcSpan');
		var emailBccArr = buildEmailList('.emailBccSpan');
		var emailFrom = $('#emailFrom').text();
		var emailReplyTo = $('#emailReplyTo').text();
		var emailSubject = $('#emailSubjectTextEntry').val();
		var emailMessage = $('#emailBodyTextEntry').val();
		var emailFormat = ($('#sendAsPdf:checked').length ? $('#sendAsPdf').val() : 0);
		var clipreporttemplateid = $('.templateChooser ul.templateChooserContainer li.templateSelected').attr('id').replace('crtid', '');
		
		var $checkedOptions = $('#chosenTemplateContainer input.clipReportTemplateOptionCheckbox:checked');
		var clipReportTemplateOptionId = new Array();
		$checkedOptions.each(function (index, elem) {
			var $elem = $(elem);
			if($elem.is(':checked')) {
				clipReportTemplateOptionId.push($elem.val());
			}
		});
		clipReportTemplateOptionId = clipReportTemplateOptionId + '';
		
		var saveDefaults = 1;
		if(!$('#savePresetsCheckbox').attr('checked')) {
			emailToArr = '';
			emailCcArr = '';
			emailBccArr = '';
			emailSubject = '';
			emailMessage = '';
			saveDefaults = 0;
		}
		
		var logouuid = $('#sendEmailLogoUuid').val();		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: '/ajax/bulk_clips/storeEmailAResultUserPrefs.cfm',
			data: {
				'EmailFromAddress' : emailFrom,
				'EmailReplyToAddress' : emailReplyTo,
				'EmailToAddresses' : emailToArr + '',
				'EmailCcAddresses' : emailCcArr + '',
				'EmailBccAddresses' : emailBccArr + '',
				'EmailSubject' : emailSubject,
				'CRTID' : clipreporttemplateid,
				'LogoUuid' : logouuid,
				'EmailFormat' : emailFormat,
				'EmailMessage' : emailMessage,
				'ClipReportTemplateOptionId': clipReportTemplateOptionId,
				'SaveDefaults': saveDefaults
			},
			success: function (data, textStatus) {
				$('#defaultFrom').val(data.EMAILFROMADDRESS);
				$('#defaultReplyTo').val(data.EMAILREPLYTOADDRESS);
				$('#defaultTo').val(data.EMAILTOADDRESSES);
				$('#defaultCc').val(data.EMAILCCADDRESSES);
				$('#defaultBcc').val(data.EMAILBCCADDRESSES);
				$('#defaultSubject').val(data.EMAILSUBJECT);
				$('#defaultTemplate').val(data.CRTID);
				$('#defaultLogo').val(data.LOGOUUID);
				$('#defaultFormat').val(data.EMAILFORMAT);
				$('#defaultMessage').val(data.EMAILMESSAGE);
				$('#defaultSaveDefaults').val(data.SAVEDEFAULTS);
				$('#clipReportTemplateOptionId').val(data.CLIPREPORTTEMPLATEOPTIONID);
				$('#sendEmailForm').trigger('userPreferenceSaved');
			},
			error : function (XMLHttpRequest, textStatus, errorThrown) {
				alert(GENERIC_AJAX_ERROR);
				$('#sendEmailForm').show();
				$('#sendEmailLoading').hide();
			}
		});
	} else {
		$('#sendEmailForm').show();
		$('#sendEmailLoading').hide();
	}
	return validForm;
}
function createNewsletterForEmailResult(createAndComplete) {
	if(saveEmailResultDefault()) {
		if(!createAndComplete) {
			$('#sendEmailLoading').hide();
			$('#sendEmailBuildingPreview').show();
			$('#sendEmailBuildingPreviewLoading').show();
			$('#sendEmailBuildingPreviewComplete').hide();
			//$.scrollTo('td.last a', {});
			$('.ui-dialog:visible').center();
		}
		
		//Build Email Info
		var emailToArr = buildEmailList('.emailToSpan');
		var emailCcArr = buildEmailList('.emailCcSpan');
		var emailBccArr = buildEmailList('.emailBccSpan');
		var emailFrom = $('#emailFrom').text();
		var emailReplyTo = $('#emailReplyTo').text();
		var emailSubject = $('#emailSubjectTextEntry').val();
		var emailFormat = ($('#sendAsPdf:checked').length ? $('#sendAsPdf').val() : 0);
		var clipreporttemplateid = $('.templateChooser ul.templateChooserContainer li.templateSelected').attr('id').replace('crtid', '');
		var logouuid = $('#sendEmailLogoUuid').val();		
		
		var $checkedOptions = $('#chosenTemplateContainer input.clipReportTemplateOptionCheckbox:checked');
		var clipReportTemplateOptionId = new Array();
		$checkedOptions.each(function (index, elem) {
			var $elem = $(elem);
			if($elem.is(':checked')) {
				clipReportTemplateOptionId.push($elem.val());
			}
		});
		clipReportTemplateOptionId = clipReportTemplateOptionId + '';
		
		previewEmailRequest = $.ajax({
			type: 'POST',
			dataType: 'json',
			url: '/ajax/bulk_clips/createNewsletter.cfm',
			data: {
				'EmailFromAddress' : emailFrom,
				'EmailReplyToAddress' : emailReplyTo,
				'EmailToAddresses' : emailToArr + '',
				'EmailCcAddresses' : emailCcArr + '',
				'EmailBccAddresses' : emailBccArr + '',
				'EmailSubject' : emailSubject,
				'CRTID' : clipreporttemplateid,
				'LogoUuid' : logouuid,
				'EmailFormat' : emailFormat,
				'EmailMessage' : $('#emailBodyTextEntry').val(),
				'EmailCartUserInstance' : $('#emailCartUserInstance').val(),
				'ClipReportTemplateOptionId' : clipReportTemplateOptionId,
				'CreateEmail' : createAndComplete
			},
			success: function (data, textStatus) {
				if(createAndComplete) {
					$('#sendEmailDialog').dialog('close');
					showPopupMessage('Mail Sent Successfully');
				} else {
					$('#previewNewsletterId').val(data.NEWSLETTERID);
					checkStatus();
				}
			},
			error : function (XMLHttpRequest, textStatus, errorThrown) {
				alert(GENERIC_AJAX_ERROR);
				$('#sendEmailForm').show();
				if(createAndComplete) {
					$('#sendEmailLoading').hide();
				} else {
					$('#sendEmailBuildingPreview').hide();
				}
			}
		});
	}
}
function resetEmailFormToDefaults() {
	$('#emailSubjectTextEntry').val('');
	if($('#defaultFrom').val() != '') {
		$('#emailFrom').text($('#defaultFrom').val());
		$('#emailFromAddress').val($('#defaultFrom').val());
	}
	if($('#defaultReplyTo').val() != '') {
		$('#emailReplyTo').text($('#defaultReplyTo').val());
		$('#emailReplyToAddress').val($('#defaultReplyTo').val());
	}
	createNewemailLi($('#defaultTo').val(), 'emailTo');
	createNewemailLi($('#defaultCc').val(), 'emailCc');
	createNewemailLi($('#defaultBcc').val(), 'emailBcc');
	if($('#defaultSaveDefaults').val() == 1) {
		$('#savePresetsCheckbox').attr('checked', true);
	} else {
		$('#savePresetsCheckbox').attr('checked', false);
	}
	if($('#defaultBcc').val() != '' || $('#defaultCc').val() != '' || $('#savePresetsCheckbox').attr('checked')) {
		$('#showAdvancedOptions').click();
	}
	$('#emailSubjectTextEntry').val($('#defaultSubject').val());
	if($('#defaultFormat').val() != 0) {
		$('#sendAsPdf').attr('checked', true);
	} else {
		$('#sendAsPdf').attr('checked', false);
	}
	
	//Select default template
	$('.templateChooser ul.templateChooserContainer li').removeClass('templateSelected');
	$('#crtid' + $('#defaultTemplate').val()).addClass('templateSelected');
	$('#chooseTemplateConfirmChanges').trigger('click');
	
	//Select default logo
	if($('#defaultLogo').val() != '') {
		var currentLogo = $('#selectedLogo_0').attr('src');
		//Reverse the string, strip the end, then reverse it back
		var currentLogoReverse = currentLogo.split('').reverse().join('');
		currentLogoReverse = currentLogoReverse.replace(/.*?=i/ig, '');
		currentLogo = currentLogoReverse.split('').reverse().join('') + 'i=';
		$('#selectedLogo_0').attr('src', currentLogo + $('#defaultLogo').val());
		$('#sendEmailLogoUuid').val($('#defaultLogo').val());
	}
	
	$('#emailBodyTextEntry').val($('#defaultMessage').val());
}
function deleteOneClip(resultIdentifier) {
	$('#' + resultIdentifier).addClass('deleted').next().addClass('hiddenElement');
	$('#' + resultIdentifier).find('input.resultCheckbox').attr('checked', false).removeAttr('checked').attr('disabled', 'disabled').removeClass('resultCheckbox').addClass('resultCheckBoxDeleted');
	showOrHideBulkOptions();
}
function deleteEnMasse(currentResults, arrLength) {
	var upToCount = 0;
	var numberCompleted = $outerLiner.attr('numberCompleted');
	if(numberCompleted == arrLength) {
		//SAFETY CHECK: If we're already done, then exit!
		return true;
	}
	var goToAmount = numberCompleted + 75;
	for(var oneLinkID in currentResults) {
		if(upToCount >= numberCompleted && upToCount <= goToAmount) {
			$outerLiner.find('#result' + currentResults[oneLinkID].JOATCACHEID).addClass('deleted').next().addClass('hiddenElement');
			numberCompleted++;
		}
		upToCount++;
	}
	if(upToCount == numberCompleted) {
		$outerLiner.find('li').appendTo('#allResults');
		$outerLiner = null;
		$('#allResults li.deleted input.resultCheckbox').attr('checked', false).removeAttr('checked').attr('disabled', 'disabled').removeClass('resultCheckbox').addClass('resultCheckBoxDeleted');
		showOrHideBulkOptions();
		return true;
	}
	$outerLiner.attr('numberCompleted', numberCompleted);
	return false;
}
function buildDeleteFolderRegExp(userFolderNameArr) {
	if(!$.isArray(userFolderNameArr)){
		userFolderNameArr = [userFolderNameArr];
	}
	for(i = 0; i < userFolderNameArr.length; i++) {
		userFolderNameArr[i] = userFolderNameArr[i].replace(/./g, "\\$1");
	}
	var userFolderName = userFolderNameArr.join('(,\\s)?|') + '(,\\s)?';
	userFolderName += '|(,\\s)?' + userFolderNameArr.join('(,\\s)?|');
	return new RegExp(userFolderName, 'ig');
}
function deleteOneFolder(resultIdentifier, regExp) {
	var $tagInput = $('#mainClipInfo_' + resultIdentifier + ' input.tagItInput');
	var currentFolderList = $tagInput.val();
	$tagInput.val(currentFolderList.replace(regExp, ''));
	cleanUpAction(resultIdentifier);
}
function verifyFolderInList(folderArr) {
	var i = 0;
	var originalLength = availableTags.length;
	for(i = 0; i < folderArr.length; i++) {
		var folderName = $.trim(folderArr[i]);
		if($.inArray(folderName, availableTags) == -1){
			availableTags.push(folderName);
		}
	}
	if(availableTags.length > originalLength) {
		availableTags.sort();
	}
}
function cleanUpAction(resultIdentifier) {
	$('#actionsDropDown_' + resultIdentifier).html('').hide();
	$('#actions_' + resultIdentifier).show();
	if($.browser.msie && ($.browser.version.substr(0,1) - 0) <= 7 && $('#expandedInfo_' + resultIdentifier).hasClass('expanded')) {
		$('#expandedInfo_' + resultIdentifier).toggleClass('collapsed expanded').toggleClass('collapsed expanded');
	}
}
function restoreOneClip(resultIdentifier, clipInfo) {
	cleanUpAction(resultIdentifier);
	$restoringResult = $('#' + resultIdentifier);
	if(clipInfo != null) {
		$('#abstract_' + resultIdentifier).html(clipInfo.ABSTRACT);
		$('#keyword_' + resultIdentifier).html(clipInfo.KEYWORD);
		$('#tagInput_' + resultIdentifier).val(clipInfo.FOLDER);
	}
	$('#restore_' + resultIdentifier + ' button.restorResultButton').removeAttr('disabled');
	$('#restore_' + resultIdentifier + ' img').remove();
	$restoringResult.removeClass('deleted');
	$('#expandedInfo_' + resultIdentifier).removeClass('hiddenElement');
	$restoringResult.find('input.resultCheckBoxDeleted').removeAttr('disabled', 'disabled').removeClass('resultCheckBoxDeleted').addClass('resultCheckbox');
}
function rateOneResult(resultIdentifier, ratingId, ratingColor, ratingName) {
	$('#expandedInfo_' + resultIdentifier + ' span.currentRatingText').text(ratingName);
	$('#allResults div.ratingColor_' + resultIdentifier).css({'backgroundColor': ratingColor});
	//$('#allResults #actions_' + resultIdentifier).css({'backgroundColor': ratingColor});
	if(ratingName.toLowerCase() == 'unrated') {
		$('#allResults #' + resultIdentifier).removeClass('rated').removeClass('whiteText').css({'backgroundColor': '#FFFFFF'});
	} else {
		var colorParse = new RGBColor(ratingColor);
		if(colorParse.ok) {
			var hueRating = colorParse.r*0.299 + colorParse.g*0.587 + colorParse.b*0.114;
			if(hueRating < 186) {
				$('#allResults #' + resultIdentifier).addClass('whiteText');
			} else {
				$('#allResults #' + resultIdentifier).removeClass('whiteText');
			}
		}
		$('#allResults #' + resultIdentifier).addClass('rated').css({'backgroundColor': ratingColor});
	}
	var thisId = 'rating_' + resultIdentifier + '_' + ratingId;
	$('#expandedInfo_' + resultIdentifier + ' div.oneRatingBox')
		.removeClass('oneRatingBoxSaving')
		.removeClass('firstRatingBoxChosen')
		.removeClass('oneRatingBoxNextChosen')
		.each(function (index, elem) {
			var $elem = $(elem);
			if(thisId == $elem.attr('id')) {
				if(index == 0) {
					$elem.addClass('firstRatingBoxChosen');
				} else {
					$elem.prev().addClass('oneRatingBoxNextChosen');
				}
			}
		}
	);
}
$('#workWithSelectedResultsContainer').slideUp(1);
function showOrHideBulkOptions () {
	if($('#allResults input.resultCheckbox:checked').length > 0) {
		$('#workWithSelectedResultsContainer').stop().show().animate({marginTop: '0'}, 'slow');
	} else {
		$('#workWithSelectedResultsContainer').stop().animate({marginTop: '-62'}, 'slow', function () {$('#workWithSelectedResultsContainer').hide();} );
	}
}


//autocomplete functions
function splitterm( val ) {
	return val.split(/,\s*/);
}
function extractLast( term ) {
	return splitterm(term).pop();
}

/////////////////////////////////////////////////////
//////////////Newsletter StatusFunctions/////////////
/////////////////////////////////////////////////////	
var statusTimeout = -99;
function checkStatus() {
	var newsletterId = $('#previewNewsletterId').val();
	if(newsletterId != null && newsletterId != ''){
		clearTimeout(statusTimeout);
		$.ajax({
			type: 'POST',
			url: '/newsletter/ajaxNewsletterStatus.cfm',
			data: {'newsletterId':newsletterId},
			dataType: 'json',
			success: function (data, textStatus) {
				if(data.MESSAGE.indexOf('waiting') >= 0){
					statusTimeout = setTimeout(checkStatus, 2000);
				} else {
					if(data.CLIPCOUNT > 5000){
						alert('You have attempted to email more than 5000 results. This cannot be completed.');
					} else {
						$('#sendEmailBuildingPreviewLoading').hide();
						$('#sendEmailBuildingPreviewComplete').show();
					}
				}
			},
			error : function (XMLHttpRequest, textStatus, errorThrown) {
				statusTimeout = setTimeout(checkStatus, 1000);
			}
		});
	}
}

function addToEmailUserCart(currentData, callWhenDone, onError) {
	$.ajax({
		type: 'POST',
		dataType: 'json',
		url: '/ajax/bulk_clips/addToEmailUserCart.cfm',
		data: currentData,
		success: function (data, textStatus) {
			if(typeof(data.INSTANCE) == 'undefined')  {
				var numberLength = (data.COUNT + '').length;
				var countWidth = (numberLength * 5) + 4;
				var countMarginLeft = 33 - (numberLength * 5);
				$('#toolbarEmailResultsLi .emailEnMasseCount').css({'marginLeft' : countMarginLeft, 'width' : countWidth});
				$('#toolbarEmailResultsLi').parent().width($('#toolbarEmailResultsLi').parent().width() + 33);
				$('.emailEnMasseCount').text(data.COUNT);
				if(data.COUNT > 0 && $('#toolbarEmailResultsLi:hidden').length > 0) {
					$('li.lastChild').removeClass('lastChild');
					$('#toolbarEmailResultsLi').show().addClass('lastChild');
				}
			} else {
				if(data.INSERTEDCOUNT == 0) {
					//We didn't insert any clips for some reason.  Fail eleagantly.
					alert(GENERIC_AJAX_ERROR);
					onError();
				}
			}
			callWhenDone(data);
		},
		error : function (XMLHttpRequest, textStatus, errorThrown) {
			alert(GENERIC_AJAX_ERROR);
			onError();
		}
	});
}
