/*
 * jQuery Color Animations
 * Copyright 2007 John Resig
 * Released under the MIT and GPL licenses.
 */

(function(jQuery){

	// We override the animation for all of these color styles
	jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
		jQuery.fx.step[attr] = function(fx){
			if ( fx.state == 0 ) {
				fx.start = getColor( fx.elem, attr );
				fx.end = getRGB( fx.end );
			}

			fx.elem.style[attr] = "rgb(" + [
				Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
				Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
				Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
			].join(",") + ")";
		}
	});

	// Color Conversion functions from highlightFade
	// By Blair Mitchelmore
	// http://jquery.offput.ca/highlightFade/

	// Parse strings looking for color tuples [255,255,255]
	function getRGB(color) {
		var result;

		// Check if we're already dealing with an array of colors
		if ( color && color.constructor == Array && color.length == 3 )
			return color;

		// Look for rgb(num,num,num)
		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
			return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];

		// Look for rgb(num%,num%,num%)
		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
			return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

		// Look for #a0b1c2
		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
			return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

		// Look for #fff
		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
			return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

		// Otherwise, we're most likely dealing with a named color
		return colors[jQuery.trim(color).toLowerCase()];
	}
	
	function getColor(elem, attr) {
		var color;

		do {
			color = jQuery.curCSS(elem, attr);

			// Keep going until we find an element that has color, or we hit the body
			if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
				break; 

			attr = "backgroundColor";
		} while ( elem = elem.parentNode );

		return getRGB(color);
	};
	
	// Some named colors to work with
	// From Interface by Stefan Petre
	// http://interface.eyecon.ro/

	var colors = {
		aqua:[0,255,255],
		azure:[240,255,255],
		beige:[245,245,220],
		black:[0,0,0],
		blue:[0,0,255],
		brown:[165,42,42],
		cyan:[0,255,255],
		darkblue:[0,0,139],
		darkcyan:[0,139,139],
		darkgrey:[169,169,169],
		darkgreen:[0,100,0],
		darkkhaki:[189,183,107],
		darkmagenta:[139,0,139],
		darkolivegreen:[85,107,47],
		darkorange:[255,140,0],
		darkorchid:[153,50,204],
		darkred:[139,0,0],
		darksalmon:[233,150,122],
		darkviolet:[148,0,211],
		fuchsia:[255,0,255],
		gold:[255,215,0],
		green:[0,128,0],
		indigo:[75,0,130],
		khaki:[240,230,140],
		lightblue:[173,216,230],
		lightcyan:[224,255,255],
		lightgreen:[144,238,144],
		lightgrey:[211,211,211],
		lightpink:[255,182,193],
		lightyellow:[255,255,224],
		lime:[0,255,0],
		magenta:[255,0,255],
		maroon:[128,0,0],
		navy:[0,0,128],
		olive:[128,128,0],
		orange:[255,165,0],
		pink:[255,192,203],
		purple:[128,0,128],
		violet:[128,0,128],
		red:[255,0,0],
		silver:[192,192,192],
		white:[255,255,255],
		yellow:[255,255,0]
	};
	
})(jQuery);

(function ($) {
    // Monkey patch jQuery 1.3.1+ css() method to support CSS 'transform'
    // property uniformly across Webkit/Safari/Chrome and Firefox 3.5.
    // 2009 Zachary Johnson www.zachstronaut.com
	
	// Opera (> 10.50) Support added by Yannic "Pysco68" Staudt
	// http://www.ygraphix.net/ 
	
    function getTransformProperty(element)
    {
        // Try transform first for forward compatibility
        var properties = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform'];
        var p;
        while (p = properties.shift())
        {
			if (typeof element.style[p] != 'undefined')
            {
				return p;				
            }
        }
		
        // Default to transform also
        return 'transform';
    }
    
    var proxied = $.fn.css;
    $.fn.css = function (arg)
    {
        // Find the correct browser specific property and setup the mapping using
        // $.props which is used internally by jQuery.attr() when setting CSS
        // properties via either the css(name, value) or css(properties) method.
        // The problem with doing this once outside of css() method is that you
        // need a DOM node to find the right CSS property, and there is some risk
        // that somebody would call the css() method before body has loaded or any
        // DOM-is-ready events have fired.
        if
        (
            typeof $.props['transform'] == 'undefined'
            &&
            (
                arg == 'transform'
                ||
                (
                    typeof arg == 'object'
                    && typeof arg['transform'] != 'undefined'
                )
            )
        )
        {
            $.props['transform'] = getTransformProperty(this.get(0));
        }
        
        // We force the property mapping here because jQuery.attr() does
        // property mapping with jQuery.props when setting a CSS property,
        // but curCSS() does *not* do property mapping when *getting* a
        // CSS property.  (It probably should since it manually does it
        // for 'float' now anyway... but that'd require more testing.)
        if (arg == 'transform')
        {
            arg = $.props['transform'];
        }
        
        return proxied.apply(this, arguments);
    };
})(jQuery); 

(function ($) {
    // Monkey patch jQuery 1.3.1+ to add support for setting or animating CSS
    // scale and rotation independently.
    // 2009 Zachary Johnson www.zachstronaut.com
	
	// Opera (> 10.50) Support added by Yannic "Pysco68" Staudt
	// http://www.ygraphix.net/ 
    var rotateUnits = 'deg';
    
    $.fn.rotate = function (val)
    {
        var style = $(this).css('transform') || 'none';
        
		// Special tratment for Opera... (by Yannic GraphiX)
		if($.browser.opera){
			// access our element... *sorrow*... have to pass with getElementById() :(
			var elem = document.getElementById($(this).attr("id"));
			style = document.defaultView.getComputedStyle(elem,null).getPropertyValue("-o-transform");
			
			// extract only "rotation-part"
			var m = style.toString().match(/rotate\(([^)]+)\)/);
			(m) ? m : m = 0;  // Is there any match? if not m = 0 (no rotation present)
			
			// Opera sets values as rad... rest of treatment is done in deg... so converting it
			var radval = m.toString().match(/([0-9\.-])+/);
			var degval = (parseFloat(radval) / Math.PI) * 180;
			
			// Rebuild the style string
			style = style.toString().replace(/none|rotate\([^)]*\)/, '') + 'rotate(' + degval + rotateUnits + ')';
		} else if ($.browser.msie) {
            return;
        }

        if (typeof val == 'undefined')
        {			
			if (style)
            {
				var m = style.toString().match(/rotate\(([^)]+)\)/);
				
				if (m && m[1])
                {
                    return m[1];
                }
            }
            
            return 0;
        }
		
        var m = val.toString().match(/^(-?\d+(\.\d+)?)(.+)?$/);
        if (m)
        {
            if (m[3])
            {
                rotateUnits = m[3];
            }
            
            $(this).css(
                'transform',
                style.toString().replace(/none|rotate\([^)]*\)/, '') + 'rotate(' + m[1] + rotateUnits + ')'
            );
			
			
        }
    }
    
    // Note that scale is unitless.
    $.fn.scale = function (val, duration, options)
    {
        var style = $(this).css('transform');
		
		// Special tratment for Opera... (by Yannic GraphiX)
		if($.browser.opera){
			// access our element... *sorrow*... have to pass with getElementById() :(
			var elem = document.getElementById($(this).attr("id"));
			style = document.defaultView.getComputedStyle(elem,null).getPropertyValue("-o-transform");
			
			// extract only "rotation-part"
			var m = style.toString().match(/scale\(([^)]+)\)/);
			(m) ? m : m = 1;  // Is there any match? if not m = 0 (no scale applied)
			
			// extract only the numbers
			var number = m.toString().match(/([0-9\.-])+/);
			
			// Rebuild the style string
			style = style.toString().replace(/none|scale\([^)]*\)/, '') + 'scale(' + number + ')';
        } else if ($.browser.msie) {
            return;
        }
        
        if (typeof val == 'undefined')
        {
            if (style)
            {
                var m = style.toString().match(/scale\(([^)]+)\)/);
                if (m && m[1])
                {
                    return m[1];
                }
            }
            
            return 1;
        }
        
        $(this).css(
            'transform',
            style.toString().replace(/none|scale\([^)]*\)/, '') + 'scale(' + val + ')'
        );
    }

    // fx.cur() must be monkey patched because otherwise it would always
    // return 0 for current rotate and scale values
    var curProxied = $.fx.prototype.cur;
    $.fx.prototype.cur = function ()
    {
        if (this.prop == 'rotate')
        {
			return parseFloat($(this.elem).rotate());
        }
        else if (this.prop == 'scale')
        {
            return parseFloat($(this.elem).scale());
        }
        
        return curProxied.apply(this, arguments);
    }
    
    $.fx.step.rotate = function (fx)
    {
		$(fx.elem).rotate(fx.now + rotateUnits);
    }
    
    $.fx.step.scale = function (fx)
    {
        $(fx.elem).scale(fx.now);
    }
    
    /*
    
    Starting on line 3905 of jquery-1.3.2.js we have this code:
    
    // We need to compute starting value
    if ( unit != "px" ) {
        self.style[ name ] = (end || 1) + unit;
        start = ((end || 1) / e.cur(true)) * start;
        self.style[ name ] = start + unit;
    }
    
    This creates a problem where we cannot give units to our custom animation
    because if we do then this code will execute and because self.style[name]
    does not exist where name is our custom animation's name then e.cur(true)
    will likely return zero and create a divide by zero bug which will set
    start to NaN.
    
    The following monkey patch for animate() gets around this by storing the
    units used in the rotation definition and then stripping the units off.
    
    */
    
    var animateProxied = $.fn.animate;
    $.fn.animate = function (prop)
    {
        if (typeof prop['rotate'] != 'undefined')
        {
            var m = prop['rotate'].toString().match(/^(([+-]=)?(-?\d+(\.\d+)?))(.+)?$/);
            if (m && m[5])
            {
                rotateUnits = m[5];
            }
			
            prop['rotate'] = m[1];
        }
        
        return animateProxied.apply(this, arguments);
    }
})(jQuery); 

