

function EjecutaASP( pDestino, pMetodo, pDatos )
{

	var Navegador=navigator.appName;
	if(Navegador="Microsoft Internet Explorer")
	{	
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{ 
		var xmlhttp = new XMLHttpRequest();
	}
	var strRespuesta = "";
	xmlhttp.open(pMetodo, pDestino ,false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
	pDatos = AplicaEscape(pDatos);
	xmlhttp.send(pDatos);
	//alert(xmlhttp.responseText)
	strRespuesta = xmlhttp.responseText;	
	return strRespuesta;
	
	/*var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	var strRespuesta = "";
	xmlhttp.Open(pMetodo, pDestino ,0);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
	pDatos = AplicaEscape(pDatos);
	xmlhttp.send(pDatos);
	//alert("res=" + xmlhttp.responseText)
	strRespuesta = xmlhttp.responseText;	
	return strRespuesta;*/
	
}


function ActualizaElemento( pElemento, pContenidoHTML )
{	

	var Elemento = eval('document.all.' + pElemento);

	if (Elemento != undefined)
	{
		Elemento.outerHTML = pContenidoHTML; 
		//alert("entra");	
		return true;
	}
}

function ActualizaGrid(pGrid, pOrdenar, pAscendente, pPagina)
{	
	var da = document.all;
//	alert(da.txtAscendente.value);
	if (pOrdenar == -1 && document.all.txtOrdenar.value != -1){
		pOrdenar = document.all.txtOrdenar.value;
		pAscendente = document.all.txtAscendente.value;
	}else{
		document.all.txtOrdenar.value = pOrdenar;
		document.all.txtAscendente.value = pAscendente;
	}
	
//	alert(da.txtAscendente.value);

	if(da.Grids != undefined)
	{
		for(i=0;i<da.Grids.length;i++)
		{
			if(da.Grids[i].value==pGrid)
				break;
		}
		var SQL=da.SQL[i].value;
	}	
	else
		var SQL = da.SQL.value;

	//alert(SQL);
	var strHTML = EjecutaASP("LlenaGrid3.asp", "POST", "NombreGrid=" + pGrid + "&SQL=" + SQL + "&Pagina=" + pPagina + "&Ordenar=" + pOrdenar + "&Ascendente=" + pAscendente);
	ActualizaElemento(pGrid, strHTML );

	document.all.txtPagina.value = pPagina

}

/*function ActualizaGrid(pGrid, pOrdenar, pAscendente)
{	var da = document.all;
	if(da.Grids != undefined)
	{
		for(i=0;i<da.Grids.length;i++)
		{
			if(da.Grids[i].value==pGrid)
				break;
		}
		var SQL=da.SQL[i].value;
	}	
	else
		var SQL = da.SQL.value;

	var strHTML = EjecutaASP("LlenaGrid3.asp", "POST", "NombreGrid=" + pGrid + "&SQL=" + SQL + "&Pagina=1&Ordenar=" + pOrdenar + "&Ascendente=" + pAscendente);
	ActualizaElemento(pGrid, strHTML );


//	alert(strHTML)
//	var html = String(strHTML);
//		alert(html.substring(3500,4200))
	//window.open("LlenaGrid2.asp?NombreGrid=" + pGrid + "&SQL=" + da.SQL.value + "&Pagina=1&Ordenar=" + pOrdenar + "&Ascendente=" + pAscendente,"ActualizaGrid","toolbar=no,scrollbars=no,height=100,width=300");
}

*/
function AplicaEscape(Texto)
{
	var Valor;
	Texto = String(Texto);
	Param = String(Texto);
	var Valor;
	var ValorNew
	do {
		if (Param.indexOf("&") > -1)
		{
			Valor = Param.substring(Param.indexOf("=") + 1 ,Param.indexOf("&"));
		}
		else
		{
			Valor = Param.substring(Param.indexOf("=") + 1,Param.length);
		}
		ValorNew = escape(Valor);
		Texto = Texto.replace(Valor,ValorNew);

		if (Param.indexOf("&") > -1)
		{
			Param = Param.substring(Param.indexOf("&") + 1,Param.length);
		}
		else
		{
			Param = "";
		}
		
	}while (Param.length > 0);
	return Texto;
}


function ObtieneCampo(pCadena, pCampo)
{
	var Cadena = String(pCadena);
	var Campo = String(pCampo);
	var IniciaValor;
	var TerminaValor;
	var Valor;

	if(Cadena.indexOf(pCampo)>-1)
	{
		IniciaValor = Cadena.indexOf(pCampo) + Campo.length + 1;
		TerminaValor = Cadena.indexOf("|",IniciaValor);
		if(TerminaValor=="-1")
			Valor = Cadena.substr(IniciaValor);
		else	
			Valor = Cadena.substring(IniciaValor, TerminaValor);
	}
	else
	{
		Valor="No se encuentra el campo";
	}
	return Valor;
}


function Eliminar(pTabla,pId)
{	
	if(pTabla=="Tecnico")
		EliminaTecnico(pId);
	else
	{
		var da = document.all;
		var SQL = "Delete from " + pTabla + " where Id" + pTabla + "="	+ pId;
		da.SQL.value = SQL;
		da.EsRecordset.value = 0;
		document.frmVer.action="Ejecuta_SQL.asp" ;
		document.frmVer.submit();
	}
}

/*
function Regersar()
{

	//document.frmForma.action=document.all.RegersarA.value;
	//document.frmForma.submit();
	window.close();
}


	*/
function ActualizaReportes(pGrid)
{
	var da = document.all;
	var IdCentro=document.all.cmbCentro.value;


	var FechaInicio = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaInicio.value);
	var FechaFin = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaFin.value);


	if(da.txt.value=="mispendientes")
		var SQL= "exec Recuperat_Pendientes " + da.IDUsuario.value 
	else
		var SQL= "exec Recuperat_Requerimientos " + da.IDUsuario.value 
	
	if(da.chkPorFechaLevantamiento.checked)
		SQL = SQL + ",1," 
	else
		SQL = SQL + ",0,"
	if(da.chkPorFechaCompromiso.checked)
		SQL = SQL + "1,"
	else
		SQL = SQL + "0,"
	if(da.chkPorFechaCierre.checked)
		SQL = SQL + "1,"
	else
		SQL = SQL + "0,"
	SQL = SQL + "'" + da.txtFechaInicio.value + "','" + da.txtFechaFin.value + "',"
	SQL = SQL + "-300" + "," + da.cmbUsuarioSolicita.value + ","
	SQL = SQL + da.cmbResponsables.value  + ",0,"
//	SQL = SQL + da.cmbResponsables.value  + "," + da.EsJefe.value + ","
	SQL = SQL + da.cmbStatus.value  + ",1," + da.cmbDepartamentos.value + "," + IdCentro;
	da.SQL.value = SQL;
	da.IdStatusVer.value = da.cmbStatus.value;
	//location.replace("prueba.asp?SQL=" + SQL);
	ActualizaGrid(pGrid, document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}
	
function JSClock() {
	var temp = EjecutaASP("FormatoHora.asp", "POST", "Hora=");

/*	
   var time = new Date()
   var hour = time.getHours()
   var minute = time.getMinutes()
   var second = time.getSeconds()
//   var temp = "" + ((hour > 12) ? hour - 12 : hour)
   var temp = "" +  hour
   temp += ((minute < 10) ? ":0" : ":") + minute

   temp += ((second < 10) ? ":0" : ":") + second
//   temp += (hour >= 12) ? " P.M." : " A.M."
*/
   return temp
}


/*
function Reporte(pIdReporte)
{

	var IDPerfil=document.all.txtIDPerfil.value;
	//alert(IDPerfil);
	var da = document.all;

	if(document.all.Destino.value=="FormatoImpresion")

		window.open("Reporte_Impresion.asp?IDReporte=" + pIdReporte,"","toolbar=yes,scrollbars=yes,height=600,width=1000");
	else	
	{
		//document.frmForma.action = "Reporte_ABC.asp?IDReporte=" + pIdReporte;
		//document.frmForma.submit();
		
		if(IDPerfil==4)
		{
		window.open("Reporte_ABCC.asp?IDReporte=" + pIdReporte,"","toolbar=yes,scrollbars=yes,height=600,width=1000");
		}
		else
		{
		window.open("Reporte_ABC.asp?IDReporte=" + pIdReporte,"","toolbar=yes,scrollbars=yes,height=600,width=1000");
			}
	}
}


*/

function GuardaAreaSeguimiento()
{
	var da = document.all;
	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	
//	var Fecha = new Date();
//	Fecha = Fecha.getFullYear() + "/" + (parseInt(Fecha.getMonth()) + 1) + "/" + Fecha.getDate();
	var FechaProgramada = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaProgramada.value + "&Formato=dmy");
	//if(IDStatus=="1")
	//{
		var DifFecha = EjecutaASP("DifFecha.asp", "POST", "Fecha1=" + FechaProgramada + "&Fecha2=" + Fecha + "&Intervalo=d");
		if(DifFecha>0)
		{
			alert("La fecha programada no puede ser anterior al dia de hoy");
			return false;
		}
	//}
	if(da.txtPorcentajeAvance.value > 100)
	{
		alert("El porcentaje de avance no puede ser mayor a 100.")
		return false;
	}

	var Hora = JSClock();

	if(da.IDResponsable.value!=da.cmbAtiende.value )
		if(confirm("El responsable especificado por el usuario es diferente a quien lo va a atender, ¿Es correcto? "))
		{
			var IDResponsable = da.cmbAtiende.value
			SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario,Automatico) values ";
			SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Requerimiento reasignado a " + da.cmbAtiende.options[da.cmbAtiende.selectedIndex].text + "',1 );"
			strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
		}
		else 
			return false;
	else
		var IdResponsable = da.cmbAtiende.value
		
	if(da.txtCantidad.value=="")
		var Cantidad = "0"
	else	
		var Cantidad = da.txtCantidad.value
	
