DomLoaded.load(inicializar);

function inicializar ()
{
	revisaUrl();
	inicializaCalendarios();
	inicializaFormas();
	Behaviour.register(reglas);
	Behaviour.apply();
}

function inicializaFormas()
{
	var formas=document.getElementsByTagName('form');
	if (formas.length>0)
	{		
		var arreglo = new Array();
		arreglo=(document.URL.split('/'))
		var nombre=arreglo[arreglo.length-1].split('.')[0];
		if (!$(nombre))
			nombre=formas[0].id;
		if (Form.findFirstElement(nombre))
			Form.focusFirstElement(nombre);
		formas=$A(formas);
		formas.each(function(elemento){var clases=new Object();var size=0;if (elemento.hasClassName('bloquear')){$('submit').disabled=true;}if (elemento.hasClassName('popup')){clases['popup']=1;size++;}if (elemento.hasClassName('reload')){clases['reload']=1;size++;}if (url.hasOwnProperty('forma')){clases['forma']=url.forma;size++;}if (elemento.hasClassName('close')){clases['close']=1;size++;}if (size>0){var params=$H(clases);elemento.action=elemento.action+'?'+params.toQueryString();}});		
	}
	var campos=document.getElementsBySelector('option.modelo');
	if (campos.length>0)			
	{				
		campos=$A(campos);
		var valor=0;
		valor=$('idmarca').value;
		if (valor!=0)				
		{					
			var marca='marca_'+valor;					
			campos.each(function(elemento){if (Element.hasClassName(elemento,marca)){Element.show(elemento);}else{Element.hide(elemento);}});
		}
		else
			campos.each(function(elemento){Element.show(elemento);});
	}				
	var campos=document.getElementsBySelector('input.campo_bloqueado');
	if (campos.length>0)
	{		
		campos=$A(campos);
		campos.each(function(elemento){elemento.disabled=true;});
	}
}

function inicializaCalendarios()
{
	var calendarios=document.getElementsByClassName('calendario');	
	if (calendarios.length>0)
	{
		calendarios=$A(calendarios);
		calendarios.each(function(elemento){Calendar.setup({inputField:elemento.id.split('_')[0],button:elemento.id});});
		var campos_calendario=document.getElementsByClassName('campo_calendario');
		campos_calendario=$A(campos_calendario);
		campos_calendario.each(function(elemento){elemento.disabled=true;});
	}
}

function revisaUrl()
{
	if (url.hasOwnProperty('popup'))
	{
		var elementos = document.getElementsByClassName('ocultarPopup');
		elementos=$A(elementos);
		elementos.each(function(elemento){Element.hide(elemento);});
		if ($('ventanaCerrar'))
			$('ventanaCerrar').style.display = 'block';
	}	
	if (url.hasOwnProperty('reload'))
	{
		var errores = document.getElementsByClassName('error');
		var highlights = document.getElementsByClassName('highlight');
		if ((errores.length==0)&&(highlights.length==0))
		{
			if (url.hasOwnProperty('forma'))
			{
				var forma=opener.$(url.forma);
				if (forma)
				{
					var auxiliar = new Date();
					forma.append('input',{type:'hidden',name:url.forma+auxiliar.getTime(),value:'1'});
					forma.enable();
					forma.submit();
				}
			}
			else
				if (opener)
					opener.location.reload();
		}
	}
	if (url.hasOwnProperty('print'))
		window.print();
	if (url.hasOwnProperty('close'))
	{
		var errores = document.getElementsByClassName('error');
		var highlights = document.getElementsByClassName('highlight');
		if ((errores.length==0)&&(highlights.length==0))
		window.close();
	}
		
}

function habilitaCalendarios()
{
	var campos_calendario=document.getElementsByClassName('campo_calendario');
	campos_calendario=$A(campos_calendario);
	campos_calendario.each(function(elemento){elemento.disabled=false;});
}

function abrirPopup(liga,id,imprimir,recargar,cerrar)
{
	if (String(liga).indexOf('?')==-1)
		liga=liga+'?popup=1';
	else
		liga=liga+'&popup=1';
	if (id!=null)
		liga=liga+'&forma='+id;
	if (imprimir)
		liga=liga+'&print=1';
	if (recargar)
		liga=liga+'&reload=1';	
	if (cerrar)
		liga=liga+'&close=1';			
	var ventana=window.open(liga,'ventana', 'location=no,width='+anchoPopup+',height='+altoPopup+',scrollbars=yes');
	ventana.focus();
}

function abrirPrincipal(el)
{
	var flag=true;
	if (window.opener)
	{
		window.close();
		window.opener.focus();
		window.opener.location.href=el;		
		flag=false;
	}
	return flag;
}

function formatoMoneda(valor)
{
	valor += '';
	x = valor.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

var reglas = 
{
	'#formulario' : function(el)
	{
		el.onsubmit = function()
		{		
			vf = new validadorDeFormas(el.id);
			return revisarFormulario(vf);
		}
	}
}

function revisarFormulario(vf)
{
	vf.limpiaErrores();
	vf.estaVacio('nombre');
	vf.estaVacio('compania');
	vf.esEmail('email',true);
	vf.estaVacio('telefono');
	vf.estaVacio('comentarios');
	vf.esOpcion('estado');
	return !vf.hayErrores();
}
