﻿function MM_findObj(n, d) {
	var p,i,x;
	if(!d)
		d=document; 
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
    	d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);
	}
    if(!(x=d[n])&&d.all)
		x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) 
		x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
		x=MM_findObj(n,d.layers[i].document);    
	if(!x && d.getElementById) 
		x=d.getElementById(n); 
		
	return x;
}
    
function MM_swapImage() {
	var i,j=0,x,a=MM_swapImage.arguments;
	document.MM_sr=new Array;
	for(i=0;i<(a.length-2);i+=3){
        if ((x=MM_findObj(a[i]))!=null){
			document.MM_sr[j++]=x; 
			if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
		}
	}
	setZoomImage();
}

function MM_swapImgRestore() {
	var i,x,a=document.MM_sr; 
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)
		x.src=x.oSrc;
	setZoomImage();
}

function MM_preloadImages() {
	var d=document; 
	if(d.images){ 
		if(!d.MM_p) {
			d.MM_p=new Array();
			var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
			for(i=0; i<a.length; i++){
       			if (a[i].indexOf("#")!=0){
					d.MM_p[j]=new Image;
					d.MM_p[j++].src=a[i];
				}
			}
		}
	}
}

function visible(_d, show){
	try{
    	var _x = document.getElementById(_d);
        if(show){
        	_x.style.display= "block";
        }
		else{
        	_x.style.display= "none";
        }
	}
    catch(err){
		return;
	}
}
	
