﻿var js;

function include_js(file) {
    var html_doc = document.getElementsByTagName('head')[0];
    js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
    html_doc.appendChild(js);

/*
    // IE
    js.onreadystatechange = function () {
        if (js.readyState == 'complete') {
            alert('JS onreadystate fired');
        }
    }

    // FIREFOX
    js.onload = function () {
        alert('JS onload fired');
    }
*/
    return false;
}

function ValidarNombreGeocerca(source, arguments) {
    var ret=true;
    var txtValue=arguments.Value.toLowerCase();
    
    // Se revisa si el nombre es diferente al inicial (Nueva geocerca o fue cambiado en la edicion)
    if (txtValue != curName) {
        ret = (strUndGeoNames.indexOf('#' + txtValue + '#') < 0);
    }

    arguments.IsValid = ret;
}
    
function ValidarSeleccionGeocerca(source, arguments) {
    var ret=false;
    
    switch (geoFenceType) {
        case 0:     // No han dibujado una geocerca
            if (Operacion==1) {     // Si se está creando una geocerca
                alert("Debe dibujar una geocerca rectangular, circular o poligonal (amorfa) sobre el mapa usando las herramientas de dibujo.");
            }
            else if (Operacion=2) {  // Si se está editando una geocerca, es posible que no cambien el dibujo, solo los datos (Nombre, Descripcion, Estado)
                ret=true;
            }
            break;
            
        case 1: case 2:     // Circular // Rectangular
            document.form1.GeoParams.value=geoFenceParam;
            document.form1.TipoGeocerca.value=geoFenceType;
            ret = true;
            break;

        case 3: case 4:   // Poligonal (3:poligono, 4:polilinea)
            if (geoFencePoints != null) {
                var strPoints="#", nPoints=geoFencePoints.length;
                for (var i=0; i<nPoints; i++) {
                    strPoints += "longitud=" + geoFencePoints[i][0] + "&latitud=" + geoFencePoints[i][1] + "&";
                }
                strPoints = strPoints.substr(0,strPoints.length-1);
                document.form1.GeoParams.value=strPoints;
                document.form1.TipoGeocerca.value=geoFenceType;
                ret = true;
            }
            else {
                alert("Error cargando los puntos de la geocerca poligonal. Por favor intente de nuevo o comuníquese con su distribuidor...");
            }
            break;

        case 5:     // Polilinea en carga de puntos
            alert("Actualmente se están cargando los puntos de la geocerca. Por favor espere unos segundos y presione nuevamente el boton Guardar...");
            break;
    }
    
    arguments.IsValid=ret;
}

function DisableFrameAbajo() {
    parent.document.body.rows="135,*,0";
}

function RefreshFrameAbajo() {
    parent.frames['abajo'].location.reload(false);
}

function AjustarFiltrosAbajo(btnAnt, btnSig, intPagActual, intNroPags, FIDia, FIMesAno, FFDia, FFMesAno) {
    var fad = parent.frames['abajo'].document;
    if (fad.getElementById("btnAnt")!=null) {
        fad.getElementById("btnAnt").disabled=!btnAnt
        fad.getElementById("btnSig").disabled=!btnSig;
        fad.getElementById("txtPaginas").value = "pág " + intPagActual + " de " + intNroPags;
        fad.getElementById("txtDiaInicial").value = FIDia; 
        fad.getElementById("cmbMesInicial").value = FIMesAno; 
        fad.getElementById("txtDiaFinal").value = FFDia; 
        fad.getElementById("cmbMesFinal").value = FFMesAno; 
    }
}

function AjustarFiltrosAbajo2(FRDia, FRMesAno, TipoMapas) {
    var fad = parent.frames['abajo'].document;
    if (fad.getElementById("txtDiaRecorrido")!=null) {
        fad.getElementById("txtDiaRecorrido").value = FRDia; 
        fad.getElementById("cmbMesRecorrido").value = FRMesAno; 
        fad.getElementById("pnlTipoMapasRecorrido").style.display=TipoMapas ? "" : "none"; 
    }
}

