

/* jQuery validation plug-in 1.5.2
 * Copyright (c) 2006 - 2008 JÃ¶rn Zaefferer
 * Dual licensed under the MIT and GPL licenses
 */
(function ($) {
    $.extend($.fn, {
        validate: function (options) {
            if (!this.length) {
                options && options.debug && window.console && console.warn("nothing selected, can't validate, returning nothing");
                return;
            }
            var validator = $.data(this[0], 'validator');
            if (validator) {
                return validator;
            }
            validator = new $.validator(options, this[0]);
            $.data(this[0], 'validator', validator);
            if (validator.settings.onsubmit) {
                this.find("input, button").filter(".cancel").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()) {
                        if (validator.pendingRequest) {
                            validator.formSubmitted = true;
                            return false;
                        }
                        return handle();
                    } else {
                        validator.focusInvalid();
                        return false;
                    }
                });
            }
            return validator;
        },
        valid: function () {
            if ($(this[0]).is('form')) {
                return this.validate().form();
            } else {
                var valid = false;
                var validator = $(this[0].form).validate();
                this.each(function () {
                    valid |= validator.element(this);
                });
                return valid;
            }
        },
        removeAttrs: function (attributes) {
            var result = {},
                $element = this;
            $.each(attributes.split(/\s/), function (index, value) {
                    result[value] = $element.attr(value);
                    $element.removeAttr(value);
                });
            return result;
        },
        rules: function (command, argument) {
            var element = this[0];
            if (command) {
                var settings = $.data(element.form, 'validator').settings;
                var staticRules = settings.rules;
                var existingRules = $.validator.staticRules(element);
                switch (command) {
                case "add":
                    $.extend(existingRules, $.validator.normalizeRule(argument));
                    staticRules[element.name] = existingRules;
                    if (argument.messages) settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages);
                    break;
                case "remove":
                    if (!argument) {
                        delete staticRules[element.name];
                        return existingRules;
                    }
                    var filtered = {};
                    $.each(argument.split(/\s/), function (index, method) {
                        filtered[method] = existingRules[method];
                        delete existingRules[method];
                    });
                    return filtered;
                }
            }
            var data = $.validator.normalizeRules($.extend({}, $.validator.metadataRules(element), $.validator.classRules(element), $.validator.attributeRules(element), $.validator.staticRules(element)), element);
            if (data.required) {
                var param = data.required;
                delete data.required;
                data = $.extend({
                    required: param
                }, data);
            }
            return data;
        }
    });
    $.extend($.expr[":"], {
        blank: function (a) {
            return !$.trim(a.value);
        },
        filled: function (a) {
            return !!$.trim(a.value);
        },
        unchecked: function (a) {
            return !a.checked;
        }
    });
    $.format = function (source, params) {
        if (arguments.length == 1) return function () {
            var args = $.makeArray(arguments);
            args.unshift(source);
            return $.format.apply(this, args);
        };
        if (arguments.length > 2 && params.constructor != Array) {
            params = $.makeArray(arguments).slice(1);
        }
        if (params.constructor != Array) {
            params = [params];
        }
        $.each(params, function (i, n) {
            source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
        });
        return source;
    };
    $.validator = function (options, form) {
        this.settings = $.extend({}, $.validator.defaults, options);
        this.currentForm = form;
        this.init();
    };
    $.extend($.validator, {
        defaults: {
            messages: {},
            groups: {},
            rules: {},
            errorClass: "error",
            errorElement: "label",
            focusInvalid: true,
            errorContainer: $([]),
            errorLabelContainer: $([]),
            onsubmit: true,
            ignore: [],
            ignoreTitle: false,
            onfocusin: function (element) {
                this.lastActive = element;
                if (this.settings.focusCleanup && !this.blockFocusCleanup) {
                    this.settings.unhighlight && this.settings.unhighlight.call(this, element, this.settings.errorClass);
                    this.errorsFor(element).hide();
                }
            },
            onfocusout: function (element) {
                if (!this.checkable(element) && (element.name in this.submitted || !this.optional(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);
            },
            highlight: function (element, errorClass) {
                $(element).addClass(errorClass);
            },
            unhighlight: function (element, errorClass) {
                $(element).removeClass(errorClass);
            }
        },
        setDefaults: function (settings) {
            $.extend($.validator.defaults, settings);
        },
        messages: {
            required: "This field is required.",
            remote: "Please fix this field.",
            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 gÃ¼ltiges 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 number.",
            equalTo: "Please enter the same value again.",
            accept: "Please enter a value with a valid extension.",
            maxlength: $.format("Please enter no more than {0} characters."),
            minlength: $.format("Please enter at least {0} characters."),
            rangelength: $.format("Please enter a value between {0} and {1} characters long."),
            range: $.format("Please enter a value between {0} and {1}."),
            max: $.format("Please enter a value less than or equal to {0}."),
            min: $.format("Please enter a value greater than or equal to {0}.")
        },
        autoCreateRanges: false,
        prototype: {
            init: function () {
                this.labelContainer = $(this.settings.errorLabelContainer);
                this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
                this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
                this.submitted = {};
                this.valueCache = {};
                this.pendingRequest = 0;
                this.pending = {};
                this.invalid = {};
                this.reset();
                var groups = (this.groups = {});
                $.each(this.settings.groups, function (key, value) {
                    $.each(value.split(/\s/), function (index, name) {
                        groups[name] = key;
                    });
                });
                var rules = this.settings.rules;
                $.each(rules, function (key, value) {
                    rules[key] = $.validator.normalizeRule(value);
                });

                function delegate(event) {
                    var validator = $.data(this[0].form, "validator");
                    validator.settings["on" + event.type] && validator.settings["on" + event.type].call(validator, this[0]);
                }
                $(this.currentForm).delegate("focusin focusout keyup", ":text, :password, :file, select, textarea", delegate).delegate("click", ":radio, :checkbox", delegate);
                if (this.settings.invalidHandler) $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
            },
            form: function () {
                this.checkForm();
                $.extend(this.submitted, this.errorMap);
                this.invalid = $.extend({}, this.errorMap);
                if (!this.valid()) $(this.currentForm).triggerHandler("invalid-form", [this]);
                this.showErrors();
                return this.valid();
            },
            checkForm: function () {
                this.prepareForm();
                for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) {
                    this.check(elements[i]);
                }
                return this.valid();
            },
            element: function (element) {
                element = this.clean(element);
                this.lastElement = element;
                this.prepareElement(element);
                this.currentElements = $(element);
                var result = this.check(element);
                if (result) {
                    delete this.invalid[element.name];
                } else {
                    this.invalid[element.name] = true;
                }
                if (!this.numberOfInvalids()) {
                    this.toHide = this.toHide.add(this.containers);
                }
                this.showErrors();
                return result;
            },
            showErrors: function (errors) {
                if (errors) {
                    $.extend(this.errorMap, errors);
                    this.errorList = [];
                    for (var name in errors) {
                        this.errorList.push({
                            message: errors[name],
                            element: this.findByName(name)[0]
                        });
                    }
                    this.successList = $.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 ($.fn.resetForm) $(this.currentForm).resetForm();
                this.submitted = {};
                this.prepareForm();
                this.hideErrors();
                this.elements().removeClass(this.settings.errorClass);
            },
            numberOfInvalids: function () {
                return this.objectLength(this.invalid);
            },
            objectLength: function (obj) {
                var count = 0;
                for (var i in obj) 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 {
                        $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
                    } catch (e) {}
                }
            },
            findLastActive: function () {
                var lastActive = this.lastActive;
                return lastActive && $.grep(this.errorList, function (n) {
                    return n.element.name == lastActive.name;
                }).length == 1 && lastActive;
            },
            elements: function () {
                var validator = this,
                    rulesCache = {};
                return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [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 rulesCache || !validator.objectLength($(this).rules())) return false;
                        rulesCache[this.name] = true;
                        return true;
                    });
            },
            clean: function (selector) {
                return $(selector)[0];
            },
            errors: function () {
                return $(this.settings.errorElement + "." + this.settings.errorClass, this.errorContext);
            },
            reset: function () {
                this.successList = [];
                this.errorList = [];
                this.errorMap = {};
                this.toShow = $([]);
                this.toHide = $([]);
                this.formSubmitted = false;
                this.currentElements = $([]);
            },
            prepareForm: function () {
                this.reset();
                this.toHide = this.errors().add(this.containers);
            },
            prepareElement: function (element) {
                this.reset();
                this.toHide = this.errorsFor(element);
            },
            check: function (element) {
                element = this.clean(element);
                if (this.checkable(element)) {
                    element = this.findByName(element.name)[0];
                }
                var rules = $(element).rules();
                var dependencyMismatch = false;
                for (method in rules) {
                    var rule = {
                        method: method,
                        parameters: rules[method]
                    };
                    try {
                        var result = $.validator.methods[method].call(this, element.value.replace(/\r/g, ""), element, rule.parameters);
                        if (result == "dependency-mismatch") {
                            dependencyMismatch = true;
                            continue;
                        }
                        dependencyMismatch = false;
                        if (result == "pending") {
                            this.toHide = this.toHide.not(this.errorsFor(element));
                            return;
                        }
                        if (!result) {
                            this.formatAndAdd(element, rule);
                            return false;
                        }
                    } catch (e) {
                        this.settings.debug && window.console && console.log("exception occured when checking element " + element.id + ", check the '" + rule.method + "' method");
                        throw e;
                    }
                }
                if (dependencyMismatch) return;
                if (this.objectLength(rules)) this.successList.push(element);
                return true;
            },
            customMetaMessage: function (element, method) {
                if (!$.metadata) return;
                var meta = this.settings.meta ? $(element).metadata()[this.settings.meta] : $(element).metadata();
                return meta && meta.messages && meta.messages[method];
            },
            customMessage: function (name, method) {
                var m = this.settings.messages[name];
                return m && (m.constructor == String ? m : m[method]);
            },
            findDefined: function () {
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] !== undefined) return arguments[i];
                }
                return undefined;
            },
            defaultMessage: function (element, method) {
                return this.findDefined(this.customMessage(element.name, method), this.customMetaMessage(element, method), !this.settings.ignoreTitle && element.title || undefined, $.validator.messages[method], "<strong>Warning: No message defined for " + element.name + "</strong>");
            },
            formatAndAdd: function (element, rule) {
                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 = toToggle.add(toToggle.parents(this.settings.wrapper));
                return toToggle;
            },
            defaultShowErrors: function () {
                for (var i = 0; this.errorList[i]; i++) {
                    var error = this.errorList[i];
                    this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass);
                    this.showLabel(error.element, error.message);
                }
                if (this.errorList.length) {
                    this.toShow = this.toShow.add(this.containers);
                }
                if (this.settings.success) {
                    for (var i = 0; this.successList[i]; i++) {
                        this.showLabel(this.successList[i]);
                    }
                }
                if (this.settings.unhighlight) {
                    for (var i = 0, elements = this.validElements(); elements[i]; i++) {
                        this.settings.unhighlight.call(this, elements[i], this.settings.errorClass);
                    }
                }
                this.toHide = this.toHide.not(this.toShow);
                this.hideErrors();
                this.addWrapper(this.toShow).show();
            },
            validElements: function () {
                return this.currentElements.not(this.invalidElements());
            },
            invalidElements: function () {
                return $(this.errorList).map(function () {
                    return this.element;
                });
            },
            showLabel: function (element, message) {
                var label = this.errorsFor(element);
                if (label.length) {
                    label.removeClass().addClass(this.settings.errorClass);
                    label.attr("generated") && label.html(message);
                } else {
                    label = $("<" + 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, $(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 = this.toShow.add(label);
            },
            errorsFor: function (element) {
                return this.errors().filter("[for='" + this.idOrName(element) + "']");
            },
            idOrName: function (element) {
                return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
            },
            checkable: function (element) {
                return /radio|checkbox/i.test(element.type);
            },
            findByName: function (name) {
                var form = this.currentForm;
                return $(document.getElementsByName(name)).map(function (index, element) {
                    return element.form == form && element.name == name && element || null;
                });
            },
            getLength: function (value, element) {
                switch (element.nodeName.toLowerCase()) {
                case 'select':
                    return $("option:selected", element).length;
                case 'input':
                    if (this.checkable(element)) return this.findByName(element.name).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 !!$(param, element.form).length;
                },
                "function": function (param, element) {
                    return param(element);
                }
            },
            optional: function (element) {
                return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch";
            },
            startRequest: function (element) {
                if (!this.pending[element.name]) {
                    this.pendingRequest++;
                    this.pending[element.name] = true;
                }
            },
            stopRequest: function (element, valid) {
                this.pendingRequest--;
                if (this.pendingRequest < 0) this.pendingRequest = 0;
                delete this.pending[element.name];
                if (valid && this.pendingRequest == 0 && this.formSubmitted && this.form()) {
                    $(this.currentForm).submit();
                } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                }
            },
            previousValue: function (element) {
                return $.data(element, "previousValue") || $.data(element, "previousValue", previous = {
                    old: null,
                    valid: true,
                    message: this.defaultMessage(element, "remote")
                });
            }
        },
        classRuleSettings: {
            required: {
                required: true
            },
            email: {
                email: true
            },
            url: {
                url: true
            },
            date: {
                date: true
            },
            dateISO: {
                dateISO: true
            },
            dateDE: {
                dateDE: true
            },
            number: {
                number: true
            },
            numberDE: {
                numberDE: true
            },
            digits: {
                digits: true
            },
            creditcard: {
                creditcard: true
            }
        },
        addClassRules: function (className, rules) {
            className.constructor == String ? this.classRuleSettings[className] = rules : $.extend(this.classRuleSettings, className);
        },
        classRules: function (element) {
            var rules = {};
            var classes = $(element).attr('class');
            classes && $.each(classes.split(' '), function () {
                if (this in $.validator.classRuleSettings) {
                    $.extend(rules, $.validator.classRuleSettings[this]);
                }
            });
            return rules;
        },
        attributeRules: function (element) {
            var rules = {};
            var $element = $(element);
            for (method in $.validator.methods) {
                var value = $element.attr(method);
                if (value) {
                    rules[method] = value;
                }
            }
            if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
                delete rules.maxlength;
            }
            return rules;
        },
        metadataRules: function (element) {
            if (!$.metadata) return {};
            var meta = $.data(element.form, 'validator').settings.meta;
            return meta ? $(element).metadata()[meta] : $(element).metadata();
        },
        staticRules: function (element) {
            var rules = {};
            var validator = $.data(element.form, 'validator');
            if (validator.settings.rules) {
                rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
            }
            return rules;
        },
        normalizeRules: function (rules, element) {
            $.each(rules, function (prop, val) {
                if (val === false) {
                    delete rules[prop];
                    return;
                }
                if (val.param || val.depends) {
                    var keepRule = true;
                    switch (typeof val.depends) {
                    case "string":
                        keepRule = !! $(val.depends, element.form).length;
                        break;
                    case "function":
                        keepRule = val.depends.call(element, element);
                        break;
                    }
                    if (keepRule) {
                        rules[prop] = val.param !== undefined ? val.param : true;
                    } else {
                        delete rules[prop];
                    }
                }
            });
            $.each(rules, function (rule, parameter) {
                rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
            });
            $.each(['minlength', 'maxlength', 'min', 'max'], function () {
                if (rules[this]) {
                    rules[this] = Number(rules[this]);
                }
            });
            $.each(['rangelength', 'range'], function () {
                if (rules[this]) {
                    rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
                }
            });
            if ($.validator.autoCreateRanges) {
                if (rules.min && rules.max) {
                    rules.range = [rules.min, rules.max];
                    delete rules.min;
                    delete rules.max;
                }
                if (rules.minlength && rules.maxlength) {
                    rules.rangelength = [rules.minlength, rules.maxlength];
                    delete rules.minlength;
                    delete rules.maxlength;
                }
            }
            if (rules.messages) {
                delete rules.messages
            }
            return rules;
        },
        normalizeRule: function (data) {
            if (typeof data == "string") {
                var transformed = {};
                $.each(data.split(/\s/), function () {
                    transformed[this] = true;
                });
                data = transformed;
            }
            return data;
        },
        addMethod: function (name, method, message) {
            $.validator.methods[name] = method;
            $.validator.messages[name] = message;
            if (method.length < 3) {
                $.validator.addClassRules(name, $.validator.normalizeRule(name));
            }
        },
        methods: {
            required: function (value, element, param) {
                if (!this.depend(param, element)) return "dependency-mismatch";
                switch (element.nodeName.toLowerCase()) {
                case 'select':
                    var options = $("option:selected", element);
                    return options.length > 0 && (element.type == "select-multiple" || ($.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 $.trim(value).length > 0;
                }
            },
            remote: function (value, element, param) {
                if (this.optional(element)) return "dependency-mismatch";
                var previous = this.previousValue(element);
                if (!this.settings.messages[element.name]) this.settings.messages[element.name] = {};
                this.settings.messages[element.name].remote = typeof previous.message == "function" ? previous.message(value) : previous.message;
                param = typeof param == "string" && {
                    url: param
                } || param;
                if (previous.old !== value) {
                    previous.old = value;
                    var validator = this;
                    this.startRequest(element);
                    var data = {};
                    data[element.name] = value;
                    $.ajax($.extend(true, {
                        url: param,
                        mode: "abort",
                        port: "validate" + element.name,
                        dataType: "json",
                        data: data,
                        success: function (response) {
                            if (response) {
                                var submitted = validator.formSubmitted;
                                validator.prepareElement(element);
                                validator.formSubmitted = submitted;
                                validator.successList.push(element);
                                validator.showErrors();
                            } else {
                                var errors = {};
                                errors[element.name] = response || validator.defaultMessage(element, "remote");
                                validator.showErrors(errors);
                            }
                            previous.valid = response;
                            validator.stopRequest(element, response);
                        }
                    }, param));
                    return "pending";
                } else if (this.pending[element.name]) {
                    return "pending";
                }
                return previous.valid;
            },
            minlength: function (value, element, param) {
                return this.optional(element) || this.getLength($.trim(value), element) >= param;
            },
            maxlength: function (value, element, param) {
                return this.optional(element) || this.getLength($.trim(value), element) <= param;
            },
            rangelength: function (value, element, param) {
                var length = this.getLength($.trim(value), element);
                return this.optional(element) || (length >= param[0] && length <= param[1]);
            },
            min: function (value, element, param) {
                return this.optional(element) || value >= param;
            },
            max: function (value, element, param) {
                return this.optional(element) || value <= param;
            },
            range: function (value, element, param) {
                return this.optional(element) || (value >= param[0] && value <= param[1]);
            },
            email: function (value, element) {
                return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
            },
            url: function (value, element) {
                return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
            },
            date: function (value, element) {
                return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
            },
            dateISO: function (value, element) {
                return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);
            },
            dateDE: function (value, element) {
                return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
            },
            number: function (value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
            },
            numberDE: function (value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
            },
            digits: function (value, element) {
                return this.optional(element) || /^\d+$/.test(value);
            },
            creditcard: function (value, element) {
                if (this.optional(element)) return "dependency-mismatch";
                if (/[^0-9-]+/.test(value)) return false;
                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.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
            },
            equalTo: function (value, element, param) {
                return value == $(param).val();
            }
        }
    });
})(jQuery);;
(function ($) {
    var ajax = $.ajax;
    var pendingRequests = {};
    $.ajax = function (settings) {
        settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
        var port = settings.port;
        if (settings.mode == "abort") {
            if (pendingRequests[port]) {
                pendingRequests[port].abort();
            }
            return (pendingRequests[port] = ajax.apply(this, arguments));
        }
        return ajax.apply(this, arguments);
    };
})(jQuery);;
(function ($) {
    $.each({
        focus: 'focusin',
        blur: 'focusout'
    }, function (original, fix) {
        $.event.special[fix] = {
            setup: function () {
                if ($.browser.msie) return false;
                this.addEventListener(original, $.event.special[fix].handler, true);
            },
            teardown: function () {
                if ($.browser.msie) return false;
                this.removeEventListener(original, $.event.special[fix].handler, true);
            },
            handler: function (e) {
                arguments[0] = $.event.fix(e);
                arguments[0].type = fix;
                return $.event.handle.apply(this, arguments);
            }
        };
    });
    $.extend($.fn, {
        delegate: function (type, delegate, handler) {
            return this.bind(type, function (event) {
                var target = $(event.target);
                if (target.is(delegate)) {
                    return handler.apply(target, arguments);
                }
            });
        },
        triggerEvent: function (type, target) {
            return this.triggerHandler(type, [$.event.fix({
                type: type,
                target: target
            })]);
        }
    })
})(jQuery);
// custom validation methods
(function($) {
    $.validator.addMethod("username", function(value, element) {
        if(value.length < 3) return false;
        var _params = {
                "page"  : "users",
                "view"  : "do_username_check",
                "id"    : value
            };
        return !/error/gi.test($.ajax({
            type    : "GET",
            url     : $("#baseurl").attr("rel") +"/index.php",
            data    : _params,
            async   : false
        }).responseText);
    }, "Username is already in use");
    $.validator.addMethod("email_address", function(value, element) {
        if(value.length < 6) return false;
        var _params = {
                "page"  : "users",
                "view"  : "do_email_check",
                "id"    : value
            };
        return !/error/gi.test($.ajax({
            type    : "GET",
            url     : $("#baseurl").attr("rel") +"/index.php",
            data    : _params,
            async   : false
        }).responseText);
    }, "Email Address is already in use");
})(jQuery);
//
$(document).ready(function () {
    var placeError = function (error, element) {
            error.appendTo(element.siblings(".error").toggleClass("active").attr("title", error.text()));
        };

    $('div.form.validate form').validate({
        onclick : true,
        valid   : "valid",
        ignore  : ".ignore",
        errorPlacement : placeError
    });
});

