/*
 * Seahorse JavaScript Library v1.2
 * http://seahorsejs.sourceforge.net
 *
 * Copyright 2010, José Facundo Maldonado
 * This file is licensed under the LGPL Version 3 license
 * http://www.gnu.org/licenses/lgpl.html
 *
 * Date: 12 July 2010
 */

var Seahorse={_replace:function(f,a,g){var e="";var d=a.substring(0,1);var h;for(var b=0;b<f.length;b++){h=f.substring(b,b+1);if(h==d&&b+a.length<=f.length&&f.substring(b,b+a.length)==a){b=b+a.length-1;e=e+g}else{e=e+h}}return e},_groupContainsChar:function(d,f){var e,b;if(typeof f=="string"){e=f.charCodeAt(0);b=f}else{e=f;b=String.fromCharCode(e)}if(typeof d=="string"){return d.indexOf(b)>=0}else{for(var a=0;a<d.length;a++){if(d[a]==e){return true}}return false}},_groupContainsGroup:function(a,d){for(var c=0;c<d.length;c++){var b=(typeof d=="string")?Seahorse._groupContainsChar(a,d.substring(c,c+1)):Seahorse._groupContainsChar(a,d[c]);if(!b){return false}}return true},_getCharsGroupFromString:function(e,l,a){var f,h=new Array(a);for(f=0;f<a;f++){h[f]=""}var d=0;var b=false;var g=true;for(f=0;f<e.length;f++){var k=e.substring(f,f+1);if(l.indexOf(k)>=0){if(!b&&!g){d++}if(d<a){h[d]=h[d]+k}b=true;g=false}else{b=false}}return h},_hasClass:function(c,d){if(c.className){var b=c.className.split(" ");d=d.toLowerCase();for(var a=0;a<b.length;a++){if(b[a].toLowerCase()==d){return true}}}return false},_addClass:function(a,b){if(a.className){if(!Seahorse._hasClass(a,b)){a.className+=" "+b}}else{a.className=""+b}},_removeClass:function(c,d){if(c.className){var b=c.className.split(" ");d=d.toLowerCase();c.className="";for(var a=0;a<b.length;a++){if(b[a].toLowerCase()!=d){c.className+=" "+b[a]}}}},_validationOptionsDefault:{minLength:0,maxLength:Infinity,minValue:null,maxValue:null,format:null,version:4,requiredCharacters:"",forbiddenCharacters:"",allowedCharacters:"",decimalCharacter:".",groupingCharacter:",",autofill:true,notEmpty:false,asciiCharacters:false,aditionalValidation:null},_responseOptionsDefault:{errorClass:null,okClass:null,targetErrorClass:null,targetOkClass:null,targetId:null,hiddenElementId:null,callbackFunction:null,forbidEntrance:true,autoparse:false,errorMessage:""},_basicInitialization:function(b,a,d){if(b.seahorse){Seahorse.removeBehavior(b)}b.seahorse=new Object();b.seahorse.options=new Object();var c=b.seahorse.options;if(!d){d=new Object()}c.errorClass=(d.errorClass)?d.errorClass:Seahorse._responseOptionsDefault.errorClass;c.okClass=(d.okClass)?d.okClass:Seahorse._responseOptionsDefault.okClass;c.targetErrorClass=(d.targetErrorClass)?d.targetErrorClass:Seahorse._responseOptionsDefault.targetErrorClass;c.targetOkClass=(d.targetOkClass)?d.targetOkClass:Seahorse._responseOptionsDefault.targetOkClass;c.targetId=(d.targetId)?d.targetId:Seahorse._responseOptionsDefault.targetId;c.hiddenElementId=(d.hiddenElementId)?d.hiddenElementId:Seahorse._responseOptionsDefault.hiddenElementId;c.callbackFunction=(d.callbackFunction)?d.callbackFunction:Seahorse._responseOptionsDefault.callbackFunction;c.forbidEntrance=(d.forbidEntrance!=null)?d.forbidEntrance:Seahorse._responseOptionsDefault.forbidEntrance;c.autoparse=(d.autoparse!=null)?d.autoparse:Seahorse._responseOptionsDefault.autoparse;c.errorMessage=(d.errorMessage)?d.errorMessage:Seahorse._responseOptionsDefault.errorMessage;if(!a){a=new Object()}c.notEmpty=(a.notEmpty!=null)?a.notEmpty:Seahorse._validationOptionsDefault.notEmpty;c.aditionalValidation=(a.aditionalValidation)?a.aditionalValidation:Seahorse._validationOptionsDefault.aditionalValidation;b.seahorse_onblur=b.onblur;b.seahorse_onkeyup=b.onkeyup;b.seahorse_onkeypress=b.onkeypress;b.onblur=Seahorse._eventhandler.blur;b.onkeyup=Seahorse._eventhandler.keyUp;b.seahorse.verify=function(){return Seahorse._eventhandler.verify(b)}},_integerInitialization:function(b,a,d){Seahorse._basicInitialization(b,a,d);if(!a){a=new Object()}var c=b.seahorse.options;if(a.minValue!=0&&(!a.minValue||isNaN(a.minValue))){c.minValue=-Infinity}else{c.minValue=a.minValue}if(a.maxValue!=0&&(!a.maxValue||isNaN(a.maxValue))){c.maxValue=Infinity}else{c.maxValue=a.maxValue}c.groupingCharacter=(a.groupingCharacter)?a.groupingCharacter:Seahorse._validationOptionsDefault.groupingCharacter;c.decimalCharacter=null;b.onkeypress=Seahorse._eventhandler.numberKeyPress},_numberInitialization:function(b,a,d){Seahorse._integerInitialization(b,a,d);var c=b.seahorse.options;c.decimalCharacter=(a.decimalCharacter)?a.decimalCharacter:Seahorse._validationOptionsDefault.decimalCharacter;if(c.decimalCharacter==c.groupingCharacter){if(c.decimalCharacter==Seahorse._validationOptionsDefault.decimalCharacter){c.groupingCharacter=Seahorse._validationOptionsDefault.groupingCharacter}else{c.decimalCharacter=Seahorse._validationOptionsDefault.decimalCharacter}}},_dateInitialization:function(b,a,d){Seahorse._basicInitialization(b,a,d);if(!a){a=new Object()}var c=b.seahorse.options;c.autofill=(a.autofill!=null)?a.autofill:Seahorse._validationOptionsDefault.autofill;if(a.format&&Seahorse.isDateFormat(a.format)){c.format=a.format}else{c.format="yyyy-mm-dd"}if(a.minValue&&Seahorse.isDate(a.minValue,c.format,c.autofill)){c.minValue=a.minValue}else{c.minValue=null}if(a.maxValue&&Seahorse.isDate(a.maxValue,c.format,c.autofill)){c.maxValue=a.maxValue}else{c.maxValue=null}b.seahorse.validCharacter=function(e){return c.format.indexOf(e)>=0||Seahorse._isNumericChar(e.charCodeAt(0))};b.onkeypress=Seahorse._eventhandler.keyPress},_timeInitialization:function(b,a,d){Seahorse._basicInitialization(b,a,d);if(!a){a=new Object()}var c=b.seahorse.options;c.autofill=(a.autofill!=null)?a.autofill:Seahorse._validationOptionsDefault.autofill;if(a.format&&Seahorse.isTimeFormat(a.format)){c.format=a.format}else{c.format="hh:mm:ss"}if(a.minValue&&Seahorse.isTime(a.minValue,c.format,c.autofill)){c.minValue=a.minValue}else{c.minValue=null}if(a.maxValue&&Seahorse.isTime(a.maxValue,c.format,c.autofill)){c.maxValue=a.maxValue}else{c.maxValue=null}b.seahorse.validCharacter=function(e){return c.format.indexOf(e)>=0||Seahorse._isNumericChar(e.charCodeAt(0))};b.onkeypress=Seahorse._eventhandler.keyPress},_ipAddressInitialization:function(b,a,d){Seahorse._basicInitialization(b,a,d);if(!a){a=new Object()}var c=b.seahorse.options;if(parseInt(a.version,10)==6){c.version=6}else{c.version=4}b.seahorse.validCharacter=function(f){var e=(c.version==4)?"0123456789.":"0123456789:";return e.indexOf(f)>=0};b.onkeypress=Seahorse._eventhandler.keyPress},_textInitialization:function(b,a,d){Seahorse._basicInitialization(b,a,d);if(!a){a=new Object()}var c=b.seahorse.options;c.asciiCharacters=(a.asciiCharacters!=null)?a.asciiCharacters:Seahorse._validationOptionsDefault.asciiCharacters;if(!a.minLength||isNaN(a.minLength)){c.minLength=0}else{c.minLength=a.minLength}if(!a.maxLength||isNaN(a.maxLength)){c.maxLength=Infinity}else{c.maxLength=a.maxLength}c.requiredCharacters=(a.requiredCharacters)?a.requiredCharacters:Seahorse._validationOptionsDefault.requiredCharacters;c.forbiddenCharacters=(a.forbiddenCharacters)?a.forbiddenCharacters:Seahorse._validationOptionsDefault.forbiddenCharacters;c.allowedCharacters=(a.allowedCharacters)?a.allowedCharacters:Seahorse._validationOptionsDefault.allowedCharacters;b.seahorse.parse=function(){var h=0,e=0;var g="";while(h<b.value.length&&e<c.maxLength){var f=b.value.substring(h,h+1);if(b.seahorse.validCharacter(f)){g=g+f;e++}h++}return g};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}if(b.value.length<c.minLength||b.value.length>c.maxLength){return false}for(var e=0;e<b.value.length;e++){var f=b.value.substring(e,e+1);if(!b.seahorse.validCharacter(f)){return false}}if(c.requiredCharacters!=null){if(!Seahorse._groupContainsGroup(b.value,c.requiredCharacters)){return false}}if(c.aditionalValidation){return c.aditionalValidation(b)}return true};b.onkeypress=Seahorse._eventhandler.keyPress},text:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._textInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.validCharacter=function(e){if(c.allowedCharacters!=null&&Seahorse._groupContainsChar(c.allowedCharacters,e)){return true}if(c.forbiddenCharacters!=null&&Seahorse._groupContainsChar(c.forbiddenCharacters,e)){return false}if(c.asciiCharacters&&!Seahorse._isAscii(e.charCodeAt(0))){return false}return true}}},alphabetical:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._textInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.validCharacter=function(e){if(c.allowedCharacters!=null&&Seahorse._groupContainsChar(c.allowedCharacters,e)){return true}if(c.forbiddenCharacters!=null&&Seahorse._groupContainsChar(c.forbiddenCharacters,e)){return false}if(c.asciiCharacters){return Seahorse._isAsciiAlphabeticalChar(e.charCodeAt(0))}else{return Seahorse._isAlphabeticalChar(e.charCodeAt(0))}}}},alphanumeric:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._textInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.validCharacter=function(e){if(c.allowedCharacters!=null&&Seahorse._groupContainsChar(c.allowedCharacters,e)){return true}if(c.forbiddenCharacters!=null&&Seahorse._groupContainsChar(c.forbiddenCharacters,e)){return false}if(c.asciiCharacters){return Seahorse._isAsciiAlphanumericChar(e.charCodeAt(0))}else{return Seahorse._isAlphanumericChar(e.charCodeAt(0))}}}},numeric:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._textInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.validCharacter=function(e){if(c.allowedCharacters!=null&&Seahorse._groupContainsChar(c.allowedCharacters,e)){return true}if(c.forbiddenCharacters!=null&&Seahorse._groupContainsChar(c.forbiddenCharacters,e)){return false}return Seahorse._isNumericChar(e.charCodeAt(0))}}},number:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._numberInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return Seahorse.parseNumber(b.value,c.decimalCharacter,c.groupingCharacter)};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var e=Seahorse.parseNumber(b.value,c.decimalCharacter,c.groupingCharacter);var f=Seahorse.isNumber(b.value,c.decimalCharacter,c.groupingCharacter)&&e>=c.minValue&&e<=c.maxValue;if(f&&c.aditionalValidation){return c.aditionalValidation(b)}return f}}},integer:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._integerInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return Seahorse.parseInteger(b.value,c.groupingCharacter)};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var e=Seahorse.parseInteger(b.value,c.groupingCharacter);var f=Seahorse.isInteger(b.value,c.groupingCharacter)&&e>=c.minValue&&e<=c.maxValue;if(f&&c.aditionalValidation){return c.aditionalValidation(b)}return f}}},date:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._dateInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return Seahorse.parseDate(b.value,c.format,c.autofill)};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var f=Seahorse.parseDate(b.value,c.format,c.autofill);var e=Seahorse.compareDate(f,c.minValue,c.format);var h=Seahorse.compareDate(f,c.maxValue,c.format);var g=Seahorse.isDate(b.value,c.format,c.autofill)&&(e==null||e>=0)&&(h==null||h<=0);if(g&&c.aditionalValidation){return c.aditionalValidation(b)}return g}}},time:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._timeInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return Seahorse.parseTime(b.value,c.format,c.autofill)};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var f=Seahorse.parseTime(b.value,c.format,c.autofill);var e=Seahorse.compareTime(f,c.minValue,c.format);var h=Seahorse.compareTime(f,c.maxValue,c.format);var g=Seahorse.isTime(b.value,c.format,c.autofill)&&(e==null||e>=0)&&(h==null||h<=0);if(g&&c.aditionalValidation){return c.aditionalValidation(b)}return g}}},ipAddress:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._ipAddressInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return b.value};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var e;if(c.version==4){e=Seahorse.isIPv4(b.value)}else{e=Seahorse.isIPv6(b.value)}if(e&&c.aditionalValidation){return c.aditionalValidation(b)}return e}}},email:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._basicInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return b.value};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var e=Seahorse.isEmail(b.value);if(e&&c.aditionalValidation){return c.aditionalValidation(b)}return e}}},http:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._basicInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return b.value};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var e=Seahorse.isHttp(b.value);if(e&&c.aditionalValidation){return c.aditionalValidation(b)}return e}}},ftp:function(b,a,d){if(typeof b=="string"){b=document.getElementById(b)}if(b){Seahorse._basicInitialization(b,a,d);var c=b.seahorse.options;b.seahorse.parse=function(){return b.value};b.seahorse.validate=function(){if(b.value==null||b.value.length==0){return(!c.notEmpty)}var e=Seahorse.isFtp(b.value);if(e&&c.aditionalValidation){return c.aditionalValidation(b)}return e}}},form:function(c,b,a){if(typeof c=="string"){c=document.getElementById(c)}if(c&&c.elements){c.seahorse=new Object();c.seahorse.errorMessage=a;c.seahorse.responseFunction=b;c.seahorse_submit=c.onsubmit;c.onsubmit=function(){var g=c.seahorse.errorMessage+"\n";var h=new Array();var f,d=0;for(var e=0;e<c.elements.length;e++){f=c.elements[e];if(f.seahorse&&!f.seahorse.verify()){if(f.seahorse.options.errorMessage.length>0){g+="\n"+f.seahorse.options.errorMessage}h[d]=f;d++}}if(d==0){if(c.seahorse_submit){return c.seahorse_submit()}else{return true}}else{if(c.seahorse.responseFunction){c.seahorse.responseFunction(g,h)}if(c.seahorse_submit){c.seahorse_submit()}return false}}}},removeBehavior:function(a){if(typeof a=="string"){a=document.getElementById(a)}if(a&&a.seahorse){a.seahorse=null;a.onblur=(a.seahorse_onblur)?a.seahorse_onblur:null;a.onkeyup=(a.seahorse_onkeyup)?a.seahorse_onkeyup:null;a.onkeypress=(a.seahorse_onkeypress)?a.seahorse_onkeypress:null}},_isAscii:function(a){return(a>=0&&a<=127)},_isAsciiSpecialKey:function(a){return(a>=0&&a<=31)||a==127},_isAsciiAlphabeticalChar:function(a){return(a>=65&&a<=90)||(a>=97&&a<=122)},_isAsciiAlphanumericChar:function(a){return(a>=65&&a<=90)||(a>=97&&a<=122)||(a>=48&&a<=57)},_isNumericChar:function(a){return(a>=48&&a<=57)},_isAlphabeticalChar:function(a){return(a>=65&&a<=90)||(a>=97&&a<=122)||(a>=170&&a<=535)||(a>=592&&a<=680)||(a>=7680&&a<=7835)||(a>=7840&&a<=7929)||(a>=64257&&a<=64258)},_isAlphanumericChar:function(a){return(a>=65&&a<=90)||(a>=97&&a<=122)||(a>=170&&a<=535)||(a>=592&&a<=680)||(a>=7680&&a<=7835)||(a>=7840&&a<=7929)||(a>=64257&&a<=64258)||(a>=48&&a<=57)},isNumber:function(b,c,a){if(b==null||b.length==0){return false}if(a!=null&&a.length>0){b=Seahorse._replace(b,a,"")}if(c!=null&&c.length>0){b=Seahorse._replace(b,c,".")}return !isNaN(b)},isInteger:function(c,a){if(c==null||c.length==0){return false}if(a!=null&&a.length>0){c=Seahorse._replace(c,a,"")}var b=/^(\+|-)?[0-9]*$/;return b.test(c)},isNumeric:function(b){if(b==null||b.length==0){return false}var a=/^[0-9]*$/;return a.test(b)},isAlphabetical:function(b){if(b==null||b.length==0){return false}var d;for(var a=0;a<b.length;a++){d=b.charCodeAt(a);if(!Seahorse._isAlphabeticalChar(d)){return false}}return true},isAlphanumeric:function(b){if(b==null||b.length==0){return false}var d;for(var a=0;a<b.length;a++){d=b.charCodeAt(a);if(!Seahorse._isAlphanumericChar(d)){return false}}return true},isAlphabeticalAscii:function(b){if(b==null||b.length==0){return false}var a=/^[a-zA-Z]*$/;return a.test(b)},isAlphanumericAscii:function(b){if(b==null||b.length==0){return false}var a=/^[0-9a-zA-Z]*$/;return a.test(b)},isAsciiText:function(b){if(b==null||b.length==0){return false}var d;for(var a=0;a<b.length;a++){d=b.charCodeAt(a);if(!Seahorse._isAscii(d)){return false}}return true},isIPv4:function(a){return Seahorse.parseIPv4(a)!=null},isIPv6:function(b){if(b==null||b.length==0){return false}var a=/^(([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4})\:([0-9a-fA-F]{0,4}))$/;return a.test(b)},isEmail:function(a){if(a==null||a.length==0){return false}var b=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.([a-z]){2,4})$/;return b.test(a)},isHttp:function(b){if(b==null||b.length==0){return false}var a=/^((http(s?))\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/;return a.test(b)},isFtp:function(b){if(b==null||b.length==0){return false}var a=/^((ftp)\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/;return a.test(b)},isMonth:function(a){return Seahorse.isInteger(a)&&parseInt(a,10)>0&&parseInt(a,10)<=12},isDay:function(e,a,b){if(!a){a=12}if(!b){b=400}if(!Seahorse.isMonth(a)||isNaN(b)){return false}if(!Seahorse.isInteger(e,null)||parseInt(e,10)<=0){return false}var d=new Array(31,28,31,30,31,30,31,31,30,31,30,31);var c=(b%400==0)||(b%4==0&&b%100!=0);if(c){d[1]=29}if(parseInt(e,10)>d[parseInt(a,10)-1]){return false}return true},isDate:function(a,c,b){if(a==null||a.length==0){return false}return Seahorse.parseDate(a,c,b)!=null},isTime:function(a,c,b){if(a==null||a.length==0){return false}return Seahorse.parseTime(a,c,b)!=null},isDateFormat:function(f){if(f==null||f.length==0){return false}var b=Seahorse._getCharsGroupFromString(f.toLowerCase(),"dmy",3);var a=false;var e=false;var d=false;for(var c=0;c<3;c++){if(!a){a=b[c]=="d"||b[c]=="dd"}if(!e){e=b[c]=="m"||b[c]=="mm"}if(!d){d=b[c]=="yy"||b[c]=="yyyy"}}return a||e||d},isTimeFormat:function(f){if(f==null||f.length==0){return false}var b=Seahorse._getCharsGroupFromString(f.toLowerCase(),"hms",3);var e=false;var d=false;var a=false;for(var c=0;c<3;c++){if(!e){e=b[c]=="s"||b[c]=="ss"}if(!d){d=b[c]=="m"||b[c]=="mm"}if(!a){a=b[c]=="h"||b[c]=="hh"}}return e||d||a},validateForm:function(c){var d=document.getElementById(c);if(d&&d.elements){for(var b=0;b<d.elements.length;b++){var a=d.elements[b];if(a.seahorse&&!a.seahorse.validate()){return false}}return true}return false},passFilter:function(c,b,a){return c==Seahorse.filterString(c,b,a)},parseNumber:function(b,c,a){if(b!=null&&b.length>0){if(a!=null&&a.length>0){b=Seahorse._replace(b,a,"")}if(c!=null&&c.length>0){b=Seahorse._replace(b,c,".")}}return parseFloat(b)},parseInteger:function(b,a){if(b!=null&&b.length!=0){if(a!=null&&a.length>0){b=Seahorse._replace(b,a,"")}}return parseInt(b,10)},parseIPv4:function(c){var a=/^(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))$/;if(a.test(c)){var d=Seahorse._getCharsGroupFromString(c,"0123456789",4);for(var b=0;b<4;b++){if(isNaN(d[b])||d[b]>255){return null}}return d}return null},parseIPv6:function(d){if(!Seahorse.isIPv6(d)){return null}var e=new Array(8);var c=0;var b=d.indexOf(":");for(var a=0;a<8;a++){if(c!=b+1){e[a]=d.substring(c,b);while(e[a].length<4){e[a]="0".concat(e[a])}e[a]="0x".concat(e[a])}else{e[a]="0x0000"}c=b+1;if(a<6){b=d.indexOf(":",c)}else{b=d.length}}return e},parseDate:function(e,k,n){if(e==null||k==null||k.length==0){return null}if(Seahorse.passFilter(e,"0123456789",false)){return null}var b=Seahorse._getCharsGroupFromString(k.toLowerCase(),"dmy",3);var a=Seahorse._getCharsGroupFromString(e,"0123456789",3);var c=new Date();var j,f,h;var g=k;for(var d=0;d<b.length;d++){var l=b[d];if(l=="d"||l=="dd"){j=a[d];if(j==null||j.length==0){if(n){j=c.getDate()+""}else{return null}}if(j.length>2){return null}if(parseInt(j,10)<10&&j.length>1&&l=="d"){j=j.substring(1,2)}if(j.length<2&&l=="dd"){j="0"+j}g=Seahorse._replace(g,l,j)}if(l=="m"||l=="mm"){f=a[d];if(f==null||f.length==0){if(n){f=(c.getMonth()+1)+""}else{return null}}if(f.length>2){return null}if(parseInt(f,10)<10&&f.length>1&&l=="m"){f=f.substring(1,2)}if(f.length<2&&l=="mm"){f="0"+f}g=Seahorse._replace(g,l,f)}if(l=="yy"||l=="yyyy"){h=a[d];if(h==null||h.length==0){if(n){h=c.getFullYear()+"";if(h.length>l.length){h=h.substring(h.length-l.length,h.length)}}else{return null}}if(h.length>l.length){return null}if(h.length<l.length){if(l=="yy"){h="0"+h}else{if(n){var m=c.getFullYear().toString();h=m.substring(0,l.length-h.length)+h}else{while(h.length<l.length){h="0"+h}}}}g=Seahorse._replace(g,l,h)}}if(j){if(!Seahorse.isDay(j,f,h)){return null}else{if(f&&parseInt(f,10)<0&&parseInt(f,10)>12){return null}}}return g},parseTime:function(g,j,l){if(g==null||j==null||j.length==0){return null}if(Seahorse.passFilter(g,"0123456789",false)){return null}var b=Seahorse._getCharsGroupFromString(j.toLowerCase(),"hms",3);var m=Seahorse._getCharsGroupFromString(g,"0123456789",3);var c=new Date();var e,d,a;var h=j;for(var f=0;f<b.length;f++){var k=b[f];if(k=="s"||k=="ss"){a=m[f];if(a==null||a.length==0){if(l){a=c.getSeconds()+""}else{return null}}if(isNaN(a)||parseInt(a,10)<0||parseInt(a,10)>=60){return null}if(parseInt(a,10)<10&&a.length>1&&k=="s"){a=a.substring(1,2)}if(a.length<2&&k=="ss"){a="0"+a}h=Seahorse._replace(h,k,a)}if(k=="m"||k=="mm"){d=m[f];if(d==null||d.length==0){if(l){d=c.getMinutes()+""}else{return null}}if(isNaN(d)||parseInt(d,10)<0||parseInt(d,10)>=60){return null}if(parseInt(d,10)<10&&d.length>1&&k=="m"){d=d.substring(1,2)}if(d.length<2&&k=="mm"){d="0"+d}h=Seahorse._replace(h,k,d)}if(k=="h"||k=="hh"){e=m[f];if(e==null||e.length==0){if(l){e=c.getHours()+""}else{return null}}if(isNaN(e)||parseInt(e,10)<0||parseInt(e,10)>=24){return null}if(parseInt(e,10)<10&&e.length>1&&k=="h"){e=e.substring(1,2)}if(e.length<2&&k=="hh"){e="0"+e}h=Seahorse._replace(h,k,e)}}return h},filterString:function(f,e,d){if(d!=false){d=true}if(f==null||f.length==0){return f}if(e==null||e.length==0){if(d){return""}else{return f}}var b="";for(var a=0;a<f.length;a++){var g=f.substring(a,a+1);if(d&&e.indexOf(g)>=0){b=b+g}if(!d&&e.indexOf(g)<0){b=b+g}}return b},compareDate:function(j,h,b){if(j==null||h==null||b==null||!Seahorse.isDateFormat(b)){return null}b=b.toLowerCase();j=Seahorse.parseDate(j,b,false);h=Seahorse.parseDate(h,b,false);if(j==null||h==null){return null}var c=Seahorse._getCharsGroupFromString(b,"dmy",3);var d=Seahorse._getCharsGroupFromString(j,"0123456789",3);var f=Seahorse._getCharsGroupFromString(h,"0123456789",3);var g=0;var a=0;var e;for(e=0;e<3;e++){if(c[e]=="d"||c[e]=="dd"){g+=parseInt(d[e],10);a+=parseInt(f[e],10)}if(c[e]=="m"||c[e]=="mm"){g+=parseInt(d[e],10)*100;a+=parseInt(f[e],10)*100}if(c[e]=="yy"||c[e]=="yyyy"){g+=parseInt(d[e],10)*10000;a+=parseInt(f[e],10)*10000}}if(g>a){return 1}if(g<a){return -1}if(g==a){return 0}return null},compareTime:function(j,h,c){if(j==null||h==null||c==null||!Seahorse.isTimeFormat(c)){return null}c=c.toLowerCase();j=Seahorse.parseTime(j,c,false);h=Seahorse.parseTime(h,c,false);if(j==null||h==null){return null}var a=Seahorse._getCharsGroupFromString(c,"hms",3);var e=Seahorse._getCharsGroupFromString(j,"0123456789",3);var g=Seahorse._getCharsGroupFromString(h,"0123456789",3);var f=0;var b=0;var d;for(d=0;d<3;d++){if(a[d]=="s"||a[d]=="ss"){f+=parseInt(e[d],10);b+=parseInt(g[d],10)}if(a[d]=="m"||a[d]=="mm"){f+=parseInt(e[d],10)*100;b+=parseInt(g[d],10)*100}if(a[d]=="h"||a[d]=="hh"){f+=parseInt(e[d],10)*10000;b+=parseInt(g[d],10)*10000}}if(f>b){return 1}if(f<b){return -1}if(f==b){return 0}return null},serialize:function(b,m){var n,h="";if(typeof b=="string"){b=document.getElementById(b)}if(b&&b.elements){m=(m&&m.toLowerCase()=="json")?"json":"url";var f,a,g,l;for(var e=0;e<b.elements.length;e++){f=b.elements[e];a=(f.name)?f.name:f.id;l=f.type.toLowerCase();n=(f.checked)?true:false;if(a&&l!="file"&&l!="submit"&&((l!="radio"&&l!="checkbox")||n)){if(m=="url"){if(e!=0){h+="&"}if(f.multiple){g=true;for(var d=0;d<f.options.length;d++){if(f.options[d].selected){if(!g){h+="&"}else{g=false}h+=a+"="+f.options[d].value}}if(g){h=h.substring(0,h.length-1)}}else{h+=a+"="+f.value}}else{if(e==0){h+="{ "}if(e!=0){h+=", "}if(f.multiple){h+=a+": [ ";g=true;for(var c=0;c<f.options.length;c++){if(f.options[c].selected){if(!g){h+=", "}else{g=false}h+="'"+f.options[c].value+"'"}}h+=" ]"}else{h+=a+" : '"+f.value+"'"}}}}if(m=="url"){h=encodeURI(h)}else{h+=" }"}}return h}};Seahorse._eventhandler={addEventListener:function(b,c,d,a){if(b.addEventListener){b.addEventListener(c,d,a)}else{if(b.attachEvent){b.attachEvent("on"+c,d)}else{b["on"+c]=d}}},getKeyPress:function(a){var b;if(window.event){b=window.event.keyCode}else{if(a){b=a.which}}return b},verify:function(c){if(c.seahorse){var b=c.seahorse.options;var d=c.seahorse.validate();var f=c.seahorse.parse();if(b.autoparse||b.autofill){if(c.value!=null&&c.value.toString().length>0&&f!=null&&f.toString().length>0){c.value=f.toString()}}if(b.okClass){if(d){Seahorse._addClass(c,b.okClass)}else{Seahorse._removeClass(c,b.okClass)}}if(b.errorClass){if(d){Seahorse._removeClass(c,b.errorClass)}else{Seahorse._addClass(c,b.errorClass)}}if(b.targetId){var a=document.getElementById(b.targetId);if(a){if(b.targetOkClass){if(d){Seahorse._addClass(a,b.targetOkClass)}else{Seahorse._removeClass(a,b.targetOkClass)}}if(b.targetErrorClass){if(d){Seahorse._removeClass(a,b.targetErrorClass)}else{Seahorse._addClass(a,b.targetErrorClass)}}}}if(b.hiddenElementId){var e=document.getElementById(b.hiddenElementId);if(e){if(d){e.style.display="none"}else{e.style.display="block"}}}if(b.callbackFunction){b.callbackFunction(c,d)}return d}return true},keyUp:function(c){if(this.seahorse){var a=this.seahorse.options;var b=this.seahorse.validate();if(a.okClass){if(b){Seahorse._addClass(this,a.okClass)}else{Seahorse._removeClass(this,a.okClass)}}if(a.errorClass){if(b){Seahorse._removeClass(this,a.errorClass)}else{Seahorse._addClass(this,a.errorClass)}}if(this.seahorse_onkeyup){this.seahorse_onkeyup(c)}}},blur:function(a){if(this.seahorse){Seahorse._eventhandler.verify(this);if(this.seahorse_onblur){this.seahorse_onblur(a)}}},numberKeyPress:function(d){var e=Seahorse._eventhandler.getKeyPress(d);var a=String.fromCharCode(e);var g=Seahorse._isNumericChar(e)||Seahorse._isAsciiSpecialKey(e)||a=="-"||a=="+"||a==this.seahorse.options.decimalCharacter||a==this.seahorse.options.groupingCharacter;if(!g&&this.seahorse.options.forbidEntrance){if(this.seahorse_onkeypress){this.seahorse_onkeypress(d)}return false}var b=this.value;if(b.length>0&&(a=="-"||a=="+")){var f=b.substring(0,1);if(f=="-"||f=="+"){b=b.substring(1,b.length);if(a!=f){b=a+b}this.value=b}else{this.value=a+b}if(this.seahorse_onkeypress){this.seahorse_onkeypress(d)}return false}if(this.seahorse_onkeypress){return this.seahorse_onkeypress(d)}return true},keyPress:function(c){var d=Seahorse._eventhandler.getKeyPress(c);var b=String.fromCharCode(d);var a=(this.seahorse.options.maxLength)?this.value.length<this.seahorse.options.maxLength:true;var e=this.seahorse.validCharacter(b);if((!a||!e)&&!Seahorse._isAsciiSpecialKey(d)&&this.seahorse.options.forbidEntrance){if(this.seahorse_onkeypress){this.seahorse_onkeypress(c)}return false}if(this.seahorse_onkeypress){return this.seahorse_onkeypress(c)}return true}};
