function filterCheckboxListByClass(tableClassNameToSearch, searchText){
	var searchText = searchText.toLowerCase();
	var labelText = '';
	var searchRows = $(tableClassNameToSearch + ' tr').each(function() {
		$this = $(this);
		labelText = $this.find("label").html().toLowerCase();
		if ($this.find("label").html().toLowerCase().indexOf(searchText) >= 0){
			$this.show();
		} else {
			$this.hide();
		}
	});
}

$(function () {
  $('querystringvalue').html(getParameterByName('productName'));
});

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

function validateEmail(email) {
    var re = /\S+@\S+\.\S+/;
    return re.test(email);
}

function liveBlogCropNonLibraryImage(imageRow){
	var topWindowDocument = getTopWindowDocument(window);
	var topWindowBody = $(topWindowDocument).find("body");

	if(topWindowBody.find('#spawnitManageLibraryImageModal').length>0){
		topWindowBody.find('#spawnitManageLibraryImageModal').remove();
	}
	if(topWindowBody.find('#spawnitLibraryPleaseWaitModal').length>0){
		topWindowBody.find('#spawnitLibraryPleaseWaitModal').remove();
	}

	if(topWindowBody.find('.modal-backdrop').length>0){
		topWindowBody.find('.modal-backdrop').remove();
	}

	var dialogHtml = '';
	dialogHtml += '<div id="spawnitLibraryPleaseWaitModal" class="modal" role="dialog">';
	dialogHtml += '  <div class="modal-dialog">';
	dialogHtml += '    <div class="modal-content">';
	dialogHtml += '      <div class="modal-header">';
	//dialogHtml += '        <button type="button" class="close spawnitManageLibraryImageModalSave" data-dismiss="modal">Accept</button>';
	//dialogHtml += '        <button type="button" class="close" data-dismiss="modal">Cancel</button>';
	dialogHtml += '        <h4 class="modal-title">Preparing Image</h4>';
	dialogHtml += '      </div>';
	dialogHtml += '      <div class="modal-body">';
	dialogHtml += '      <center>Please wait</center>';
	dialogHtml += '      </div>';
	//dialogHtml += '      <div class="modal-footer">';
	//dialogHtml += '        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>';
	//dialogHtml += '      </div>';
	dialogHtml += '    </div>';
	dialogHtml += '  </div>';
	dialogHtml += '</div>';

	topWindowBody.append(dialogHtml);

	var liveBlogLibraryPleaseWaitDialog = topWindowBody.find('#spawnitLibraryPleaseWaitModal')[0];
	$(liveBlogLibraryPleaseWaitDialog).modal('show');
	
	imageRow.portalBrand = $('body').attr('portalbrand');
	
	$.ajax({
		method: "POST",
		url: "/Resources/ImageLibrary/api/set-addBlogImageToLibrary.asp",
		dataType: "json",
		data: imageRow,
		imageRow: imageRow,
		success: function(data){
			this.imageRow.libraryimageID = data.libraryimageID;
			this.imageRow.cropdataID = data.cropdataID;
			liveBlogChooseImageFromLibrary(this.imageRow);
		},
		error: function(req, err){
			alert('Error: ' + err);
		}		
	});	
}

