//by Cristian [v5.1 14/12/2010]
CalendarioV = function(r, i, i2, fi, la, d, fnc, tm) {
	var _arg = {
		d : d || '',
		t : tm || ''
	}
	fCalendario.Funcion = fnc;
	fCalendario.InputA = $(i);
	fCalendario.InputB = eval(i2);	
	fCalendario.Conn.AS(r ? fi : fCalendario.InputB.value, r ? fCalendario.InputB.value : '', la, _arg.d, fCalendario.InputA.get('value'), _arg.t);
}
//
Calendario = function(i, fi, la, d, fnc, tm) {
	var _arg = {
		d : d || '',
		t : tm || ''
	}
	fCalendario.Funcion = fnc;
	fCalendario.InputA = $(i);	
	fCalendario.Conn.AS(fi, '', la, _arg.d, fCalendario.InputA.get('value'), _arg.t);
}
//
new Element('div', {
	id: 'calendario_WRAP',
	styles : { 'position' : 'absolute', 'z-index' : '80000', 'left' : '0',	'top' : '-200px', 'width' : '315px', 'height' : '168px'}
}).injectInside(document.body);
//
new Swiff('calendarioflash/calendario.v5.swf', {
	id: 'calendario_SWF',
	width: 315,
	height: 168,
	container: 'calendario_WRAP',
	params: {
		quality:"autohigh",
		bgcolor:"#ffffff",
		allowScriptAccess:"always",
		swLiveConnect:"true",
		wMode:"window"
	}
});
//
fCalendario = {
	Funcion : null,
	InputA : null,
	InputB : null,
	_estado : 0,
	Conn : {
		JS : function(f,t){
			fCalendario.InputA.set({
				'value' : f,
				'title' : t
			});
			fCalendario.Cerrar();			
		},
		AS : function(){
			var _args = fCalendario.Conn.AS.arguments;
			var _cSWF = fCalendario.Get.Obj('calendario_SWF');		
			var _deshaSem = _deshaDias = "";
			var _dh = _args[3];
			var _desha = _dh.split("#");
			if(_desha.length<2){
				if(_desha[0].indexOf("/")>-1 || _desha[0].indexOf("-")>-1 || _desha[0].indexOf(".")>-1){
					_deshaDias = _desha[0]; 
				}else{
					_deshaSem = _desha[0];
				} 
			}else{
				_deshaSem = _desha[0];
				_deshaDias = _desha[1];
			}
			var _tm = (_args[5] == '') ? 24 : _args[5];						
			if (_cSWF != null) _cSWF.Conecta(_args[0], _args[1], _args[2], _deshaSem, _deshaDias, _args[4], _tm);			
			fCalendario.Abrir();
		}
	},
	ExecF : function(){		
		if(typeof fCalendario.Funcion == "string") eval(fCalendario.Funcion);
		fCalendario.Funcion = null;				
	},
	Cerrar : function(){
		var _cDIV = fCalendario.Get.Obj('calendario_WRAP');
		_cDIV.setStyle('top', '-200px');	
		fCalendario._estado = 0;
		fCalendario.ExecF();		
	},
	Abrir : function(){
		var _cDIV = fCalendario.Get.Obj('calendario_WRAP');		
		var _c = fCalendario.Get.Pos(fCalendario.InputA);	
		_cDIV.setStyles({	
			left : _c[0]+'px',
			top : _c[1]+'px'			
		});
		clearTimeout(_fCalendario_delay_close);
		_fCalendario_delay_close = fCalendario.Cerrar.delay(2000);
		fCalendario._estado = 1;
	},
	Get : {
		Obj : function(o){
			return $(o);
		},	
		Pos : function(a) {		
			return [a.getCoordinates().left, a.getCoordinates().bottom+1];
		}
	}
}
var _fCalendario_delay_close;
$('calendario_WRAP').addEvents({
	'mouseleave' : function() {
		if (fCalendario._estado){
			clearTimeout(_fCalendario_delay_close);
			_fCalendario_delay_close = fCalendario.Cerrar.delay(1000);
		}
	},
	'mouseenter' : function() {
		if (fCalendario._estado) clearTimeout(_fCalendario_delay_close);
	}
});
