var AnimationTypeEnum = {"None" : 1, "Slide" : 2, "Fade" : 3};

var _rxXss1 = /(<)([a-z!\/?])/ig;
var _rxXss2 = /(&)(#)/ig;

(function($){
	$.fn.bindInputs = function(){
		//enforce xss safe characters on text inputs
		$("input[type=text]").change(function(event){
			makeXssSafe($(this));
		});
		
		//enforce xss safe characters on textarea inputs
		$("textarea").change(function(event){
			makeXssSafe($(this));
		});
		
		//enforce maxlength on textarea inputs
		$("textarea[maxlength]").keypress(function(event){
			if(event.which >= 32 || event.which == 13){
				if(this.value.length >= $(this).attr("maxlength"))
					event.preventDefault();
			}
		});
		
		//enforce numeric on text inputs
		$("input[type=text][numeric=true]").keypress(function(event){
			if((event.which < 48 || event.which > 57) && event.which != 0 && event.which != 8)
				event.preventDefault();
		});
	};
})(jQuery);

function makeXssSafe(ctl){
	var strValue = ctl.val();
	
	if(_rxXss1.test(strValue))
		ctl.val(strValue.replace(_rxXss1, "$1 $2"));
		
	if(_rxXss2.test(strValue))
		ctl.val(strValue.replace(_rxXss2, "$1 $2"));
}

function selectOptions(ctlSelect, aryValues){
	ctlSelect.val("");
	
	for(var i = 0; i < aryValues.length; i++)
		ctlSelect.children("[value=" + aryValues[i] + "]").attr("selected", "selected");
}

function getSelectedValues(ctlSelect){
	var aryValues = [];
	
	$(ctlSelect).children(":selected").each(
		function(i, option){
			aryValues[i] = $(option).val();
		}
	);
	
	return aryValues;
}

function scrollPage(strTop){
	$("html, body").animate({scrollTop:strTop}, 500);
}

function openWindow(strUrl, intWidth, intHeight, blnResizable, blnScrollbars){
	var strOptions = "width=" + intWidth.toString()
	 + ", height=" + intHeight.toString() 
	 + ", left=" + (((screen.width - intWidth) / 2) - 15) /*offset for parent vscroll*/
	 + ", top=" + ((screen.height - intHeight) / 2)	 
	 + ", resizable=" + (blnResizable ? "1" : "0")
	 + ", scrollbars=" + (blnScrollbars ? "1" : "0")	 
	 + ", status=0"
	 + ", toolbar=0"
	 + ", menubar=0"
	 + ", location=0";
	
	window.open(strUrl, null, strOptions).focus();
}

function popEmailLink(a, strRecipient, blnSetText){
	var strEmail = strRecipient + "@#b#u#y#b#u#s#i#n#e#s#s#.#c#o#m".replace(/#/g, "");
	
	a.attr("href", "mailto:" + strEmail)
	
	if(a.text().length == 0)
		a.text(strEmail);
}