jQuery.autocomplete=function(input,options){var me=this;var $input=jQuery(input).attr("autocomplete","off");if(options.inputClass)$input.addClass(options.inputClass);var results=document.createElement("div");var $results=jQuery(results);$results.hide().addClass(options.resultsClass).css("position","absolute");if(options.width>0)$results.css("width",options.width);jQuery("body").append(results);input.autocompleter=me;var timeout=null;var prev="";var active=-1;var cache={};var keyb=false;var hasFocus=false;var lastKeyPressCode=null;function flushCache(){cache={};cache.data={};cache.length=0};flushCache();if(options.data!=null){var sFirstChar="",stMatchSets={},row=[];if(typeof options.url!="string")options.cacheLength=1;for(var i=0;i<options.data.length;i++){row=((typeof options.data[i]=="string")?[options.data[i]]:options.data[i]);if(row[0].length>0){sFirstChar=row[0].substring(0,1).toLowerCase();if(!stMatchSets[sFirstChar])stMatchSets[sFirstChar]=[];stMatchSets[sFirstChar].push(row)}};for(var k in stMatchSets){options.cacheLength++;addToCache(k,stMatchSets[k])}};$input.keydown(function(e){lastKeyPressCode=e.keyCode;switch(e.keyCode){case 38:e.preventDefault();moveSelect(-1);break;case 40:e.preventDefault();moveSelect(1);break;case 9:case 13:if(selectCurrent()){$input.get(0).blur();e.preventDefault()}break;case 16:case 17:case 18:e.preventDefault();break;default:active=-1;if(timeout)clearTimeout(timeout);timeout=setTimeout(function(){onChange()},options.delay);break}}).focus(function(){hasFocus=true;if(this.value.length>=options.minChars)requestData(this.value)}).blur(function(){hasFocus=false;hideResults()});hideResultsNow();function onChange(){if((lastKeyPressCode>8&&lastKeyPressCode<32))return $results.hide();var v=$input.val();if(options.rules&&!(lastKeyPressCode==46||lastKeyPressCode==8)){if(v!=options.rules(v))$input.val(options.rules(v))}if(v==prev)return;prev=v;if(v.length>=options.minChars){$input.addClass(options.loadingClass);requestData(v)}else{$input.removeClass(options.loadingClass);$results.hide()}};function moveSelect(step){var lis=jQuery("li",results);if(!lis)return;active+=step;if(active<0){active=lis.size()-1}else if(active>=lis.size()){active=0}lis.removeClass("ac_over");jQuery(lis[active]).addClass("ac_over")};function selectCurrent(){var li=jQuery("li.ac_over",results)[0];if(!li){var $li=jQuery("li",results);if(options.selectOnly){if($li.length==1)li=$li[0]}else if(options.selectFirst){li=$li[0]}}if(li){selectItem(li);return true}else{return false}};function selectItem(li){if(!li){li=document.createElement("li");li.extra=[];li.selectValue=""}var v=jQuery.trim(li.selectValue?li.selectValue:li.innerHTML);input.lastSelected=v;prev=v;$results.html("");$input.val(v);hideResultsNow();if(options.onItemSelect)setTimeout(function(){options.onItemSelect(li)},1)};function createSelection(start,end){var field=$input.get(0);if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select()}else if(field.setSelectionRange){field.setSelectionRange(start,end)}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end}}field.focus()};function autoFill(sValue){if(lastKeyPressCode!=8){$input.val($input.val()+sValue.substring(prev.length));createSelection(prev.length,sValue.length)}};function showResults(){var pos=jQuery(input).offset();var iWidth=(options.width>0)?options.width:$input.width();$results.css({width:parseInt(iWidth)+"px",top:(pos.top+input.offsetHeight)+"px",left:pos.left+"px"}).show()};function hideResults(){if(timeout)clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200)};function hideResultsNow(){if(timeout)clearTimeout(timeout);$input.removeClass(options.loadingClass);if($results.is(":visible")){$results.hide()}if(options.mustMatch){var v=$input.val();if(v!=input.lastSelected){selectItem(null)}}};function receiveData(q,data){if(data){$input.removeClass(options.loadingClass);results.innerHTML="";active=-1;if(!hasFocus||data.length==0)return hideResultsNow();if(jQuery.browser.msie){$results.append(document.createElement('iframe'))}results.appendChild(dataToDom(data));if(options.autoFill&&($input.val().toLowerCase()==q.toLowerCase()))autoFill(data[0][0]);showResults()}else{hideResultsNow()}};function parseData(data){if(!data)return null;var parsed=[];var rows=data.split(options.lineSeparator);for(var i=0;i<rows.length;i++){var row=jQuery.trim(rows[i]);if(row){parsed[parsed.length]=row.split(options.cellSeparator)}}return parsed};function dataToDom(data){var ul=document.createElement("ul");var num=data.length;if((options.maxItemsToShow>0)&&(options.maxItemsToShow<num))num=options.maxItemsToShow;for(var i=0;i<num;i++){var row=data[i];if(!row)continue;var li=document.createElement("li");if(options.formatItem){li.innerHTML=options.formatItem(row,i,num);li.selectValue=row[0]}else{li.innerHTML=row[0];li.selectValue=row[0]}var extra=null;if(row.length>1){extra=[];for(var j=1;j<row.length;j++){extra[extra.length]=row[j]}}li.extra=extra;ul.appendChild(li);jQuery(li).hover(function(){jQuery("li",ul).removeClass("ac_over");jQuery(this).addClass("ac_over");active=jQuery("li",ul).indexOf(jQuery(this).get(0))},function(){jQuery(this).removeClass("ac_over")}).click(function(e){e.preventDefault();e.stopPropagation();selectItem(this)})}return ul};function requestData(q){if(!options.matchCase)q=q.toLowerCase();var data=options.cacheLength?loadFromCache(q):null;if(data){receiveData(q,data)}else if((typeof options.url=="string")&&(options.url.length>0)){if(options.json){jQuery.getJSON(makeUrl(q),function(data){addToCache(q,data);receiveData(q,data)})}else{jQuery.get(makeUrl(q),function(data){data=parseData(data);addToCache(q,data);receiveData(q,data)})}}else{$input.removeClass(options.loadingClass)}};function makeUrl(q){var url=options.url+"?"+input.name+"="+encodeURI(q);for(var i in options.extraParams){url+="&"+i+"="+encodeURI(options.extraParams[i])}return url};function loadFromCache(q){if(!q)return null;if(cache.data[q])return cache.data[q];if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var qs=q.substr(0,i);var c=cache.data[qs];if(c){var csub=[];for(var j=0;j<c.length;j++){var x=c[j];var x0=x[0];if(matchSubset(x0,q)){csub[csub.length]=x}}return csub}}}return null};function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(i==-1)return false;return i==0||options.matchContains};this.flushCache=function(){flushCache()};this.setExtraParams=function(p){options.extraParams=p};this.findValue=function(){var q=$input.val();if(!options.matchCase)q=q.toLowerCase();var data=options.cacheLength?loadFromCache(q):null;if(data){findValueCallback(q,data)}else if((typeof options.url=="string")&&(options.url.length>0)){jQuery.get(makeUrl(q),function(data){data=parseData(data);addToCache(q,data);findValueCallback(q,data)})}else{findValueCallback(q,null)}};function findValueCallback(q,data){if(data)$input.removeClass(options.loadingClass);var num=(data)?data.length:0;var li=null;for(var i=0;i<num;i++){var row=data[i];if(row[0].toLowerCase()==q.toLowerCase()){li=document.createElement("li");if(options.formatItem){li.innerHTML=options.formatItem(row,i,num);li.selectValue=row[0]}else{li.innerHTML=row[0];li.selectValue=row[0]}var extra=null;if(row.length>1){extra=[];for(var j=1;j<row.length;j++){extra[extra.length]=row[j]}}li.extra=extra}}if(options.onFindValue)setTimeout(function(){options.onFindValue(li)},1)};function addToCache(q,data){if(!data||!q||!options.cacheLength)return;if(!cache.length||cache.length>options.cacheLength){flushCache();cache.length++}else if(!cache[q]){cache.length++};cache.data[q]=data}};jQuery.extend(jQuery.autocomplete,{defaults:{inputClass:"ac_input",resultsClass:"ac_results",lineSeparator:"\n",cellSeparator:"|",json:true,minChars:1,delay:200,matchCase:0,matchSubset:1,matchContains:0,cacheLength:1,mustMatch:0,extraParams:{},loadingClass:"ac_loading",selectFirst:false,selectOnly:false,maxItemsToShow:-1,autoFill:false,width:0}});jQuery.fn.autocomplete=function(url,options,data){options=jQuery.extend({},jQuery.autocomplete.defaults,options);options.url=url;options.data=((typeof data=="object")&&(data.constructor==Array))?data:null;this.each(function(){var input=this;new jQuery.autocomplete(input,options)});return this};jQuery.fn.autocompleteArray=function(data,options){return this.autocomplete(null,options,data)};jQuery.fn.indexOf=function(e){for(var i=0;i<this.length;i++){if(this[i]==e)return i}return-1};(function($){$.fn.marquee=function(settings){settings=$.extend({direction:"top",distance:0,time:100,speed:4,delay:0},settings||{});settings.speed+=(settings.distance%settings.speed);var timer=[];var pause=[];return this.each(function(){var container=this;container.style.overflow="hidden";container.style.position="relative";container.style.height=container.offsetHeight+"px";container.innerHTML+=container.innerHTML;$(this).mouseover(function(){pause[container.id]=true}).mouseout(function(){pause[container.id]=false});timer[container.id]=null;pause[container.id]=false;setTimeout(function(){start(container)},settings.delay)});function start(container){timer[container.id]=setInterval(function(){scrolling(container)},settings.time)}function scrolling(container){if(settings.distance&&settings.delay){if((container.scrollTop+settings.speed)%settings.distance==0){clearInterval(timer[container.id]);setTimeout(function(){start(container)},settings.delay)}if(container.scrollTop%settings.distance!=0)pause[container.id]=false}if(!pause[container.id]){container.scrollTop+=settings.speed}if(container.scrollTop>=container.scrollHeight/2)container.scrollTop=0}}})(jQuery);(function($){$.fn.menu=function(setting){var active=null;var hoverLink=null;var timer=null;var timeout=500;if(setting)active=setting;var container=this[0];var tags=$("ul > li",container);var links=$("ul > li > a[name]",container);var menus=links.next();tags.hover(function(){hoverLink=$(this).children("a")[0].name;show(hoverLink,true)},function(){timer=setTimeout(function(){hide()},timeout)});hide();function show(objName,bool){clear();if(objName==null){links.removeClass("on");menus.filter(":visible").hide();return};links.each(function(){if(this.name==objName){$(this).addClass("on");if(bool)$(this).next().show();else $(this).next().hide()}else{$(this).removeClass("on");$(this).next().hide()}})};function hide(){show(active,false)};function clear(){if(timer)clearTimeout(timer)}}})(jQuery);(function($){$.fn.navigation=function(settings){var active=["",""];var temp=null;var timer=null;var timeout=500;if(!!settings)active=settings;temp=active;var container=this[0];var tags=$("div.mainnav a[name]",container);var subs=$("div.subnav a",container);tags.mouseover(function(){show([this.name])}).mouseout(function(){timer=setTimeout(function(){hide()},timeout)});subs.mouseover(function(e){$("div.subnav a[name].on",container).removeClass("on")});var containers=$("div.subnav ul[id^=nav-]",container);containers.mouseover(function(){clear()}).mouseout(function(){timer=setTimeout(function(){hide()},timeout)});show(active);function show(val){clear();tags.each(function(){if(this.name==val[0])$(this).addClass("on");else $(this).removeClass("on")});containers.each(function(){if(this.id=="nav-"+val[0])$(this).show();else $(this).hide()});$("div.subnav a[name].on",container).removeClass("on");if(val[1]){$("div.subnav ul[id=nav-"+val[0]+"] a[name="+val[1]+"]",container).addClass("on")}temp=val};function hide(){show(active)}function clear(){if(timer)clearTimeout(timer)}}})(jQuery);(function($){$.modal=function(data,options){return $.modal.impl.init(data,options)};$.modal.close=function(){$.modal.impl.close(true)};$.fn.modal=function(options){return $.modal.impl.init(this,options)};$.modal.defaults={overlay:50,overlayId:'modalOverlay',overlayCss:{},containerId:'modalContainer',containerCss:{},close:true,closeTitle:'Close',closeClass:'modalClose',persist:true,onOpen:null,onShow:null,onClose:null};$.modal.impl={opts:null,dialog:{},init:function(data,options){if(this.dialog.data){return false}this.opts=$.extend({},$.modal.defaults,options);if(typeof data=='object'){data=(data instanceof jQuery)?data:$(data);if(data.parent().parent().size()>0){this.dialog.parentNode=data.parent();if(!this.opts.persist){this.dialog.original=data.clone(true)}}}else if(typeof data=='string'||typeof data=='number'){data=$('<div>').html(data)}else{if(console){console.log('SimpleModal Error: Unsupported data type: '+typeof data)}return false}this.dialog.data=data.addClass('modalData');data=null;this.create();this.open();if($.isFunction(this.opts.onShow)){this.opts.onShow.apply(this,[this.dialog])}return this},create:function(){this.dialog.overlay=$('<div>').attr('id',this.opts.overlayId).addClass('modalOverlay').css($.extend(this.opts.overlayCss,{opacity:this.opts.overlay/100,height:'100%',width:'100%',position:'fixed',left:0,top:0,zIndex:3000})).hide().appendTo('body');this.dialog.container=$('<div>').attr('id',this.opts.containerId).addClass('modalContainer').css($.extend(this.opts.containerCss,{position:'absolute',zIndex:3100})).append(this.opts.close?'<a class="modalCloseImg '+this.opts.closeClass+'" title="'+this.opts.closeTitle+'"></a>':'').hide().appendTo('body');if($.browser.msie&&($.browser.version<7)){this.fixIE()}this.dialog.container.append(this.dialog.data.hide())},bindEvents:function(){var modal=this;$('.'+this.opts.closeClass).click(function(e){e.preventDefault();modal.close()})},unbindEvents:function(){$('.'+this.opts.closeClass).unbind('click')},fixIE:function(){var wHeight=$(document.body).height()+'px';var wWidth=$(document.body).width()+'px';this.dialog.overlay.css({position:'absolute',height:wHeight,width:wWidth});this.dialog.container.css({position:'absolute'});this.dialog.iframe=$('<iframe src="javascript:false;">').css($.extend(this.opts.iframeCss,{opacity:0,position:'absolute',height:wHeight,width:wWidth,zIndex:1000,width:'100%',top:0,left:0})).hide().appendTo('body')},open:function(){if(this.dialog.iframe){this.dialog.iframe.show()}if($.isFunction(this.opts.onOpen)){this.opts.onOpen.apply(this,[this.dialog])}else{this.dialog.overlay.show();this.dialog.container.show();this.dialog.data.show()}this.bindEvents()},close:function(external){if(!this.dialog.data){return false}if($.isFunction(this.opts.onClose)&&!external){this.opts.onClose.apply(this,[this.dialog])}else{if(this.dialog.parentNode){if(this.opts.persist){this.dialog.data.hide().appendTo(this.dialog.parentNode)}else{this.dialog.data.remove();this.dialog.original.appendTo(this.dialog.parentNode)}}else{this.dialog.data.remove()}this.dialog.container.remove();this.dialog.overlay.remove();if(this.dialog.iframe){this.dialog.iframe.remove()}this.dialog={}}this.unbindEvents()}}})(jQuery);(function($){$.extend({tabs:{remoteCount:0}});$.fn.tabs=function(initial,settings){if(typeof initial=='object')settings=initial;settings=$.extend({initial:(initial&&typeof initial=='number'&&initial>0)?--initial:0,disabled:null,remote:false,mouseover:false,hash:false,spinner:'Loading&#8230;',hashPrefix:'remote-tab-',onClick:null,onHide:null,onShow:null,navClass:'nav',selectedClass:'selected',disabledClass:'disabled',containerClass:'container',loadingClass:'loading',tabStruct:'div'},settings||{});$.browser.msie6=$.browser.msie&&($.browser.version&&$.browser.version<7||/MSIE 6.0/.test(navigator.userAgent));function unFocus(){scrollTo(0,0)}return this.each(function(){var container=this;var nav=$('ul.'+settings.navClass,container);nav=nav.size()&&nav||$('ul:eq(0)',container);var tabs=$('a',nav);if(settings.remote){tabs.each(function(){var id='';if(this.hash){var id=this.hash.replace(/^#+/,'');this.href=this.href.replace(/#.*$/,'')}if(!id){id=settings.hashPrefix+(++$.tabs.remoteCount)}var hash='#'+id,url=this.href;this.href=(settings.hash?'#':'')+hash;$('<div id="'+id+'" class="'+settings.containerClass+'"></div>').appendTo(container);$(this).bind('loadRemoteTab',function(e,callback){var $$=$(this).addClass(settings.loadingClass);setTimeout(function(){$(hash).load(url,function(){$(this).attr("_loaded",true);$$.removeClass(settings.loadingClass);callback&&callback()})},0)})})}var containers=$('div.'+settings.containerClass,container);containers=containers.size()&&containers||$('>'+settings.tabStruct,container);nav.is('.'+settings.navClass)||nav.addClass(settings.navClass);containers.each(function(){var $$=$(this);$$.is('.'+settings.containerClass)||$$.addClass(settings.containerClass)});var hasSelectedClass=$('li',nav).index($('li.'+settings.selectedClass,nav)[0]);if(hasSelectedClass>=0){settings.initial=hasSelectedClass}if(location.hash){tabs.each(function(i){if(this.hash.replace(/^#+/,'')==location.hash.replace(/^#+/,'')){settings.initial=i;return false}})}if($.browser.msie){unFocus()}containers.filter(':eq('+settings.initial+')').show().end().not(':eq('+settings.initial+')').hide();$('li',nav).removeClass(settings.selectedClass).eq(settings.initial).addClass(settings.selectedClass);tabs.eq(settings.initial).trigger('loadRemoteTab').end();var onClick=settings.onClick,onHide=settings.onHide,onShow=settings.onShow;if(typeof onShow=='function'){onShow(tabs.eq(settings.initial)[0],containers.filter(':eq('+settings.initial+')')[0])}tabs.bind('triggerTab',function(){var li=$(this).parents('li:eq(0)');if(container.locked||li.is('.'+settings.selectedClass)||li.is('.'+settings.disabledClass)){return false}var hash='#'+this.hash.replace(/^#+/,'');if($.browser.msie){$(this).trigger('click')}else if($.browser.safari){var tempForm=$('<form action="'+hash+'"><div><input type="submit" value="h" /></div></form>').get(0);tempForm.submit();$(this).trigger('click')}else{$(this).trigger('click')}});tabs.bind('disableTab',function(){var li=$(this).parents('li:eq(0)');if($.browser.safari){li.animate({opacity:0},1,function(){li.css({opacity:''})})}li.addClass(settings.disabledClass)});if(settings.disabled&&settings.disabled.length){for(var i=0,k=settings.disabled.length;i<k;i++){tabs.eq(--settings.disabled[i]).trigger('disableTab').end()}};tabs.bind('enableTab',function(){var li=$(this).parents('li:eq(0)');li.removeClass(settings.disabledClass);if($.browser.safari){li.animate({opacity:1},1,function(){li.css({opacity:''})})}});if(settings.mouseover){tabs.bind('mouseover',function(){$(this).trigger('click')})}tabs.bind('click',function(e){var hash='#'+this.hash.replace(/^#+/,'');var clicked=this,li=$(this).parents('li:eq(0)'),toShow=$(hash),toHide=containers.filter(':visible');if(container['locked']||li.is('.'+settings.selectedClass)||li.is('.'+settings.disabledClass)||typeof onClick=='function'&&onClick(this,toShow[0],toHide[0])===false){this.blur();return false}container['locked']=true;if(toShow.size()){function switchTab(){li.addClass(settings.selectedClass).siblings().removeClass(settings.selectedClass);toHide.hide();if(typeof onHide=='function'){onHide(clicked,toShow[0],toHide[0])}toShow.show();if(typeof onShow=='function'){onShow(clicked,toShow[0],toHide[0])}container['locked']=null}if(!settings.remote||toShow.attr("_loaded")){switchTab()}else{$(clicked).trigger('loadRemoteTab',[switchTab])}}else{alert('There is no such container.')}this.blur();if(!settings.hash)return false})})};var tabEvents=['triggerTab','disableTab','enableTab'];for(var i=0;i<tabEvents.length;i++){$.fn[tabEvents[i]]=(function(tabEvent){return function(tab){return this.each(function(){var nav=$('ul.tabs',this);nav=nav.size()&&nav||$('ul:eq(0)',this);var a;if(!tab||typeof tab=='number'){a=$('li a',nav).eq((tab&&tab>0&&tab-1||0))}else if(typeof tab=='string'){a=$('li a[@href$="#'+tab+'"]',nav)}a.trigger(tabEvent)})}})(tabEvents[i])}})(jQuery);jQuery.extend(jQuery.fn,{validate:function(options){var validator=new jQuery.validator(options,this[0]);if(validator.settings.onsubmit){this.find("input.cancel:submit").click(function(){validator.cancelSubmit=true});this.submit(function(event){if(validator.settings.debug)event.preventDefault();function handle(){if(validator.settings.submitHandler){validator.settings.submitHandler.call(validator,validator.currentForm);return false}return true}if(validator.cancelSubmit){validator.cancelSubmit=false;return handle()}if(validator.form()){return handle()}else{validator.focusInvalid();return false}})}return validator},push:function(t){return this.setArray(jQuery.merge(this.get(),t))}});jQuery.extend(jQuery.expr[":"],{blank:"!jQuery.trim(a.value)",filled:"!!jQuery.trim(a.value)",unchecked:"!a.checked"});String.format=function(source,params){if(arguments.length==1)return function(){var args=jQuery.makeArray(arguments);args.unshift(source);return String.format.apply(this,args)};if(arguments.length>2&&params.constructor!=Array){params=jQuery.makeArray(arguments).slice(1)}if(params.constructor!=Array){params=[params]}jQuery.each(params,function(i,n){source=source.replace(new RegExp("\\{"+i+"\\}","g"),n)});return source};jQuery.validator=function(options,form){this.settings=jQuery.extend({},jQuery.validator.defaults,options);this.currentForm=form;this.labelContainer=this.settings.errorLabelContainer;this.errorContext=this.labelContainer.length&&this.labelContainer||jQuery(form);this.containers=this.settings.errorContainer.add(this.settings.errorLabelContainer);this.submitted={};this.invalid={};this.reset();this.refresh()};jQuery.extend(jQuery.validator,{defaults:{messages:{},errorClass:"error",errorElement:"label",focusInvalid:true,errorContainer:jQuery([]),errorLabelContainer:jQuery([]),onsubmit:true,ignore:[],onblur:function(element){if(!this.checkable(element)&&(element.name in this.submitted||!this.required(element))){this.element(element)}},onkeyup:function(element){if(element.name in this.submitted||element==this.lastElement){this.element(element)}},onclick:function(element){if(element.name in this.submitted)this.element(element)}},setDefaults:function(settings){jQuery.extend(jQuery.validator.defaults,settings)},messages:{required:"This field is required.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",dateDE:"Bitte geben Sie ein gltiges Datum ein.",number:"Please enter a valid number.",numberDE:"Bitte geben Sie eine Nummer ein.",digits:"Please enter only digits",creditcard:"Please enter a valid credit card.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxLength:String.format("Please enter a value no longer than {0} characters."),minLength:String.format("Please enter a value of at least {0} characters."),rangeLength:String.format("Please enter a value between {0} and {1} characters long."),rangeValue:String.format("Please enter a value between {0} and {1}."),maxValue:String.format("Please enter a value less than or equal to {0}."),minValue:String.format("Please enter a value greater than or equal to {0}.")},prototype:{form:function(){this.prepareForm();for(var i=0;this.elements[i];i++){this.check(this.elements[i])}jQuery.extend(this.submitted,this.errorMap);this.invalid=jQuery.extend({},this.errorMap);this.settings.invalidHandler&&this.settings.invalidHandler.call(this);this.showErrors();return this.valid()},element:function(element){element=this.clean(element);this.lastElement=element;this.prepareElement(element);var result=this.check(element);if(result){delete this.invalid[element.name]}else{this.invalid[element.name]=true}this.showErrors();return result},showErrors:function(errors){if(errors){jQuery.extend(this.errorMap,errors);for(name in errors){this.errorList.push({message:errors[name],element:jQuery("[@name='"+name+"']:first",this.currentForm)[0]})}this.successList=jQuery.grep(this.successList,function(element){return!(element.name in errors)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){if(jQuery.fn.resetForm)jQuery(this.currentForm).resetForm();this.prepareForm();this.hideErrors();this.elements.removeClass(this.settings.errorClass)},numberOfInvalids:function(){var count=0;for(i in this.invalid)count++;return count},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return this.size()==0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid){try{jQuery(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus()}catch(e){}}},findLastActive:function(){var lastActive=this.lastActive;return lastActive&&jQuery.grep(this.errorList,function(n){return n.element.name==lastActive.name}).length==1&&lastActive},refresh:function(){var validator=this;validator.rulesCache={};function focused(){validator.lastActive=this;if(validator.settings.focusCleanup&&!validator.blockFocusCleanup){jQuery(this).removeClass(validator.settings.errorClass);validator.errorsFor(this).hide()}}this.elements=jQuery(this.currentForm).find("input, select, textarea").not(":submit, :reset").not("[@disabled]").not(this.settings.ignore).filter(function(){!this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in validator.rulesCache||!validator.rules(this).length)return false;validator.rulesCache[this.name]=validator.rules(this);return true});this.elements.focus(focused);validator.settings.onblur&&validator.elements.blur(function(){validator.settings.onblur.call(validator,this)});validator.settings.onkeyup&&validator.elements.keyup(function(){validator.settings.onkeyup.call(validator,this)});if(validator.settings.onclick){var checkables=jQuery([]);validator.elements.each(function(){if(validator.checkable(this))checkables.push(validator.checkableGroup(this))});checkables.click(function(){validator.settings.onclick.call(validator,this)})}},clean:function(selector){return jQuery(selector)[0]},errors:function(){return jQuery(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(element){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=jQuery([]);this.toHide=jQuery([])},prepareForm:function(){this.reset();this.toHide=this.errors().push(this.containers)},prepareElement:function(element){this.reset();this.toHide=this.errorsFor(this.clean(element))},check:function(element){element=this.clean(element);jQuery(element).removeClass(this.settings.errorClass);var rules=this.rulesCache[element.name];for(var i=0;rules[i];i++){var rule=rules[i];try{var result=jQuery.validator.methods[rule.method].call(this,jQuery.trim(element.value),element,rule.parameters);if(result===-1)break;if(!result){jQuery(element).addClass(this.settings.errorClass);this.formatAndAdd(rule,element);return false}}catch(e){this.settings.debug&&window.console&&console.error("exception occured when checking element "+element.id+", check the '"+rule.method+"' method");throw e}}if(rules.length&&this.settings.success)this.successList.push(element);return true},configuredMessage:function(id,method){var m=this.settings.messages[id];return m&&(m.constructor==String?m:m[method])},defaultMessage:function(element,method){return this.configuredMessage(element.name,method)||element.title||jQuery.validator.messages[method]||"<strong>Warning: No message defined for "+element.name+"</strong>"},formatAndAdd:function(rule,element){var message=this.defaultMessage(element,rule.method);if(typeof message=="function")message=message.call(this,rule.parameters,element);this.errorList.push({message:message,element:element});this.errorMap[element.name]=message;this.submitted[element.name]=message},addWrapper:function(toToggle){if(this.settings.wrapper)toToggle.push(toToggle.parents(this.settings.wrapper));return toToggle},defaultShowErrors:function(){for(var i=0;this.errorList[i];i++){var error=this.errorList[i];this.showLabel(error.element,error.message)}if(this.errorList.length){this.toShow.push(this.containers)}for(var i=0;this.successList[i];i++){this.showLabel(this.successList[i])}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},showLabel:function(element,message){var label=this.errorsFor(element);if(label.length){label.removeClass().addClass(this.settings.errorClass);if(this.settings.overrideErrors||label.attr("generated")){label.html(message)}}else{label=jQuery("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(element),generated:true}).addClass(this.settings.errorClass).html(message||"");if(this.settings.wrapper){label=label.hide().show().wrap("<"+this.settings.wrapper+">").parent()}if(!this.labelContainer.append(label).length)this.settings.errorPlacement?this.settings.errorPlacement(label,jQuery(element)):label.insertAfter(element)}if(!message&&this.settings.success){label.text("");typeof this.settings.success=="string"?label.addClass(this.settings.success):this.settings.success(label)}this.toShow.push(label)},errorsFor:function(element){return this.errors().filter("[@for='"+this.idOrName(element)+"']")},idOrName:function(element){return this.checkable(element)?element.name:element.id||element.name},rules:function(element){var data=this.data(element);if(!data)return[];var rules=[];if(typeof data=="string"){var transformed={};transformed[data]=true;data=transformed}jQuery.each(data,function(key,value){rules[rules.length]={method:key,parameters:value}});return rules},data:function(element){return this.settings.rules?this.settings.rules[element.name]:this.settings.meta?jQuery(element).data()[this.settings.meta]:jQuery(element).data()},checkable:function(element){return/radio|checkbox/i.test(element.type)},checkableGroup:function(element){return jQuery(element.form||document).find('[@name="'+element.name+'"]')},getLength:function(value,element){switch(element.nodeName.toLowerCase()){case'select':return jQuery("option:selected",element).length;case'input':if(this.checkable(element))return this.checkableGroup(element).filter(':checked').length}return value.length},depend:function(param,element){return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true},dependTypes:{"boolean":function(param,element){return param},"string":function(param,element){return!!jQuery(param,element.form).length},"function":function(param,element){return param(element)}},required:function(element){return!jQuery.validator.methods.required.call(this,jQuery.trim(element.value),element)}},methods:{required:function(value,element,param){if(!this.depend(param,element))return-1;switch(element.nodeName.toLowerCase()){case'select':var options=jQuery("option:selected",element);return options.length>0&&(element.type=="select-multiple"||(jQuery.browser.msie&&!(options[0].attributes['value'].specified)?options[0].text:options[0].value).length>0);case'input':if(this.checkable(element))return this.getLength(value,element)>0;default:return value.length>0}},minLength:function(value,element,param){return this.required(element)||this.getLength(value,element)>=param},maxLength:function(value,element,param){return this.required(element)||this.getLength(value,element)<=param},rangeLength:function(value,element,param){var length=this.getLength(value,element);return this.required(element)||(length>=param[0]&&length<=param[1])},minValue:function(value,element,param){return this.required(element)||value>=param},maxValue:function(value,element,param){return this.required(element)||value<=param},rangeValue:function(value,element,param){return this.required(element)||(value>=param[0]&&value<=param[1])},email:function(value,element){return this.required(element)||/^[\w-+\.]+@([\w-]+\.)+[\w-]{2,}$/i.test(value)},url:function(value,element){return this.required(element)||/^(https?|ftp):\/\/[A-Z0-9](\.?[A-Z0-9][A-Z0-9_\-]*)*(\/([A-Z0-9][A-Z0-9_\-\.]*)?)*(\?([A-Z0-9][A-Z0-9_\-\.%\+=&]*)?)?$/i.test(value)},date:function(value,element){return this.required(element)||!/Invalid|NaN/.test(new Date(value))},dateISO:function(value,element){return this.required(element)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value)},dateDE:function(value,element){return this.required(element)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value)},number:function(value,element){return this.required(element)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value)},numberDE:function(value,element){return this.required(element)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value)},digits:function(value,element){return this.required(element)||/^\d+$/.test(value)},creditcard:function(value,element){if(this.required(element))return true;var nCheck=0,nDigit=0,bEven=false;value=value.replace(/\D/g,"");for(n=value.length-1;n>=0;n--){var cDigit=value.charAt(n);var nDigit=parseInt(cDigit,10);if(bEven){if((nDigit*=2)>9)nDigit-=9}nCheck+=nDigit;bEven=!bEven}return(nCheck%10)==0},accept:function(value,element,param){param=typeof param=="string"?param:"png|jpe?g|gif";return this.required(element)||value.match(new RegExp(".("+param+")$"))},equalTo:function(value,element,param){return value==jQuery(param).val()}},addMethod:function(name,method,message){jQuery.validator.methods[name]=method;jQuery.validator.messages[name]=message}});(function($){$.fn.warning=function(str,timeout){if(str==undefined||str=="")return this.html("").removeClass("warning").hide();return this.each(function(){var o=$(this);if(o.attr("timeout")){clearTimeout(o.attr("timeout"));o.removeAttr("timeout")}o.html(str).addClass("warning").show();if(timeout){o.attr("timeout",setTimeout(function(){o.warning()},timeout))}})};$.fn.keyhint=function(ignore,css){if(!css)css='gray';var input=$(this);input.focus(function(){input.filter('.'+css).removeClass(css).val('')}).blur(function(){if(this.value=='')input.addClass(css).val(this.title)}).each(function(){if(this.value==''||this.value==this.title)input.addClass(css).val(this.title)});input.parents('form:eq(0)').submit(function(){if(ignore){input.filter('.'+css).removeClass(css).val('')}else if(input.hasClass(css)||input.val()==''){alert(input.attr('title'));input.focus();return false}});return this};$.fn.scrollToY=function(){window.scrollTo(0,this.offset().top);return this};$.fn.disabled=function(){return this.find(":input").attr("disabled",true).end()};$.fn.enabled=function(){return this.find(":input").not("[_disabled]").attr("disabled",false).end()};$.func={ismobile:function(str){var reg=/^1[35]{1}[0-9]{9}$|^852[69]{1}[0-9]{7}$|^88609[0-9]{8}$|^853[6]{1}[0-9]{7}$/;return reg.test(str)},isemail:function(str){var reg=/^[\w-+\.]+@([\w-]+\.)+[\w-]{2,}$/i;return reg.test(str)},iscnchar:function(str){var reg=/^[\u4E00-\u9FA5]+$/;return reg.test(str)},isbyte:function(str){var reg=/^[\x00-\xff]+$/;return reg.test(str)},isdomainstr:function(str,type){var reg=/^[0-9a-z\u4E00-\u9FA5]+(-[0-9a-z\u4E00-\u9FA5]+)*$/;if(!reg.test(str)){return false}if(type=='en'&&!(/^[0-9a-z-]+$/i).test(str)){return false}if(type=='cn'&&!(/[\u4E00-\u9FA5]/).test(str)){return false}return true},isdomain:function(str,type){var reg=/^([^-]+(-[^-]+)*)(\.([^-]+(-[^-]+)*))*(\.([a-z\u4E00-\u9FA5]+))$/i;var reg2=/^[-0-9a-z\u4E00-\u9FA5\.]+$/i;if(type=='en'){reg2=/^[-0-9a-z\.]+$/i}if(type=='cn'){reg2=/[\u4E00-\u9FA5]/}return(reg.test(str)&&reg2.test(str))},getFixes:function(domain){if(!this.isdomain(domain))return null;a=domain.split('.',2);a[1]='.'+a[1];return a},isip:function(str){var reg=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/;return reg.test(str)},isInt:function(str){var reg=/^\d+$/;return reg.test(str)},checkInt:function(intStr){intStr=parseInt(intStr,10);return isNaN(intStr)?0:intStr},parseStr:function(str){var p=str.replace(/^#+|^\?/,'');var v=[];$(p.split("&")).each(function(){var a=this.split('=',2);v[a[0]]=a[1]?decodeURIComponent(a[1].replace(/\+/g,' ')):null});return v},parseDateTime:function(strDateTime){var theDate=new Date();var iNum=0;var strDate;var strTime;strDateTime=strDateTime.split(" ");if(strDateTime.length==2){strDate=strDateTime[0];strTime=strDateTime[1]}else if(strDateTime.length=1){strDate=strDateTime[0];strTime=" "}else{return null}strDate=strDate.split("-");if(strDate.length!=3){return null}else{iNum=parseInt(strDate[0],10);if(iNum!=NaN)theDate.setFullYear(iNum);iNum=parseInt(strDate[1],10);if(iNum!=NaN)theDate.setMonth(iNum-1);iNum=parseInt(strDate[2],10);if(iNum!=NaN)theDate.setDate(iNum)}strTime=strTime.split(":");if(strTime.length==3){iNum=parseInt(strTime[0],10);if(iNum!=NaN)theDate.setHours(iNum);iNum=parseInt(strTime[1],10);if(iNum!=NaN)theDate.setMinutes(iNum);iNum=parseInt(strTime[2],10);if(iNum!=NaN)theDate.setSeconds(iNum)}return theDate}};$.validator.methods.account=function(value,element,param){var reg=/^[0-9a-zA-Z]+(-[0-9a-zA-Z]+)*$/;var reg2=/^\d+$/;return this.required(element)||(reg.test(value)&&!reg2.test(value))};$.validator.methods.minLengthW=function(value,element,param){var tLen=0;for(var i=0;i<value.length;i++){charCode=value.charCodeAt(i);if(charCode<0||charCode>255){tLen+=2}else{tLen++}}return this.required(element)||(tLen>=param)};$.validator.methods.password=function(value,element,param){var reg=/^\d+$/;return this.required(element)||(!reg.test(value))};$.validator.methods.question=function(value,element,param){return this.required(element)||false};$.validator.methods.mobile=function(value,element,param){return this.required(element)||$.func.ismobile(value)};$.validator.methods.cnname=function(value,element,param){var reg=/^[\u4E00-\u9FA5]+$/;return this.required(element)||reg.test(value)};$.validator.methods.enname=function(value,element,param){var reg=/^[a-zA-Z]+[ ]{1}[A-Za-z]+$/;return this.required(element)||reg.test(value)};$.validator.methods.isbyte=function(value,element,param){return this.required(element)||$.func.isbyte(value)};$.validator.methods.containCnChar=function(value,element,param){var reg=/[\u4E00-\u9FA5]/;return this.required(element)||reg.test(value)};$.validator.methods.dateLT=function(value,element,param){if(Number($.func.parseDateTime($(param).val()))>Number($.func.parseDateTime(value))){return this.required(element)||false}return true}})(jQuery);