/*
 * jQuery history plugin
 *
 * sample page: http://www.serpere.info/jquery-history-plugin/samples/
 *
 * Copyright (c) 2006-2009 Taku Sano (Mikage Sawatari)
 * Copyright (c) 2010 Takayuki Miwa
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Modified by Lincoln Cooper to add Safari support and only call the callback once during initialization
 * for msie when no initial hash supplied.
 */

(function($) {
    var locationWrapper = {
        put: function(hash, win) {			
            (win || window).location.hash = hash;			
        },
        get: function(win) {
            var hash = ((win || window).location.hash).replace(/^#/, '');
            return $.browser.fx ? hash : hash;
        }
    };

    var iframeWrapper = {
        id: "__jQuery_history",
        init: function() {
            var html = '<iframe id="'+ this.id +'" style="display:none" src="javascript:false;" />';
            $("body").prepend(html);
            return this;
        },
        _document: function() {
            return $("#"+ this.id)[0].contentWindow.document;
        },
        put: function(hash) {
            var doc = this._document();
            doc.open();
            doc.close();
            locationWrapper.put(hash, doc);
        },
        get: function() {
            return locationWrapper.get(this._document());
        }
    };

    // public base interface
    var _ = {
        appState: undefined,
        callback: undefined,
        init:  function(callback) {},
        check: function() {},
        load:  function(hash) {},
		back: true,
        setTitle: function(title) { window.document.title = title || ' '; }
    };
    $.history = _;

    var SimpleImpl = {
        init: function(callback) {
            _.callback = callback;
            var current_hash = locationWrapper.get();
            _.appState = current_hash;
            _.callback(current_hash);
            setInterval(_.check, 100);
        },
        check: function() {
            var current_hash = locationWrapper.get();
            if(current_hash != _.appState) {
                _.appState = current_hash;
                _.callback(current_hash);
            }
        },
        load: function(hash) {
            //if(hash != _.appState) {
                locationWrapper.put(hash);
                _.appState = hash;
                _.callback(hash);
            //}
        }
    };

    var IframeImpl = {
        init: function(callback) {
            _.callback = callback;
            var current_hash = locationWrapper.get();
            _.appState = current_hash;
            iframeWrapper.init().put(current_hash);
            _.callback(current_hash);
            setInterval(_.check, 100);
        },
        check: function() {
            var current_hash = iframeWrapper.get();
            if(current_hash != _.appState) {
                locationWrapper.put(current_hash);
                _.appState = current_hash;
                _.callback(current_hash);
            }
        },
        load: function(hash) {
            //if(hash != _.appState) {
                locationWrapper.put(hash);
                iframeWrapper.put(hash);
                _.appState = hash;
                _.callback(hash);
            //}
        }
    };

    if($.browser.msie && ($.browser.version < 8 || document.documentMode < 8)) {
        $.extend(_, IframeImpl);
    } else {
        $.extend(_, SimpleImpl);
    }
})(jQuery);

/*
 * Superfish v1.4.8 - jQuery menu widget
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(function($){
	$.fn.superfish = function(op){

		var sf = $.fn.superfish,
			c = sf.c,
			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
			over = function(){
				var $$ = $(this), menu = getMenu($$);
				clearTimeout(menu.sfTimer);
				$$.showSuperfishUl().siblings().hideSuperfishUl();
			},
			out = function(){
				var $$ = $(this), menu = getMenu($$), o = sf.op;
				clearTimeout(menu.sfTimer);
				menu.sfTimer=setTimeout(function(){
					o.retainPath=($.inArray($$[0],o.$path)>-1);
					$$.hideSuperfishUl();
					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
				},o.delay);
			},
			getMenu = function($menu){
				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
				sf.op = sf.o[menu.serial];
				return menu;
			},
			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };

		return this.each(function() {
			var s = this.serial = sf.o.length;
			var o = $.extend({},sf.defaults,op);
			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
					.filter('li:has(ul)').removeClass(o.pathClass);
			});
			sf.o[s] = sf.op = o;

			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
				if (o.autoArrows) addArrow( $('>a:first-child',this) );
			})
			.not('.'+c.bcClass)
				.hideSuperfishUl();

			var $a = $('a',this);
			$a.each(function(i){
				var $li = $a.eq(i).parents('li');
				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
			});
			o.onInit.call(this);

		}).each(function() {
			var menuClasses = [c.menuClass];
			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
			$(this).addClass(menuClasses.join(' '));
		});
	};

	var sf = $.fn.superfish;
	sf.o = [];
	sf.op = {};
	sf.IE7fix = function(){
		var o = sf.op;
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
			this.toggleClass(sf.c.shadowClass+'-off');
		};
	sf.c = {
		bcClass     : 'sf-breadcrumb',
		menuClass   : 'sf-js-enabled',
		anchorClass : 'sf-with-ul',
		arrowClass  : 'sf-sub-indicator',
		shadowClass : 'sf-shadow'
	};
	sf.defaults = {
		hoverClass	: 'sfHover',
		pathClass	: 'overideThisToUse',
		pathLevels	: 1,
		delay		: 800,
		animation	: {opacity:'show'},
		speed		: 'normal',
		autoArrows	: true,
		dropShadows : true,
		disableHI	: false,		// true disables hoverIntent detection
		onInit		: function(){}, // callback functions
		onBeforeShow: function(){},
		onShow		: function(){},
		onHide		: function(){}
	};
	$.fn.extend({
		hideSuperfishUl : function(){
			var o = sf.op,
				not = (o.retainPath===true) ? o.$path : '';
			o.retainPath = false;
			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility','hidden');
			o.onHide.call($ul);
			return this;
		},
		showSuperfishUl : function(){
			var o = sf.op,
				sh = sf.c.shadowClass+'-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility','visible');
			sf.IE7fix.call($ul);
			o.onBeforeShow.call($ul);
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
			return this;
		}
	});

})(jQuery);


/* http://keith-wood.name/datepick.html
   Datepicker for jQuery 3.5.1.
   Written by Marc Grabanski (m@marcgrabanski.com) and
              Keith Wood (kbwood@virginbroadband.com.au).
   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
   Please attribute the authors if you use it. */
(function($){var bn='datepick';function Datepick(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this.regional=[];this.regional['']={clearText:'Clear',clearStatus:'Erase the current date',closeText:'Close',closeStatus:'Close without change',prevText:'&#x3c;Prev',prevStatus:'Show the previous month',prevBigText:'&#x3c;&#x3c;',prevBigStatus:'Show the previous year',nextText:'Next&#x3e;',nextStatus:'Show the next month',nextBigText:'&#x3e;&#x3e;',nextBigStatus:'Show the next year',currentText:'Today',currentStatus:'Show the current month',monthNames:['January','February','March','April','May','June','July','August','September','October','November','December'],monthNamesShort:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],monthStatus:'Show a different month',yearStatus:'Show a different year',weekHeader:'Wk',weekStatus:'Week of the year',dayNames:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],dayNamesShort:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],dayNamesMin:['Su','Mo','Tu','We','Th','Fr','Sa'],dayStatus:'Set DD as first week day',dateStatus:'Select DD, M d',dateFormat:'mm/dd/yy',firstDay:0,initStatus:'Select a date',isRTL:false};this._defaults={showOn:'focus',showAnim:'show',showOptions:{},duration:'normal',buttonText:'...',buttonImage:'',buttonImageOnly:false,defaultDate:null,appendText:'',closeAtTop:true,mandatory:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,showBigPrevNext:false,stepMonths:1,stepBigMonths:12,gotoCurrent:false,changeMonth:true,changeYear:true,showMonthAfterYear:false,yearRange:'-10:+10',changeFirstDay:false,showOtherMonths:false,selectOtherMonths:false,highlightWeek:false,showWeeks:false,calculateWeek:this.iso8601Week,shortYearCutoff:'+10',showStatus:false,statusForDate:this.dateStatus,minDate:null,maxDate:null,numberOfMonths:1,showCurrentAtPos:0,rangeSelect:false,rangeSeparator:' - ',beforeShow:null,beforeShowDay:null,onChangeMonthYear:null,onHover:null,onSelect:null,onClose:null,altField:'',altFormat:'',constrainInput:true};$.extend(this._defaults,this.regional['']);this.dpDiv=$('<div id="'+this._mainDivId+'" style="display: none;"></div>')}$.extend(Datepick.prototype,{markerClassName:'hasDatepick',_mainDivId:'datepick-div',_inlineClass:'datepick-inline',_appendClass:'datepick-append',_triggerClass:'datepick-trigger',_dialogClass:'datepick-dialog',_promptClass:'datepick-prompt',_disableClass:'datepick-disabled',_oneMonthClass:'datepick-one-month',_unselectableClass:'datepick-unselectable',_currentClass:'datepick-current-day',_dayOverClass:'datepick-days-cell-over',_weekOverClass:'datepick-week-over',_coverClass:'datepick-cover',setDefaults:function(a){extendRemove(this._defaults,a||{});return this},_attachDatepick:function(a,b){var c=null;for(var d in this._defaults){var e=a.getAttribute('date:'+d);if(e){c=c||{};try{c[d]=eval(e)}catch(err){c[d]=e}}}var f=a.nodeName.toLowerCase();var g=(f=='div'||f=='span');if(!a.id)a.id='dp'+(++this.uuid);var h=this._newInst($(a),g);h.settings=$.extend({},b||{},c||{});if(f=='input'){this._connectDatepick(a,h)}else if(g){this._inlineDatepick(a,h)}},_newInst:function(a,b){var c=a[0].id.replace(/([:\[\]\.])/g,'\\\\$1');return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:(!b?this.dpDiv:$('<div class="'+this._inlineClass+'"></div>'))}},_connectDatepick:function(d,e){var f=$(d);if(f.hasClass(this.markerClassName))return;var g=this._get(e,'appendText');var h=this._get(e,'isRTL');if(g)f[h?'before':'after']('<span class="'+this._appendClass+'">'+g+'</span>');var i=this._get(e,'showOn');if(i=='focus'||i=='both')f.focus(this._showDatepick);if(i=='button'||i=='both'){var j=this._get(e,'buttonText');var k=this._get(e,'buttonImage');var l=$(this._get(e,'buttonImageOnly')?$('<img/>').addClass(this._triggerClass).attr({src:k,alt:j,title:j}):$('<button type="button"></button>').addClass(this._triggerClass).html(k==''?j:$('<img/>').attr({src:k,alt:j,title:j})));f[h?'before':'after'](l);l.click(function(){if($.datepick._datepickerShowing&&$.datepick._lastInput==d)$.datepick._hideDatepick();else $.datepick._showDatepick(d);return false})}f.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepick",function(a,b,c){e.settings[b]=c}).bind("getData.datepick",function(a,b){return this._get(e,b)});$.data(d,bn,e)},_inlineDatepick:function(d,e){var f=$(d);if(f.hasClass(this.markerClassName))return;f.addClass(this.markerClassName).bind("setData.datepick",function(a,b,c){e.settings[b]=c}).bind("getData.datepick",function(a,b){return this._get(e,b)});$.data(d,bn,e);this._setDate(e,this._getDefaultDate(e));$('body').append(e.dpDiv);this._updateDatepick(e);e.dpDiv.width(this._getNumberOfMonths(e)[1]*$('.'+this._oneMonthClass,e.dpDiv)[0].offsetWidth);f.append(e.dpDiv);this._updateAlternate(e)},_dialogDatepick:function(a,b,c,d,e){var f=this._dialogInst;if(!f){var g='dp'+(++this.uuid);this._dialogInput=$('<input type="text" id="'+g+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$('body').append(this._dialogInput);f=this._dialogInst=this._newInst(this._dialogInput,false);f.settings={};$.data(this._dialogInput[0],bn,f)}extendRemove(f.settings,d||{});this._dialogInput.val(b);this._pos=(e?(isArray(e)?e:[e.pageX,e.pageY]):null);if(!this._pos){var h=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var i=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var j=document.documentElement.scrollLeft||document.body.scrollLeft;var k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(h/2)-100+j,(i/2)-150+k]}this._dialogInput.css('left',this._pos[0]+'px').css('top',this._pos[1]+'px');f.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepick(this._dialogInput[0]);if($.blockUI)$.blockUI(this.dpDiv);$.data(this._dialogInput[0],bn,f)},_destroyDatepick:function(a){var b=$(a);if(!b.hasClass(this.markerClassName)){return}var c=a.nodeName.toLowerCase();$.removeData(a,bn);if(c=='input'){b.siblings('.'+this._appendClass).remove().end().siblings('.'+this._triggerClass).remove().end().removeClass(this.markerClassName).unbind('focus',this._showDatepick).unbind('keydown',this._doKeyDown).unbind('keypress',this._doKeyPress)}else if(c=='div'||c=='span')b.removeClass(this.markerClassName).empty()},_enableDatepick:function(b){var c=$(b);if(!c.hasClass(this.markerClassName)){return}var d=b.nodeName.toLowerCase();if(d=='input'){b.disabled=false;c.siblings('button.'+this._triggerClass).each(function(){this.disabled=false}).end().siblings('img.'+this._triggerClass).css({opacity:'1.0',cursor:''})}else if(d=='div'||d=='span'){c.children('.'+this._disableClass).remove()}this._disabledInputs=$.map(this._disabledInputs,function(a){return(a==b?null:a)})},_disableDatepick:function(b){var c=$(b);if(!c.hasClass(this.markerClassName)){return}var d=b.nodeName.toLowerCase();if(d=='input'){b.disabled=true;c.siblings('button.'+this._triggerClass).each(function(){this.disabled=true}).end().siblings('img.'+this._triggerClass).css({opacity:'0.5',cursor:'default'})}else if(d=='div'||d=='span'){var e=c.children('.'+this._inlineClass);var f=e.offset();var g={left:0,top:0};e.parents().each(function(){if($(this).css('position')=='relative'){g=$(this).offset();return false}});c.prepend('<div class="'+this._disableClass+'" style="'+'width: '+e.width()+'px; height: '+e.height()+'px; left: '+(f.left-g.left)+'px; top: '+(f.top-g.top)+'px;"></div>')}this._disabledInputs=$.map(this._disabledInputs,function(a){return(a==b?null:a)});this._disabledInputs.push(b)},_isDisabledDatepick:function(a){return(!a?false:$.inArray(a,this._disabledInputs)>-1)},_getInst:function(a){try{return $.data(a,bn)}catch(err){throw'Missing instance data for this datepicker';}},_optionDatepick:function(a,b,c){var d=b||{};if(typeof b=='string'){d={};d[b]=c}var e=this._getInst(a);if(e){if(this._curInst==e){this._hideDatepick(null)}extendRemove(e.settings,d);var f=new Date();extendRemove(e,{rangeStart:null,endDay:null,endMonth:null,endYear:null,selectedDay:f.getDate(),selectedMonth:f.getMonth(),selectedYear:f.getFullYear(),currentDay:f.getDate(),currentMonth:f.getMonth(),currentYear:f.getFullYear(),drawMonth:f.getMonth(),drawYear:f.getFullYear()});this._updateDatepick(e)}},_changeDatepick:function(a,b,c){this._optionDatepick(a,b,c)},_refreshDatepick:function(a){var b=this._getInst(a);if(b){this._updateDatepick(b)}},_setDateDatepick:function(a,b,c){var d=this._getInst(a);if(d){this._setDate(d,b,c);this._updateDatepick(d);this._updateAlternate(d)}},_getDateDatepick:function(a){var b=this._getInst(a);if(b&&!b.inline)this._setDateFromField(b);return(b?this._getDate(b):null)},_doKeyDown:function(a){var b=$.datepick._getInst(a.target);var c=true;var d=$.datepick._get(b,'isRTL');b._keyEvent=true;if($.datepick._datepickerShowing)switch(a.keyCode){case 9:$.datepick._hideDatepick(null,'');break;case 13:var e=$('td.'+$.datepick._dayOverClass+', td.'+$.datepick._currentClass,b.dpDiv);if(e[0])$.datepick._selectDay(a.target,b.selectedYear,b.selectedMonth,e[0]);else $.datepick._hideDatepick(null,$.datepick._get(b,'duration'));break;case 27:$.datepick._hideDatepick(null,$.datepick._get(b,'duration'));break;case 33:$.datepick._adjustDate(a.target,(a.ctrlKey?-$.datepick._get(b,'stepBigMonths'):-$.datepick._get(b,'stepMonths')),'M');break;case 34:$.datepick._adjustDate(a.target,(a.ctrlKey?+$.datepick._get(b,'stepBigMonths'):+$.datepick._get(b,'stepMonths')),'M');break;case 35:if(a.ctrlKey||a.metaKey)$.datepick._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)$.datepick._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,(d?+1:-1),'D');c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)$.datepick._adjustDate(a.target,(a.ctrlKey?-$.datepick._get(b,'stepBigMonths'):-$.datepick._get(b,'stepMonths')),'M');break;case 38:if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,-7,'D');c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,(d?-1:+1),'D');c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)$.datepick._adjustDate(a.target,(a.ctrlKey?+$.datepick._get(b,'stepBigMonths'):+$.datepick._get(b,'stepMonths')),'M');break;case 40:if(a.ctrlKey||a.metaKey)$.datepick._adjustDate(a.target,+7,'D');c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)$.datepick._showDatepick(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}return!c},_doKeyPress:function(a){var b=$.datepick._getInst(a.target);if($.datepick._get(b,'constrainInput')){var c=$.datepick._possibleChars(b);var d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||(d<' '||!c||c.indexOf(d)>-1)}},_possibleChars:function(a){var b=$.datepick._get(a,'dateFormat');var c=($.datepick._get(a,'rangeSelect')?$.datepick._get(a,'rangeSeparator'):'');var d=false;for(var e=0;e<b.length;e++)if(d)if(b.charAt(e)=="'"&&!lookAhead("'"))d=false;else c+=b.charAt(e);else switch(b.charAt(e)){case'd':case'm':case'y':case'@':c+='0123456789';break;case'D':case'M':return null;case"'":if(lookAhead("'"))c+="'";else d=true;break;default:c+=b.charAt(e)}return c},_showDatepick:function(b){b=b.target||b;if(b.nodeName.toLowerCase()!='input')b=$('input',b.parentNode)[0];if($.datepick._isDisabledDatepick(b)||$.datepick._lastInput==b)return;var c=$.datepick._getInst(b);var d=$.datepick._get(c,'beforeShow');extendRemove(c.settings,(d?d.apply(b,[b,c]):{}));$.datepick._hideDatepick(null,'');$.datepick._lastInput=b;$.datepick._setDateFromField(c);if($.datepick._inDialog)b.value='';if(!$.datepick._pos){$.datepick._pos=$.datepick._findPos(b);$.datepick._pos[1]+=b.offsetHeight}var e=false;$(b).parents().each(function(){e|=$(this).css('position')=='fixed';return!e});if(e&&$.browser.opera){$.datepick._pos[0]-=document.documentElement.scrollLeft;$.datepick._pos[1]-=document.documentElement.scrollTop}var f={left:$.datepick._pos[0],top:$.datepick._pos[1]};$.datepick._pos=null;c.rangeStart=null;c.dpDiv.css({position:'absolute',display:'block',top:'-1000px'});$.datepick._updateDatepick(c);c.dpDiv.width($.datepick._getNumberOfMonths(c)[1]*$('.'+$.datepick._oneMonthClass,c.dpDiv)[0].offsetWidth);f=$.datepick._checkOffset(c,f,e);c.dpDiv.css({position:($.datepick._inDialog&&$.blockUI?'static':(e?'fixed':'absolute')),display:'none',left:f.left+'px',top:f.top+'px'});if(!c.inline){var g=$.datepick._get(c,'showAnim')||'show';var h=$.datepick._get(c,'duration');var i=function(){$.datepick._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){var a=$.datepick._getExtras(c.dpDiv);$('iframe.'+$.datepick._coverClass).css({width:c.dpDiv.width()+a[0],height:c.dpDiv.height()+a[1]})}};if($.effects&&$.effects[g])c.dpDiv.show(g,$.datepick._get(c,'showOptions'),h,i);else c.dpDiv[g](h,i);if(h=='')i();if(c.input[0].type!='hidden')c.input[0].focus();$.datepick._curInst=c}},_updateDatepick:function(a){var b=this._getExtras(a.dpDiv);var c={width:a.dpDiv.width()+b[0],height:a.dpDiv.height()+b[1]};a.dpDiv.empty().append(this._generateHTML(a)).find('iframe.'+this._coverClass).css({width:c.width,height:c.height});var d=this._getNumberOfMonths(a);a.dpDiv[(d[0]!=1||d[1]!=1?'add':'remove')+'Class']('datepick-multi');a.dpDiv[(this._get(a,'isRTL')?'add':'remove')+'Class']('datepick-rtl');if(a.input&&a.input[0].type!='hidden'&&a==$.datepick._curInst)$(a.input[0]).focus()},_getExtras:function(b){var c=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseInt(c(b.css('border-left-width')))+parseInt(c(b.css('border-right-width')))+parseInt(b.css('padding-left'))+parseInt(b.css('padding-right')),parseInt(c(b.css('border-top-width')))+parseInt(c(b.css('border-bottom-width')))+parseInt(b.css('padding-top'))+parseInt(b.css('padding-bottom'))]},_checkOffset:function(a,b,c){var d=a.input?this._findPos(a.input[0]):null;var e=window.innerWidth||(document.documentElement?document.documentElement.clientWidth:document.body.clientWidth);var f=window.innerHeight||(document.documentElement?document.documentElement.clientHeight:document.body.clientHeight);if(e==0)return b;var g=document.documentElement.scrollLeft||document.body.scrollLeft;var h=document.documentElement.scrollTop||document.body.scrollTop;if(this._get(a,'isRTL')||(b.left+a.dpDiv.width()-g)>e)b.left=Math.max((c?0:g),d[0]+(a.input?a.input.width():0)-(c?g:0)-a.dpDiv.width()-(c&&$.browser.opera?document.documentElement.scrollLeft:0));else b.left-=(c?g:0);if((b.top+a.dpDiv.height()-h)>f)b.top=Math.max((c?0:h),d[1]-(c?h:0)-(this._inDialog?0:a.dpDiv.height())-(c&&$.browser.opera?document.documentElement.scrollTop:0));else b.top-=(c?h:0);return b},_findPos:function(a){while(a&&(a.type=='hidden'||a.nodeType!=1)){a=a.nextSibling}var b=$(a).offset();return[b.left,b.top]},_hideDatepick:function(a,b){var c=this._curInst;if(!c||(a&&c!=$.data(a,bn)))return;var d=this._get(c,'rangeSelect');if(d&&c.stayOpen)this._selectDate('#'+c.id,this._formatDate(c,c.currentDay,c.currentMonth,c.currentYear));c.stayOpen=false;if(this._datepickerShowing){b=(b!=null?b:this._get(c,'duration'));var e=this._get(c,'showAnim');var f=function(){$.datepick._tidyDialog(c)};if(b!=''&&$.effects&&$.effects[e])c.dpDiv.hide(e,$.datepick._get(c,'showOptions'),b,f);else c.dpDiv[(b==''?'hide':(e=='slideDown'?'slideUp':(e=='fadeIn'?'fadeOut':'hide')))](b,f);if(b=='')this._tidyDialog(c);var g=this._get(c,'onClose');if(g)g.apply((c.input?c.input[0]:null),[(c.input?c.input.val():''),c]);this._datepickerShowing=false;this._lastInput=null;c.settings.prompt=null;if(this._inDialog){this._dialogInput.css({position:'absolute',left:'0',top:'-100px'});if($.blockUI){$.unblockUI();$('body').append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind('.datepick');$('.'+this._promptClass,a.dpDiv).remove()},_checkExternalClick:function(a){if(!$.datepick._curInst)return;var b=$(a.target);if(!b.parents().andSelf().is('#'+$.datepick._mainDivId)&&!b.hasClass($.datepick.markerClassName)&&!b.parents().andSelf().hasClass($.datepick._triggerClass)&&$.datepick._datepickerShowing&&!($.datepick._inDialog&&$.blockUI))$.datepick._hideDatepick(null,'')},_adjustDate:function(a,b,c){var d=this._getInst($(a)[0]);this._adjustInstDate(d,b+(c=='M'?this._get(d,'showCurrentAtPos'):0),c);this._updateDatepick(d)},_gotoToday:function(a){var b=$(a);var c=this._getInst(b[0]);if(this._get(c,'gotoCurrent')&&c.currentDay){c.selectedDay=c.currentDay;c.drawMonth=c.selectedMonth=c.currentMonth;c.drawYear=c.selectedYear=c.currentYear}else{var d=new Date();c.selectedDay=d.getDate();c.drawMonth=c.selectedMonth=d.getMonth();c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c);this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a);var e=this._getInst(d[0]);e._selectingMonthYear=false;e['selected'+(c=='M'?'Month':'Year')]=e['draw'+(c=='M'?'Month':'Year')]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(d)},_clickMonthYear:function(a){var b=this._getInst($(a)[0]);if(b.input&&b._selectingMonthYear&&!$.browser.msie)b.input[0].focus();b._selectingMonthYear=!b._selectingMonthYear},_changeFirstDay:function(a,b){var c=this._getInst($(a)[0]);c.settings.firstDay=b;this._updateDatepick(c)},_doHover:function(a,b,c,d){if($(d).hasClass(this._unselectableClass))return;var e=this._getInst($(a)[0]);var f=this._get(e,'onHover');f.apply((e.input?e.input[0]:null),[(b?new Date(b,c,$(d).text()):null),e])},_selectDay:function(a,b,c,d){if($(d).hasClass(this._unselectableClass))return;var e=this._getInst($(a)[0]);var f=this._get(e,'rangeSelect');if(f){e.stayOpen=!e.stayOpen;if(e.stayOpen){$('.datepick td',e.dpDiv).removeClass(this._currentClass);$(d).addClass(this._currentClass)}}e.selectedDay=e.currentDay=$('a',d).html();e.selectedMonth=e.currentMonth=c;e.selectedYear=e.currentYear=b;if(e.stayOpen){e.endDay=e.endMonth=e.endYear=null}else if(f){e.endDay=e.currentDay;e.endMonth=e.currentMonth;e.endYear=e.currentYear}this._selectDate(a,this._formatDate(e,e.currentDay,e.currentMonth,e.currentYear));if(e.stayOpen){e.rangeStart=this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));this._updateDatepick(e)}else if(f){e.selectedDay=e.currentDay=e.rangeStart.getDate();e.selectedMonth=e.currentMonth=e.rangeStart.getMonth();e.selectedYear=e.currentYear=e.rangeStart.getFullYear();e.rangeStart=null;if(e.inline)this._updateDatepick(e)}},_clearDate:function(a){var b=$(a);var c=this._getInst(b[0]);if(this._get(c,'mandatory'))return;c.stayOpen=false;c.endDay=c.endMonth=c.endYear=c.rangeStart=null;this._selectDate(b,'')},_selectDate:function(a,b){var c=this._getInst($(a)[0]);b=(b!=null?b:this._formatDate(c));if(this._get(c,'rangeSelect')&&b)b=(c.rangeStart?this._formatDate(c,c.rangeStart):b)+this._get(c,'rangeSeparator')+b;if(c.input)c.input.val(b);this._updateAlternate(c);var d=this._get(c,'onSelect');if(d)d.apply((c.input?c.input[0]:null),[b,c]);else if(c.input)c.input.trigger('change');if(c.inline)this._updateDatepick(c);else if(!c.stayOpen){this._hideDatepick(null,this._get(c,'duration'));this._lastInput=c.input[0];if(typeof(c.input[0])!='object')c.input[0].focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,'altField');if(b){var c=this._get(a,'altFormat')||this._get(a,'dateFormat');var d=this._getDate(a);dateStr=(isArray(d)?(!d[0]&&!d[1]?'':this.formatDate(c,d[0],this._getFormatConfig(a))+this._get(a,'rangeSeparator')+this.formatDate(c,d[1]||d[0],this._getFormatConfig(a))):this.formatDate(c,d,this._getFormatConfig(a)));$(b).each(function(){$(this).val(dateStr)})}},noWeekends:function(a){return[(a.getDay()||7)<6,'']},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();b.setMonth(0);b.setDate(1);return Math.floor((c-b)/(86400000*7))+1},dateStatus:function(a,b){return $.datepick.formatDate($.datepick._get(b,'dateStatus'),a,$.datepick._getFormatConfig(b))},parseDate:function(e,f,g){if(e==null||f==null)throw'Invalid arguments';f=(typeof f=='object'?f.toString():f+'');if(f=='')return null;g=g||{};var h=g.shortYearCutoff||this._defaults.shortYearCutoff;var j=g.dayNamesShort||this._defaults.dayNamesShort;var k=g.dayNames||this._defaults.dayNames;var l=g.monthNamesShort||this._defaults.monthNamesShort;var m=g.monthNames||this._defaults.monthNames;var n=-1;var o=-1;var p=-1;var q=-1;var r=false;var s=function(a){var b=(x+1<e.length&&e.charAt(x+1)==a);if(b)x++;return b};var t=function(a){s(a);var b=(a=='@'?14:(a=='y'?4:(a=='o'?3:2)));var c=new RegExp('^\\d{1,'+b+'}');var d=f.substring(w).match(c);if(!d)throw'Missing number at position '+w;w+=d[0].length;return parseInt(d[0],10)};var u=function(a,b,c){var d=(s(a)?c:b);for(var i=0;i<d.length;i++){if(f.substr(w,d[i].length)==d[i]){w+=d[i].length;return i+1}}throw'Unknown name at position '+w;};var v=function(){if(f.charAt(w)!=e.charAt(x))throw'Unexpected literal at position '+w;w++};var w=0;for(var x=0;x<e.length;x++){if(r)if(e.charAt(x)=="'"&&!s("'"))r=false;else v();else switch(e.charAt(x)){case'd':p=t('d');break;case'D':u('D',j,k);break;case'o':q=t('o');break;case'm':o=t('m');break;case'M':o=u('M',l,m);break;case'y':n=t('y');break;case'@':var y=new Date(t('@'));n=y.getFullYear();o=y.getMonth()+1;p=y.getDate();break;case"'":if(s("'"))v();else r=true;break;default:v()}}if(w<f.length)throw'Additional text found at end';if(n==-1)n=new Date().getFullYear();else if(n<100)n+=new Date().getFullYear()-new Date().getFullYear()%100+(n<=h?0:-100);if(q>-1){o=1;p=q;do{var z=this._getDaysInMonth(n,o-1);if(p<=z)break;o++;p-=z}while(true)}var y=this._daylightSavingAdjust(new Date(n,o-1,p));if(y.getFullYear()!=n||y.getMonth()+1!=o||y.getDate()!=p)throw'Invalid date';return y},ATOM:'yy-mm-dd',COOKIE:'D, dd M yy',ISO_8601:'yy-mm-dd',RFC_822:'D, d M y',RFC_850:'DD, dd-M-y',RFC_1036:'D, d M y',RFC_1123:'D, d M yy',RFC_2822:'D, d M yy',RSS:'D, d M y',TIMESTAMP:'@',W3C:'yy-mm-dd',formatDate:function(e,f,g){if(!f)return'';var h=(g?g.dayNamesShort:null)||this._defaults.dayNamesShort;var i=(g?g.dayNames:null)||this._defaults.dayNames;var j=(g?g.monthNamesShort:null)||this._defaults.monthNamesShort;var k=(g?g.monthNames:null)||this._defaults.monthNames;var l=function(a){var b=(q+1<e.length&&e.charAt(q+1)==a);if(b)q++;return b};var m=function(a,b,c){var d=''+b;if(l(a))while(d.length<c)d='0'+d;return d};var n=function(a,b,c,d){return(l(a)?d[b]:c[b])};var o='';var p=false;if(f)for(var q=0;q<e.length;q++){if(p)if(e.charAt(q)=="'"&&!l("'"))p=false;else o+=e.charAt(q);else switch(e.charAt(q)){case'd':o+=m('d',f.getDate(),2);break;case'D':o+=n('D',f.getDay(),h,i);break;case'o':o+=m('o',(f.getTime()-new Date(f.getFullYear(),0,0).getTime())/86400000,3);break;case'm':o+=m('m',f.getMonth()+1,2);break;case'M':o+=n('M',f.getMonth(),j,k);break;case'y':o+=(l('y')?f.getFullYear():(f.getYear()%100<10?'0':'')+f.getYear()%100);break;case'@':o+=f.getTime();break;case"'":if(l("'"))o+="'";else p=true;break;default:o+=e.charAt(q)}}return o},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a){var b=this._get(a,'dateFormat');var c=a.input?a.input.val().split(this._get(a,'rangeSeparator')):null;a.endDay=a.endMonth=a.endYear=null;var d=defaultDate=this._getDefaultDate(a);if(isArray(c)){var e=this._getFormatConfig(a);if(c.length>1){d=this.parseDate(b,c[1],e)||defaultDate;a.endDay=d.getDate();a.endMonth=d.getMonth();a.endYear=d.getFullYear()}try{d=this.parseDate(b,c[0],e)||defaultDate}catch(event){d=defaultDate}}a.selectedDay=d.getDate();a.drawMonth=a.selectedMonth=d.getMonth();a.drawYear=a.selectedYear=d.getFullYear();a.currentDay=(c[0]?d.getDate():0);a.currentMonth=(c[0]?d.getMonth():0);a.currentYear=(c[0]?d.getFullYear():0);this._adjustInstDate(a)},_getDefaultDate:function(a){var b=this._determineDate(this._get(a,'defaultDate'),new Date());var c=this._getMinMaxDate(a,'min',true);var d=this._getMinMaxDate(a,'max');b=(c&&b<c?c:b);b=(d&&b>d?d:b);return b},_determineDate:function(i,j){var k=function(a){var b=new Date();b.setDate(b.getDate()+a);return b};var l=function(a,b){var c=new Date();var d=c.getFullYear();var e=c.getMonth();var f=c.getDate();var g=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var h=g.exec(a);while(h){switch(h[2]||'d'){case'd':case'D':f+=parseInt(h[1],10);break;case'w':case'W':f+=parseInt(h[1],10)*7;break;case'm':case'M':e+=parseInt(h[1],10);f=Math.min(f,b(d,e));break;case'y':case'Y':d+=parseInt(h[1],10);f=Math.min(f,b(d,e));break}h=g.exec(a)}return new Date(d,e,f)};i=(i==null?j:(typeof i=='string'?l(i,this._getDaysInMonth):(typeof i=='number'?(isNaN(i)?j:k(i)):i)));i=(i&&i.toString()=='Invalid Date'?j:i);if(i){i.setHours(0);i.setMinutes(0);i.setSeconds(0);i.setMilliseconds(0)}return this._daylightSavingAdjust(i)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var d=!(b);var e=a.selectedMonth;var f=a.selectedYear;b=this._determineDate(b,new Date());a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if(this._get(a,'rangeSelect')){if(c){c=this._determineDate(c,null);a.endDay=c.getDate();a.endMonth=c.getMonth();a.endYear=c.getFullYear()}else{a.endDay=a.currentDay;a.endMonth=a.currentMonth;a.endYear=a.currentYear}}if(e!=a.selectedMonth||f!=a.selectedYear)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(d?'':this._formatDate(a)+(!this._get(a,'rangeSelect')?'':this._get(a,'rangeSeparator')+this._formatDate(a,a.endDay,a.endMonth,a.endYear)))},_getDate:function(a){var b=(!a.currentYear||(a.input&&a.input.val()=='')?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay)));if(this._get(a,'rangeSelect')){return[a.rangeStart||b,(!a.endYear?a.rangeStart||b:this._daylightSavingAdjust(new Date(a.endYear,a.endMonth,a.endDay)))]}else return b},_generateHTML:function(a){var b=new Date();b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,'showStatus');var d=this._get(a,'initStatus')||'&#xa0;';var e=this._get(a,'isRTL');var f=(this._get(a,'mandatory')?'':'<div class="datepick-clear"><a onclick="jQuery.datepick._clearDate(\'#'+a.id+'\');"'+this._addStatus(c,a.id,this._get(a,'clearStatus'),d)+'>'+this._get(a,'clearText')+'</a></div>');var g='<div class="datepick-control">'+(e?'':f)+'<div class="datepick-close"><a onclick="jQuery.datepick._hideDatepick();"'+this._addStatus(c,a.id,this._get(a,'closeStatus'),d)+'>'+this._get(a,'closeText')+'</a></div>'+(e?f:'')+'</div>';var h=this._get(a,'prompt');var i=this._get(a,'closeAtTop');var j=this._get(a,'hideIfNoPrevNext');var k=this._get(a,'navigationAsDateFormat');var l=this._get(a,'showBigPrevNext');var m=this._getNumberOfMonths(a);var n=this._get(a,'showCurrentAtPos');var o=this._get(a,'stepMonths');var p=this._get(a,'stepBigMonths');var q=(m[0]!=1||m[1]!=1);var r=this._daylightSavingAdjust((!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)));var s=this._getMinMaxDate(a,'min',true);var t=this._getMinMaxDate(a,'max');var u=a.drawMonth-n;var v=a.drawYear;if(u<0){u+=12;v--}if(t){var w=this._daylightSavingAdjust(new Date(t.getFullYear(),t.getMonth()-m[1]+1,t.getDate()));w=(s&&w<s?s:w);while(this._daylightSavingAdjust(new Date(v,u,1))>w){u--;if(u<0){u=11;v--}}}a.drawMonth=u;a.drawYear=v;var x=this._get(a,'prevText');x=(!k?x:this.formatDate(x,this._daylightSavingAdjust(new Date(v,u-o,1)),this._getFormatConfig(a)));var y=(l?this._get(a,'prevBigText'):'');y=(!k?y:this.formatDate(y,this._daylightSavingAdjust(new Date(v,u-p,1)),this._getFormatConfig(a)));var z='<div class="datepick-prev">'+(this._canAdjustMonth(a,-1,v,u)?(l?'<a onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', -'+p+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'prevBigStatus'),d)+'>'+y+'</a>':'')+'<a onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', -'+o+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'prevStatus'),d)+'>'+x+'</a>':(j?'&#xa0;':(l?'<label>'+y+'</label>':'')+'<label>'+x+'</label>'))+'</div>';var A=this._get(a,'nextText');A=(!k?A:this.formatDate(A,this._daylightSavingAdjust(new Date(v,u+o,1)),this._getFormatConfig(a)));var B=(l?this._get(a,'nextBigText'):'');B=(!k?B:this.formatDate(B,this._daylightSavingAdjust(new Date(v,u+p,1)),this._getFormatConfig(a)));var C='<div class="datepick-next">'+(this._canAdjustMonth(a,+1,v,u)?'<a onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', +'+o+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'nextStatus'),d)+'>'+A+'</a>'+(l?'<a onclick="jQuery.datepick._adjustDate(\'#'+a.id+'\', +'+p+', \'M\');"'+this._addStatus(c,a.id,this._get(a,'nextBigStatus'),d)+'>'+B+'</a>':''):(j?'&#xa0;':'<label>'+A+'</label>'+(l?'<label>'+B+'</label>':'')))+'</div>';var D=this._get(a,'currentText');var E=(this._get(a,'gotoCurrent')&&a.currentDay?r:b);D=(!k?D:this.formatDate(D,E,this._getFormatConfig(a)));var F=(i&&!a.inline?g:'')+'<div class="datepick-links">'+(e?C:z)+(this._isInRange(a,E)?'<div class="datepick-current">'+'<a onclick="jQuery.datepick._gotoToday(\'#'+a.id+'\');"'+this._addStatus(c,a.id,this._get(a,'currentStatus'),d)+'>'+D+'</a></div>':'')+(e?z:C)+'</div>'+(h?'<div class="'+this._promptClass+'"><span>'+h+'</span></div>':'');var G=parseInt(this._get(a,'firstDay'));G=(isNaN(G)?0:G);var H=this._get(a,'changeFirstDay');var I=this._get(a,'dayNames');var J=this._get(a,'dayNamesShort');var K=this._get(a,'dayNamesMin');var L=this._get(a,'monthNames');var M=this._get(a,'beforeShowDay');var N=this._get(a,'highlightWeek');var O=this._get(a,'showOtherMonths');var P=this._get(a,'selectOtherMonths');var Q=this._get(a,'showWeeks');var R=this._get(a,'calculateWeek')||this.iso8601Week;var S=this._get(a,'weekStatus');var T=(c?this._get(a,'dayStatus')||d:'');var U=this._get(a,'statusForDate')||this.dateStatus;var V=this._get(a,'onHover');var W=a.endDay?this._daylightSavingAdjust(new Date(a.endYear,a.endMonth,a.endDay)):r;var X=this._getDefaultDate(a);for(var Y=0;Y<m[0];Y++)for(var Z=0;Z<m[1];Z++){var bo=this._daylightSavingAdjust(new Date(v,u,a.selectedDay));F+='<div class="'+this._oneMonthClass+(Z==0?' datepick-new-row':'')+'">'+this._generateMonthYearHeader(a,u,v,s,t,bo,Y>0||Z>0,c,d,L)+'<table class="datepick" cellpadding="0" cellspacing="0"><thead>'+'<tr class="datepick-title-row">'+(Q?'<th'+this._addStatus(c,a.id,S,d)+'>'+this._get(a,'weekHeader')+'</th>':'');for(var bp=0;bp<7;bp++){var bq=(bp+G)%7;var br=(T.indexOf('DD')>-1?T.replace(/DD/,I[bq]):T.replace(/D/,J[bq]));F+='<th'+((bp+G+6)%7>=5?' class="datepick-week-end-cell"':'')+'>'+(!H?'<span'+this._addStatus(c,a.id,I[bq],d):'<a onclick="jQuery.datepick._changeFirstDay(\'#'+a.id+'\', '+bq+');"'+this._addStatus(c,a.id,br,d))+' title="'+I[bq]+'">'+K[bq]+(H?'</a>':'</span>')+'</th>'}F+='</tr></thead><tbody>';var bs=this._getDaysInMonth(v,u);if(v==a.selectedYear&&u==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,bs);var bt=(this._getFirstDayOfMonth(v,u)-G+7)%7;var bu=(q?6:Math.ceil((bt+bs)/7));var bv=this._daylightSavingAdjust(new Date(v,u,1-bt));for(var bw=0;bw<bu;bw++){F+='<tr class="datepick-days-row">'+(Q?'<td class="datepick-week-col"'+this._addStatus(c,a.id,S,d)+'>'+R(bv)+'</td>':'');for(var bp=0;bp<7;bp++){var bx=(M?M.apply((a.input?a.input[0]:null),[bv]):[true,'']);var by=(bv.getMonth()!=u);var bz=(by&&!P)||!bx[0]||(s&&bv<s)||(t&&bv>t);var bA=by&&!O;F+='<td class="datepick-days-cell'+((bp+G+6)%7>=5?' datepick-week-end-cell':'')+(by?' datepick-other-month':'')+((bv.getTime()==bo.getTime()&&u==a.selectedMonth&&a._keyEvent)||(X.getTime()==bv.getTime()&&X.getTime()==bo.getTime())?' '+$.datepick._dayOverClass:'')+(bz?' '+this._unselectableClass:'')+(bA?'':' '+bx[1]+(bv.getTime()>=r.getTime()&&bv.getTime()<=W.getTime()?' '+this._currentClass:'')+(bv.getTime()==b.getTime()?' datepick-today':''))+'"'+(!bA&&bx[2]?' title="'+bx[2]+'"':'')+' onmouseover="'+(bz?'':'jQuery(this).addClass(\''+this._dayOverClass+'\');')+(N?'jQuery(this).parent().addClass(\''+this._weekOverClass+'\');':'')+(!c||bA?'':'jQuery(\'#datepick-status-'+a.id+'\').html(\''+(U.apply((a.input?a.input[0]:null),[bv,a])||d)+'\');')+(V&&!bA?'jQuery.datepick._doHover(\'#'+a.id+'\','+bv.getFullYear()+','+bv.getMonth()+', this);':'')+'"'+' onmouseout="'+(bz?'':'jQuery(this).removeClass(\''+this._dayOverClass+'\');')+(N?'jQuery(this).parent().removeClass(\''+this._weekOverClass+'\');"':'')+(!c||bA?'':'jQuery(\'#datepick-status-'+a.id+'\').html(\''+d+'\');')+(V&&!bA?'jQuery.datepick._doHover(\'#'+a.id+'\');':'')+'"'+(bz?'':' onclick="jQuery.datepick._selectDay(\'#'+a.id+'\''+','+bv.getFullYear()+','+bv.getMonth()+',this);"')+'>'+(bA?'&#xa0;':(bz?bv.getDate():'<a>'+bv.getDate()+'</a>'))+'</td>';bv.setDate(bv.getDate()+1);bv=this._daylightSavingAdjust(bv)}F+='</tr>'}u++;if(u>11){u=0;v++}F+='</tbody></table></div>'}F+=(c?'<div style="clear: both;"></div><div id="datepick-status-'+a.id+'" class="datepick-status">'+d+'</div>':'')+(!i&&!a.inline?g:'')+'<div style="clear: both;"></div>'+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="'+this._coverClass+'"></iframe>':'');a._keyEvent=false;return F},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h,i,j){d=(a.rangeStart&&d&&f<d?f:d);var k=this._get(a,'changeMonth');var l=this._get(a,'changeYear');var m=this._get(a,'showMonthAfterYear');var n='<div class="datepick-header">';var o='';if(g||!k)o+='<span>'+j[b]+'</span>';else{var p=(d&&d.getFullYear()==c);var q=(e&&e.getFullYear()==c);o+='<select class="datepick-new-month" '+'onchange="jQuery.datepick._selectMonthYear(\'#'+a.id+'\', this, \'M\');" '+'onclick="jQuery.datepick._clickMonthYear(\'#'+a.id+'\');"'+this._addStatus(h,a.id,this._get(a,'monthStatus'),i)+'>';for(var r=0;r<12;r++){if((!p||r>=d.getMonth())&&(!q||r<=e.getMonth()))o+='<option value="'+r+'"'+(r==b?' selected="selected"':'')+'>'+j[r]+'</option>'}o+='</select>'}if(!m)n+=o+(g||!k||!l?'&#xa0;':'');if(g||!l)n+='<span>'+c+'</span>';else{var s=this._get(a,'yearRange').split(':');var t=0;var u=0;if(s.length!=2){t=c-10;u=c+10}else if(s[0].charAt(0)=='+'||s[0].charAt(0)=='-'){t=c+parseInt(s[0],10);u=c+parseInt(s[1],10)}else{t=parseInt(s[0],10);u=parseInt(s[1],10)}t=(d?Math.max(t,d.getFullYear()):t);u=(e?Math.min(u,e.getFullYear()):u);n+='<select class="datepick-new-year" '+'onchange="jQuery.datepick._selectMonthYear(\'#'+a.id+'\', this, \'Y\');" '+'onclick="jQuery.datepick._clickMonthYear(\'#'+a.id+'\');"'+this._addStatus(h,a.id,this._get(a,'yearStatus'),i)+'>';for(;t<=u;t++){n+='<option value="'+t+'"'+(t==c?' selected="selected"':'')+'>'+t+'</option>'}n+='</select>'}if(m)n+=(g||!k||!l?'&#xa0;':'')+o;n+='</div>';return n},_addStatus:function(a,b,c,d){return(a?' onmouseover="jQuery(\'#datepick-status-'+b+'\').html(\''+(c||d)+'\');" '+'onmouseout="jQuery(\'#datepick-status-'+b+'\').html(\''+d+'\');"':'')},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=='Y'?b:0);var e=a.drawMonth+(c=='M'?b:0);var f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=='D'?b:0);var g=this._daylightSavingAdjust(new Date(d,e,f));var h=this._getMinMaxDate(a,'min',true);var i=this._getMinMaxDate(a,'max');g=(h&&g<h?h:g);g=(i&&g>i?i:g);a.selectedDay=g.getDate();a.drawMonth=a.selectedMonth=g.getMonth();a.drawYear=a.selectedYear=g.getFullYear();if(c=='M'||c=='Y')this._notifyChange(a)},_notifyChange:function(a){var b=this._get(a,'onChangeMonthYear');if(b)b.apply((a.input?a.input[0]:null),[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,'numberOfMonths');return(b==null?[1,1]:(typeof b=='number'?[1,b]:b))},_getMinMaxDate:function(a,b,c){var d=this._determineDate(this._get(a,b+'Date'),null);return(!c||!a.rangeStart?d:(!d||a.rangeStart>d?a.rangeStart:d))},_getDaysInMonth:function(a,b){return 32-new Date(a,b,32).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a);var f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[1]),1));if(b<0)f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth()));return this._isInRange(a,f)},_isInRange:function(a,b){var c=(!a.rangeStart?null:this._daylightSavingAdjust(new Date(a.selectedYear,a.selectedMonth,a.selectedDay)));c=(c&&a.rangeStart<c?a.rangeStart:c);var d=c||this._getMinMaxDate(a,'min');var e=this._getMinMaxDate(a,'max');return((!d||b>=d)&&(!e||b<=e))},_getFormatConfig:function(a){var b=this._get(a,'shortYearCutoff');b=(typeof b!='string'?b:new Date().getFullYear()%100+parseInt(b,10));return{shortYearCutoff:b,dayNamesShort:this._get(a,'dayNamesShort'),dayNames:this._get(a,'dayNames'),monthNamesShort:this._get(a,'monthNamesShort'),monthNames:this._get(a,'monthNames')}},_formatDate:function(a,b,c,d){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}var e=(b?(typeof b=='object'?b:this._daylightSavingAdjust(new Date(d,c,b))):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay)));return this.formatDate(this._get(a,'dateFormat'),e,this._getFormatConfig(a))}});function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a};function isArray(a){return(a&&a.constructor==Array)};$.fn.datepick=function(a){var b=Array.prototype.slice.call(arguments,1);if(typeof a=='string'&&(a=='isDisabled'||a=='getDate'))return $.datepick['_'+a+'Datepick'].apply($.datepick,[this[0]].concat(b));return this.each(function(){typeof a=='string'?$.datepick['_'+a+'Datepick'].apply($.datepick,[this].concat(b)):$.datepick._attachDatepick(this,a)})};$.datepick=new Datepick();$.datepick.uuid=new Date().getTime();$.datepick.version='3.5.1';$(function(){$(document).mousedown($.datepick._checkExternalClick).find('body').append($.datepick.dpDiv)})})(jQuery);

/* Hungarian initialisation for the jQuery UI date picker plugin. */
/* Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */
(function($) {
	$.datepick.regional['hu'] = {
		clearText: 'törlés', clearStatus: '',
		closeText: 'bezárás', closeStatus: '',
		prevText: '&laquo;&nbsp;vissza', prevStatus: '',
		prevBigText: '&#x3c;&#x3c;', prevBigStatus: '',
		nextText: 'előre&nbsp;&raquo;', nextStatus: '',
		nextBigText: '&#x3e;&#x3e;', nextBigStatus: '',
		currentText: 'ma', currentStatus: '',
		monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
		'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
		monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
		'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
		monthStatus: '', yearStatus: '',
		weekHeader: 'Hé', weekStatus: '',
		dayNames: ['Vasámap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
		dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
		dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
		dayStatus: 'DD', dateStatus: 'D, M d',
		dateFormat: 'yy-mm-dd', firstDay: 1,
		initStatus: '', isRTL: false};
})(jQuery);

/* German initialisation for the jQuery UI date picker plugin. */
/* Written by Milian Wolff (mail@milianw.de). */
jQuery(function($){
	$.datepick.regional['de'] = {
		closeText: 'schließen',
		prevText: '&#x3c;zurück',
		nextText: 'Vor&#x3e;',
		currentText: 'heute',
		monthNames: ['Januar','Februar','März','April','Mai','Juni',
		'Juli','August','September','Oktober','November','Dezember'],
		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
		'Jul','Aug','Sep','Okt','Nov','Dez'],
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dateFormat: 'dd.mm.yy', firstDay: 1,
		isRTL: false};	
});


$.frontendValidator = {

	_digit: function() {
		$(this).val($(this).val().replace(/[^0-9]/gi,""));
	},
	
	_instantRequest: function() {
		$(this).parents("form").submit();		
	},
	
	_instantRequestFocus: function() {
		$.WBValidatorTempTextFocus = $(this).val();		
	},
	
	_instantRequestBlur: function() {
		if ($.WBValidatorTempTextFocus != $(this).val()) $(this).parents("form").submit();
		$.WBValidatorTempTextFocus;		
	},	

	init: function(el) {
		var fv = this;
		var filter = "";
		
		if (typeof el != "undefined") filter = "#" + el.attr("id") + " "; 
				
		$(filter + ".digitValidator")
			.unbind("keyup", fv._digit)
			.bind("keyup", fv._digit);
		
		$(filter + ".instantRequest").each(function() {
			$this = $(this);
				
			if ($this.attr("type") == "text") {
				$.WBValidatorTempTextFocus = "";							
				$this.unbind("focus", fv._instantRequestFocus).bind("focus", fv._instantRequestFocus);
				$this.unbind("blur", fv._instantRequestBlur).bind("blur", fv._instantRequestBlur);			
			} else {				
				$this.unbind("change", fv._instantRequest).bind("change", fv._instantRequest);
			}
			
				
		
		});								
	}

};

$.initShare = function() {
	var $sh = $('#shareBox');
	if (!$sh.length) return;

	$sh.find('.shareWithTumblr').click(function() {
		var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://www.tumblr.com/share',l=d.location,e=encodeURIComponent,p='?v=3&u='+e(l.href) +'&t='+e(d.title) +'&s='+e(s),u=f+p;try{if(!/^(.*\.)?tumblr[^.]*$/.test(l.host))throw(0);tstbklt();}catch(z){a =function(){if(!w.open(u,'t','toolbar=0,resizable=0,status=1,width=450,height=430'))l.href=u;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a();}void(0);
		return false;
	});
}

$.validate = function($form){

	var errors = '';

	var alpha = function(value) {
		return !/[^A-Za-z]/.test(value);
	};

	var alpha_numeric = function(value) {
		return !/[^A-Za-z0-9]/.test(value);
	};

	var alpha_dash = function(value) {
		return !/[^A-Za-z0-9_-]/.test(value);
	};

	var phone = function(value) {
		return ($.inArray(value.replace(/[^\d+]/gi, '').length, [7,10,11,12]) > 0);
	};

	var url = function(value) {
		return /^(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);
	};

	var date = function(value) {
		return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);
	};

	var digit = function(value) {
		return /^\d+$/.test(value);
	};

	var numeric = function(value) {
		return /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
	};

	var notEmpty = function(value) {
		return ($.trim(value).length > 0);
	};

	var email = function(value) {
		return /^((([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);
	};

	var setError = function($el, message) {
		errors += '<p>Hiba a(z) ' + $el.prev('label').text().split(':')[0].split('*')[0] + ' mezőnél: ' + message + '</p>';
	};

	$form.find(".alphaValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !alpha($this.val()))
			setError($this, "Csak alfabetikus karaktereket tartalmazhat!");
	});
	$form.find(".alpha_numericValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !alpha_numeric($this.val()))
			setError($this, "Csak alfabetikus karaktereket és számokat tartalmazhat!");
	});
	$form.find(".alpha_dashValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !alpha_dash($this.val()))
			setError($this, "Csak alfabetikus karaktereket, számokat, az aláhúzás és a kötőjel karaktereket tartalmazhatja!");
	});
	$form.find(".phoneValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !phone($this.val()))
			setError($this, "Csak telefonszámot tartalmazhat!");
	});
	$form.find(".urlValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !url($this.val()))
			setError($this, "Csak érvényes url címet tartalmazhat, pl: http://example.com !");
	});
	$form.find(".dateValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !date($this.val()))
			setError($this, "Csak érvényes dátumot tartalmazhat, pl: 2008-11-01 !");
	});
	$form.find(".digitValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !digit($this.val()))
			setError($this, "Csak számokat tartalmazhat!");
	});
	$form.find(".numericValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !numeric($this.val()))
			setError($this, "Csak érvényes számokat és tizedes-jegyeket tartalmazhat!");
	});
	$form.find(".requiredValidator").each(function() {
		var $this = $(this);

		if ($this.is("input[type=radio]")) {
			var $els = $("#mainContent input[name="+$this.attr('name')+"]");
			if (!$els.is(":checked")) setError($this, "Kötelező kitölteni!");
		}
		else if (!notEmpty($this.val()))
			setError($this, "Kötelező kitölteni!");
	});
	$form.find(".emailValidator").each(function() {
		var $this = $(this);
		if (notEmpty($this.val()) && !email($this.val()))
			setError($this, "Csak érvényes email címet tartalmazhat!");
	});

	return ((errors === '') ? false : errors);

};                         

