
(function($){
	$.fn.lightBox=function(settings){
		settings=jQuery.extend({
			overlayBgColor:'#000',
			overlayOpacity:0.8,
			fixedNavigation:false,
			imageLoading:'images/lightbox-ico-loading.gif',
			imageBtnPrev:'images/lightbox-btn-prev.gif',
			imageBtnNext:'images/lightbox-btn-next.gif',
			imageBtnClose:'images/lightbox-btn-close.gif',
			imageBlank:'images/lightbox-blank.gif',
			containerBorderSize:10,
			containerResizeSpeed:400,
			txtImage:'Image',
			txtOf:'of',
			keyToClose:'c',
			keyToPrev:'p',
			keyToNext:'n',
			imageArray:[],
			activeImage:0
		},settings);
		var jQueryMatchedObj=this;
		function _initialize(){
			_start(this,jQueryMatchedObj);
			return false;
		}
		function _start(objClicked,jQueryMatchedObj){
			$('embed, object, select').css({
				'visibility':'hidden'
			});
			_set_interface();
			settings.imageArray.length=0;
			settings.activeImage=0;
			if(jQueryMatchedObj.length==1){
				settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title'),objClicked.getAttribute('data-desc'),objClicked.getAttribute('data-author')));
			}else{
				for(var i=0;i<jQueryMatchedObj.length;i++){
					settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title'),jQueryMatchedObj[i].getAttribute('data-desc'),jQueryMatchedObj[i].getAttribute('data-author')));
				}
				}
		while(settings.imageArray[settings.activeImage][0]!=objClicked.getAttribute('href')){
			settings.activeImage++;
		}
		_set_image_to_view();
	}
	function _set_interface(){
		$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+settings.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-desc"></span><span id="lightbox-image-details-author"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="'+settings.imageBtnClose+'"></a></div></div></div></div>');
		var arrPageSizes=___getPageSize();
		$('#jquery-overlay').css({
			backgroundColor:settings.overlayBgColor,
			opacity:settings.overlayOpacity,
			width:arrPageSizes[0],
			height:arrPageSizes[1]
			}).fadeIn();
		var arrPageScroll=___getPageScroll();
		$('#jquery-lightbox').css({
			top:arrPageScroll[1]+(arrPageSizes[3]/10),
			left:arrPageScroll[0]
			}).show();
		$('#jquery-overlay,#jquery-lightbox').click(function(){
			_finish();
		});
		$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function(){
			_finish();
			return false;
		});
		$(window).resize(function(){
			var arrPageSizes=___getPageSize();
			$('#jquery-overlay').css({
				width:arrPageSizes[0],
				height:arrPageSizes[1]
				});
			var arrPageScroll=___getPageScroll();
			$('#jquery-lightbox').css({
				top:arrPageScroll[1]+(arrPageSizes[3]/10),
				left:arrPageScroll[0]
				});
		});
	}
	function _set_image_to_view(){
		$('#lightbox-loading').show();
		if(settings.fixedNavigation){
			$('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
		}else{
			$('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
		}
		var objImagePreloader=new Image();
		objImagePreloader.onload=function(){
			$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
			_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
			objImagePreloader.onload=function(){};
		
	};
	
	objImagePreloader.src=settings.imageArray[settings.activeImage][0];
};

function _resize_container_image_box(intImageWidth,intImageHeight){
	var intCurrentWidth=$('#lightbox-container-image-box').width();
	var intCurrentHeight=$('#lightbox-container-image-box').height();
	var intWidth=(intImageWidth+(settings.containerBorderSize*2));
	var intHeight=(intImageHeight+(settings.containerBorderSize*2));
	var intDiffW=intCurrentWidth-intWidth;
	var intDiffH=intCurrentHeight-intHeight;
	$('#lightbox-container-image-box').animate({
		width:intWidth,
		height:intHeight
	},settings.containerResizeSpeed,function(){
		_show_image();
	});
	if((intDiffW==0)&&(intDiffH==0)){
		if($.browser.msie){
			___pause(250);
		}else{
			___pause(100);
		}
	}
$('#lightbox-container-image-data-box').css({
	width:intImageWidth
});
$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({
	height:intImageHeight+(settings.containerBorderSize*2)
	});
};

function _show_image(){
	$('#lightbox-loading').hide();
	$('#lightbox-image').fadeIn(function(){
		_show_image_data();
		_set_navigation();
	});
	_preload_neighbor_images();
};

function _show_image_data(){
	$('#lightbox-container-image-data-box').slideDown('fast');
	$('#lightbox-image-details-caption, #lightbox-image-details-desc, #lightbox-image-details-author').hide();
	if(settings.imageArray[settings.activeImage][1]){
		$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();
		$('#lightbox-image-details-desc').html(settings.imageArray[settings.activeImage][2]).show();
		$('#lightbox-image-details-author').html(settings.imageArray[settings.activeImage][3]).show();
	}
	if(settings.imageArray.length>1){
		$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();
	}
}
function _set_navigation(){
	$('#lightbox-nav').show();
	$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({
		'background':'transparent url('+settings.imageBlank+') no-repeat'
		});
	if(settings.activeImage!=0){
		if(settings.fixedNavigation){
			$('#lightbox-nav-btnPrev').css({
				'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'
				}).unbind().bind('click',function(){
				settings.activeImage=settings.activeImage-1;
				_set_image_to_view();
				_disable_keyboard_navigation();
				return false;
			});
		}else{
			$('#lightbox-nav-btnPrev').unbind().hover(function(){
				$(this).css({
					'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'
					});
			},function(){
				$(this).css({
					'background':'transparent url('+settings.imageBlank+') no-repeat'
					});
			}).show().bind('click',function(){
				settings.activeImage=settings.activeImage-1;
				_set_image_to_view();
				_disable_keyboard_navigation();
				return false;
			});
		}
	}
if(settings.activeImage!=(settings.imageArray.length-1)){
	if(settings.fixedNavigation){
		$('#lightbox-nav-btnNext').css({
			'background':'url('+settings.imageBtnNext+') right 15% no-repeat'
			}).unbind().bind('click',function(){
			settings.activeImage=settings.activeImage+1;
			_set_image_to_view();
			_disable_keyboard_navigation();
			return false;
		});
	}else{
		$('#lightbox-nav-btnNext').unbind().hover(function(){
			$(this).css({
				'background':'url('+settings.imageBtnNext+') right 15% no-repeat'
				});
		},function(){
			$(this).css({
				'background':'transparent url('+settings.imageBlank+') no-repeat'
				});
		}).show().bind('click',function(){
			settings.activeImage=settings.activeImage+1;
			_set_image_to_view();
			_disable_keyboard_navigation();
			return false;
		});
	}
}
_enable_keyboard_navigation();
}
function _enable_keyboard_navigation(){
	$(document).keyup(function(objEvent){
		_keyboard_action(objEvent);
	});
}
function _disable_keyboard_navigation(){
	$(document).unbind();
}
function _keyboard_action(objEvent){
	if(objEvent==null){
		keycode=event.keyCode;
		escapeKey=27;
	}else{
		keycode=objEvent.keyCode;
		escapeKey=27;
	}
	key=String.fromCharCode(keycode).toLowerCase();
	if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){
		_finish();
	}
	if((key==settings.keyToPrev)||(keycode==37)){
		if(settings.activeImage!=0){
			settings.activeImage=settings.activeImage-1;
			_set_image_to_view();
			_disable_keyboard_navigation();
		}
	}
if((key==settings.keyToNext)||(keycode==39)){
	if(settings.activeImage!=(settings.imageArray.length-1)){
		settings.activeImage=settings.activeImage+1;
		_set_image_to_view();
		_disable_keyboard_navigation();
	}
}
}
function _preload_neighbor_images(){
	if((settings.imageArray.length-1)>settings.activeImage){
		objNext=new Image();
		objNext.src=settings.imageArray[settings.activeImage+1][0];
	}
	if(settings.activeImage>0){
		objPrev=new Image();
		objPrev.src=settings.imageArray[settings.activeImage-1][0];
	}
}
function _finish(){
	_disable_keyboard_navigation();
	$('#jquery-lightbox').remove();
	$('#jquery-overlay').fadeOut(function(){
		$('#jquery-overlay').remove();
	});
	$('embed, object, select').css({
		'visibility':'visible'
	});
}
function ___getPageSize(){
	var xScroll,yScroll;
	if(window.innerHeight&&window.scrollMaxY){
		xScroll=window.innerWidth+window.scrollMaxX;
		yScroll=window.innerHeight+window.scrollMaxY;
	}else if(document.body.scrollHeight>document.body.offsetHeight){
		xScroll=document.body.scrollWidth;
		yScroll=document.body.scrollHeight;
	}else{
		xScroll=document.body.offsetWidth;
		yScroll=document.body.offsetHeight;
	}
	var windowWidth,windowHeight;
	if(self.innerHeight){
		if(document.documentElement.clientWidth){
			windowWidth=document.documentElement.clientWidth;
		}else{
			windowWidth=self.innerWidth;
		}
		windowHeight=self.innerHeight;
	}else if(document.documentElement&&document.documentElement.clientHeight){
		windowWidth=document.documentElement.clientWidth;
		windowHeight=document.documentElement.clientHeight;
	}else if(document.body){
		windowWidth=document.body.clientWidth;
		windowHeight=document.body.clientHeight;
	}
	if(yScroll<windowHeight){
		pageHeight=windowHeight;
	}else{
		pageHeight=yScroll;
	}
	if(xScroll<windowWidth){
		pageWidth=xScroll;
	}else{
		pageWidth=windowWidth;
	}
	arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
};

function ___getPageScroll(){
	var xScroll,yScroll;
	if(self.pageYOffset){
		yScroll=self.pageYOffset;
		xScroll=self.pageXOffset;
	}else if(document.documentElement&&document.documentElement.scrollTop){
		yScroll=document.documentElement.scrollTop;
		xScroll=document.documentElement.scrollLeft;
	}else if(document.body){
		yScroll=document.body.scrollTop;
		xScroll=document.body.scrollLeft;
	}
	arrayPageScroll=new Array(xScroll,yScroll);
	return arrayPageScroll;
};

function ___pause(ms){
	var date=new Date();
	curDate=null;
	do{
		var curDate=new Date();
	}
	while(curDate-date<ms);
};

return this.unbind('click').click(_initialize);
};

})(jQuery);
(function($){
	$.fn.jCal=function(opt){
		$.jCal(this,opt);
	}
	$.jCal=function(target,opt){
		opt=$.extend({
			day:new Date(),
			days:1,
			showMonths:1,
			sDate:new Date(),
			eDate:new Date(),
			dCheck:function(day){
				return true;
			},
			callback:function(day,days){
				return true;
			},
			selectedBG:'rgb(114, 166, 104)',
			defaultBG:'rgb(255, 255, 255)',
			_target:target
		},opt);
		opt.day.setDate(1);
		$(target).stop().empty();
		for(var sm=0;sm<opt.showMonths;sm++)
			$(target).append('<div class="jCalMo"></div>');
		opt.cID='c'+$('.jCalMo').length;
		$(target).find('.jCalMo').each(function(ind){
			drawCal($(this),$.extend({},opt,{
				'ind':ind,
				'day':new Date(new Date(opt.day.getTime()).setMonth(new Date(opt.day.getTime()).getMonth()+ind))
				}));
		});
	}
	function drawCal(target,opt){
		for(var ds in opt.dow)
			$(target).append('<div class="dow">'+opt.dow[ds]+'</div>');var fd=new Date(new Date(opt.day.getTime()).setDate(1));
		var ldlm=new Date(new Date(fd.getTime()).setDate(0));
		var ld=new Date(new Date(new Date(fd.getTime()).setMonth(fd.getMonth()+1)).setDate(0));
		fdd=_getDay(fd.getDay());
		for(var d=1;d<(fdd+ld.getDate()+(7-_getDay(ld.getDay())));d++)
			$(target).append(((d<=fdd)?'<div id="'+opt.cID+'d_'+(ld.getMonth())+'_'+(ldlm.getDate()-(fdd-d))+'_'+ld.getFullYear()+'" class="pday">'+(ldlm.getDate()-(fdd-d))+'</div>':((d>(fdd+ld.getDate()))?'<div id="'+opt.cID+'d'+d+'" class="aday">'+(d-(fdd+ld.getDate()))+'</div>':'<div id="'+opt.cID+'d_'+(fd.getMonth()+1)+'_'+(d-fdd)+'_'+fd.getFullYear()+'" class="'+
				((opt.dCheck(new Date((new Date(fd.getTime())).setDate(d-fdd))))?'day':'invday')+'">'+(d-fdd)+'</div>')));
		$(target).find('div[id^='+opt.cID+'d]:first, div[id^='+opt.cID+'d]:nth-child(7n+1)').before('<br style="clear:both; font-size:0.1em;" />');
		$(target).prepend('<div class="jCal '+((opt.ind==0)?'al_center"':((opt.ind==(opt.showMonths-1))?'al_right"':''))+'">'+
			((opt.ind==0)?'<span class="left">&#160;</span>':'')+'<span class="month">'+opt.ml[opt.day.getMonth()]+' '+opt.day.getFullYear()+'</span>'+
			((opt.ind==(opt.showMonths-1))?'<span class="right">&#160;</span>':'')+'</div>');
		$(target).find('.jCal .left').bind("click",function(e){
			opt.day.setMonth(opt.day.getMonth()-1);
			$.jCal($(target).parent(),opt);
		});
		$(target).find('.jCal .right').bind("click",function(e){
			opt.day.setMonth(opt.day.getMonth()+((opt.showMonths==1)?1:0));
			$.jCal($(target).parent(),opt);
		});
		$(target).find('div[id^='+opt.cID+'d_]').bind("mouseover mouseout click",function(e){
			var osDate=new Date($(this).attr('id').replace(/c[0-9]{1,}d_([0-9]{1,2})_([0-9]{1,2})_([0-9]{4})/,'$1/$2/$3'));
			var sDate=new Date(osDate.getTime());
			if(e.type=='click')
				$('div[id^='+opt.cID+'d_].selectedDay',$(opt._target).parent()).removeClass('selectedDay').animate({
					background:opt.defaultBG
					},'fast',function(){
					$(this).css('background','');
				});
			for(var di=0;di<opt.days;di++){
				var currDay=$(opt._target).find('#'+opt.cID+'d_'+(sDate.getMonth()+1)+'_'+sDate.getDate()+'_'+sDate.getFullYear());
				if(currDay==null||$(currDay).hasClass('invday'))break;
				$(currDay).toggleClass(((e.type=='click')?'selectedDay':'overDay'));
				if(e.type=='click')$(currDay).stop().animate({
					background:opt.selectedBG
					},'fast',function(){
					$(this).css('background',opt.selectedBG);
				});else $(currDay).css('background','').stop();
				sDate.setDate(sDate.getDate()+1);
			}
			if(e.type=='click')opt.callback(osDate,di);
		});
	}
})(jQuery);
function _getDay(day)
{
	if(day>0)return day-1;
	if(!day)return 6;
};
(function($){
	$.jGrowl=function(m,o){
		if($('#jGrowl').size()==0)$('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');
		$('#jGrowl').jGrowl(m,o);
	};
	
	$.fn.jGrowl=function(m,o){
		if($.isFunction(this.each)){
			var args=arguments;
			return this.each(function(){
				var self=this;
				if($(this).data('jGrowl.instance')==undefined){
					$(this).data('jGrowl.instance',new $.fn.jGrowl());
					$(this).data('jGrowl.instance').startup(this);
				}
				if($.isFunction($(this).data('jGrowl.instance')[m])){
					$(this).data('jGrowl.instance')[m].apply($(this).data('jGrowl.instance'),$.makeArray(args).slice(1));
				}else{
					$(this).data('jGrowl.instance').notification(m,o);
				}
			});
	};

};

$.extend($.fn.jGrowl.prototype,{
	defaults:{
		header:'',
		sticky:false,
		position:'top-right',
		glue:'after',
		theme:'default',
		corners:'10px',
		check:500,
		life:3000,
		speed:'normal',
		easing:'swing',
		closer:true,
		log:function(e,m,o){},
		beforeOpen:function(e,m,o){},
		open:function(e,m,o){},
		beforeClose:function(e,m,o){},
		close:function(e,m,o){},
		animateOpen:{
			opacity:'show'
		},
		animateClose:{
			opacity:'hide'
		}
	},
element:null,
interval:null,
notification:function(message,o){
	var self=this;
	var o=$.extend({},this.defaults,o);
	o.log.apply(this.element,[this.element,message,o]);
	var notification=$('<div class="jGrowl-notification"><div class="close">&times;</div><div class="jgrowl-header">'+o.header+'</div><div class="jgrowl-message">'+message+'</div></div>').data("jGrowl",o).addClass(o.theme).children('div.close').bind("click.jGrowl",function(){
		$(this).unbind('click.jGrowl').parent().trigger('jGrowl.beforeClose').animate(o.animateClose,o.speed,o.easing,function(){
			$(this).trigger('jGrowl.close').remove();
		});
	}).parent();
	(o.glue=='after')?$('div.jGrowl-notification:last',this.element).after(notification):$('div.jGrowl-notification:first',this.element).before(notification);
	$(notification).bind("mouseover.jGrowl",function(){
		$(this).data("jGrowl").pause=true;
	}).bind("mouseout.jGrowl",function(){
		$(this).data("jGrowl").pause=false;
	}).bind('jGrowl.beforeOpen',function(){
		o.beforeOpen.apply(self.element,[self.element,message,o]);
	}).bind('jGrowl.open',function(){
		o.open.apply(self.element,[self.element,message,o]);
	}).bind('jGrowl.beforeClose',function(){
		o.beforeClose.apply(self.element,[self.element,message,o]);
	}).bind('jGrowl.close',function(){
		o.close.apply(self.element,[self.element,message,o]);
	}).trigger('jGrowl.beforeOpen').animate(o.animateOpen,o.speed,o.easing,function(){
		$(this).data("jGrowl").created=new Date();
	}).trigger('jGrowl.open');
	if($.fn.corner!=undefined)$(notification).corner(o.corners);
	if($('div.jGrowl-notification:parent',this.element).size()>1&&$('div.jGrowl-closer',this.element).size()==0&&this.defaults.closer!=false){
		$('<div class="jGrowl-closer">[ x ]</div>').addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){
			$(this).siblings().children('div.close').trigger("click.jGrowl");
			if($.isFunction(self.defaults.closer))self.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);
		});
	};

},
update:function(){
	$(this.element).find('div.jGrowl-notification:parent').each(function(){
		if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+$(this).data("jGrowl").life)<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl").pause==undefined||$(this).data("jGrowl").pause!=true)){
			$(this).children('div.close').trigger('click.jGrowl');
		}
	});
