﻿/*
append between the head
<link rel="stylesheet" href="../css/calendarpicker.css" type="text/css" />

Required js: prototype.js
<script type="text/javascript" src="../js/calendarPicker.js"></script>

Usage: 
PickCalendar([Object of the targetElement], [Format]);

*/

var calerdar_load_type = null;

var vx017=["日","一","二","三","四","五","六"];var vx001=["01","02","03","04","05","06","07","08","09","10","11","12"];var vx002="%M, %Y";var vx003=null;var vx004=null;var vx005="yyyy/MM/dd";function PickCalendar(c,m,type)
{
calerdar_load_type = type;

if(vx003==null)
{

vx003=new Date()
}

vx004=$(c);vx005=m;if($(c).value!="")
{

var f=ax017($(c).value,m);if(f!=0)
{

vx003=f
}


}

if($("PickCalendar")==null)
{

var b=document.createElement("div");b.innerHTML='<div class="CalendarPicker" id="PickCalendar"><div class="ActionBox"><select class="month"></select><select class="year"></select><input type="button" onclick="ax003()" value="更新" class="go" /><input type="button" onclick="ax005()" value="今天" class="today" /></div><div class="InnerContent"></div></div><div class="TransparentLightBox" onclick="HideCalendar()" style="display: none; "></div>';document.body.appendChild(b);ax013($("PickCalendar").select(".month")[0]);ax014($("PickCalendar").select(".year")[0])
}

ax009(vx003,$("PickCalendar").select(".InnerContent")[0]);var e=$(c);var o=e.getHeight();var k=0;var j=0;oElement=e;while(oElement!=null)
{

k+=oElement.offsetLeft;j+=oElement.offsetTop;oElement=oElement.offsetParent
}

$("PickCalendar").style.left=k+"px";$("PickCalendar").style.top=(j+o)+"px";$("PickCalendar").show();var a=document;var n=Math.max(Math.max(a.body.scrollHeight,a.documentElement.scrollHeight),Math.max(a.body.offsetHeight,a.documentElement.offsetHeight),Math.max(a.body.clientHeight,a.documentElement.clientHeight));var g=Math.max(Math.max(a.body.scrollWidth,a.documentElement.scrollWidth),Math.max(a.body.offsetWidth,a.documentElement.offsetWidth),Math.max(a.body.clientWidth,a.documentElement.clientWidth));var d=0;var l=0;if(typeof window.innerWidth!="undefined")
{

d=window.innerHeight;l=window.innerWidth
}

else
{

if(typeof a.documentElement!="undefined"&&typeof a.documentElement.clientWidth!="undefined"&&a.documentElement.clientWidth!=0)
{

d=a.documentElement.clientHeight;l=a.documentElement.clientWidth
}

else
{

d=$$("body")[0].clientHeight;l=$$("body")[0].clientWidth
}


}

if((n-d)<=4)
{

n=d
}

var h=$$(".TransparentLightBox")[0];h.style.top="0px";h.style.left="0px";h.style.height=n+"px";h.style.width=(l-20)+"px";h.style.overflow="hidden";h.style.display="block";h.show()
}

function HideCalendar()
{

$("PickCalendar").hide();$$(".TransparentLightBox").invoke("hide")
}

function ax003()
{

ax008($("PickCalendar").select(".month")[0].value,$("PickCalendar").select(".year")[0].value)
}

function ax004(b)
{

var c=new Date(b);var a=new Date();c.setHours(a.getHours(),a.getMinutes(),a.getSeconds());$(vx004).value=ax016(c,vx005);try
{

if($(vx004).onchange)
{

$(vx004).onchange();
}


}

catch(e)
{


}

HideCalendar()
}

function ax005()
{

vx003=new Date();ax009(vx003,$("PickCalendar").select(".InnerContent")[0])
}

function ax006()
{

vx003.setFullYear(vx003.getFullYear(), vx003.getMonth()+1, 1);ax009(vx003,$("PickCalendar").select(".InnerContent")[0])
}

function ax007()
{

vx003.setFullYear(vx003.getFullYear(), vx003.getMonth()-1, 1);ax009(vx003,$("PickCalendar").select(".InnerContent")[0])
}