$().ready(function(){
$.wbMenu = (function() {   
    if ($.browser.msie && ($.browser.version < 8)) return;
     
    var $topDivs = $("#mainMenu").find("li > div"),
        $innerDivs = $topDivs.find('div:first')
                            .addClass('innerDiv') 
                            .wrap('<div />')
                            .css({position: 'absolute', top: '-2px', left: 0}),
        $containerDivs = $innerDivs.parent()
                        .css({position: 'relative', top: '40px', left: 0, zIndex: 10000}),
        $sheet = $("#sheet").css({ display: 'block', opacity: 0 });        
        
    var animateImg = function($el) {
        $el.stop();                           
        $el.rotate(((Math.floor(Math.random()*3)-1) || (Math.floor(Math.random()*3)-1) || 1) * (Math.floor(Math.random()*5)+6) + 'deg');
        $el.scale(1.5);                                  
        $el.animate({ opacity: 1, rotate: '0deg', scale: 1 }, 700, 'swing');
    }

    var showMenu = function($this) {     
        $this.css({ overflow: 'visible' });     
        $sheet.stop().animate({ opacity: 0.5 }, 250, 'swing');                                             
    	$this.find("div.innerDiv").stop().css({ marginLeft: '-30px', opacity: 0, height: 'auto' }).animate({marginLeft: '0', opacity: 1}, 250, "swing", function() {
    		//if ($.browser.msie) this.style.removeAttribute('filter');
    	});   
        animateImg($this.find('img'));
    }
    
    var hideMenu = function($this) {        
        $this.css({ overflow: 'visible' });
        $sheet.stop().animate({ opacity: 0.5 }, 250, function() { $(this).animate({ opacity: 0}, 250, 'swing'); });
        $this.find("div.innerDiv").css({ marginLeft: '0', opacity: 1 }).animate({marginLeft: '30px', opacity: 0}, 300, "swing", function() {
			$this.css({ overflow: 'hidden' });
			//if ($.browser.msie) this.style.removeAttribute('filter');
		});    
    }
                               
	$topDivs.hover(
		function() { showMenu($(this)); },
		function() { hideMenu($(this)); }
	);                       

    //if (!$.browser.msie) {
        $topDivs.find('a.menuHover').removeClass('menuHover').each(function() {
            var $this = $(this);
            $this.clone(true).addClass('hover').css({ position: 'absolute', top: 0, left: '-250px', opacity: 0 }).insertAfter($this);
        });
        
        $topDivs.find('li').hover(
            function() {
                $(this).find('a.hover').stop().animate({ left: 0, opacity: 1 }, 250, 'swing');
            },
            function() {
                $(this).find('a.hover').stop().animate({ left: '-250px', opacity: 0 }, 250, 'swing');
            }
        );
    //}

})();
});