//	if(da.IDStatus.value=="1")
// Hay que corregir esta condicion

	if(da.cmbCausas.value=="-100")
		var IdCausaRetraso = "0"
	else	
		var Cantidad = da.cmbCausas.value

	var IdStatus = "3"

	var IdReporte=document.all.txtIdReporte.value;
	var IdResponsable=document.all.cmbAtiende.value;
	var FechaProgramada=document.all.txtFechaProgramada.value;
	var IdCausaRetraso=document.all.cmbCausas.value;
	var Cantidad=document.all.txtCantidad.value;
	var PorcentajeAvance=document.all.txtPorcentajeAvance.value;
	var IdProveedor=document.all.cmbProveedor.value;
	var ServicioExtra=document.all.txtServicioExtra.value;
	var PrecioSE=document.all.txtPrecioSE.value;
	var IdOrigenProblema=document.all.cmbOrigenProblema.value;
	if (Cantidad=="")
	{
		Cantidad=0;
	}
	if(PorcentajeAvance=="")
	{
		PorcentajeAvance=0;
	}
	var a=confirm("Desea guardar los cambios");
	if(a==true)
	{	
	//alert("si");
			var sql="exec C_AreaSeguimiento "+ IdReporte +","+ IdResponsable +",'"+ FechaProgramada +"'," + IdCausaRetraso + 
			"," + Cantidad + ", " + PorcentajeAvance + ", " + IdProveedor + ", '" + ServicioExtra + "', " + PrecioSE+","+ 
			IdOrigenProblema;
			//alert(sql);
			var strHTML = EjecutaASP("ejecuta_sql_xml.asp","post","EsRecordset=false&sql="+sql);
			//alert(strHTML);
	}

/*
	SQL = "Update Reporte set IDResponsable=" + IDResponsable + "," 
	SQL = SQL + "FechaProgramada = '" + da.txtFechaProgramada.value + "',";
	SQL = SQL + "IdCausaRetraso = " + IdCausaRetraso + ",";
	SQL = SQL + "IDStatus = " + IdStatus + ",";		
	SQL = SQL + "CantidadU = " + da.txtCantidad.value + ",";
	SQL = SQL + "PorcentajeAvance = " + da.txtPorcentajeAvance.value+ ",";
	SQL = SQL + "IdProveedor = " + da.cmbProveedor.value + ",";
	SQL = SQL + "ServicioExtra = '" + da.txtServicioExtra.value + "',";
	SQL = SQL + "PrecioSE = " + da.txtPrecioSE.value;
	SQL = SQL + " Where IDReporte = " + da.txtIDReporte.value;
	
	da.SQL.value = SQL;
	alert(SQL);
	//da.EsRecordset.value = 0;
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=false&SQL=" + SQL );
	var html = String(strHTML);
	//alert(html.substring(3500,4200))
	//alert(strHTML);
	if(da.txtPorcentajeAvance.value == "100" )
		if(!EntregaReporte('fnGuardar'))
			return false;
*/
	if(da.txtComentariosSeguimiento.value!="" && da.txtComentariosSeguimiento.value!=da.ComentarioSeguimiento.value)
	//if(da.txtComentariosSeguimiento.value!="")
	{
		//alert("si");
		//var Hora="+ da.cmbHora.value +" '"+da.cmbMinuto.value+"'  '"da.cmbAmPm.value"';
		
/*
		var HoraCompromiso = EjecutaASP("FormatoHora.asp", "POST", "Hora=" + da.cmbHora.value + ":" + da.cmbMinuto.value);
		SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, FechaCompromiso, HoraCompromiso) values ";
		SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosSeguimiento.value + "','" + da.txtFechaCompromisoS.value + "','" + (da.cmbHora.value + ":" + da.cmbMinuto.value) + "');"
				
	*/	
		
		var cmbHora = da.cmbHora.value;
		cmbMinuto=da.cmbMinuto.value;
		if(cmbHora=="")
		{
			cmbHora="00";
		}
		if(cmbMinuto=="")
		{
			cmbMinuto="00";
		}
	
		if(da.cmbAmPm.value=="p.m.")
		{

			
			var cmbHora = parseInt(cmbHora) + 12;
			
			//alert(cmbHora);
		}
		
		var HoraCompromiso = EjecutaASP("FormatoHora.asp", "POST", "Hora=" + cmbHora + ":" + cmbMinuto);
		
		//alert(HoraCompromiso);
		
		SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, FechaCompromiso, HoraCompromiso,Automatico) values ";
		SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosSeguimiento.value + "','" + da.txtFechaCompromisoS.value + "','" + HoraCompromiso + "',0);"
		
		
				
				//alert(SQL);
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=false&SQL=" + SQL );
		
	//		var html = String(strHTML);
//	alert(html.substring(3500,4200))
	}
	if(da.chkEnviarMailSeguimiento.checked)
	{
		strHTML = EjecutaASP("MailSeguimiento.asp", "POST", "IdReporte=" + da.txtIdReporte.value);
		if(strHTML!="OK")
			alert("Error al enviar el mail:" + strHTML);
	}
		
	
	//document.frmForma.action ="Reporte_ver.asp?txt=mispendientes&entrada=s";
	//document.frmForma.submit();
	//window.close();	
}


function BuscaReporte()
{
	window.open("Busca_Reporte.asp","BuscaReporte","toolbar=no,scrollbars=yes,height=400,width=600");
	return false;
}

function AsignaNumeroReporte(pIdReporte)
{
	window.opener.document.all.txtReporteAnterior.value=pIdReporte;
	window.close();
}
	
