﻿/* begin string functions */
(function($) {
	$.zeroIfNaN = function(val) {
		if (!val || isNaN(val)) {
			return 0;
		} else {
			return parseInt(val);
		}
	}
})(jQuery);
(function($) {
	$.replaceStart = function(replace, value) {
		if (value.startsWith(replace)) {
			value = value.substring(replace.length);
		}
		return value;
	}
})(jQuery);
(function($) {
	$.replaceEnd = function(replace, value) {
		if (value.endsWith(replace)) {
			value = value.substring(0, value.length - replace.length);
		}
		return value;
	}
})(jQuery);
(function($) {
	$.stringFormat = function(text) {
		if (arguments.length <= 1) { return text; }

		var tokenCount = arguments.length - 2;
		for (var token = 0; token <= tokenCount; token++) {
			text = text.replace(new RegExp("\\{" + token + "\\}", "gi"),
			arguments[token + 1]);
		}
		return text;
	}
})(jQuery);
(function($) {
	$.getUnderscoredId = function(val) {
		if (val) {
			return val.substring(val.lastIndexOf('_') + 1, val.length);
		} else {
			return '0';
		}
	}
})(jQuery);
(function($) {
	$.getDashedId = function(val) {
		if (val) {
			return val.substring(val.lastIndexOf('-') + 1, val.length);
		} else {
			return '0';
		}
	}
})(jQuery);
(function($) {
	$.isEmpty = function(value) {
		if (!value || $.trim(value) == '') { return true; } else { return false; }
	}
})(jQuery);
(function($) {
	$.getFileExtension = function(val) {
		if (val && val.indexOf('.') >= 0) {
			return val.substring(val.lastIndexOf('.'), val.length);
		} else {
			return '';
		}
	}
})(jQuery);
(function($) {
	$.removeParenthesisCount = function(val) {
		var regExpCount = /\(\d+\)/;
		var matches = null;
		var removedValue = null;
		var results = new Object();
		results["removedText"] = "";
		results["removedValue"] = "";
		results["value"] = val;

		if (val) {
			matches = regExpCount.exec(val);
			if (matches) {
				removedValue = matches[0];
				val = val.replace(removedValue, "");
				results["removedText"] = removedValue;
				results["removedValue"] = $.removeParenthesis(removedValue);
				results["value"] = val;
			}
		}
		return results;
	}
})(jQuery);
(function($) {
	$.addToTabParenthesisCount = function(tabStripID, tabValue, addValue) {
		var tabStrip = $find(tabStripID);
		var tab;
		if (tabStrip) {
			tab = tabStrip.findTabByValue(tabValue);
			if (tab) {
				var count = $.getParenthesisCount(tab.get_text()).value;
				count = parseInt(count) + parseInt(addValue);
				tab.set_text($.trim($.trim($.removeParenthesisCount(tab.get_text()).value) + " <strong>(" + count + ")</strong>"));
			}
		}
	}
})(jQuery);
(function($) {
	$.addToNodeParenthesisCount = function(treeViewID, nodeValue, addValue) {
		var treeView = $find(treeViewID);
		var node;
		if (treeView) {
			node = treeView.findNodeByValue(nodeValue);
			if (node) {
				var count = $.getParenthesisCount(node.get_text()).value;
				if(count == null || isNaN(count)){count = 0;}
				count = parseInt(count) + parseInt(addValue);
				node.get_textElement().innerHTML = $.trim($.trim($.removeParenthesisCount(node.get_text()).value) + " <strong>(" + count + ")</strong>");
			}
		}
	}
})(jQuery);
(function($) {
	$.getParenthesisCount = function(val) {
		var regExpCount = /\(\d+\)/;
		var matches = null;
		var results = new Object();

		results["text"] = null;
		results["value"] = null;

		if (val) {
			matches = regExpCount.exec(val);
			if (matches) {
				results["text"] = matches[0];
				results["value"] = $.removeParenthesis(results["text"]);
				if(!results["value"] || isNaN(results["value"])){
					results["value"] = "0";
				}
			}
		}
		return results;
	}
})(jQuery);
(function($) {
	$.removeParenthesis = function(val) {
		val = val.replace('(', '').replace(')', '');
		return val;
	}
})(jQuery);
/* end string functions */
/* begin document functions */
(function($) {
	$.goToPage = function(page, queryString) {
		document.location.href = page + (queryString && $.trim(queryString) != '' ? '?' + queryString : '');
	}
})(jQuery);
/* end document functions */
/* begin asynchronous helper functions */
(function($) {
	$.asyncComplete = function() {
		$("input[showoncomplete=1]").add("a[showoncomplete=1]").show();
		$("img[removeoncomplete=1]").remove();
	}
})(jQuery);
(function($) {
	$.globalService_Fail = function(result) {
   		if($.writeObject) $.writeObject(result);
   		$.asyncComplete();
	}
})(jQuery);
(function($) {
	$.globalService_Success = function(result) {
   		$.asyncComplete();
   	}
})(jQuery);
(function($) {
	$.globalService_FailUnblockUI = function(result) {
		if ($.writeObject) $.writeObject(result);
		$.asyncComplete();
		$.unblockUI();
	}
})(jQuery);
/* end asynchronous helper functions */