if($(this.element).find('div.jGrowl-notification:parent').size()<2){
	$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){
		$(this).remove();
	});
};

},
startup:function(e){
	this.element=$(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');
	this.interval=setInterval(function(){
		jQuery(e).data('jGrowl.instance').update();
	},this.defaults.check);
	if($.browser.msie&&parseInt($.browser.version)<7)$(this.element).addClass('ie6');
},
shutdown:function(){
	$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();
	clearInterval(this.interval);
}
});
$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;
})(jQuery);
;
(function($){
	$.fn.supersubs=function(options){
		var opts=$.extend({},$.fn.supersubs.defaults,options);
		return this.each(function(){
			var $$=$(this);
			var o=$.meta?$.extend({},opts,$$.data()):opts;
			var fontsize=$('<li id="menu-fontsize">&#8212;</li>').css({
				'padding':0,
				'position':'absolute',
				'top':'-999em',
				'width':'auto'
			}).appendTo($$).width();
			$('#menu-fontsize').remove();
			$ULs=$$.find('ul');
			$ULs.each(function(i){
				var $ul_sub=$ULs.eq(i);
				var $LIs=$ul_sub.children();
				var $As=$LIs.children('a');
				var liFloat=$LIs.css('white-space','nowrap').css('float');
				var emWidth=$ul_sub.add($LIs).add($As).css({
					'float':'none',
					'width':'auto'
					}).end().end()[0].clientWidth/fontsize-3;
				emWidth+=o.extraWidth;
				if(emWidth>o.maxWidth){
					emWidth=o.maxWidth;
				}
				else if(emWidth<o.minWidth){
					emWidth=o.minWidth;
				}
				emWidth+='px';
				$ul_sub.css('width',emWidth);
				$LIs.css({
					'float':liFloat,
					'width':'100%',
					'white-space':'normal'
				}).each(function(){
					var $childUl=$('>ul',this);
					var offsetDirection=$childUl.css('left')!==undefined?'left':'right';
					$childUl.css(offsetDirection,emWidth);
				});
			});
		});
	};
	
	$.fn.supersubs.defaults={
		minWidth:250,
		maxWidth:500,
		extraWidth:0
	};

})(jQuery);
(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);
(function($){
	$.widget("ui.autocomplete",{
		_init:function(){
			$.extend(this.options,{
				delay:this.options.delay!=undefined?this.options.delay:(this.options.url?this.options.ajaxDelay:this.options.localDelay),
				max:this.options.max!=undefined?this.options.max:(this.options.scroll?this.options.scrollMax:this.options.noScrollMax),
				highlight:this.options.highlight||function(value){
					return value;
				},
				formatMatch:this.options.formatMatch||this.options.formatItem
				});
			var input=this.element[0],options=this.options,$input=$(input).attr("autocomplete","off").addClass(options.inputClass),KEY=$.ui.keyCode,previousValue="",cache=$.ui.autocomplete.cache(options),hasFocus=0,config={
				mouseDownOnSelect:false
			},timeout,blockSubmit,lastKeyPressCode,select=$.ui.autocomplete.select(options,input,selectCurrent,config);
			if(options.result){
				$input.bind('result.autocomplete',options.result);
			}
			$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){
				if(blockSubmit){
					blockSubmit=false;
					return false;
				}
			});
		$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(event){
			lastKeyPressCode=event.keyCode;
			switch(event.keyCode){
				case KEY.UP:
					event.preventDefault();
					if(select.visible()){
					select.prev();
				}else{
					onChange(0,true);
				}
				break;
				case KEY.DOWN:
					event.preventDefault();
					if(select.visible()){
					select.next();
				}else{
					onChange(0,true);
				}
				break;
				case KEY.PAGE_UP:
					event.preventDefault();
					if(select.visible()){
					select.pageUp();
				}else{
					onChange(0,true);
				}
				break;
				case KEY.PAGE_DOWN:
					event.preventDefault();
					if(select.visible()){
					select.pageDown();
				}else{
					onChange(0,true);
				}
				break;
				case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.ENTER:
					if(selectCurrent()){
					event.preventDefault();
					blockSubmit=true;
					return false;
				}
				break;
				case KEY.ESCAPE:
					select.hide();
					break;
				default:
					clearTimeout(timeout);
					timeout=setTimeout(onChange,options.delay);
					break;
			}
		}).bind('focus.autocomplete',function(){
		hasFocus++;
	}).bind('blur.autocomplete',function(){
		hasFocus=0;
		if(!config.mouseDownOnSelect){
			hideResults();
		}
	}).bind('click.autocomplete',function(){
		if(hasFocus++>1&&!select.visible()){
			onChange(0,true);
		}
	}).bind("search.autocomplete",function(){
	var fn=(arguments.length>1)?arguments[1]:null;
	function findValueCallback(q,data){
		var result;
		if(data&&data.length){
			for(var i=0;i<data.length;i++){
				if(data[i].result.toLowerCase()==q.toLowerCase()){
					result=data[i];
					break;
				}
			}
			}
if(typeof fn=="function")fn(result);else $input.trigger("result.autocomplete",result&&[result.data,result.value]);
	}
	$.each(trimWords($input.val()),function(i,value){
		request(value,findValueCallback,findValueCallback);
	});
}).bind("flushCache.autocomplete",function(){
	cache.flush();
}).bind("setOptions.autocomplete",function(){
	$.extend(options,arguments[1]);
	if("data"in arguments[1])
		cache.populate();
}).bind("unautocomplete",function(){
	select.unbind();
	$(input).unbind(".autocomplete");
	$(input.form).unbind(".autocomplete");
});
function selectCurrent(){
	var selected=select.selected();
	if(!selected)return false;
	var v=selected.result;
	previousValue=v;
	if(options.multiple){
		var words=trimWords($input.val());
		if(words.length>1){
			v=words.slice(0,words.length-1).join(options.multipleSeparator)+options.multipleSeparator+v;
		}
		v+=options.multipleSeparator;
	}
	$('#street_id').val(v);
	$input.val(selected.data[1]);
	hideResultsNow();
	$input.trigger("result.autocomplete",[selected.data,selected.value]);
	return true;
};

function onChange(crap,skipPrevCheck){
	if(lastKeyPressCode==KEY.DELETE){
		select.hide();
		return;
	}
	var currentValue=$input.val();
	if(!skipPrevCheck&&currentValue==previousValue)
		return;
	previousValue=currentValue;
	currentValue=lastWord(currentValue);
	if(currentValue.length>=options.minChars){
		$input.addClass(options.loadingClass);
		if(!options.matchCase)
			currentValue=currentValue.toLowerCase();
		request(currentValue,receiveData,hideResultsNow);
	}else{
		stopLoading();
		select.hide();
	}
};

function trimWords(value){
	if(!value){
		return[""];
	}
	if(!options.multiple){
		return[value];
	}
	var words=value.split(options.multipleSeparator);
	var result=[];
	$.each(words,function(i,value){
		if($.trim(value))
			result[i]=$.trim(value);
	});
	return result;
};

function lastWord(value){
	var words=trimWords(value);
	return words[words.length-1];
};

function autoFill(q,sValue){
	if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=$.ui.keyCode.BACKSPACE){
		$input.val($input.val()+sValue.substring(lastWord(previousValue).length));
		$.ui.autocomplete.selection(input,previousValue.length,previousValue.length+sValue.length);
	}
};

function hideResults(){
	clearTimeout(timeout);
	timeout=setTimeout(hideResultsNow,200);
};

function hideResultsNow(){
	var wasVisible=select.visible();
	select.hide();
	clearTimeout(timeout);
	stopLoading();
	if(options.mustMatch){
		$input.autocomplete("search",function(result){
			if(!result){
				if(options.multiple){
					var words=trimWords($input.val()).slice(0,-1);
					$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));
				}
				else
					$input.val("");
			}
		});
}
if(wasVisible)
	$.ui.autocomplete.selection(input,input.value.length,input.value.length);
};