function ActualizaReportesBuscador()
{
	var da = document.all;

	var SQL = "Select r.IDReporte, t.IDTecnico, nombre ^ ' ' ^ apellidos as Tecnico, c.IDCliente, c.razonSocial as Cliente,FallaYOServicio  "
	SQL = SQL + " from cliente c inner join (reporte r left join tecnico t on t.idtecnico = r.idtecnico) "
	SQL = SQL + " on c.IdCliente = r.IdCliente "
	if(da.chkPorFechaLevantamiento.checked)
	{
		SQL = SQL + " where (r.FechaLevantamiento >= #" + da.txtFechaInicio.value + "#"
		SQL = SQL + " and 	r.FechaLevantamiento  <= #" +	da.txtFechaFin.value	 + "#)"
		if(da.CboTecnicos.value!=-300)
			SQL = SQL + " and r.idTecnico = " + da.CboTecnicos.value;
		if(da.CboClientes.value!=-300)
			SQL = SQL + " and r.idCliente = " + da.CboClientes.value;
	}
	else
	{
		if(da.CboTecnicos.value!=-300)
			SQL = SQL + " where r.idTecnico = " + da.CboTecnicos.value;
		if(da.CboClientes.value!=-300)
		{
			if(da.CboTecnicos.value!=-300)
				SQL = SQL + " and r.idCliente = " + da.CboClientes.value;
			else	
				SQL = SQL + " where r.idCliente = " + da.CboClientes.value;			
		}
			
			
	}
	
	da.SQL.value = SQL;
	ActualizaGrid("grdBuscaReportes", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	//window.open("LlenaGrid2.asp?NombreGrid=grdReportes&SQL=" + SQL ,"LLenaGrid","toolbar=no,scrollbars=no,height=100,width=300");
	return false;
}

function DespliegaReporteAnterior(pIdReporte)
{
	var SQL = "Select r.IDReporte, r.IdReporteAnterior, t.IDTecnico, nombre ^ ' ' ^ apellidos as Tecnico, c.IDCliente, c.razonSocial as Cliente, s.Descripcion as Status,  "
	SQL = SQL + "  DateDiff('h',R.FechaLevantamiento ^ ' ' ^ R.HoraLevantamiento,Now()) AS TT,"
	SQL = SQL + "  IIf([TT]>c.TiempoRespuesta And r.IdStatus<3,'<img src=images/rojo.gif>','<img src=images/verde.gif>') AS Sem,"
	SQL = SQL + "  IIf(r.Reincidencia=1,'<img src=images/reincidencia.gif border=0>','^nbsp;') AS EsReincidencia"
	SQL = SQL + " from status s inner join (cliente c inner join (reporte r left join tecnico t on t.idtecnico = r.idtecnico) "
	SQL = SQL + " on c.IdCliente = r.IdCliente) "
	SQL = SQL + " on s.IdStatus = r.IdStatus  "
	SQL = SQL + " where r.IDReporte = " + pIdReporte;
	
	document.all.SQL.value = SQL;
	document.all.lblTitulo.innerText	= "Reporte Anterior"
	ActualizaGrid("grdReporteAnterior", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");


}

function CancelaReporte(pIdReporte)
{
	if (confirm("Esta seguro de cancelar este reporte?"))
	{	var da= document.all;
		var Motivo = prompt("Cual es el motivo de la cancelacion?");
		var SQL = "update Reporte set  IdStatus=5 , MotivoCancelacion='" + Motivo + "' where IdReporte=" + pIdReporte;
		da.SQL.value = SQL;
		da.EsRecordset.value = 0;
		document.frmForma.action="Ejecuta_SQL.asp" ;
		document.frmForma.submit();
	}
}


function DetalleReporteEficiencia(pIDTecnico)
{
	var da = document.all;

	var SQL = "Select r.IDReporte,c.razonSocial as Cliente, s.Descripcion as Status,  "
	SQL = SQL + "  FallaYOServicio"
	SQL = SQL + " from status s inner join (cliente c inner join reporte r on c.IdCliente = r.IdCliente) "
	SQL = SQL + " on s.IdStatus = r.IdStatus  "
	SQL = SQL + " where (r.FechaLevantamiento >= #" + da.txtFechaInicio.value + "#"
	SQL = SQL + " and 	r.FechaLevantamiento  <= #" +	da.txtFechaFin.value	 + "#)"
	SQL = SQL + " and r.idTecnico = " + pIDTecnico;
	SQL = SQL + " and r.idStatus not in (4,6)  " 
	da.SQL.value = SQL;
	document.all.lblTitulo.innerText	= "Lista de reportes sin terminar"
	ActualizaGrid("grdReportesSinTerminar", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");

	SQL = "Select r.IDReporte,c.razonSocial as Cliente, datediff('n',fechainicioservicio ^ ' ' ^ horainicioservicio,fechacierre ^ ' ' ^ horacierre)/60 as TiempoProductivo,  "
	SQL = SQL + "  FallaYOServicio"
	SQL = SQL + " from cliente c inner join reporte r on c.IdCliente = r.IdCliente "
	SQL = SQL + " where (r.FechaLevantamiento >= #" + da.txtFechaInicio.value + "#"
	SQL = SQL + " and 	r.FechaLevantamiento  <= #" +	da.txtFechaFin.value	 + "#)"
	SQL = SQL + " and r.idTecnico = " + pIDTecnico;
	SQL = SQL + " and r.idStatus in (4,6)  " 
	da.SQL.value = SQL;
	document.all.lblTitulo2.innerText	= "Lista de reportes terminados"
	ActualizaGrid("grdReportesTerminados", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");

}

function DespliegaReportesporCliente()
{
//iif(fechacierre='','',datediff('n',fechainicioservicio ^ ' ' ^ horainicioservicio,fechacierre ^ ' ' ^ horacierre)/60)
	var SQL = "select idreporte, fallayoServicio, solucion, datediff('n',fechainicioservicio ^ ' ' ^ horainicioservicio,fechacierre ^ ' ' ^ horacierre)/60  as TiempoProductivo, descripcion as status";
	SQL = SQL + " from reporte , status  ";
	SQL = SQL + " where idcliente = " + document.all.CboClientes.value;
	SQL = SQL + " and reporte.idstatus = status.idstatus"
	SQL = SQL + " and (FechaLevantamiento >= #" + document.all.txtFechaInicio.value + "#"
	SQL = SQL + " and 	FechaLevantamiento  <= #" +	document.all.txtFechaFin.value	 + "#)"
	SQL = SQL + " and 	FechaCierre is not null"
	SQL = SQL + " union "
	SQL = SQL + " select idreporte, fallayoServicio, solucion, 0 as TiempoProductivo, descripcion as status";
	SQL = SQL + " from reporte , status  ";
	SQL = SQL + " where idcliente = " + document.all.CboClientes.value;
	SQL = SQL + " and reporte.idstatus = status.idstatus"
	SQL = SQL + " and (FechaLevantamiento >= #" + document.all.txtFechaInicio.value + "#"
	SQL = SQL + " and 	FechaLevantamiento  <= #" +	document.all.txtFechaFin.value	 + "#)"
	SQL = SQL + " and 	FechaCierre is null"
	SQL = SQL + " order by IdReporte"
	document.all.SQL.value = SQL;
	ActualizaGrid("grdReportesCliente", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;

}

function LlenaCombo(pNombreCombo,pSQL,pEvento,pIdSeleccionado,pOpciones)
{	
	var Parametros = "NombreCombo=" + pNombreCombo + "&SQL=" + pSQL + "&Evento=" + pEvento + "&IdSeleccionado=" + pIdSeleccionado + "&Opciones=" + pOpciones ;
	var ComboHTML = EjecutaASP("LlenaCombo.asp", "POST", Parametros);
	ActualizaElemento( pNombreCombo, ComboHTML );
	return true;

}


function LlenaCombosAltaReporte()
{	
	var IdDepartamento = document.all.CboDepartamentos.value;
	SQL = "Select IdUsuario, Nombre from Usuario where IdDepartamento="  + IdDepartamento +  " order by Nombre";
	LlenaCombo("CboResponsables",SQL,"","0","B");

	SQL = "Select IdTipoProblema, Descripcion from TipoProblema where IdDepartamento="  + IdDepartamento +  " order by Descripcion";
	if(document.all.txtIDPerfil.value==3)
		LlenaCombo("CboTipoProblema",SQL,"OnChange=LlenaDiasRestantesGarantia();CambiaFechaRequerida()","0","B");
	else	
		LlenaCombo("CboTipoProblema",SQL,"OnChange=LlenaComboResponsablesTP();CambiaFechaRequerida()","0","B");
}

function EntregaReporteA(pOrigen)
{
	var da = document.all;
	var FechaProgramada = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaProgramada.value + "&Formato=dmy");
	
	if(da.txtCantidad.value=="0")
	{
		alert("Falta capturar  " + da.txtPregunta.value + " ");
		return false;
	}

	if(da.txtPorcentajeAvance.value<100)
	{
		alert("El porcentaje de avance debe ser del 100%");
		return false;
	}
	
	if(da.IDResponsable.value!=da.cmbAtiende.value )
		if(confirm("El responsable especificado por el usuario es diferente a quien lo va a atender, ¿Es correcto? "))
			var IDResponsable = da.cmbAtiende.value
		else 
			return false;
	else
		var IDResponsable = da.cmbAtiende.value

	if(!confirm("El reporte se entregará con un total de " + da.txtCantidad.value + " " + da.txtPregunta.value + " ¿Es correcto?"))
	{
		return false;
	}

	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	var Hora = JSClock();



	var SQL = "Update Reporte set IdStatus = 4 " + ",";
	SQL = SQL + "IDResponsable=" + IDResponsable + "," 
	SQL = SQL + "IdCausaRetraso = " + da.cmbCausas.value + ",";
	SQL = SQL + "IdOrigenProblema = " + da.cmbOrigenProblema.value + ",";		
	SQL = SQL + "IdProveedor = " + da.cmbProveedor.value + ",";
	SQL = SQL + "CantidadU = " + da.txtCantidad.value + ",";
	SQL = SQL + "PorcentajeAvance = " + da.txtPorcentajeAvance.value + ",";
	SQL = SQL + "FechaProgramada = '" + FechaProgramada + "',";
	SQL = SQL + "FechaEntrega = '" + Fecha + "',";
	SQL = SQL + "HoraEntrega = '" + Hora+ "',";
	SQL = SQL + "FechaUsuario = '" + Fecha + "',";
	SQL = SQL + "HoraUsuario = '" + Hora+ "',";
	SQL = SQL + "IDUsuario = " + da.IDUsuario.value  ;
	SQL = SQL + " where IdReporte=" + da.txtIdReporte.value
//alert(SQL)
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	//var html = String(strHTML);
	//alert(html.substring(3500,4200))
	//alert(strHTML);

//	alert(pOrigen);
//	if(pOrigen=="pagina")

		if(da.txtComentariosSeguimiento.value!="" && da.txtComentariosSeguimiento.value!=da.ComentarioSeguimiento.value)
		{
			SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario) values ";
			SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosSeguimiento.value + "');"
			strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
		}

	strHTML = EjecutaASP("MailCerrado.asp", "POST", "IdReporte=" + da.txtIdReporte.value);
	if(strHTML!="OK")
	//	alert("Error al enviar el mail:" + strHTML);

	SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, Automatico) values ";
	SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Entrega del reporte',1);"
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

//	document.frmForma.action ="Reporte_ver.asp?txt=mispendientes&entrada=s";
//	document.frmForma.submit();
	
	alert("El Reporte ha sido entregado");
	
	//window.opener.location.reload("Reporte_ver.asp?txt=misrequerimientos&entrada=S");
	window.opener.location.reload("Reporte_ver.asp?txt=misrequerimientos&entrada=S");
	
	
		window.close();
}

function EntregaReporteA(pOrigen)
{
	var da = document.all;
	var FechaProgramada = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaProgramada.value + "&Formato=dmy");
	
	if(da.txtCantidad.value=="0")
	{
		alert("Falta capturar  " + da.txtPregunta.value + " ");
		return false;
	}

	if(da.txtPorcentajeAvance.value<100)
	{
		alert("El porcentaje de avance debe ser del 100%");
		return false;
	}
	
	if(da.IDResponsable.value!=da.cmbAtiende.value )
		if(confirm("El responsable especificado por el usuario es diferente a quien lo va a atender, ¿Es correcto? "))
			var IDResponsable = da.cmbAtiende.value
		else 
			return false;
	else
		var IDResponsable = da.cmbAtiende.value

	if(!confirm("El reporte se entregará con un total de " + da.txtCantidad.value + " " + da.txtPregunta.value + " ¿Es correcto?"))
	{
		return false;
	}

	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	var Hora = JSClock();



	var SQL = "Update Reporte set IdStatus = 4 " + ",";
	SQL = SQL + "IDResponsable=" + IDResponsable + "," 
	SQL = SQL + "IdCausaRetraso = " + da.cmbCausas.value + ",";
	SQL = SQL + "IdOrigenProblema = " + da.cmbOrigenProblema.value + ",";		
	SQL = SQL + "IdProveedor = " + da.cmbProveedor.value + ",";
	SQL = SQL + "CantidadU = " + da.txtCantidad.value + ",";
	SQL = SQL + "PorcentajeAvance = " + da.txtPorcentajeAvance.value + ",";
	SQL = SQL + "FechaProgramada = '" + FechaProgramada + "',";
	SQL = SQL + "FechaEntrega = '" + Fecha + "',";
	SQL = SQL + "HoraEntrega = '" + Hora+ "',";
	SQL = SQL + "FechaUsuario = '" + Fecha + "',";
	SQL = SQL + "HoraUsuario = '" + Hora+ "',";
	SQL = SQL + "IDUsuario = " + da.IDUsuario.value  ;
	SQL = SQL + " where IdReporte=" + da.txtIdReporte.value
//alert(SQL)
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	//var html = String(strHTML);
	//alert(html.substring(3500,4200))
	//alert(strHTML);

//	alert(pOrigen);
//	if(pOrigen=="pagina")

		if(da.txtComentariosSeguimiento.value!="" && da.txtComentariosSeguimiento.value!=da.ComentarioSeguimiento.value)
		{
			SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario) values ";
			SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosSeguimiento.value + "');"
			strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
		}
		
		////////////////////////////
		
	var a="<%=A%>";
	var IDUsuarioRequiere="<%=IDUsuarioRequiere%>";
	var IdReporte="<%=IdReporte%>";
	var sql="exec Recupera_Usuario "+IDUsuarioRequiere
	var strHTML = EjecutaASP("ejecuta_sql_xml.asp","post","EsRecordset=true&sql="+sql);
			
	var IdPerfil = ObtieneCampo(strHTML, "IdPerfil");
	
		if (IdPerfil==4)
		{
			strHTML = EjecutaASP("MailCerrado.asp", "POST", "IdReporte=" + da.txtIdReporte.value);
		}
		else
		{
			strHTML = EjecutaASP("MailCerradoE.asp", "POST", "IdReporte=" + da.txtIdReporte.value);
		}
		document.frmForma.submit();

	//	alert("Error al enviar el mail:" + strHTML);
	
//////////////////////////
			if(strHTML!="OK")

	SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, Automatico) values ";
	SQL = SQL + "(" + da.txtIdReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Entrega del reporte',1);"
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