/* begin post back functions */
(function($) {
	$.postBackHF = function(HFID) {
		$.postBackHFValue(HFID, null);
	};
})(jQuery);
(function($) {
	$.postBackHFValue = function(HFID, HFValue) {
		$("#" + HFID).each(function() {
			if (HFValue === null) {
				$(this).val((new Date()).getTime());
			} else {
				$(this).val(HFValue);
			}
			__doPostBack(HFID, '');
		});
	};
})(jQuery);
/* end post back functions */

/* begin form functions */
(function($) {
	$.bindFormToObject = function(obj, selector, options) {
		var defaults = {
			elementPrefaces: [],
			elementSuffixes: [],
			exclusions: [],
			replacePhrases: []
		}
		$.extend(defaults, options);
		if (!obj)
			obj = new Object();

		if (obj) {
			var notStr = '';
			$.each(defaults.exclusions, function(name, value) {
				notStr += value + ', ';
			});
			if (notStr.length > 2) {
				notStr = notStr.substring(0, notStr.length - 2);
			}
			var objID = '';
			$("input:text,input:password,input:hidden,select", selector).not(notStr).each(function() {
				objID = $(this).attr('id');
				objID = $.replaceStart('ctl00_phMain_', objID);
				$.each(defaults.elementPrefaces, function(name, value) {
					objID = $.replaceStart(value, objID);
				});
				$.each(defaults.elementSuffixes, function(name, value) {
					objID = $.replaceEnd(value, objID);
				});
				$.each(defaults.replacePhrases, function(name, value) {
					objID = objID.replace(value, '');
				});
				obj[objID] = $(this).val();
			});
		}

		return obj;
	}
})(jQuery);

(function($) {
	$.getEmptyFields = function(selectors, messages) {
		var obj = new Object({ message: '', count: 0 });
		$.each(selectors, function(i, j) {
			if ($.trim($((!j.startsWith('#') ? '#' : '') + j).val()) == '') {
				if (messages)
					obj.message += messages[i] + ', ';
				obj.count++;
			}
		});
		if (obj.message.length > 2) {
			obj.message = obj.message.substring(0, obj.message.length - 2);
		}
		return obj;
	}
})(jQuery);
/* end form functions */