function receiveData(q,data){
	if(data&&data.length&&hasFocus){
		stopLoading();
		select.display(data,q);
		autoFill(q,data[0].value);
		select.show();
	}else{
		hideResultsNow();
	}
};

function request(term,success,failure){
	if(!options.matchCase)
		term=term.toLowerCase();
	var data=cache.load(term);
	if(data&&data.length){
		success(term,data);
	}
	else if((typeof options.url=="string")&&(options.url.length>0)){
		var extraParams={
			timestamp:+new Date()
			};
			
		$.each(options.extraParams,function(key,param){
			extraParams[key]=typeof param=="function"?param(term):param;
		});
		$.ajax({
			mode:"abort",
			port:"autocomplete"+input.name,
			dataType:options.dataType,
			url:options.url,
			data:$.extend({
				q:lastWord(term),
				limit:options.max
				},extraParams),
			success:function(data){
				var parsed=options.parse&&options.parse(data)||parse(data);
				cache.add(term,parsed);
				success(term,parsed);
			}
		});
}
else if(options.source&&typeof options.source=='function'){
	var resultData=options.source(term);
	var parsed=(options.parse)?options.parse(resultData):resultData;
	cache.add(term,parsed);
	success(term,parsed);
}else{
	select.emptyList();
	failure(term);
}
};

function parse(data){
	var parsed=[];
	var rows=data.split("\n");
	for(var i=0;i<rows.length;i++){
		var row=$.trim(rows[i]);
		if(row){
			row=row.split("|");
			parsed[parsed.length]={
				data:row,
				value:row[0],
				result:options.formatResult&&options.formatResult(row,row[0])||row[0]
				};
			
	}
	}
return parsed;
};

function stopLoading(){
	$input.removeClass(options.loadingClass);
};

},
_propagate:function(n,event){
	$.ui.plugin.call(this,n,[event,this.ui()]);
	return this.element.triggerHandler(n=='autocomplete'?n:'autocomplete'+n,[event,this.ui()],this.options[n]);
},
ui:function(event){
	return{
		options:this.options,
		element:this.element
		};
	
},
result:function(handler){
	return this.element.bind("result.autocomplete",handler);
},
search:function(handler){
	return this.element.trigger("search.autocomplete",[handler]);
},
flushCache:function(){
	return this.element.trigger("flushCache.autocomplete");
},
setData:function(key,value){
	return this.element.trigger("setOptions.autocomplete",[{
		key:value
	}]);
},
destroy:function(){
	this.element.removeAttr('disabled').removeClass('ui-autocomplete-input');
	return this.element.trigger("unautocomplete");
},
enable:function(){
	this.element.removeAttr('disabled').removeClass('ui-autocomplete-disabled');
	this.disabled=false;
},
disable:function(){
	this.element.attr('disabled',true).addClass('ui-autocomplete-disabled');
	this.disabled=true;
}
});
$.extend($.ui.autocomplete,{
	defaults:{
		inputClass:"ui-autocomplete-input",
		resultsClass:"ui-widget ui-widget-content ui-autocomplete-results",
		loadingClass:"ui-autocomplete-loading",
		minChars:1,
		ajaxDelay:400,
		localDelay:10,
		matchCase:false,
		matchSubset:true,
		matchContains:false,
		cacheLength:10,
		scrollMax:150,
		noScrollMax:10,
		mustMatch:false,
		extraParams:{},
		selectFirst:true,
		formatItem:function(row){
			return row[0];
		},
		formatMatch:null,
		autoFill:false,
		width:0,
		multiple:false,
		multipleSeparator:", ",
		highlight:function(value,term){
			if(!value){
				var value="Не найдено";
			}
			return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");
		},
		scroll:true,
		scrollHeight:180
	}
});
$.ui.autocomplete.cache=function(options){
	var data={};
	
	var length=0;
	function matchSubset(s,sub){
		if(!options.matchCase)
			s=s.toLowerCase();
		var i=s.indexOf(sub);
		if(i==-1)return false;
		return i==0||options.matchContains;
	};
	
	function add(q,value){
		if(length>options.cacheLength){
			flush();
		}
		if(!data[q]){
			length++;
		}
		data[q]=value;
	}
	function populate(){
		if(!options.data)return false;
		var stMatchSets={},nullData=0;
		if(!options.url)options.cacheLength=1;
		stMatchSets[""]=[];
		for(var i=0,ol=options.data.length;i<ol;i++){
			var rawValue=options.data[i];
			rawValue=(typeof rawValue=="string")?[rawValue]:rawValue;
			var value=options.formatMatch(rawValue,i+1,options.data.length);
			if(value===false)
				continue;
			var firstChar=value.charAt(0).toLowerCase();
			if(!stMatchSets[firstChar])
				stMatchSets[firstChar]=[];
			var row={
				value:value,
				data:rawValue,
				result:options.formatResult&&options.formatResult(rawValue)||value
				};
				
			stMatchSets[firstChar].push(row);
			if(nullData++<options.max){
				stMatchSets[""].push(row);
			}
		};
		
	$.each(stMatchSets,function(i,value){
		options.cacheLength++;
		add(i,value);
	});
}
setTimeout(populate,25);
function flush(){
	data={};
	
	length=0;
}
return{
	flush:flush,
	add:add,
	populate:populate,
	load:function(q){
		if(!options.cacheLength||!length)
			return null;
		if(!options.url&&options.matchContains){
			var csub=[];
			for(var k in data){
				if(k.length>0){
					var c=data[k];
					$.each(c,function(i,x){
						if(matchSubset(x.value,q)){
							csub.push(x);
						}
					});
			}
			}
	return csub;
}else
if(data[q]){
	return data[q];
}else
if(options.matchSubset){
	for(var i=q.length-1;i>=options.minChars;i--){
		var c=data[q.substr(0,i)];
		if(c){
			var csub=[];
			$.each(c,function(i,x){
				if(matchSubset(x.value,q)){
					csub[csub.length]=x;
				}
			});
		return csub;
	}
	}
}
return null;
}
};

};

$.ui.autocomplete.select=function(options,input,select,config){
	var CLASSES={
		DEFAULT:'ui-autocomplete-state-default',
		ACTIVE:'ui-autocomplete-state-active'
	};
	
	var listItems,active=-1,data,term="",needsInit=true,element,list;
	function init(){
		if(!needsInit)return;
		element=$("<div/>").hide().addClass(options.resultsClass).appendTo(document.body);
		list=$("<ul/>").appendTo(element).mouseover(function(event){
			var e=target(event);
			if(e.nodeName&&e.nodeName.toUpperCase()=='LI'){
				active=$("li",list).removeClass(CLASSES.ACTIVE).index(e);
				$(e).addClass(CLASSES.ACTIVE);
			}
		}).click(function(event){
		$(target(event)).addClass(CLASSES.ACTIVE);
		select();
		input.focus();
		return false;
	}).mousedown(function(){
		config.mouseDownOnSelect=true;
	}).mouseup(function(){
		config.mouseDownOnSelect=false;
	});
	if(options.width>0)
		element.css("width",options.width);
	needsInit=false;
}
function target(event){
	var element=event.target;
	while(element&&element.tagName!="LI")
		element=element.parentNode;
	if(!element)
		return[];
	return element;
}
function moveSelect(step){
	listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);
	movePosition(step);
	var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);
	if(options.scroll){
		var offset=0;
		listItems.slice(0,active).each(function(){
			offset+=this.offsetHeight;
		});
		if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){
			list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());
		}else if(offset<list.scrollTop()){
			list.scrollTop(offset);
		}
	}
};

function movePosition(step){
	active+=step;
	if(active<0){
		active=listItems.size()-1;
	}else if(active>=listItems.size()){
		active=0;
	}
}
function limitNumberOfItems(available){
	return options.max&&options.max<available?options.max:available;
}
function fillList(){
	list.empty();
	var max=limitNumberOfItems(data.length);
	for(var i=0;i<max;i++){
		if(!data[i])
			continue;
		var formatted=options.formatItem(data[i].data,i+1,max,data[i].value,term);
		if(formatted===false)
			continue;
		var li=$("<li/>").html(options.highlight(formatted,term)).addClass(i%2==0?"ui-autocomplete-even":"ui-autocomplete-odd").addClass(CLASSES.DEFAULT).appendTo(list)[0];
		$.data(li,"ui-autocomplete-data",data[i]);
	}
	listItems=list.find("li");
	if(options.selectFirst){
		listItems.slice(0,1).addClass(CLASSES.ACTIVE);
		active=0;
	}
	if($.fn.bgiframe)
		list.bgiframe();
}
return{
	display:function(d,q){
		init();
		data=d;
		term=q;
		fillList();
	},
	next:function(){
		moveSelect(1);
	},
	prev:function(){
		moveSelect(-1);
	},
	pageUp:function(){
		if(active!=0&&active-8<0){
			moveSelect(-active);
		}else{
			moveSelect(-8);
		}
	},
pageDown:function(){
	if(active!=listItems.size()-1&&active+8>listItems.size()){
		moveSelect(listItems.size()-1-active);
	}else{
		moveSelect(8);
	}
},
hide:function(){
	element&&element.hide();
	listItems&&listItems.removeClass(CLASSES.ACTIVE)
	active=-1;
	$(input).triggerHandler("autocompletehide",[{},{
		options:options
	}],options["hide"]);
},
visible:function(){
	return element&&element.is(":visible");
},
current:function(){
	return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);
},
show:function(){
	var offset=$(input).offset();
	element.css({
		width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),
		top:offset.top+input.offsetHeight,
		left:offset.left
		}).show();
	if(options.scroll){
		list.scrollTop(0);
		list.css({
			maxHeight:options.scrollHeight,
			overflow:'auto'
		});
		if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){
			var listHeight=0;
			listItems.each(function(){
				listHeight+=this.offsetHeight;
			});
			var scrollbarsVisible=listHeight>options.scrollHeight;
			list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);
			if(!scrollbarsVisible){
				listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));
			}
		}
	}
$(input).triggerHandler("autocompleteshow",[{},{
	options:options
}],options["show"]);
},
selected:function(){
	var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
	return selected&&selected.length&&$.data(selected[0],"ui-autocomplete-data");
},
emptyList:function(){
	list&&list.empty();
},
unbind:function(){
	element&&element.remove();
}
};

};