function AjustarFiltrosAbajo3(FIDia, FIMesAno, FFDia, FFMesAno, Estado) {
    var fad = parent.frames['abajo'].document;
    if (fad.getElementById("cmbEstado")!=null) {
        fad.getElementById("txtDiaInicial2").value = FIDia; 
        fad.getElementById("cmbMesInicial2").value = FIMesAno; 
        fad.getElementById("txtDiaFinal2").value = FFDia; 
        fad.getElementById("cmbMesFinal2").value = FFMesAno; 
        fad.getElementById("cmbEstado").value = Estado; 
    }
}


function EnableFrameAbajo() {
    parent.document.body.rows="135,*,30";
}

function VerMapa(IDUnidad, StrPos) {
    parent.frames['arriba'].LimpiarCombos(null);
    parent.frames['ppal'].location.href='./MapaPosicion.aspx?StrPos='+StrPos+'&IDUnidad='+IDUnidad;    
}

function ConfirmarFuncion(IDUnidad, IDFuncion) {
    if (confirm("¿Está seguro que desea enviar está función a la unidad?")) {
        parent.frames['ppal'].location.href='./EnviarFuncion.aspx?IDFuncion='+IDFuncion+'&IDUnidad='+IDUnidad;
    }
}

function ToSQLDate(d) {
    return d.getDate() + "/" + (d.getMonth()+1) + "/" + d.getFullYear();
}

function IrDestinoDistr(strLink) {
    if (strLink<5) {
        var mensaje="Debe seleccionar un distribuidor del listado antes de realizar cualquier operación";
        var ruta='ListaDistribuidores.aspx';
        var ppalWnd = parent.frames['ppal'];

        if (ppalWnd.location.href.indexOf(ruta)==-1) {
            alert(mensaje);
            ppalWnd.location.href="./"+ruta;
            return false;
        }
        else if (ppalWnd.lastID==-1) {
            alert(mensaje);
            return false;
        }
        else {
            IDDistribuidor=ppalWnd.lastID;
        }
    }

    switch (strLink) {
        case 1:     // Editar informacion
            parent.frames['ppal'].location.href='./EdicionDistribuidor.aspx?IDOperacion=2&IDDistribuidor=' + IDDistribuidor;
            break;
        case 2:     // Administrar cuentas
            parent.frames['arriba'].location.href='./TopCuentas.aspx';
            parent.frames['ppal'].location.href='./ListaCuentas.aspx?IDDistribuidor='+IDDistribuidor;
            break;
        case 3:     // Eliminar distribuidor
            parent.frames['ppal'].location.href='./EdicionDistribuidor.aspx?IDOperacion=3&IDDistribuidor=' + IDDistribuidor;
            break;
        case 4:     // Fusionar
            var IDDistribuidor2;
            if (ppalWnd.compID != -1) {
                IDDistribuidor2=ppalWnd.compID;
            }
            else {
                alert("Debe seleccionar dos distribuidores del listado para poder fusionarlos. Utilice la tecla 'Control' antes de hacer clic.");
                return false;
            }

            parent.frames['ppal'].location.href='./FusionarDistribuidor.aspx?IDDistribuidor1='+IDDistribuidor+"&IDDistribuidor2="+IDDistribuidor2;
            break;
        case 5:     // Nuevo distribuidor
            parent.frames['ppal'].location.href='./EdicionDistribuidor.aspx?IDOperacion=1';
            break;
        case 6:     // Nueva unidad
            parent.frames['ppal'].location.href='./EdicionUnidad.aspx?IDOperacion=1';
            break;
        case 7:     // Reportes
            parent.frames['ppal'].location.href='./ReporteComunicaciones.aspx?FI=&FF=&EST=';
            break;
    }
}