function liveBlogChooseImageFromLibrary(imageRow){
	var topWindowDocument = getTopWindowDocument(window);
	var topWindowBody = $(topWindowDocument).find("body")

	if(imageRow){
		for(var ptr=0; ptr<document.LiveBlogPostImages.length; ptr++){
			if((document.LiveBlogPostImages[ptr].hasOwnProperty("$$hashKey"))&&(imageRow.hasOwnProperty("$$hashKey"))){
				document.LiveBlogPostImages[ptr].currentCropperImage = (document.LiveBlogPostImages[ptr]["$$hashKey"] == imageRow["$$hashKey"]);
			};
		}
	}
	
	topWindowDocument.liveBlogCropImageRow = imageRow;
	
	var isSuperUser = false;
	if($('.currentUserIsSuperUser',topWindowBody).length>0){
		isSuperUser = true;
	}

	var cropdataIDs = [];
	var isCarousel = false;
	var aspectRatio = '16x7';
	var flexibleaspectratio = '';
	var datapluginoptions = '';
	var isLiveBlog = 1;
	
	if(imageRow){
		cropdataIDs.push(imageRow.cropdataID);
	} else {
		cropdataIDs.push('0');
	}
	
	//set cropdataIDs
	
	if(!aspectRatio){ aspectRatio = '' };
	if(!flexibleaspectratio){ flexibleaspectratio = '' };
	if(!datapluginoptions){ datapluginoptions = '' };
	
	//editor.isCarousel = isCarousel;
	
	if(cropdataIDs.length==0){ cropdataIDs.push('0') };

	if(topWindowBody.find('#spawnitManageLibraryImageModal').length>0){
		topWindowBody.find('#spawnitManageLibraryImageModal').remove();
	}

	if(topWindowBody.find('#spawnitLibraryPleaseWaitModal').length>0){
		topWindowBody.find('#spawnitLibraryPleaseWaitModal').remove();
	}

	if(topWindowBody.find('.modal-backdrop').length>0){
		topWindowBody.find('.modal-backdrop').remove();
	}

	var dialogHtml = '';
	dialogHtml += '<div id="spawnitManageLibraryImageModal" class="modal" role="dialog">';
	dialogHtml += '  <div class="modal-dialog fullscreen-modal-dialog">';
	dialogHtml += '    <div class="modal-content fullscreen-modal-content">';
	dialogHtml += '      <div class="modal-header">';
	dialogHtml += '        <button type="button" class="close spawnitManageLibraryImageModalSave" data-dismiss="modal">Accept</button>';
	dialogHtml += '        <button type="button" class="close" data-dismiss="modal">Cancel</button>';
	dialogHtml += '        <h4 class="modal-title">Choose Image or Video</h4>';
	dialogHtml += '      </div>';
	dialogHtml += '      <div class="modal-body">';
	dialogHtml += '        <iframe id="spawnitManageLibraryImageModalIFrame" class="spawnitManageLibraryImageModalIFrame" src="/Resources/ImageLibrary/dnnImageLibrary.asp?showurloptions=true&cropdataID=' + cropdataIDs.join(',') + '&isCarousel=' + (isCarousel ? 1 : 0) + '&aspectRatio=' + URLEncode(aspectRatio) + '&flexibleaspectratio=' + URLEncode(flexibleaspectratio) + '&datapluginoptions=' + URLEncode(datapluginoptions) + '&isLiveBlog=' + isLiveBlog + '"></iframe>';
	dialogHtml += '      </div>';
	//dialogHtml += '      <div class="modal-footer">';
	//dialogHtml += '        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>';
	//dialogHtml += '      </div>';
	dialogHtml += '    </div>';
	dialogHtml += '  </div>';
	dialogHtml += '</div>';

	topWindowBody.append(dialogHtml);
	
	$('.spawnitManageLibraryImageModalSave',topWindowBody).click(function() {
		var topWindowDocument = getTopWindowDocument(window);

		var imageRow = topWindowDocument.liveBlogCropImageRow;
		var cropperRecords = topWindowDocument.cropperRecords;
		
		var timeStamp = seconds_since_epoch();
		
		//if(cropperRecords.length==1){
		if(cropperRecords){
			var cropdata = cropperRecords[0].data;
			if(imageRow){
				//alert('update existing row')
				//update existing image 	
				
				for(var ptr=0; ptr<document.LiveBlogPostImages.length; ptr++){
					if(document.LiveBlogPostImages[ptr].currentCropperImage==true){
						var data = {
							"Name": cropdata.imageTitle,
							"ImageUrl": "/croppedimages/" + cropdata.cropdata_human_friendly_path + "-1100px.jpg?" + timeStamp,
							"DynamicImageUrl": "/croppedimages/" + cropdata.cropdata_human_friendly_path,
							"ThumbnailUrl": "/croppedimages/" + cropdata.cropdata_human_friendly_path + "-200px.jpg?" + timeStamp,
							"Title": cropdata.imageTitle,
							"Alt": cropdata.libraryimage_caption,
							"SortOrder": document.LiveBlogPostImages.length,
							"FileId": "0",
							"cropdataID": cropdata.cropdataID,
							"libraryimageID": cropdata.libraryimageID,
							"photographer":  cropdata.libraryimage_photographer,
							"photoHouse":  cropdata.libraryimage_photo_house
						};

						/*
						if(imageRow.libraryimageID==cropdata.libraryimageID){
							//same image, preserve title and alt text in case the user has changed it in the front end
							data.Name = imageRow.Name;
							data.Title = imageRow.Title,
							data.Alt = imageRow.Alt;
							data.photographer = imageRow.photographer;
							data.photoHouse = imageRow.photoHouse;
						}
						*/
						
						if(data.photographer!=''){
							data.Alt += ' | ' + data.photographer;	
						//} else if(data.photoHouse!='') {
						//	data.Alt += ' | ' + data.photoHouse;	
						}

						document.LiveBlogPostImages.splice(ptr,1,data);
						//document.LiveBlogPostImages.push(data);
		
						document.angularJsScope.$apply();							
					}
				}



			} else {
				//add new image	
				var data = {
					"Name": cropdata.imageTitle,
					"ImageUrl": "/croppedimages/" + cropdata.cropdata_human_friendly_path + "-1100px.jpg?" + timeStamp,
					"DynamicImageUrl": "/croppedimages/" + cropdata.cropdata_human_friendly_path,
					"ThumbnailUrl": "/croppedimages/" + cropdata.cropdata_human_friendly_path + "-200px.jpg?" + timeStamp,
					"Title": cropdata.imageTitle,
					"Alt": cropdata.libraryimage_caption,
					"SortOrder": document.LiveBlogPostImages.length,
					"FileId": "0",
					"cropdataID": cropdata.cropdataID,
					"libraryimageID": cropdata.libraryimageID,
					"photographer":  cropdata.libraryimage_photographer,
					"photoHouse":  cropdata.libraryimage_photo_house
				};
				
				if(data.photographer!=''){
					data.Alt += ' | ' + data.photographer;	
				//} else if(data.photoHouse!='') {
				//	data.Alt += ' | ' + data.photoHouse;	
				}
				
				/*
				var newArray = [];
				for (var itemPtr = 0; itemPtr < document.LiveBlogPostImages.length; itemPtr++) {
					newArray.push(document.LiveBlogPostImages[itemPtr]);
				}
				newArray.push(data);
				document.LiveBlogPostImages = newArray;
				document.angularJsScope.ui.data.Images = newArray;
				*/
				
				//document.angularJsScope.ui.data.Images.Options.push(data);
				
				document.angularJsScope.ui.data.Post.Options.PostImages.push(data);
				
//				document.LiveBlogPostImages.push(data);
				
				//var tempScope = angular.element($(".LiveBlogUploadPhotosControl")[0]).scope();
				//tempScope.$apply();
				
				//document.LiveBlogPostImages.refreshRows();
				//document.angularJsScope.gridApi.core.notifyDataChange(document.angularJsScope.uiGridConstants.dataChange.ALL);
				document.angularJsScope.$apply();
			}
		} else {
			if(imageRow){
				for(var ptr=0; ptr<document.LiveBlogPostImages.length; ptr++){
					if(document.LiveBlogPostImages[ptr].cropdataID == imageRow.cropdataID){
						document.LiveBlogPostImages.splice(ptr, 1);
						document.angularJsScope.$apply();
						break;
					}
				}
			}
		}
		
		//This is where things need to get inserted or updated on the blog post
		
//		globalNewImageHtml = topWindowDocument.globalNewImageHtml;
//		
//		var editor = parent.top.document.spawnitLastRadEditor;
//		
//		if(editor.isCarousel){
//			editor.ignoreNextSelectionChange = true;
//			var carouselsource = editor.getSelection().getParentElement().parentElement;
//			editor.getSelection().selectElement(carouselsource);
//			editor.pasteHtml(globalNewImageHtml);
//			editor.ignoreNextSelectionChange = false;
//		} else {
//			editor.ignoreNextSelectionChange = true;
//			editor.pasteHtml(globalNewImageHtml);
//			editor.ignoreNextSelectionChange = false;
//		}
//		
//		var tempHtml = editor.get_html();
//		editor.set_html('', 'Selection Clear', true, false);
//		editor.set_html(tempHtml, 'Image Update', true, false);
//
//		$("img[dynamiccroppedimage='1']",editor._contentArea).each(function(index,imageObject){
//			updateImageSrcBasedOnWidth(imageObject);
//		});
	});
	
	var liveBlogChooseImageDialog = topWindowBody.find('#spawnitManageLibraryImageModal')[0];
	$(liveBlogChooseImageDialog).modal('show');
}

