var MONTH_NAMES=new Array('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь',
'Октябрь','Ноябрь','Декабрь','Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Сен','Окт','Ноя','Дек');
var DAY_NAMES=new Array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота','Вс','Пн','Вт','Ср','Чт','Пт','Сб');

function formatDate(date,f){
var r="";
var i=0;
var c="";
var y=date.getYear()+"";
var M=date.getMonth()+1;
var d=date.getDate();
var yyyy,yy,MMM,MM,dd;
var E=date.getDay();
var v=new Object();
if(y.length<4)
y=""+(y-0+1900);
v["y"]=""+y;
v["yyyy"]=y;
v["yy"]=y.substring(2,4);
v["M"]=M;
v["MM"]=LZ(M);
v["MMM"]=MONTH_NAMES[M-1];
v["NNN"]=MONTH_NAMES[M+11];
v["d"]=d;
v["dd"]=LZ(d);
v["E"]=DAY_NAMES[E+7];
v["EE"]=DAY_NAMES[E];
while(i<f.length){
c=f.charAt(i);
var t="";
while((f.charAt(i)==c)&&(i<f.length))
t+=f.charAt(i++);
r+=v[t]!=null?v[t]:t;}
return r;
}

function LZ(x){return(x<0||x>9?"":"0")+x}

function _isInteger(v){
for(var i=0;i<v.length;i++)
if("1234567890".indexOf(v.charAt(i))==-1)
return false;
return true;
}

function _getInt(s,i,mi,ma){
for(var x=ma;x>=mi;x--){
var t=s.substring(i,i+x);
if(t.length<mi)return null;
if(_isInteger(t))return t;}
return null;
}

function getDateFromFormat(v,f){
var iv=0;
var ifm=0;
var n=new Date();
var y=n.getYear();
var m=n.getMonth()+1;
var d=1;
while(ifm<f.length){
var x,z;
var c=f.charAt(ifm);
var t="";
while((f.charAt(ifm)==c)&&(ifm<f.length))
t+=f.charAt(ifm++);
if(t=="yyyy"||t=="yy"||t=="y"){
if(t=="yyyy"){x=4;z=4;}
if(t=="yy"){x=2;z=2;}
if(t=="y"){x=2;z=4;}
y=_getInt(v,iv,x,z);
if(y==null)
return 0;
iv+=y.length;
if(y.length==2)
y=y>70?1900+(y-0):2000+(y-0);}
else if(t=="MMM"||t=="NNN"){
m=0;
for(var i=0;i<MONTH_NAMES.length;i++){
var mn=MONTH_NAMES[i];
if(v.substring(iv,iv+mn.length).toLowerCase()==mn.toLowerCase()){
if(t=="MMM"||(t=="NNN"&&i>11)){
m=i+1;
if(m>12)
m-=12;
iv+=mn.length;
break;}}}
if((m<1)||(m>12))
return 0;}
else if(t=="MM"||t=="M"){
m=_getInt(v,iv,t.length,2);
if(m==null||(m<1)||(m>12))
return 0;
iv+=m.length;}
else if(t=="dd"||t=="d"){
d=_getInt(v,iv,t.length,2);
if(d==null||(d<1)||(d>31))
return 0;
iv+=d.length;}
else{
if(v.substring(iv,iv+t.length)!=t)
return 0;
else
iv+=t.length;}}
if(iv!=v.length)
return 0;
if(m==2){
if(((y%4==0)&&(y%100!=0))||(y%400==0)){
if(d>29)
return 0;}
else{if(d>28)
return 0;}}
if((m==4)||(m==6)||(m==9)||(m==11)){
if(d>30)
return 0;}
return new Date(y,m-1,d).getTime();
}