/*
 * Special event for image load events
 * Needed because some browsers does not trigger the event on cached images.

 * MIT License
 * Paul Irish     | @paul_irish | www.paulirish.com
 * Andree Hansson | @peolanha   | www.andreehansson.se
 * 2010.
 *
 * Usage:
 * $(images).bind('load', function (e) {
 *   // Do stuff on load
 * });
 * 
 * Note that you can bind the 'error' event on data uri images, this will trigger when
 * data uri images isn't supported.
 * 
 * Tested in:
 * FF2-3.6
 * IE6-8
 * Chromium4 Developer
 * Opera 9-10
 */ 
(function ($) {

$.event.special.load = {
	setup: function(data, namespaces, hollaback) {
		var retVal = false;
		
		if (this.tagName.toLowerCase() === 'img' && this.src !== "") {
			// Image is already complete, fire the hollaback (fixes browser issues were cached
			// images isn't triggering the load event)
			if (this.complete || this.readyState === 4) {
				$(this).bind('load', data || {}, hollaback).trigger('load');
				retVal = true;
			}
			
			// Check if data URI images is supported, fire 'error' event if not
			else if (this.readyState === 'uninitialized' && this.src.indexOf('data:') >= 0) {
				$(this).trigger('error');
				retVal = true;
			}
		}
		
		return retVal;
	}
}

}(jQuery));