function ajaxComment(){
	var xmlhttp;

    /*@cc_on
    @if (@_jscript_version >= 5)
		try{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}   
		catch (e) {
        	try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} 
            catch (E) {
				xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e) {
			xmlhttp = false;
        }
	}
	return xmlhttp;
}
    
var AC = ajaxComment(); 

function callAjax(url,callBackFunction){
	url = completeUrl(url);
	alert(url);
	AC.open('get', url);
	AC.onreadystatechange = callBackFunction;
	AC.send(null);
}

function completeUrl(url){
    url += "&sessionId="+sessionId;
    url += "&serverSession="+serverSession;
    url += "&ipAnswer="+ipAnswer;
    url += "&rnd="+Math.floor(Math.random( ) * (350+1));
    if(serverSession != '' && serverSession != null && serverSession != 'null' && serverSession != 'undefined')
        url = url.replace('MapProxy.aspx','('+serverSession+')/MapProxy.aspx');
    return url;
}

var sessionId = '';
var serverSession = '';
var zoomLvl = 2;    
var zoomLvls = new Array(.1,.3,.5,.7,.9,1.2,2.1);
var mapDiv = '';
var lat = null;
var lon = null;
var tit = null;
var text = null;
//var server = 'MapProxy.aspx';
        
function InitializeMap(mapId,latitud,longitud,titulo,texto){
    alert('inicia');
    tit = titulo;
    text = texto;
    lat = latitud;
    lon = longitud;
    mapDiv = mapId;
    GetHtml();
}

function GetHtml(){
    url = server + '?action=getHTML';
    callAjax(url,receiveHtml);
}

function receiveHtml(){
    if(AC.readyState == 4){
	    var response = AC.responseText;
	    alert("html:\r\n " + response);
	    document.getElementById(mapDiv).innerHTML = response;
	    visible('loadingDiv',true);
	    setZoomImage();
	    url = server + '?action=login';
	    callAjax(url,login);
   }
}

function moveMap(orientation){
	visible('loadingDiv',true);
    url = server + '?action='+orientation;   
    callAjax(url,printMap);
}

function moveMapXY(x,y){
	visible('loadingDiv',true);
    url = server + '?action=moveTo'
    url += '&x=' + x;
    url += '&y=' + y;
    callAjax(url,printMap);
}

function setZoomImage()
{
    try{
    document.getElementById('n1').src = 'http://images.seccionamarilla.com.mx/Mapa/1.jpg';
    document.getElementById('n2').src = 'http://images.seccionamarilla.com.mx/Mapa/2.jpg';
    document.getElementById('n3').src = 'http://images.seccionamarilla.com.mx/Mapa/3.jpg';
    document.getElementById('n4').src = 'http://images.seccionamarilla.com.mx/Mapa/4.jpg';
    document.getElementById('n5').src = 'http://images.seccionamarilla.com.mx/Mapa/5.jpg';
    document.getElementById('n6').src = 'http://images.seccionamarilla.com.mx/Mapa/6.jpg';
    document.getElementById('n7').src = 'http://images.seccionamarilla.com.mx/Mapa/7.jpg';
    if(zoomLvl == 6)
        document.getElementById('n1').src = 'http://images.seccionamarilla.com.mx/Mapa/1_f2.jpg';
    if(zoomLvl == 5)
        document.getElementById('n2').src = 'http://images.seccionamarilla.com.mx/Mapa/2_f2.jpg';
    if(zoomLvl == 4)
        document.getElementById('n3').src = 'http://images.seccionamarilla.com.mx/Mapa/3_f2.jpg';
    if(zoomLvl == 3)
        document.getElementById('n4').src = 'http://images.seccionamarilla.com.mx/Mapa/4_f2.jpg';
    if(zoomLvl == 2)
        document.getElementById('n5').src = 'http://images.seccionamarilla.com.mx/Mapa/5_f2.jpg';
    if(zoomLvl == 1)
        document.getElementById('n6').src = 'http://images.seccionamarilla.com.mx/Mapa/6_f2.jpg';
    if(zoomLvl == 0)
        document.getElementById('n7').src = 'http://images.seccionamarilla.com.mx/Mapa/7_f2.jpg';
    }
    catch(err)
    {
        return;
    }
}

function zoom(how){
	visible('loadingDiv',true);
    url = server + '?action=zoom';
        
    if(how == "in")
        zoomLvl--;
    else
        zoomLvl++;
        
    if(zoomLvl > 6)
        zoomLvl = 6;
    if(zoomLvl < 0)
        zoomLvl = 0;
            
    for(x = 0; x <= zoomLvl; x++)
        zL = zoomLvls[x];
            
    url += '&zoomlvl='+zL;
 
    callAjax(url,printMap);
    setZoomImage();
}
    
function zoomTo(lvl){
    visible('loadingDiv',true);
    url = server + '?action=zoom';
        
    if(lvl > 7)
        lvl = 7;
    if(lvl < 0)
        lvl = 0;
                      
    for(x = 0; x <= lvl; x++){
        zL = zoomLvls[x];
        zoomLvl = x;
    }

    url += '&zoomlvl='+zL;
        
    callAjax(url,printMap);
    setZoomImage();
}

function login(){
	if(AC.readyState == 4){ 
	    var response = AC.responseText;
	    alert("login:\r\n " + response);
	    sessionId = queryStringFromString('sessionId',response);
	    serverSession = queryStringFromString('serverSession',response);
	    alert(sessionId);
	    alert(serverSession);
	    url = server+'?action=setMap';
	    url += '&lat='+lat;
	    url += '&lon='+lon;
	    url += '&width=500';
	    url += '&height=300';
	    url += '&zoom='+zoomLvl;
	    url += '&titulo='+tit;
	    url += '&texto='+text;
	    callAjax(url,printMap);
    }
}

function printMap(){
	if(AC.readyState == 4){ 
		visible('loadingDiv',false);
		var response = AC.responseText;
		alert("print map:\r\n " + response);
		document.getElementById('imgMapa').setAttribute("src",response);
	}
}
    
function visibleDiv(_d){
	try{
    	var _x = document.getElementById(_d);
        _x.style.display=_x.style.display=="none"?"block":"none";
    }
    catch(err){
    	return;
    }
}

//Drag Map
var startX = 0;
var startY = 0;
var lastX = 0;
var lastY = 0;
var counter = 0;

function BeginDrag(e){
    counter = 0;
    //document.all.Panel1.style.clip = "rect(0px 406px 406px 0px)";
	lastX = startX = e.clientX;
	lastY = startY = e.clientY;
}
					
function EndDrag(e){
    DragPrintMap(e.clientX, e.clientY);
}

function DragPrintMap(endX,endY){
    var movedX = startX - endX;
    var movedY = startY - endY;

    var halfX = parseInt(document.getElementById('imgMapa').style.width) / 2;
    var halfY = parseInt(document.getElementById('imgMapa').style.height) / 2;
    
    var centerX =  halfX + movedX;
    var centerY =  halfY + movedY;

    moveMapXY(centerX,centerY);
}
			
function PageQuery(q) {
if(q.length > 1) this.q = q.substring(1, q.length);
else this.q = null;
this.keyValuePairs = new Array();
if(q) {
for(var i=0; i < this.q.split("&").length; i++) {
this.keyValuePairs[i] = this.q.split("&")[i];
}
}
this.getKeyValuePairs = function() { return this.keyValuePairs; }
this.getValue = function(s) {
for(var j=0; j < this.keyValuePairs.length; j++) {
if(this.keyValuePairs[j].split("=")[0] == s)
return this.keyValuePairs[j].split("=")[1];
}
return null;
}
this.getParameters = function() {
var a = new Array(this.getLength());
for(var j=0; j < this.keyValuePairs.length; j++) {
a[j] = this.keyValuePairs[j].split("=")[0];
}
return a;
}
this.getLength = function() { return this.keyValuePairs.length; }
}
function queryString(key){
var page = new PageQuery(window.location.search);
return unescape(page.getValue(key));
}
function queryStringFromString(key,qs){
var page = new PageQuery(qs);
return unescape(page.getValue(key));
}
function displayItem(key){
if(!queryString(key)=='false')
{
document.write("you didn't enter a ?name=value querystring item.");
}
document.write(queryString(key));
}
        
