jQuery.fn.extend({
  check: function() {return this.each(function() { this.checked = true; });},
  uncheck: function() {return this.each(function() { this.checked = false; });}
});
/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
/**
 * Written by us. This will show the loading alert when called, and will attach the appropriate removal
 * mechanism on document ready.
 */
function showLoading(){
  if(parseInt($(".loading").length)>0){return false;}//Only show once
  $("body").append("<div class='loading'><img src='/theme/images/loading.gif' align='absmiddle' />&nbsp;Loading</div>");
  $("div.loading").center({vertical:false});
}
$().ready(function(){$("body").ajaxStop(function(){ $(this).find(".loading").remove();});});
function hideLoading(){$().find(".loading").remove();}
/**
 * Plugin Written By Michael Bollman at Edistorm.com
 */
(function ($) {
$.nl2br = function(str) {
   return (str+'').replace(/([^>])\n/g, '$1<br />\n');
 };
})(jQuery);

/**
 * Plugin Written By Michael Bollman at Edistorm.com
 */
jQuery.fn.log = function(m){
  if(console){console.log("%s: %o", m, this);}
  return this;
};
/**
 * Browser Sniffer
 */
function isMozilla(){return isFirefox();}
function isIE(){return navigator.appName.toLowerCase().indexOf("internet explorer") >= 0;}
function isFirefox(testversion){
   if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
     var ffversion=new Number(RegExp.$1);
     if(typeof(testversion)!="undefined"){
       if(testversion==3 && ffversion>=3){
         return true;
       }else if(testversion==3 && ffversion>=2){
           return true;
       }else if(testversion==1 && ffversion>=1){
           return true;
       }
     }else{
       return true;
     }
   }
   return false;
}
function getBrowser(){return navigator.appName;}

/**
 * http://katzwebdesign.wordpress.com/2008/09/08/simple-vertical-align-plugin-for-jquery/
 */
(function ($) {
// VERTICALLY ALIGN FUNCTION
$.fn.vAlign = function() {
    return this.each(function(i){
    var ah = $(this).height();
    var ph = $(this).parent().height();
    var mh = (ph - ah) / 2;
    $(this).css('margin-top', mh);
    });
};
})(jQuery);
/**
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 */
this.tooltip = function(){
    /* CONFIG */
        xOffset = 10;
        yOffset = 20;
        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result
    /* END CONFIG */
    $("a.tooltip").hover(function(e){
        this.t = this.title;
        this.title = "";
        $("body").append("<p id='tooltip'>"+ this.t +"</p>");
        $("#tooltip")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");
    },
    function(){
        this.title = this.t;
        $("#tooltip").remove();
    });
    $("a.tooltip").mousemove(function(e){
        $("#tooltip")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });
};

this.imagePreview = function(){

    xOffset = 10;
    yOffset = 30;

    $(".imgnode").hover(function(e){
        var c = (typeof(this.parentNode.getAttribute("name"))!="undefined" && this.parentNode.getAttribute("name")!=null ? "<br />"+this.parentNode.getAttribute("name") : "");
        $("body").append("<p class='img_preview'><img src='"+ this.parentNode.getAttribute("fullsize") +"' />"+c+"</p>");
        if((parseInt(e.pageY)+parseInt($(".img_preview").height()))>parseInt($(window).height())){yOffset = (parseInt(e.pageY)+parseInt($(".img_preview").height()))-parseInt($(window).height())+100;}
        if(parseInt(e.pageX)+parseInt($(".img_preview").width())>parseInt($(window).width())){xOffset = (parseInt($(".img_preview").width()) + 20)*-1;  }
        $(".img_preview").css("top",(e.pageY - yOffset) + "px").css("left",(e.pageX + xOffset) + "px").fadeIn("fast");
    },
    function(){$(".img_preview").remove();});
};

this.screenshotPreview = function(){
    /* CONFIG */

        xOffset = 10;
        yOffset = 30;

        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result

    /* END CONFIG */
    $("a.screenshot").hover(function(e){
        this.t = this.title;
        this.title = "";
        var c = (this.t != "") ? "<br/>" + this.t : "";
        $("body").append("<p id='screenshot'><img src='"+ this.rel +"' alt='url preview' />"+ c +"</p>");
        $("#screenshot")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");
    },
    function(){
        this.title = this.t;
        $("#screenshot").remove();
    });
    $("a.screenshot").mousemove(function(e){
        $("#screenshot")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });
};

//Suggest
(function($) {

        $.suggest = function(input, options) {

            var $input = $(input).attr("autocomplete", "off");
            var $results = $(document.createElement("ul"));

            var timeout = false;        // hold timeout ID for suggestion results to appear
            var prevLength = 0;         // last recorded length of $input.val()
            var cache = [];             // cache MRU list
            var cacheSize = 0;          // size of cache in chars (bytes?)
            var idfield = options.idfield;           // field to hold id

            $results.addClass(options.resultsClass).appendTo('body');

            resetPosition();
            $(window)
                .load(resetPosition)        // just in case user is changing size of page while loading
                .resize(resetPosition);

            $input.blur(function() {
                setTimeout(function() { $results.hide() }, 200);
            });

            // help IE users if possible
            try {
                $results.bgiframe();
            } catch(e) { }

            // I really hate browser detection, but I don't see any other way
            if ($.browser.mozilla)
                $input.keypress(processKey);    // onkeypress repeats arrow keys in Mozilla/Opera
            else
                $input.keydown(processKey);     // onkeydown repeats arrow keys in IE/Safari

            function resetPosition() {
                // requires jquery.dimension plugin
                var offset = $input.offset();
                $results.css({
                    top: (offset.top + input.offsetHeight) + 'px',
                    left: offset.left + 'px'
                });
            }

            function processKey(e) {

                // handling up/down/escape requires results to be visible
                // handling enter/tab requires that AND a result to be selected
                if ((/27$|38$|40$/.test(e.keyCode) && $results.is(':visible')) ||
                    (/^13$|^9$/.test(e.keyCode) && getCurrentResult())) {

                    if (e.preventDefault)e.preventDefault();
                    if (e.stopPropagation)e.stopPropagation();
                    e.cancelBubble = true;
                    e.returnValue = false;
                    switch(e.keyCode) {
                        case 38: // up
                            prevResult();
                            break;
                        case 40: // down
                            nextResult();
                            break;
                        case 13: //enter/return
                        case 9:  //tab
                          var $o = getCurrentResult();
                          $("#"+idfield).val($o.attr("li_id"));
                          selectCurrentResult();
                          e.preventDefault();
                          e.stopPropagation();
                        break;
                        case 27: // escape
                            $results.hide();
                            break;
                    }
                } else if ($input.val().length != prevLength && e.keyCode!=13 && e.keyCode!=9) {

                    if (timeout)
                        clearTimeout(timeout);
                    timeout = setTimeout(suggest, options.delay);
                    prevLength = $input.val().length;
                } else if (options.showall==true && $.trim($input.val()).length==0 && e.keyCode==40){
                  suggest();
                }
            }

            function suggest() {
                var q = $.trim($input.val());
                if (q.length >= options.minchars) {
                    cached = checkCache(q);
                    if (cached) {
                        displayItems(cached['items']);
                    } else {
                      $("."+options.resultsClass).css("overlow", "").css("height", "").css("width", "");
                      switch(options.type){
                        default:
                        case "ajax":
                          $.get(options.source, {q: q}, function(txt) {
                            $results.hide();
                            var items = parseTxt(txt, q);
                            displayItems(items);
                            addToCache(q, items, txt.length);
                          });
                        break;
                        case "input":
                          var txt = options.strinput, all_items = txt.split(options.delimiter), items = new Array(), added=0;
                          $results.hide();
                          var regex = new RegExp(q, 'ig');
                          for (var i = 0; i < all_items.length; i++){
                            var a = all_items[i].split("|");
                            if(regex.test(a[2]) && $("."+options.uniqueclass+"["+options.uniqueattr+"='"+a[0]+"']").length==0){
                              all_items[i][2] = parseTxt(all_items[i][2], q);
                              items.push(all_items[i]);
                              added++
                            }
                            if(added>parseInt(options.results)){
                              break;
                            }
                          }
                          displayItems(items);
                          addToCache(q, items, txt.length);
                        break;
                      }
                    }
                } else if(options.showall && q.length==0 && options.type=="input") {
                    var txt = options.strinput, all_items = txt.split(options.delimiter), items = new Array();
                    $results.hide();
                    for (var i = 0; i < all_items.length; i++){
                      var a = all_items[i].split("|");
                      if(a.length>1)
                        items.push(all_items[i]);
                    }
                    $("."+options.resultsClass).css("overflow", "auto").css("height", 200).css("width", 250);
                    displayItems(items);
                } else {
                    $results.hide();
                }
            }

            function checkCache(q) {
                for (var i = 0; i < cache.length; i++)
                    if (cache[i]['q'] == q) {
                        cache.unshift(cache.splice(i, 1)[0]);
                        return cache[0];
                    }
                return false;
            }

            function addToCache(q, items, size) {
                return false;
                while (cache.length && (cacheSize + size > options.maxCacheSize)) {
                    var cached = cache.pop();
                    cacheSize -= cached['size'];
                }
                cache.push({q: q,size: size,items: items});
                cacheSize += size;
            }

            function displayItems(items) {

                if (!items)
                    return;

                if (!items.length) {
                    $results.hide();
                    return;
                }

                resetPosition();
                var html = '';
                for (var i = 0; i < items.length; i++){
                  o = items[i].split("|");
                  html += '<li li_id="'+o[0]+'">'+o[1]+(o[2] ? ' '+o[2] : '')+'</li>';
                }

                $results.html(html).show();

                $results
                    .children('li')
                    .mouseover(function() {
                        $results.children('li').removeClass(options.selectClass);
                        $(this).addClass(options.selectClass);
                    })
                    .click(function(e) {
                        $("#"+idfield).val($(this).attr("li_id"));
                        e.preventDefault();
                        e.stopPropagation();
                        selectCurrentResult();
                        $input.focus();
                    });

            }

            function parseTxt(txt, q) {

                var items = [];
                var tokens = txt.split(options.delimiter);

                // parse returned data for non-empty items
                for (var i = 0; i < tokens.length; i++) {
                    var token = $.trim(tokens[i]);
                    if (token) {
                        token = token.replace(
                            new RegExp(q, 'ig'),
                            function(q) { return '<span class="' + options.matchClass + '">' + q + '</span>' }
                            );
                        items[items.length] = token;
                    }
                }

                return items;
            }

            function getCurrentResult() {
                if (!$results.is(':visible'))
                    return false;
                var $currentResult = $results.children('li.' + options.selectClass);
                if (!$currentResult.length)
                    $currentResult = false;
                return $currentResult;
            }

            function selectCurrentResult() {
                $currentResult = getCurrentResult();
                if ($currentResult) {
                    $input.val($currentResult.text());
                    $results.hide();
                    if (options.onSelect)
                        options.onSelect.apply($input[0]);
                }
            }

            function nextResult() {
                $currentResult = getCurrentResult();
                if ($currentResult)
                    $currentResult.removeClass(options.selectClass).next().addClass(options.selectClass);
                else
                    $results.children('li:first-child').addClass(options.selectClass);
            }

            function prevResult() {
                $currentResult = getCurrentResult();
                if ($currentResult)
                    $currentResult.removeClass(options.selectClass).prev().addClass(options.selectClass);
                else
                    $results.children('li:last-child').addClass(options.selectClass);
            }

        }

        $.fn.suggest = function(source, options) {

            if (!source)
                return;
                
            options = options || {};
            options.source = source;
            options.type = options.type || "ajax";
            options.showall = options.showall || false;
            options.showallmax = options.showallmax || 200;
            options.strinput = options.strinput || false;
            options.delay = options.delay || 100;
            options.resultsClass = options.resultsClass || 'ac_results';
            options.selectClass = options.selectClass || 'ac_over';
            options.matchClass = options.matchClass || 'ac_match';
            options.minchars = options.minchars || 2;
            options.delimiter = options.delimiter || '\n';
            options.onSelect = options.onSelect || false;
            options.maxCacheSize = options.maxCacheSize || 65536;
            options.results = options.results || 10;
            options.unique = options.unique || false;
            options.uniqueattr = options.uniqueattr || "";
            options.uniqueclass = options.uniqueclass || "";

            this.each(function() {
                new $.suggest(this, options);
            });

            return this;

        };

    })(jQuery);