function ax008(b,a)
{

vx003.setYear(a);vx003.setMonth(b-1);ax009(vx003,$("PickCalendar").select(".InnerContent")[0])
}

function ax009(b,a)
{

$("PickCalendar").select(".month")[0].value=b.getMonth()+1;$("PickCalendar").select(".year")[0].value=b.getFullYear();ax010(b.getMonth()+1,b.getFullYear(),a)
}

function ax011(f,c,e,a)
{

yearmonth=a.replace("%Y",c).replace("%M",e[f-1]);var b='<a href="javascript:ax007()">&lt;&lt;</a>';var d='<a href="javascript:ax006()">&gt;&gt;</a>';HTML='<tr><td class="prevNav">'+b+'</td><td colspan="5" class="yearMonth">'+yearmonth+'</td><td class="nextNav">'+d+"</td></tr>";return HTML
}

function ax012(b,a)
{

suffix="";prefix="";tdClass="header ";if(b==0)
{

prefix+="<tr>";tdClass+="sun "
}

else
{

if(b==6)
{

suffix+="</tr>";tdClass+="sat "
}


}

return prefix+'<td class="'+tdClass+'">'+a[b]+"</td>"+suffix
}

function ax010(f,d,a)
{

var b=new Date();var c=new Date(d,f-1,1);var e=new Hash();curDay=-1;if(b.getMonth()==f-1&&b.getFullYear()==d)
{

curDay=b.getDate()
}

Weeks=6*7;calendar="";c.setDate(c.getDate()-c.getDay());calendar+=ax011(f,d,vx001,vx002);for(i=0;i<7;i++)
{

calendar+=ax012(i,vx017)
}

TweekDay=0;for(;0<Weeks;Weeks--)
{

calendar+=ax015(c,f,curDay,TweekDay++);if(TweekDay>6)
{

TweekDay=0
}

c.setDate(c.getDate()+1)
}

calendar='<table border="0" cellpadding="0" cellspacing="0" class="Calendar">'+calendar+"</table>";a.innerHTML=calendar
}

function ax013(a)
{

for(i=0;i<vx001.length;i++)
{

var b=document.createElement("option");b.text=vx001[i];b.value=i+1;a.options.add(b)
}


}

function ax014(a)
{

today=new Date();renderTotalYear=15;renderFrom=today.getFullYear()-parseInt((renderTotalYear-1)/2);for(i=0;i<renderTotalYear;i++)
{

var b=document.createElement("option");b.text=renderFrom+i;b.value=renderFrom+i;a.options.add(b)
}


}

function ax015(a,d,c,b)
{

HTML="";suffix="";prefix="";tdClass="normal ";_month=a.getMonth()+1;_day=a.getDate();if(_month!=d)
{

tdClass+="outofMonth ";if(b==0)
{

prefix+="<tr>"
}

else
{

if(b==6)
{

suffix+="</tr>"
}


}


}

else
{

if(b==0)
{

prefix+="<tr>";tdClass+="sun "
}

else
{

if(b==6)
{

suffix+="</tr>";tdClass+="sat "
}


}

if(_day==c)
{

tdClass+="today "
}


}

// add by evans 20100506 start
var write_type = true;
if (calerdar_load_type == "90_today") {
    write_type = calendar_check_90_today(a);
} else if (calerdar_load_type == "30_today_after") {
    write_type = calendar_check_30_today_after(a);
} else if (calerdar_load_type == "today_after") {
    write_type = calendar_check_today_after(a);
}

if (write_type == true) {
    HTML='<a href="javascript:void(0);" class="dateName" onclick="ax004('+a.valueOf()+')">'+a.getDate()+"</a>";
} else {
    HTML='<a class="dateName" style="color:#CCCCCC;" >'+a.getDate()+"</a>";    
}
// add by evans 20100506 end

HTML=prefix+'<td class="'+tdClass+'">'+HTML+"</td>"+suffix;

return HTML
}

