﻿var placeFooter = function() {
    var a = $(window).height();
    var b = $("#leftColumn").offset().top + $("#leftColumn").height();
    var c = $("#rightColumn").offset().top + $("#rightColumn").height();
    var d = b > c ? b : c;
    var f = $("#footer").height();

    if (!(d < (a - f))) {
        $("#footer").css({
            position: "relative",
            width: "auto",
            top: "auto"
        });
    } else {
        $("#footer").css({
            position: "absolute",
            width: "900px",
            top: "" + (a - 47) + "px"
        });
    }
};

var preloadImages = function() {
    for (var i = 0; i < arguments.length; i++) {
        $("<img />").attr("src", arguments[i]);
    }
}

var validatePassword = function(pw, options) {
    var o = { lower: 0, upper: 0, alpha: 0, numeric: 0, special: 0, length: [0, Infinity], custom: [ /* regexes and/or functions */], badWords: [], badSequenceLength: 0, noQwertySequences: false, noSequential: false };
    for (var property in options) { o[property] = options[property]; }
    var re = { lower: /[a-z]/g, upper: /[A-Z]/g, alpha: /[A-Z]/gi, numeric: /[0-9]/g, special: /[\W_]/g }, rule, i;
    if (pw.length < o.length[0] || pw.length > o.length[1]) return false;
    for (rule in re) { if ((pw.match(re[rule]) || []).length < o[rule]) return false; }
    for (i = 0; i < o.badWords.length; i++) { if (pw.toLowerCase().indexOf(o.badWords[i].toLowerCase()) > -1) return false; }
    if (o.noSequential && /([\S\s])\1/.test(pw)) return false;
    if (o.badSequenceLength) {
        var lower = "abcdefghijklmnopqrstuvwxyz",
			upper = lower.toUpperCase(),
			numbers = "0123456789",
			qwerty = "qwertyuiopasdfghjklzxcvbnm",
			start = o.badSequenceLength - 1,
			seq = "_" + pw.slice(0, start);
        for (i = start; i < pw.length; i++) {
            seq = seq.slice(1) + pw.charAt(i);
            if (
				lower.indexOf(seq) > -1 ||
				upper.indexOf(seq) > -1 ||
				numbers.indexOf(seq) > -1 ||
				(o.noQwertySequences && qwerty.indexOf(seq) > -1)
			) {
                return false;
            }
        }
    }
    for (i = 0; i < o.custom.length; i++) {
        rule = o.custom[i];
        if (rule instanceof RegExp) {
            if (!rule.test(pw))
                return false;
        } else if (rule instanceof Function) {
            if (!rule(pw))
                return false;
        }
    }
    return true;
}

var validateEmail = function(value) {
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return filter.test(value);
};

$(function() {
    placeFooter();
    $(window).resize(function() { placeFooter(); });

    preloadImages(
        "Resources/Navigation-Content-Active-Hover.jpg",
        "Resources/Navigation-Content-Hover.jpg",
        "Resources/Navigation-Dashboard-Active-Hover.jpg",
        "Resources/Navigation-Dashboard-Hover.jpg",
        "Resources/Navigation-Export-Active-Hover.jpg",
        "Resources/Navigation-Export-Hover.jpg",
        "Resources/Navigation-Leads-Active-Hover.jpg",
        "Resources/Navigation-Leads-Hover.jpg",
        "Resources/Navigation-Logout-Active-Hover.jpg",
        "Resources/Navigation-Logout-Hover.jpg",
        "Resources/Navigation-Profile-Active-Hover.jpg",
        "Resources/Navigation-Profile-Hover.jpg",
        "Resources/Navigation-Properties-Active-Hover.jpg",
        "Resources/Navigation-Properties-Hover.jpg",
        "Resources/Navigation-Statistics-Active-Hover.jpg",
        "Resources/Navigation-Statistics-Hover.jpg",
        "Resources/Navigation-Testimonials-Active-Hover.jpg",
        "Resources/Navigation-Testimonials-Hover.jpg",
        "Resources/Navigation-Users-Active-Hover.jpg",
        "Resources/Navigation-Users-Hover.jpg"
    );
});
