var cF=null;var cW=null;var g_tid=0;var g_cP,g_eD,g_eDP,g_dmin,g_dmax;
var nextFocus;var g_fNoCal=false;


function GetDowStart() { return 1; }
function GetDateFmt() { return "ddMMMyy"; }
function GetDateSep() { return "/"; }

function funcionMes(m)
{
var mes;

if (isNaN(parseInt(m)))
 
{
 m = m.toLowerCase();
switch (m) { 
          
          case "Jan":
               case "jan":
               case "Ene":
               case "ene":
                
               mes=1; 
               break; 
       
            case "Feb":
            case "feb": 
               mes=2; 
               break; 
       
            case "Mar":
            case "mar": 
               mes=3; 
               break; 
      
            case "Apr":
            case "apr":
            case "Abr":
            case "abr": 
               mes=4; 
               break; 
       
            case "May":
            case "may": 
               mes=5; 
               break;
            
            case "Jun":
            case "jun": 
               mes=6; 
               break; 
          
            case "Jul":
            case "jul": 
               mes=7; 
               break; 
         
            case "Aug":
            case "aug":
            case "Ago":
            case "ago": 
               mes=8; 
               break; 
         
            case "sep":
            case "Sep":
             
               mes=9;
               break; 
     
            case "Oct":
            case "oct": 
               mes=10; 
               break;
      
            case "Nov":
            case "nov": 
               mes=11; 
               break; 
          
            case "Dec":
            case "dec":
            case "Dic":
            case "dic": 
               mes=12 ;
               break; 
            default: 
  
                return false;
          }
   }
   else
   {
      mes=eval(m);
      if (mes>=1 && mes<= 12) return mes;
      else return false;
     
   }
          
            return mes;
}


    function fechaAdd(fech,idioma) {
        var farrayFecha;
        var fdia;
        var fmes;
        var fanyo;
        var fret;
        
        
        var fmeses_en = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
        var fmeses_es = new Array("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic");
        
        farrayFecha = fech.split("/");
        fanyo = parseInt(farrayFecha[2]);
        fdia  = parseInt(farrayFecha[0]) + 3;
        fmes = funcionMes(farrayFecha[1]);

        var fmax = new Date(fanyo,fmes-1,fdia);

        if (idioma=="es")  {  fret = fmax.getDate() + "/" + fmeses_es[fmax.getMonth()] + "/" + fmax.getFullYear();}
        else {fret = fmax.getDate() + "/" + fmeses_en[fmax.getMonth()] + "/" + fmax.getFullYear();}
        return fret;
        
    }




function getEventObj(e){if(!e)e=window.event;return e;}

function stopBubble(e){e=getEventObj(e);e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();}

function CB(){stopBubble(event);}

function SCal(cP,eD,eDP,dmin,dmax,drng){
 clearTimeout(g_tid);
 if(g_fNoCal){g_fNoCal=false;return;}
	if(g_calShown && eD==g_eD)return;
	SetCalShown(true);
	g_calCB = null;
 g_cP=cP;
 g_eD=eD;
 g_eDP=eDP;
 g_dmin=dmin;
 g_dmax=dmax;
 g_drng=drng;
 WaitCal();
 }
 
 
 
function CancelCal(){
	clearTimeout(g_tid);
	if(!cF)cF=getObj('CalFrame');
	cF.style.visibility="hidden";
	g_calShown=false;
}

function WaitCal()
{ 
 if(!cW)cW=frames['CalFrame'];

 if(null==cW||null==cW.g_fCL||false==cW.g_fCL){
	g_tid=setTimeout("WaitCal()", 200);
	}
 else{
 if(!cF)cF=getObj('CalFrame');
	cF.style.visibility="hidden";
	setTimeout("DoCal()",1);
	}
}
function DoCal(){PosCal(g_cP);
if(!cW)cW=frames['CalFrame'];
cW.DoCal(g_eD,g_eDP,g_dmin,g_dmax,g_drng);}

function getScrollTop()
{
	if(document.documentElement.scrollTop) return document.documentElement.scrollTop;
	if(document.body.scrollTop) return document.body.scrollTop;
	if(window.pageYOffset) return window.pageYOffset;
	return 0;
}

function getWinHeight()
{
	if(window.innerHeight) return window.innerHeight;
	if(document.documentElement.clientHeight) return document.documentElement.clientHeight;
	if(document.body.clientHeight) return document.body.clientHeight;
	return 0;
}

function PosCal(cP)
{
	var dB=document.body;var eL=0;var eT=0;
 if(!cF)cF=getObj('CalFrame');
	for(var p=cP;p&&p.tagName!='BODY';p=p.offsetParent){eL+=p.offsetLeft;eT+=p.offsetTop;}
	var eH=cP.offsetHeight;var dH=parseInt(cF.style.height);var sT=getScrollTop();
	if(eT-dH>=sT&&eT+eH+dH>getWinHeight()+sT)eT-=dH;else eT+=eH;
	cF.style.left=eL+'px';cF.style.top=eT+'px';
}

function SetNextFocus(e){nextFocus=e;if(nextFocus)nextFocus.onfocus=CancelCal;}
function SetPrevFocus(e){if(e)e.onfocus=CancelCal;}