function ax016(g,k)
{

var a="";if(k!=null)
{

for(i=0;i<k.length;i++)
{

var l=k.charAt(i);var e=1;var d=0;if(l=="y")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="y")
{

e++
}

if(e==2)
{

a+=g.getFullYear().toString().substring(2)
}

else
{

if(e==4)
{

a+=g.getFullYear()
}


}

i+=e-1
}

else
{

if(l=="M")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="M")
{

e++
}

if(e==1)
{

a+=(g.getMonth()+1)
}

else
{

if(e==2)
{

if(g.getMonth()+1<10)
{

a+="0"+(g.getMonth()+1)
}

else
{

a+=(g.getMonth()+1)
}


}


}

i+=e-1
}

else
{

if(l=="d")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="d")
{

e++
}

if(e==1)
{

a+=g.getDate()
}

else
{

if(e==2)
{

if(g.getDate()<10)
{

a+="0"+g.getDate()
}

else
{

a+=g.getDate()
}


}


}

i+=e-1
}

else
{

if(l=="h")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="h")
{

e++
}

var f=g.getHours();if(f>12)
{

f-=12
}

else
{

if(f==0)
{

f=12
}


}

if(e==1)
{

a+=f
}

else
{

if(e==2)
{

if(f<10)
{

a+="0"+f
}

else
{

a+=f
}


}


}

i+=e-1
}

else
{

if(l=="H")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="H")
{

e++
}

if(e==1)
{

a+=g.getHours()
}

else
{

if(e==2)
{

if(g.getHours()<10)
{

a+="0"+g.getHours()
}

else
{

a+=g.getHours()
}


}


}

i+=e-1
}

else
{

if(l=="m")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="m")
{

e++
}

if(e==1)
{

a+=g.getMinutes()
}

else
{

if(e==2)
{

if(g.getMinutes()<10)
{

a+="0"+g.getMinutes()
}

else
{

a+=g.getMinutes()
}


}


}

i+=e-1
}

else
{

if(l=="s")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="s")
{

e++
}

if(e==1)
{

a+=g.getSeconds()
}

else
{

if(e==2)
{

if(g.getSeconds()<10)
{

a+="0"+g.getSeconds()
}

else
{

a+=g.getSeconds()
}


}


}

i+=e-1
}

else
{

if(l=="t")
{

e=1;d=i+1;while(d<=k.length&&k.charAt(d++)=="t")
{

e++
}

var b=g.getHours()<12;if(e==1)
{

if(b)
{

a+="a"
}

else
{

a+="p"
}


}

else
{

if(e==2)
{

if(b)
{

a+="am"
}

else
{

a+="pm"
}


}

else
{

if(e==3)
{

if(b)
{

a+="a.m."
}

else
{

a+="p.m."
}


}


}


}

i+=e-1
}

else
{

if(l=="/")
{

a+="/"
}

else
{

if(l=="-")
{

a+="-"
}

else
{

if(l==":")
{

a+=":"
}

else
{

if(l==" ")
{

a+=" "
}

else
{

if(l=="_")
{

a+="_"
}

else
{

if(l=="T")
{

a+="T"
}


}


}


}


}


}


}


}


}


}


}


}


}


}


}


}

if(a=="")
{

a=this.currentDate
}

return a
}