$.ui.autocomplete.selection=function(field,start,end){
	if(field.createTextRange){
		var selRange=field.createTextRange();
		selRange.collapse(true);
		selRange.moveStart("character",start);
		selRange.moveEnd("character",end);
		selRange.select();
	}else if(field.setSelectionRange){
		field.setSelectionRange(start,end);
	}else{
		if(field.selectionStart){
			field.selectionStart=start;
			field.selectionEnd=end;
		}
	}
field.focus();
};

})(jQuery);
(function($){
	$.widget("ui.tabs",{
		_init:function(){
			this._tabify(true);
		},
		destroy:function(){
			var o=this.options;
			this.element.unbind('.tabs').removeClass(o.navClass).removeData('tabs');
			this.$tabs.each(function(){
				var href=$.data(this,'href.tabs');
				if(href)
					this.href=href;
				var $this=$(this).unbind('.tabs');
				$.each(['href','load','cache'],function(i,prefix){
					$this.removeData(prefix+'.tabs');
				});
			});
			this.$lis.add(this.$panels).each(function(){
				if($.data(this,'destroy.tabs'))
					$(this).remove();else
					$(this).removeClass([o.selectedClass,o.deselectableClass,o.disabledClass,o.panelClass,o.hideClass].join(' '));
			});
			if(o.cookie)
				this._cookie(null,o.cookie);
		},
		_setData:function(key,value){
			if((/^selected/).test(key))
				this.select(value);
			else{
				this.options[key]=value;
				this._tabify();
			}
		},
	length:function(){
		return this.$tabs.length;
	},
	_tabId:function(a){
		return a.title&&a.title.replace(/\s/g,'_').replace(/[^A-Za-z0-9\-_:\.]/g,'')||this.options.idPrefix+$.data(a);
	},
	_sanitizeSelector:function(hash){
		return hash.replace(/:/g,'\\:');
	},
	_cookie:function(){
		var cookie=this.cookie||(this.cookie='ui-tabs-'+$.data(this.element[0]));
		return $.cookie.apply(null,[cookie].concat($.makeArray(arguments)));
	},
	_tabify:function(init){
		this.$lis=$('li:has(a[href])',this.element);
		this.$tabs=this.$lis.map(function(){
			return $('a',this)[0];
		});
		this.$panels=$([]);
		var self=this,o=this.options;
		this.$tabs.each(function(i,a){
			if(a.hash&&a.hash.replace('#',''))
				self.$panels=self.$panels.add(self._sanitizeSelector(a.hash));
			else if($(a).attr('href')!='#'){
				$.data(a,'href.tabs',a.href);
				$.data(a,'load.tabs',a.href);
				var id=self._tabId(a);
				a.href='#'+id;
				var $panel=$('#'+id);
				if(!$panel.length){
					$panel=$(o.panelTemplate).attr('id',id).addClass(o.panelClass).insertAfter(self.$panels[i-1]||self.element);
					$panel.data('destroy.tabs',true);
				}
				self.$panels=self.$panels.add($panel);
			}
			else
				o.disabled.push(i+1);
		});
		if(init){
			this.element.addClass(o.navClass);
			this.$panels.addClass(o.panelClass);
			if(o.selected===undefined){
				if(location.hash){
					this.$tabs.each(function(i,a){
						if(a.hash==location.hash){
							o.selected=i;
							return false;
						}
					});
			}
			else if(o.cookie){
				var index=parseInt(self._cookie(),10);
				if(index&&self.$tabs[index])o.selected=index;
			}
			else if(self.$lis.filter('.'+o.selectedClass).length)
				o.selected=self.$lis.index(self.$lis.filter('.'+o.selectedClass)[0]);
		}
		o.selected=o.selected===null||o.selected!==undefined?o.selected:0;
		o.disabled=$.unique(o.disabled.concat($.map(this.$lis.filter('.'+o.disabledClass),function(n,i){
			return self.$lis.index(n);
		}))).sort();
		if($.inArray(o.selected,o.disabled)!=-1)
			o.disabled.splice($.inArray(o.selected,o.disabled),1);
		this.$panels.addClass(o.hideClass);
		this.$lis.removeClass(o.selectedClass);
		if(o.selected!==null){
			this.$panels.eq(o.selected).removeClass(o.hideClass);
			var classes=[o.selectedClass];
			if(o.deselectable)classes.push(o.deselectableClass);
			this.$lis.eq(o.selected).addClass(classes.join(' '));
			var onShow=function(){
				self._trigger('show',null,self.ui(self.$tabs[o.selected],self.$panels[o.selected]));
			};
			
			if($.data(this.$tabs[o.selected],'load.tabs'))
				this.load(o.selected,onShow);else onShow();
		}
		$(window).bind('unload',function(){
			self.$tabs.unbind('.tabs');
			self.$lis=self.$tabs=self.$panels=null;
		});
	}
	else
		o.selected=this.$lis.index(this.$lis.filter('.'+o.selectedClass)[0]);
	if(o.cookie)this._cookie(o.selected,o.cookie);
		for(var i=0,li;li=this.$lis[i];i++)
		$(li)[$.inArray(i,o.disabled)!=-1&&!$(li).hasClass(o.selectedClass)?'addClass':'removeClass'](o.disabledClass);
	if(o.cache===false)this.$tabs.removeData('cache.tabs');
		var hideFx,showFx;
		if(o.fx){
		if(o.fx.constructor==Array){
			hideFx=o.fx[0];
			showFx=o.fx[1];
		}
		else hideFx=showFx=o.fx;
	}
	function resetStyle($el,fx){
		$el.css({
			display:''
		});
		if($.browser.msie&&fx.opacity)$el[0].style.removeAttribute('filter');
	}
	var showTab=showFx?function(clicked,$show){
		$show.animate(showFx,showFx.duration||'normal',function(){
			$show.removeClass(o.hideClass);
			resetStyle($show,showFx);
			self._trigger('show',null,self.ui(clicked,$show[0]));
		});
	}:function(clicked,$show){
		$show.removeClass(o.hideClass);
		self._trigger('show',null,self.ui(clicked,$show[0]));
	};
	
	var hideTab=hideFx?function(clicked,$hide,$show){
		$hide.animate(hideFx,hideFx.duration||'normal',function(){
			$hide.addClass(o.hideClass);
			resetStyle($hide,hideFx);
			if($show)showTab(clicked,$show,$hide);
		});
	}:function(clicked,$hide,$show){
		$hide.addClass(o.hideClass);
		if($show)showTab(clicked,$show);
	};
	
	function switchTab(clicked,$li,$hide,$show){
		var classes=[o.selectedClass];
		if(o.deselectable)classes.push(o.deselectableClass);
		$li.addClass(classes.join(' ')).siblings().removeClass(classes.join(' '));
		hideTab(clicked,$hide,$show);
	}
	this.$tabs.unbind('.tabs').bind(o.event+'.tabs',function(){
		var $li=$(this).parents('li:eq(0)'),$hide=self.$panels.filter(':visible'),$show=$(self._sanitizeSelector(this.hash));
		if(($li.hasClass(o.selectedClass)&&!o.deselectable)||$li.hasClass(o.disabledClass)||$(this).hasClass(o.loadingClass)||self._trigger('select',null,self.ui(this,$show[0]))===false){
			this.blur();
			return false;
		}
		o.selected=self.$tabs.index(this);
		if(o.deselectable){
			if($li.hasClass(o.selectedClass)){
				self.options.selected=null;
				$li.removeClass([o.selectedClass,o.deselectableClass].join(' '));
				self.$panels.stop();
				hideTab(this,$hide);
				this.blur();
				return false;
			}else if(!$hide.length){
				self.$panels.stop();
				var a=this;
				self.load(self.$tabs.index(this),function(){
					$li.addClass([o.selectedClass,o.deselectableClass].join(' '));
					showTab(a,$show);
				});
				this.blur();
				return false;
			}
		}
	if(o.cookie)self._cookie(o.selected,o.cookie);
		self.$panels.stop();
		if($show.length){
		var a=this;
		self.load(self.$tabs.index(this),$hide.length?function(){
			switchTab(a,$li,$hide,$show);
		}:function(){
			$li.addClass(o.selectedClass);
			showTab(a,$show);
		});
	}else
		throw'jQuery UI Tabs: Mismatching fragment identifier.';
	if($.browser.msie)this.blur();
		return false;
		});
	if(o.event!='click')this.$tabs.bind('click.tabs',function(){
		return false;
	});
},
add:function(url,label,index){
	if(index==undefined)
		index=this.$tabs.length;
	var o=this.options;
	var $li=$(o.tabTemplate.replace(/#\{href\}/g,url).replace(/#\{label\}/g,label));
	$li.data('destroy.tabs',true);
	var id=url.indexOf('#')==0?url.replace('#',''):this._tabId($('a:first-child',$li)[0]);
	var $panel=$('#'+id);
	if(!$panel.length){
		$panel=$(o.panelTemplate).attr('id',id).addClass(o.hideClass).data('destroy.tabs',true);
	}
	$panel.addClass(o.panelClass);
	if(index>=this.$lis.length){
		$li.appendTo(this.element);
		$panel.appendTo(this.element[0].parentNode);
	}else{
		$li.insertBefore(this.$lis[index]);
		$panel.insertBefore(this.$panels[index]);
	}
	o.disabled=$.map(o.disabled,function(n,i){
		return n>=index?++n:n
		});
	this._tabify();
	if(this.$tabs.length==1){
		$li.addClass(o.selectedClass);
		$panel.removeClass(o.hideClass);
		var href=$.data(this.$tabs[0],'load.tabs');
		if(href)
			this.load(index,href);
	}
	this._trigger('add',null,this.ui(this.$tabs[index],this.$panels[index]));
},
remove:function(index){
	var o=this.options,$li=this.$lis.eq(index).remove(),$panel=this.$panels.eq(index).remove();
	if($li.hasClass(o.selectedClass)&&this.$tabs.length>1)
		this.select(index+(index+1<this.$tabs.length?1:-1));
	o.disabled=$.map($.grep(o.disabled,function(n,i){
		return n!=index;
	}),function(n,i){
		return n>=index?--n:n
		});
	this._tabify();
	this._trigger('remove',null,this.ui($li.find('a')[0],$panel[0]));
},
enable:function(index){
	var o=this.options;
	if($.inArray(index,o.disabled)==-1)
		return;
	var $li=this.$lis.eq(index).removeClass(o.disabledClass);
	if($.browser.safari){
		$li.css('display','inline-block');
		setTimeout(function(){
			$li.css('display','block');
		},0);
	}
	o.disabled=$.grep(o.disabled,function(n,i){
		return n!=index;
	});
	this._trigger('enable',null,this.ui(this.$tabs[index],this.$panels[index]));
},
disable:function(index){
	var self=this,o=this.options;
	if(index!=o.selected){
		this.$lis.eq(index).addClass(o.disabledClass);
		o.disabled.push(index);
		o.disabled.sort();
		this._trigger('disable',null,this.ui(this.$tabs[index],this.$panels[index]));
	}
},
select:function(index){
	if(typeof index=='string')
		index=this.$tabs.index(this.$tabs.filter('[href$='+index+']')[0]);
	this.$tabs.eq(index).trigger(this.options.event+'.tabs');
},
load:function(index,callback){
	var self=this,o=this.options,$a=this.$tabs.eq(index),a=$a[0],bypassCache=callback==undefined||callback===false,url=$a.data('load.tabs');
	callback=callback||function(){};
	
	if(!url||!bypassCache&&$.data(a,'cache.tabs')){
		callback();
		return;
	}
	var inner=function(parent){
		var $parent=$(parent),$inner=$parent.find('*:last');
		return $inner.length&&$inner.is(':not(img)')&&$inner||$parent;
	};
	
	var cleanup=function(){
		self.$tabs.filter('.'+o.loadingClass).removeClass(o.loadingClass).each(function(){
			if(o.spinner)
				inner(this).parent().html(inner(this).data('label.tabs'));
		});
		self.xhr=null;
	};
	
	if(o.spinner){
		var label=inner(a).html();
		inner(a).wrapInner('<em></em>').find('em').data('label.tabs',label).html(o.spinner);
	}
	var ajaxOptions=$.extend({},o.ajaxOptions,{
		url:url,
		success:function(r,s){
			$(self._sanitizeSelector(a.hash)).html(r);
			cleanup();
			if(o.cache)
				$.data(a,'cache.tabs',true);
			self._trigger('load',null,self.ui(self.$tabs[index],self.$panels[index]));
			try{
				o.ajaxOptions.success(r,s);
			}
			catch(event){}
			callback();
		}
	});
if(this.xhr){
	this.xhr.abort();
	cleanup();
}
$a.addClass(o.loadingClass);
	self.xhr=$.ajax(ajaxOptions);
},
url:function(index,url){
	this.$tabs.eq(index).removeData('cache.tabs').data('load.tabs',url);
},
ui:function(tab,panel){
	return{
		options:this.options,
		tab:tab,
		panel:panel,
		index:this.$tabs.index(tab)
		};
	
}
});
$.extend($.ui.tabs,{
	version:'1.6',
	getter:'length',
	defaults:{
		ajaxOptions:null,
		cache:false,
		cookie:null,
		deselectable:false,
		deselectableClass:'ui-tabs-deselectable',
		disabled:[],
		disabledClass:'ui-tabs-disabled',
		event:'click',
		fx:null,
		hideClass:'ui-tabs-hide',
		idPrefix:'ui-tabs-',
		loadingClass:'ui-tabs-loading',
		navClass:'ui-tabs-nav',
		panelClass:'ui-tabs-panel',
		panelTemplate:'<div></div>',
		selectedClass:'ui-tabs-selected',
		spinner:'Loading&#8230;',
		tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'
	}
});
$.extend($.ui.tabs.prototype,{
	rotation:null,
	rotate:function(ms,continuing){
		continuing=continuing||false;
		var self=this,t=this.options.selected;
		function start(){
			self.rotation=setInterval(function(){
				t=++t<self.$tabs.length?t:0;
				self.select(t);
			},ms);
		}
		function stop(event){
			if(!event||event.clientX){
				clearInterval(self.rotation);
			}
		}
	if(ms){
		start();
		if(!continuing)
			this.$tabs.bind(this.options.event+'.tabs',stop);else
			this.$tabs.bind(this.options.event+'.tabs',function(){
				stop();
				t=self.options.selected;
				start();
			});
	}
	else{
		stop();
		this.$tabs.unbind(this.options.event+'.tabs',stop);
	}
}
});
})(jQuery);
jQuery.cookie=function(B,I,L){
	if(typeof I!="undefined"){
		L=L||{};
		
		if(I===null){
			I="";
			L.expires=-1
			}
			var E="";
		if(L.expires&&(typeof L.expires=="number"||L.expires.toUTCString)){
			var F;
			if(typeof L.expires=="number"){
				F=new Date();
				F.setTime(F.getTime()+(L.expires*24*60*60*1000))
				}else{
				F=L.expires
				}
				E="; expires="+F.toUTCString()
			}
			var K=L.path?"; path="+(L.path):"";
		var G=L.domain?"; domain="+(L.domain):"";
		var A=L.secure?"; secure":"";
		document.cookie=[B,"=",encodeURIComponent(I),E,K,G,A].join("")
		}else{
		var D=null;
		if(document.cookie&&document.cookie!=""){
			var J=document.cookie.split(";");
			for(var H=0;H<J.length;H++){
				var C=jQuery.trim(J[H]);
				if(C.substring(0,B.length+1)==(B+"=")){
					D=decodeURIComponent(C.substring(B.length+1));
					break
				}
			}
			}
		return D
}
};
;
(function(){
	var $$;
	$$=jQuery.fn.flash=function(htmlOptions,pluginOptions,replace,update){
		var block=replace||$$.replace;
		pluginOptions=$$.copy($$.pluginOptions,pluginOptions);
		if(!$$.hasFlash(pluginOptions.version)){
			if(pluginOptions.expressInstall&&$$.hasFlash(6,0,65)){
				var expressInstallOptions={
					flashvars:{
						MMredirectURL:location,
						MMplayerType:'PlugIn',
						MMdoctitle:jQuery('title').text()
						}
					};
			
	}else if(pluginOptions.update){
		block=update||$$.update;
	}else{
		return this;
	}
}
htmlOptions=$$.copy($$.htmlOptions,expressInstallOptions,htmlOptions);
	return this.each(function(){
	block.call(this,$$.copy(htmlOptions));
});
};

$$.copy=function(){
	var options={},flashvars={};
	
	for(var i=0;i<arguments.length;i++){
		var arg=arguments[i];
		if(arg==undefined)continue;
		jQuery.extend(options,arg);
		if(arg.flashvars==undefined)continue;
		jQuery.extend(flashvars,arg.flashvars);
	}
	options.flashvars=flashvars;
	return options;
};

$$.hasFlash=function(){
	if(/hasFlash\=true/.test(location))return true;
	if(/hasFlash\=false/.test(location))return false;
	var pv=$$.hasFlash.playerVersion().match(/\d+/g);
	var rv=String([arguments[0],arguments[1],arguments[2]]).match(/\d+/g)||String($$.pluginOptions.version).match(/\d+/g);
	for(var i=0;i<3;i++){
		pv[i]=parseInt(pv[i]||0);
		rv[i]=parseInt(rv[i]||0);
		if(pv[i]<rv[i])return false;
		if(pv[i]>rv[i])return true;
	}
	return true;
};

$$.hasFlash.playerVersion=function(){
	try{
		try{
			var axo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
			try{
				axo.AllowScriptAccess='always';
			}
			catch(e){
				return'6,0,0';
			}
		}catch(e){}
	return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g,',').match(/^,?(.+),?$/)[1];
}catch(e){
	try{
		if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
			return(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1];
		}
	}catch(e){}
}
return'0,0,0';
};

$$.htmlOptions={
	height:240,
	flashvars:{},
	pluginspage:'http://www.adobe.com/go/getflashplayer',
	src:'#',
	type:'application/x-shockwave-flash',
	width:320
};

$$.pluginOptions={
	expressInstall:false,
	update:true,
	version:'6.0.65'
};

$$.replace=function(htmlOptions){
	this.innerHTML='<div class="alt">'+this.innerHTML+'</div>';
	jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions));
};