function FGoNextFocus(){if(nextFocus){nextFocus.focus();return true;}return false;}

function CalSetFocus(e){if(e){g_fNoCal=true;e.focus();setTimeout("EndCalFocus()", 200);}}
function EndCalFocus(){g_fNoCal=false;}



function CalDateSet(eInp,d,m,y,idioma,giveFocus)
{
	//alert(idioma);
	var ds=GetDateSep();
	var fmt=GetDateFmt();
    var meses_en = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	var meses_es = new Array("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic");
	if(fmt=="mmddyy")eInp.value=m+ds+d+ds+y;
	else if(fmt=="ddmmyy")eInp.value=d+ds+m+ds+y;
	else if(fmt=="ddMMMyy")
	{
	    if (idioma=="en")
	        eInp.value=d+ds+meses_en[m-1]+ds+y;
	    if (idioma=="es") 
	      eInp.value=d+ds+meses_es[m-1]+ds+y;
	} 
	else eInp.value=y+ds+m+ds+d;
	if(!giveFocus)
	CalSetFocus(eInp);
}

var g_calShown = false;
function SetCalShown(fcshown){
	g_calShown=fcshown;
	
	// Apaņo para eliminar problema con el IE
	if(!cF)cF=getObj('CalFrame');
	if (fcshown)
		cF.style.height="168px";
	else
		cF.style.height="0px";
}

var g_calCB;
function CalendarCallback(){if(g_calCB)g_calCB();}
function SetCalendarCallback(cb){g_calCB=cb;}

function funcionMes(m)
{
var mes;

if (isNaN(parseInt(m)))
 
{
 m = m.toLowerCase();
switch (m) { 
          
          case "Jan":
               case "jan":
               case "Ene":
               case "ene":
                
               mes=1; 
               break; 
       
            case "Feb":
            case "feb": 
               mes=2; 
               break; 
       
            case "Mar":
            case "mar": 
               mes=3; 
               break; 
      
            case "Apr":
            case "apr":
            case "Abr":
            case "abr": 
               mes=4; 
               break; 
       
            case "May":
            case "may": 
               mes=5; 
               break;
            
            case "Jun":
            case "jun": 
               mes=6; 
               break; 
          
            case "Jul":
            case "jul": 
               mes=7; 
               break; 
         
            case "Aug":
            case "aug":
            case "Ago":
            case "ago": 
               mes=8; 
               break; 
         
            case "sep":
            case "Sep":
             
               mes=9;
               break; 
     
            case "Oct":
            case "oct": 
               mes=10; 
               break;
      
            case "Nov":
            case "nov": 
               mes=11; 
               break; 
          
            case "Dec":
            case "dec":
            case "Dic":
            case "dic": 
               mes=12 ;
               break; 
            default: 
  
                return false;
          }
   }
   else
   {
      mes=eval(m);
      if (mes>=1 && mes<= 12) return mes;
      else return false;
     
   }
          
            return mes;
}


function GetInputDate(t)
{
	var fmt=GetDateFmt();
	t = trim(t);
	if(!t.length) return null;
	if(fmt!="ddMMMyy" && fmt!="ddMMMyyyy")
	{
	    t=t.replace(/\s+/g,"");
	    if(t.match(/[^-|\d|\.|\/]/)) return null;
	}
	var rgt=t.split("/");
	if(fmt!="ddMMMyy" && fmt!="ddMMMyyyy")
	{
	    for(var i=0;i<rgt.length;i++) rgt[i]=parseInt(rgt[i],10);
	    if(!rgt[1]) return null;
	}
	var m,d,y;
	
	if(fmt=="ddMMMyy"||fmt=="ddMMMyyyy")
	{
	    d=rgt[0];
	    m = funcionMes(rgt[1]);
	    y = rgt[2];
	    return new Date(y,m-1,d);
	}
	
	if(fmt=="yymmdd")
	{
	if(!rgt[2]) return null;
	m=rgt[1];d=rgt[2];y=rgt[0];
	}
	else
	{
	if(fmt=="mmddyy"){m=rgt[0];d=rgt[1];}
	else{m=rgt[1];d=rgt[0];}//fmt=="ddmmyy"
	if(rgt[2])y=rgt[2];
	else y=DefYr(m-1,d);
	}
	m-=1;if(y<100)y+=2000;
	if(y<1601||y>4500||m<0||m>11||d<1||d>GetMonthCount(m,y))return null;
	return new Date(y,m,d);
}

var rM=new Array(12);rM[0]=rM[2]=rM[4]=rM[6]=rM[7]=rM[9]=rM[11]=31;rM[3]=rM[5]=rM[8]=rM[10]=30;rM[1]=28;
function GetMonthCount(m,y){var c=rM[m];if((1==m)&&IsLY(y))c++;return c;}
function IsLY(y){if(0==y%4&&((y%100!=0)||(y%400==0)))return true;else return false;}
function DefYr(m,d){var dt=new Date();var yC=(dt.getYear()<1000)?1900+dt.getYear():dt.getYear();if(m<dt.getMonth()||(m==dt.getMonth()&&d<dt.getDate()))yC++;return yC;}