function ax017(w,p)
{

w=w+"";p=p+"";var v=0;var l=0;var r="";var f="";var u="";var h,g;var b=new Date();var j=b.getYear();var t=b.getMonth()+1;var s=1;var d=b.getHours();var q=b.getMinutes();var n=b.getSeconds();var k="";while(l<p.length)
{

r=p.charAt(l);f="";while((p.charAt(l)==r)&&(l<p.length))
{

f+=p.charAt(l++)
}

if(f=="yyyy"||f=="yy"||f=="y")
{

if(f=="yyyy")
{

h=4;g=4
}

if(f=="yy")
{

h=2;g=2
}

if(f=="y")
{

h=2;g=4
}

j=ax001(w,v,h,g);if(j==null)
{

return 0
}

v+=j.length;if(j.length==2)
{

if(j>70)
{

j=1900+(j-0)
}

else
{

j=2000+(j-0)
}


}


}

else
{

if(f=="MMM"||f=="NNN")
{

t=0;for(var o=0;o<MONTH_NAMES.length;o++)
{

var e=MONTH_NAMES[o];if(w.substring(v,v+e.length).toLowerCase()==e.toLowerCase())
{

if(f=="MMM"||(f=="NNN"&&o>11))
{

t=o+1;if(t>12)
{

t-=12
}

v+=e.length;break
}


}


}

if((t<1)||(t>12))
{

return 0
}


}

else
{

if(f=="EE"||f=="E")
{

for(var o=0;o<DAY_NAMES.length;o++)
{

var m=DAY_NAMES[o];if(w.substring(v,v+m.length).toLowerCase()==m.toLowerCase())
{

v+=m.length;break
}


}


}

else
{

if(f=="MM"||f=="M")
{

t=ax001(w,v,f.length,2);if(t==null||(t<1)||(t>12))
{

return 0
}

v+=t.length
}

else
{

if(f=="dd"||f=="d")
{

s=ax001(w,v,f.length,2);if(s==null||(s<1)||(s>31))
{

return 0
}

v+=s.length
}

else
{

if(f=="HH"||f=="hh"||f=="H")
{

d=ax001(w,v,f.length,2);if(d==null||(d<0)||(d>23))
{

return 0
}

v+=d.length
}

else
{

if(f=="KK"||f=="K")
{

d=ax001(w,v,f.length,2);if(d==null||(d<0)||(d>11))
{

return 0
}

v+=d.length
}

else
{

if(f=="kk"||f=="k")
{

d=ax001(w,v,f.length,2);if(d==null||(d<1)||(d>24))
{

return 0
}

v+=d.length;d--
}

else
{

if(f=="mm"||f=="mm"||f=="m")
{

q=ax001(w,v,f.length,2);if(q==null||(q<0)||(q>59))
{

return 0
}

v+=q.length
}

else
{

if(f=="ss"||f=="ss"||f=="s")
{

n=ax001(w,v,f.length,2);if(n==null||(n<0)||(n>59))
{

return 0
}

v+=n.length
}

else
{

if(f=="a")
{

if(w.substring(v,v+2).toLowerCase()=="am")
{

k="AM"
}

else
{

if(w.substring(v,v+2).toLowerCase()=="pm")
{

k="PM"
}

else
{

return 0
}


}

v+=2
}

else
{

if(w.substring(v,v+f.length)!=f)
{

return 0
}

else
{

v+=f.length
}


}


}


}


}


}


}


}


}


}


}


}


}

if(v!=w.length)
{

return 0
}

if(t==2)
{

if(((j%4==0)&&(j%100!=0))||(j%400==0))
{

if(s>29)
{

return 0
}


}

else
{

if(s>28)
{

return 0
}


}


}

if((t==4)||(t==6)||(t==9)||(t==11))
{

if(s>30)
{

return 0
}


}

if(d<12&&k=="PM")
{

d=d-0+12
}

else
{

if(d>11&&k=="AM")
{

d-=12
}


}

var a=new Date(j,t-1,s,d,q,n);return a
}

function ax001(f,d,e,c)
{

for(var a=c;a>=e;a--)
{

var b=f.substring(d,d+a);if(b.length<e)
{

return null
}

if(ax002(b))
{

return b
}


}

return null
}

function ax002(c)
{

var b="1234567890";for(var a=0;a<c.length;a++)
{

if(b.indexOf(c.charAt(a))==-1)
{

return false
}


}

return true
}

;


// add by evans 20100506 start
function calendar_check_90_today(d) {   
	var today = new Date();
	
	var date_diff = ((today-d)/(24*60*60*1000));
	if (date_diff >= 0 && date_diff <= 91) {
	    return true;
	} else {
	    return false;
	}					
}

function calendar_check_30_today_after(d) {
	var today = new Date();
	
	var date_diff = ((today-d)/(24*60*60*1000));
	if (date_diff <= 31) {
	    return true;
	} else {
	    return false;
	}						
}

function calendar_check_today_after(d) {
	var today = new Date();
	
	var date_diff = ((today-d)/(24*60*60*1000));
	if (date_diff < -1) {
	    return true;
	} else {
	    return false;
	}							
}
// add by evans 20100506 end