//	document.frmForma.action ="Reporte_ver.asp?txt=mispendientes&entrada=s";
//	document.frmForma.submit();
	
	alert("El Reporte ha sido entregado");
	
	//window.opener.location.reload("Reporte_ver.asp?txt=misrequerimientos&entrada=S");
	//window.opener.location.reload("Reporte_ver.asp?txt=misrequerimientos&entrada=S");

	//window.close();
	
	
		//window.close();
}


/*
function EntregaReporte(pOrigen)
{
	var da = document.all;
	var FechaProgramada = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaProgramada.value + "&Formato=dmy");
	
	if(da.txtCantidad.value=="0")
	{
		alert("Falta capturar  " + da.txtPregunta.value + " ");
		return false;
	}

	if(da.txtPorcentajeAvance.value<100)
	{
		alert("El porcentaje de avance debe ser del 100%");
		return false;
	}
	
	if(da.IDResponsable.value!=da.cmbAtiende.value )
		if(confirm("El responsable especificado por el usuario es diferente a quien lo va a atender, ¿Es correcto? "))
			var IDResponsable = da.cmbAtiende.value
		else 
			return false;
	else
		var IDResponsable = da.cmbAtiende.value

	if(!confirm("El reporte se entregará con un total de " + da.txtCantidad.value + " " + da.txtPregunta.value + " ¿Es correcto?"))
	{
		return false;
	}

	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	var Hora = JSClock();

	var SQL = "Update Reporte set IdStatus = 4 " + ",";
	SQL = SQL + "IDResponsable=" + IDResponsable + "," 
	if(da.CboCausaRetraso.value!="-100")
		SQL = SQL + "IdCausaRetraso = " + da.CboCausaRetraso.value + ",";
	SQL = SQL + "IdOrigenProblema = " + da.CboOrigenProblema.value + ",";		
	SQL = SQL + "IDReporteAnterior = " + da.txtReporteAnterior.value + ",";
	if(da.CboProveedor.value!="-100")
	{
		SQL = SQL + "SoporteExterno = 1,";
		SQL = SQL + "IdProveedor = " + da.CboProveedor.value + ",";
	}
	SQL = SQL + "HorasDedicadas = " + da.txtHorasDedicadas.value + ",";
	SQL = SQL + "PorcentajeAvance = " + da.txtPorcentajeAvance.value + ",";
	SQL = SQL + "FechaProgramada = '" + FechaProgramada + "',";
	SQL = SQL + "FechaEntrega = '" + Fecha + "',";
	SQL = SQL + "HoraEntrega = '" + Hora+ "',";
	SQL = SQL + "FechaUsuario = '" + Fecha + "',";
	SQL = SQL + "HoraUsuario = '" + Hora+ "',";
	SQL = SQL + "IDUsuario = " + da.IDUsuario.value  ;
	SQL = SQL + " where IdReporte=" + da.txtIDReporte.value
//alert(SQL)
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	//var html = String(strHTML);
	//alert(html.substring(3500,4200))
	//alert(strHTML);

//	alert(pOrigen);
//	if(pOrigen=="pagina")

		if(da.txtComentariosSeguimiento.value!="" && da.txtComentariosSeguimiento.value!=da.ComentarioSeguimiento.value)
		{
			SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario) values ";
			SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosSeguimiento.value + "');"
			strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
		}

	strHTML = EjecutaASP("MailEntregado.asp", "POST", "IdReporte=" + da.txtIDReporte.value);
	if(strHTML!="OK")
		alert("Error al enviar el mail:" + strHTML);

	SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, Automatico) values ";
	SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Entrega del reporte',1);"
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

//	document.frmForma.action ="Reporte_ver.asp?txt=mispendientes&entrada=s";
//	document.frmForma.submit();
		window.close();
	
}*/



function CierraReporte()
{
	if(confirm("Esta seguro de cerrar el reporte?"))
	{
		
		var da = document.all;
		if(document.all.ExisteEvaluacion.value=="S")
		{
			alert("Ya existe una evaluación y no se reemplazara.")
		}
		
		if(da.IDStatus.value=="1" || da.IDStatus.value=="3" || da.IDStatus.value=="8" )
		{
			alert("Para calificar un reporte debe estar con estatus de entregado.");
			return false;
		}

		var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
		var Hora = JSClock();
	
		var SQL = "Update Reporte set IdStatus = 5 " + ",";
		SQL = SQL + "IDReporteAnterior = " + da.txtReporteAnterior.value + ",";
		SQL = SQL + "FechaCierre = '" + Fecha + "',";
		SQL = SQL + "HoraCierre = '" + Hora+ "',";
		SQL = SQL + "FechaUsuario = '" + Fecha + "',";
		SQL = SQL + "HoraUsuario = '" + Hora+ "',";
		SQL = SQL + "IDUsuario = " + da.IDUsuario.value  ;
		SQL = SQL + " where IdReporte=" + da.txtIDReporte.value
	
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

		if(da.GrabaBitacora.value=="N")
		{
			if(da.txtComentariosEvaluacion.value!="" && da.txtComentariosEvaluacion.value!=da.ComentarioCalificacion.value)
			{
				SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario) values ";
				SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosEvaluacion.value + "');"
				strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
			}
			if(da.chkEnviarMailEvaluacion.checked)
			{
				strHTML = EjecutaASP("MailEvaluacion.asp", "POST", "IdReporte=" + da.txtIDReporte.value);
				if(strHTML!="OK")
					alert("Error al enviar el mail:" + strHTML);
			}
			da.GrabaBitacora.value="S";
		}
		if(!GuardaEvaluacion())
			return false;
		
		SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, Automatico) values ";
		SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Cierre del reporte',1);"
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

//	var html = String(strHTML);
	//	alert(html.substring(3500,4200))
	//document.frmForma.action ="Reporte_ver.asp?txt=misrequerimientos&entrada=s";
	//	document.frmForma.submit();
	window.close();	
	}
	
}