/*
 * timeago: a jQuery plugin, version: 0.5.1 (08/20/2008)
 * @requires jQuery v1.2 or later
 *
 * Timeago is a jQuery plugin that makes it easy to support automatically
 * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
 *
 * For usage and examples, visit:
 * http://timeago.yarp.com/
 *
 * Licensed under the MIT:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Copyright (c) 2008, Ryan McGeary (ryanonjavascript -[at]- mcgeary [*dot*] org)
 */
(function($) {
  $.timeago = function(timestamp) {
    if (timestamp instanceof Date) return inWords(timestamp);
    else if (typeof timestamp == "string") return inWords($.timeago.parse(timestamp));
    else return inWords($.timeago.parse($(timestamp).attr("title")));
  };
  var $t = $.timeago;

  $.extend($.timeago, {
    settings: {
      refreshMillis: 60000,
      allowFuture: false,
      strings: {
        ago: "ago",
        fromNow: "from now",
        seconds: "less than a minute",
        minute: "about a minute",
        minutes: "%d minutes",
        hour: "about an hour",
        hours: "about %d hours",
        day: "a day",
        days: "%d days",
        month: "about a month",
        months: "%d months",
        year: "about a year",
        years: "%d years"
      }
    },
    inWords: function(distanceMillis) {
      var $l = this.settings.strings;
      var suffix = $l.ago;
      if (this.settings.allowFuture) {
        if (distanceMillis < 0) suffix = $l.fromNow;
        distanceMillis = Math.abs(distanceMillis);
      }

      var seconds = distanceMillis / 1000;
      var minutes = seconds / 60;
      var hours = minutes / 60;
      var days = hours / 24;
      var years = days / 365;

      var words = seconds < 45 && sprintf($l.seconds, Math.round(seconds)) ||
        seconds < 90 && $l.minute ||
        minutes < 45 && sprintf($l.minutes, Math.round(minutes)) ||
        minutes < 90 && $l.hour ||
        hours < 24 && sprintf($l.hours, Math.round(hours)) ||
        hours < 48 && $l.day ||
        days < 30 && sprintf($l.days, Math.floor(days)) ||
        days < 60 && $l.month ||
        days < 365 && sprintf($l.months, Math.floor(days / 30)) ||
        years < 2 && $l.year ||
        sprintf($l.years, Math.floor(years));

      return words + " " + suffix;
    },
    parse: function(iso8601) {
      var s = $.trim(iso8601);
      s = s.replace(/-/,"/").replace(/-/,"/");
      s = s.replace(/T/," ").replace(/Z/," UTC");
      s = s.replace(/([\+-]\d\d)\:?(\d\d)/,
      " $1$2"); // -04:00 -> -0400
      return new Date(s);
    }
  });

  $.fn.timeago = function() {
    var self = this;
    self.each(refresh);

    var $s = $t.settings;
    if ($s.refreshMillis > 0) {
      setInterval(function() { self.each(refresh); }, $s.refreshMillis);
    }
    return self;
  };

  function refresh() {
    var date = $t.parse(this.title);
    if (!isNaN(date)) {
      $(this).text(inWords(date));
    }
    //Now remove the title//
    this.title = '';
    return this;
  }

  function inWords(date) {
    return $t.inWords(distance(date));
  }

  function distance(date) {
    return (new Date().getTime() - date.getTime());
  }

  // lame sprintf implementation
  function sprintf(string, value) {
    return string.replace(/%d/i, value);
  }

  // fix for IE6 suckage
  if ($.browser.msie && $.browser.version < 7.0) {
    document.createElement('abbr');
  }
})(jQuery);

/**
 * @author Alexandre Magno
 * @desc Center a element with jQuery
 * @version 1.0
 * @example
 * $("element").center({
 *
 *      vertical: true,
 *      horizontal: true
 *
 * });
 * @obs With no arguments, the default is above
 * @license free
 * @param bool vertical, bool horizontal
 * @contribution Paulo Radichi
 *
 */
jQuery.fn.center=function(params){
    var options={vertical:true,horizontal:true};
    op=jQuery.extend(options,params);
    return this.each(function(){
        var $self=jQuery(this), width=$self.width(), height=$self.height(), paddingTop=parseInt($self.css("padding-top")), paddingBottom=parseInt($self.css("padding-bottom")), borderTop=parseInt($self.css("border-top-width")), borderBottom=parseInt($self.css("border-bottom-width")), mediaBorder=(borderTop+borderBottom)/2;
        var mediaPadding=(paddingTop+paddingBottom)/2;
        var positionType=$self.parent().css("position");
        var halfWidth=(width/2)*(-1);
        var halfHeight=((height/2)*(-1))-mediaPadding-mediaBorder;
        var cssProp={position:'absolute'};
            cssProp.height=height;
            cssProp.marginTop=$(window).scrollTop();
        if(op.horizontal){
            cssProp.width=width;
            cssProp.left='50%';
            cssProp.marginLeft=halfWidth+$(window).scrollLeft();
        }
        if(positionType=='static'){
            $self.parent().css("position","relative")
        }
        $self.css(cssProp)
    }
)};

/**
 * jQuery.ScrollTo
 * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 9/11/2008
 *
 * @projectDescription Easy element scrolling using jQuery.
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 * Tested with jQuery 1.2.6. On FF 2/3, IE 6/7, Opera 9.2/5 and Safari 3. on Windows.
 *
 * @author Ariel Flesler
 * @version 1.4
 *
 * @id jQuery.scrollTo
 * @id jQuery.fn.scrollTo
 * @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
 *    The different options for target are:
 *      - A number position (will be applied to all axes).
 *      - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
 *      - A jQuery/DOM element ( logically, child of the element to scroll )
 *      - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
 *      - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
 * @param {Number} duration The OVERALL length of the animation, this argument can be the settings object instead.
 * @param {Object,Function} settings Optional set of settings or the onAfter callback.
 *   @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
 *   @option {Number} duration The OVERALL length of the animation.
 *   @option {String} easing The easing method for the animation.
 *   @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
 *   @option {Object, Number} offset Add/deduct from the end position. One number for both axes or { top:x, left:y }.
 *   @option {Object, Number} over Add/deduct the height/width multiplied by 'over', can be { top:x, left:y } when using both axes.
 *   @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
 *   @option {Function} onAfter Function to be called after the scrolling ends. 
 *   @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
 * @return {jQuery} Returns the same jQuery object, for chaining.
 *
 * @desc Scroll to a fixed position
 * @example $('div').scrollTo( 340 );
 *
 * @desc Scroll relatively to the actual position
 * @example $('div').scrollTo( '+=340px', { axis:'y' } );
 *
 * @dec Scroll using a selector (relative to the scrolled element)
 * @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
 *
 * @ Scroll to a DOM element (same for jQuery object)
 * @example var second_child = document.getElementById('container').firstChild.nextSibling;
 *          $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
 *              alert('scrolled!!');                                                                   
 *          }});
 *
 * @desc Scroll on both axes, to different values
 * @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
 */