function seconds_since_epoch(){
	return Math.floor( Date.now() / 1000 );
}

function getTopWindowDocument(currentWindow){
	var returnWindow = currentWindow;
	while ((returnWindow.parent)&&(returnWindow!=returnWindow.parent)) {
		returnWindow = returnWindow.parent
	};
	return returnWindow.document;
}

function WebForm_OnSubmit() {
 if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) {
	for (var i in Page_Validators) {
	try {
		var control = document.getElementById(Page_Validators[i].controltovalidate);
		if (!Page_Validators[i].isvalid) {
		$(control).addClass("invalid");
		} else {
		$(control).removeClass("invalid");
		}
	} catch (e) { }
	}
	return false;
 }
 return true;
}

function WebFormUpdateAllValidClasses(){
 if (typeof (ValidatorOnSubmit) == "function") {
	for (var i in Page_Validators) {
	try {
		var control = document.getElementById(Page_Validators[i].controltovalidate);
		if (!Page_Validators[i].isvalid) {
		$(control).addClass("invalid");
		} else {
		$(control).removeClass("invalid");
		}
	} catch (e) { }
	}
  }
}


$(function () {
  var originalValidationSummaryOnSubmit = window.ValidationSummaryOnSubmit;
  window.ValidationSummaryOnSubmit = function (validationGroup) {
    var originalScrollTo = window.scrollTo;
    window.scrollTo = function() { };
    originalValidationSummaryOnSubmit(validationGroup);
    window.scrollTo = originalScrollTo;
  }
});

