Date.dayNames=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
Date.abbrDayNames=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
Date.monthNames=['January','February','March','April','May','June','July','August','September','October','November','December'];
Date.abbrMonthNames=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
Date.firstDayOfWeek=1;
Date.format='dd/mm/yyyy';
Date.fullYearStart='20';
(function(){
function add(name,method){
if(!Date.prototype[name]){
Date.prototype[name]=method;
}
};
add("isLeapYear",function(){
var y=this.getFullYear();
return(y%4==0&&y%100!=0)||y%400==0;
});
add("isWeekend",function(){
return this.getDay()==0||this.getDay()==6;
});
add("isWeekDay",function(){
return!this.isWeekend();
});
add("getDaysInMonth",function(){
return[31,(this.isLeapYear()?29:28),31,30,31,30,31,31,30,31,30,31][this.getMonth()];
});
add("getDayName",function(abbreviated){
return abbreviated?Date.abbrDayNames[this.getDay()]:Date.dayNames[this.getDay()];
});
add("getMonthName",function(abbreviated){
return abbreviated?Date.abbrMonthNames[this.getMonth()]:Date.monthNames[this.getMonth()];
});
add("getDayOfYear",function(){
var tmpdtm=new Date("1/1/"+this.getFullYear());
return Math.floor((this.getTime()-tmpdtm.getTime())/86400000);
});
add("getWeekOfYear",function(){
return Math.ceil(this.getDayOfYear()/7);
});
add("setDayOfYear",function(day){
this.setMonth(0);
this.setDate(day);
return this;
});
add("addYears",function(num){
this.setFullYear(this.getFullYear()+num);
return this;
});
add("addMonths",function(num){
var tmpdtm=this.getDate();
this.setMonth(this.getMonth()+num);
if(tmpdtm>this.getDate())
this.addDays(-this.getDate());
return this;
});
add("addDays",function(num){
this.setTime(this.getTime()+(num*86400000));
return this;
});
add("addHours",function(num){
this.setHours(this.getHours()+num);
return this;
});
add("addMinutes",function(num){
this.setMinutes(this.getMinutes()+num);
return this;
});
add("addSeconds",function(num){
this.setSeconds(this.getSeconds()+num);
return this;
});
add("zeroTime",function(){
this.setMilliseconds(0);
this.setSeconds(0);
this.setMinutes(0);
this.setHours(0);
return this;
});
add("asString",function(format){
var r=format||Date.format;
if(r.split('mm').length>1){
r=r.split('mmmm').join(this.getMonthName(false))
.split('mmm').join(this.getMonthName(true))
.split('mm').join(_zeroPad(this.getMonth()+1))
}else{
r=r.split('m').join(this.getMonth()+1);
}
r=r.split('yyyy').join(this.getFullYear())
.split('yy').join((this.getFullYear()+'').substring(2))
.split('dd').join(_zeroPad(this.getDate()))
.split('d').join(this.getDate());
return r;
});
Date.fromString=function(s)
{
var f=Date.format;
var d=new Date('01/01/1970');
if(s=='')return d;
s=s.toLowerCase();
var matcher='';
var order=[];
var r=/(dd?d?|mm?m?|yy?yy?)+([^(m|d|y)])?/g;
var results;
while((results=r.exec(f))!=null)
{
switch(results[1]){
case'd':
case'dd':
case'm':
case'mm':
case'yy':
case'yyyy':
matcher+='(\\d+\\d?\\d?\\d?)+';
order.push(results[1].substr(0,1));
break;
case'mmm':
matcher+='([a-z]{3})';
order.push('M');
break;
}
if(results[2]){
matcher+=results[2];
}
}
var dm=new RegExp(matcher);
var result=s.match(dm);
for(var i=0;i<order.length;i++){
var res=result[i+1];
switch(order[i]){
case'd':
d.setDate(res);
break;
case'm':
d.setMonth(Number(res)-1);
break;
case'M':
for(var j=0;j<Date.abbrMonthNames.length;j++){
if(Date.abbrMonthNames[j].toLowerCase()==res)break;
}
d.setMonth(j);
break;
case'y':
d.setYear(res);
break;
}
}
return d;
};
var _zeroPad=function(num){
var s='0'+num;
return s.substring(s.length-2)
};
})();;(function($){
$.fn.extend({
autocomplete:function(urlOrData,options){
var isUrl=typeof urlOrData=="string";
options=$.extend({},$.Autocompleter.defaults,{
url:isUrl?urlOrData:null,
data:isUrl?null:urlOrData,
delay:isUrl?$.Autocompleter.defaults.delay:10,
max:options&&!options.scroll?10:150
},options);
options.highlight=options.highlight||function(value){return value;};
options.formatMatch=options.formatMatch||options.formatItem;
return this.each(function(){
new $.Autocompleter(this,options);
});
},
result:function(handler){
return this.bind("result",handler);
},
search:function(handler){
return this.trigger("search",[handler]);
},
flushCache:function(){
return this.trigger("flushCache");
},
setOptions:function(options){
return this.trigger("setOptions",[options]);
},
unautocomplete:function(){
return this.trigger("unautocomplete");
}
});
$.Autocompleter=function(input,options){
var KEY={
UP:38,
DOWN:40,
DEL:46,
TAB:9,
RETURN:13,
ESC:27,
COMMA:188,
PAGEUP:33,
PAGEDOWN:34,
BACKSPACE:8
};
var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);
var timeout;
var previousValue="";
var cache=$.Autocompleter.Cache(options);
var hasFocus=0;
var lastKeyPressCode;
var config={
mouseDownOnSelect:false
};
var select=$.Autocompleter.Select(options,input,selectCurrent,config);
var blockSubmit;
$.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.PAGEUP:
event.preventDefault();
if(select.visible()){
select.pageUp();
}else{
onChange(0,true);
}
break;
case KEY.PAGEDOWN:
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.RETURN:
if(selectCurrent()){
event.preventDefault();
blockSubmit=true;
return false;
}
break;
case KEY.ESC:
select.hide();
break;
default:
clearTimeout(timeout);
timeout=setTimeout(onChange,options.delay);
break;
}
}).focus(function(){
hasFocus++;
}).blur(function(){
hasFocus=0;
if(!config.mouseDownOnSelect){
hideResults();
}
}).click(function(){
if(hasFocus++>1&&!select.visible()){
onChange(0,true);
}
}).bind("search",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",result&&[result.data,result.value]);
}
$.each(trimWords($input.val()),function(i,value){
request(value,findValueCallback,findValueCallback);
});
}).bind("flushCache",function(){
cache.flush();
}).bind("setOptions",function(){
$.extend(options,arguments[1]);
if("data"in arguments[1])
cache.populate();
}).bind("unautocomplete",function(){
select.unbind();
$input.unbind();
$(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;
}
$input.val(v);
hideResultsNow();
$input.trigger("result",[selected.data,selected.value]);
return true;
}
function onChange(crap,skipPrevCheck){
if(lastKeyPressCode==KEY.DEL){
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[""];
}
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){
if(!options.multiple)
return value;
var words=trimWords(value);
return words[words.length-1];
}
function autoFill(q,sValue){
if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){
$input.val($input.val()+sValue.substring(lastWord(previousValue).length));
$.Autocompleter.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.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)
$.Autocompleter.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():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{
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);
};
};
$.Autocompleter.defaults={
inputClass:"ac_input",
resultsClass:"ac_results",
loadingClass:"ac_loading",
minChars:1,
delay:400,
matchCase:false,
matchSubset:true,
matchContains:false,
cacheLength:10,
max:100,
mustMatch:false,
extraParams:{},
selectFirst:true,
formatItem:function(row){return row[0];},
formatMatch:null,
autoFill:false,
width:0,
multiple:false,
multipleSeparator:", ",
highlight:function(value,term){
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");
},
scroll:true,
scrollHeight:180
};
$.Autocompleter.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;
}
};
};
$.Autocompleter.Select=function(options,input,select,config){
var CLASSES={
ACTIVE:"ac_over"
};
var listItems,
active=-1,
data,
term="",
needsInit=true,
element,
list;
function init(){
if(!needsInit)
return;
element=$("<div/>")
.hide()
.addClass(options.resultsClass)
.css("position","absolute")
.appendTo(document.body);
list=$("<ul/>").appendTo(element).mouseover(function(event){
if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){
active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));
$(target(event)).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?"ac_even":"ac_odd").appendTo(list)[0];
$.data(li,"ac_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;
},
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")));
}
}
}
},
selected:function(){
var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
return selected&&selected.length&&$.data(selected[0],"ac_data");
},
emptyList:function(){
list&&list.empty();
},
unbind:function(){
element&&element.remove();
}
};
};
$.Autocompleter.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($){
$.fn.extend({
renderCalendar:function(s)
{
var dc=function(a)
{
return document.createElement(a);
};
s=$.extend({},$.fn.datePicker.defaults,s);
if(s.showHeader!=$.dpConst.SHOW_HEADER_NONE){
var headRow=$(dc('tr'));
for(var i=Date.firstDayOfWeek;i<Date.firstDayOfWeek+7;i++){
var weekday=i%7;
var day=Date.dayNames[weekday];
headRow.append(
jQuery(dc('th')).attr({'scope':'col','abbr':day,'title':day,'class':(weekday==0||weekday==6?'weekend':'weekday')}).html(s.showHeader==$.dpConst.SHOW_HEADER_SHORT?day.substr(0,1):day)
);
}
};
var calendarTable=$(dc('table'))
.attr(
{
'cellspacing':2
}
)
.addClass('jCalendar')
.append(
(s.showHeader!=$.dpConst.SHOW_HEADER_NONE?
$(dc('thead'))
.append(headRow)
:
dc('thead')
)
);
var tbody=$(dc('tbody'));
var today=(new Date()).zeroTime();
var month=s.month==undefined?today.getMonth():s.month;
var year=s.year||today.getFullYear();
var currentDate=new Date(year,month,1);
var firstDayOffset=Date.firstDayOfWeek-currentDate.getDay()+1;
if(firstDayOffset>1)firstDayOffset-=7;
var weeksToDraw=Math.ceil(((-1*firstDayOffset+1)+currentDate.getDaysInMonth())/7);
currentDate.addDays(firstDayOffset-1);
var doHover=function(firstDayInBounds)
{
return function()
{
if(s.hoverClass){
var $this=$(this);
if(!s.selectWeek){
$this.addClass(s.hoverClass);
}else if(firstDayInBounds&&!$this.is('.disabled')){
$this.parent().addClass('activeWeekHover');
}
}
}
};
var unHover=function()
{
if(s.hoverClass){
var $this=$(this);
$this.removeClass(s.hoverClass);
$this.parent().removeClass('activeWeekHover');
}
};
var w=0;
while(w++<weeksToDraw){
var r=jQuery(dc('tr'));
var firstDayInBounds=s.dpController?currentDate>s.dpController.startDate:false;
for(var i=0;i<7;i++){
var thisMonth=currentDate.getMonth()==month;
var d=$(dc('td'))
.text(currentDate.getDate()+'')
.addClass((thisMonth?'current-month ':'other-month ')+
(currentDate.isWeekend()?'weekend ':'weekday ')+
(thisMonth&&currentDate.getTime()==today.getTime()?'today ':'')
)
.data('datePickerDate',currentDate.asString())
.hover(doHover(firstDayInBounds),unHover)
;
r.append(d);
if(s.renderCallback){
s.renderCallback(d,currentDate,month,year);
}
currentDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate()+1);
}
tbody.append(r);
}
calendarTable.append(tbody);
return this.each(
function()
{
$(this).empty().append(calendarTable);
}
);
},
datePicker:function(s)
{
if(!$.event._dpCache)$.event._dpCache=[];
s=$.extend({},$.fn.datePicker.defaults,s);
return this.each(
function()
{
var $this=$(this);
var alreadyExists=true;
if(!this._dpId){
this._dpId=$.event.guid++;
$.event._dpCache[this._dpId]=new DatePicker(this);
alreadyExists=false;
}
if(s.inline){
s.createButton=false;
s.displayClose=false;
s.closeOnSelect=false;
$this.empty();
}
var controller=$.event._dpCache[this._dpId];
controller.init(s);
if(!alreadyExists&&s.createButton){
controller.button=$('<a href="#" class="dp-choose-date" title="'+$.dpText.TEXT_CHOOSE_DATE+'">'+$.dpText.TEXT_CHOOSE_DATE+'</a>')
.bind(
'click',
function()
{
$this.dpDisplay(this);
this.blur();
return false;
}
);
$this.after(controller.button);
}
if(!alreadyExists&&$this.is(':text')){
$this
.bind(
'dateSelected',
function(e,selectedDate,$td)
{
this.value=selectedDate.asString();
}
).bind(
'change',
function()
{
if(this.value==''){
controller.clearSelected();
}else{
var d=Date.fromString(this.value);
if(d){
controller.setSelected(d,true,true);
}
}
}
);
if(s.clickInput){
$this.bind(
'click',
function()
{
$this.trigger('change');
$this.dpDisplay();
}
);
}
var d=Date.fromString(this.value);
if(this.value!=''&&d){
controller.setSelected(d,true,true);
}
}
$this.addClass('dp-applied');
}
)
},
dpSetDisabled:function(s)
{
return _w.call(this,'setDisabled',s);
},
dpSetStartDate:function(d)
{
return _w.call(this,'setStartDate',d);
},
dpSetEndDate:function(d)
{
return _w.call(this,'setEndDate',d);
},
dpGetSelected:function()
{
var c=_getController(this[0]);
if(c){
return c.getSelected();
}
return null;
},
dpSetSelected:function(d,v,m,e)
{
if(v==undefined)v=true;
if(m==undefined)m=true;
if(e==undefined)e=true;
return _w.call(this,'setSelected',Date.fromString(d),v,m,e);
},
dpSetDisplayedMonth:function(m,y)
{
return _w.call(this,'setDisplayedMonth',Number(m),Number(y),true);
},
dpDisplay:function(e)
{
return _w.call(this,'display',e);
},
dpSetRenderCallback:function(a)
{
return _w.call(this,'setRenderCallback',a);
},
dpSetPosition:function(v,h)
{
return _w.call(this,'setPosition',v,h);
},
dpSetOffset:function(v,h)
{
return _w.call(this,'setOffset',v,h);
},
dpClose:function()
{
return _w.call(this,'_closeCalendar',false,this[0]);
},
_dpDestroy:function()
{
}
});
var _w=function(f,a1,a2,a3,a4)
{
return this.each(
function()
{
var c=_getController(this);
if(c){
c[f](a1,a2,a3,a4);
}
}
);
};
function DatePicker(ele)
{
this.ele=ele;
this.displayedMonth=null;
this.displayedYear=null;
this.startDate=null;
this.endDate=null;
this.showYearNavigation=null;
this.closeOnSelect=null;
this.displayClose=null;
this.rememberViewedMonth=null;
this.selectMultiple=null;
this.numSelectable=null;
this.numSelected=null;
this.verticalPosition=null;
this.horizontalPosition=null;
this.verticalOffset=null;
this.horizontalOffset=null;
this.button=null;
this.renderCallback=[];
this.selectedDates={};
this.inline=null;
this.context='#dp-popup';
this.settings={};
};
$.extend(
DatePicker.prototype,
{
init:function(s)
{
this.setStartDate(s.startDate);
this.setEndDate(s.endDate);
this.setDisplayedMonth(Number(s.month),Number(s.year));
this.setRenderCallback(s.renderCallback);
this.showYearNavigation=s.showYearNavigation;
this.closeOnSelect=s.closeOnSelect;
this.displayClose=s.displayClose;
this.rememberViewedMonth=s.rememberViewedMonth;
this.selectMultiple=s.selectMultiple;
this.numSelectable=s.selectMultiple?s.numSelectable:1;
this.numSelected=0;
this.verticalPosition=s.verticalPosition;
this.horizontalPosition=s.horizontalPosition;
this.hoverClass=s.hoverClass;
this.setOffset(s.verticalOffset,s.horizontalOffset);
this.inline=s.inline;
this.settings=s;
if(this.inline){
this.context=this.ele;
this.display();
}
},
setStartDate:function(d)
{
if(d){
this.startDate=Date.fromString(d);
}
if(!this.startDate){
this.startDate=(new Date()).zeroTime();
}
this.setDisplayedMonth(this.displayedMonth,this.displayedYear);
},
setEndDate:function(d)
{
if(d){
this.endDate=Date.fromString(d);
}
if(!this.endDate){
this.endDate=(new Date('12/31/2999'));
}
if(this.endDate.getTime()<this.startDate.getTime()){
this.endDate=this.startDate;
}
this.setDisplayedMonth(this.displayedMonth,this.displayedYear);
},
setPosition:function(v,h)
{
this.verticalPosition=v;
this.horizontalPosition=h;
},
setOffset:function(v,h)
{
this.verticalOffset=parseInt(v)||0;
this.horizontalOffset=parseInt(h)||0;
},
setDisabled:function(s)
{
$e=$(this.ele);
$e[s?'addClass':'removeClass']('dp-disabled');
if(this.button){
$but=$(this.button);
$but[s?'addClass':'removeClass']('dp-disabled');
$but.attr('title',s?'':$.dpText.TEXT_CHOOSE_DATE);
}
if($e.is(':text')){
$e.attr('disabled',s?'disabled':'');
}
},
setDisplayedMonth:function(m,y,rerender)
{
if(this.startDate==undefined||this.endDate==undefined){
return;
}
var s=new Date(this.startDate.getTime());
s.setDate(1);
var e=new Date(this.endDate.getTime());
e.setDate(1);
var t;
if((!m&&!y)||(isNaN(m)&&isNaN(y))){
t=new Date().zeroTime();
t.setDate(1);
}else if(isNaN(m)){
t=new Date(y,this.displayedMonth,1);
}else if(isNaN(y)){
t=new Date(this.displayedYear,m,1);
}else{
t=new Date(y,m,1)
}
if(t.getTime()<s.getTime()){
t=s;
}else if(t.getTime()>e.getTime()){
t=e;
}
var oldMonth=this.displayedMonth;
var oldYear=this.displayedYear;
this.displayedMonth=t.getMonth();
this.displayedYear=t.getFullYear();
if(rerender&&(this.displayedMonth!=oldMonth||this.displayedYear!=oldYear))
{
this._rerenderCalendar();
$(this.ele).trigger('dpMonthChanged',[this.displayedMonth,this.displayedYear]);
}
},
setSelected:function(d,v,moveToMonth,dispatchEvents)
{
if(d<this.startDate||d>this.endDate){
return;
}
var s=this.settings;
if(s.selectWeek)
{
d=d.addDays(-(d.getDay()-Date.firstDayOfWeek+7)%7);
if(d<this.startDate)
{
return;
}
}
if(v==this.isSelected(d))
{
return;
}
if(this.selectMultiple==false){
this.clearSelected();
}else if(v&&this.numSelected==this.numSelectable){
return;
}
if(moveToMonth&&(this.displayedMonth!=d.getMonth()||this.displayedYear!=d.getFullYear())){
this.setDisplayedMonth(d.getMonth(),d.getFullYear(),true);
}
this.selectedDates[d.toString()]=v;
this.numSelected+=v?1:-1;
var selectorString='td.'+(d.getMonth()==this.displayedMonth?'current-month':'other-month');
var $td;
$(selectorString,this.context).each(
function()
{
if($(this).data('datePickerDate')==d.asString()){
$td=$(this);
if(s.selectWeek)
{
$td.parent()[v?'addClass':'removeClass']('selectedWeek');
}
$td[v?'addClass':'removeClass']('selected');
}
}
);
$('td',this.context).not('.selected')[this.selectMultiple&&this.numSelected==this.numSelectable?'addClass':'removeClass']('unselectable');
if(dispatchEvents)
{
var s=this.isSelected(d);
$e=$(this.ele);
var dClone=Date.fromString(d.asString());
$e.trigger('dateSelected',[dClone,$td,s]);
$e.trigger('change');
}
},
isSelected:function(d)
{
return this.selectedDates[d.toString()];
},
getSelected:function()
{
var r=[];
for(s in this.selectedDates){
if(this.selectedDates[s]==true){
r.push(Date.parse(s));
}
}
return r;
},
clearSelected:function()
{
this.selectedDates={};
this.numSelected=0;
$('td.selected',this.context).removeClass('selected').parent().removeClass('selectedWeek');
},
display:function(eleAlignTo)
{
if($(this.ele).is('.dp-disabled'))return;
eleAlignTo=eleAlignTo||this.ele;
var c=this;
var $ele=$(eleAlignTo);
var eleOffset=$ele.offset();
var $createIn;
var attrs;
var attrsCalendarHolder;
var cssRules;
if(c.inline){
$createIn=$(this.ele);
attrs={
'id':'calendar-'+this.ele._dpId,
'class':'dp-popup dp-popup-inline'
};
$('.dp-popup',$createIn).remove();
cssRules={
};
}else{
$createIn=$('body');
attrs={
'id':'dp-popup',
'class':'dp-popup'
};
cssRules={
'top':eleOffset.top+c.verticalOffset,
'left':eleOffset.left+c.horizontalOffset
};
var _checkMouse=function(e)
{
var el=e.target;
var cal=$('#dp-popup')[0];
while(true){
if(el==cal){
return true;
}else if(el==document){
c._closeCalendar();
return false;
}else{
el=$(el).parent()[0];
}
}
};
this._checkMouse=_checkMouse;
c._closeCalendar(true);
$(document).bind(
'keydown.datepicker',
function(event)
{
if(event.keyCode==27){
c._closeCalendar();
}
}
);
}
if(!c.rememberViewedMonth)
{
var selectedDate=this.getSelected()[0];
if(selectedDate){
selectedDate=new Date(selectedDate);
this.setDisplayedMonth(selectedDate.getMonth(),selectedDate.getFullYear(),false);
}
}
$createIn
.append(
$('<div></div>')
.attr(attrs)
.css(cssRules)
.append(
$('<h2></h2>'),
$('<div class="dp-nav-prev"></div>')
.append(
$('<a class="dp-nav-prev-year" href="#" title="'+$.dpText.TEXT_PREV_YEAR+'">&lt;&lt;</a>')
.bind(
'click',
function()
{
return c._displayNewMonth.call(c,this,0,-1);
}
),
$('<a class="dp-nav-prev-month" href="#" title="'+$.dpText.TEXT_PREV_MONTH+'">&lt;</a>')
.bind(
'click',
function()
{
return c._displayNewMonth.call(c,this,-1,0);
}
)
),
$('<div class="dp-nav-next"></div>')
.append(
$('<a class="dp-nav-next-year" href="#" title="'+$.dpText.TEXT_NEXT_YEAR+'">&gt;&gt;</a>')
.bind(
'click',
function()
{
return c._displayNewMonth.call(c,this,0,1);
}
),
$('<a class="dp-nav-next-month" href="#" title="'+$.dpText.TEXT_NEXT_MONTH+'">&gt;</a>')
.bind(
'click',
function()
{
return c._displayNewMonth.call(c,this,1,0);
}
)
),
$('<div class="dp-calendar"></div>')
)
.bgIframe()
);
var $pop=this.inline?$('.dp-popup',this.context):$('#dp-popup');
if(this.showYearNavigation==false){
$('.dp-nav-prev-year, .dp-nav-next-year',c.context).css('display','none');
}
if(this.displayClose){
$pop.append(
$('<a href="#" id="dp-close">'+$.dpText.TEXT_CLOSE+'</a>')
.bind(
'click',
function()
{
c._closeCalendar();
return false;
}
)
);
}
c._renderCalendar();
$(this.ele).trigger('dpDisplayed',$pop);
if(!c.inline){
if(this.verticalPosition==$.dpConst.POS_BOTTOM){
$pop.css('top',eleOffset.top+$ele.height()-$pop.height()+c.verticalOffset);
}
if(this.horizontalPosition==$.dpConst.POS_RIGHT){
$pop.css('left',eleOffset.left+$ele.width()-$pop.width()+c.horizontalOffset);
}
$(document).bind('mousedown.datepicker',this._checkMouse);
}
},
setRenderCallback:function(a)
{
if(a==null)return;
if(a&&typeof(a)=='function'){
a=[a];
}
this.renderCallback=this.renderCallback.concat(a);
},
cellRender:function($td,thisDate,month,year){
var c=this.dpController;
var d=new Date(thisDate.getTime());
$td.bind(
'click',
function()
{
var $this=$(this);
if(!$this.is('.disabled')){
c.setSelected(d,!$this.is('.selected')||!c.selectMultiple,false,true);
if(c.closeOnSelect){
c._closeCalendar();
}
if(!$.browser.msie)
{
$(c.ele).trigger('focus',[$.dpConst.DP_INTERNAL_FOCUS]);
}
}
}
);
if(c.isSelected(d)){
$td.addClass('selected');
if(c.settings.selectWeek)
{
$td.parent().addClass('selectedWeek');
}
}else if(c.selectMultiple&&c.numSelected==c.numSelectable){
$td.addClass('unselectable');
}
},
_applyRenderCallbacks:function()
{
var c=this;
$('td',this.context).each(
function()
{
for(var i=0;i<c.renderCallback.length;i++){
$td=$(this);
c.renderCallback[i].apply(this,[$td,Date.fromString($td.data('datePickerDate')),c.displayedMonth,c.displayedYear]);
}
}
);
return;
},
_displayNewMonth:function(ele,m,y)
{
if(!$(ele).is('.disabled')){
this.setDisplayedMonth(this.displayedMonth+m,this.displayedYear+y,true);
}
ele.blur();
return false;
},
_rerenderCalendar:function()
{
this._clearCalendar();
this._renderCalendar();
},
_renderCalendar:function()
{
$('h2',this.context).html((new Date(this.displayedYear,this.displayedMonth,1)).asString($.dpText.HEADER_FORMAT));
$('.dp-calendar',this.context).renderCalendar(
$.extend(
{},
this.settings,
{
month:this.displayedMonth,
year:this.displayedYear,
renderCallback:this.cellRender,
dpController:this,
hoverClass:this.hoverClass
})
);
if(this.displayedYear==this.startDate.getFullYear()&&this.displayedMonth==this.startDate.getMonth()){
$('.dp-nav-prev-year',this.context).addClass('disabled');
$('.dp-nav-prev-month',this.context).addClass('disabled');
$('.dp-calendar td.other-month',this.context).each(
function()
{
var $this=$(this);
if(Number($this.text())>20){
$this.addClass('disabled');
}
}
);
var d=this.startDate.getDate();
$('.dp-calendar td.current-month',this.context).each(
function()
{
var $this=$(this);
if(Number($this.text())<d){
$this.addClass('disabled');
}
}
);
}else{
$('.dp-nav-prev-year',this.context).removeClass('disabled');
$('.dp-nav-prev-month',this.context).removeClass('disabled');
var d=this.startDate.getDate();
if(d>20){
var st=this.startDate.getTime();
var sd=new Date(st);
sd.addMonths(1);
if(this.displayedYear==sd.getFullYear()&&this.displayedMonth==sd.getMonth()){
$('.dp-calendar td.other-month',this.context).each(
function()
{
var $this=$(this);
if(Date.fromString($this.data('datePickerDate')).getTime()<st){
$this.addClass('disabled');
}
}
);
}
}
}
if(this.displayedYear==this.endDate.getFullYear()&&this.displayedMonth==this.endDate.getMonth()){
$('.dp-nav-next-year',this.context).addClass('disabled');
$('.dp-nav-next-month',this.context).addClass('disabled');
$('.dp-calendar td.other-month',this.context).each(
function()
{
var $this=$(this);
if(Number($this.text())<14){
$this.addClass('disabled');
}
}
);
var d=this.endDate.getDate();
$('.dp-calendar td.current-month',this.context).each(
function()
{
var $this=$(this);
if(Number($this.text())>d){
$this.addClass('disabled');
}
}
);
}else{
$('.dp-nav-next-year',this.context).removeClass('disabled');
$('.dp-nav-next-month',this.context).removeClass('disabled');
var d=this.endDate.getDate();
if(d<13){
var ed=new Date(this.endDate.getTime());
ed.addMonths(-1);
if(this.displayedYear==ed.getFullYear()&&this.displayedMonth==ed.getMonth()){
$('.dp-calendar td.other-month',this.context).each(
function()
{
var $this=$(this);
if(Number($this.text())>d){
$this.addClass('disabled');
}
}
);
}
}
}
this._applyRenderCallbacks();
},
_closeCalendar:function(programatic,ele)
{
if(!ele||ele==this.ele)
{
$(document).unbind('mousedown.datepicker');
$(document).unbind('keydown.datepicker');
this._clearCalendar();
$('#dp-popup a').unbind();
$('#dp-popup').empty().remove();
if(!programatic){
$(this.ele).trigger('dpClosed',[this.getSelected()]);
}
}
},
_clearCalendar:function()
{
$('.dp-calendar td',this.context).unbind();
$('.dp-calendar',this.context).empty();
}
}
);
$.dpConst={
SHOW_HEADER_NONE:0,
SHOW_HEADER_SHORT:1,
SHOW_HEADER_LONG:2,
POS_TOP:0,
POS_BOTTOM:1,
POS_LEFT:0,
POS_RIGHT:1,
DP_INTERNAL_FOCUS:'dpInternalFocusTrigger'
};
$.dpText={
TEXT_PREV_YEAR:'Previous year',
TEXT_PREV_MONTH:'Previous month',
TEXT_NEXT_YEAR:'Next year',
TEXT_NEXT_MONTH:'Next month',
TEXT_CLOSE:'Close',
TEXT_CHOOSE_DATE:'Choose date',
HEADER_FORMAT:'mmmm yyyy'
};
$.dpVersion='$Id: jquery.datePicker.js 70 2009-04-05 19:25:15Z kelvin.luck $';
$.fn.datePicker.defaults={
month:undefined,
year:undefined,
showHeader:$.dpConst.SHOW_HEADER_SHORT,
startDate:undefined,
endDate:undefined,
inline:false,
renderCallback:null,
createButton:true,
showYearNavigation:true,
closeOnSelect:true,
displayClose:false,
selectMultiple:false,
numSelectable:Number.MAX_VALUE,
clickInput:false,
rememberViewedMonth:true,
selectWeek:false,
verticalPosition:$.dpConst.POS_TOP,
horizontalPosition:$.dpConst.POS_LEFT,
verticalOffset:0,
horizontalOffset:0,
hoverClass:'dp-hover'
};
function _getController(ele)
{
if(ele._dpId)return $.event._dpCache[ele._dpId];
return false;
};
if($.fn.bgIframe==undefined){
$.fn.bgIframe=function(){return this;};
};
$(window)
.bind('unload',function(){
var els=$.event._dpCache||[];
for(var i in els){
$(els[i].ele)._dpDestroy();
}
});
})(jQuery);
$(document).ready(function(){
var months={};
months["JAN"]="01";
months["FEB"]="02";
months["MAR"]="03";
months["APR"]="04";
months["MAY"]="05";
months["JUN"]="06";
months["JUL"]="07";
months["AUG"]="08";
months["SEP"]="09";
months["OCT"]="10";
months["NOV"]="11";
months["DEC"]="12";
$.tablesorter.addParser({
id:'AlphaNum',
is:function(s){
return false;
},
format:function(s){
s=''+s;
s=s.toUpperCase();
alert(s);
if(isNaN(s)){
return'ZZ'+s;
}
else{
return'AA'+PadString(s,'00000000');
}
},
type:'text'
});
$.tablesorter.addParser({
id:'DD MMM YY',
is:function(s){
return false;
},
format:function(s){
s=''+s;
var hit=s.match(/(\d{2}) ([A-Za-z]{3}) (\d{2})/);
if(hit&&hit.length==4){
return hit[3]+months[hit[2].toUpperCase()]+hit[1];
}
else{
return s;
}
},
type:'text'
});
$.tablesorter.addParser({
id:'Price',
is:function(s){
return false;
},
format:function(s){
s=''+s;
var IsSoldOut=s.indexOf("Sold out");
if(IsSoldOut>=0)
{
s="01"+''+s;
}
var IsNotApplicable=s.indexOf("not applicable");
if(IsNotApplicable>=0)
{
s="01"+''+s;
}
result=s.replace(/<span>.*<\/span>/g,"");
result=result.replace(/<p>.*<\/p>/g,"");
result=result.replace(/\u00A3/g,"");
result=result.replace(new RegExp("^[\\s]+","g"),"").replace(new RegExp("[\\s]+$","g"),"");
return parseFloat(result);
},
type:'numeric'
});
$.tablesorter.addParser({
id:'OfferDate',
is:function(s){
return false;
},
format:function(s){
s=''+s;
var offerMonth=s.match(/(January|February|March|April|May|June|July|August|September|October|November|December)/);
var day=s.match(/\d{2}/);
if(offerMonth&&day){
switch(offerMonth[1]){
case"January":
offerMonth="01";
break;
case"February":
offerMonth="02";
break;
case"March":
offerMonth="03";
break;
case"April":
offerMonth="04";
break;
case"May":
offerMonth="05";
break;
case"June":
offerMonth="06";
break;
case"July":
offerMonth="07";
break;
case"August":
offerMonth="08";
break;
case"September":
offerMonth="09";
break;
case"October":
offerMonth="10";
break;
case"November":
offerMonth="11";
break;
case"December":
offerMonth="12";
break;
}
return offerMonth+day;
}
else{
return s;
}
},
type:'text'
});
$.tablesorter.addParser({
id:'description',
is:function(s){
return false;
},
format:function(s){
s=''+s;
result=s.replace(/<p.*<u>/g,"");
var chkValue=result.indexOf("<u");
if(chkValue>0)
{
result=result.replace(/<p.*\"></g,"");
result=result.replace(/u class.*\">/g,"");
}
result=result.replace(/<\/u>/g,"");
result=result.replace(/<p.*<\/p>/g,"");
result=result.replace(/<p.*\">/g,"");
result=result.replace(/<\/p>/g,"");
result=result.replace(/\u00A3/g,"");
result=result.replace(new RegExp("^[\\s]+","g"),"").replace(new RegExp("[\\s]+$","g"),"");
return result;
},
type:'text'
});
});
function sortSelectedColumn(column,actid){
$('#results-div-'+actid+' .gvBreaks thead th a').each(function(index){
if(column==index){
$(this).click();
}
});
}
function showSortDirection(actid){
$('#results-div-'+actid+' .gvBreaksHeaders thead th').removeClass("headerSortDown");
$('#results-div-'+actid+' .gvBreaksHeaders thead th').removeClass("headerSortUp");
$('#results-div-'+actid+' .gvBreaks thead th').each(function(index){
if($(this).attr("class").indexOf("headerSortDown")>0){
$('#results-div-'+actid+' .gvBreaksHeaders thead th').each(function(targetIndex){
if(targetIndex==index){
$(this).addClass("headerSortDown");
}
});
}
if($(this).attr("class").indexOf("headerSortUp")>0){
$('#results-div-'+actid+' .gvBreaksHeaders thead th').each(function(targetIndex){
if(targetIndex==index){
$(this).addClass("headerSortUp");
}
});
}
});
}