;(function( $ ){
    
    var $scrollTo = $.scrollTo = function( target, duration, settings ){
        $(window).scrollTo( target, duration, settings );
    };

    $scrollTo.defaults = {
        axis:'y',
        duration:1
    };

    // Returns the element that needs to be animated to scroll the window.
    // Kept for backwards compatibility (specially for localScroll & serialScroll)
    $scrollTo.window = function( scope ){
        return $(window).scrollable();
    };

    // Hack, hack, hack... stay away!
    // Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
    $.fn.scrollable = function(){
        return this.map(function(){
            // Just store it, we might need it
            var win = this.parentWindow || this.defaultView,
                // If it's a document, get its iframe or the window if it's THE document
                elem = this.nodeName == '#document' ? win.frameElement || win : this,
                // Get the corresponding document
                doc = elem.contentDocument || (elem.contentWindow || elem).document,
                isWin = elem.setInterval;

            return elem.nodeName == 'IFRAME' || isWin && $.browser.safari ? doc.body
                : isWin ? doc.documentElement
                : this;
        });
    };

    $.fn.scrollTo = function( target, duration, settings ){
        if( typeof duration == 'object' ){
            settings = duration;
            duration = 0;
        }
        if( typeof settings == 'function' )
            settings = { onAfter:settings };
            
        settings = $.extend( {}, $scrollTo.defaults, settings );
        // Speed is still recognized for backwards compatibility
        duration = duration || settings.speed || settings.duration;
        // Make sure the settings are given right
        settings.queue = settings.queue && settings.axis.length > 1;
        
        if( settings.queue )
            // Let's keep the overall duration
            duration /= 2;
        settings.offset = both( settings.offset );
        settings.over = both( settings.over );

        return this.scrollable().each(function(){
            var elem = this,
                $elem = $(elem),
                targ = target, toff, attr = {},
                win = $elem.is('html,body');

            switch( typeof targ ){
                // A number will pass the regex
                case 'number':
                case 'string':
                    if( /^([+-]=)?\d+(px)?$/.test(targ) ){
                        targ = both( targ );
                        // We are done
                        break;
                    }
                    // Relative selector, no break!
                    targ = $(targ,this);
                case 'object':
                    // DOMElement / jQuery
                    if( targ.is || targ.style )
                        // Get the real position of the target 
                        toff = (targ = $(targ)).offset();
            }
            $.each( settings.axis.split(''), function( i, axis ){
                var Pos = axis == 'x' ? 'Left' : 'Top',
                    pos = Pos.toLowerCase(),
                    key = 'scroll' + Pos,
                    old = elem[key],
                    Dim = axis == 'x' ? 'Width' : 'Height',
                    dim = Dim.toLowerCase();

                if( toff ){// jQuery / DOMElement
                    attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );

                    // If it's a dom element, reduce the margin
                    if( settings.margin ){
                        attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
                        attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
                    }
                    
                    attr[key] += settings.offset[pos] || 0;
                    
                    if( settings.over[pos] )
                        // Scroll to a fraction of its width/height
                        attr[key] += targ[dim]() * settings.over[pos];
                }else
                    attr[key] = targ[pos];

                // Number or 'number'
                if( /^\d+$/.test(attr[key]) )
                    // Check the limits
                    attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max(Dim) );

                // Queueing axes
                if( !i && settings.queue ){
                    // Don't waste time animating, if there's no need.
                    if( old != attr[key] )
                        // Intermediate animation
                        animate( settings.onAfterFirst );
                    // Don't animate this axis again in the next iteration.
                    delete attr[key];
                }
            });         
            animate( settings.onAfter );            

            function animate( callback ){
                $elem.animate( attr, duration, settings.easing, callback && function(){
                    callback.call(this, target, settings);
                });
            };
            function max( Dim ){
                var attr ='scroll'+Dim,
                    doc = elem.ownerDocument;
                
                return win
                        ? Math.max( doc.documentElement[attr], doc.body[attr]  )
                        : elem[attr];
            };
        }).end();
    };

    function both( val ){
        return typeof val == 'object' ? val : { top:val, left:val };
    };

})( jQuery );
// jQuery Context Menu Plugin
// Version 1.00
// Cory S.N. LaViska
// A Beautiful Site (http://abeautifulsite.net/)
// set leftClick:false to disable Left Click menu displays
//eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5(X)(4(){$.1g($.1h,{z:4(o,h){5(o.q==r)j t;5(o.B==r)o.B=1i;5(o.C==r)o.C=1j;5(o.B==0)o.B=-1;5(o.C==0)o.C=-1;5(o.M==r)o.M=1k;$(3).n(4(){m f=$(3);m g=$(f).1l();$(\'#\'+o.q).k(\'z\');$(3).N(4(e){m c=e;$(3).O(4(e){m a=$(3);$(3).p(\'O\');5(c.Y==2||(o.M&&c.Y==0)){$(".z").Z();m b=$(\'#\'+o.q);5($(f).1m(\'l\'))j t;m d={},x,y;5(D.E){d.G=D.G;d.H=D.H;d.E=D.E;d.I=D.I}v 5(9.w&&9.w.P){d.G=9.w.Q;d.H=9.w.R;d.E=9.w.P;d.I=9.w.10}v 5(9.F){d.G=9.F.Q;d.H=9.F.R;d.E=9.F.P;d.I=9.F.10}(e.11)?x=e.11:x=e.1n+d.R;(e.12)?y=e.12:x=e.1o+d.Q;$(9).p(\'s\');$(b).14({15:y,16:x}).1p(o.B);$(b).6(\'A\').1q(4(){$(b).6(\'8.7\').u(\'7\');$(3).S().k(\'7\')}).1r(4(){$(b).6(\'8.7\').u(\'7\')});$(9).T(4(e){1s(e.1t){J 1u:5($(b).6(\'8.7\').K()==0){$(b).6(\'8:17\').k(\'7\')}v{$(b).6(\'8.7\').u(\'7\').1v(\'8:U(.l)\').18(0).k(\'7\');5($(b).6(\'8.7\').K()==0)$(b).6(\'8:17\').k(\'7\')}L;J 1w:5($(b).6(\'8.7\').K()==0){$(b).6(\'8:19\').k(\'7\')}v{$(b).6(\'8.7\').u(\'7\').1x(\'8:U(.l)\').18(0).k(\'7\');5($(b).6(\'8.7\').K()==0)$(b).6(\'8:19\').k(\'7\')}L;J 13:$(b).6(\'8.7 A\').1a(\'s\');L;J 1y:$(9).1a(\'s\');L}});$(\'#\'+o.q).6(\'A\').p(\'s\');$(\'#\'+o.q).6(\'8:U(.l) A\').s(4(){$(9).p(\'s\').p(\'T\');$(".z").Z();5(h)h($(3).1z(\'V\').1A(1),$(a),{x:x-g.16,y:y-g.15,1B:x,1C:y});j t});1D(4(){$(9).s(4(){$(9).p(\'s\').p(\'T\');$(b).1E(o.C);j t})},0)}})});5($.1b.1F){$(\'#\'+o.q).n(4(){$(3).14({\'1G\':\'1H\'})})}v 5($.1b.1I){$(\'#\'+o.q).n(4(){$(3).W(\'1J.1c\',4(){j t})})}v{$(\'#\'+o.q).n(4(){$(3).W(\'N.1c\',4(){j t})})}$(f).1K(\'1L.z\').W(\'1M\',4(){j t})});j $(3)},1N:4(o){5(o==r){$(3).6(\'8\').k(\'l\');j($(3))}$(3).n(4(){5(o!=r){m d=o.1d(\',\');1e(m i=0;i<d.1f;i++){$(3).6(\'A[V="\'+d[i]+\'"]\').S().k(\'l\')}}});j($(3))},1O:4(o){5(o==r){$(3).6(\'8.l\').u(\'l\');j($(3))}$(3).n(4(){5(o!=r){m d=o.1d(\',\');1e(m i=0;i<d.1f;i++){$(3).6(\'A[V="\'+d[i]+\'"]\').S().u(\'l\')}}});j($(3))},1P:4(){$(3).n(4(){$(3).k(\'l\')});j($(3))},1Q:4(){$(3).n(4(){$(3).u(\'l\')});j($(3))},1R:4(){$(3).n(4(){$(3).p(\'N\').p(\'O\')});j($(3))}})})(X);',62,116,'|||this|function|if|find|hover|LI|document||||||||||return|addClass|disabled|var|each||unbind|menu|undefined|click|false|removeClass|else|documentElement|||contextMenu||inSpeed|outSpeed|self|innerHeight|body|pageYOffset|pageXOffset|innerWidth|case|size|break|leftClick|mousedown|mouseup|clientHeight|scrollTop|scrollLeft|parent|keypress|not|href|bind|jQuery|button|hide|clientWidth|pageX|pageY||css|top|left|last|eq|first|trigger|browser|disableTextSelect|split|for|length|extend|fn|150|75|true|offset|hasClass|clientX|clientY|fadeIn|mouseover|mouseout|switch|keyCode|38|prevAll|40|nextAll|27|attr|substr|docX|docY|setTimeout|fadeOut|mozilla|MozUserSelect|none|msie|selectstart|add|UL|contextmenu|disableContextMenuItems|enableContextMenuItems|disableContextMenu|enableContextMenu|destroyContextMenu'.split('|'),0,{}))
if(jQuery)( function() {
    $.extend($.fn, {
        
        contextMenu: function(o, callback) {
            // Defaults
            if( o.menu == undefined ) return false;
            if( o.inSpeed == undefined ) o.inSpeed = 150;
            if( o.outSpeed == undefined ) o.outSpeed = 75;
            // 0 needs to be -1 for expected results (no fade)
            if( o.inSpeed == 0 ) o.inSpeed = -1;
            if( o.outSpeed == 0 ) o.outSpeed = -1;
            if( o.leftClick == undefined ) o.leftClick = true;
            if( o.precallback == undefined ) o.precallback = false;
            // Loop each context menu
            $(this).each( function() {
                var el = $(this);
                var offset = $(el).offset();
                // Add contextMenu class
                $('#' + o.menu).addClass('contextMenu');
                // Simulate a true right click
                $(this).mousedown( function(e) {
                    var evt = e;
                    $(this).mouseup( function(e) {
                        var srcElement = $(this);
                        $(this).unbind('mouseup');
                        if( evt.button == 2 || (o.leftClick && (evt.button == 0 || evt.button == 1))){
                            
                            // Hide context menus that may be showing
                            $(".contextMenu").hide();
                            // Get this context menu
                            var menu = $('#' + o.menu);
                            
                            if( $(el).hasClass('disabled') ) return false;
                            
                            // Detect mouse position
                            var d = {}, x, y;
                            if( self.innerHeight ) {
                                d.pageYOffset = self.pageYOffset;
                                d.pageXOffset = self.pageXOffset;
                                d.innerHeight = self.innerHeight;
                                d.innerWidth = self.innerWidth;
                            } else if( document.documentElement &&
                                document.documentElement.clientHeight ) {
                                d.pageYOffset = document.documentElement.scrollTop;
                                d.pageXOffset = document.documentElement.scrollLeft;
                                d.innerHeight = document.documentElement.clientHeight;
                                d.innerWidth = document.documentElement.clientWidth;
                            } else if( document.body ) {
                                d.pageYOffset = document.body.scrollTop;
                                d.pageXOffset = document.body.scrollLeft;
                                d.innerHeight = document.body.clientHeight;
                                d.innerWidth = document.body.clientWidth;
                            }
                            (e.pageX) ? x = e.pageX : x = e.clientX + d.scrollLeft;
                            (e.pageY) ? y = e.pageY : x = e.clientY + d.scrollTop;
                            
                            // Show the menu
                            $(document).unbind('click');
                            $(menu).css({ top: y, left: x }).fadeIn(o.inSpeed);
                            if(o.precallback){
                              o.precallback(el, menu);
                            }
                            // Hover events
                            $(menu).find('A').mouseover( function() {
                                $(menu).find('LI.hover').removeClass('hover');
                                $(this).parent().addClass('hover');
                            }).mouseout( function() {
                                $(menu).find('LI.hover').removeClass('hover');
                            });
                            
                            // Keyboard
                            $(document).keypress( function(e) {
                                switch( e.keyCode ) {
                                    case 38: // up
                                        if( $(menu).find('LI.hover').size() == 0 ) {
                                            $(menu).find('LI:last').addClass('hover');
                                        } else {
                                            $(menu).find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover');
                                            if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:last').addClass('hover');
                                        }
                                    break;
                                    case 40: // down
                                        if( $(menu).find('LI.hover').size() == 0 ) {
                                            $(menu).find('LI:first').addClass('hover');
                                        } else {
                                            $(menu).find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover');
                                            if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:first').addClass('hover');
                                        }
                                    break;
                                    case 13: // enter
                                        $(menu).find('LI.hover A').trigger('click');
                                    break;
                                    case 27: // esc
                                        $(document).trigger('click');
                                    break
                                }
                            });
                            
                            // When items are selected
                            $('#' + o.menu).find('A').unbind('click');
                            $('#' + o.menu).find('LI:not(.disabled) A').click( function() {
                                $(document).unbind('click').unbind('keypress');
                                $(".contextMenu").hide();
                                // Callback
                                if( callback ) callback( $(this).attr('href').substr(1), $(srcElement), {x: x - offset.left, y: y - offset.top, docX: x, docY: y} );
                                return false;
                            });
                            
                            // Hide bindings
                            setTimeout( function() { // Delay for Mozilla
                                $(document).click( function() {
                                    $(document).unbind('click').unbind('keypress');
                                    $(menu).fadeOut(o.outSpeed);
                                    return false;
                                });
                            }, 0);
                        }
                    });
                });
                
                // Disable text selection
                if( $.browser.mozilla ) {
                    $('#' + o.menu).each( function() { $(this).css({ 'MozUserSelect' : 'none' }); });
                } else if( $.browser.msie ) {
                    $('#' + o.menu).each( function() { $(this).bind('selectstart.disableTextSelect', function() { return false; }); });
                } else {
                    $('#' + o.menu).each(function() { $(this).bind('mousedown.disableTextSelect', function() { return false; }); });
                }
                // Disable browser context menu (requires both selectors to work in IE/Safari + FF/Chrome)
                $(el).add('UL.contextMenu').bind('contextmenu', function() { return false; });
                
            });
            return $(this);
        },
        
        // Disable context menu items on the fly
        disableContextMenuItems: function(o) {
            if( o == undefined ) {
                // Disable all
                $(this).find('LI').addClass('disabled');
                return( $(this) );
            }
            $(this).each( function() {
                if( o != undefined ) {
                    var d = o.split(',');
                    for( var i = 0; i < d.length; i++ ) {
                        $(this).find('A[href="' + d[i] + '"]').parent().addClass('disabled');
                        
                    }
                }
            });
            return( $(this) );
        },
        
        // Enable context menu items on the fly
        enableContextMenuItems: function(o) {
            if( o == undefined ) {
                // Enable all
                $(this).find('LI.disabled').removeClass('disabled');
                return( $(this) );
            }
            $(this).each( function() {
                if( o != undefined ) {
                    var d = o.split(',');
                    for( var i = 0; i < d.length; i++ ) {
                        $(this).find('A[href="' + d[i] + '"]').parent().removeClass('disabled');
                        
                    }
                }
            });
            return( $(this) );
        },
        
        // Disable context menu(s)
        disableContextMenu: function() {
            $(this).each( function() {
                $(this).addClass('disabled');
            });
            return( $(this) );
        },
        
        // Enable context menu(s)
        enableContextMenu: function() {
            $(this).each( function() {
                $(this).removeClass('disabled');
            });
            return( $(this) );
        },
        
        // Destroy context menu(s)
        destroyContextMenu: function() {
            // Destroy specified context menus
            $(this).each( function() {
                // Disable action
                $(this).unbind('mousedown').unbind('mouseup');
            });
            return( $(this) );
        }
        
    });
})(jQuery);
/*
 * jQuery validation plug-in 1.7
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 Jörn Zaefferer
 *
 * $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(7($){$.H($.2L,{17:7(d){l(!6.F){d&&d.2q&&2T.1z&&1z.52("3y 3p, 4L\'t 17, 64 3y");8}p c=$.19(6[0],\'v\');l(c){8 c}c=2w $.v(d,6[0]);$.19(6[0],\'v\',c);l(c.q.3x){6.3s("1w, 3i").1o(".4E").3e(7(){c.3b=w});l(c.q.35){6.3s("1w, 3i").1o(":2s").3e(7(){c.1Z=6})}6.2s(7(b){l(c.q.2q)b.5J();7 1T(){l(c.q.35){l(c.1Z){p a=$("<1w 1V=\'5r\'/>").1s("u",c.1Z.u).33(c.1Z.Z).51(c.U)}c.q.35.V(c,c.U);l(c.1Z){a.3D()}8 N}8 w}l(c.3b){c.3b=N;8 1T()}l(c.L()){l(c.1b){c.1l=w;8 N}8 1T()}12{c.2l();8 N}})}8 c},J:7(){l($(6[0]).2W(\'L\')){8 6.17().L()}12{p b=w;p a=$(6[0].L).17();6.P(7(){b&=a.I(6)});8 b}},4D:7(c){p d={},$I=6;$.P(c.1I(/\\s/),7(a,b){d[b]=$I.1s(b);$I.6d(b)});8 d},1i:7(h,k){p f=6[0];l(h){p i=$.19(f.L,\'v\').q;p d=i.1i;p c=$.v.36(f);23(h){1e"1d":$.H(c,$.v.1X(k));d[f.u]=c;l(k.G)i.G[f.u]=$.H(i.G[f.u],k.G);31;1e"3D":l(!k){T d[f.u];8 c}p e={};$.P(k.1I(/\\s/),7(a,b){e[b]=c[b];T c[b]});8 e}}p g=$.v.41($.H({},$.v.3Y(f),$.v.3V(f),$.v.3T(f),$.v.36(f)),f);l(g.15){p j=g.15;T g.15;g=$.H({15:j},g)}8 g}});$.H($.5p[":"],{5n:7(a){8!$.1p(""+a.Z)},5g:7(a){8!!$.1p(""+a.Z)},5f:7(a){8!a.4h}});$.v=7(b,a){6.q=$.H(w,{},$.v.3d,b);6.U=a;6.3I()};$.v.W=7(c,b){l(R.F==1)8 7(){p a=$.3F(R);a.4V(c);8 $.v.W.1Q(6,a)};l(R.F>2&&b.2c!=3B){b=$.3F(R).4Q(1)}l(b.2c!=3B){b=[b]}$.P(b,7(i,n){c=c.1u(2w 3t("\\\\{"+i+"\\\\}","g"),n)});8 c};$.H($.v,{3d:{G:{},2a:{},1i:{},1c:"3r",28:"J",2F:"4P",2l:w,3o:$([]),2D:$([]),3x:w,3l:[],3k:N,4O:7(a){6.3U=a;l(6.q.4K&&!6.4J){6.q.1K&&6.q.1K.V(6,a,6.q.1c,6.q.28);6.1M(a).2A()}},4C:7(a){l(!6.1E(a)&&(a.u 11 6.1a||!6.K(a))){6.I(a)}},6c:7(a){l(a.u 11 6.1a||a==6.4A){6.I(a)}},68:7(a){l(a.u 11 6.1a)6.I(a);12 l(a.4x.u 11 6.1a)6.I(a.4x)},39:7(a,c,b){$(a).22(c).2v(b)},1K:7(a,c,b){$(a).2v(c).22(b)}},63:7(a){$.H($.v.3d,a)},G:{15:"61 4r 2W 15.",1q:"M 2O 6 4r.",1J:"M O a J 1J 5X.",1B:"M O a J 5W.",1A:"M O a J 1A.",2j:"M O a J 1A (5Q).",1G:"M O a J 1G.",1P:"M O 5O 1P.",2f:"M O a J 5L 5I 1G.",2o:"M O 47 5F Z 5B.",43:"M O a Z 5z a J 5x.",18:$.v.W("M O 3K 5v 2X {0} 2V."),1y:$.v.W("M O 5t 5s {0} 2V."),2i:$.v.W("M O a Z 3W {0} 3O {1} 2V 5o."),2r:$.v.W("M O a Z 3W {0} 3O {1}."),1C:$.v.W("M O a Z 5j 2X 46 3M 3L {0}."),1t:$.v.W("M O a Z 5d 2X 46 3M 3L {0}.")},3J:N,5a:{3I:7(){6.24=$(6.q.2D);6.4t=6.24.F&&6.24||$(6.U);6.2x=$(6.q.3o).1d(6.q.2D);6.1a={};6.54={};6.1b=0;6.1h={};6.1f={};6.21();p f=(6.2a={});$.P(6.q.2a,7(d,c){$.P(c.1I(/\\s/),7(a,b){f[b]=d})});p e=6.q.1i;$.P(e,7(b,a){e[b]=$.v.1X(a)});7 2N(a){p b=$.19(6[0].L,"v"),3c="4W"+a.1V.1u(/^17/,"");b.q[3c]&&b.q[3c].V(b,6[0])}$(6.U).2K(":3E, :4U, :4T, 2e, 4S","2d 2J 4R",2N).2K(":3C, :3A, 2e, 3z","3e",2N);l(6.q.3w)$(6.U).2I("1f-L.17",6.q.3w)},L:7(){6.3v();$.H(6.1a,6.1v);6.1f=$.H({},6.1v);l(!6.J())$(6.U).3u("1f-L",[6]);6.1m();8 6.J()},3v:7(){6.2H();Q(p i=0,14=(6.2b=6.14());14[i];i++){6.29(14[i])}8 6.J()},I:7(a){a=6.2G(a);6.4A=a;6.2P(a);6.2b=$(a);p b=6.29(a);l(b){T 6.1f[a.u]}12{6.1f[a.u]=w}l(!6.3q()){6.13=6.13.1d(6.2x)}6.1m();8 b},1m:7(b){l(b){$.H(6.1v,b);6.S=[];Q(p c 11 b){6.S.27({1j:b[c],I:6.26(c)[0]})}6.1n=$.3n(6.1n,7(a){8!(a.u 11 b)})}6.q.1m?6.q.1m.V(6,6.1v,6.S):6.3m()},2S:7(){l($.2L.2S)$(6.U).2S();6.1a={};6.2H();6.2Q();6.14().2v(6.q.1c)},3q:7(){8 6.2k(6.1f)},2k:7(a){p b=0;Q(p i 11 a)b++;8 b},2Q:7(){6.2C(6.13).2A()},J:7(){8 6.3j()==0},3j:7(){8 6.S.F},2l:7(){l(6.q.2l){3Q{$(6.3h()||6.S.F&&6.S[0].I||[]).1o(":4N").3g().4M("2d")}3f(e){}}},3h:7(){p a=6.3U;8 a&&$.3n(6.S,7(n){8 n.I.u==a.u}).F==1&&a},14:7(){p a=6,2B={};8 $([]).1d(6.U.14).1o(":1w").1L(":2s, :21, :4I, [4H]").1L(6.q.3l).1o(7(){!6.u&&a.q.2q&&2T.1z&&1z.3r("%o 4G 3K u 4F",6);l(6.u 11 2B||!a.2k($(6).1i()))8 N;2B[6.u]=w;8 w})},2G:7(a){8 $(a)[0]},2z:7(){8 $(6.q.2F+"."+6.q.1c,6.4t)},21:7(){6.1n=[];6.S=[];6.1v={};6.1k=$([]);6.13=$([]);6.2b=$([])},2H:7(){6.21();6.13=6.2z().1d(6.2x)},2P:7(a){6.21();6.13=6.1M(a)},29:7(d){d=6.2G(d);l(6.1E(d)){d=6.26(d.u)[0]}p a=$(d).1i();p c=N;Q(Y 11 a){p b={Y:Y,2n:a[Y]};3Q{p f=$.v.1N[Y].V(6,d.Z.1u(/\\r/g,""),d,b.2n);l(f=="1S-1Y"){c=w;6g}c=N;l(f=="1h"){6.13=6.13.1L(6.1M(d));8}l(!f){6.4B(d,b);8 N}}3f(e){6.q.2q&&2T.1z&&1z.6f("6e 6b 6a 69 I "+d.4z+", 29 47 \'"+b.Y+"\' Y",e);67 e;}}l(c)8;l(6.2k(a))6.1n.27(d);8 w},4y:7(a,b){l(!$.1H)8;p c=6.q.3a?$(a).1H()[6.q.3a]:$(a).1H();8 c&&c.G&&c.G[b]},4w:7(a,b){p m=6.q.G[a];8 m&&(m.2c==4v?m:m[b])},4u:7(){Q(p i=0;i<R.F;i++){l(R[i]!==20)8 R[i]}8 20},2u:7(a,b){8 6.4u(6.4w(a.u,b),6.4y(a,b),!6.q.3k&&a.62||20,$.v.G[b],"<4s>60: 5Z 1j 5Y Q "+a.u+"</4s>")},4B:7(b,a){p c=6.2u(b,a.Y),37=/\\$?\\{(\\d+)\\}/g;l(1g c=="7"){c=c.V(6,a.2n,b)}12 l(37.16(c)){c=1F.W(c.1u(37,\'{$1}\'),a.2n)}6.S.27({1j:c,I:b});6.1v[b.u]=c;6.1a[b.u]=c},2C:7(a){l(6.q.2t)a=a.1d(a.4q(6.q.2t));8 a},3m:7(){Q(p i=0;6.S[i];i++){p a=6.S[i];6.q.39&&6.q.39.V(6,a.I,6.q.1c,6.q.28);6.2E(a.I,a.1j)}l(6.S.F){6.1k=6.1k.1d(6.2x)}l(6.q.1x){Q(p i=0;6.1n[i];i++){6.2E(6.1n[i])}}l(6.q.1K){Q(p i=0,14=6.4p();14[i];i++){6.q.1K.V(6,14[i],6.q.1c,6.q.28)}}6.13=6.13.1L(6.1k);6.2Q();6.2C(6.1k).4o()},4p:7(){8 6.2b.1L(6.4n())},4n:7(){8 $(6.S).4m(7(){8 6.I})},2E:7(a,c){p b=6.1M(a);l(b.F){b.2v().22(6.q.1c);b.1s("4l")&&b.4k(c)}12{b=$("<"+6.q.2F+"/>").1s({"Q":6.34(a),4l:w}).22(6.q.1c).4k(c||"");l(6.q.2t){b=b.2A().4o().5V("<"+6.q.2t+"/>").4q()}l(!6.24.5S(b).F)6.q.4j?6.q.4j(b,$(a)):b.5R(a)}l(!c&&6.q.1x){b.3E("");1g 6.q.1x=="1D"?b.22(6.q.1x):6.q.1x(b)}6.1k=6.1k.1d(b)},1M:7(a){p b=6.34(a);8 6.2z().1o(7(){8 $(6).1s(\'Q\')==b})},34:7(a){8 6.2a[a.u]||(6.1E(a)?a.u:a.4z||a.u)},1E:7(a){8/3C|3A/i.16(a.1V)},26:7(d){p c=6.U;8 $(4i.5P(d)).4m(7(a,b){8 b.L==c&&b.u==d&&b||4g})},1O:7(a,b){23(b.4f.4e()){1e\'2e\':8 $("3z:3p",b).F;1e\'1w\':l(6.1E(b))8 6.26(b.u).1o(\':4h\').F}8 a.F},4d:7(b,a){8 6.32[1g b]?6.32[1g b](b,a):w},32:{"5N":7(b,a){8 b},"1D":7(b,a){8!!$(b,a.L).F},"7":7(b,a){8 b(a)}},K:7(a){8!$.v.1N.15.V(6,$.1p(a.Z),a)&&"1S-1Y"},4c:7(a){l(!6.1h[a.u]){6.1b++;6.1h[a.u]=w}},4b:7(a,b){6.1b--;l(6.1b<0)6.1b=0;T 6.1h[a.u];l(b&&6.1b==0&&6.1l&&6.L()){$(6.U).2s();6.1l=N}12 l(!b&&6.1b==0&&6.1l){$(6.U).3u("1f-L",[6]);6.1l=N}},2h:7(a){8 $.19(a,"2h")||$.19(a,"2h",{2M:4g,J:w,1j:6.2u(a,"1q")})}},1R:{15:{15:w},1J:{1J:w},1B:{1B:w},1A:{1A:w},2j:{2j:w},4a:{4a:w},1G:{1G:w},49:{49:w},1P:{1P:w},2f:{2f:w}},48:7(a,b){a.2c==4v?6.1R[a]=b:$.H(6.1R,a)},3V:7(b){p a={};p c=$(b).1s(\'5H\');c&&$.P(c.1I(\' \'),7(){l(6 11 $.v.1R){$.H(a,$.v.1R[6])}});8 a},3T:7(c){p a={};p d=$(c);Q(Y 11 $.v.1N){p b=d.1s(Y);l(b){a[Y]=b}}l(a.18&&/-1|5G|5C/.16(a.18)){T a.18}8 a},3Y:7(a){l(!$.1H)8{};p b=$.19(a.L,\'v\').q.3a;8 b?$(a).1H()[b]:$(a).1H()},36:7(b){p a={};p c=$.19(b.L,\'v\');l(c.q.1i){a=$.v.1X(c.q.1i[b.u])||{}}8 a},41:7(d,e){$.P(d,7(c,b){l(b===N){T d[c];8}l(b.2R||b.2p){p a=w;23(1g b.2p){1e"1D":a=!!$(b.2p,e.L).F;31;1e"7":a=b.2p.V(e,e);31}l(a){d[c]=b.2R!==20?b.2R:w}12{T d[c]}}});$.P(d,7(a,b){d[a]=$.44(b)?b(e):b});$.P([\'1y\',\'18\',\'1t\',\'1C\'],7(){l(d[6]){d[6]=2Z(d[6])}});$.P([\'2i\',\'2r\'],7(){l(d[6]){d[6]=[2Z(d[6][0]),2Z(d[6][1])]}});l($.v.3J){l(d.1t&&d.1C){d.2r=[d.1t,d.1C];T d.1t;T d.1C}l(d.1y&&d.18){d.2i=[d.1y,d.18];T d.1y;T d.18}}l(d.G){T d.G}8 d},1X:7(a){l(1g a=="1D"){p b={};$.P(a.1I(/\\s/),7(){b[6]=w});a=b}8 a},5A:7(c,a,b){$.v.1N[c]=a;$.v.G[c]=b!=20?b:$.v.G[c];l(a.F<3){$.v.48(c,$.v.1X(c))}},1N:{15:7(c,d,a){l(!6.4d(a,d))8"1S-1Y";23(d.4f.4e()){1e\'2e\':p b=$(d).33();8 b&&b.F>0;1e\'1w\':l(6.1E(d))8 6.1O(c,d)>0;5y:8 $.1p(c).F>0}},1q:7(f,h,j){l(6.K(h))8"1S-1Y";p g=6.2h(h);l(!6.q.G[h.u])6.q.G[h.u]={};g.40=6.q.G[h.u].1q;6.q.G[h.u].1q=g.1j;j=1g j=="1D"&&{1B:j}||j;l(g.2M!==f){g.2M=f;p k=6;6.4c(h);p i={};i[h.u]=f;$.2U($.H(w,{1B:j,3Z:"2Y",3X:"17"+h.u,5w:"5u",19:i,1x:7(d){k.q.G[h.u].1q=g.40;p b=d===w;l(b){p e=k.1l;k.2P(h);k.1l=e;k.1n.27(h);k.1m()}12{p a={};p c=(g.1j=d||k.2u(h,"1q"));a[h.u]=$.44(c)?c(f):c;k.1m(a)}g.J=b;k.4b(h,b)}},j));8"1h"}12 l(6.1h[h.u]){8"1h"}8 g.J},1y:7(b,c,a){8 6.K(c)||6.1O($.1p(b),c)>=a},18:7(b,c,a){8 6.K(c)||6.1O($.1p(b),c)<=a},2i:7(b,d,a){p c=6.1O($.1p(b),d);8 6.K(d)||(c>=a[0]&&c<=a[1])},1t:7(b,c,a){8 6.K(c)||b>=a},1C:7(b,c,a){8 6.K(c)||b<=a},2r:7(b,c,a){8 6.K(c)||(b>=a[0]&&b<=a[1])},1J:7(a,b){8 6.K(b)||/^((([a-z]|\\d|[!#\\$%&\'\\*\\+\\-\\/=\\?\\^X`{\\|}~]|[\\E-\\B\\C-\\x\\A-\\y])+(\\.([a-z]|\\d|[!#\\$%&\'\\*\\+\\-\\/=\\?\\^X`{\\|}~]|[\\E-\\B\\C-\\x\\A-\\y])+)*)|((\\3S)((((\\2m|\\1W)*(\\30\\3R))?(\\2m|\\1W)+)?(([\\3P-\\5q\\45\\42\\5D-\\5E\\3N]|\\5m|[\\5l-\\5k]|[\\5i-\\5K]|[\\E-\\B\\C-\\x\\A-\\y])|(\\\\([\\3P-\\1W\\45\\42\\30-\\3N]|[\\E-\\B\\C-\\x\\A-\\y]))))*(((\\2m|\\1W)*(\\30\\3R))?(\\2m|\\1W)+)?(\\3S)))@((([a-z]|\\d|[\\E-\\B\\C-\\x\\A-\\y])|(([a-z]|\\d|[\\E-\\B\\C-\\x\\A-\\y])([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])*([a-z]|\\d|[\\E-\\B\\C-\\x\\A-\\y])))\\.)+(([a-z]|[\\E-\\B\\C-\\x\\A-\\y])|(([a-z]|[\\E-\\B\\C-\\x\\A-\\y])([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])*([a-z]|[\\E-\\B\\C-\\x\\A-\\y])))\\.?$/i.16(a)},1B:7(a,b){8 6.K(b)||/^(5h?|5M):\\/\\/(((([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])|(%[\\1U-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|[\\E-\\B\\C-\\x\\A-\\y])|(([a-z]|\\d|[\\E-\\B\\C-\\x\\A-\\y])([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])*([a-z]|\\d|[\\E-\\B\\C-\\x\\A-\\y])))\\.)+(([a-z]|[\\E-\\B\\C-\\x\\A-\\y])|(([a-z]|[\\E-\\B\\C-\\x\\A-\\y])([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])*([a-z]|[\\E-\\B\\C-\\x\\A-\\y])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])|(%[\\1U-f]{2})|[!\\$&\'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])|(%[\\1U-f]{2})|[!\\$&\'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])|(%[\\1U-f]{2})|[!\\$&\'\\(\\)\\*\\+,;=]|:|@)|[\\5e-\\5T]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|X|~|[\\E-\\B\\C-\\x\\A-\\y])|(%[\\1U-f]{2})|[!\\$&\'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.16(a)},1A:7(a,b){8 6.K(b)||!/5U|5c/.16(2w 5b(a))},2j:7(a,b){8 6.K(b)||/^\\d{4}[\\/-]\\d{1,2}[\\/-]\\d{1,2}$/.16(a)},1G:7(a,b){8 6.K(b)||/^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:\\.\\d+)?$/.16(a)},1P:7(a,b){8 6.K(b)||/^\\d+$/.16(a)},2f:7(b,e){l(6.K(e))8"1S-1Y";l(/[^0-9-]+/.16(b))8 N;p a=0,d=0,2g=N;b=b.1u(/\\D/g,"");Q(p n=b.F-1;n>=0;n--){p c=b.59(n);p d=58(c,10);l(2g){l((d*=2)>9)d-=9}a+=d;2g=!2g}8(a%10)==0},43:7(b,c,a){a=1g a=="1D"?a.1u(/,/g,\'|\'):"57|56?g|55";8 6.K(c)||b.65(2w 3t(".("+a+")$","i"))},2o:7(c,d,a){p b=$(a).66(".17-2o").2I("3H.17-2o",7(){$(d).J()});8 c==b.33()}}});$.W=$.v.W})(1F);(7($){p c=$.2U;p d={};$.2U=7(a){a=$.H(a,$.H({},$.53,a));p b=a.3X;l(a.3Z=="2Y"){l(d[b]){d[b].2Y()}8(d[b]=c.1Q(6,R))}8 c.1Q(6,R)}})(1F);(7($){l(!1F.1r.38.2d&&!1F.1r.38.2J&&4i.3G){$.P({3g:\'2d\',3H:\'2J\'},7(b,a){$.1r.38[a]={50:7(){6.3G(b,2y,w)},4Z:7(){6.4Y(b,2y,w)},2y:7(e){R[0]=$.1r.2O(e);R[0].1V=a;8 $.1r.1T.1Q(6,R)}};7 2y(e){e=$.1r.2O(e);e.1V=a;8 $.1r.1T.V(6,e)}})};$.H($.2L,{2K:7(d,e,c){8 6.2I(e,7(a){p b=$(a.4X);l(b.2W(d)){8 c.1Q(b,R)}})}})})(1F);',62,389,'||||||this|function|return|||||||||||||if||||var|settings||||name|validator|true|uFDCF|uFFEF||uFDF0|uD7FF|uF900||u00A0|length|messages|extend|element|valid|optional|form|Please|false|enter|each|for|arguments|errorList|delete|currentForm|call|format|_|method|value||in|else|toHide|elements|required|test|validate|maxlength|data|submitted|pendingRequest|errorClass|add|case|invalid|typeof|pending|rules|message|toShow|formSubmitted|showErrors|successList|filter|trim|remote|event|attr|min|replace|errorMap|input|success|minlength|console|date|url|max|string|checkable|jQuery|number|metadata|split|email|unhighlight|not|errorsFor|methods|getLength|digits|apply|classRuleSettings|dependency|handle|da|type|x09|normalizeRule|mismatch|submitButton|undefined|reset|addClass|switch|labelContainer||findByName|push|validClass|check|groups|currentElements|constructor|focusin|select|creditcard|bEven|previousValue|rangelength|dateISO|objectLength|focusInvalid|x20|parameters|equalTo|depends|debug|range|submit|wrapper|defaultMessage|removeClass|new|containers|handler|errors|hide|rulesCache|addWrapper|errorLabelContainer|showLabel|errorElement|clean|prepareForm|bind|focusout|validateDelegate|fn|old|delegate|fix|prepareElement|hideErrors|param|resetForm|window|ajax|characters|is|than|abort|Number|x0d|break|dependTypes|val|idOrName|submitHandler|staticRules|theregex|special|highlight|meta|cancelSubmit|eventType|defaults|click|catch|focus|findLastActive|button|size|ignoreTitle|ignore|defaultShowErrors|grep|errorContainer|selected|numberOfInvalids|error|find|RegExp|triggerHandler|checkForm|invalidHandler|onsubmit|nothing|option|checkbox|Array|radio|remove|text|makeArray|addEventListener|blur|init|autoCreateRanges|no|to|equal|x7f|and|x01|try|x0a|x22|attributeRules|lastActive|classRules|between|port|metadataRules|mode|originalMessage|normalizeRules|x0c|accept|isFunction|x0b|or|the|addClassRules|numberDE|dateDE|stopRequest|startRequest|depend|toLowerCase|nodeName|null|checked|document|errorPlacement|html|generated|map|invalidElements|show|validElements|parent|field|strong|errorContext|findDefined|String|customMessage|parentNode|customMetaMessage|id|lastElement|formatAndAdd|onfocusout|removeAttrs|cancel|assigned|has|disabled|image|blockFocusCleanup|focusCleanup|can|trigger|visible|onfocusin|label|slice|keyup|textarea|file|password|unshift|on|target|removeEventListener|teardown|setup|appendTo|warn|ajaxSettings|valueCache|gif|jpe|png|parseInt|charAt|prototype|Date|NaN|greater|uE000|unchecked|filled|https|x5d|less|x5b|x23|x21|blank|long|expr|x08|hidden|least|at|json|more|dataType|extension|default|with|addMethod|again|524288|x0e|x1f|same|2147483647|class|card|preventDefault|x7e|credit|ftp|boolean|only|getElementsByName|ISO|insertAfter|append|uF8FF|Invalid|wrap|URL|address|defined|No|Warning|This|title|setDefaults|returning|match|unbind|throw|onclick|checking|when|occured|onkeyup|removeAttr|exception|log|continue'.split('|'),0,{}));
// jQuery Alert Dialogs Plugin
// Visit http://abeautifulsite.net/notebook/87 for more information
//
// Usage:
//      jAlert( message, [title, callback] )
//      jConfirm( message, [title, callback] )
//      jPrompt( message, [value, title, callback] )
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(4($){$.1={14:-1t,15:0,16:q,17:.1u,18:\'#1v\',L:q,B:\'&C;1w&C;\',M:\'&C;1x&C;\',N:l,O:4(b,c,d){3(c==l){c=\'1y\'}$.1.D(c,b,l,\'O\',4(a){3(d){d(a)}})},P:4(b,c,d){3(c==l){c=\'1z\'}$.1.D(c,b,l,\'P\',4(a){3(d){d(a)}})},Q:4(b,c,d,e){3(d==l){d=\'1A\'}$.1.D(d,b,c,\'Q\',4(a){3(e){e(a)}})},D:4(b,c,d,f,g){$.1.m();$.1.E(\'19\');$("1a").R(\'<5 7="9"><1b 7="F"></1b><5 7="1c"><5 7="j"></5></5></5>\');3($.1.N)$("#9").1d($.1.N);G h=($.H.1e&&1f($.H.1g)<=6)?\'1h\':\'1B\';$("#9").v({1i:h,1j:1C,1D:0,1E:0});$("#F").I(b);$("#1c").1d(f);$("#j").I(c);$("#j").1F($("#j").I().1G(/\\n/g,\'<1k />\'));$("#9").v({1H:$("#9").S(),1I:$("#9").S()});$.1.T();$.1.U(q);V(f){o\'O\':$("#j").W(\'<5 7="X"><r s="w" x="\'+$.1.B+\'" 7="8" /></5>\');$("#8").i(4(){$.1.m();g(q)});$("#8").Y().Z(4(e){3(e.t==13||e.t==10)$("#8").y(\'i\')});p;o\'P\':$("#j").W(\'<5 7="X"><r s="w" x="\'+$.1.B+\'" 7="8" /> <r s="w" x="\'+$.1.M+\'" 7="k" /></5>\');$("#8").i(4(){$.1.m();3(g)g(q)});$("#k").i(4(){$.1.m();3(g)g(11)});$("#8").Y();$("#8, #k").Z(4(e){3(e.t==13)$("#8").y(\'i\');3(e.t==10)$("#k").y(\'i\')});p;o\'Q\':$("#j").R(\'<1k /><r s="I" 1J="1K" 7="u" />\').W(\'<5 7="X"><r s="w" x="\'+$.1.B+\'" 7="8" /> <r s="w" x="\'+$.1.M+\'" 7="k" /></5>\');$("#u").J($("#j").J());$("#8").i(4(){G a=$("#u").1l();$.1.m();3(g)g(a)});$("#k").i(4(){$.1.m();3(g)g(l)});$("#u, #8, #k").Z(4(e){3(e.t==13)$("#8").y(\'i\');3(e.t==10)$("#k").y(\'i\')});3(d)$("#u").1l(d);$("#u").Y().1L();p}3($.1.L){1M{$("#9").L({1N:$("#F")});$("#F").v({1O:\'1P\'})}1Q(e){}}},m:4(){$("#9").1m();$.1.E(\'12\');$.1.U(11)},E:4(a){V(a){o\'19\':$.1.E(\'12\');$("1a").R(\'<5 7="K"></5>\');$("#K").v({1i:\'1h\',1j:1R,1n:\'1o\',1p:\'1o\',J:\'1S%\',z:$(1q).z(),1T:$.1.18,1U:$.1.17});p;o\'12\':$("#K").1m();p}},T:4(){G a=(($(A).z()/2)-($("#9").1V()/2))+$.1.14;G b=(($(A).J()/2)-($("#9").S()/2))+$.1.15;3(a<0)a=0;3(b<0)b=0;3($.H.1e&&1f($.H.1g)<=6)a=a+$(A).1W();$("#9").v({1n:a+\'1r\',1p:b+\'1r\'});$("#K").z($(1q).z())},U:4(a){3($.1.16){V(a){o q:$(A).1X(\'1s\',4(){$.1.T()});p;o 11:$(A).1Y(\'1s\');p}}}}})(1Z);',62,124,'|alerts||if|function|div||id|popup_ok|popup_container|||||||||click|popup_message|popup_cancel|null|_hide||case|break|true|input|type|keyCode|popup_prompt|css|button|value|trigger|height|window|okButton|nbsp|_show|_overlay|popup_title|var|browser|text|width|popup_overlay|draggable|cancelButton|dialogClass|alert|confirm|prompt|append|outerWidth|_reposition|_maintainPosition|switch|after|popup_panel|focus|keypress|27|false|hide||verticalOffset|horizontalOffset|repositionOnResize|overlayOpacity|overlayColor|show|BODY|h1|popup_content|addClass|msie|parseInt|version|absolute|position|zIndex|br|val|remove|top|0px|left|document|px|resize|75|01|E6E6E6|OK|Cancel|Alert|Confirm|Prompt|fixed|99999|padding|margin|html|replace|minWidth|maxWidth|size|30|select|try|handle|cursor|move|catch|99998|100|background|opacity|outerHeight|scrollTop|bind|unbind|jQuery'.split('|'),0,{}));
// Shortuct functions
jAlert = function(message, title, callback) {$.alerts.alert(message, title, callback);}
jConfirm = function(message, title, callback) {$.alerts.confirm(message, title, callback);};
jPrompt = function(message, value, title, callback) {$.alerts.prompt(message, value, title, callback);};
//
/**
* @author Remy Sharp
* @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
*/
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(0($){$.c.d=0(b){3(!b)b=\'5\';e 1.f(0(){g a=$(1),2=a.h(\'2\'),$6=$(1.6),$7=$(i);0 4(){3(1.8===2&&a.j(b)){a.9(\'\').k(b)}}3(2){a.5(0(){3(1.8===\'\'){a.9(2).l(b)}}).m(4).5();$6.n(4);$7.o(4)}})}})(p);',26,26,'function|this|title|if|remove|blur|form|win|value|val|||fn|hint|return|each|var|attr|window|hasClass|removeClass|addClass|focus|submit|unload|jQuery'.split('|'),0,{}));
//
/*
Clipboard - Copy utility for jQuery
Version 2.0 (packed)
November 24, 2007
Project page: http://bradleysepos.com/projects/jquery/clipboard/
*/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(v($){7 g=[8,0,0];7 h=[0,0,0];7 j;7 k;7 l=v(a){7 d=Q;5(y Z.Y!="J"&&y Z.Y["1l p"]=="K"){d=Z.Y["1l p"].26;5(d){d=d.M(/^.*\\s+(\\S+\\s+\\S+$)/,"$1");h[0]=O(d.M(/^(.*)\\..*$/,"$1"),10);h[1]=O(d.M(/^.*\\.(.*)\\s.*$/,"$1"),10);5(/r/.1F(d)){h[2]=O(d.M(/^.*r(.*)$/,"$1"),10)}C{h[2]=0}5(h[0]>a[0]||(h[0]==a[0]&&h[1]>a[1])||(h[0]==a[0]&&h[1]==a[1]&&h[2]>=a[2])){6 G}C{6 q}}}6 q};7 m=v(){5(y 1m.1k!="J"){6 G}};7 n=v(a){5(k&&y W!="J"&&y W.1h=="v"){W.1h(a)}};7 o=v(){5($.3.T){6 q}5(y $.3.z==\'J\'){$.3.z=0}$.3.z++;5($.3.z>23){1x($.3.E);n("18 "+$.3.z/10+" 17 H p K u 14, 1N.");6 q}5(($.3.z%12)==0){n("18 "+$.3.z/10+" 17 H p K u 14 1L 1I...")}7 a=$("#D:P");7 b=$(a).16(0);5(y b.1z=="v"&&b.1A){1x($.3.E);$.3.E=Q;$.4.t=\'U\';H(7 i=0;i<$.3.w.N;i++){$.3.w[i]()}$.3.w=Q;$.3.T=G;n("9.4: L. 1o 1n w u F B p t.")}};$.3=v(f,a){a=9.2a({1j:"29.4.28",1i:q},a);j=a.1j;k=a.1i;5(m()){$.4.t=\'1g\';n("9.4: L. 1o 1n w u F B X V t.");6 f()}5($.3.T){6 f()}5($.3.E){$.3.w.27(f)}C{5(l(g)){$("#D").1f();$("#1p").1f();7 b;b=$("<25/>").24("1e","1p").I("1d","0").I("1c","0").1b("20").1Z("");7 c;c=$(\'<19 1e="D" 1X="D" 1W="\'+j+\'" 1V="1U/x-1T-U"></19>\');$(c).I("1d","0").I("1c","0").1b(b);$.3.w=[f];$.3.E=1S(o,12);n("9.4: 1P. 1O H p K u 1M w. 13 p R: "+h[0]+"."+h[1]+"."+h[2])}C 5(h[0]===0){n("9.4: A. p 1K 1J 1Q.");6 q}C{n("9.4: A. 1R p R: "+g[0]+"."+g[1]+"."+g[2]+" 13 p R: "+h[0]+"."+h[1]+"."+h[2]);6 q}}};$.4=v(a){5(1H.N<1||y a!="15"){n("9.4: A. 1G u F. 1a 11 1E a 15 1D 1Y P 1C.");6 q}5($.4.t==\'1g\'){1B{1m.1k.21("22",a);n("9.4: L. 1w "+a.N+" 1v u 4 B X V t.");6 G}2e(e){n("9.4: A. 1u u F B X V t 1t 1s 1y 1r 1q.");6 q}}5($.4.t==\'U\'){7 b=$("#D:P");7 c=$(b).16(0);5(c.1z(a)){n("9.4: L. 1w "+a.N+" 1v u 4 B p t.");6 G}C{n("9.4: A. 1u u F B p t 1t 1s 1y 1r 1q.");6 q}}n("9.4: A. 1a 11 2d $.3() 2c 2b 2f $.4().");6 q}})(9);',62,140,'|||clipboardReady|clipboard|if|return|var||jQuery||||||||||||||||Flash|false|||method|to|function|ready||typeof|counter|ERROR|using|else|jquery_clipboard_swf|timer|copy|true|for|css|undefined|object|OK|replace|length|parseInt|first|null|version||done|flash|IE|console|native|plugins|navigator||must|100|Detected|load|string|get|seconds|Waited|embed|You|appendTo|height|width|id|remove|ie|log|debug|swfpath|clipboardData|Shockwave|window|and|Initialized|jquery_clipboard_div|occurred|error|an|but|Tried|bytes|Copied|clearInterval|unknown|jqueryClipboardCopy|jqueryClipboardAvailable|try|parameter|as|specify|test|Nothing|arguments|far|not|plugin|so|become|terminating|Waiting|INFO|detected|Minimum|setInterval|shockwave|application|type|src|name|the|html|body|setData|Text|599|attr|div|description|push|swf|jquery|extend|conjunction|in|use|catch|with'.split('|'),0,{}));
//

//
//Some Non-Jquery helpers.
//Create Element
function $E(data) {
    var el;
    if ('string'==typeof data) {
        el=document.createTextNode(data);
    } else {
        el=document.createElement(data.tag);
        delete(data.tag);
        if ('undefined'!=typeof data.children) {
            if ('string'==typeof data.children || 'undefined'==typeof data.children.length) {
                el.appendChild($E(data.children));
            } else {
                for (var i=0, child=null; 'undefined'!=typeof (child=data.children[i]); i++) {
                    el.appendChild($E(child));
                }
            }
            delete(data.children);
        }
        for (attr in data){
          if(attr=="className"){el.setAttribute("class", data[attr]);}else{el.setAttribute(attr, data[attr]);}
        }
    }

    return el;
}
function urlencode(str) {
    // http://kevin.vanzonneveld.net
    var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    ret = encodeURIComponent(ret);
    
    for (search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }
    
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
    
    return ret;
}
//
jQuery.popup = function(url, options){
    options = jQuery.extend({
            width:      400,
            height:     400,
            target:     'popupwin',
            scrollbars: 'yes',
            resizable:  'no',
            menubar:    'no',
            addressbar: 'yes'
        },
        options
    );
    if (!options.winy){
        options.winy = screen.height / 2 - options.height / 2;
    };
    if (!options.winx){
        options.winx = screen.width / 2 - options.width / 2;
    };
    open(url, options['dbPopWinTarget'],'width='+ options.width +',height='+ options.height + ',top='+ options.winy +',left='+ options.winx+',scrollbars='+ options.scrollbars +',resizable='+ options.resizable +',menubar='+ options.menubar +',location='+ options.addressbar);
    return false;
};
/**
* jQuery.colorize
* Copyright (c) 2008 Eric Karimov - ekarim57(at)gmail(dot)com | http://franca.exofire.net/jq/
* Dual licensed under MIT and GPL.
* Date: 10/27/2008
*
* @projectDescription Table colorize using jQuery.
* http://franca.exofire.net/jq/colorize
*
* @author Eric Karimov, contributor Aymeric Augustin
* @version 1.3.1
*
* @param {altColor, bgColor, hoverColor, hiliteColor,oneClick, columns, banColumns}
* altColor : alternate row background color
* bgColor : background color (The default background color is white).
* hoverColor : background color when you hover a mouse over a row
* hiliteColor : row highlight background color, 'none' could be used for no highlight
* oneClick : true/false(default) -   if true, clicking a new row reverts the current highlighted row to the original background color
* columns : true/false(default)  - if true, highlights columns instead of rows
* banColumns : []   - columns not to be highlighted; supply an array of column indices, starting from 0
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @example $('#tbl1').colorize();
*
* @$('#tbl1').colorize({bgColor:'#EAF6CC', hoverColor:'green', hiliteColor:'red', columns:true, banColumns:[4,5,8]});
*
* @$('#tbl1').colorize({ columns : true, oneClick:true});
* All the parameters are optional.
*/

jQuery.fn.colorize = function(params){
    options = {altColor: '#FCFCFC',bgColor: '#F6F6F6',hoverColor: '#F0F8FB',hiliteColor:'none',oneClick:false,columns:false,banColumns: []};
    jQuery.extend(options, params);
    var colorHandler = {
        checkHover: function() {
            if (!this.onfire) {this.origColor = this.style.backgroundColor;this.style.backgroundColor= options.hoverColor;}
        },
        checkHoverOut: function() {
            if (!this.onfire) {this.style.backgroundColor=this.origColor;}
        },
        highlight: function() {
            if (options.hiliteColor != 'none') {this.style.backgroundColor= options.hiliteColor;this.onfire = true;}
        },
        stopHighlight: function() {this.onfire = false;this.style.backgroundColor = this.origColor;}
    }

    function getColCells(cells, idx) {
        var arr = [];for (var i = 0; i < cells.length; i++) {if (cells[i].cellIndex == idx){arr.push(cells[i]);}}return arr;
    }

    function processCells(cells, idx, func) {
        var colCells = getColCells(cells, idx);jQuery.each(colCells, function(index, cell2) {func.call(cell2);});
    }

    function processAdapter(cells, cell, func) {
        processCells(cells, cell.cellIndex, func);
    }

    function toggleColumnClick(cells) {
        var func = (!this.onfire) ? colorHandler.highlight : colorHandler.stopHighlight;processAdapter(cells, this, func);
    }

    function toggleRowClick(cells) {
        row = jQuery(this).parent().get(0);
        if (!row.onfire)
            colorHandler.highlight.call(row);
        else
            colorHandler.stopHighlight.call(row);
    }

    function oneColumnClick(cells) {
        processAdapter(cells, this, colorHandler.highlight);
        if (cells.clicked > -1) {
            processCells(cells, cells.clicked, colorHandler.stopHighlight);
        }
        cells.clicked  = this.cellIndex;
    }

    function oneRowClick(cells) {
        row = jQuery(this).parent().get(0);
        colorHandler.highlight.call(row);
        if (cells.clicked) {
            colorHandler.stopHighlight.call(jQuery(cells.clicked).parent().get(0));
        }
        cells.clicked = this;
    }

    function checkBan() {
        return (jQuery.inArray(this.cellIndex, options.banColumns) != -1) ;
    }

    return this.each(function() {

        jQuery(this).find('tbody tr:odd').css('background', options.bgColor);
        jQuery(this).find('tbody tr:even').css('background', options.altColor);

        var cells = jQuery(this).find('td,th');
        cells.clicked = null;

        if (options.columns) {
            jQuery.each(cells, function(i, cell) {
                cell.onmouseover = function() {
                    processAdapter(cells, this, colorHandler.checkHover);
                }
                cell.onmouseout = function() {
                    processAdapter(cells, this, colorHandler.checkHoverOut);
                }
                cell.onclick = function() {
                    if (checkBan.call(this))
                        return;
                    if (options.oneClick)
                        oneColumnClick.call(this, cells);
                    else
                        toggleColumnClick.call(this, cells);
                }
            });
        }
        else {
            jQuery.each(cells, function(i, cell) {
                row = jQuery(cell).parent().get(0);
                if((this.parentNode.parentNode.tagName).toLowerCase()!="thead")
                  row.onmouseover = colorHandler.checkHover ;
                row.onmouseout = colorHandler.checkHoverOut ;
                cell.onclick = function () {
                        if (checkBan.call(this))
                            return;
                        if (options.oneClick)
                            oneRowClick.call(this, cells);
                        else
                            toggleRowClick.call(this, cells);
                }
            });
        }
    });
 }
 /* 
 OS Detection 
 http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
 Usage: $.client.os
 */
 eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(e(){9 d={t:e(){6.f=6.k(6.u)||"K l f";6.v=6.m(3.7)||6.m(3.L)||"w l v";6.n=6.k(6.x)||"w l n"},k:e(a){M(9 i=0;i<a.y;i++){9 b=a[i].4;9 c=a[i].z;6.o=a[i].8||a[i].2;g(b){g(b.A(a[i].5)!=-1)h a[i].2}N g(c)h a[i].2}},m:e(a){9 b=a.A(6.o);g(b==-1)h;h O(a.P(b+6.o.y+1))},u:[{4:3.7,5:"B",2:"B"},{4:3.7,5:"p",8:"p/",2:"p"},{4:3.j,5:"Q",2:"R",8:"S"},{z:C.T,2:"U"},{4:3.j,5:"D",2:"D"},{4:3.j,5:"V",2:"W"},{4:3.7,5:"E",2:"E"},{4:3.j,5:"F",2:"F"},{4:3.7,5:"q",2:"q"},{4:3.7,5:"G",2:"X",8:"G"},{4:3.7,5:"Y",2:"r",8:"Z"},{4:3.7,5:"r",2:"q",8:"r"}],x:[{4:3.s,5:"10",2:"11"},{4:3.s,5:"H",2:"H"},{4:3.7,5:"I",2:"I/12"},{4:3.s,5:"J",2:"J"}]};d.t();C.$.13={14:d.n,f:d.f}})();',62,67,'||identity|navigator|string|subString|this|userAgent|versionSearch|var|||||function|browser|if|return||vendor|searchString|unknown|searchVersion|OS|versionSearchString|OmniWeb|Netscape|Mozilla|platform|init|dataBrowser|version|an|dataOS|length|prop|indexOf|Chrome|window|iCab|Firefox|Camino|MSIE|Mac|iPhone|Linux|An|appVersion|for|else|parseFloat|substring|Apple|Safari|Version|opera|Opera|KDE|Konqueror|Explorer|Gecko|rv|Win|Windows|iPod|client|os'.split('|'),0,{}));