/* being UI functions */
(function($) {
	$.showFlexxWindow = function(container, opts) {
		var defaultScrlHeightAdjust = 18;
		var defaults = { evt: null, pageX: 0, pageY: 0, width: 300, height: 300, scrollHeightAdjust: defaultScrlHeightAdjust, isModal: true, vCenterContainer: false, onLoad: null, onClose: null };
		if (opts) {
			$.extend(defaults, opts);
		}
		if (defaults.pageX == 0 && defaults.evt && defaults.evt.pageX) { defaults.pageX = defaults.evt.pageX; }
		if (defaults.pageY == 0 && defaults.evt && defaults.evt.pageY) { defaults.pageY = defaults.evt.pageY; }
		if (container) {
			container = (!container.startsWith("#") ? "#" : "") + container;
			var cEl = $(container).eq(0);
			if (cEl) {

				var closeContainer = function() {
					$(document).unbind('click');
					$(container).hide();
					if (defaults.isModal) {
						$.dimScreenStop();
					}
					if (defaults.onClose) {
						defaults.onClose(cEl, defaults);
					}
				};

				function showWindow() {
					cEl.css("display", "inline").css("top", (defaults.vCenterContainer ? (defaults.pageY - parseInt((defaults.height / 2))) : defaults.pageY)).css("left", defaults.pageX).css("opacity", "1").css("z-index", "1010").fadeIn();
					var scrlElHeight = defaults.height;
					var scrlEl = null;
					cEl.children(".inner").eq(0).css("width", defaults.width).css("height", defaults.height).children().each(function(i) {
						if (!$(this).hasClass("vertical-scroll")) {
							scrlElHeight -= $(this).height();
						} else {
							scrlEl = $(this);
						}
					});

					if (scrlEl) {
						scrlEl.css("height", (scrlElHeight - defaults.scrollHeightAdjust));
					}

					if (defaults.onLoad) {
						defaults.onLoad(cEl, defaults);
					}
				}

				$(".button-red", container).one("click", closeContainer);

				$(document).one("click", function(e) {

					if (e.target && e.target.id) {
						if ($("#" + e.target.id).parents(container).length == 0) {
							closeContainer();
						}
					}
				});

				if (defaults.isModal) {
					$.data(cEl[0], "ismodal", "true");
					$.dimScreen(250, 0.6, function() {
						showWindow();
					});
				} else {
					showWindow();
				}
			}
		}

	}
})(jQuery);
(function($) {
	$.setFlexxWindows = function() {
		$("div.flexx-window").each(function() {
			$(this).css("position", "absolute").css("left", "-999999px").css("display", "");
		});
	}
})(jQuery);
(function($) {
	$.telerikBindTreeViewNodes = function(treeViewID, nodeList) {
		var treeView = $find(treeViewID);
		if(treeView){
			treeView.get_nodes().clear();
			var tNode;
			var pNode;

			$.each(nodeList, function(i,node){
				tNode = new Telerik.Web.UI.RadTreeNode();
				tNode.set_text(node.Text);
				tNode.set_value(node.ID);
				tNode.set_enabled(node.Enabled);
				tNode.set_expanded(node.Expanded);
				tNode.set_selected(node.Selected);
				if(node.CssClass != ""){
					tNode.set_cssClass(node.CssClass);
				}
				if(!node.Selectable){
					tNode.set_category("noselect");
				}
				if(node.ImageUrl && node.ImageUrl != ''){
					tNode.set_imageUrl(node.ImageUrl);
				}
				if(node.ExpanedImageUrl && node.ExpandedImageUrl != ''){
					tNode.set_expandedImageUrl(node.ExpandedImageUrl);
				}
				if(!node.ParentID || $.trim(node.ParentID) == ""){
					treeView.get_nodes().add(tNode);
				}else{
					pNode = treeView.findNodeByValue(node.ParentID);
					pNode.get_nodes().add(tNode);
				}
			});
		}
	}
})(jQuery);
(function($) {
	$.telerikClearNodes = function(treeViewID) {
		var treeView = $find(treeViewID);
		if(treeView){
			treeView.get_nodes().clear();
		}
	}
})(jQuery);
(function($) {
	$.telerikGetSelectedNodes = function(treeViewID) {
		var tree = $find(treeViewID);
		var parentFolders = null;
		if (tree.get_selectedNodes().length > 0) {
			parentFolders = new Array();
			$.each(tree.get_selectedNodes(), function(name, value) {
				parentFolders.push(value.get_value().toString());
			});
		}
		return parentFolders;
	}
})(jQuery);
(function($) {
	$.telerikGetExpandedNodes = function(treeViewID) {
		var treeView = $find(treeViewID);
		var nodes = null;
		nodes = new Array();
		if(treeView && treeView.get_nodes().length > 0){
			$.each(tree.get_nodes(), function(name, value) {
				if(value && value.get_expanded()){
					nodes.push(value.get_value().toString());
				}
			});
		}
		return nodes;
	}
})(jQuery);
(function($) {
	$.telerikGetFolderID = function(jqElement) {
		return $.getDashedId(jqElement.children("span[class*=f-]").eq(0).attr("class")).toString();
	}
})(jQuery);
(function($) {
	$.telerikSetTabVisibility = function(tabStripID, tabValue, isVisible) {
		var tabStrip = $find(tabStripID);
		if (tabStrip) {
			var tab = tabStrip.findTabByValue(tabValue);
			if (tab) {
				tab.set_visible(isVisible);
			}
		}
	}
})(jQuery);
(function($) {
	$.telerikSelectTab = function(tabStripID, tabValue) {
		var tbStp = $find(tabStripID);
		if (tbStp) {
			var tab = tbStp.findTabByValue(tabValue);
			if (tab) {
				tab.set_selected(true);
				if (tab.pageView) {
					tab.pageView.set_selected(true);
				}
			}
		}
	}
})(jQuery);
(function($) {
	$.telerikSetSelectedTab = function(sender, args) {
		AJAX.GlobalService.SetSelectedTab(sender.get_element().id, args.get_tab().get_value(), $.globalService_Success, $.globalService_Fail);
	}
})(jQuery);
(function($) {
	$.telerikGetSelectedTabValue = function(tabStripID) {
		var tabStrip = $find(tabStripID);
		if(tabStrip){
			return tabStrip.get_selectedTab().get_value();
		}else{
			return "";
		}
	}
})(jQuery);
(function($) {
	$.telerikNodeClicking = function(sender, args) {
		var node = args.get_node();
		if(node.get_category() != "noselect"){
			var selected = !node.get_selected();
			var jqEl = $("#" + sender.get_element().id).eq(0);
			var arr = jqEl.data("selectednodes");
			if(!arr){
				arr = new Array();
			}
			var found = false;
			if(!args.get_domEvent().ctrlKey){
				$.each(arr, function(i,v){
					if(v != node.get_value()){
						Array.remove(arr, v);
					}else if(v){
						found = true;
					}
				});
			}else if(!selected){
				Array.remove(arr, node.get_value());
			}
			if(!found && selected){
				arr.push(node.get_value());
			}
			jqEl.data("selectednodes", arr);
		}else{
			args.set_cancel(true);
		}
	}
})(jQuery);
(function($) {
	$.telerikNodeExpanding = function(sender, args) {
		var jqEl = $("#" + sender.get_element().id).eq(0);
		var arr = jqEl.data("expandednodes");
		if(!arr){
			arr = new Array();
		}
		arr.push(args.get_node().get_value());
		jqEl.data("expandednodes", arr);
	}
})(jQuery);
(function($) {
	$.telerikNodeCollapsing = function(sender, args) {
		var jqEl = $("#" + sender.get_element().id).eq(0);
		var arr = jqEl.data("expandednodes");
		if(arr){
			Array.remove(arr, args.get_node().get_value());
			jqEl.data("expandednodes", arr);
		}
	}
})(jQuery);
(function($) {
	$.telerikGetExpanedNodeArray = function(treeViewID) {
		var treeView = $find(treeViewID);
		var arr;
		if(treeView){
			var jqEl = $("#" + treeView.get_element().id).eq(0);
			if(jqEl){
				arr = jqEl.data("expandednodes");
			}
		}
		if(!arr){
			arr = new Array();
		}
		return arr;
	}
})(jQuery);
(function($) {
	$.telerikGetSelectedNodeArray = function(treeViewID) {
		var treeView = $find(treeViewID);
		var arr;
		
		if(treeView){
			var jqEl = $("#" + treeView.get_element().id).eq(0);
			if(jqEl){
				arr = jqEl.data("selectednodes");
			}
		}
		if(!arr){
			arr = new Array();
		}
		return arr;
	}
})(jQuery);
(function($) {
	$.telerikIsAnyParentSelected = function(treeView, node) {
		node = node.get_parent();

		while(node != treeView && node != null)
		{
			if (node.get_selected())
			{
				return true;
			}
			node = node.get_parent();
		}
		return false;
	}
})(jQuery);
(function($) {
	$.telerikIsAnyChildSelected = function(node) {
		var selected = false;
		$.each($.telerikGetAllChildNodes(node,null), function(i,childNode){
			if(childNode.get_selected()){
				selected = true;
				return;
			}
		});
		return selected;
	}
})(jQuery);
(function($) {
	$.telerikGetSelectedChildNodes = function(node) {
		var nodeArray = new Array();
		if(node){
			for(var i=0; i < node.get_nodes().get_count(); i++){
				if(node.get_nodes().getNode(i).get_selected()){
					nodeArray.push(node.get_nodes().getNode(i));
				}
			}
		}
		
		return nodeArray;
	}
})(jQuery);
(function($) {
	$.telerikGetAllChildNodes = function(node, nodeArray) {
		if(!nodeArray){
			nodeArray = new Array();
		}
		if(node){
			for(var i=0; i < node.get_nodes().get_count(); i++){
				nodeArray.push(node.get_nodes().getNode(i));
				$.telerikGetAllChildNodes(node.get_nodes().getNode(i), nodeArray);
			}
		}
		
		return nodeArray;
	}
})(jQuery);
(function($) {
	$.adjustWidthToElement = function(arr, adjust) {
		if (!adjust) adjust = 0;
		$.each(arr, function() {
			$("#" + this.dest).width($("#" + this.source).width() + adjust);
		});
	}
})(jQuery);
(function($) {
	$.swapImage = function(evt, opts) {
		$("#" + evt.target.id + "[src]").each(function() {
			var img = $(this).attr("src");
			if (img.endsWith(opts.image1)) {
				$(this).attr("src", img.replace(opts.image1, opts.image2));
			} else {
				$(this).attr("src", img.replace(opts.image2, opts.image1));
			}
		});
	}})(jQuery);