$(function() {
$.wbHeaderAnim = (function() {
    var $lefts = $("#headerImages div.left"),
        $rights = $("#headerImages div.right"),
        length = $lefts.length,
        act = 0,
        loaded = 0,
        play = false,
        that = this;                
        
    var showImage = function(id) {
        var $la = $lefts.eq(act), $ra = $rights.eq(act);     
        $la.css({ zIndex: 10, width: '640px', display: 'block' }).stop().animate({ width: 0 }, 1600, 'swing', function() { $la.css({ display: 'none'}); });
        $lefts.eq(id).css({ zIndex: 5, width: '640px', display: 'block'}).stop();
        $ra.css({ zIndex: 10, width: '320px', display: 'block' }).stop().animate({ width: 0 }, 1600, 'swing', function() { $ra.css({ display: 'none'}); });
        $rights.eq(id).css({ zIndex: 5, width: '320px', display: 'block'}).stop();
    }
    
    var animation = setInterval(function() {
        if (!play) return true;    

        var img = act + 1;
        if (img >= length) img = 0;                     
                    
        showImage(img);        
        act = img;
    }, 10000);
    
    return {
        start: function() { play = true; return that; },
        stop: function() { play = false; return that; }
    }
    
})().start();
});

$(function() {
$.wbDiscountAnim = (function() {      
  
    var opts = {
        containerPadding: '5px',
        height: '100px',        
        activeColor: '#fff',
        normalColor: '#EDE9D9',
        duration1: 500,
        duration2: 500,
        duration3: 500,
        wait: 2000,
        duration4: 500,
        repeatWait: 10000
    }

    var $db = $("#rightContent div.discountsBox"),
        $els = $("#rightContent a.discountBox"),
        act = 0,
        play = false,
        that = this;  
        
    $db.css("height", $db.height());

    $els.eq(0).removeClass('discountBox_active').css({ backgroundColor: opts.activeColor }).find('div.discountDetails').css({height: opts.height});
           
    var animation = setInterval(function() {
        if (!play) return true;   
         
        var $act = $els.eq(act),
            $next = $els.eq(act+1);
            
        if (!$next.length) {
            act = 0;
            $next = $els.eq(act);
        } else {
            act++;
        }
                
        $act.animate({ opacity: 0 }, opts.duration1, 'swing', function() {
            $act.css({ overflow: 'hidden' }).animate({ height: 0, padding: 0 }, opts.duration2, 'swing', function() {
                $next.find('div.discountDetails').animate({ height: opts.height }, opts.duration3, 'swing');

                var $last = $("#rightContent a.discountBox:last");                        
                $act.css({ height: 'auto', overflow: 'inherit', backgroundColor: opts.normalColor, padding: opts.containerPadding })                        
                    .find('div.discountDetails').css({height: 0}).end()
                    .insertAfter($last);
                
                setTimeout(function() {
                    $act.animate({ opacity: 1 }, opts.duration4, "swing");
                }, opts.wait);
            });
        });
        $next.animate({ backgroundColor: opts.activeColor }, opts.duration1, 'swing');
               
    }, opts.repeatWait);

    return {
        start: function() { if (!$.browser.msie) { play = true; } return that; },
        stop: function() { play = false; return that; }
    }
})().start();
});

