
jQuery.noConflict();

function main(){};

var flag = 1;



main.openWindow = function(_name, _title, _ancho, _alto, _url, _resize, _modal, _close, _closeable, _minimizable, _pos_x, _pos_y)
{
    var win = Windows.getWindow(_name);
   
    if(typeof(win)=="undefined"||!win)
    {
        win = new Window({
            id: _name,
            className: "windows_js_theme",
            title: _title,
            width: _ancho,
            height: _alto,
            minimizable:!_minimizable?true:false,
            maximizable:false,
            wiredDrag: true,
            url: _url,
            resizable : _resize,
            closable: !_closeable?true:false,
            parent: 'map'
        });
        
        if(!_close)
        {
            win.setDestroyOnClose();
        }
             
        win.setConstraint(true, {left:10, right:36, bottom: 10, top: 10});
    }
    else
    {
        if (win.isMinimized())
        {
            win.minimize();
        }
           
    }
    if(win.getURL()!= _url)
    {
    	win.setURL(_url);
    	win.setSize(_ancho,_alto);
    	win.refresh();
    }
    
    win.setLocation(5, 5);
     
  	if (_pos_x || _pos_y)
    {
        win.setLocation(_pos_x, _pos_y);
    }
    
    if (_modal)
    {
        win.show(_modal);
    }
    else
    {
        win.show();
    }
    win.toFront();
    if(Windows.maxZIndex == 1){
    	win.setZIndex(2);
    }
    return win;
}


main.closeWindow = function(id)
{
	var win = Windows.getWindow(id);
	if(typeof(win)!="undefined"||win)
	{
		win.close();
	}
}

//Funcion que borra los puntos y rutas de historicos del mapa principal cuando la ventana se cierra.	    
window.observadorRepHist = {
	onClose: function(evento, objeto_ventana) 
	{
		if (objeto_ventana.getId() == 'report-histo')
		{
			mapObj.RemoveDynamicLayer('Puntos');
			mapObj.RemoveDynamicLayer('Trazado de Ruta');
			mapObj.removeIconsOnLayer('HISTORICO');	
			Windows.removeObserver(window.observadorRepHist);
		}	
		
	}
};

//Funcion que borra los puntos de panico del mapa principal cuando la ventana se cierra.	    
window.observadorPanicos = {
	onClose: function(evento, objeto_ventana) 
	{
		if (objeto_ventana.getId() == 'bus-panicos')
		{
			mapObj.removeIconsOnLayer('PANICOS');
			Windows.removeObserver(window.observadorPanicos);
		}
	}
};

//Funcion que borra los puntos de estatus actual del mapa principal cuando la ventana se cierra.
window.observadorEstatusActual= {
	onClose: function(evento, objeto_ventana) 
	{
		if (objeto_ventana.getId() == 'estatus-actual')
		{
			mapObj.removeIconsOnLayer('ESTATUS_ACTUAL');
			Windows.removeObserver(window.observadorEstatusActual);
		}
	}
};

//Funcion que borra las lineas de la medicion de distancias del mapa principal cuando la ventana se cierra.
window.cerrarDistancia = {
    onClose: function(evento, objeto_ventana)
    {
    	if (objeto_ventana.getId() == 'distancia')
		{
        	mapObj.EndDigitizer();
        	Windows.removeObserver(window.cerrarDistancia);
		}
    }
};

//Funcion que borra los puntos de busqueda cartografica del mapa principal cuando la ventana se cierra.
window.observadorBusCartografica = {
    onClose: function(evento, objeto_ventana)
    {
    	if (objeto_ventana.getId() == 'carto')
		{	
       		mapObj.removeIconsOnLayer('ubicacion');
       		Windows.removeObserver(window.observadorBusCartografica);
		}
    }
};

ZoomCoordenada = function (lon, lat)
{
	var geom_lon = parseFloat(lon);
	var geom_lat = parseFloat(lat);

	mapObj.ZoomAndGoTo(new SGeoPoint(geom_lon,geom_lat),17);
	mapObj.detectWindowResize(true);
	document.getElementById("map").focus();	
}

//Igual que la anterior pero en esta ocasión el nivel de zoom se pasa
//como parámetro, si es un valor no válido se setea a 17
ZoomCoordenadaSelect = function (lon, lat, zoom)
{
	var geom_lon = parseFloat(lon);
	var geom_lat = parseFloat(lat);
	var var_zoom = parseFloat(zoom);

	var_zoom = ((var_zoom == "NaN") ? 17 : var_zoom );
	
	mapObj.ZoomAndGoTo(new SGeoPoint(geom_lon,geom_lat),var_zoom);
	mapObj.detectWindowResize(true);
	document.getElementById("map").focus();	
}

ZoomVistas = function (lon,lat,niv)
{
	var geom_lon = parseFloat(lon);
	var geom_lat = parseFloat(lat);
	coor_gral = new SGeoPoint(geom_lon,geom_lat);	
	mapObj.ZoomAndGoTo(new SGeoPoint(geom_lon,geom_lat),niv);
	mapObj.detectWindowResize(true);
	document.getElementById("map").focus();
}