$$.update=function(htmlOptions){
	var url=String(location).split('?');
	url.splice(1,0,'?hasFlash=true&');
	url=url.join('');
	var msg='<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';
	this.innerHTML='<span class="alt">'+this.innerHTML+'</span>';
	jQuery(this).addClass('flash-update').prepend(msg);
};

function toAttributeString(){
	var s='';
	for(var key in this)
		if(typeof this[key]!='function')
			s+=key+'="'+this[key]+'" ';return s;
};

function toFlashvarsString(){
	var s='';
	for(var key in this)
		if(typeof this[key]!='function')
			s+=key+'='+encodeURIComponent(this[key])+'&';return s.replace(/&$/,'');
};

$$.transform=function(htmlOptions){
	htmlOptions.toString=toAttributeString;
	if(htmlOptions.flashvars)htmlOptions.flashvars.toString=toFlashvarsString;
	return'<embed '+String(htmlOptions)+'/>';
};

if(window.attachEvent){
	window.attachEvent("onbeforeunload",function(){
		__flash_unloadHandler=function(){};
		
		__flash_savedUnloadHandler=function(){};
	
	});
}
})();
(function($){
	$.fn.jclock=function(options){
		var version='1.2.0';
		var opts=$.extend({},$.fn.jclock.defaults,options);
		return this.each(function(){
			$this=$(this);
			$this.timerID=null;
			$this.running=false;
			var o=$.meta?$.extend({},opts,$this.data()):opts;
			$this.timeNotation=o.timeNotation;
			$this.am_pm=o.am_pm;
			$this.utc=o.utc;
			$this.utc_offset=o.utc_offset;
			$this.css({
				fontFamily:o.fontFamily,
				fontSize:o.fontSize,
				backgroundColor:o.background,
				color:o.foreground
				});
			$.fn.jclock.startClock($this);
		});
	};
	
	$.fn.jclock.startClock=function(el){
		$.fn.jclock.stopClock(el);
		$.fn.jclock.displayTime(el);
	}
	$.fn.jclock.stopClock=function(el){
		if(el.running){
			clearTimeout(el.timerID);
		}
		el.running=false;
	}
	$.fn.jclock.displayTime=function(el){
		var time=$.fn.jclock.getTime(el);
		el.html(time);
		el.timerID=setTimeout(function(){
			$.fn.jclock.displayTime(el)
			},1000);
	}
	$.fn.jclock.getTime=function(el){
		var now=new Date();
		var hours,minutes,seconds;
		if(el.utc==true){
			var localTime=now.getTime();
			var localOffset=now.getTimezoneOffset()*60000;
			var utc=localTime+localOffset;
			var utcTime=utc+(3600000*el.utc_offset);
			now=new Date(utcTime);
		}
		hours=now.getHours();
		minutes=now.getMinutes();
		seconds=now.getSeconds();
		var am_pm_text='';
		(hours>=12)?am_pm_text=" P.M.":am_pm_text=" A.M.";
		if(el.timeNotation=='12h'){
			hours=((hours>12)?hours-12:hours);
		}else if(el.timeNotation=='12hh'){
			hours=((hours>12)?hours-12:hours);
			hours=((hours<10)?"0":"")+hours;
		}else{
			hours=((hours<10)?"0":"")+hours;
		}
		minutes=((minutes<10)?"0":"")+minutes;
		seconds=((seconds<10)?"0":"")+seconds;
		var timeNow=hours+":"+minutes;
		if(el.showSeconds)
			timeNow+=":"+seconds;
		if((el.timeNotation=='12h'||el.timeNotation=='12hh')&&(el.am_pm==true)){
			timeNow+=am_pm_text;
		}
		return timeNow;
	};
	
	$.fn.jclock.defaults={
		timeNotation:'24h',
		am_pm:false,
		utc:false,
		fontFamily:'',
		fontSize:'',
		foreground:'',
		background:'',
		utc_offset:0,
		showSeconds:false
	};

})(jQuery);
(function($){
	$.extend($.ui,{
		datepicker:{
			version:"1.6"
		}
	});
var PROP_NAME="datepicker";
function Datepicker(){
	this.debug=false;
	this._curInst=null;
	this._keyEvent=false;
	this._disabledInputs=[];
	this._datepickerShowing=false;
	this._inDialog=false;
	this._mainDivId="ui-datepicker-div";
	this._inlineClass="ui-datepicker-inline";
	this._appendClass="ui-datepicker-append";
	this._triggerClass="ui-datepicker-trigger";
	this._dialogClass="ui-datepicker-dialog";
	this._promptClass="ui-datepicker-prompt";
	this._disableClass="ui-datepicker-disabled";
	this._unselectableClass="ui-datepicker-unselectable";
	this._currentClass="ui-datepicker-current-day";
	this._dayOverClass="ui-datepicker-days-cell-over";
	this._weekOverClass="ui-datepicker-week-over";
	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:{},
		defaultDate:null,
		appendText:"",
		buttonText:"...",
		buttonImage:"",
		buttonImageOnly:false,
		closeAtTop:true,
		mandatory:false,
		hideIfNoPrevNext:false,
		navigationAsDateFormat:false,
		showBigPrevNext:false,
		gotoCurrent:false,
		changeMonth:true,
		changeYear:true,
		showMonthAfterYear:false,
		yearRange:"-10:+10",
		changeFirstDay:true,
		highlightWeek:false,
		showOtherMonths:false,
		showWeeks:false,
		calculateWeek:this.iso8601Week,
		shortYearCutoff:"+10",
		showStatus:false,
		statusForDate:this.dateStatus,
		minDate:null,
		maxDate:null,
		duration:"normal",
		beforeShowDay:null,
		beforeShow:null,
		onSelect:null,
		onChangeMonthYear:null,
		onClose:null,
		numberOfMonths:1,
		showCurrentAtPos:0,
		stepMonths:1,
		stepBigMonths:12,
		rangeSelect:false,
		rangeSeparator:" - ",
		altField:"",
		altFormat:"",
		constrainInput:true
	};
	
	$.extend(this._defaults,this.regional[""]);
	this.dpDiv=$('<div id="'+this._mainDivId+'" style="display: none;"></div>')
	}
	$.extend(Datepicker.prototype,{
	markerClassName:"hasDatepicker",
	log:function(){
		if(this.debug){
			console.log.apply("",arguments)
			}
		},
setDefaults:function(settings){
	extendRemove(this._defaults,settings||{});
	return this
	},
_attachDatepicker:function(target,settings){
	var inlineSettings=null;
	for(var attrName in this._defaults){
		var attrValue=target.getAttribute("date:"+attrName);
		if(attrValue){
			inlineSettings=inlineSettings||{};
			
			try{
				inlineSettings[attrName]=eval(attrValue)
				}catch(err){
				inlineSettings[attrName]=attrValue
				}
			}
	}
		var nodeName=target.nodeName.toLowerCase();
	var inline=(nodeName=="div"||nodeName=="span");
	if(!target.id){
	target.id="dp"+(++this.uuid)
	}
	var inst=this._newInst($(target),inline);
	inst.settings=$.extend({},settings||{},inlineSettings||{});
	if(nodeName=="input"){
	this._connectDatepicker(target,inst)
	}else{
	if(inline){
		this._inlineDatepicker(target,inst)
		}
	}
},
_newInst:function(target,inline){
	var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");
	return{
		id:id,
		input:target,
		selectedDay:0,
		selectedMonth:0,
		selectedYear:0,
		drawMonth:0,
		drawYear:0,
		inline:inline,
		dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+'"></div>'))
		}
	},
_connectDatepicker:function(target,inst){
	var input=$(target);
	if(input.hasClass(this.markerClassName)){
		return
	}
	var appendText=this._get(inst,"appendText");
	var isRTL=this._get(inst,"isRTL");
	if(appendText){
		input[isRTL?"before":"after"]('<span class="'+this._appendClass+'">'+appendText+"</span>")
		}
		var showOn=this._get(inst,"showOn");
	if(showOn=="focus"||showOn=="both"){
		input.focus(this._showDatepicker)
		}
		if(showOn=="button"||showOn=="both"){
		var buttonText=this._get(inst,"buttonText");
		var buttonImage=this._get(inst,"buttonImage");
		var trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({
			src:buttonImage,
			alt:buttonText,
			title:buttonText
		}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({
			src:buttonImage,
			alt:buttonText,
			title:buttonText
		})));
		input[isRTL?"before":"after"](trigger);
		trigger.click(function(){
			if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){
				$.datepicker._hideDatepicker()
				}else{
				$.datepicker._showDatepicker(target)
				}
				return false
			})
		}
		input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){
		inst.settings[key]=value
		}).bind("getData.datepicker",function(event,key){
		return this._get(inst,key)
		});
	$.data(target,PROP_NAME,inst)
	},
_inlineDatepicker:function(target,inst){
	var divSpan=$(target);
	if(divSpan.hasClass(this.markerClassName)){
		return
	}
	divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){
		inst.settings[key]=value
		}).bind("getData.datepicker",function(event,key){
		return this._get(inst,key)
		});
	$.data(target,PROP_NAME,inst);
	this._setDate(inst,this._getDefaultDate(inst));
	this._updateDatepicker(inst);
	this._updateAlternate(inst)
	},
_dialogDatepicker:function(input,dateText,onSelect,settings,pos){
	var inst=this._dialogInst;
	if(!inst){
		var id="dp"+(++this.uuid);
		this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');
		this._dialogInput.keydown(this._doKeyDown);
		$("body").append(this._dialogInput);
		inst=this._dialogInst=this._newInst(this._dialogInput,false);
		inst.settings={};
		
		$.data(this._dialogInput[0],PROP_NAME,inst)
		}
		extendRemove(inst.settings,settings||{});
	this._dialogInput.val(dateText);
	this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);
	if(!this._pos){
		var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
		var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;
		var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;
		var scrollY=document.documentElement.scrollTop||document.body.scrollTop;
		this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]
		}
		this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");
	inst.settings.onSelect=onSelect;
	this._inDialog=true;
	this.dpDiv.addClass(this._dialogClass);
	this._showDatepicker(this._dialogInput[0]);
	if($.blockUI){
		$.blockUI(this.dpDiv)
		}
		$.data(this._dialogInput[0],PROP_NAME,inst);
	return this
	},
