var $params=parseQuery($('script:last')[0].src.replace(/^[^\?]+\??/,''));
function parseQuery(query){
	var Params=new Object();
	if(!query)return Params;
	var Pairs=query.split(/[;&]/);
	for(var i=0;i<Pairs.length;i++){
		var KeyVal=Pairs[i].split('=');
		if(!KeyVal||KeyVal.length!=2)continue;
		var key=unescape(KeyVal[0]);
		var val=unescape(KeyVal[1]);
		val=val.replace(/\+/g,' ');
		Params[key]=val;
	}
	return Params;
}
var $caret=function(dir,color){
	var caret=$(document.createElement('div')).addClass('caret').append($(document.createElement('img')).attr('src',getImageURL()+'store/common/transpixel.gif'));
	var xCoords=(dir=='Left')?new Array(0,11,0):new Array(11,0,11);
	var yCoords=new Array(30,38,48)
	caret.fillPolygon(xCoords,yCoords,{color:color});
	return caret;
}
var $calendar=function(){
	return{
		date:null,first:null,last:null,total:null,
		updateDate:function(date){
			$calendar.date=new Date((date)?date:($params.date)?$params.date:getServerDate());
			$calendar.updateAllFields();
			if($('#calendar').children().length>0){
				$calendar.destroy();
				$calendar.create();
			}
		},
		updateAllFields:function(){
			$calendar.total=$calendar.getTotalDays();
			$calendar.first=$calendar.getFirstDay();
			$calendar.last=$calendar.getLastDay();
		},
		getFirstDay:function(){
			return new Date($calendar.date.getFullYear(),$calendar.date.getMonth(),1).getDay();
		},
		getLastDay:function(){
			return new Date($calendar.date.getFullYear(),$calendar.date.getMonth(),$calendar.total).getDay();
		},
		getTotalDays:function(){
			return new Date($calendar.date.getFullYear(), $calendar.date.getMonth()+1, 0).getDate();
		},
		create:function(){
			if(!$calendar.date)$calendar.updateDate();
			var begin=-$calendar.first;
			var end=$calendar.total+(6-$calendar.last);
			var html=$().not(':first');
			for(var i=begin;i<end;i++){
				var $obj=$(document.createElement('div')).addClass('day');
				if(i<0){
					//$obj.css({opacity:1+((i+1)/$calendar.first)});
				}else if(i<$calendar.total){
					$obj.css({backgroundPosition:'0px '+(-(i+1)*76)+'px'});
				}else{
					//$obj.css({opacity:1-((i-$calendar.total)/(6-$calendar.last))});
				}
				html=html.add($obj);
			}
			$('#month img').css({top:($calendar.date.getMonth()*-47)+'px',visibility:'visible'});
			$('#calendar').append(html).css({height:76*($('#calendar .day').length/7)});
			$calendar.findEvents();
			$events.create();
		},
		destroy:function(){
			$('#calendar *').remove();
		},
		findEvents:function(){
			$('#cover > div > img').each(function(){
				var $thisDate=$(this).attr('src').substr($(this).attr('src').search('.gif')-4,4);
				if(parseFloat($thisDate.substr(0,2))==($calendar.date.getMonth()+1)){
					var $thisPos=$('#calendar > div').eq(parseFloat($thisDate.substr(2,2))+$calendar.first-1).position();
					$calendar.cloneElement($(this).parent(),$thisPos);
				}
			});
		},
		cloneElement:function(obj,pos){
			$(obj).clone().appendTo('#calendar').addClass('eventDay').css(pos);
			$calendar.completeElement();
		},
		completeElement:function(){
			var $this=$('.eventDay:last'),pos=$this.position();
			if(pos.left<228){
				$('.event', $this).addClass('flyRight');
			}else if(pos.left>228||(pos.left==228&&$('.event', $this).length==1)){
				$('.event', $this).addClass('flyLeft');
			}else if($('.event', $this).length==2){
				$('.event:first', $this).addClass('flyLeft');
				$('.event:last', $this).addClass('flyRight');
			}
			$('.event', $this).each(function(i){
				$(this).append(new $caret($(this).attr('class').split('fly')[1],$(this).css('border-top-color')));
				$this.append(
					$(document.createElement('img')).attr('src',getImageURL()+'store/common/transpixel.gif')
					.addClass('hover')
					.css({height:76/$('.event', $this).length,top:(i==0)?0:38})
				);
			});
		}
	}
}();
var $events=function(){
	return{
		gate:true,
		create:function(){
			$('body').bind('mouseover',function(){
				if($events.gate)$('.eventDay').trigger('close');
			});
			$('.eventDay').bind('close',function(){
				$(this).css({zIndex:10});
				$('.event', this).css({visibility:'hidden'});
				$('.expand', this).show();
				$('.expand + *', this).hide();
			}).bind('mouseover',function(e){
				e.stopPropagation();
			});
			$('.hover').bind('mouseover',function(){
				var target=($(this).next().length==0)?':last':':first';
				$('.eventDay').not($(this).parent()).trigger('close');
				if($(this).siblings('.event').not(target).is(':visible')){
					$(this).parent().trigger('close');
				}
				$(this).parent().css({zIndex:100});
				$(this).siblings('.event').filter(target).css({visibility:'visible'});
			});
			$('.event .expand').bind('click',function(){
				$events.gate=false;
				$(this).hide();
				$('+ *', this).slideDown(250);
				setTimeout(function(){
					$events.gate=true;
				},300);
			}).each(function(){
				$('+ *', this).hide();
			});
		}
	}
}();
$(document).ready(function(){
	$calendar.create();
});
