(function($){$.hmi={};$.hmi.ui=$.hmi.prototype={hideWatermark:function(el){if(!el.is(":text")){return;}
var watermarkText=el.attr("watermarktext");if(el.hasClass("hmi-ui-text-watermark")){el.removeClass("hmi-ui-text-watermark");}
if(watermarkText){var value=el.val();if(value===watermarkText){el.val("");}}
return true;},showWatermark:function(el){if(!el.is(":text")){return;}
var watermarkText=el.attr("watermarktext");if(!watermarkText){return;}
var value=el.getVal();if(el.hasClass("hmi-ui-text-watermark")){el.removeClass("hmi-ui-text-watermark");}
if(!value&&watermarkText){var maxLength=el.attr("maxlength");if(maxLength>=-1){el.removeAttr("maxlength");}
el.val(watermarkText);if(maxLength>=0){el.attr("maxlength",maxLength);}
el.addClass("hmi-ui-text-watermark");}
else if(value&&watermarkText){if(value==watermarkText){el.addClass("hmi-ui-text-watermark");}}},progressHtml:function(){return $("#template-progress").html();}}
$.hmi.form=$.hmi.prototype={check:function(e){var $this=$(this);var valid=$.hmi.form.checkForm($this.attr("groupname"),$this.parents("form:first"));if(!valid){e.stopPropagation();}
return valid;},checkForm:function(groupName,context){var query=null;if(groupName){query=$(".hmi-ui[group="+groupName+"]:visible:enabled",context);}
else{query=$(".hmi-ui:visible:enabled",context);}
var valid=true;var lastInvalidItem=null;$(".hmi-ui-error-message").remove();try{for(var i=query.length-1;i>=0;i--){var el=$(query[i]);el.removeClass("hmi-ui-text-highlight");if(!el.validate()){valid=false;lastInvalidItem=el;el.addClass("hmi-ui-text-highlight");if(el.is("[msg]")){$("<div class=\"hmi-ui-error-message\">"+el.attr("msg")+"</div>").insertBefore(el);}}}
if(lastInvalidItem){try{lastInvalidItem.focus();}catch(ex){}}}
finally{return valid;}}}
$.hmi.ui.validation=$.hmi.ui.prototype={checkRules:function(el){var value=el.getVal();if(!value){var optional=el.attr("optional");if(optional){el.setNormal();return true;}
else{el.setInvalid();el.data("reason","A value is required");return false;}}
var pattern=el.attr("pattern");if(pattern){var exp=new RegExp(pattern);if(!exp.test(value)){el.setInvalid();el.data("reason","The value is not in the correct format");return false;}}
var minLength=el.attr("minlength");if(minLength&&!isNaN(minLength)){if(value.length<Number(minLength)){el.setInvalid();el.data("reason","The minimum allowed length is "+minLength);return false;}}
var maxLength=el.attr("maxlength");if(maxLength&&!isNaN(maxLength)&&Number(maxLength)>0){if(value.length>Number(maxLength)){el.setInvalid();el.data("reason","The maximum allowed length is "+maxLength);return false;}}
var min=el.attr("min");if(min&&!isNaN(min)){var compareVal=value.replace(/[^\d\.\-]/g,"");if(isNaN(compareVal)||(Number(compareVal)<Number(min))){el.setInvalid();el.data("reason","The minimum allowed value is "+(el.attr("alt")=="limit"?$.hmi.utils.formatCurrency(min):min));return false;}}
var max=el.attr("max");if(max&&!isNaN(max)){var compareVal=value.replace(/[^\d\.\-]/g,"");if(isNaN(compareVal)||(Number(compareVal)>Number(max))){el.setInvalid();el.data("reason","The maximum allowed value is "+(el.attr("alt")=="limit"?$.hmi.utils.formatCurrency(max):max));return false;}}
el.setValid();el.removeData("reason");return true;}}
$.hmi.popup=$.hmi.prototype={open:function(params){if(typeof params==="string"){params={html:params}}
var defaults={name:"popupForm",error:function(XMLHttpRequest,textStatus,errorThrown){alert(errorThrown);}}
$.extend(defaults,params);$.openPopupLayer(defaults);},close:function(){$.closePopupLayer('popupForm');}}
$.hmi.utils=$.hmi.prototype={formatAgencyNumber:function(value){var agencyNumber="0000000"+value;return agencyNumber.substring(agencyNumber.length-7);},formatCurrency:function(num,includeCents,doNotIncludeSign){num=num.toString().replace(/\$|\,/g,"");if(isNaN(num))num="0";sign=(num==(num=Math.abs(num)));num=Math.floor(num*100+0.50000000001);cents=num%100;num=Math.floor(num/100).toString();if(cents<10)cents="0"+cents;for(var i=0;i<Math.floor((num.length-(1+i))/3);i++)
num=num.substring(0,num.length-(4*i+3))+","+num.substring(num.length-(4*i+3));return(((sign)?"":"-")+(doNotIncludeSign?"":"$")+num+(includeCents?"."+cents:""));},getUrlParam:function(url,key){return hmi.utils.getUrlParams(url)[key];},getUrlParams:function(url){var params={};var paramsRaw=(url.split("?",2)[1]||"").split("#")[0].split("&")||[];for(var i=0;i<paramsRaw.length;i++){var single=paramsRaw[i].split("=");if(single[0])
params[single[0]]=unescape(single[1]);}
return params;},closeWindow:function(){var ie7=(document.all&&!window.opera&&window.XMLHttpRequest)?true:false;if(ie7){window.open('','_parent','');window.close();}else{window.focus();self.opener=this;self.close();}
return true;},protocal:function(){return("https:"==document.location.protocol)?"https://":"http://";}}
$.extend($.fn,{setValidState:function(state){var el=$(this);var icon=el.parents(".vTbl:first").find(".hmi-ui-indicator");if(icon){icon.attr("class","hmi-ui-indicator hmi-ui-indicator-"+state);icon.mouseover(function(e){var reason=$(el).data("reason");if(reason){icon.attr("title",reason);}
else{icon.attr("title","The value is valid");}});}
return this;},setInvalid:function(){$(this).setValidState("invalid");return this;},setValid:function(){var el=$(this);el.setValidState("valid");el.removeClass("hmi-ui-text-highlight");return this;},setWait:function(){$(this).setValidState("wait");return this;},setNormal:function(){$(this).setValidState("");$(this).removeClass("hmi-ui-text-highlight");return this;},makeOptional:function(){var el=$(this);if(!el.is("[watermarktext]")){el.attr("watermarktext","(optional)");}
el.attr("optional",true).validate();return this;},makeRequired:function(){var el=$(this);var watermarktext=el.attr("watermarktext");if(el.val()==watermarktext){el.val("");}
if(watermarktext=="(optional)"){el.removeAttr("watermarktext");}
el.removeAttr("optional").validate();return this;},validating:function(fn){if(fn){if($(this)[0]){$(this)[0].validating=fn;}
return this;}else{return $(this)[0].validating?$(this)[0].validating():null;}},validated:function(fn){if(fn){if($(this)[0]){$(this)[0].validated=fn;}
return this;}else{return $(this)[0].validated?$(this)[0].validated():null;}},validate:function(){var el=$(this);var result=el.validating();if(result!=undefined){if(result===false){el.setInvalid();return false;}
else if(result===true){el.setValid();return true;}}
var ruleResult=true;try{ruleResult=$.hmi.ui.validation.checkRules(el);}
finally{var result=el.validated();if(result!=undefined){if(result===false){el.setInvalid();return false;}
else if(result===true){el.setValid();return true;}}}
return ruleResult;},getVal:function(){var el=$(this);var watermarktext=el.attr("watermarktext");var value=$.trim(el.val());if(watermarktext){if(value==watermarktext){return"";}}
return value;},intVal:function(){var value=$(this).getVal().replace(/[^\d\-]/g,"");if(isNaN(value)){return 0;}
return Number(value);},blockElement:function(message){$(this).block({overlayCSS:{backgroundColor:"#CCC"},css:{padding:'1em',backgroundColor:'#fff',border:"none",'-webkit-border-radius':'10px','-moz-border-radius':'10px'},message:"<h2 style=\"border: none\">"+message+"</h2>"});}});$("[type=text],[type=password],textarea").livequery("focus",function(e){$(this).addClass("hmi-ui-text-focus");$.hmi.ui.hideWatermark($(this));}).livequery("blur",function(e){$(this).removeClass("hmi-ui-text-focus");$.hmi.ui.showWatermark($(this));});$(".ui-state-default").livequery("mouseover",function(e){$(this).addClass("ui-state-hover");}).livequery("mouseout",function(e){$(this).removeClass("ui-state-hover");});$(".button-popup-cancel").livequery("click",function(){$.hmi.popup.close();});$(".hmi-ui").livequery(function(){var el=$(this);$.hmi.ui.showWatermark(el);el.validate();});$(".button-trigger-validate").livequery("click",$.hmi.form.check);$(".hmi-ui").livequery("change update keyup",function(){$(this).validate()});$("form").submit(function(){$(this).find(":input").each(function(){var $this=$(this);if($this.is("[watermarktext]")&&($this.val()==$this.attr("watermarktext"))){$this.val("");}});});$(".hmi-table-striped").find("tr:odd").addClass("hmi-table-row-light");$("a.hmi-nav-link-top").each(function(){var $menu=$(this);var menuContent=$menu.next().html();if(menuContent){$menu.menu({content:menuContent,backLink:false,width:300,maxHeight:320,flyOut:false});}}).hover(function(e){$(this).addClass("hmi-nav-state-hover")},function(e){$(this).removeClass("hmi-nav-state-hover")});$("#Trigger-Login").click(function(e){if(!e.isPropagationStopped()){var template=$("#template-progress");template.find(".template-message").html("Logging in...");$.blockUI({message:template});}});})(jQuery)