$(function() {
    
    $("#newsLetterBox").hover(
        function() {            
            $(this).stop().animate({ marginLeft: '720px'}, 500, 'swing');
        },
        function() {
            $(this).stop().animate({ marginLeft: '952px'}, 800, 'swing');
        }
    );
    
});

/* MainForm */
$.startMainForm = function() {    
  
    //if ($.browser.msie) return;
    
                
    var $first = $("#mainFormFirst"),
        $second = $("#mainFormSecond"),
        $wrapper = $("#mainFormWrapper"),
        $ASelector = $("#mainFormASelector a"),
        $selector = $("#mainFormSelector"),
        $submit = $("#mainFormSubmit"),
        $prev = $("#mainFormPrev"),
        $next = $("#mainFormNext");

    $selector.hide();    
    $first.css({ float: 'left' });
    $second.css({ float: 'left' });
    $wrapper.css({ height: '296px', overflow: 'hidden' });
    $prev.hide();
    $submit.hide();
    $next.show();

    $('div.mainForms div.validError').removeClass('validError').addClass('error');

    $ASelector.bind("click", function() {
        var $this = $(this);
        if ($this.hasClass('active')) return false;
        
        $ASelector.removeClass('active');
        $this.addClass('active');
        $selector.find('select').val($this.attr('lang'));
        
        $prev.hide();
        $submit.hide();
        $next.hide();
        $wrapper.stop().animate({ height: '296px', opacity: 0 }, 150, 'swing', function() {
            $first.stop().css({ marginLeft: 0 });            
        }).animate({ opacity: 1 }, 300, 'swing', function() {            
            $next.fadeIn('fast');            
        });        
                
        return false;
    });
    
    $.mainForm = {
        second: function() {
            $next.hide();
            $wrapper.stop().animate({ height: '455px' }, 200, 'swing');
            $first.stop().animate({ marginLeft: '-295px' }, 500, 'swing', function() {
                $submit.fadeIn('fast');
                $prev.fadeIn('fast');
            });
            return false;        
        },
        first: function() {
            $prev.hide();
            $submit.hide();
            $wrapper.stop().animate({ height: '296px' }, 500, 'swing');
            $first.stop().animate({ marginLeft: 0 }, 500, 'swing', function() {
                $next.fadeIn('fast');
            });
            return false;        
        }
    }
    
    $.datepick.setDefaults($.datepick.regional[$.language.substr(0,2)]);
    
	$("#mainFormWrapper input.calendar").datepick({
		showOn: 'focus'
	});
    
    
    $next.bind("click", $.mainForm.second);
    $prev.bind("click", $.mainForm.first);

};

$(function() {
    $("#mainMenu li.seasonLi a").removeClass('seasonHover').hover(
        function() {
            $(this).stop().animate({ left: '-150px' }, 400, 'swing');
        },
        function() {
            $(this).stop().animate({ left: '0' }, 300, 'swing');
        }        
    );
});
