﻿/**
* Hint Plugin author Remy Sharp
* @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
*/

(function($) {

    $.fn.hint = function(blurClass) {
        if (!blurClass) {
            blurClass = 'blur';
        }

        return this.each(function() {
            // get jQuery version of 'this'
            var $input = $(this),

            // capture the rest of the variable to allow for reuse
      title = $input.attr('title'),
      $form = $(this.form),
      $win = $(window);

            function remove() {
                if ($input.val() === title && $input.hasClass(blurClass)) {
                    $input.val('').removeClass(blurClass);
                }
            }

            // only apply logic if the element has the attribute
            if (title) {
                // on blur, set value to title attr if text is blank
                $input.blur(function() {
                    if (this.value === '') {
                        $input.val(title).addClass(blurClass);
                    }
                }).focus(remove).blur(); // now change all inputs to title

                // clear the pre-defined text when form is submitted
                $form.submit(remove);
                $win.unload(remove); // handles Firefox's autocomplete
            }
        });
    };

})(jQuery);

/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
 
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

/*
Stylish Select 0.4.1 - $ plugin to replace a select drop down box with a stylable unordered list
hhttp://www.scottdarby.com/2009/05/jquery-plugin-stylish-select-unobstrusive-select-box-replacement/

Requires: jQuery 1.3 (may not work with 1.4!)

Contributions from Justin Beasley: http://www.harvest.org/ & Anatoly Ressin: http://www.artazor.lv/

Dual licensed under the MIT and GPL licenses.

*/
(function(a) { a("html").addClass("stylish-select"); Array.prototype.indexOf = function(c, d) { for (var b = (d || 0); b < this.length; b++) { if (this[b] == c) { return b } } }; a.fn.extend({ getSetSSValue: function(b) { if (b) { a(this).val(b).change(); return this } else { return a(this).find(":selected").val() } }, resetSS: function() { var b = a(this).data("ssOpts"); $this = a(this); $this.next().remove(); $this.unbind().sSelect(b) } }); a.fn.sSelect = function(b) { return this.each(function() { var i = { defaultText: "Please select", animationSpeed: 0, ddMaxHeight: "" }; var l = a.extend(i, b), e = a(this), j = a('<div class="selectedTxt"></div>'), r = a('<div class="newListSelected" tabindex="0"></div>'), z = a('<ul class="newList"></ul>'), t = -1, d = -1, m = [], w = false, v = false, x; a(this).data("ssOpts", b); r.insertAfter(e); j.prependTo(r); z.appendTo(r); e.hide(); if (e.children("optgroup").length == 0) { e.children().each(function(B) { var C = a(this).text(); var A = a(this).val(); m.push(C.charAt(0).toLowerCase()); if (a(this).attr("selected") == true) { l.defaultText = C; d = B } z.append(a('<li><a href="JavaScript:void(0);">' + C + "</a></li>").data("key", A)) }); x = z.children().children() } else { e.children("optgroup").each(function() { var A = a(this).attr("label"), C = a('<li class="newListOptionTitle">' + A + "</li>"); C.appendTo(z); var B = a("<ul></ul>"); B.appendTo(C); a(this).children().each(function() { ++t; var E = a(this).text(); var D = a(this).val(); m.push(E.charAt(0).toLowerCase()); if (a(this).attr("selected") == true) { l.defaultText = E; d = t } B.append(a('<li><a href="JavaScript:void(0);">' + E + "</a></li>").data("key", D)) }) }); x = z.find("ul li a") } var o = z.height(), n = r.height(), y = x.length; if (d != -1) { h(d, true) } else { j.text(l.defaultText) } function p() { var B = r.offset().top, A = jQuery(window).height(), C = jQuery(window).scrollTop(); if (o > parseInt(l.ddMaxHeight)) { o = parseInt(l.ddMaxHeight) } B = B - C; if (B + o >= A) { z.css({ top: "-" + o + "px", height: o }); e.onTop = true } else { z.css({ top: n + "px", height: o }); e.onTop = false } } p(); a(window).resize(function() { p() }); a(window).scroll(function() { p() }); function s() { r.css("position", "relative") } function c() { r.css("position", "static") } j.click(function(A) { A.stopPropagation(); a(".newList").not(a(this).next()).hide().parent().removeClass("newListSelFocus"); z.toggle(); s(); x.eq(d).focus() }); x.click(function(B) { var A = a(B.target); d = x.index(A); v = true; h(d); z.hide(); r.css("position", "static") }); x.hover(function(B) { var A = a(B.target); A.addClass("newListHover") }, function(B) { var A = a(B.target); A.removeClass("newListHover") }); function h(A, D) { x.removeClass("hiLite").eq(A).addClass("hiLite"); if (z.is(":visible")) { x.eq(A).focus() } var C = x.eq(A).text(); var B = x.eq(A).parent().data("key"); if (D == true) { e.val(B); j.text(C); return false } e.val(B); e.change(); j.text(C) } e.change(function(A) { $targetInput = a(A.target); if (v == true) { v = false; return false } $currentOpt = $targetInput.find(":selected"); d = $targetInput.find("option").index($currentOpt); h(d, true) }); function q(A) { A.onkeydown = function(D) { var C; if (D == null) { C = event.keyCode } else { C = D.which } v = true; switch (C) { case 40: case 39: u(); return false; break; case 38: case 37: k(); return false; break; case 33: case 36: g(); return false; break; case 34: case 35: f(); return false; break; case 13: case 27: z.hide(); c(); return false; break } keyPressed = String.fromCharCode(C).toLowerCase(); var B = m.indexOf(keyPressed); if (typeof B != "undefined") { ++d; d = m.indexOf(keyPressed, d); if (d == -1 || d == null || w != keyPressed) { d = m.indexOf(keyPressed) } h(d); w = keyPressed; return false } } } function u() { if (d < (y - 1)) { ++d; h(d) } } function k() { if (d > 0) { --d; h(d) } } function g() { d = 0; h(d) } function f() { d = y - 1; h(d) } r.click(function() { q(this) }); r.focus(function() { a(this).addClass("newListSelFocus"); q(this) }); r.blur(function() { a(this).removeClass("newListSelFocus") }); a("body").click(function() { r.removeClass("newListSelFocus"); z.hide(); c() }); j.hover(function(B) { var A = a(B.target); A.parent().addClass("newListSelHover") }, function(B) { var A = a(B.target); A.parent().removeClass("newListSelHover") }); z.css("left", "0").hide() }) } })(jQuery);