Ir_Panico = function (lon, lat, alias, placa, fecha, hora, titulo, dirImg)
{		
	var     texto='<div style="height: 50px; width: 100%; overflow: auto;">';
	texto = texto='<p class="titulo1">'+titulo+'<br></p>';
	texto = texto+'<p class="texto1" align="left">'+alias+' ('+placa+')'+'<br></p>';
	texto = texto+'<p class="texto1" align="left">'+fecha+'<br></p>';
	texto = texto+'<p class="texto1" align="left">'+hora+'<br></p></div>';
	var dir_img = dirImg;
	var icon = new SIcon(new SGeoPoint(parseFloat(lon), parseFloat(lat)), new SSize(24, 24), dir_img, true);
	icon.setDockAlignment("center");
	icon.setTooltip(alias);
	mapObj.addIcon(icon, 'PANICOS');
	SEvent.AddListener(icon, 'onclick', function(){icon.showInfoWindow(new SSize(190, 90), texto)});
	ZoomCoordenada(lon, lat);
}

Ir_Historico= function (lat, lon, ocurr,titulo,fech,dirImg)
{
	var point = new SGeoPoint(lon, lat)
	mapObj.ZoomAndGoTo(point,14);
	document.getElementById('div_menu_his').style.visibility="visible";
	var texto = '<p class="titulo1">'+titulo+'<br></p>';
	texto=texto+'<p class="titulo1" align="left">'+fech;
	texto = texto+'<br ><span class="titulo1"></span>'+ocurr+'</p>';
	creaIcon(lon,lat,texto,dirImg,'HISTORICO', null, true, 210, 110);

}

Ir_Estatus_Actual= function (lat, lon, dir, titulo, fech, dirImg, ali, pla, est)
{
	var point = new SGeoPoint(lon, lat)
	mapObj.ZoomAndGoTo(point,14);
	var texto = '<p class="titulo1">'+titulo+'<br></p>';
	texto=texto+'<p class="titulo1" align="left">'+ali+' ('+pla+')'+'</p>';
	texto=texto+'<p class="titulo1" align="left">'+est+'</p>';
	texto=texto+'<p class="titulo1" align="left">'+fech;
	texto = texto+'<br ><span class="titulo1"></span>'+dir+'</p>';
	creaIcon(lon,lat,texto,dirImg,'ESTATUS_ACTUAL', null, true, 240, 125);
}

/**
 * NOMBRE: creaIcon
 * PARAMETROS: 
 * 	x: Valor longitud
 * 	y: Valor latitud
 * 	texto: Texto a mostrar en la nube, en texto o html
 * 	tooltip: Descriptivo del �cono
 * 	dir_img: Ruta de la imagen donde se encuentra la imagen a asignar al �cono
 * 	zoom: Boolean que define si se hace o no zoom al �cono creado
 * 	layer: Nombre de la capa donde se agregará el �cono
 *  anc: ancho de tamaño d ela nube
 * 	lar: largo del tamaño d ela nube
 *	DESCRIPCIÓN:
 * 	Función que permite crear �conos en el mapa
 * AUTOR: Darwin Serrano
 * FECHA DE CREACIÓN: 10 de noviembre de 2008. 
 */
creaIcon = function (x,y,texto, dir_img, layer, tooltip, zoom, anc , lar)
{
		var icon = new SIcon(new SGeoPoint(parseFloat(x), parseFloat(y)), new SSize(24, 24), dir_img);
		icon.setDockAlignment("center");
		if(typeof(tooltip) != "undefine" && tooltip != null)
		{
			icon.setTooltip(tooltip);
		}
		mapObj.addIcon(icon, layer);
		SEvent.AddListener(icon, 'onclick', function(){icon.showInfoWindow(new SSize(anc, lar), texto)});
		if (typeof(zoom) != "undefine" && zoom != null)
		{
			mapObj.ZoomAndGoTo(new SGeoPoint(parseFloat(x), parseFloat(y)),17);
		}
}


/**
 * NOMBRE: onclickLink
 * PARAMETROS: 
 * 	nombre: Nombre del elemento a aplicarle el estilo
 * 	id_p: Identificador del elemento a aplicarle el estilo
 * 	nom_clase: Nombre de la clase que contiene el estilo a aplicar
 *	DESCRIPCIÓN:
 * 	Función que permite asignar un estilo a un objeto del HTML
 * AUTOR: Darwin Serrano
 * FECHA DE CREACIÓN: Octubre de 2008. 
 */
onclickLink = function (nombre,id_p,nom_clase){
	for(i=0 ; i<document.links.length ; i++){
		with(document.links[i]){
			if ( (id != id_p) && (name == nombre) ){
				_query = query = "div[id='tree-flotas'] a[id='"+id+"']";
				jQuery(document).ready(function(){
					jQuery(_query).removeClass(nom_clase);
				});
			}
			else if ( (id == id_p) && (name == nombre) )
			{
				_query = query = "div[id='tree-flotas'] a[id='"+id+"']";
				jQuery(document).ready(function(){
					jQuery(_query).removeClass();
					jQuery(_query).addClass(nom_clase);
				});
			}
		}
	}
}