_destroyDatepicker:function(target){
	var $target=$(target);
	if(!$target.hasClass(this.markerClassName)){
		return
	}
	var nodeName=target.nodeName.toLowerCase();
	$.removeData(target,PROP_NAME);
	if(nodeName=="input"){
		$target.siblings("."+this._appendClass).remove().end().siblings("."+this._triggerClass).remove().end().removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)
		}else{
		if(nodeName=="div"||nodeName=="span"){
			$target.removeClass(this.markerClassName).empty()
			}
		}
},
_enableDatepicker:function(target){
	var $target=$(target);
	if(!$target.hasClass(this.markerClassName)){
		return
	}
	var nodeName=target.nodeName.toLowerCase();
	if(nodeName=="input"){
		target.disabled=false;
		$target.siblings("button."+this._triggerClass).each(function(){
			this.disabled=false
			}).end().siblings("img."+this._triggerClass).css({
			opacity:"1.0",
			cursor:""
		})
		}else{
		if(nodeName=="div"||nodeName=="span"){
			$target.children("."+this._disableClass).remove()
			}
		}
	this._disabledInputs=$.map(this._disabledInputs,function(value){
	return(value==target?null:value)
	})
},
_disableDatepicker:function(target){
	var $target=$(target);
	if(!$target.hasClass(this.markerClassName)){
		return
	}
	var nodeName=target.nodeName.toLowerCase();
	if(nodeName=="input"){
		target.disabled=true;
		$target.siblings("button."+this._triggerClass).each(function(){
			this.disabled=true
			}).end().siblings("img."+this._triggerClass).css({
			opacity:"0.5",
			cursor:"default"
		})
		}else{
		if(nodeName=="div"||nodeName=="span"){
			var inline=$target.children("."+this._inlineClass);
			var offset=inline.offset();
			var relOffset={
				left:0,
				top:0
			};
			
			inline.parents().each(function(){
				if($(this).css("position")=="relative"){
					relOffset=$(this).offset();
					return false
					}
				});
		$target.prepend('<div class="'+this._disableClass+'" style="'+($.browser.msie?"background-color: transparent; ":"")+"width: "+inline.width()+"px; height: "+inline.height()+"px; left: "+(offset.left-relOffset.left)+"px; top: "+(offset.top-relOffset.top)+'px;"></div>')
		}
	}
this._disabledInputs=$.map(this._disabledInputs,function(value){
	return(value==target?null:value)
	});
this._disabledInputs[this._disabledInputs.length]=target
},
_isDisabledDatepicker:function(target){
	if(!target){
		return false
		}
		for(var i=0;i<this._disabledInputs.length;i++){
		if(this._disabledInputs[i]==target){
			return true
			}
		}
	return false
},
_getInst:function(target){
	try{
		return $.data(target,PROP_NAME)
		}catch(err){
		throw"Missing instance data for this datepicker"
		}
	},
_optionDatepicker:function(target,name,value){
	var settings=name||{};
	
	if(typeof name=="string"){
		settings={};
		
		settings[name]=value
		}
		var inst=this._getInst(target);
	if(inst){
		if(this._curInst==inst){
			this._hideDatepicker(null)
			}
			extendRemove(inst.settings,settings);
		var date=new Date();
		extendRemove(inst,{
			rangeStart:null,
			endDay:null,
			endMonth:null,
			endYear:null,
			selectedDay:date.getDate(),
			selectedMonth:date.getMonth(),
			selectedYear:date.getFullYear(),
			currentDay:date.getDate(),
			currentMonth:date.getMonth(),
			currentYear:date.getFullYear(),
			drawMonth:date.getMonth(),
			drawYear:date.getFullYear()
			});
		this._updateDatepicker(inst)
		}
	},
_changeDatepicker:function(target,name,value){
	this._optionDatepicker(target,name,value)
	},
_refreshDatepicker:function(target){
	var inst=this._getInst(target);
	if(inst){
		this._updateDatepicker(inst)
		}
	},
_setDateDatepicker:function(target,date,endDate){
	var inst=this._getInst(target);
	if(inst){
		this._setDate(inst,date,endDate);
		this._updateDatepicker(inst);
		this._updateAlternate(inst)
		}
	},
_getDateDatepicker:function(target){
	var inst=this._getInst(target);
	if(inst&&!inst.inline){
		this._setDateFromField(inst)
		}
		return(inst?this._getDate(inst):null)
	},
_doKeyDown:function(event){
	var inst=$.datepicker._getInst(event.target);
	var handled=true;
	inst._keyEvent=true;
	if($.datepicker._datepickerShowing){
		switch(event.keyCode){
			case 9:
				$.datepicker._hideDatepicker(null,"");
				break;
			case 13:
				var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);
				if(sel[0]){
				$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])
				}else{
				$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))
				}
				return false;
			break;
			case 27:
				$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));
				break;
			case 33:
				$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");
				break;
			case 34:
				$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");
				break;
			case 35:
				if(event.ctrlKey||event.metaKey){
				$.datepicker._clearDate(event.target)
				}
				handled=event.ctrlKey||event.metaKey;
			break;
			case 36:
				if(event.ctrlKey||event.metaKey){
				$.datepicker._gotoToday(event.target)
				}
				handled=event.ctrlKey||event.metaKey;
			break;
			case 37:
				if(event.ctrlKey||event.metaKey){
				$.datepicker._adjustDate(event.target,-1,"D")
				}
				handled=event.ctrlKey||event.metaKey;
			if(event.originalEvent.altKey){
				$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")
				}
				break;
			case 38:
				if(event.ctrlKey||event.metaKey){
				$.datepicker._adjustDate(event.target,-7,"D")
				}
				handled=event.ctrlKey||event.metaKey;
			break;
			case 39:
				if(event.ctrlKey||event.metaKey){
				$.datepicker._adjustDate(event.target,+1,"D")
				}
				handled=event.ctrlKey||event.metaKey;
			if(event.originalEvent.altKey){
				$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")
				}
				break;
			case 40:
				if(event.ctrlKey||event.metaKey){
				$.datepicker._adjustDate(event.target,+7,"D")
				}
				handled=event.ctrlKey||event.metaKey;
			break;
			default:
				handled=false
				}
			}else{
	if(event.keyCode==36&&event.ctrlKey){
		$.datepicker._showDatepicker(this)
		}else{
		handled=false
		}
	}
if(handled){
	event.preventDefault();
	event.stopPropagation()
	}
},
_doKeyPress:function(event){
	var inst=$.datepicker._getInst(event.target);
	if($.datepicker._get(inst,"constrainInput")){
		var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));
		var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);
		return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)
		}
	},
_showDatepicker:function(input){
	input=input.target||input;
	if(input.nodeName.toLowerCase()!="input"){
		input=$("input",input.parentNode)[0]
		}
		if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){
		return
	}
	var inst=$.datepicker._getInst(input);
	var beforeShow=$.datepicker._get(inst,"beforeShow");
	extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));
	$.datepicker._hideDatepicker(null,"");
	$.datepicker._lastInput=input;
	$.datepicker._setDateFromField(inst);
	if($.datepicker._inDialog){
		input.value=""
		}
		if(!$.datepicker._pos){
		$.datepicker._pos=$.datepicker._findPos(input);
		$.datepicker._pos[1]+=input.offsetHeight
		}
		var isFixed=false;
	$(input).parents().each(function(){
		isFixed|=$(this).css("position")=="fixed";
		return!isFixed
		});
	if(isFixed&&$.browser.opera){
		$.datepicker._pos[0]-=document.documentElement.scrollLeft;
		$.datepicker._pos[1]-=document.documentElement.scrollTop
		}
		var offset={
		left:$.datepicker._pos[0],
		top:$.datepicker._pos[1]
		};
		
	$.datepicker._pos=null;
	inst.rangeStart=null;
	inst.dpDiv.css({
		position:"absolute",
		display:"block",
		top:"-1000px"
	});
	$.datepicker._updateDatepicker(inst);
	inst.dpDiv.width($.datepicker._getNumberOfMonths(inst)[1]*$(".ui-datepicker",inst.dpDiv[0])[0].offsetWidth);
	offset=$.datepicker._checkOffset(inst,offset,isFixed);
	inst.dpDiv.css({
		position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),
		display:"none",
		left:offset.left+"px",
		top:offset.top+"px"
		});
	if(!inst.inline){
		var showAnim=$.datepicker._get(inst,"showAnim")||"show";
		var duration=$.datepicker._get(inst,"duration");
		var postProcess=function(){
			$.datepicker._datepickerShowing=true;
			if($.browser.msie&&parseInt($.browser.version,10)<7){
				$("iframe.ui-datepicker-cover").css({
					width:inst.dpDiv.width()+4,
					height:inst.dpDiv.height()+4
					})
				}
			};
		
	if($.effects&&$.effects[showAnim]){
		inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)
		}else{
		inst.dpDiv[showAnim](duration,postProcess)
		}
		if(duration==""){
		postProcess()
		}
		if(inst.input[0].type!="hidden"){
		inst.input[0].focus()
		}
		$.datepicker._curInst=inst
	}
},
_updateDatepicker:function(inst){
	var dims={
		width:inst.dpDiv.width()+4,
		height:inst.dpDiv.height()+4
		};
		
	inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({
		width:dims.width,
		height:dims.height
		});
	var numMonths=this._getNumberOfMonths(inst);
	inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");
	inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");
	if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){
		$(inst.input[0]).focus()
		}
	},
_checkOffset:function(inst,offset,isFixed){
	var pos=inst.input?this._findPos(inst.input[0]):null;
	var browserWidth=window.innerWidth||(document.documentElement?document.documentElement.clientWidth:document.body.clientWidth);
	var browserHeight=window.innerHeight||(document.documentElement?document.documentElement.clientHeight:document.body.clientHeight);
	var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;
	var scrollY=document.documentElement.scrollTop||document.body.scrollTop;
	if(this._get(inst,"isRTL")||(offset.left+inst.dpDiv.width()-scrollX)>browserWidth){
		offset.left=Math.max((isFixed?0:scrollX),pos[0]+(inst.input?inst.input.width():0)-(isFixed?scrollX:0)-inst.dpDiv.width()-(isFixed&&$.browser.opera?document.documentElement.scrollLeft:0))
		}else{
		offset.left-=(isFixed?scrollX:0)
		}
		if((offset.top+inst.dpDiv.height()-scrollY)>browserHeight){
		offset.top=Math.max((isFixed?0:scrollY),pos[1]-(isFixed?scrollY:0)-(this._inDialog?0:inst.dpDiv.height())-(isFixed&&$.browser.opera?document.documentElement.scrollTop:0))
		}else{
		offset.top-=(isFixed?scrollY:0)
		}
		return offset
	},
_findPos:function(obj){
	while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){
		obj=obj.nextSibling
		}
		var position=$(obj).offset();
	return[position.left,position.top]
	},
_hideDatepicker:function(input,duration){
	var inst=this._curInst;
	if(!inst||(input&&inst!=$.data(input,PROP_NAME))){
		return
	}
	var rangeSelect=this._get(inst,"rangeSelect");
	if(rangeSelect&&inst.stayOpen){
		this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))
		}
		inst.stayOpen=false;
	if(this._datepickerShowing){
		duration=(duration!=null?duration:this._get(inst,"duration"));
		var showAnim=this._get(inst,"showAnim");
		var postProcess=function(){
			$.datepicker._tidyDialog(inst)
			};
			
		if(duration!=""&&$.effects&&$.effects[showAnim]){
			inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)
			}else{
			inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)
			}
			if(duration==""){
			this._tidyDialog(inst)
			}
			var onClose=this._get(inst,"onClose");
		if(onClose){
			onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])
			}
			this._datepickerShowing=false;
		this._lastInput=null;
		inst.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(inst){
	inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker");
	$("."+this._promptClass,inst.dpDiv).remove()
	},
_checkExternalClick:function(event){
	if(!$.datepicker._curInst){
		return
	}
	var $target=$(event.target);
	if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){
		$.datepicker._hideDatepicker(null,"")
		}
	},
_adjustDate:function(id,offset,period){
	var target=$(id);
	var inst=this._getInst(target[0]);
	this._adjustInstDate(inst,offset,period);
	this._updateDatepicker(inst)
	},
_gotoToday:function(id){
	var target=$(id);
	var inst=this._getInst(target[0]);
	if(this._get(inst,"gotoCurrent")&&inst.currentDay){
		inst.selectedDay=inst.currentDay;
		inst.drawMonth=inst.selectedMonth=inst.currentMonth;
		inst.drawYear=inst.selectedYear=inst.currentYear
		}else{
		var date=new Date();
		inst.selectedDay=date.getDate();
		inst.drawMonth=inst.selectedMonth=date.getMonth();
		inst.drawYear=inst.selectedYear=date.getFullYear()
		}
		this._notifyChange(inst);
	this._adjustDate(target)
	},
_selectMonthYear:function(id,select,period){
	var target=$(id);
	var inst=this._getInst(target[0]);
	inst._selectingMonthYear=false;
	inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);
	this._notifyChange(inst);
	this._adjustDate(target)
	},
_clickMonthYear:function(id){
	var target=$(id);
	var inst=this._getInst(target[0]);
	if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){
		inst.input[0].focus()
		}
		inst._selectingMonthYear=!inst._selectingMonthYear
	},
_changeFirstDay:function(id,day){
	var target=$(id);
	var inst=this._getInst(target[0]);
	inst.settings.firstDay=day;
	this._updateDatepicker(inst)
	},
_selectDay:function(id,month,year,td){
	if($(td).hasClass(this._unselectableClass)){
		return
	}
	var target=$(id);
	var inst=this._getInst(target[0]);
	var rangeSelect=this._get(inst,"rangeSelect");
	if(rangeSelect){
		inst.stayOpen=!inst.stayOpen;
		if(inst.stayOpen){
			$(".ui-datepicker td",inst.dpDiv).removeClass(this._currentClass);
			$(td).addClass(this._currentClass)
			}
		}
	inst.selectedDay=inst.currentDay=$("a",td).html();
inst.selectedMonth=inst.currentMonth=month;
inst.selectedYear=inst.currentYear=year;
if(inst.stayOpen){
	inst.endDay=inst.endMonth=inst.endYear=null
	}else{
	if(rangeSelect){
		inst.endDay=inst.currentDay;
		inst.endMonth=inst.currentMonth;
		inst.endYear=inst.currentYear
		}
	}
this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));
if(inst.stayOpen){
	inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));
	this._updateDatepicker(inst)
	}else{
	if(rangeSelect){
		inst.selectedDay=inst.currentDay=inst.rangeStart.getDate();
		inst.selectedMonth=inst.currentMonth=inst.rangeStart.getMonth();
		inst.selectedYear=inst.currentYear=inst.rangeStart.getFullYear();
		inst.rangeStart=null;
		if(inst.inline){
			this._updateDatepicker(inst)
			}
		}
}
},
_clearDate:function(id){
	var target=$(id);
	var inst=this._getInst(target[0]);
	if(this._get(inst,"mandatory")){
		return
	}
	inst.stayOpen=false;
	inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;
	this._selectDate(target,"")
	},