(function($) {
	$.wireDialogShow = function(selector, dialogID, options) {
		var func = function(e) { showDialog(dialogID, e, options); };

		var eventName = "click";
		if (options.eventName) {
			eventName = options.eventName;
		}

		if (eventName === "click") {
			$(selector).click(func);
		} else if (eventName === "mouseover") {
			$(selector).mouseover(func);
		} else {
			$(selector).click(func);
		}
	}
})(jQuery);
var selectedPanelGroups = new Object();
(function($) {
	$.showGroupPanelFromHiddenField = function(groupName, hidFldName, callback) {
		$("#" + hidFldName + "[value]").each(function() {
			$("#" + $(this).val()).show();
			selectedPanelGroups[groupName] = $("#" + $(this).val()).attr("id");
		});
	}})(jQuery);
(function($) {
	$.showGroupPanel = function(sourceElement, groupName, panelName, hidFldName, clBack) {
		var el, hidEl, foundPanel;
		foundPanel = false;
		if (selectedPanelGroups[groupName]) {
			$("#" + selectedPanelGroups[groupName]).hide();
		} else {
			$("div[id^=" + groupName + "_]").hide();
		}

		if ($("#" + panelName).length > 0) {
			$("#" + panelName).show();	
			selectedPanelGroups[groupName] = panelName;
			$("#" + hidFldName).attr("value", panelName);
			foundPanel = true;
		}

		if (clBack) {
			var opts = { panelName: panelName, found: foundPanel };
			clBack(opts);
		}
	}
})(jQuery);
(function($) {
	$.showDialog = function(dialogID, e, options) {
		var addOpts = {};
		if (options.isModal && options.isModal === true) {
			$.extend(addOpts, { modal: true, overlay: { opacity: 0.5, background: "#666666"} });
		}

		var xPos = 0;
		var yPos = 0;
		var hasPosition = false;
		if (e) { xPos = e.clientX; yPos = e.clientY; }
		if (options.positionAt) {
			var modalWidth = 300;
			var modalHeight = 300;
			if (options.width) modalWidth = options.width;
			if (options.height) modalHeight = options.height;
			switch (options.positionAt) {
				case "topright":
					hasPosition = true;
					xPos = (xPos > modalWidth ? xPos - modalWidth : xPos);
					break;
				case "bottomright":
					hasPosition = true;
					xPos = (xPos > modalWidth ? xPos - modalWidth : xPos);
					yPos = (yPos > modalHeight ? yPos - modalHeight : yPos);
					break;
				case "bottomleft":
					hasPosition = true;
					yPos = (yPos > modalHeight ? yPos - modalHeight : yPos);
					break;
				case "topleft":
					hasPosition = true;
					break;
			}
		}
		if (hasPosition || (options.openAtCursor && options.openAtCursor === true)) {
			$.extend(addOpts, { position: [xPos, yPos] });
		}
		$.extend(options, addOpts);
		$("#" + dialogID).show().dialog(options);
	};
})(jQuery);
(function($) {
	$.unbindFormElements = function(containerSelector) {
		if (containerSelector) {
			$(":text,:button,:checkbox,:radio,:password,textarea,select,a", containerSelector).unbind();
		} else {
			$(":text,:button,:checkbox,:radio,:password,textarea,select,a").unbind();
		}
	}
})(jQuery);
(function($) {
	$.getFolderTreeNode = function(folderName, relativePath) {
		var node = new Telerik.Web.UI.RadTreeNode();
		node.set_text(folderName);
		node.set_imageUrl(relativePath + "images/icons/16/folder_closed.gif");
		node.set_expandedImageUrl(relativePath + "images/icons/16/folder.gif");
		return node;
	}
})(jQuery);
(function($) {
	$.iconMessage = function(selector, className, message) {
		if (!className.startsWith("iconmsg")) className = "iconmsg " + className;
		$(selector).show().attr("class", className).children("div").text(message);
	};
})(jQuery);
(function($) {
	$.dimScreen = function(speed, opacity, callback) {
        if(jQuery('#__dimScreen').size() > 0) return;
        
        if(typeof speed == 'function') {
            callback = speed;
            speed = null;
        }

        if(typeof opacity == 'function') {
            callback = opacity;
            opacity = null;
        }

        if(speed < 1) {
            var placeholder = opacity;
            opacity = speed;
            speed = placeholder;
        }
        
        if(opacity >= 1) {
            var placeholder = speed;
            speed = opacity;
            opacity = placeholder;
        }

        speed = (speed > 0) ? speed : 500;
        opacity = (opacity > 0) ? opacity : 0.5;
        return jQuery('<div></div>').attr({
                id: '__dimScreen'
                ,fade_opacity: opacity
                ,speed: speed
            }).css({
            background: '#000'
            ,height: '100%'
            ,left: '0px'
            ,opacity: 0
            ,position: 'absolute'
            ,top: '0px'
            ,width: '100%'
            ,zIndex: 999
        }).appendTo(document.body).fadeTo(speed, opacity, callback);
	};
})(jQuery);
(function($) {
	$.dimScreenStop = function(callback) {
		var x = jQuery('#__dimScreen');
		var opacity = x.attr('fade_opacity');
		var speed = x.attr('speed');
		x.fadeOut(speed, function() {
			x.remove();
			if (typeof callback == 'function') callback();
		});
	};
})(jQuery);
/* end UI functions */