function GrabaUsuario()
{
	da = document.all;
	if(da.txtNombre.value=="")
	{
		alert("Favor de capturar el nombre del técnico");
		return false;
	}
		
	if(da.txtUsuario.value=="")
	{
		alert("Favor de capturar la clave de usuario.");
		return false;
	}
	if(da.txtIDPerfil.value==3)
		var Clave ="~"
	else
	{
		var Clave = da.txtClave.value;
		if(da.txtClave.value=="")
		{
			alert("Favor de capturar la contraseña.");
			return false;
		}
	}
	if(da.CboDepartamentos.value=="-100")
	{
		alert("Favor de seleccionar el departamento.");
		return false;
	}

	if(da.CboPerfil.value=="-100")
	{
		alert("Favor de seleccionar el perfil.");
		return false;
	}

	if(da.CboJefeInmediato.value=="-100")
	{
		alert("Favor de seleccionar el jefe inmediato.");
		return false;
	}
	if(da.CboLocalizacion.value=="-100")
	{
		alert("Favor de seleccionar la localizacion.");
		return false;
	}
		SQL = "select * from usuario where usuario='" + da.txtUsuario.value + "',";
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=1&SQL=" + SQL );

	if(da.chkMostrarReportes.checked)
		var MostrarReportes="1"
	else
		var MostrarReportes="0"

//	var FechaEntrega = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaEntrega.value + "&Formato=dmy");
	var FechaEntrega = da.txtFechaEntrega.value;


	if(da.IDUsuario.value=="")
	{
		
		var SQL = "Insert into Usuario (IdDepartamento,IDPerfil, IDJefeInmediato, Nombre,Usuario, Clave, Compania, Division, Localizacion, Telefono, Celular, Mail, DepartamentoFuncional, Prototipo,MostrarReportes, FechaEntrega, IdLocalizacion)";
		SQL = SQL + " values (" + da.CboDepartamentos.value + "," + da.CboPerfil.value + "," + da.CboJefeInmediato.value + ",'" + da.txtNombre.value + "','" + da.txtUsuario.value + "','" + Clave + "','" + da.txtCompania.value + "','" + da.txtDivision.value + "','" + da.txtLocalizacion.value + "','" + da.txtTelefono.value + "','" + da.txtCelular.value + "','" + da.txtMail.value + "','" + da.txtDepartamentoFuncional.value + "','" + da.txtPrototipo.value + "'," + MostrarReportes + ",'" + FechaEntrega + "'," + da.CboLocalizacion.value + ")"
	}
	else
	{
		SQL = "Update Usuario set IdDepartamento = " + da.CboDepartamentos.value + ",";
		SQL = SQL + "IDPerfil = " + da.CboPerfil.value + ",";
		SQL = SQL + "IDJefeInmediato = " + da.CboJefeInmediato.value + ",";
		SQL = SQL + "Nombre = '" + da.txtNombre.value + "',";
		SQL = SQL + "Usuario = '" + da.txtUsuario.value + "',";
		SQL = SQL + "Clave = '" + Clave + "',";
		SQL = SQL + "Telefono = '" + da.txtTelefono.value + "',";
		SQL = SQL + "Celular = '" + da.txtCelular.value + "',";
		SQL = SQL + "Mail = '" + da.txtMail.value + "',";
		SQL = SQL + "Compania = '" + da.txtCompania.value + "',";
		SQL = SQL + "Division = '" + da.txtDivision.value  + "',";
		SQL = SQL + "DepartamentoFuncional = '" + da.txtDepartamentoFuncional.value  + "',";
		SQL = SQL + "Localizacion = '" + da.txtLocalizacion.value  + "',";
		SQL = SQL + "Prototipo = '" + da.txtPrototipo.value  + "',";
		SQL = SQL + "FechaEntrega = '" + FechaEntrega  + "',";
		SQL = SQL + "IdLocalizacion = " + da.CboLocalizacion.value  + ",";
		SQL = SQL + "MostrarReportes = " + MostrarReportes;
		SQL = SQL + " Where IDUsuario = " + da.IDUsuario.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;

	
}

function MenuConfiguracion()
{
	var HTML = '<DIV id="menulocation">';
	HTML = HTML + '<TABLE cellpadding="0" cellspacing="0" border="0" width="150"><tr><td>';
	HTML = HTML + '<img src="images/menu-top.gif" width="130" height="70"></a><br>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="reporte_ver.asp?txt=mispendientes&entrada=s" class="menu">Mis Pendientes</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="reporte_ver.asp?txt=misrequerimientos&entrada=s" class="menu">Mis Requerimientos</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="alta_reporte.asp" class="menu">Alta de Reporte</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="configuracion.asp" class="menu">Configuración</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="usuario_ver.asp" class="submenu">Usuarios</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="departamento_ver.asp" class="submenu">Departamentos</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="proveedor_ver.asp" class="submenu">Proveedores</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="tipoproblema_ver.asp" class="submenu">Tipos de problemas</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="OrigenProblema_ver.asp" class="submenu">Orígenes de problemas</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="CausaRetraso_ver.asp" class="submenu">Causas de retraso</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="Concepto_ver.asp" class="submenu">Conceptos a evaluar</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="ImpactoNegocio_ver.asp" class="submenu">Impacto de negocio</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="reporte_ver.asp" class="menu">Reportes</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="login.asp" class="menu">Salir</a>';
	HTML = HTML + '<img src="images/menu-bottom.gif" width="130" height="59"></a><br>';
	HTML = HTML + '</td></tr></table></DIV>';
	ActualizaElemento('menulocation', HTML );
	return false;
}

function ActualizaTipoProblema(pGrid)
{
	var da = document.all;

	var SQL = "Select TP.*, D.Descripcion as Departamento, isnull(Usuario,'') as Clave ";
	SQL = SQL + " from Departamento D  inner join ( TipoProblema TP left join Usuario Res on TP.IdResponsable = Res.IdUsuario) on TP.IdDepartamento = D.IdDepartamento ";
	if(da.CboDepartamentos.value!=-300)
		SQL = SQL + " where TP.IdDepartamento = " + da.CboDepartamentos.value;
	SQL = SQL + " order by D.Descripcion";
	da.SQL.value = SQL;
	ActualizaGrid(pGrid, document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}

function ActualizaOrigenProblema(pGrid)
{
	var da = document.all;

	var SQL = "Select OP.*, D.Descripcion as Departamento  ";
	SQL = SQL + " from OrigenProblema OP , Departamento D ";
	SQL = SQL + " where OP.IdDepartamento = D.IdDepartamento ";
	if(da.CboDepartamentos.value!=-300)
		SQL = SQL + " and OP.IdDepartamento = " + da.CboDepartamentos.value;
	SQL = SQL + " order by D.Descripcion";
	da.SQL.value = SQL;
	ActualizaGrid(pGrid, document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}

function GrabaOrigenProblema()
{
	da = document.all;
	if(da.CboDepartamentos.value=="-100")
	{
		alert("Favor de seleccionar el departamento.");
		return false;
	}
	if(da.txtDescripcion.value=="")
	{
		alert("Favor de capturar la descripcion del origen de problema");
		return false;
	}

	///var AjenoAResponsable=da.rbtAjeno[0].checked;
	if(da.txtIDOrigenProblema.value=="")
	{
		
		var SQL = "Insert into OrigenProblema (IdDepartamento,Descripcion)";
		SQL = SQL + " values (" + da.CboDepartamentos.value + ",'" + da.txtDescripcion.value + "')"
	}
	else
	{
		SQL = "Update OrigenProblema set IdDepartamento = " + da.CboDepartamentos.value + ",";
		SQL = SQL + "Descripcion = '" + da.txtDescripcion.value + "'";
		SQL = SQL + " Where IDOrigenProblema = " + da.txtIDOrigenProblema.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;
}

function ActualizaCausaRetraso(pGrid)
{
	var da = document.all;

	var SQL = "Select CR.*, D.Descripcion as Departamento  ";
	SQL = SQL + " from CausaRetraso CR , Departamento D ";
	SQL = SQL + " where CR.IdDepartamento = D.IdDepartamento ";
	if(da.CboDepartamentos.value!=-300)
		SQL = SQL + " and CR.IdDepartamento = " + da.CboDepartamentos.value;
	SQL = SQL + " order by D.Descripcion";
	da.SQL.value = SQL;
	ActualizaGrid(pGrid, document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}

function GrabaCausaRetraso()
{
	da = document.all;
	if(da.CboDepartamentos.value=="-100")
	{
		alert("Favor de seleccionar el departamento.");
		return false;
	}
	if(da.txtDescripcion.value=="")
	{
		alert("Favor de capturar la descripcion de la causa de retraso");
		return false;
	}

	if(da.rbtAjeno[0].checked)
		var AjenoAResponsable = 1;
	else	
		var AjenoAResponsable = 0;

	if(da.txtIDCausaRetraso.value=="")
	{
		
		var SQL = "Insert into CausaRetraso (IdDepartamento,Descripcion, AjenoAResponsable)";
		SQL = SQL + " values (" + da.CboDepartamentos.value + ",'" + da.txtDescripcion.value + "'," + AjenoAResponsable + ")"
	}
	else
	{
		SQL = "Update CausaRetraso set IdDepartamento = " + da.CboDepartamentos.value + ",";
		SQL = SQL + "Descripcion = '" + da.txtDescripcion.value + "',";
		SQL = SQL + "AjenoAResponsable = " + AjenoAResponsable ;
		SQL = SQL + " Where IDCausaRetraso = " + da.txtIDCausaRetraso.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;
}

function GrabaProveedor()
{
	alert("GUARDA PROVEEDOR")
	da = document.all;
	if(da.txtDescripcion.value=="")
	{
		alert("Favor de capturar la descripcion del proveedor");
		return false;
	}
		
	if(da.txtIDProveedor.value=="")
	{
		
		var SQL = "Insert into Proveedor (Descripcion, Giro, Contacto, Telefono, EMail, Celular)";
		SQL = SQL + " values ('" + da.txtDescripcion.value + "','" + da.txtGiro.value + "','" + da.txtContacto.value + "','" + da.txtTelefono.value + "','" + da.txtMail.value + "','" + da.txtCelular.value + "')"
		alert(SQL)
	}
	else
	{
		SQL = "Update Proveedor set Descripcion = '" + da.txtDescripcion.value + "',";
		SQL = SQL + "Giro = '" + da.txtGiro.value + "',";
		SQL = SQL + "Contacto = '" + da.txtContacto.value + "',";
		SQL = SQL + "Telefono = '" + da.txtTelefono.value + "',";
		SQL = SQL + "EMail = '" + da.txtMail.value + "',";
		SQL = SQL + "Celular = '" + da.txtCelular.value + "'";
		SQL = SQL + " Where IDProveedor = " + da.txtIDProveedor.value;

	}
	//da.SQL.value = SQL;
	//da.EsRecordset.value = 0;
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	
	ActualizaGrid(grdProveedores, document.all.txtOrdenar.value, document.all.txtAscendente.value);
	
	return false;
}

function SubeArchivo()
{
	window.open("uploadit/subirarchivo.asp","","toolbar=0,left=100,top=100,width=300,height=100")
	
}

function DeshabilitaSeguimiento()
{
	var da = document.all;
	da.cmbAtiende.disabled=1;
	da.cmbCausas.disabled=1;
	da.txtCantidad.disabled=1;
	da.txtFechaProgramada.disabled=1;
	var strHTML = "<img src=images/CalendarDis.gif align=absmiddle border=0>"
	da.btnDate1.disabled=true;
	//ActualizaElemento('btnDate1',strHTML);	
	da.txtPorcentajeAvance.disabled=1;
	da.cmbProveedor.disabled=1;
	da.txtComentariosSeguimiento.disabled=1;
	da.guardar.disabled=1;
	da.entregar.disabled=1;
//	da.regresar.disabled=1;
	da.guardar.src = "images/guardar.gif"	
	da.entregar.src = "images/entregar.gif"	
//	da.regresar.src = "images/regresaroff.gif"	
}

function DeshabilitaCalificacion()
{
	var da = document.all;
	var i;
	for(i=0;i<da.CboEvaluacion.length;i++)
	{
		da.CboEvaluacion[i].disabled = 1;
	}

	da.txtComentariosEvaluacion.disabled=1;

	da.guardarCalificacion.disabled=1;
	da.guardarCalificacion.src = "images/guardaroff.gif"	
	da.cerrarCalificacion.disabled=1;
	da.cerrarCalificacion.src = "images/cerraroff.gif"	
//	da.regresarCalificacion.disabled=1;
//	da.regresarCalificacion.src = "images/regresaroff.gif"	
}

function ActualizaConcepto(pGrid)
{
	var da = document.all;

	var SQL = "Select C.IdConcepto, C.Concepto, Evaluar= case Evaluar when 1 then 'Si' else 'No' end, D.Descripcion as Departamento   ";
	SQL = SQL + " from Concepto C , Departamento D ";
	SQL = SQL + " where C.IdDepartamento = D.IdDepartamento ";
	if(da.CboDepartamentos.value!=-300)
		SQL = SQL + " and C.IdDepartamento = " + da.CboDepartamentos.value;
	SQL = SQL + " order by D.Descripcion";
	da.SQL.value = SQL;
	ActualizaGrid(pGrid, document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}

function GrabaConcepto()
{
	da = document.all;
	if(da.CboDepartamentos.value=="-100")
	{
		alert("Favor de seleccionar el departamento.");
		return false;
	}
	if(da.txtConcepto.value=="")
	{
		alert("Favor de capturar la Concepto del tipo de problema");
		return false;
	}
	if(da.chkEvaluar.checked)
		var Evaluar="1"
	else
		var Evaluar="0"
	
	if(da.txtIDConcepto.value=="")
	{
		
		var SQL = "Insert into Concepto (IdDepartamento,Concepto,Evaluar)";
		SQL = SQL + " values (" + da.CboDepartamentos.value + ",'" + da.txtConcepto.value + "'," + Evaluar + ")"
	}
	else
	{
		SQL = "Update Concepto set IdDepartamento = " + da.CboDepartamentos.value + ",";
		SQL = SQL + "Concepto = '" + da.txtConcepto.value + "',";
		SQL = SQL + "Evaluar = " + Evaluar;
		SQL = SQL + " Where IDConcepto = " + da.txtIDConcepto.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;
}

function GuardaAreaCalificacion()
{
	var da = document.all;
	var SQL;
	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	var Hora = JSClock();

	SQL = "Update Reporte set IDReporteAnterior = " + da.txtReporteAnterior.value + ",";
	SQL = SQL + "FechaUsuario = #" + Fecha + "#,";
	SQL = SQL + "HoraUsuario = '" + Hora+ "',";
	SQL = SQL + "IDUsuario = " + da.IDUsuario.value  ;
	SQL = SQL + " Where IDReporte = " + da.txtIDReporte.value;
	da.SQL.value = SQL;
	//alert(SQL);
	da.EsRecordset.value = 0;
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	if(da.txtComentariosEvaluacion.value!="" && da.txtComentariosEvaluacion.value!=da.ComentarioCalificacion.value)
	{
		var HoraCompromiso = EjecutaASP("FormatoHora.asp", "POST", "Hora=" + da.txtHoraCompromisoC.value);
		SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario,FechaCompromiso, HoraCompromiso) values ";
		SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'" + da.txtComentariosEvaluacion.value + "','" + da.txtFechaCompromisoC.value + "','" + da.txtHoraCompromisoC.value + "');"
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	}
	if(da.chkEnviarMailEvaluacion.checked)
	{
		strHTML = EjecutaASP("MailEvaluacion.asp", "POST", "IdReporte=" + da.txtIDReporte.value);
		if(strHTML!="OK")
			alert("Error al enviar el mail:" + strHTML);
	}

	window.close();
}

function GuardaEvaluacion()
{
	var da=document.all;
	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	var Hora = JSClock();

	if(da.ExisteEvaluacion.value=="N")
	{
		if(confirm("La evaluación se guardará en este momento, si es correcta de click en el boton Aceptar, de lo contrario en Cancelar."))
		{	var CuantosFaltan = 0;
			for(i=0;i<da.CboEvaluacion.length;i++)
			{
				if(da.CboEvaluacion[i].value=="SC")
				{
					CuantosFaltan = CuantosFaltan + 1;
				}
			}
			
			if(CuantosFaltan==5)
			{
				alert("Para cerrarlo es necesario calificar el reporte");
				return false;
			}
			for(i=0;i<da.CboEvaluacion.length;i++)
			{
//					if(da.CboEvaluacion[i].value!="0")
//					{
					SQL= "insert into Evaluacion (IdReporte, IdConcepto, Calificacion) "
					SQL = SQL + " values (" + da.txtIDReporte.value + "," + da.CboEvaluacion[i].id + ",'" + da.CboEvaluacion[i].value + "')";
					strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
					/*alert(SQL)
					var html = String(strHTML);
					alert(html.substring(3500,4200))
					*/		
//						}
			}
			
			SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario, Automatico) values ";
			SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Calificación del reporte',1);"
			strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
		}
	}
	return true;
}


function LlenaComboResponsables()
{	var IdDepartamento = document.all.CboDepartamentos.value;
	SQL = "Select IdUsuario, Nombre from Usuario where IdDepartamento="  + IdDepartamento +  " order by Nombre";
	LlenaCombo("CboResponsables",SQL,"","0","");
}

function LlenaComboTipoProblema()
{	var IdDepartamento = document.all.CboDepartamentos.value;
	var Tipo = document.all.cboTipo.value;
	SQL = "Select IdTipoProblema, Descripcion from TipoProblema where IdDepartamento="  + IdDepartamento +  " and Tipo='" + Tipo + "' order by Descripcion";
	if(document.all.txtIDPerfil.value==3)
		LlenaCombo("CboTipoProblema",SQL,"OnChange=LlenaDiasRestantesGarantia();CambiaFechaRequerida();","0","B");
	else	
		LlenaCombo("CboTipoProblema",SQL,"OnChange=LlenaComboResponsablesTP();CambiaFechaRequerida();","0","B");
}

function LlenaComboResponsablesTP()
{	var IdTipoProblema = document.all.CboTipoProblema.value;
	var IdDepartamento = document.all.CboDepartamentos.value;
	SQL = " select u.IdUsuario, nombre "
	SQL = SQL + " from grupotipoproblema gtp , grupo g , grupousuario gu, usuario u "
	SQL = SQL + " where gtp.idtipoproblema="  + IdTipoProblema
	SQL = SQL + " and g.idgrupo = gtp.idgrupo "
	SQL = SQL + " and g.idgrupo = gu.idgrupo "
	SQL = SQL + " and gu.idusuario = u.idusuario "
	SQL = SQL + " and g.idlocalizacion = (select idLocalizacion from usuario where idusuario ="+ document.all.IDUsuario.value +") "
	//SQL = "Select IdUsuario from Usuario U, TipoProblema TP where  U.IdUsuario = TP.IdResponsable and IdTipoProblema="  + IdTipoProblema +  " order by Nombre";
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=1&SQL=" + SQL );
	var IdUsuario = ObtieneCampo(strHTML, "IdUsuario")
	if(IdUsuario=="No se encuentra el campo")
		IdUsuario="0"
//alert(IdUsuario);
	SQL = "Select IdUsuario, Nombre from Usuario where IdDepartamento="  + IdDepartamento +  " order by Nombre";
	LlenaCombo("CboResponsables",SQL,"",IdUsuario,"");
//	document.all.txtDiasRestantesGarantia.value = DiasRestantesGarantia;
	
	
}

function CambiaFechaRequerida()
{
/*	if(document.all.CboImpactoNegocio.value == "1" || document.all.CboImpactoNegocio.value == "2" )
		document.all.rbtPrioridad[0].checked = 1;
	else
		document.all.rbtPrioridad[1].checked = 1;
*/
	var FechaRequerida = EjecutaASP("FechaRequerida.asp", "POST", "IdTipoProblema=" + document.all.CboTipoProblema.value);
	
	document.all.txtFechaRequerida.value = 	FechaRequerida;
}

function GrabaImpactoNegocio()
{
	da = document.all;
	if(da.txtDescripcion.value=="")
	{
		alert("Favor de capturar la descripcion del impacto de negocio");
		return false;
	}

	if(da.txtDiasTR.value=="")
	{
		alert("Favor de capturar los días de tiempo de respuesta");
		return false;
	}

	if(da.txtIDImpactoNegocio.value=="")
	{
		
		var SQL = "Insert into ImpactoNegocio (Descripcion,DiasTR)";
		SQL = SQL + " values ('" + da.txtDescripcion.value + "'," + da.txtDiasTR.value + ")"
	}
	else
	{
		SQL = "Update ImpactoNegocio set Descripcion = '" + da.txtDescripcion.value + "',";
		SQL = SQL + " DiasTR=" + da.txtDiasTR.value;
		SQL = SQL + " Where IDImpactoNegocio = " + da.txtIDImpactoNegocio.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;
}

function DespliegaReportesDepartamento(pIdDepartamento)
{
	var SQL = "Select r.IDReporte, r.IdReporteAnterior, r.IDResponsable, u.usuario as Responsable, us.usuario as UsuarioSolicita, s.Descripcion as Status,"
	SQL = SQL + "  iif(r.IdStatus<4 or r.IdStatus=8,Now(),r.FechaEntrega) AS FechaDT,"
	SQL = SQL + "  DateDiff('d',R.FechaLevantamiento,FechaDT) AS Dias,"		
	SQL = SQL + "  iif(R.FechaProgramada is null,FechaRequerida,FechaProgramada) AS FechaDO,"
	SQL = SQL + "  DateDiff('d',R.FechaLevantamiento,FechaDO) AS DiasObjetivo,"
	SQL = SQL + "  Dias - DiasObjetivo as DiasRetraso, d.Descripcion as Departamento,"
	SQL = SQL + "  IIf(DiasRetraso>0 and r.IdStatus not in (4,5),'<img src=images/rojo.gif>',IIf(r.IdStatus in (1,2,3)	,'<img src=images/amarillo.gif>',IIf(r.IdStatus in (8),'<img src=images/azul.gif>','<img src=images/verde.gif>'))) AS Semaforo,"
	SQL = SQL + "  mid(FallaYOServicio,1,120) ^ '...' as FallaYOServicio,IIf(r.SoporteExterno=1,'Si','No') AS SoporteExterno, prioridad,"
	SQL = SQL + "  r.fechalevantamiento ^ ' ' ^ hour(HoraLevantamiento) ^ ':' ^ minute(HoraLevantamiento) as Recibido, "
	SQL = SQL + "  tp.abreviatura as TipoProblema, cstr(r.PorcentajeAvance) ^ '%' as PorcentajeAvance"
	SQL = SQL + " from status s inner join (Departamento D inner join (TipoProblema tp inner join (usuario us inner join (reporte r left join usuario u on u.idusuario = r.idResponsable) "
	SQL = SQL + " on us.IdUsuario = r.IdUsuarioSolicita) "
	SQL = SQL + " on tp.IdTipoProblema = r.IdTipoProblema) "
	SQL = SQL + " on d.idDepartamento = r.IdDepartamento) "
	SQL = SQL + " on s.IdStatus = r.IdStatus "
	SQL = SQL + " where r.IdDepartamento=" + pIdDepartamento
	SQL = SQL + " and r.IdStatus=5"
	SQL = SQL + " order by idReporte"
	
	document.all.SQL.value = SQL;
	document.all.lblTitulo.innerText	= "Lista de reportes"
	ActualizaGrid("grdReportes", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
}
	
function ActualizaRepXDepartamento()
{
	var FechaInicio = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + document.all.txtFechaInicio.value);
	var FechaFin = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + document.all.txtFechaFin.value);

	var SQL = "select d.iddepartamento, d.descripcion as departamento, count(r.idreporte) as NumReportes  "
	SQL = SQL + " from reporte r, departamento d "
	SQL = SQL + " where r.idDepartamento = d.IdDepartamento and r.idstatus=5 "
	SQL = SQL + " and (r.FechaLevantamiento >= #" + FechaInicio + "#"
	SQL = SQL + " and 	r.FechaLevantamiento  <= #" +	FechaFin	 + "#)"
	SQL = SQL + " group by d.iddepartamento, d.descripcion"
	document.all.SQL.value = SQL;
	document.all.lblTitulo.innerText	= ""
	document.all.grdReportes.outerHTML	= "<div id='grdReportes'></div>"
	ActualizaGrid("grdRepXDepartamento", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}

function MenuReportes()
{
	var HTML = '<DIV id="menulocation">';
	HTML = HTML + '<TABLE cellpadding="0" cellspacing="0" border="0" width="150"><tr><td>';
	HTML = HTML + '<img src="images/menu-top.gif" width="130" height="70"></a><br>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="reporte_ver.asp?txt=mispendientes&entrada=s" class="menu">Mis Pendientes</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="reporte_ver.asp?txt=misrequerimientos&entrada=s" class="menu">Mis Requerimientos</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="alta_reporte.asp" class="menu">Alta de Reporte</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="configuracion.asp" class="menu">Configuración</a>';
	HTML = HTML + '</td></tr><tr><td >';
	HTML = HTML + '<a href="reporte_ver.asp" class="menu">Reportes</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="reporte_pordepartamento.asp" class="submenu">Por departamento</a>';
	HTML = HTML + '</td></tr><tr><td nowrap>';
	HTML = HTML + '<a href="login.asp" class="menu">Salir</a>';
	HTML = HTML + '</td></tr><tr><td>';
	HTML = HTML + '<img src="images/menu-bottom.gif" width="130" height="59"></a><br>';
	HTML = HTML + '</td></tr></table></DIV>';
	ActualizaElemento('menulocation', HTML );
	return false;
}

function FolioFisico(pIdReporte)
{
	document.frmForma.action = "Folio_Fisico.asp?IDReporte=" + pIdReporte;
	document.frmForma.submit();
}


function LlenaComboUsuarioRequiere()
{
	var da = document.all;
	
	if(da.txtIDPerfil.value==3)
		var SQL = "Select IdUsuario, Nombre  from usuario where IdPerfil = 4 and Nombre like '%" + da.txtCliente.value + "%'";
	else
		var SQL = "Select IdUsuario, Nombre  from usuario where IdPerfil <> 4 and Nombre like '%" + da.txtCliente.value + "%'";
	
	LlenaCombo("CboUsuarioRequiere",SQL,"onChange=VariableSession();","0","");
	VariableSession();
	
}

function VariableSession()
{
	var VS = EjecutaASP("VariablesSession.asp", "POST", "IdUsuarioRequiere=" + document.all.CboUsuarioRequiere.value);
}


function ActualizaReportesCC(pGrid)
{
	var da = document.all;


	var FechaInicio = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaInicio.value);
	var FechaFin = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaFin.value);
	if(da.txt.value=="mispendientes")
		var SQL= "exec Recuperat_Pendientes_CC " + da.IDUsuario.value 
	else
		var SQL= "exec Recuperat_Requerimientos_CC " + da.IDUsuario.value 
	
	if(da.chkPorFechaLevantamiento.checked)
		SQL = SQL + ",1," 
	else
		SQL = SQL + ",0,"
	if(da.chkPorFechaCompromiso.checked)
		SQL = SQL + "1,"
	else
		SQL = SQL + "0,"
	if(da.chkPorFechaCierre.checked)
		SQL = SQL + "1,"
	else
		SQL = SQL + "0,"
	SQL = SQL + "'" + da.txtFechaInicio.value + "','" + da.txtFechaFin.value + "',"
	SQL = SQL + da.cmbDepartamentos.value  + "," + da.cmbUsuarioSolicita.value + ","
	SQL = SQL + da.cmbResponsables.value  + "," + da.cmbUsuarioRequiere.value + ","
	SQL = SQL + da.EsJefe.value + "," +da.cmbStatus.value  + ",1"

	da.SQL.value = SQL;
	da.IdStatusVer.value = da.cmbStatus.value;
//location.replace("prueba.asp?SQL=" + SQL);
	ActualizaGrid(pGrid, document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
	return false;
}

function LlenaDatosUsuario()
{	//alert("entra");
	var da = document.all;
	var IdUsuario = da.CboUsuarioRequiere.value;
	SQL = "Select IdUsuario,nombre, usuario,iddepartamento,localizacion, telefono, celular, mail, prototipo, FechaEntrega, DateDiff('d',FechaEntrega,Now()) as DiasTranscurridos from Usuario where  IdUsuario = "  + IdUsuario;

	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=1&SQL=" + SQL );
	var nombre = ObtieneCampo(strHTML, "nombre");
	var usuario = ObtieneCampo(strHTML, "usuario");
	var iddepartamento = ObtieneCampo(strHTML, "iddepartamento");
	var localizacion = ObtieneCampo(strHTML, "localizacion");
	var telefono = ObtieneCampo(strHTML, "telefono");
	var celular = ObtieneCampo(strHTML, "celular");
	var mail = ObtieneCampo(strHTML, "mail");
	var prototipo = ObtieneCampo(strHTML, "prototipo");
	var FechaEntrega = ObtieneCampo(strHTML, "FechaEntrega")

	da.txtNombre.value = nombre;
	da.txtUsuario.value = usuario;
	da.txtLocalizacion.value = localizacion;
	da.txtTelefono.value = telefono;
	da.txtCelular.value = celular;
	da.txtPrototipo.value = prototipo;
	da.txtMail.value = mail;
	da.txtFechaEntrega.value = FechaEntrega;
	da.CboFraccionamientos.value=iddepartamento;

	LlenaDiasRestantesGarantia();
}

function LlenaDiasRestantesGarantia()
{
	var da=document.all;
	if(da.CboTipoProblema.value=="-100")
	{
		alert("No se puede obtener el numero de dias restantes de garantia debido a que no se ha seleccionado el tipo de problema ");
		document.all.txtDiasRestantesGarantia.value = "0";
	}
	else
	{
		SQL = "Select DiasGarantia  from TipoProblema where IdTipoProblema="  + da.CboTipoProblema.value;
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=1&SQL=" + SQL );
		var DiasGarantia = ObtieneCampo(strHTML, "DiasGarantia")
		// falta validacion
		if(DiasGarantia=="")
		{
			alert("No se ha capturado el numero de dias de garantia para este tipo de problema")
			document.all.txtDiasRestantesGarantia.value = "0";
		}
		else
		{
			var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
			var FechaEntrega= EjecutaASP("FormatoFecha.asp", "POST", "Fecha=" + da.txtFechaEntrega.value + "&Formato=dmy");
			var DiasTranscurridos = EjecutaASP("DifFecha.asp", "POST", "Fecha1=" + FechaEntrega + "&Fecha2=" + Fecha + "&Intervalo=d");
			var DiasRestantesGarantia = DiasGarantia - DiasTranscurridos;
			document.all.txtDiasRestantesGarantia.value = DiasRestantesGarantia;
		}
	}
}

function CambiaMaysuculas()
{
	var Texto = document.all.txtLocalizacion.value;
	Texto = String(Texto)
	document.all.txtLocalizacion.value = Texto.toUpperCase();
}

function AgregaDepartamento(pIDDepartamento)
{
	var da=document.all;
	var SQL = "insert into UsuarioDepartamento (IdUsuario, IdDepartamento) ";
	SQL = SQL + " values (" + da.IDUsuario.value + ","  + pIDDepartamento + ")";
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

	DespliegaDepartamentos();
}

function QuitaDepartamento(pIDDepartamento)
{
	var da=document.all;
	var SQL = "delete UsuarioDepartamento ";
	SQL = SQL + " where idUsuario = " + da.IDUsuario.value + " and IdDepartamento = "  + pIDDepartamento;
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	DespliegaDepartamentos();
}

function DespliegaDepartamentos()
{	
	var da=document.all;
	var SQL  = "select descripcion, ud.IdDepartamento from departamento d, usuariodepartamento ud";
	SQL = SQL + " where ud.IdUsuario =  " + da.IDUsuario.value;
	SQL = SQL + " and d.idDepartamento = ud.IdDepartamento ";
	SQL = SQL + " order by descripcion "
	da.SQL[0].value = SQL ;
	ActualizaGrid("grdDepartamentosAsignados", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");

	SQL  = "select descripcion, IdDepartamento from departamento ";
	SQL = SQL + " where  iddepartamento not in   "
	SQL = SQL + " (select iddepartamento from usuariodepartamento "
	SQL = SQL + " where idUsuario =  " + da.IDUsuario.value + ")";
	SQL = SQL + " order by descripcion "
	da.SQL[1].value = SQL ;
	//location.replace("prueba.asp?SQL=" + SQL);
	ActualizaGrid("grdDepartamentosDisponibles", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
}

function Rechazar()
{
	var IdReporte = da.txtIDReporte.value;	
	var Fecha = EjecutaASP("FormatoFecha.asp", "POST", "Fecha=&Formato=dmy");
	var Hora = JSClock();
	var Avance = prompt("Avance (sin singno %) ","95");
	if(Avance!=null)
	{
		if(isNaN(Avance))
		{
			alert("Digite solo numeros")
			return false;
		}
		SQL = "update Reporte set PorcentajeAvance=" + Avance + ", idstatus=3, fechaentrega=null where idReporte=" + IdReporte;
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	
		SQL="insert into Bitacora (IdReporte,Fecha,Hora,IdUsuario,Comentario,Automatico) values ";
		SQL = SQL + "(" + da.txtIDReporte.value + ",'" + Fecha + "','" + Hora + "'," + da.IDUsuario.value + ",'Rechazo de la entrega',1 );"
		strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
		
		document.frmForma.action="Reporte_ABC.asp?IdReporte=" + IdReporte;
		document.frmForma.submit();
	}
}

function GrabaLocalizacion()
{
	da = document.all;
	if(da.txtDescripcion.value=="")
	{
		alert("Favor de capturar la Concepto del tipo de problema");
		return false;
	}
	if(da.txtIDLocalizacion.value=="")
	{
		
		var SQL = "Insert into Localizacion (Descripcion)";
		SQL = SQL + " values ('" + da.txtDescripcion.value + "')"
	}
	else
	{
		SQL = "Update Localizacion set Descripcion = '" + da.txtDescripcion.value + "'";
		SQL = SQL + " Where IDLocalizacion = " + da.txtIDLocalizacion.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;

	
}

function GrabaFamilia()
{
	da = document.all;
	if(da.txtDescripcion.value=="")
	{
		alert("Favor de capturar la Familia");
		return false;
	}
	if(da.IDFamilia.value=="")
	{
		
		var SQL = "Insert into Familia (Descripcion)";
		SQL = SQL + " values ('" + da.txtDescripcion.value + "')"
	}
	else
	{
		SQL = "Update Familia set Descripcion = '" + da.txtDescripcion.value + "'";
		SQL = SQL + " Where IDFamilia = " + da.IDFamilia.value;

	}
	da.SQL.value = SQL;
	da.EsRecordset.value = 0;
	document.frmForma.action="Ejecuta_SQL.asp" ;
}

function AgregaLocalizacion(pIDLocalizacion)
{
	var da=document.all;
	var SQL = "insert into Grupo (IdFamilia, IdLocalizacion) ";
	SQL = SQL + " values (" + da.IDFamilia.value + ","  + pIDLocalizacion + ")";
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );

	DespliegaLocalizaciones();
}

function QuitaLocalizacion(pIDLocalizacion)
{
	var da=document.all;
	var SQL = "delete Grupo ";
	SQL = SQL + " where idFamilia = " + da.IDFamilia.value + " and IdLocalizacion = "  + pIDLocalizacion;
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	DespliegaLocalizaciones();
}

function DespliegaLocalizaciones()
{	
	var da=document.all;
	var SQL  = "select descripcion, g.IdLocalizacion from Localizacion l, Grupo g";
	SQL = SQL + " where g.IdFamilia =  " + da.IDFamilia.value;
	SQL = SQL + " and l.idLocalizacion = g.IdLocalizacion ";
	SQL = SQL + " order by descripcion "
	da.SQL[0].value = SQL ;
	ActualizaGrid("grdLocalizacionesAsignadas", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");

	SQL  = "select descripcion, IdLocalizacion from Localizacion ";
	SQL = SQL + " where  idLocalizacion not in   "
	SQL = SQL + " (select idLocalizacion from grupo "
	SQL = SQL + " where idFamilia =  " + da.IDFamilia.value + ")";
	SQL = SQL + " order by descripcion "
	da.SQL[1].value = SQL ;
	//location.replace("prueba.asp?SQL=" + SQL);
	ActualizaGrid("grdLocalizacionesDisponibles", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
}

function AgregaGrupo(pIDGrupo)
{
	var da=document.all;
	if(da.Origen.value=="U")
	{
		var SQL = "insert into GrupoUsuario (IdUsuario, IdGrupo) ";
		SQL = SQL + " values (" + da.IDUsuario.value + ","  + pIDGrupo + ")";
	}
	else
	{
		var SQL = "insert into GrupoTipoProblema (IdTipoProblema, IdGrupo) ";
		SQL = SQL + " values (" + da.IDTipoProblema.value + ","  + pIDGrupo + ")";
	}
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	DespliegaGrupos();
}

function QuitaGrupo(pIDGrupo)
{
	var da=document.all;
	if(da.Origen.value=="U")
	{
		var SQL = "delete GrupoUsuario ";
		SQL = SQL + " where idUsuario = " + da.IDUsuario.value + " and IdGrupo = "  + pIDGrupo;
	}
	else
	{
		var SQL = "delete GrupoTipoProblema ";
		SQL = SQL + " where idTipoProblema = " + da.IDTipoProblema.value + " and IdGrupo = "  + pIDGrupo;
	}
	strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=0&SQL=" + SQL );
	DespliegaGrupos();
}

function DespliegaGrupos()
{	
	var da=document.all;
	if(da.Origen.value=="U")
	{
		var SQL  = "select f.descripcion ^ '-' ^ l.descripcion as descripcion, g.IdGrupo from localizacion l, familia f, grupo g, grupousuario gu";
		SQL = SQL + " where gu.IdUsuario =  " + da.IDUsuario.value;
		SQL = SQL + " and gu.idgrupo = g.idgrupo "
		SQL = SQL + " and l.idLocalizacion = g.IdLocalizacion "
		SQL = SQL + " and f.idfamilia = g.IdFamilia "
	}
	else
	{
		var SQL  = "select f.descripcion ^ '-' ^ l.descripcion as descripcion, g.IdGrupo from localizacion l, familia f, grupo g, grupotipoproblema gtp";
		SQL = SQL + " where gtp.IdTipoProblema =  " + da.IDTipoProblema.value;
		SQL = SQL + " and gtp.idgrupo = g.idgrupo "
		SQL = SQL + " and l.idLocalizacion = g.IdLocalizacion "
		SQL = SQL + " and f.idfamilia = g.IdFamilia "
	}
	
	da.SQL[0].value = SQL ;
	ActualizaGrid("grdGruposAsignados", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");

	if(da.Origen.value=="U")
	{
		SQL  = "select f.descripcion ^ '-' ^ l.descripcion as descripcion, g.IdGrupo from localizacion l, familia f, grupo g "
		SQL = SQL + " where idgrupo not in ( select idgrupo from grupousuario where idusuario = " + da.IDUsuario.value + ")  "
		SQL = SQL + " and l.idLocalizacion = g.IdLocalizacion"
		SQL = SQL + " and f.idfamilia = g.IdFamilia"
	}
	else
	{
		SQL  = "select f.descripcion ^ '-' ^ l.descripcion as descripcion, g.IdGrupo from localizacion l, familia f, grupo g "
		SQL = SQL + " where idgrupo not in ( select idgrupo from grupoTipoProblema where idTipoProblema = " + da.IDTipoProblema.value + ")  "
		SQL = SQL + " and l.idLocalizacion = g.IdLocalizacion"
		SQL = SQL + " and f.idfamilia = g.IdFamilia"
	}
	da.SQL[1].value = SQL ;
	//location.replace("prueba.asp?SQL=" + SQL);
	ActualizaGrid("grdGruposDisponibles", document.all.txtOrdenar.value, document.all.txtAscendente.value,"1");
}

function LlenaComboResponsable()
{
	var IdDepartamento = document.all.CboDepartamentos.value;
	//alert(IdDepartamento);
	var SQL = "Select IdUsuario, Nombre from Usuario where IdDepartamento="  + IdDepartamento +  " order by Nombre";
	LlenaCombo("CboResponsables",SQL,"","0","");
}

function CambiaUsuario(IdUsuario)
{
	window.open("CambioContrasena_abc.asp","_blank", "height=170, width=420, status=no, toolbar=no, scrollbars=yes, location=no,titlebar=no,top=0");
}

function ModificaDatos(IdUsuario)
{
	var ContrasenaAnterior=document.all.txtContrasenaActual.value;
	var ContrasenaNueva=document.all.txtNuevaContrasena.value;
	
	//Obtiene contraseña actual	
	var sql="select Clave from Usuario where IdUsuario="+IdUsuario;
	var strCampos = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=true&SQL=" + sql);
	var Clave = ObtieneCampo(strCampos, "Clave");
	
	if(ContrasenaAnterior=="")
	{
		alert("Capture su contraseña actual.")
		document.all.txtContrasenaActual.value="";
		document.all.txtNuevaContrasena.value="";
		document.all.txtContrasenaActual.focus();
		return false;		
	}
	
	if(ContrasenaNueva=="")
	{
		alert("Capture su nueva contraseña.")
		document.all.txtContrasenaActual.value="";
		document.all.txtNuevaContrasena.value="";
		document.all.txtContrasenaActual.focus();
		return false;		
	}

	if(ContrasenaAnterior!=Clave)
	{
		alert("Contraseña Actual incorrecta.")
		document.all.txtContrasenaActual.value="";
		document.all.txtNuevaContrasena.value="";
		document.all.txtContrasenaActual.focus();
		return false;		
	}
	else
	{
		var sql="exec ABC_Usuario 4,"+IdUsuario+",0,0,0,0,0,'"+ContrasenaNueva+"'";
		var strHTML = EjecutaASP("Ejecuta_SQL_XML.asp", "POST", "EsRecordset=false&sql=" + sql);
		alert("Se ha modificado correctamente su contraseña.")
		window.close();
	}

}


function MantieneSession()
{
	strHTML = EjecutaASP("MantieneSession.asp", "POST", "");
}
//***************** A U T O C O M P L E T A R **********************
function Autocompletar(objetotxt,objetodiv,url,numerocaracteres)
{
	//new Ajax.Autocompleter("autocomplete", "autocomplete_choices", "pinta.asp?Objeto=autocomplete_parameter&sql=select id_employee, first_name-@ @-last_name as nombre,start_date from employee where first_name-@ @-last_name like @/strparam/@", {minChars: 3,updateElement:});
	new Ajax.Autocompleter(objetotxt, objetodiv, url, {minChars: numerocaracteres,afterUpdateElement : getSelectionId});
}

function getSelectionId(text,li) 
{
	var ID=li.id
	var objeto=li.title;
	var funcion=li.lang;
	var valor = eval("document.all."+objeto);
	valor.value=ID;
	if(funcion!="")
	{
		eval(funcion);
	}
}

function borra(objeto,origen)
{
	var Objeto=eval("document.all."+objeto)
	if(origen.value=="")
	{
		Objeto.value=""
	}
}
//***************** A U T O C O M P L E T A R **********************
function Nulo(tipo)
{
if(tipo==1)
{return "No se encuentra el campo"; }
else if(tipo==2)
{return ""; }
}

function Selecciona(objeto)
{	
objeto.select();
}