function Validator(form){var validation = []; var isValid = true;var pos = {start:0, end:0}; if((this.formobj = $("#"+form)).size() <= 0) {if((this.formobj = $("form[name="+form+"]")).size() <= 0) {alert("ERROR: could not get form object: " + form);return;}}this.setup = function() {for(var i=0; i<arguments.length; i++) {var fieldobj = $("#"+arguments[i].id);fieldobj.num = i;if(fieldobj.size() <= 0) {alert("ERROR: Did not find: " + arguments[i].id);return;}for (var name in arguments[i]) {if (name == "name") {alert("field names called name will not work.");}if(name == 'live' && arguments[i][name] == true) {fieldobj.bind("keypress",{num:i,validator:this}, function(e) {e.data.validator.validate("warning",e.data.num);});fieldobj.bind("focus",{num:i,validator:this}, function(e) {if (e.data.validator.isValid == true) {e.data.validator.validate("warning", e.data.num);}});}}fieldobj.bind("keydown change",{num:i,validator:this},function(e){e.data.validator.pos = getCaretPos($("#" + e.data.validator.validation[e.data.num].id)[0]);});if(val = arguments[i]['restrict'] ) {fieldobj.bind("input blur change keyup",{val:val,num:i,validator:this},function(e){var value = $("#"+e.data.validator.validation[e.data.num].id).val();var len = value.length;if (len > 0) {var newstring = '';for (var j = 0; j < len; j++) {var character = value.substr(j, 1);if (character.search(e.data.val) != -1) {newstring += character;if(e.data.validator.pos)e.data.validator.pos.start++;} else if (character.toLowerCase().search(e.data.val) != -1) { newstring += character.toLowerCase();if(e.data.validator.pos)e.data.validator.pos.start++;} else if (character.toUpperCase().search(e.data.val) != -1) { newstring += character.toUpperCase();if(e.data.validator.pos)e.data.validator.pos.start++;} else if (e.data.val.search(/ /) == -1 && e.data.val.search(/_/) != -1 && character == " ") { newstring += "_";if(e.data.validator.pos)e.data.validator.pos.start++;}}if(value != newstring) {$("#" + e.data.validator.validation[e.data.num].id).val(newstring);setCaretPos($("#" + e.data.validator.validation[e.data.num].id)[0],e.data.validator.pos.start);}}});}if (val = arguments[i]['maxlength']) {fieldobj.bind("input blur change keyup keydown",{num:i,validator:this},function(e){ var value = $("#"+e.data.validator.validation[e.data.num].id).val();var maxlength = e.data.validator.validation[e.data.num].maxlength; if( value.length > maxlength) {$("#" + e.data.validator.validation[e.data.num].id).val(value.substr(0,maxlength));setCaretPos($("#" + e.data.validator.validation[e.data.num].id)[0],e.data.validator.pos.start);} });}}this.validation =Array.prototype.slice.call(arguments, 0); };this.addCustom = function(func, id) {found = false;for(i=0, len=this.validation.length; i<len; i++) {if(this.validation[i].id == id) {this.validation[i].custom= func;found = true;break;}}if(found == false) {this.validation[i].id = id;this.validation[i].custom = func;}};this.validate = function (level) {this.isValid = true;if(arguments.length>1 && !isNaN(arguments[1])) {if ($("#" + this.validation[arguments[1]].id).parents().map(function(){if (!$(this).is(":visible")) {return this;}}).size() == 0) {for (var name in this.validation[arguments[1]]) {errorstr = '';value = this.validation[arguments[1]][name];obj = $("#" + this.validation[arguments[1]].id);if (this.validation[arguments[1]].custom != undefined && name != 'id' && this.validation[arguments[1]].custom() == false || this.validation[arguments[1]].required == true && name != "id" && (errorstr = check(obj, name, value)) != true || obj.val() != "" && name != "id" && (errorstr = check(obj, name, value)) != true) {this.isValid = false;break;}}}} else { for(var i=0; i < this.validation.length && this.isValid == true; i++) {if ($("#" + this.validation[i].id).parents().map(function(){if (!$(this).is(":visible")) {return this;}}).size() == 0) {for (var name in this.validation[i]) {errorstr = '';value = this.validation[i][name];obj = $("#" + this.validation[i].id);if (this.validation[i].custom != undefined && name != 'id' && (errorstr = this.validation[i].custom()) != true || this.validation[i].required == true && name != "id" && (errorstr = check(obj, name, value)) != true || obj.val() != "" && name != "id" && (errorstr = check(obj, name, value)) != true) {this.isValid = false;if (this.validation[i]['showError'] != undefined) {obj = $("#" + this.validation[i]['showError']);}break;}}}}}if(this.isValid) {hideNotice();} else {if(level == "error") {obj.focus();}showNotice(level,errorstr,obj);}return this.isValid;};this.formobj.bind("submit",{validator:this}, function(e) {return e.data.validator.validate("error");});}function getCaretPos(input) {var result = { start: 0, end: 0 };if (input.setSelectionRange) {result.start = input.selectionStart;result.end = input.selectionEnd;} else if (document.selection && document.selection.createRange) {var range = document.selection.createRange();var r2 = range.duplicate();result.start = 0 - r2.moveStart('character', -100000);result.end = result.start + range.text.length;}return result;}function setCaretPos(field, pos) {if(field.setSelectionRange) {field.setSelectionRange(pos,pos);field.focus();} else if (field.createTextRange) {var range = field.createTextRange();range.collapse(true);range.moveEnd('character', pos);range.moveStart('character', pos);range.select();}}function validateEmail(email) {if(email.length <= 0) {return false;}var splitted = email.match(/^(.+)@(.+)$/);if(splitted == null) return false;if(splitted[1] != null ) {var regexp_user=/^\"?[\w-_\.]*\"?$/;if(splitted[1].match(regexp_user) == null) return false;}if(splitted[2] != null) {var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;if(splitted[2].match(regexp_domain) == null) {var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;if(splitted[2].match(regexp_ip) == null) return false;}return true;}return false;}function check(fieldobj, type, value) {var fieldvalue = (fieldobj.attr("value")==undefined?"":fieldobj.attr("value"));switch(type) { case "required": case "req":if($(fieldobj).hasClass("multiSelect_selected") && $(fieldobj).find('option').size() > 0 ) {return true;}if($(fieldobj).attr("type")=="checkbox" && !$(fieldobj).is(':checked') || fieldvalue.length == 0) {return "This is a required field";}break; case "maxlength": case "maxlen":if(fieldvalue.length >parseInt(value)) { return "Too many characters entered. Please enter "+value; }break;case "minlength": case "minlen": if(fieldvalue.length > 0 && fieldvalue.length <parseInt(value)) { return value+" characters are required"; }break; case "alnum": case "alphanumeric":var charpos = fieldvalue.search("[^A-Za-z0-9]");if(charpos == null) { return false; } break;case "reqalphanumeric":var charpos = fieldvalue.search("[^A-Za-z]");if(charpos == -1) { return false; } var charpos = fieldvalue.search("[^0-9]");if(charpos == -1) { return false; } break;case "num": case "numeric":var charpos = fieldvalue.search("[^0-9]"); if(fieldvalue.length > 0 &&charpos >= 0) { return "Please enter a numeric value"; }break; case "alphabetic": case "alpha": var charpos = fieldvalue.search("[^A-Za-z]"); if(fieldvalue.length > 0 &&charpos >= 0) { return false; } break;case "alnumhyphen":var charpos = fieldvalue.search("[^A-Za-z0-9\-_]"); if(fieldvalue.length > 0 &&charpos >= 0) { return false; }break;case "email": if(fieldvalue.length > 0 && !validateEmail(fieldvalue)) { return "Please enter a valid email address"; }break; case "email_confirm": if(fieldvalue != $('email').value) {return false; }break;case "lt": case "lessthan": if(isNaN(fieldvalue)) { return false; }if(fieldvalue >=parseInt(value)) { return false; } break; case "gt": case "greaterthan": if(isNaN(fieldvalue)) { return false; }if(fieldvalue <=parseInt(value)) { return false; }break; case "confirm": if(fieldvalue != $("#"+value).val() ) {return "Confirm e-mail doesn't match";} break; case "regexp":if(fieldvalue.length > 0) {if(!fieldvalue.match(value)) { return false; }}break; } return true;}function selectDay(field_id) {var year = $('#'+field_id+'_year').val();var month = $('#'+field_id+'_month').val();var dayObj = $('#'+field_id+'_day');if(year != "" && month != "") {var currentSel = dayObj[0].selectedIndex;var dim = days_in_month(year, month-1);html = '<option></option>';for(var i=1;i<=dim; i++) {html += '<option>'+i+'</option>';}dayObj.html(html);if(currentSel > dim) {dayObj[0].selectedIndex = dim;} else {dayObj[0].selectedIndex = currentSel;}}updateDate(field_id);}function updateDate(field_id) {var year = $('#'+field_id+'_year').val();var month = $('#'+field_id+'_month').val();var day = $('#'+field_id+'_day').val();dateString = '';if(year != '') {dateString += year + '-'; } else {dateString += '0000-';}if(month != '') {dateString += month + '-';} else {dateString += '00-';}if(day != '') {dateString += day;} else {dateString += '00';}$('#'+field_id).attr('value',dateString);}function days_in_month (year, month) { return 32 - new Date(year, month, 32).getDate();}var fadeId = null;function showNotice(type, message, obj){if($("#notice").length <= 0) {$("body").append('<div id="notice" class="warning"><table border="0" cellpadding="0" cellspacing="0"><tr><td></td><td class="tl"></td><td class="t"></td><td class="tr"></td></tr><tr><td class="arrow"></td><td class="l"></td><td class="c"></td><td class="r"></td></tr><tr><td></td><td class="bl"></td><td class="b"></td><td class="br"></td></tr></table></div>');$("#notice").click(hideNotice);}$("#notice").attr("className", type);positionNotice(obj);$(window).bind("resize", function(){positionNotice(obj);});$("#notice table tr td.c").html(message);if ($("#notice").css("display") != "block" || $("#notice").css("display") == "block"&& $("#notice").css("opacity") < 1) {$("#notice").fadeIn('slow');}clearInterval(fadeId);fadeId = setInterval(hideNotice,6000);}function hideNotice() {$("#notice").fadeOut('slow');$(window).unbind("resize");}function positionNotice(obj) {var offset = obj.offset();$('#notice').css('left', ((offset.left+obj.outerWidth())-5)+'px');$('#notice').css('top', offset.top+'px');}function countryChange(countryObj, stateObj) {var country = $('#'+countryObj+'_country');value = country.val().split(':');if(stateObj != null) {var stateSelect = $('#'+stateObj+'_stateSelect');var stateText = $('#'+stateObj);}if(value.length == 1) {if(stateObj != null) {stateSelect.hide();stateText.show();}$('#'+countryObj).val(value);} else {$('#'+countryObj).val(value[0]);if(stateObj != null) {stateSelect.show();stateText.hide();states = value[1].split(",");html = '<option></option>';for(i=0;i<states.length;i++) {html += '<option value="'+states[i]+'">'+states[i]+'</option>';}stateSelect.html(html);stateSelect.val('option:first').attr('selected', 'selected');}}}function stateUpdate(obj) {$('#'+obj).val($('#'+obj+'_stateSelect').val());}var preloaded = new Array();function preload_images() {for (var i = 0; i < arguments.length; i++){preloaded[i] = document.createElement('img');preloaded[i].setAttribute('src',arguments[i]);};};preload_images("/puppy/images/validation/error.png","/puppy/images/validation/warning.png");$(function() {$("a[rel='e']").each(function(){chars = $(this).attr("href").split(",");mailto="";for(i=0,t=chars.length;i<t;i++) {mailto +=String.fromCharCode(chars[i]);}if(mailto.substr(0,7) != "mailto:") {mailto = "mailto:"+mailto;}$(this).attr("href",mailto);chars = $(this).text().split(",");text="";for(i=0,t=chars.length;i<t;i++) {text +=String.fromCharCode(chars[i]);}$(this).text(text); });});var preloaded = new Array();function preload_images() {for (var i = 0; i < arguments.length; i++){preloaded[i] = document.createElement('img');preloaded[i].setAttribute('src',arguments[i]);};};$(function() {$("a[rel='external']").attr('target','_blank');});$.extend($.expr[':'],{external: function(a,i,m) { if(!a.href) {return false;}return a.hostname && a.hostname !== window.location.hostname;}});$(function() {$('a:external').attr('target','_blank'); }); var blank = new Image(); blank.src = '/puppy/images/blank.gif';$(function() { var badBrowser = (/MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32"); if (badBrowser) {$('img[src$=.png]').each(function() { if (!this.complete) { this.onload = function() { fixPng(this) }; } else { fixPng(this); } }); } });function fixPng(png) { var src = png.src; if (!png.style.width) { png.style.width = $(png).width(); } if (!png.style.height) { png.style.height = $(png).height(); } png.onload = function() { }; png.src = blank.src; png.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; }jQuery.easing['jswing'] = jQuery.easing['swing'];jQuery.extend( jQuery.easing,{def: 'easeOutQuad',swing: function (x, t, b, c, d) {return jQuery.easing[jQuery.easing.def](x, t, b, c, d);},easeInQuad: function (x, t, b, c, d) {return c*(t/=d)*t + b;},easeOutQuad: function (x, t, b, c, d) {return -c *(t/=d)*(t-2) + b;},easeInOutQuad: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t + b;return -c/2 * ((--t)*(t-2) - 1) + b;},easeInCubic: function (x, t, b, c, d) {return c*(t/=d)*t*t + b;},easeOutCubic: function (x, t, b, c, d) {return c*((t=t/d-1)*t*t + 1) + b;},easeInOutCubic: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t + b;return c/2*((t-=2)*t*t + 2) + b;},easeInQuart: function (x, t, b, c, d) {return c*(t/=d)*t*t*t + b;},easeOutQuart: function (x, t, b, c, d) {return -c * ((t=t/d-1)*t*t*t - 1) + b;},easeInOutQuart: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t*t + b;return -c/2 * ((t-=2)*t*t*t - 2) + b;},easeInQuint: function (x, t, b, c, d) {return c*(t/=d)*t*t*t*t + b;},easeOutQuint: function (x, t, b, c, d) {return c*((t=t/d-1)*t*t*t*t + 1) + b;},easeInOutQuint: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;return c/2*((t-=2)*t*t*t*t + 2) + b;},easeInSine: function (x, t, b, c, d) {return -c * Math.cos(t/d * (Math.PI/2)) + c + b;},easeOutSine: function (x, t, b, c, d) {return c * Math.sin(t/d * (Math.PI/2)) + b;},easeInOutSine: function (x, t, b, c, d) {return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;},easeInExpo: function (x, t, b, c, d) {return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;},easeOutExpo: function (x, t, b, c, d) {return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;},easeInOutExpo: function (x, t, b, c, d) {if (t==0) return b;if (t==d) return b+c;if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;},easeInCirc: function (x, t, b, c, d) {return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;},easeOutCirc: function (x, t, b, c, d) {return c * Math.sqrt(1 - (t=t/d-1)*t) + b;},easeInOutCirc: function (x, t, b, c, d) {if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;},easeInElastic: function (x, t, b, c, d) {var s=1.70158;var p=0;var a=c;if (t==0) return b;if ((t/=d)==1) return b+c;if (!p) p=d*.3;if (a < Math.abs(c)) { a=c; var s=p/4; }else var s = p/(2*Math.PI) * Math.asin (c/a);return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;},easeOutElastic: function (x, t, b, c, d) {var s=1.70158;var p=0;var a=c;if (t==0) return b;if ((t/=d)==1) return b+c;if (!p) p=d*.3;if (a < Math.abs(c)) { a=c; var s=p/4; }else var s = p/(2*Math.PI) * Math.asin (c/a);return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;},easeInOutElastic: function (x, t, b, c, d) {var s=1.70158;var p=0;var a=c;if (t==0) return b;if ((t/=d/2)==2) return b+c;if (!p) p=d*(.3*1.5);if (a < Math.abs(c)) { a=c; var s=p/4; }else var s = p/(2*Math.PI) * Math.asin (c/a);if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;},easeInBack: function (x, t, b, c, d, s) {if (s == undefined) s = 1.70158;return c*(t/=d)*t*((s+1)*t - s) + b;},easeOutBack: function (x, t, b, c, d, s) {if (s == undefined) s = 1.70158;return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;},easeInOutBack: function (x, t, b, c, d, s) {if (s == undefined) s = 1.70158; if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;},easeInBounce: function (x, t, b, c, d) {return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;},easeOutBounce: function (x, t, b, c, d) {if ((t/=d) < (1/2.75)) {return c*(7.5625*t*t) + b;} else if (t < (2/2.75)) {return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;} else if (t < (2.5/2.75)) {return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;} else {return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;}},easeInOutBounce: function (x, t, b, c, d) {if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;}});$(function(){$(".menu a:not(.menu a.selected)").css('marginLeft','20px'); $(".menu a:not(.menu a.selected)").mouseover(function(){$(this).stop().animate({marginLeft:'0px'},{queue:false, duration:200, easing: 'easeOutQuint'})});$(".menu a:not(.menu a.selected)").mouseout(function(){$(this).stop().animate({marginLeft:'20px'},{queue:false, duration:500, easing: 'easeOutElastic'})});});