var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');function LZ(x){	return(x<0||x>9?"":"0")+x}function isDate(val,format){	var date=getDateFromFormat(val,format);	if(date==0){		return false;	}	return true;}function compareDates(date1,dateformat1,date2,dateformat2){	var d1=getDateFromFormat(date1,dateformat1);	var d2=getDateFromFormat(date2,dateformat2);	if(d1==0 || d2==0){		return -1;	}else if(d1 > d2){		return 1;	}	return 0;}function formatDate(date,format){	format=format+"";	var result="";	var i_format=0;	var c="";	var token="";	var y=date.getYear()+"";	var M=date.getMonth()+1;	var d=date.getDate();	var E=date.getDay();	var H=date.getHours();	var m=date.getMinutes();	var s=date.getSeconds();	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;	var value=new Object();	if(y.length < 4){		y=""+(y-0+1900);	}	value["y"]=""+y;	value["yyyy"]=y;	value["yy"]=y.substring(2,4);	value["M"]=M;value["MM"]=LZ(M);	value["MMM"]=MONTH_NAMES[M-1];	value["NNN"]=MONTH_NAMES[M+11];	value["d"]=d;	value["dd"]=LZ(d);	value["E"]=DAY_NAMES[E+7];	value["EE"]=DAY_NAMES[E];	value["H"]=H;	value["HH"]=LZ(H);	if(H==0){		value["h"]=12;	}else if(H>12){		value["h"]=H-12;	}else{		value["h"]=H;	}		value["hh"]=LZ(value["h"]);	if(H>11){		value["K"]=H-12;	}else{		value["K"]=H;	}	value["k"]=H+1;	value["KK"]=LZ(value["K"]);	value["kk"]=LZ(value["k"]);	if(H > 11){		value["a"]="PM";	}else{		value["a"]="AM";	}	value["m"]=m;	value["mm"]=LZ(m);	value["s"]=s;	value["ss"]=LZ(s);		while(i_format < format.length){		c=format.charAt(i_format);		token="";		while((format.charAt(i_format)==c) && (i_format < format.length)){			token += format.charAt(i_format++);		}		if(value[token] != null){			result=result + value[token];		}else{			result=result + token;		}	}	return result;}function _isInteger(val){	var digits="1234567890";	for(var i=0;i < val.length;i++){		if(digits.indexOf(val.charAt(i))==-1){			return false;		}	}	return true;}function _getInt(str,i,minlength,maxlength){	for(var x=maxlength;x>=minlength;x--){		var token=str.substring(i,i+x);		if(token.length < minlength){			return null;		}		if(_isInteger(token)){			return token;		}	}	return null;}function getDateFromFormat(val,format){	val=val+"";	format=format+"";	var i_val=0;	var i_format=0;	var c="";	var token="";	var token2="";	var x,y;	var now=new Date();	var year=now.getYear();	var month=now.getMonth()+1;	var date=1;	var hh=now.getHours();	var mm=now.getMinutes();	var ss=now.getSeconds();	var ampm="";	while(i_format < format.length){		c=format.charAt(i_format);		token="";		while((format.charAt(i_format)==c) && (i_format < format.length)){			token += format.charAt(i_format++);		}		if(token=="yyyy" || token=="yy" || token=="y"){			if(token=="yyyy"){				x=4;y=4;			}			if(token=="yy"){				x=2;y=2;			}			if(token=="y"){				x=2;y=4;			}			year=_getInt(val,i_val,x,y);			if(year==null){				return 0;			}			i_val += year.length;			if(year.length==2){				if(year > 70){					year=1900+(year-0);				}else{					year=2000+(year-0);				}			}		} else if(token=="MMM"||token=="NNN"){			month=0;			for(var i=0;i<MONTH_NAMES.length;i++){				var month_name=MONTH_NAMES[i];				if(val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()){					if(token=="MMM"||(token=="NNN"&&i>11)){						month=i+1;						if(month>12){							month -= 12;						}						i_val += month_name.length;						break;					}				}			}			if((month < 1)||(month>12)){				return 0;			}		} else if(token=="EE"||token=="E"){			for(var i=0;i<DAY_NAMES.length;i++){				var day_name=DAY_NAMES[i];				if(val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()){					i_val += day_name.length;					break;				}			}		} else if(token=="MM"||token=="M"){			month=_getInt(val,i_val,token.length,2);			if(month==null||(month<1)||(month>12)){				return 0;			}			i_val+=month.length;		} else if(token=="dd"||token=="d"){			date=_getInt(val,i_val,token.length,2);			if(date==null||(date<1)||(date>31)){				return 0;			}			i_val+=date.length;		} else if(token=="hh"||token=="h"){			hh=_getInt(val,i_val,token.length,2);			if(hh==null||(hh<1)||(hh>12)){				return 0;			}			i_val+=hh.length;		} else if(token=="HH"||token=="H"){			hh=_getInt(val,i_val,token.length,2);			if(hh==null||(hh<0)||(hh>23)){				return 0;			}			i_val+=hh.length;		} else if(token=="KK"||token=="K"){			hh=_getInt(val,i_val,token.length,2);			if(hh==null||(hh<0)||(hh>11)){				return 0;			}			i_val+=hh.length;		} else if(token=="kk"||token=="k"){			hh=_getInt(val,i_val,token.length,2);			if(hh==null||(hh<1)||(hh>24)){				return 0;			}			i_val+=hh.length;hh--;		} else if(token=="mm"||token=="m"){			mm=_getInt(val,i_val,token.length,2);			if(mm==null||(mm<0)||(mm>59)){				return 0;			}			i_val+=mm.length;		} else if(token=="ss"||token=="s"){			ss=_getInt(val,i_val,token.length,2);			if(ss==null||(ss<0)||(ss>59)){				return 0;			}			i_val+=ss.length;		} else if(token=="a"){			if(val.substring(i_val,i_val+2).toLowerCase()=="am"){				ampm="AM";			} else if(val.substring(i_val,i_val+2).toLowerCase()=="pm"){				ampm="PM";			} else {				return 0;			}			i_val+=2;		} else {			if(val.substring(i_val,i_val+token.length)!=token){				return 0;			} else {				i_val+=token.length;			}		}	}	if(i_val != val.length){		return 0;	}	if(month==2){		if( ((year%4==0)&&(year%100 != 0) ) ||(year%400==0) ){			if(date > 29){				return 0;			}		} else {			if(date > 28){				return 0;			}		}	}	if((month==4)||(month==6)||(month==9)||(month==11)){		if(date > 30){			return 0;		}	}	if(hh<12 && ampm=="PM"){		hh=hh-0+12;	} else if(hh>11 && ampm=="AM"){		hh-=12;	}	var newdate=new Date(year,month-1,date,hh,mm,ss);	return newdate.getTime();}function parseDate(val){	var preferEuro=(arguments.length==2)?arguments[1]:false;	generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d');	monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d');	dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M');	var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst');	var d=null;	for(var i=0;i<checkList.length;i++){		var l=window[checkList[i]];		for(var j=0;j<l.length;j++){			d=getDateFromFormat(val,l[j]);			if(d!=0){				return new Date(d);			}		}	}	return null;}