function IrDestinoCuentas(strLink) {
    if (strLink<5) {
        var mensaje="Debe seleccionar una cuenta del listado antes de realizar cualquier operación";
        var ruta='ListaCuentas.aspx';
        var ppalWnd = parent.frames['ppal'];

        if (ppalWnd.location.href.indexOf(ruta)==-1) {
            alert(mensaje);
            ppalWnd.location.href="./"+ruta;
            return false;
        }
        else if (ppalWnd.lastID==-1) {
            alert(mensaje);
            return false;
        }
        else {
            IDCuenta=ppalWnd.lastID;
        }
    }

    switch (strLink) {
        case 1:     // Editar informacion
            parent.frames['ppal'].location.href='./EdicionCuenta.aspx?IDOperacion=2&IDCuenta=' + IDCuenta;
            break;
        case 2:     // Administrar unidades
            parent.frames['arriba'].location.href='./TopUnidades.aspx';
            parent.frames['ppal'].location.href='./ListaUnidades.aspx?IDCuenta='+IDCuenta;
            break;
        case 3:     // Eliminar cuenta
            parent.frames['ppal'].location.href='./EdicionCuenta.aspx?IDOperacion=3&IDCuenta=' + IDCuenta;
            break;
        case 4:     // Fusionar
            var IDCuenta2;
            if (ppalWnd.compID != -1) {
                IDCuenta2=ppalWnd.compID;
            }
            else {
                alert("Debe seleccionar dos cuentas del listado para poder fusionarlas. Utilice la tecla 'Control' antes de hacer clic.");
                return false;
            }

            parent.frames['ppal'].location.href='./FusionarCuentas.aspx?IDCuenta1='+IDCuenta+"&IDCuenta2="+IDCuenta2;
            break;
        case 5:     // Nueva cuenta
            parent.frames['ppal'].location.href='./EdicionCuenta.aspx?IDOperacion=1';
            break;
        case 6:     // Exportar a Excel
            //parent.frames['ppal'].location.href='./VerCaracteristicas.aspx';
            break;
        case 7:     // Reportes
            parent.frames['ppal'].location.href='./ReporteVentas.aspx?FI=&FF=';
            break;
    }

}

function IrDestinoUnidades(strCmb,strValue) {
    var ppalWnd = parent.frames['ppal'];
    if (ppalWnd.lastID != -1) {
        IDUnidad=ppalWnd.lastID;
    }    
    if ((IDUnidad==null || IDUnidad==-1) && (strValue!='')) {
        alert("Debe seleccionar una unidad del listado antes de realizar cualquier operación");
        if (ppalWnd.location.href.indexOf('ListaUnidades.aspx')>0) {
            LimpiarCombos(null);
        } else {
            ppalWnd.location.href = './ListaUnidades.aspx';
        }

        return;
    }

    LimpiarCombos(strCmb);
    
    switch (strCmb+strValue) {
        case "cmbMapas":
            parent.frames['ppal'].location.href='./ListaUnidades.aspx';
            break;
        case "cmbReportes":
            parent.frames['ppal'].location.href='./ListaUnidades.aspx';
            break;
        case "cmbOperaciones":
            parent.frames['ppal'].location.href='./ListaUnidades.aspx';
            break;
        case "cmbMapas1":
            parent.frames['ppal'].location.href='./MapaPosicion.aspx?Ultima=1&IDUnidad=' + IDUnidad;
            break;
        case "cmbMapas2":
            parent.frames['ppal'].location.href='./MapaRecorrido.aspx?IDUnidad='+IDUnidad+'&FR=';
            break;
        case "cmbMapas3":
            parent.frames['ppal'].location.href='./MapaUnidades.aspx?Todas=1&IDUnidad=' + IDUnidad;
            break;
        case "cmbReportes1":
            parent.frames['ppal'].location.href='./ReporteHistorico.aspx?IDUnidad='+IDUnidad+'&FI=&FF=';
            break;
        case "cmbReportes2":
            parent.frames['ppal'].location.href='./ReporteFunciones.aspx?IDUnidad='+IDUnidad+'&FI=&FF=';
            break;
        case "cmbReportes3":
            parent.frames['ppal'].location.href='./ReporteNotificaciones.aspx?IDUnidad='+IDUnidad+'&FI=&FF=';
            break;
        case "cmbOperaciones1":
            parent.frames['ppal'].location.href='./EnviarFuncion.aspx?IDUnidad='+IDUnidad;
            break;
        case "cmbOperaciones2":
            parent.frames['ppal'].location.href='./EdicionUnidad.aspx?IDOperacion=2&IDUnidad='+IDUnidad;
            break;
        case "cmbOperaciones3":
            parent.frames['ppal'].location.href='./ListaGeocercas.aspx?IDUnidad='+IDUnidad;
            break;
    }
}