$(function(){
	$.extend(theme.PluginCounter.prototype, {
		build: function() {
			if (!($.isFunction($.fn.countTo))) {
				return this;
			}
	
			var self = this,
				$el = this.options.wrapper;
	
			$.extend(self.options, {
				onComplete: function() {
					if ($el.data('append')) {
						$el.html($el.html() + $el.data('append'));
					}
	
					if ($el.data('prepend')) {
						$el.html($el.data('prepend') + $el.html());
					}
				}
			});
	
			$el.appear(function() {
	
				if( self.options.dollarFormat ) {
					$.extend(self.options, {
						formatter: function (value, options) {
							value = value.toFixed(options.decimals);
							value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
							value =  self.options.dollarSymbol + value;
							return value;
						}
					});
				}
	
				$el.countTo(self.options);
	
			}, {
				accX: self.options.accX,
				accY: self.options.accY
			});
	
			return this;
		}
	});	
})

try {
	$.widget("custom.combobox", {
		_create: function () {
			if($('#custom_combobox_autocomplete').length==0){
				$('body').append('<custom_combobox_autocomplete id="custom_combobox_autocomplete"></custom_combobox_autocomplete>');
			};
			
			this.wrapper = $("<div>")
				.addClass("custom-combobox admin-combobox")
				.insertAfter(this.element);
	
			this.element.hide();
			this._createAutocomplete();
			this._createShowAllButton();
		},
	
		_createAutocomplete: function () {
			var selected = this.element.children(":selected"),
				value = selected.val() ? selected.text() : "";
	
			this.input = $("<input>")
				.appendTo(this.wrapper)
				.val(value)
				.attr("title", "")
				.addClass("form-control admin-combobox-input custom-combobox-input")
				.autocomplete({
					delay: 0,
					minLength: 0,
					source: this._source.bind(this),
					appendTo: "#custom_combobox_autocomplete"
				})
				.tooltip({
					classes: {
						"ui-tooltip": "ui-state-highlight"
					}
				});
	
			this._on(this.input, {
				autocompleteselect: function (event, ui) {
					ui.item.option.selected = true;
					this._trigger("select", event, {
						item: ui.item.option
					});
				},
	
				autocompletechange: "_removeIfInvalid"
			});
		},
	
		_createShowAllButton: function () {
			var input = this.input,
				wasOpen = false;
	
			$("<a>")
				.attr("tabIndex", -1)
				.attr("title", "Show All Items")
				.appendTo(this.wrapper)
				.button({
					icons: {
						primary: "ui-icon-triangle-1-s"
					},
					text: false
				})
				.removeClass("ui-corner-all")
				.addClass("custom-combobox-toggle ui-corner-right")
				.on("mousedown", function () {
					wasOpen = input.autocomplete("widget").is(":visible");
				})
				.on("click", function () {
					input.trigger("focus");
	
					// Close if already visible
					if (wasOpen) {
						return;
					}
	
					// Pass empty string as value to search for, displaying all results
					input.autocomplete("search", "");
				});
		},
	
		_source: function (request, response) {
			var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
			response(this.element.children("option").map(function () {
				var text = $(this).text();
				if (this.value && (!request.term || matcher.test(text)))
					return {
						label: text,
						value: text,
						option: this
					};
			}));
		},
	
		_removeIfInvalid: function (event, ui) {
	
			// Selected an item, nothing to do
			if (ui.item) {
				return;
			}
	
			// Search for a match (case-insensitive)
			var value = this.input.val(),
				valueLowerCase = value.toLowerCase(),
				valid = false;
			this.element.children("option").each(function () {
				if ($(this).text().toLowerCase() === valueLowerCase) {
					this.selected = valid = true;
					return false;
				}
			});
	
			// Found a match, nothing to do
			if (valid) {
				return;
			}
	
			// Remove invalid value
			this.input
				.val("")
				.attr("title", value + " didn't match any item")
				.tooltip("open");
			this.element.val("");
			this._delay(function () {
				this.input.tooltip("close").attr("title", "");
			}, 2500);
			this.input.autocomplete("instance").term = "";
		},
	
		_destroy: function () {
			this.wrapper.remove();
			this.element.show();
		}
	});		
} catch(e) {};