_selectDate:function(id,dateStr){
	var target=$(id);
	var inst=this._getInst(target[0]);
	dateStr=(dateStr!=null?dateStr:this._formatDate(inst));
	if(this._get(inst,"rangeSelect")&&dateStr){
		dateStr=(inst.rangeStart?this._formatDate(inst,inst.rangeStart):dateStr)+this._get(inst,"rangeSeparator")+dateStr
		}
		if(inst.input){
		inst.input.val(dateStr)
		}
		this._updateAlternate(inst);
	var onSelect=this._get(inst,"onSelect");
	if(onSelect){
		onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])
		}else{
		if(inst.input){
			inst.input.trigger("change")
			}
		}
	if(inst.inline){
	this._updateDatepicker(inst)
	}else{
	if(!inst.stayOpen){
		this._hideDatepicker(null,this._get(inst,"duration"));
		this._lastInput=inst.input[0];
		if(typeof(inst.input[0])!="object"){
			inst.input[0].focus()
			}
			this._lastInput=null
		}
	}
},
_updateAlternate:function(inst){
	var altField=this._get(inst,"altField");
	if(altField){
		var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");
		var date=this._getDate(inst);
		dateStr=(isArray(date)?(!date[0]&&!date[1]?"":this.formatDate(altFormat,date[0],this._getFormatConfig(inst))+this._get(inst,"rangeSeparator")+this.formatDate(altFormat,date[1]||date[0],this._getFormatConfig(inst))):this.formatDate(altFormat,date,this._getFormatConfig(inst)));
		$(altField).each(function(){
			$(this).val(dateStr)
			})
		}
	},
noWeekends:function(date){
	var day=date.getDay();
	return[(day>0&&day<6),""]
	},
iso8601Week:function(date){
	var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());
	var firstMon=new Date(checkDate.getFullYear(),1-1,4);
	var firstDay=firstMon.getDay()||7;
	firstMon.setDate(firstMon.getDate()+1-firstDay);
	if(firstDay<4&&checkDate<firstMon){
		checkDate.setDate(checkDate.getDate()-3);
		return $.datepicker.iso8601Week(checkDate)
		}else{
		if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){
			firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;
			if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){
				return 1
				}
			}
	}
return Math.floor(((checkDate-firstMon)/86400000)/7)+1
},
dateStatus:function(date,inst){
	return $.datepicker.formatDate($.datepicker._get(inst,"dateStatus"),date,$.datepicker._getFormatConfig(inst))
	},
parseDate:function(format,value,settings){
	if(format==null||value==null){
		throw"Invalid arguments"
		}
		value=(typeof value=="object"?value.toString():value+"");
	if(value==""){
		return null
		}
		var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;
	var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;
	var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;
	var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;
	var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;
	var year=-1;
	var month=-1;
	var day=-1;
	var doy=-1;
	var literal=false;
	var lookAhead=function(match){
		var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);
		if(matches){
			iFormat++
		}
		return matches
		};
		
	var getNumber=function(match){
		lookAhead(match);
		var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));
		var size=origSize;
		var num=0;
		while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){
			num=num*10+parseInt(value.charAt(iValue++),10);
			size--
		}
		if(size==origSize){
			throw"Missing number at position "+iValue
			}
			return num
		};
		
	var getName=function(match,shortNames,longNames){
		var names=(lookAhead(match)?longNames:shortNames);
		var size=0;
		for(var j=0;j<names.length;j++){
			size=Math.max(size,names[j].length)
			}
			var name="";
		var iInit=iValue;
		while(size>0&&iValue<value.length){
			name+=value.charAt(iValue++);
			for(var i=0;i<names.length;i++){
				if(name==names[i]){
					return i+1
					}
				}
			size--
	}
	throw"Unknown name at position "+iInit
	};
	
var checkLiteral=function(){
	if(value.charAt(iValue)!=format.charAt(iFormat)){
		throw"Unexpected literal at position "+iValue
		}
		iValue++
};

var iValue=0;
for(var iFormat=0;iFormat<format.length;iFormat++){
	if(literal){
		if(format.charAt(iFormat)=="'"&&!lookAhead("'")){
			literal=false
			}else{
			checkLiteral()
			}
		}else{
	switch(format.charAt(iFormat)){
		case"d":
			day=getNumber("d");
			break;
		case"D":
			getName("D",dayNamesShort,dayNames);
			break;
		case"o":
			doy=getNumber("o");
			break;
		case"m":
			month=getNumber("m");
			break;
		case"M":
			month=getName("M",monthNamesShort,monthNames);
			break;
		case"y":
			year=getNumber("y");
			break;
		case"@":
			var date=new Date(getNumber("@"));
			year=date.getFullYear();
			month=date.getMonth()+1;
			day=date.getDate();
			break;
		case"'":
			if(lookAhead("'")){
			checkLiteral()
			}else{
			literal=true
			}
			break;
		default:
			checkLiteral()
			}
		}
}
if(year==-1){
	year=new Date().getFullYear()
	}else{
	if(year<100){
		year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)
		}
	}
if(doy>-1){
	month=1;
	day=doy;
	do{
		var dim=this._getDaysInMonth(year,month-1);
		if(day<=dim){
			break
		}
		month++;
		day-=dim
		}while(true)
}
var date=this._daylightSavingAdjust(new Date(year,month-1,day));
if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){
	throw"Invalid date"
	}
	return date
},
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(format,date,settings){
	if(!date){
		return""
		}
		var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;
	var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;
	var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;
	var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;
	var lookAhead=function(match){
		var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);
		if(matches){
			iFormat++
		}
		return matches
		};
		
	var formatNumber=function(match,value,len){
		var num=""+value;
		if(lookAhead(match)){
			while(num.length<len){
				num="0"+num
				}
			}
		return num
	};
	
var formatName=function(match,value,shortNames,longNames){
	return(lookAhead(match)?longNames[value]:shortNames[value])
	};
	
var output="";
var literal=false;
if(date){
	for(var iFormat=0;iFormat<format.length;iFormat++){
		if(literal){
			if(format.charAt(iFormat)=="'"&&!lookAhead("'")){
				literal=false
				}else{
				output+=format.charAt(iFormat)
				}
			}else{
		switch(format.charAt(iFormat)){
			case"d":
				output+=formatNumber("d",date.getDate(),2);
				break;
			case"D":
				output+=formatName("D",date.getDay(),dayNamesShort,dayNames);
				break;
			case"o":
				var doy=date.getDate();
				for(var m=date.getMonth()-1;m>=0;m--){
				doy+=this._getDaysInMonth(date.getFullYear(),m)
				}
				output+=formatNumber("o",doy,3);
				break;
			case"m":
				output+=formatNumber("m",date.getMonth()+1,2);
				break;
			case"M":
				output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);
				break;
			case"y":
				output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);
				break;
			case"@":
				output+=date.getTime();
				break;
			case"'":
				if(lookAhead("'")){
				output+="'"
				}else{
				literal=true
				}
				break;
			default:
				output+=format.charAt(iFormat)
				}
			}
	}
}
return output
},
_possibleChars:function(format){
	var chars="";
	var literal=false;
	for(var iFormat=0;iFormat<format.length;iFormat++){
		if(literal){
			if(format.charAt(iFormat)=="'"&&!lookAhead("'")){
				literal=false
				}else{
				chars+=format.charAt(iFormat)
				}
			}else{
		switch(format.charAt(iFormat)){
			case"d":case"m":case"y":case"@":
				chars+="0123456789";
				break;
			case"D":case"M":
				return null;
			case"'":
				if(lookAhead("'")){
				chars+="'"
				}else{
				literal=true
				}
				break;
			default:
				chars+=format.charAt(iFormat)
				}
			}
	}
return chars
},
_get:function(inst,name){
	return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]
	},
_setDateFromField:function(inst){
	var dateFormat=this._get(inst,"dateFormat");
	var dates=inst.input?inst.input.val().split(this._get(inst,"rangeSeparator")):null;
	inst.endDay=inst.endMonth=inst.endYear=null;
	var date=defaultDate=this._getDefaultDate(inst);
	if(dates.length>0){
		var settings=this._getFormatConfig(inst);
		if(dates.length>1){
			date=this.parseDate(dateFormat,dates[1],settings)||defaultDate;
			inst.endDay=date.getDate();
			inst.endMonth=date.getMonth();
			inst.endYear=date.getFullYear()
			}
			try{
			date=this.parseDate(dateFormat,dates[0],settings)||defaultDate
			}catch(event){
			this.log(event);
			date=defaultDate
			}
		}
	inst.selectedDay=date.getDate();
inst.drawMonth=inst.selectedMonth=date.getMonth();
inst.drawYear=inst.selectedYear=date.getFullYear();
inst.currentDay=(dates[0]?date.getDate():0);
inst.currentMonth=(dates[0]?date.getMonth():0);
inst.currentYear=(dates[0]?date.getFullYear():0);
this._adjustInstDate(inst)
},
_getDefaultDate:function(inst){
	var date=this._determineDate(this._get(inst,"defaultDate"),new Date());
	var minDate=this._getMinMaxDate(inst,"min",true);
	var maxDate=this._getMinMaxDate(inst,"max");
	date=(minDate&&date<minDate?minDate:date);
	date=(maxDate&&date>maxDate?maxDate:date);
	return date
	},
_determineDate:function(date,defaultDate){
	var offsetNumeric=function(offset){
		var date=new Date();
		date.setDate(date.getDate()+offset);
		return date
		};
		
	var offsetString=function(offset,getDaysInMonth){
		var date=new Date();
		var year=date.getFullYear();
		var month=date.getMonth();
		var day=date.getDate();
		var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
		var matches=pattern.exec(offset);
		while(matches){
			switch(matches[2]||"d"){
				case"d":case"D":
					day+=parseInt(matches[1],10);
					break;
				case"w":case"W":
					day+=parseInt(matches[1],10)*7;
					break;
				case"m":case"M":
					month+=parseInt(matches[1],10);
					day=Math.min(day,getDaysInMonth(year,month));
					break;
				case"y":case"Y":
					year+=parseInt(matches[1],10);
					day=Math.min(day,getDaysInMonth(year,month));
					break
					}
					matches=pattern.exec(offset)
			}
			return new Date(year,month,day)
		};
		
	date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));
	date=(date&&date.toString()=="Invalid Date"?defaultDate:date);
	if(date){
		date.setHours(0);
		date.setMinutes(0);
		date.setSeconds(0);
		date.setMilliseconds(0)
		}
		return this._daylightSavingAdjust(date)
	},
_daylightSavingAdjust:function(date){
	if(!date){
		return null
		}
		date.setHours(date.getHours()>12?date.getHours()+2:0);
	return date
	},
_setDate:function(inst,date,endDate){
	var clear=!(date);
	var origMonth=inst.selectedMonth;
	var origYear=inst.selectedYear;
	date=this._determineDate(date,new Date());
	inst.selectedDay=inst.currentDay=date.getDate();
	inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();
	inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();
	if(this._get(inst,"rangeSelect")){
		if(endDate){
			endDate=this._determineDate(endDate,null);
			inst.endDay=endDate.getDate();
			inst.endMonth=endDate.getMonth();
			inst.endYear=endDate.getFullYear()
			}else{
			inst.endDay=inst.currentDay;
			inst.endMonth=inst.currentMonth;
			inst.endYear=inst.currentYear
			}
		}
	if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){
	this._notifyChange(inst)
	}
	this._adjustInstDate(inst);
if(inst.input){
	inst.input.val(clear?"":this._formatDate(inst)+(!this._get(inst,"rangeSelect")?"":this._get(inst,"rangeSeparator")+this._formatDate(inst,inst.endDay,inst.endMonth,inst.endYear)))
	}
},
_getDate:function(inst){
	var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));
	if(this._get(inst,"rangeSelect")){
		return[inst.rangeStart||startDate,(!inst.endYear?inst.rangeStart||startDate:this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)))]
		}else{
		return startDate
		}
	},