/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());
/*!
 * The following copyright notice may not be removed under any circumstances.
 *
 * Copyright:
 * Copyright � 1993 , Monotype Typography ltd.
 *
 * Trademark:
 * Arial � Trademark of Monotype Typography ltd registered in the US Pat & TM.and
 * elsewhere.
 */
Cufon.registerFont({"w":182,"face":{"font-family":"Calibri","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 15 7 2 3 4 4 3 2 4","ascent":"270","descent":"-90","x-height":"4","bbox":"-7.17741 -269.039 318.141 65.25","underline-thickness":"32.6953","underline-position":"-15.1172","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":81},"\u00a0":{"w":81},"A":{"d":"50,-7v-9,15,-59,13,-43,-11r73,-206v11,-7,56,-9,61,5r73,212v-1,13,-42,13,-49,1r-15,-46r-86,0xm107,-184r-33,97r65,0","w":218,"k":{"-":4,".":-3,",":-4,"?":15,"v":9,"C":4,"G":4,"J":-5,"O":5,"Q":5,"U":6,"W":14,"Y":29,"t":11,"y":11,"T":28,"V":18}},"B":{"d":"144,-123v27,6,45,23,45,55v0,72,-77,69,-151,68v-9,0,-13,-6,-13,-15r0,-198v2,-26,47,-12,71,-14v47,-3,80,13,80,57v0,26,-13,40,-32,47xm70,-134v32,2,60,0,60,-30v0,-30,-29,-30,-60,-29r0,59xm70,-35v35,1,72,3,72,-32v0,-34,-35,-35,-72,-33r0,65","w":201,"k":{",":4,"v":4,"W":5,"X":9,"Y":12,"Z":4,"f":4,"t":4,"x":4,"y":4,"A":4,"T":8,"V":6}},"C":{"d":"123,-36v27,6,42,-24,58,-14v9,46,-28,54,-66,54v-68,0,-101,-44,-101,-115v0,-72,34,-120,105,-120v34,0,68,6,62,48v0,5,-1,11,-6,11v-15,-8,-29,-21,-54,-20v-43,1,-57,36,-57,79v0,45,14,77,59,77","w":190,"k":{",":1,"G":3,"J":-3,"O":3,"Q":3,"T":-2}},"D":{"d":"38,-227v103,-7,176,13,176,110v0,102,-70,124,-176,117v-9,0,-13,-6,-13,-15r0,-198v0,-9,5,-14,13,-14xm71,-37v64,6,95,-18,95,-78v0,-57,-31,-82,-95,-76r0,154","w":226,"k":{".":8,",":8,"J":4,"W":4,"X":9,"Y":10,"Z":4,"A":8,"T":5,"V":5}},"E":{"d":"153,-36v10,3,10,33,0,36r-115,0v-9,0,-13,-6,-13,-15r0,-198v0,-9,5,-14,13,-14r114,0v8,0,11,33,0,36r-81,0r0,55v24,2,57,-6,74,4v-1,11,5,28,-5,32r-69,0r0,64r82,0","w":175,"k":{"-":7,"v":9,"C":5,"G":5,"O":6,"Q":6,"Z":2,"a":5,"c":4,"d":5,"q":5,"e":6,"f":10,"o":6,"t":5,"y":9,"A":4,"S":4,"w":7}},"F":{"d":"25,-213v0,-9,5,-14,13,-14r110,1v6,5,7,33,-2,36r-75,0r0,62r70,0v10,0,10,34,0,37r-70,0r0,84v-2,12,-41,13,-46,0r0,-206","w":165,"k":{"\/":10,".":28,",":31,"C":3,"G":3,"J":19,"O":3,"Q":3,"X":4,"Z":2,"a":10,"c":4,"d":4,"q":4,"e":5,"o":4,"s":4,"A":20,"S":5}},"G":{"d":"131,-231v39,0,81,1,76,48v0,5,-2,10,-6,10v-17,-10,-40,-21,-68,-21v-47,0,-71,31,-73,80v-3,60,49,94,101,72r0,-52v-24,-2,-58,12,-50,-26v1,-4,3,-9,7,-9r76,0v9,0,13,6,13,14v-1,33,3,71,-2,100v-16,14,-47,19,-76,19v-74,0,-116,-41,-116,-115v0,-76,43,-120,118,-120","w":229,"k":{"v":5,"W":1,"Y":5,"x":4,"y":5,"T":2,"V":2,"w":4}},"H":{"d":"156,-221v4,-12,43,-11,46,0r0,215v-4,11,-40,11,-46,0r0,-92r-85,0r0,92v-4,11,-40,11,-46,0r0,-215v3,-12,42,-12,46,0r0,83r85,0r0,-83","w":227},"I":{"d":"25,-221v4,-12,43,-11,46,0r0,215v-4,11,-40,11,-46,0r0,-215","w":95},"J":{"d":"48,-221v4,-12,45,-11,47,0r0,158v10,57,-58,86,-94,53v1,-12,-4,-31,5,-34v17,11,49,10,42,-21r0,-156","w":119,"k":{".":3,",":4,"X":4,"A":8}},"K":{"d":"138,-221v6,-11,44,-12,49,0v-16,39,-48,65,-70,98r74,116v-3,13,-44,10,-51,0r-69,-108r0,108v-2,12,-41,13,-46,0r0,-214v3,-12,42,-12,46,0r0,97","w":196,"k":{"-":7,"v":16,"C":13,"G":14,"O":16,"Q":16,"U":5,"W":4,"a":5,"c":7,"d":7,"q":7,"m":4,"p":4,"r":4,"e":7,"f":6,"n":4,"o":6,"s":3,"t":9,"u":4,"y":14,"S":3,"w":15}},"L":{"d":"143,-38v10,3,10,34,0,38r-105,0v-9,0,-13,-6,-13,-15r0,-206v3,-12,42,-12,46,0r0,183r72,0","w":152,"k":{",":-5,"v":14,"C":4,"G":7,"J":-6,"O":6,"Q":6,"U":9,"W":20,"Y":32,"f":5,"t":7,"y":15,"T":26,"V":28,"w":12}},"M":{"d":"209,-201v-1,-32,81,-40,81,-8r0,203v-3,11,-38,11,-44,0r0,-185r-66,184v-3,12,-43,13,-47,0r-64,-184r0,185v-3,10,-39,11,-44,0r0,-203v-2,-29,66,-23,78,-5r55,148","w":314},"N":{"d":"171,-221v4,-11,39,-10,41,0r0,205v1,24,-54,20,-63,2r-84,-163r1,170v-1,12,-38,13,-41,0r0,-204v-1,-25,57,-21,67,-4v28,49,55,102,80,152","w":237},"O":{"d":"124,-232v73,0,107,40,105,116v-1,75,-35,119,-109,120v-75,1,-106,-41,-106,-116v0,-75,36,-120,110,-120xm121,-34v46,0,59,-35,60,-80v0,-46,-14,-80,-59,-80v-43,0,-59,32,-59,79v0,48,13,80,58,81","w":243,"k":{".":5,",":8,"J":4,"W":4,"X":12,"Y":11,"Z":6,"x":2,"z":2,"A":5,"T":8,"V":6}},"P":{"d":"40,-227v73,-3,141,-1,141,69v-1,61,-44,83,-110,79r0,73v-4,11,-40,11,-46,0r0,-205v0,-11,5,-16,15,-16xm71,-115v36,3,61,-5,61,-40v0,-34,-26,-39,-61,-37r0,77","w":191,"k":{"-":8,"\/":15,".":40,",":40,"J":22,"X":8,"Y":2,"Z":5,"a":7,"c":7,"d":4,"q":4,"e":6,"f":-3,"o":6,"s":4,"t":-3,"y":-3,"A":24,"T":1,"V":2}},"Q":{"d":"199,-25v19,21,68,20,47,66v-36,-3,-61,-25,-81,-46v-11,4,-29,9,-45,9v-75,1,-106,-41,-106,-116v0,-75,36,-120,110,-120v73,0,105,41,105,115v0,40,-10,72,-30,92xm121,-34v46,0,59,-35,60,-80v0,-46,-14,-80,-59,-80v-43,0,-59,32,-59,79v0,49,13,81,58,81","w":246,"k":{"}":-5,"]":-6,")":-5,"\/":-19,";":-11,",":-17,"x":-4,"j":-14,"g":-10,"Y":10,"X":-1,"W":3,"V":6,"T":7,"J":-6}},"R":{"d":"182,-165v0,34,-19,50,-44,59v31,20,46,65,55,103v-9,5,-44,9,-49,-4v-21,-32,-15,-91,-73,-86r0,87v-4,11,-40,11,-46,0r0,-207v7,-29,62,-9,98,-13v35,5,58,22,59,61xm71,-128v34,2,62,-1,63,-32v1,-32,-29,-34,-63,-32r0,64","w":202,"k":{".":-2,"v":3,"C":3,"G":3,"O":4,"Q":4,"W":3,"Y":7,"e":5,"o":6,"y":4,"S":4,"T":4,"V":4,"w":4}},"S":{"d":"140,-180v-20,-19,-95,-25,-74,22v30,30,94,29,94,90v0,49,-36,72,-85,72v-34,0,-69,-4,-64,-46v1,-4,2,-10,7,-10v23,22,112,31,89,-23v-29,-31,-92,-29,-92,-91v0,-67,94,-84,131,-46v-2,11,4,30,-6,32","w":170,"k":{"-":1,"v":4,"J":1,"W":3,"X":3,"Y":7,"y":5,"A":4,"T":4,"V":4,"w":3}},"T":{"d":"169,-227v10,2,11,33,0,37r-57,0r0,184v-4,11,-40,11,-46,0r0,-184r-57,0v-10,-3,-10,-34,0,-37r160,0","w":178,"k":{"-":25,"\/":21,".":30,":":15,";":15,",":33,"v":11,"C":8,"G":10,"J":13,"O":10,"Q":10,"a":27,"c":31,"d":26,"q":26,"m":18,"p":18,"r":18,"e":31,"n":18,"o":31,"s":24,"u":18,"x":13,"y":11,"z":19,"A":28,"S":2,"T":-4,"g":26,"w":11}},"U":{"d":"165,-221v2,-12,43,-11,45,0r0,136v0,60,-34,89,-94,89v-58,0,-91,-28,-91,-87r0,-138v3,-12,41,-11,46,0r0,134v0,34,15,53,47,53v76,0,37,-118,47,-187","w":235,"k":{".":5,",":4,"J":6,"A":10}},"V":{"d":"163,-219v5,-18,61,-14,43,9r-70,207v-9,7,-39,5,-54,2v-4,0,-7,-3,-7,-8r-71,-211v1,-14,45,-12,49,0r56,176","w":212,"k":{"-":15,"\/":17,".":34,":":11,";":15,",":28,"C":6,"G":6,"J":14,"O":7,"Q":7,"a":20,"c":19,"d":16,"q":16,"m":10,"p":10,"r":10,"e":18,"n":10,"o":17,"s":15,"u":10,"y":5,"z":14,"A":19,"S":3,"V":-2,"g":18}},"W":{"d":"274,-218v1,-16,47,-15,44,-2r-57,215v-10,10,-58,12,-63,-7r-36,-144r-37,151v-10,10,-59,11,-64,-7r-53,-208v0,-13,24,-8,36,-8v7,0,12,2,12,9r40,174r42,-173v1,-16,49,-16,53,0r43,173","w":326,"k":{"-":11,".":31,";":20,",":30,"v":4,"C":5,"G":4,"J":15,"O":4,"Q":4,"X":3,"a":13,"c":14,"d":12,"q":12,"m":10,"p":10,"r":10,"e":13,"n":10,"o":14,"s":12,"u":10,"y":6,"A":17,"S":2,"g":10}},"X":{"d":"133,-117r58,109v2,15,-29,8,-45,8v-21,-25,-31,-60,-48,-88v-17,29,-29,62,-49,88v-15,2,-52,8,-38,-17r55,-100r-55,-103v-2,-15,29,-8,44,-7v21,21,29,55,46,81r41,-79v9,-5,34,-5,45,-1v-8,41,-38,72,-54,109","w":198,"k":{"-":11,"v":13,"C":12,"G":13,"O":12,"Q":12,"d":8,"q":8,"e":7,"o":7,"t":8,"u":6,"y":11,"S":4,"g":1,"w":11}},"Y":{"d":"117,-6v-6,12,-43,10,-47,0r0,-80r-66,-134v-1,-15,30,-8,44,-7v22,27,31,67,47,99v16,-32,25,-71,45,-99v18,-2,52,-9,39,17r-62,124r0,80","w":187,"k":{"-":19,"\/":24,".":40,":":25,";":24,",":42,"v":12,"j":8,"C":14,"G":14,"J":20,"O":14,"Q":14,"Z":2,"a":25,"c":31,"d":25,"q":25,"m":18,"p":18,"r":18,"e":29,"f":11,"i":5,"n":18,"o":29,"s":22,"t":9,"u":18,"x":15,"y":13,"z":20,"A":31,"S":5,"g":27,"w":11}},"Z":{"d":"158,-37v10,2,10,34,0,37r-134,0v-24,0,-13,-38,-5,-51r88,-140r-87,0v-11,-1,-8,-16,-8,-27v1,-5,3,-11,8,-9r125,0v24,-1,12,40,4,52r-86,138r95,0","w":172,"k":{"-":6,"v":8,"C":6,"G":5,"O":5,"Q":5,"W":2,"Y":2,"a":2,"c":3,"d":3,"q":3,"e":5,"o":5,"y":6,"A":2,"w":7}},"a":{"d":"86,-173v44,0,70,16,70,62r0,106v-6,10,-47,11,-37,-13v-26,35,-110,28,-107,-29v2,-48,48,-54,100,-53v11,-56,-60,-39,-83,-23v-6,-2,-8,-10,-8,-18v0,-29,37,-32,65,-32xm56,-48v0,32,46,21,56,2r0,-27v-27,0,-56,-1,-56,25","w":177,"k":{"v":5,"f":2,"t":3,"x":3,"y":7,"w":3}},"b":{"d":"116,-173v49,1,64,39,64,87v0,50,-18,89,-68,90v-27,0,-39,-13,-52,-27v10,26,-25,32,-38,17r0,-231v3,-11,40,-12,44,0r0,87v12,-13,25,-23,50,-23xm102,-34v45,0,44,-101,1,-101v-20,0,-27,13,-37,25r0,52v10,12,19,24,36,24","w":193,"k":{"v":2,"f":2,"s":2,"t":1,"x":7,"y":2,"z":4,"w":2}},"c":{"d":"135,-51v8,3,7,26,4,36v-9,13,-31,19,-52,19v-51,0,-75,-31,-74,-85v0,-57,26,-90,79,-92v23,4,50,5,48,34v-2,38,-24,0,-46,2v-25,3,-37,22,-36,52v0,29,8,52,36,52v19,0,29,-12,41,-18","w":150,"k":{"a":2,"o":2}},"d":{"d":"127,-237v5,-12,41,-10,44,0r0,231v-7,15,-49,9,-38,-17v-14,15,-29,27,-54,27v-49,-1,-66,-38,-66,-86v0,-52,19,-91,69,-91v21,0,32,10,45,21r0,-85xm90,-33v19,0,27,-13,37,-26r0,-52v-10,-12,-19,-24,-36,-24v-46,0,-45,102,-1,102","w":193},"e":{"d":"93,-173v52,0,76,30,74,84v0,9,-5,16,-14,16r-95,0v-5,58,65,43,99,34v3,7,3,20,1,28v-12,12,-36,14,-61,15v-58,1,-84,-29,-84,-87v0,-55,27,-90,80,-90xm124,-102v8,-44,-54,-54,-63,-15v-1,5,-3,9,-3,15r66,0","w":181,"k":{"v":2,"f":3,"t":2,"x":6,"y":3,"z":4,"w":2}},"f":{"d":"86,-246v26,0,37,15,28,39v-27,-11,-45,3,-39,38v16,2,40,-8,35,18v5,24,-17,17,-35,18r0,127v-3,10,-39,11,-44,0r0,-127v-27,9,-36,-21,-20,-36r20,0v-3,-47,11,-77,55,-77","w":113,"k":{")":-5,"-":8,".":19,",":18,"v":-4,"a":6,"c":6,"d":7,"q":7,"e":6,"o":5,"s":4,"y":-2,"z":4,"g":7,"w":-1}},"g":{"d":"15,-114v1,-69,73,-57,142,-55v9,1,9,34,0,34r-19,0v30,44,-31,99,-82,71v-10,9,-5,26,11,25v46,0,96,0,94,47v-2,42,-36,56,-82,56v-39,-1,-72,-7,-74,-42v-1,-20,11,-29,22,-39v-22,-10,-16,-50,2,-61v-9,-8,-14,-19,-14,-36xm80,-88v18,0,26,-10,27,-27v1,-16,-11,-27,-27,-27v-16,0,-26,10,-26,28v0,15,11,27,26,26xm47,16v4,27,72,25,70,-6v-1,-22,-34,-15,-55,-17v-8,6,-14,11,-15,23","w":170,"k":{"\/":-11,",":-5,"a":6,"c":3,"d":4,"q":4,"e":4,"o":4,"t":3,"g":-3}},"h":{"d":"66,-150v35,-42,106,-23,106,48r0,96v-3,10,-39,11,-44,0v-6,-45,19,-128,-27,-128v-16,0,-25,12,-35,24r0,104v-3,11,-38,11,-44,0r0,-231v3,-11,40,-12,44,0r0,87","w":193,"k":{"v":5,"f":2,"t":3,"x":3,"y":7,"w":3}},"i":{"d":"22,-162v4,-12,42,-11,44,0r0,156v-3,11,-38,11,-44,0r0,-156xm44,-239v19,0,27,3,26,23v0,19,-7,24,-26,24v-20,0,-24,-4,-25,-23v0,-20,6,-24,25,-24","w":88},"j":{"d":"26,-162v3,-12,41,-11,44,0r0,161v0,41,-13,62,-52,65v-23,2,-29,-13,-23,-34v15,-5,31,-3,31,-32r0,-160xm48,-239v20,0,24,4,25,23v0,20,-6,24,-26,24v-19,0,-25,-4,-25,-23v0,-19,7,-24,26,-24","w":91},"k":{"d":"113,-162v6,-11,43,-12,49,-1v-10,28,-35,42,-51,64r57,93v-4,11,-43,11,-49,0r-53,-83r0,83v-3,11,-38,11,-44,0r0,-231v3,-11,40,-12,44,0r0,138","w":172,"k":{"-":12,"a":4,"c":8,"d":8,"q":8,"e":10,"o":10,"s":3,"t":2,"u":4}},"l":{"d":"22,-237v4,-12,42,-11,44,0r0,231v-3,11,-38,11,-44,0r0,-231","w":88},"m":{"d":"216,-173v75,-1,52,96,56,167v-4,11,-39,11,-45,0r0,-93v0,-20,-5,-36,-25,-35v-15,1,-23,12,-33,24r0,104v-3,10,-39,11,-44,0r0,-93v-1,-18,-5,-36,-25,-35v-16,1,-24,12,-34,24r0,104v-3,11,-38,11,-44,0r0,-157v3,-10,34,-10,38,0r0,18v20,-32,88,-40,102,1v15,-14,28,-28,54,-29","w":292,"k":{"v":5,"f":2,"t":3,"x":3,"y":7,"w":3}},"n":{"d":"60,-145v31,-46,112,-33,112,42r0,97v-3,10,-39,11,-44,0v-6,-45,19,-128,-27,-128v-16,0,-25,12,-35,24r0,104v-3,11,-38,11,-44,0r0,-157v3,-10,34,-10,38,0r0,18","w":193,"k":{"v":5,"f":2,"t":3,"x":3,"y":7,"w":3}},"o":{"d":"99,-173v56,0,82,31,82,87v0,55,-28,90,-86,90v-56,0,-82,-31,-82,-87v0,-57,30,-90,86,-90xm96,-31v30,-1,39,-22,39,-53v0,-30,-8,-54,-38,-54v-29,1,-39,24,-39,53v0,30,8,54,38,54","w":193,"k":{",":5,"v":1,"x":7,"y":2,"z":4,"w":1}},"p":{"d":"60,-144v42,-57,127,-20,120,57v-5,52,-18,89,-68,91v-23,0,-34,-11,-46,-22r0,74v-2,12,-40,11,-44,0r0,-219v3,-10,34,-10,38,0r0,19xm102,-34v44,0,44,-101,1,-101v-19,0,-27,13,-37,25r0,52v10,12,19,24,36,24","w":193,"k":{"v":2,"f":2,"s":2,"t":1,"x":7,"y":2,"z":4,"w":2}},"q":{"d":"133,-146v-10,-26,29,-31,38,-17r0,219v-3,11,-40,12,-44,0r0,-74v-13,12,-26,22,-50,22v-47,-2,-64,-39,-64,-86v0,-52,20,-91,69,-91v25,0,36,14,51,27xm90,-33v19,0,27,-13,37,-26r0,-52v-10,-12,-19,-24,-36,-24v-46,0,-45,102,-1,102","w":193,"k":{"g":-2}},"r":{"d":"60,-143v9,-19,42,-44,62,-21v1,18,4,47,-17,33v-23,-1,-29,15,-39,27r0,98v-3,11,-38,11,-44,0r0,-157v3,-10,34,-10,38,0r0,20","w":127,"k":{"-":7,".":32,",":26,"v":-3,"a":8,"c":5,"d":4,"q":4,"e":4,"o":4,"s":4,"y":-2,"g":4,"w":-2}},"s":{"d":"123,-133v-14,3,-79,-27,-64,17v25,20,75,20,74,66v-1,38,-28,53,-68,54v-31,1,-63,-11,-49,-46v17,2,26,14,48,14v38,0,25,-33,1,-40v-26,-7,-51,-19,-51,-54v0,-53,81,-66,109,-35v1,8,0,16,0,24","w":143,"k":{"v":5,"f":3,"t":4,"x":4,"y":5,"z":3,"w":2}},"t":{"d":"74,-59v-5,32,26,21,40,24v6,28,-7,39,-33,39v-66,0,-49,-76,-51,-137v-26,10,-35,-23,-19,-36r19,0v0,-25,-7,-50,32,-42v19,-1,10,26,12,42v18,2,46,-9,41,18v4,25,-22,17,-41,18r0,74","w":124,"k":{"-":9,"a":4,"c":5,"d":4,"q":4,"e":4,"o":4,"t":4}},"u":{"d":"127,-163v5,-11,40,-9,44,0r0,157v-2,10,-34,11,-38,0r0,-18v-32,46,-112,33,-112,-43r0,-96v4,-10,39,-10,44,0v6,46,-18,123,27,129v16,-2,25,-13,35,-25r0,-104","w":193},"v":{"d":"123,-162v5,-14,57,-12,41,12r-49,146v-12,8,-55,9,-62,-4r-49,-155v4,-11,43,-10,46,1r36,119v14,-38,23,-80,37,-119","w":170,"k":{"-":7,".":25,",":21,"z":3,"y":-3,"w":-3,"v":-3,"t":-2,"s":1,"q":4,"o":3,"g":4,"f":-2,"e":3,"d":4,"c":4,"a":5}},"w":{"d":"218,-162v6,-14,57,-13,42,12r-44,146v-10,7,-52,11,-56,-4r-27,-97r-25,97v-4,14,-50,14,-58,0r-44,-155v4,-10,43,-11,46,1r31,117r29,-117v3,-11,41,-12,44,-1r32,118","w":268,"k":{"-":5,".":21,",":26,"v":-3,"a":4,"c":3,"d":3,"q":3,"e":3,"f":-1,"o":3,"s":2,"t":-1,"y":-3,"z":2,"g":3,"w":-2}},"x":{"d":"113,-164v5,-8,40,-9,43,0r-41,76r45,84v-7,8,-44,10,-50,-1r-29,-56r-29,56v-4,9,-38,10,-46,1v12,-30,31,-54,45,-82r-42,-78v3,-9,44,-10,49,0r28,52","w":165,"k":{"-":11,"a":6,"c":8,"d":7,"q":7,"e":9,"o":8,"s":3,"u":4}},"y":{"d":"123,-161v2,-15,42,-11,44,0r-73,217v-5,10,-41,12,-49,2v5,-21,15,-38,22,-58v-4,-2,-5,-4,-7,-8r-56,-153v0,-14,36,-11,45,-4r40,111","w":170,"k":{"-":6,".":22,",":22,"v":-3,"a":5,"c":5,"d":4,"q":4,"e":4,"f":-2,"o":4,"s":2,"t":-2,"y":-2,"z":2,"g":4,"w":-2}},"z":{"d":"124,-36v11,1,12,36,0,36r-102,0v-17,-1,-9,-34,-3,-43r59,-90v-27,-5,-71,16,-63,-27v1,-4,3,-9,7,-9r100,1v10,5,4,34,-1,42r-58,90r61,0","w":143,"k":{"v":3,"a":5,"c":7,"d":7,"q":7,"e":7,"f":2,"o":6,"s":3,"u":2,"y":3,"g":2,"w":3}},"`":{"d":"20,-237v-5,-10,7,-9,19,-10v34,0,36,32,51,52v-35,19,-53,-26,-70,-42","w":108},"!":{"d":"41,-234v4,-15,48,-13,48,0r-4,159v-2,11,-39,12,-39,0xm65,-49v19,0,25,7,25,26v0,19,-8,25,-25,26v-18,0,-25,-9,-25,-26v0,-17,5,-26,25,-26","w":117},"?":{"d":"67,-208v-19,-2,-35,17,-45,7v-11,-36,22,-39,52,-42v79,-9,103,95,45,129v-7,3,-16,5,-24,6v7,30,-12,56,-41,35v4,-22,-14,-60,16,-60v23,0,35,-14,35,-37v0,-25,-13,-36,-38,-38xm75,-49v19,0,25,7,25,26v0,19,-8,25,-25,26v-18,0,-25,-9,-25,-26v0,-17,5,-26,25,-26","w":166},",":{"d":"40,-50v42,-14,40,38,21,61v-13,16,-25,53,-57,36v8,-25,22,-42,22,-79v0,-11,3,-18,14,-18","w":92,"k":{"t":5,"Y":22,"X":-3,"W":17,"V":18,"T":18,"J":-8,"A":-5}},";":{"d":"53,-166v18,0,25,9,25,27v0,17,-5,26,-25,26v-19,0,-25,-7,-25,-26v0,-20,7,-27,25,-27xm44,-50v41,-13,40,38,21,61v-13,16,-25,51,-55,36v4,-26,26,-42,21,-79v-1,-12,3,-17,13,-18","w":99},":":{"d":"53,-166v18,0,25,9,25,27v0,17,-5,26,-25,26v-19,0,-25,-7,-25,-26v0,-20,7,-27,25,-27xm53,-51v18,0,25,9,25,27v0,17,-6,26,-25,26v-19,0,-25,-7,-25,-26v0,-20,7,-27,25,-27","w":99},".":{"d":"48,-52v20,0,27,6,26,27v0,21,-5,27,-26,27v-20,0,-25,-6,-26,-26v0,-21,6,-27,26,-28","w":96,"k":{"-":14,"z":-2,"y":12,"w":11,"v":12,"t":9,"g":-4,"f":7,"Y":33,"W":17,"V":24,"U":3,"T":25,"Q":4,"O":4,"J":-6,"G":6,"C":6,"A":-3}},"\/":{"d":"107,-253v3,-13,39,-11,43,-2r-108,304v-6,6,-47,9,-41,-7","w":154,"k":{"s":10,"o":8,"g":8,"e":9,"c":9,"a":9,"J":9,"A":16}},"|":{"d":"65,-247v4,-12,39,-10,41,0r0,304v-2,11,-37,11,-41,0r0,-304","w":171},"\\":{"d":"5,-253v6,-10,40,-8,44,1r105,297v-3,11,-38,9,-44,0","w":154},"-":{"d":"10,-88v0,-11,0,-18,9,-18v25,0,59,-4,79,4v1,11,6,31,-6,32r-73,0v-9,-1,-9,-7,-9,-18","w":110,"k":{"y":4,"x":6,"v":3,"f":3,"Y":15}},"\u2010":{"d":"10,-88v0,-11,0,-18,9,-18v25,0,59,-4,79,4v1,11,6,31,-6,32r-73,0v-9,-1,-9,-7,-9,-18","w":110},"\u00ad":{"d":"10,-88v0,-11,0,-18,9,-18v25,0,59,-4,79,4v1,11,6,31,-6,32r-73,0v-9,-1,-9,-7,-9,-18","w":110},"_":{"d":"173,31v8,1,7,6,7,17v0,9,0,16,-7,16r-167,0v-7,-1,-7,-6,-7,-16v0,-10,-1,-17,7,-17r167,0","w":179},"(":{"d":"95,-245v-39,84,-40,217,0,301v-4,8,-34,9,-39,1v-49,-76,-49,-231,2,-305v9,-2,32,-5,37,3","w":112,"k":{"j":-9,"g":-2}},")":{"d":"54,-248v52,78,49,227,2,305v-6,8,-34,8,-39,-1v39,-84,40,-217,0,-301v4,-8,27,-6,37,-3","w":112},"[":{"d":"69,28v16,1,36,-7,33,16v2,29,-40,10,-61,15v-9,1,-13,-5,-13,-14r0,-279v0,-27,44,-11,67,-15v10,2,10,32,0,32r-26,0r0,245","w":116},"]":{"d":"21,-249v24,4,69,-11,69,15r0,279v-2,26,-45,9,-69,14v-8,-1,-9,-29,0,-31r27,0r0,-245v-20,1,-40,3,-32,-23v0,-5,2,-8,5,-9","w":116},"{":{"d":"89,-253v21,-6,31,23,15,34v-30,-3,-22,31,-22,59v0,33,-10,53,-36,60v36,6,36,45,36,89v0,21,-2,38,20,37v11,-1,9,12,9,23v0,11,-12,10,-22,11v-50,0,-49,-49,-48,-101v1,-24,-6,-38,-25,-42v-10,-2,-10,-33,0,-34v26,-4,26,-34,25,-65v-1,-43,8,-70,48,-71","w":123},"}":{"d":"19,-227v-4,-17,3,-26,22,-26v51,0,50,50,48,101v-1,23,6,31,24,34v9,2,11,31,1,34v-27,5,-25,40,-25,73v1,44,-12,76,-56,70v-14,3,-17,-12,-14,-25v0,-7,5,-8,13,-8v22,0,15,-34,16,-59v1,-34,9,-60,36,-68v-36,-4,-36,-39,-36,-81v0,-22,1,-38,-21,-37v-5,0,-8,-2,-8,-8","w":123},"*":{"d":"151,-165v8,7,-6,34,-17,29r-35,-28v-1,19,22,52,-10,52v-33,0,-8,-33,-10,-52r-35,28v-9,5,-25,-21,-17,-29r42,-16r-42,-16v-8,-7,6,-34,17,-30r35,28v1,-19,-22,-51,10,-51v33,0,8,32,10,51r35,-28v10,-5,25,21,17,30r-42,16","w":179},"^":{"d":"51,-98v-7,13,-59,14,-42,-7r53,-119v12,-8,51,-9,57,4r54,123v0,13,-33,7,-43,3r-42,-99","w":179},"~":{"d":"109,-175v39,22,10,-36,53,-26v6,1,9,5,8,13v6,56,-69,72,-93,30v-5,-5,-9,-10,-18,-11v-24,0,-8,48,-48,28v-15,-59,62,-86,92,-40","w":179},"'":{"d":"21,-239v4,-10,41,-10,41,0r-4,79v0,10,-14,7,-24,7v-4,-1,-9,-3,-9,-7","w":84},"\"":{"d":"88,-239v4,-10,37,-10,40,0r-4,79v-1,11,-31,11,-32,0xm21,-239v4,-11,38,-9,41,0r-5,79v1,8,-25,10,-31,3v-4,-25,-3,-55,-5,-82","w":157},"&":{"d":"240,-2v-20,16,-48,-6,-63,-18v-45,37,-165,36,-163,-43v1,-35,23,-49,46,-64v-12,-15,-25,-29,-25,-53v0,-42,33,-59,77,-59v40,0,71,12,71,51v0,38,-31,51,-59,67r48,46v8,-11,9,-30,11,-47v8,-4,41,-12,41,9v0,27,-8,47,-19,64v11,7,16,15,31,16v8,1,5,21,4,31xm110,-205v-39,-3,-28,45,-10,58v15,-10,36,-16,36,-37v0,-14,-11,-20,-26,-21xm84,-100v-40,18,-19,82,31,68v11,-3,20,-7,28,-12","w":253},"@":{"d":"179,-236v74,-1,122,29,122,101v0,58,-19,106,-79,108v-23,1,-37,-8,-41,-25v-23,33,-100,37,-94,-25v5,-50,18,-92,67,-95v21,-1,30,11,40,23v-3,-19,19,-26,35,-17v-4,33,-18,68,-14,101v32,21,46,-33,46,-68v0,-52,-33,-70,-86,-69v-81,1,-109,53,-115,132v-6,87,88,91,157,72v2,7,4,22,0,29v-15,12,-45,14,-71,14v-79,0,-127,-34,-125,-112v3,-104,53,-167,158,-169xm126,-93v-7,32,22,45,39,22v14,-9,13,-31,18,-49v-19,-40,-56,-6,-57,27","w":323},"$":{"d":"99,-193v-33,-6,-46,33,-18,47v35,17,87,22,86,77v-1,46,-33,64,-75,69v-1,21,1,57,-35,39v-2,-12,2,-27,3,-40v-26,-4,-53,-7,-45,-42v0,-6,2,-10,6,-9v24,18,116,30,94,-25v-30,-31,-99,-23,-97,-87v0,-41,28,-58,65,-63v5,-18,-8,-48,27,-41v17,3,4,27,5,41v25,-2,53,22,34,48v-15,-4,-29,-15,-50,-14"},"#":{"d":"151,-171v18,-2,25,2,23,22v-1,12,-15,7,-27,8r-6,50v23,-8,33,19,17,31r-21,0r-6,55v-3,8,-32,10,-35,0r7,-55r-40,0r-6,55v-3,8,-32,10,-35,0r6,-55v-23,9,-31,-21,-16,-31r20,0r6,-50v-23,9,-32,-20,-17,-30r21,0r6,-51v2,-10,28,-8,35,-3r-7,54r40,0r6,-51v2,-10,28,-8,35,-3xm73,-141r-6,50r39,0r6,-50r-39,0","w":179},"0":{"d":"94,-232v66,0,79,51,79,117v0,66,-17,119,-84,119v-67,1,-79,-51,-79,-117v0,-67,18,-119,84,-119xm91,-33v37,0,35,-43,35,-79v0,-39,2,-83,-34,-83v-36,0,-35,41,-35,80v0,39,-4,82,34,82"},"1":{"d":"122,-36v22,1,53,-8,43,27v0,5,-2,9,-6,9r-126,0v-9,-3,-10,-32,0,-36r43,0r0,-148v-14,8,-27,17,-43,23v-11,0,-9,-30,-1,-34v23,-12,52,-48,90,-29r0,188"},"2":{"d":"20,-194v10,-61,146,-48,139,22v-7,68,-55,93,-89,135r93,1v7,5,9,33,-2,36r-138,-1v-16,-8,-6,-42,4,-49v27,-36,77,-56,77,-112v0,-44,-59,-25,-78,-11v-8,-1,-5,-13,-6,-21"},"3":{"d":"106,-167v-1,-44,-61,-25,-80,-10v-23,-33,22,-56,62,-55v41,1,69,18,69,57v0,32,-17,48,-41,56v30,4,49,21,51,52v4,72,-100,88,-150,53v-1,-9,-7,-33,4,-34v23,16,93,28,93,-17v0,-34,-38,-34,-73,-35v-7,-4,-8,-33,3,-33v33,2,63,-2,62,-34"},"4":{"d":"148,-84v28,-10,35,24,20,37r-20,0v-1,26,11,55,-33,48v-19,-3,-8,-31,-11,-48r-92,-1v-10,-9,-6,-39,0,-50r74,-127v15,-4,54,-9,62,4r0,137xm104,-84r-1,-105r-60,105r61,0"},"5":{"d":"64,-139v57,-6,102,10,102,65v0,75,-94,96,-147,63v-3,-10,-7,-42,9,-33v26,16,89,20,89,-26v0,-40,-45,-37,-82,-34v-8,0,-9,-3,-9,-11r0,-99v0,-9,3,-13,11,-13r108,0v12,2,9,37,0,39r-81,0r0,49"},"6":{"d":"60,-130v43,-29,118,-10,112,54v-5,49,-29,80,-81,80v-62,0,-77,-45,-76,-109v1,-73,23,-124,97,-126v27,-1,54,4,44,38v-18,8,-70,-17,-84,17v-8,11,-12,28,-12,46xm94,-31v23,0,29,-18,32,-41v5,-43,-45,-42,-66,-24v2,34,2,65,34,65"},"7":{"d":"157,-227v18,-1,10,35,5,47r-77,178v-10,4,-55,8,-48,-8r80,-177r-95,0v-11,-2,-12,-40,0,-40r135,0"},"8":{"d":"126,-120v23,13,46,27,46,59v0,46,-34,65,-83,65v-45,0,-78,-15,-78,-59v0,-33,22,-48,45,-60v-21,-11,-39,-26,-39,-55v0,-44,32,-62,77,-62v41,0,71,16,71,56v0,29,-18,45,-39,56xm94,-136v30,-8,40,-62,-3,-62v-34,0,-37,43,-12,53v4,3,9,6,15,9xm92,-30v40,0,43,-47,13,-59v-5,-2,-10,-6,-16,-9v-15,10,-33,17,-33,40v0,20,14,28,36,28"},"9":{"d":"91,-232v62,-1,78,46,78,108v0,74,-25,127,-100,128v-29,1,-61,-9,-46,-43v34,10,93,12,97,-33v1,-8,4,-16,4,-25v-43,27,-119,12,-112,-56v5,-50,29,-78,79,-79xm57,-157v-5,42,43,46,66,27v-1,-35,-2,-66,-34,-66v-23,0,-29,17,-32,39"},"%":{"d":"200,-117v37,0,53,22,52,59v0,37,-15,61,-53,61v-38,1,-51,-23,-52,-59v0,-38,17,-61,53,-61xm200,-22v27,-1,25,-69,0,-70v-26,0,-26,70,0,70xm63,-230v38,0,53,21,52,58v0,38,-15,61,-53,61v-38,0,-53,-21,-52,-59v0,-37,16,-60,53,-60xm62,-206v-25,2,-25,71,1,70v27,-1,24,-70,-1,-70xm194,-227v6,-8,33,-11,38,-1r-168,230v-7,5,-42,7,-32,-7","w":262},"+":{"d":"163,-118v9,-1,7,15,7,25v-5,19,-42,5,-62,9r0,60v-2,10,-33,11,-37,0r0,-60r-54,0v-10,0,-8,-16,-7,-25v0,-5,2,-10,6,-9r55,0v2,-21,-5,-51,4,-66v11,-1,30,-5,33,6r0,60r55,0","w":179,"k":{"+":-4}},"=":{"d":"156,-154v12,0,11,34,0,34r-134,0v-9,-1,-11,-34,0,-34r134,0xm156,-83v12,0,11,34,0,34r-134,0v-9,-1,-11,-34,0,-34r134,0","w":179},"<":{"d":"17,-82v-8,-6,-8,-35,0,-39r135,-67v9,-3,8,4,9,15v-1,9,2,22,-7,24r-101,48r104,48v4,7,8,45,-5,38","w":179},">":{"d":"26,-147v-11,-3,-12,-38,-3,-42v48,21,92,47,139,69v8,4,7,32,0,38r-139,68v-9,-4,-7,-35,1,-40r102,-47","w":179}}});
var hover_obj = {hover:true};
Cufon.replace('h1', hover_obj);
Cufon.replace('h2', hover_obj);
Cufon.replace('h3', hover_obj);