function IrDestinoGeocercas(strLink, strUnidad) {
    var mensaje="Debe seleccionar una geocerca del listado antes de realizar esta operación";
    var ruta='ListaGeocercas.aspx';
    var ppalWnd = parent.frames['ppal'];

    if (ppalWnd.location.href.indexOf(ruta)==-1) {
        alert(mensaje);
        ppalWnd.location.href="./"+ruta;
        return false;
    }
    else if (ppalWnd.lastID2==-1 && strLink != 1) {
        alert(mensaje);
        return false;
    }
    else {
        IDGeocerca=ppalWnd.lastID2;
    }

    ruta = '';
    switch (strLink) {
        case 1:     // Crear geocerca
            ruta = './DibujoGeocerca.aspx?IDUnidad=' + strUnidad + '&IDOperacion=1';
            break;
        case 2:     // Editar geocerca
            ruta = './DibujoGeocerca.aspx?IDUnidad=' + strUnidad + '&IDOperacion=2&IDGeocerca=' + IDGeocerca;
            break;
        case 3:     // Eliminar geocerca
            ruta = './DibujoGeocerca.aspx?IDUnidad=' + strUnidad + '&IDOperacion=3&IDGeocerca=' + IDGeocerca;
            break;
    }
    
    if (ruta!='') {
        OpenPopup('Geocercas', ruta, 700, 500, 0);
    }

}

function LimpiarCombos(cmbSender) {
    var a=parent.frames['arriba'];
    var cmbs=new Array("cmbMapas","cmbReportes","cmbOperaciones");
    var cmb;
    var tmp;
    for (tmp in cmbs) {
        var tmpCmb = cmbs[tmp];
        if (tmpCmb != cmbSender) {
            cmb = a.document.getElementById(tmpCmb);
            if (cmb != null) {
                cmb.value='';
            }
        }
    }
    parent.frames['ppal'].focus();
}

// Validate a date with controls entries
function ValidateDate(txtDay, txtMonth, txtYear, minYear, retDate) {
	// Fill the user selections	
	var Day = parseInt(document.getElementById(txtDay).value,10);
	var Month = parseInt(document.getElementById(txtMonth).value,10);
	var Year = parseInt(document.getElementById(txtYear).value,10);
	
	return ValidateDateValues(Day,Month,Year,minYear,retDate)
}

// Validate a date with controls entries
function ValidateDateValues(Day, Month, Year, minYear, retDate) {
	var result
	
	// Construct the date to validate
	dateVal = new Date(Year,Month-1,Day);
	if (retDate != null) {
		retDate.setFullYear(dateVal.getFullYear());
		retDate.setMonth(dateVal.getMonth());
		retDate.setDate(dateVal.getDate());
	}
	
	// The elements of JScript interpretated date must be equals to the user entries and the year must be higher minYear
	return ((Month==dateVal.getMonth()+1) && (Day==dateVal.getDate()) && (Year==dateVal.getFullYear()) && Year>=minYear);
}

// To open a popup window
function OpenPopup(popupName, myURL, popupWidth, popupHeight, popupScroll) {
	var popupX = (screen.availWidth)? ((screen.availWidth - popupWidth) / 2): 20;
    var popupY = (screen.availHeight)? ((screen.availHeight - popupHeight) / 3):20;
    var details = 'toolbar=0,location=1,directories=0,status=0,menubar=0,scrollbars=' + (typeof(popupScroll)=="undefined" ? 0 : popupScroll) + ',resizable=0,width='+popupWidth+',height='+popupHeight+',top='+popupY+',left='+popupX;
    var mypopup = window.open(myURL,popupName,details);
    mypopup.focus();
}