_generateHTML:function(inst){
	var today=new Date();
	today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));
	var showStatus=this._get(inst,"showStatus");
	var initStatus=this._get(inst,"initStatus")||"&#xa0;";
	var isRTL=this._get(inst,"isRTL");
	var clear=(this._get(inst,"mandatory")?"":'<div class="ui-datepicker-clear"><a onclick="jQuery.datepicker._clearDate(\'#'+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"clearStatus"),initStatus)+">"+this._get(inst,"clearText")+"</a></div>");
	var controls='<div class="ui-datepicker-control">'+(isRTL?"":clear)+'<div class="ui-datepicker-close"><a onclick="jQuery.datepicker._hideDatepicker();"'+this._addStatus(showStatus,inst.id,this._get(inst,"closeStatus"),initStatus)+">"+this._get(inst,"closeText")+"</a></div>"+(isRTL?clear:"")+"</div>";
	var prompt=this._get(inst,"prompt");
	var closeAtTop=this._get(inst,"closeAtTop");
	var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");
	var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");
	var showBigPrevNext=this._get(inst,"showBigPrevNext");
	var numMonths=this._getNumberOfMonths(inst);
	var showCurrentAtPos=this._get(inst,"showCurrentAtPos");
	var stepMonths=this._get(inst,"stepMonths");
	var stepBigMonths=this._get(inst,"stepBigMonths");
	var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);
	var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));
	var minDate=this._getMinMaxDate(inst,"min",true);
	var maxDate=this._getMinMaxDate(inst,"max");
	var drawMonth=inst.drawMonth-showCurrentAtPos;
	var drawYear=inst.drawYear;
	if(drawMonth<0){
		drawMonth+=12;
		drawYear--
	}
	if(maxDate){
		var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));
		maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);
		while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){
			drawMonth--;
			if(drawMonth<0){
				drawMonth=11;
				drawYear--
			}
		}
	}
var prevText=this._get(inst,"prevText");
prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));
var prevBigText=(showBigPrevNext?this._get(inst,"prevBigText"):"");
prevBigText=(!navigationAsDateFormat?prevBigText:this.formatDate(prevBigText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepBigMonths,1)),this._getFormatConfig(inst)));
var prev='<div class="ui-datepicker-prev">'+(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?(showBigPrevNext?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', -"+stepBigMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"prevBigStatus"),initStatus)+">"+prevBigText+"</a>":"")+"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', -"+stepMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"prevStatus"),initStatus)+">"+prevText+"</a>":(hideIfNoPrevNext?"":(showBigPrevNext?"<label>"+prevBigText+"</label>":"")+"<label>"+prevText+"</label>"))+"</div>";
var nextText=this._get(inst,"nextText");
nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));
var nextBigText=(showBigPrevNext?this._get(inst,"nextBigText"):"");
nextBigText=(!navigationAsDateFormat?nextBigText:this.formatDate(nextBigText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepBigMonths,1)),this._getFormatConfig(inst)));
var next='<div class="ui-datepicker-next">'+(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', +"+stepMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"nextStatus"),initStatus)+">"+nextText+"</a>"+(showBigPrevNext?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', +"+stepBigMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"nextBigStatus"),initStatus)+">"+nextBigText+"</a>":""):(hideIfNoPrevNext?"":"<label>"+nextText+"</label>"+(showBigPrevNext?"<label>"+nextBigText+"</label>":"")))+"</div>";
var currentText=this._get(inst,"currentText");
var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);
currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));
var html=(closeAtTop&&!inst.inline?controls:"")+'<div class="ui-datepicker-links">'+(isRTL?next:prev)+(this._isInRange(inst,gotoDate)?'<div class="ui-datepicker-current"><a onclick="jQuery.datepicker._gotoToday(\'#'+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"currentStatus"),initStatus)+">"+currentText+"</a></div>":"")+(isRTL?prev:next)+"</div>"+(prompt?'<div class="'+this._promptClass+'"><span>'+prompt+"</span></div>":"");
var firstDay=parseInt(this._get(inst,"firstDay"));
firstDay=(isNaN(firstDay)?0:firstDay);
var changeFirstDay=this._get(inst,"changeFirstDay");
var dayNames=this._get(inst,"dayNames");
var dayNamesShort=this._get(inst,"dayNamesShort");
var dayNamesMin=this._get(inst,"dayNamesMin");
var monthNames=this._get(inst,"monthNames");
var beforeShowDay=this._get(inst,"beforeShowDay");
var highlightWeek=this._get(inst,"highlightWeek");
var showOtherMonths=this._get(inst,"showOtherMonths");
var showWeeks=this._get(inst,"showWeeks");
var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;
var weekStatus=this._get(inst,"weekStatus");
var status=(showStatus?this._get(inst,"dayStatus")||initStatus:"");
var dateStatus=this._get(inst,"statusForDate")||this.dateStatus;
var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;
var defaultDate=this._getDefaultDate(inst);
for(var row=0;row<numMonths[0];row++){
	for(var col=0;col<numMonths[1];col++){
		var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));
		html+='<div class="ui-datepicker-one-month'+(col==0?" ui-datepicker-new-row":"")+'">'+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,showStatus,initStatus,monthNames)+'<table class="ui-datepicker" cellpadding="0" cellspacing="0"><thead><tr class="ui-datepicker-title-row">'+(showWeeks?"<td"+this._addStatus(showStatus,inst.id,weekStatus,initStatus)+">"+this._get(inst,"weekHeader")+"</td>":"");
		for(var dow=0;dow<7;dow++){
			var day=(dow+firstDay)%7;
			var dayStatus=(status.indexOf("DD")>-1?status.replace(/DD/,dayNames[day]):status.replace(/D/,dayNamesShort[day]));
			html+="<td"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end-cell"':"")+">"+(!changeFirstDay?"<span":"<a onclick=\"jQuery.datepicker._changeFirstDay('#"+inst.id+"', "+day+');"')+this._addStatus(showStatus,inst.id,dayStatus,initStatus)+' title="'+dayNames[day]+'">'+dayNamesMin[day]+(changeFirstDay?"</a>":"</span>")+"</td>"
			}
			html+="</tr></thead><tbody>";
		var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);
		if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){
			inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)
			}
			var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;
		var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));
		var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));
		for(var dRow=0;dRow<numRows;dRow++){
			html+='<tr class="ui-datepicker-days-row">'+(showWeeks?'<td class="ui-datepicker-week-col"'+this._addStatus(showStatus,inst.id,weekStatus,initStatus)+">"+calculateWeek(printDate)+"</td>":"");
			for(var dow=0;dow<7;dow++){
				var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);
				var otherMonth=(printDate.getMonth()!=drawMonth);
				var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);
				html+='<td class="ui-datepicker-days-cell'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end-cell":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+$.datepicker._dayOverClass:"")+(unselectable?" "+this._unselectableClass:"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?(highlightWeek?" onmouseover=\"jQuery(this).parent().addClass('"+this._weekOverClass+"');\" onmouseout=\"jQuery(this).parent().removeClass('"+this._weekOverClass+"');\"":""):" onmouseover=\"jQuery(this).addClass('"+this._dayOverClass+"')"+(highlightWeek?".parent().addClass('"+this._weekOverClass+"')":"")+";"+(!showStatus||(otherMonth&&!showOtherMonths)?"":"jQuery('#ui-datepicker-status-"+inst.id+"').html('"+(dateStatus.apply((inst.input?inst.input[0]:null),[printDate,inst])||initStatus)+"');")+'" onmouseout="jQuery(this).removeClass(\''+this._dayOverClass+"')"+(highlightWeek?".parent().removeClass('"+this._weekOverClass+"')":"")+";"+(!showStatus||(otherMonth&&!showOtherMonths)?"":"jQuery('#ui-datepicker-status-"+inst.id+"').html('"+initStatus+"');")+'" onclick="jQuery.datepicker._selectDay(\'#'+inst.id+"',"+drawMonth+","+drawYear+', this);"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?printDate.getDate():"<a>"+printDate.getDate()+"</a>"))+"</td>";
				printDate.setDate(printDate.getDate()+1);
				printDate=this._daylightSavingAdjust(printDate)
				}
				html+="</tr>"
			}
			drawMonth++;
		if(drawMonth>11){
			drawMonth=0;
			drawYear++
		}
		html+="</tbody></table></div>"
		}
	}
	html+=(showStatus?'<div style="clear: both;"></div><div id="ui-datepicker-status-'+inst.id+'" class="ui-datepicker-status">'+initStatus+"</div>":"")+(!closeAtTop&&!inst.inline?controls:"")+'<div style="clear: both;"></div>'+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover"></iframe>':"");
inst._keyEvent=false;
return html
},
_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,showStatus,initStatus,monthNames){
	minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);
	var changeMonth=this._get(inst,"changeMonth");
	var changeYear=this._get(inst,"changeYear");
	var showMonthAfterYear=this._get(inst,"showMonthAfterYear");
	var html='<div class="ui-datepicker-header">';
	var monthHtml="";
	if(secondary||!changeMonth){
		monthHtml+=monthNames[drawMonth]
		}else{
		var inMinYear=(minDate&&minDate.getFullYear()==drawYear);
		var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);
		monthHtml+='<select class="ui-datepicker-new-month" onchange="jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"jQuery.datepicker._clickMonthYear('#"+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"monthStatus"),initStatus)+">";
		for(var month=0;month<12;month++){
			if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){
				monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNames[month]+"</option>"
				}
			}
		monthHtml+="</select>"
	}
	if(!showMonthAfterYear){
	html+=monthHtml+(secondary||changeMonth||changeYear?"&#xa0;":"")
	}
	if(secondary||!changeYear){
	html+=drawYear
	}else{
	var years=this._get(inst,"yearRange").split(":");
	var year=0;
	var endYear=0;
	if(years.length!=2){
		year=drawYear-10;
		endYear=drawYear+10
		}else{
		if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){
			year=endYear=new Date().getFullYear();
			year+=parseInt(years[0],10);
			endYear+=parseInt(years[1],10)
			}else{
			year=parseInt(years[0],10);
			endYear=parseInt(years[1],10)
			}
		}
	year=(minDate?Math.max(year,minDate.getFullYear()):year);
endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);
html+='<select class="ui-datepicker-new-year" onchange="jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"jQuery.datepicker._clickMonthYear('#"+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"yearStatus"),initStatus)+">";
for(;year<=endYear;year++){
	html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"
	}
	html+="</select>"
}
if(showMonthAfterYear){
	html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml
	}
	html+="</div>";
return html
},
_addStatus:function(showStatus,id,text,initStatus){
	return(showStatus?" onmouseover=\"jQuery('#ui-datepicker-status-"+id+"').html('"+(text||initStatus)+"');\" onmouseout=\"jQuery('#ui-datepicker-status-"+id+"').html('"+initStatus+"');\"":"")
	},
_adjustInstDate:function(inst,offset,period){
	var year=inst.drawYear+(period=="Y"?offset:0);
	var month=inst.drawMonth+(period=="M"?offset:0);
	var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);
	var date=this._daylightSavingAdjust(new Date(year,month,day));
	var minDate=this._getMinMaxDate(inst,"min",true);
	var maxDate=this._getMinMaxDate(inst,"max");
	date=(minDate&&date<minDate?minDate:date);
	date=(maxDate&&date>maxDate?maxDate:date);
	inst.selectedDay=date.getDate();
	inst.drawMonth=inst.selectedMonth=date.getMonth();
	inst.drawYear=inst.selectedYear=date.getFullYear();
	if(period=="M"||period=="Y"){
		this._notifyChange(inst)
		}
	},
_notifyChange:function(inst){
	var onChange=this._get(inst,"onChangeMonthYear");
	if(onChange){
		onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])
		}
	},
_getNumberOfMonths:function(inst){
	var numMonths=this._get(inst,"numberOfMonths");
	return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))
	},
_getMinMaxDate:function(inst,minMax,checkRange){
	var date=this._determineDate(this._get(inst,minMax+"Date"),null);
	return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))
	},
_getDaysInMonth:function(year,month){
	return 32-new Date(year,month,32).getDate()
	},
_getFirstDayOfMonth:function(year,month){
	return new Date(year,month,1).getDay()
	},
_canAdjustMonth:function(inst,offset,curYear,curMonth){
	var numMonths=this._getNumberOfMonths(inst);
	var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));
	if(offset<0){
		date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))
		}
		return this._isInRange(inst,date)
	},
_isInRange:function(inst,date){
	var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));
	newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);
	var minDate=newMinDate||this._getMinMaxDate(inst,"min");
	var maxDate=this._getMinMaxDate(inst,"max");
	return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))
	},
_getFormatConfig:function(inst){
	var shortYearCutoff=this._get(inst,"shortYearCutoff");
	shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));
	return{
		shortYearCutoff:shortYearCutoff,
		dayNamesShort:this._get(inst,"dayNamesShort"),
		dayNames:this._get(inst,"dayNames"),
		monthNamesShort:this._get(inst,"monthNamesShort"),
		monthNames:this._get(inst,"monthNames")
		}
	},
_formatDate:function(inst,day,month,year){
	if(!day){
		inst.currentDay=inst.selectedDay;
		inst.currentMonth=inst.selectedMonth;
		inst.currentYear=inst.selectedYear
		}
		var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));
	return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))
	}
});
function extendRemove(target,props){
	$.extend(target,props);
	for(var name in props){
		if(props[name]==null||props[name]==undefined){
			target[name]=props[name]
			}
		}
	return target
}
function isArray(a){
	return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))
	}
	$.fn.datepicker=function(options){
	if(!$.datepicker.initialized){
		$(document.body).append($.datepicker.dpDiv).mousedown($.datepicker._checkExternalClick);
		$.datepicker.initialized=true
		}
		var otherArgs=Array.prototype.slice.call(arguments,1);
	if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){
		return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))
		}
		return this.each(function(){
		typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)
		})
	};
	
$.datepicker=new Datepicker();
$.datepicker.initialized=false;
$.datepicker.uuid=new Date().getTime();
$.datepicker.version="1.6"
})(jQuery);
