(function(a){a.watermark={all:function(b){if(!b){b="watermarked"}a("."+b).watermark({cssclass:b})}};a.fn.watermark=function(d){var b={text:"",cssclass:"watermarked"};var c=jQuery.extend({},b,d);return this.each(function(){var g=a(this);if(g.data("watermarkedInput")==true){return}var k=(c.text!="")?c.text:g.prev(".watermarkedtext").eq(0).text();if(g.prev(".watermarkedtext")){g.prev(".watermarkedtext").hide()}g.prev(".watermarkedtext").eq(0).css("color","red");g.data("watermarkedInput",true);if(g.attr("type")!="password"){var l=function(){g.filter(function(){return(a(this).val()==""||a(this).val()==k)}).removeClass(c.cssclass).val("")};var e=function(){g.filter(function(){return(a(this).val()==""||a(this).val()==k)}).addClass(c.cssclass).val(k)};if(this.form){a(this.form).submit(l)}g.focus(l).blur(e);a(function(){if(g.val()==""||g.val()==k){g.addClass(c.cssclass).val(k)}else{g.removeClass(c.cssclass)}})}else{var h=function(o,m){for(var n=0;n<o.attributes.length;n++){var p=o.attributes[n].nodeName;if(p.nodeName!="type"&&p.nodeName!="id"&&p.nodeName!="name"){m.setAttribute(p.nodeName,p.nodeValue)}}};var l=function(){g.show();f.hide();g[0].focus()};var e=function(m){if(g.val()==""){g.hide();f.show()}else{g.show();f.hide()}};var i=function(){if(event){if(event.propertyName=="value"){if(g.val()!=""){g.show();f.hide()}}}};var j=document.createElement("input");j.setAttribute("type","text");j.setAttribute("id","plain_"+g[0].id);j.setAttribute("name","plain_"+g[0].name);h(j,g[0]);var f=a(j);f.data("watermarkedInput",true);f.focus(l);f.addClass(c.cssclass).val(k);g.after(j);g.blur(e);g.bind("propertychange",i);a(function(){e()});g.hide()}})};a.fn.removeWatermark=function(d){var b={text:"",cssclass:"watermarked"};var c=jQuery.extend({},b,d);return this.each(function(){var e=a(this);e.removeData("watermarkedInput");var f=(c.text!="")?c.text:e.prev(".watermarkedtext").eq(0).text();e.filter(function(){return(a(this).val()==""||a(this).val()==f)}).removeClass(c.cssclass).val("")})}})(jQuery);var xVal=xVal||{};xVal.Plugins=xVal.Plugins||{};xVal.Messages=xVal.Messages||{};xVal.AttachValidator=function(b,c,d,a){if(a!=null){this.Plugins[a].AttachValidator(b,c,d)}else{for(var e in this.Plugins){this.Plugins[e].AttachValidator(b,c,d);return}}};(function($){xVal.Plugins["jquery.validate"]={AttachValidator:function(elementPrefix,rulesConfig,options){var self=this;self._ensureCustomFunctionsRegistered();$(function(){self._ensureValidationSummaryContainerExistsIfRequired(options);for(var i=0;i<rulesConfig.Fields.length;i++){var fieldName=rulesConfig.Fields[i].FieldName;var fieldRules=rulesConfig.Fields[i].FieldRules;var attribute="id";var elemId=self._makeAspNetMvcHtmlHelperID((elementPrefix?elementPrefix+".":"")+fieldName);var elem=document.getElementById(elemId);if(!elem||(elem.id!=elemId)){attribute="name";elem=$("[name="+elemId+"]")[0]}if(elem){for(var j=0;j<fieldRules.length;j++){var rule=fieldRules[j];if(rule!=null){var ruleName=rule.RuleName;var ruleParams=rule.RuleParameters;var errorText=(typeof(rule.Message)=="undefined"?null:rule.Message);self._attachRuleToDOMElement(ruleName,ruleParams,errorText,$(elem),elementPrefix,options,attribute)}}}}})},_makeAspNetMvcHtmlHelperID:function(fullyQualifiedModelName){return fullyQualifiedModelName.replace(/\./g,"_")},_attachRuleToDOMElement:function(ruleName,ruleParams,errorText,element,elementPrefix,options,attribute){var parentForm=element.parents("form");if(parentForm.length==1){this._ensureFormIsMarkedForValidation($(parentForm[0]),options);this._associateNearbyValidationMessageSpanWithElement(element,attribute);var options={};switch(ruleName){case"Required":options.required=true;options.messages={required:errorText||xVal.Messages.Required};break;case"Range":if(ruleParams.Type=="string"){options.xVal_stringRange=[ruleParams.Min,ruleParams.Max];if(errorText!=null){options.messages={xVal_stringRange:$.format(errorText)}}}else{if(ruleParams.Type=="datetime"){var minDate,maxDate;if(typeof(ruleParams.MinYear)!="undefined"){minDate=new Date(ruleParams.MinYear,ruleParams.MinMonth-1,ruleParams.MinDay,ruleParams.MinHour,ruleParams.MinMinute,ruleParams.MinSecond)}if(typeof(ruleParams.MaxYear)!="undefined"){maxDate=new Date(ruleParams.MaxYear,ruleParams.MaxMonth-1,ruleParams.MaxDay,ruleParams.MaxHour,ruleParams.MaxMinute,ruleParams.MaxSecond)}options.xVal_dateRange=[minDate,maxDate];if(errorText!=null){options.messages={xVal_dateRange:$.format(errorText)}}}else{if(typeof(ruleParams.Min)=="undefined"){options.max=ruleParams.Max;errorText=errorText||xVal.Messages.Range_Numeric_Max;if(errorText!=null){options.messages={max:$.format(errorText)}}}else{if(typeof(ruleParams.Max)=="undefined"){options.min=ruleParams.Min;errorText=errorText||xVal.Messages.Range_Numeric_Min;if(errorText!=null){options.messages={min:$.format(errorText)}}}else{options.range=[ruleParams.Min,ruleParams.Max];errorText=errorText||xVal.Messages.Range_Numeric_MinMax;if(errorText!=null){options.messages={range:$.format(errorText)}}}}}}break;case"StringLength":if(typeof(ruleParams.MinLength)=="undefined"){options.maxlength=ruleParams.MaxLength;errorText=errorText||xVal.Messages.StringLength_Max;if(errorText!=null){options.messages={maxlength:$.format(errorText)}}}else{if(typeof(ruleParams.MaxLength)=="undefined"){options.minlength=ruleParams.MinLength;errorText=errorText||xVal.Messages.StringLength_Min;if(errorText!=null){options.messages={minlength:$.format(errorText)}}}else{options.rangelength=[ruleParams.MinLength,ruleParams.MaxLength];errorText=errorText||xVal.Messages.StringLength_MinMax;if(errorText!=null){options.messages={rangelength:$.format(errorText)}}}}break;case"DataType":switch(ruleParams.Type){case"EmailAddress":options.email=true;options.messages={email:errorText||xVal.Messages.DataType_EmailAddress};break;case"Integer":options.xVal_regex=["^\\-?\\d+$",""];options.messages={xVal_regex:errorText||xVal.Messages.DataType_Integer||"Please enter a whole number."};break;case"Decimal":options.number=true;options.messages={number:errorText||xVal.Messages.DataType_Decimal};break;case"Date":options.date=true;options.messages={date:errorText||xVal.Messages.DataType_Date};break;case"DateTime":options.xVal_regex=["^\\d{1,2}/\\d{1,2}/(\\d{2}|\\d{4})\\s+\\d{1,2}\\:\\d{2}(\\:\\d{2})?$",""];options.messages={xVal_regex:errorText||xVal.Messages.DataType_DateTime||"Please enter a valid date and time."};break;case"Currency":options.xVal_regex=["^\\D?\\s?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$",""];options.messages={xVal_regex:errorText||xVal.Messages.DataType_Currency||"Please enter a currency value."};break;case"CreditCardLuhn":options.xVal_creditCardLuhn=true;if(errorText!=null){options.messages={xVal_creditCardLuhn:errorText}}break}break;case"RegEx":options.xVal_regex=[ruleParams.Pattern,ruleParams.Options];if(errorText!=null){options.messages={xVal_regex:errorText}}break;case"Comparison":var elemToCompareId=this._makeAspNetMvcHtmlHelperID((elementPrefix?elementPrefix+".":"")+ruleParams.PropertyToCompare);var elemToCompare=document.getElementById(elemToCompareId);if(elemToCompare!=null){options.xVal_comparison=[ruleParams.PropertyToCompare,elemToCompare,ruleParams.ComparisonOperator];if(errorText!=null){options.messages={xVal_comparison:errorText}}}break;case"Remote":var dataAccessor={};parentForm.find("input[name], textarea[name], select[name]").each(function(){var input=this;dataAccessor[input.name]=function(){return $(input).val()}});options.remote={url:ruleParams.url,data:dataAccessor,type:"post"};break;case"Custom":var ruleFunction=this._parseAsFunctionWithWarnings(ruleParams.Function);if(ruleFunction!=null){var customFunctionName=this._registerCustomValidationFunction(ruleFunction);var evaluatedParams=ruleParams.Parameters=="null"?null:eval("("+ruleParams.Parameters+")");options[customFunctionName]=evaluatedParams||true;options.messages=[];options.messages[customFunctionName]=errorText}break}element.rules("add",options)}},_parseAsFunctionWithWarnings:function(functionString){var result;try{result=eval("("+functionString+")")}catch(ex){alert("Custom rule error: Could not find or could not parse the function '"+functionString+"'");return null}if(typeof(result)!="function"){alert("Custom rule error: The JavaScript object '"+functionString+"' is not a function.");return null}return result},_associateNearbyValidationMessageSpanWithElement:function(element,attribute){var nearbyMessages=$("span.field-validation-error[htmlfor='"+element.attr(attribute)+"']");if(nearbyMessages.length>0){$(nearbyMessages[0]).attr("generated","true")}else{nearbyMessages=element.nextAll("span.field-validation-error");if(nearbyMessages.length>0){$(nearbyMessages[0]).attr("generated","true").attr("htmlfor",element.attr(attribute))}}},_ensureFormIsMarkedForValidation:function(formElement,options){if(!formElement.data("isMarkedForValidation")){formElement.data("isMarkedForValidation",true);var validationOptions={ignore:".ignore",errorClass:"field-validation-error",errorElement:"span",highlight:function(element){$(element).addClass("input-validation-error")},unhighlight:function(element){$(element).removeClass("input-validation-error")}};if(formElement.is(".enhancedValidation")){validationOptions.showErrors=function(errorMap,errorList){this.defaultShowErrors();if(typeof postVaildation=="function"){postVaildation(errorMap,errorList)}};validationOptions.invalidHandler=function(form,validator){if(typeof submitValidation=="function"){submitValidation(validator)}};validationOptions.focusInvalid=false}if(options.ValidationSummary){validationOptions.wrapper="li";validationOptions.errorLabelContainer="#"+options.ValidationSummary.ElementID+" ul:first"}var validator=formElement.validate(validationOptions);if(options.ValidationSummary){this._modifyJQueryValidationElementHidingBehaviourToSupportValidationSummary(validator,options)}}},_registerCustomValidationFunction:function(evalFn){jQuery.validator.xValCustomFunctionCount=(jQuery.validator.xValCustomFunctionCount||0)+1;var functionName="xVal_customFunction_"+jQuery.validator.xValCustomFunctionCount;jQuery.validator.addMethod(functionName,function(value,element,params){if(this.optional(element)){return true}return evalFn(value,element,params)});return functionName},_ensureCustomFunctionsRegistered:function(){if(!jQuery.validator.xValFunctionsRegistered){jQuery.validator.xValFunctionsRegistered=true;jQuery.validator.addMethod("xVal_stringRange",function(value,element,params){if(this.optional(element)){return true}if(params[0]!=null){if(value<params[0]){return false}}if(params[1]!=null){if(value>params[1]){return false}}return true},function(params){if((params[0]!=null)&&(params[1]!=null)){return $.format(xVal.Messages.Range_String_MinMax||"Please enter a value alphabetically between '{0}' and '{1}'.",params[0],params[1])}else{if(params[0]!=null){return $.format(xVal.Messages.Range_String_Min||"Please enter a value not alphabetically before '{0}'.",params[0])}else{return $.format(xVal.Messages.Range_String_Max||"Please enter a value not alphabetically after '{0}'.",params[1])}}});jQuery.validator.addMethod("xVal_dateRange",function(value,element,params){if(this.optional(element)){return true}var parsedValue=Date.parse(value);if(isNaN(parsedValue)){return false}else{parsedValue=new Date(parsedValue)}if(params[0]!=null){if(parsedValue<params[0]){return false}}if(params[1]!=null){if(parsedValue>params[1]){return false}}return true},function(params,elem){if(isNaN(Date.parse(elem.value))){return xVal.Messages.DataType_Date||"Please enter a valid date in yyyy/mm/dd format."}var formatDate=function(date){var result=date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();if(date.getHours()+date.getMinutes()+date.getSeconds()!=0){result+=" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()}return result.replace(/\b(\d)\b/g,"0$1")};if((params[0]!=null)&&(params[1]!=null)){return $.format(xVal.Messages.Range_DateTime_MinMax||"Please enter a date between {0} and {1}.",formatDate(params[0]),formatDate(params[1]))}else{if(params[0]!=null){return $.format(xVal.Messages.Range_DateTime_Min||"Please enter a date no earlier than {0}.",formatDate(params[0]))}else{return $.format(xVal.Messages.Range_DateTime_Max||"Please enter a date no later than {0}.",formatDate(params[1]))}}});jQuery.validator.addMethod("xVal_regex",function(value,element,params){if(this.optional(element)){return true}var pattern=params[0];var options=params[1];var regex=new RegExp(pattern,options);return regex.test(value)},function(params){return xVal.Messages.Regex||"This value is invalid."});jQuery.validator.addMethod("xVal_creditCardLuhn",function(value,element,params){if(this.optional(element)){return true}value=value.replace(/\D/g,"");if(value==""){return false}var sum=0;for(var i=value.length-2;i>=0;i-=2){sum+=Array(0,2,4,6,8,1,3,5,7,9)[parseInt(value.charAt(i),10)]}for(var i=value.length-1;i>=0;i-=2){sum+=parseInt(value.charAt(i),10)}return(sum%10)==0},function(params){return xVal.Messages.DataType_CreditCardLuhn||"Please enter a valid credit card number."});jQuery.validator.addMethod("xVal_comparison",function(value,element,params){if(this.optional(element)){return true}var elemToCompare=params[1];var comparisonOperator=params[2];switch(comparisonOperator){case"Equals":return value==elemToCompare.value;case"DoesNotEqual":return value!=elemToCompare.value}return true},function(params){var propertyToCompareName=params[0];var comparisonOperator=params[2];switch(comparisonOperator){case"Equals":return $.format(xVal.Messages.Comparison_Equals||"This value must be the same as {0}.",propertyToCompareName);case"DoesNotEqual":return $.format(xVal.Messages.Comparison_DoesNotEqual||"This value must be different from {0}.",propertyToCompareName)}});$.expr[":"].displayableValidationSummaryMessage=function(object){var span=$(object).find("span:first");if(span.length==0){return true}return !(span.css("display")==="none")&&!span.is(":empty")}}},_ensureValidationSummaryContainerExistsIfRequired:function(options){if(options.ValidationSummary){var validationSummaryContainer=$("#"+options.ValidationSummary.ElementID);if(validationSummaryContainer.length==0){alert('Cannot find validation summary element "'+options.ValidationSummary.ElementID+"\". Make sure you've put an element with this ID into your HTML document.")}if(!validationSummaryContainer.is(":has(ul)")){validationSummaryContainer.append($("<span class='validation-summary-errors' />").text(options.ValidationSummary.HeaderMessage)).append($("<ul />")).hide()}}},_modifyJQueryValidationElementHidingBehaviourToSupportValidationSummary:function(validator,options){var originalHideErrorsMethod=validator.hideErrors;var originalShowErrorsMethod=validator.showErrors;validator.hideErrors=function(){this.toHide=this.toHide.not("ul");originalHideErrorsMethod.apply(this,arguments);$("#"+options.ValidationSummary.ElementID+":not(:has(li:displayableValidationSummaryMessage))").hide()};validator.showErrors=function(){originalShowErrorsMethod.apply(this,arguments);$("#"+options.ValidationSummary.ElementID+":has(li:displayableValidationSummaryMessage)").show()}}}})(jQuery);function FRdialoguePosition(b){var a=($(window).scrollTop()-$("#FRdialogueAnchor").offset().top);var d=-$("#FRdialogueAnchor").offset().left;if(a<0){a=$(window).scrollTop()}if(d<0){d=0}$("#FRdialogueContainer").height($(window).height()).width($(window).width()).css({top:a+"px",left:d+"px"}).show();var e=($("#FRdialogueContainer").height()/2)-(b.height()/2);if(e<0){e=0}var c=($("#FRdialogueContainer").width()/2)-(b.width()/2);if(c<0){c=0}b.css({top:e+"px",left:c+"px"});$("#FRdialogueUnder").css({top:e+"px",left:c+"px",width:b.width()+"px",height:b.height()+"px",position:"absolute",border:"0"})}function FRbuttonRecogClose(){$("#FRbuttonRecogBg").remove()}function FRdialogueInit(b){$("body").prepend($('<div id="FRdialogueBg" style="display:none;"></div>'));$("#FRdialogueBg").height($(document).height()).show();var a="-"+($("html").scrollTop())+"px";$("html").css({overflow:"hidden",position:"relative",top:a});b.before("<div id='FRdialogueAnchor'></div>").addClass("FRdialogue");b.wrap("<div id='FRdialogueContainer'></div>").css({display:"none",visibility:"visible"});b.before("<iframe id='FRdialogueUnder'></iframe>");FRdialoguePosition(b);$(window).resize(function(){FRdialoguePosition(b)});return false}function FRdialogueClose(a){$(window).unbind("resize",FRdialoguePosition(a));a.fadeOut("normal",function(){$("#FRdialogueAnchor").after(a);$("#FRdialogueBg, #FRdialogueContainer, #FRdialogueAnchor").remove();var b=-1*parseInt($("html").css("top"),10);$("html").css({overflow:"auto",position:"static"});$("html").scrollTop(b)})}function FRdialogueHide(a){$(window).unbind("resize",FRdialoguePosition(a));a.fadeOut("normal",function(){$("#FRdialogueBg, #FRdialogueAnchor").remove();$("#FRdialogueContainer").replaceWith($("#FRdialogueContainer .FRdialogue"));$("html").css("overflow","auto")})}function FRbuttonRecog(a){if(a===undefined){a=2000}if(!$("#FRbuttonRecogBg").length){$("body").prepend($('<div id="FRbuttonRecogBg" style="display:none;"></div>'));$("#FRbuttonRecogBg").height($(document).height()).show().animate({margin:0},a,function(){FRbuttonRecogClose()})}};
