﻿//copyright 2008 simpartners | epsilonforce | cristian pereira
//August 14, 2007-2008
//Last version April. 25 2009
//Language convertion
function setLang(Lang)
     {  
         if(Language==Lang)
            return;                     
         
         Hide2('imgChangeLang',false,'images/loader2.gif');    
         disableAnchor(document.getElementById('lnklang_' + Lang),true);
         disableAnchor(document.getElementById('lnklang_' + Language),false);          
         
         var islang;
         var imgs=document.getElementById('td_content_options').getElementsByTagName('img')
         for(var i=0;i<imgs.length;i++)
         {  islang=imgs[i].getAttribute('islang');
            if(islang)            
            {
                if(Lang=='es')
                    imgs[i].src=imgs[i].src.replace('/images/','/images/lang_es/es_');
                else
                    imgs[i].src=imgs[i].src.replace('/images/lang_es/es_','/images/');
            }
         }
         
         if(Lang=='es')
         {  
            replaceDisplayObj('es_txt_tab1','txt_tab1');
            replaceDisplayObj('es_txt_tab2','txt_tab2');
            replaceDisplayObj('es_txt_tab3','txt_tab3');
            if(document.getElementById('txt_alsovisit')!=null)
                document.getElementById('txt_alsovisit').innerHTML='También Visite:';
            document.getElementById('txt_totaldistance').innerHTML='Distancia Total:';  
            document.getElementById('units').innerHTML='MILLAS'; 
            document.getElementById('txt_units').innerHTML='Unidades:'; 
            document.getElementById('txt_miles').innerHTML='millas';
            
            document.getElementById('amtc_option_0').firstChild.innerHTML='Mapa'; 
            document.getElementById('amtc_option_1').firstChild.innerHTML='Satélite'; 
            document.getElementById('amtc_option_2').firstChild.innerHTML='Híbrido'; 
            
            document.getElementById('txt_minreq').innerHTML='YCTV Requerimientos Mínimos:';
         }
         else
         {
            replaceDisplayObj('txt_tab1','es_txt_tab1');
            replaceDisplayObj('txt_tab2','es_txt_tab2');
            replaceDisplayObj('txt_tab3','es_txt_tab3');
            if(document.getElementById('txt_alsovisit')!=null)
                document.getElementById('txt_alsovisit').innerHTML='Also Visit:';
            document.getElementById('txt_totaldistance').innerHTML='Total Distance:';  
            document.getElementById('units').innerHTML='MILES'; 
            document.getElementById('txt_units').innerHTML='Units:'; 
            document.getElementById('txt_miles').innerHTML='miles'; 
            
            document.getElementById('amtc_option_0').firstChild.innerHTML='Map'; 
            document.getElementById('amtc_option_1').firstChild.innerHTML='Satellite'; 
            document.getElementById('amtc_option_2').firstChild.innerHTML='Hybrid'; 
            
            document.getElementById('txt_minreq').innerHTML='YCTV Minimum Requirements:';
         }
         
         Language=Lang;
         setLangBubble();
         setTimeout("Hide2('imgChangeLang',true,'images/loader2.gif');",300);
     }
     
     function setLangBubble()
     {
        if(document.getElementById('tbl_attcontent')==null)
            return;
        var imgs=document.getElementById('tbl_attcontent').getElementsByTagName('img')
        for(var i=0;i<imgs.length;i++)
        {   islang=imgs[i].getAttribute('islang');
            if(islang)            
            {   if(Language=='es' && imgs[i].src.indexOf('es_')==-1)
                    imgs[i].src=imgs[i].src.replace('/images/','/images/lang_es/es_');
                else
                    imgs[i].src=imgs[i].src.replace('/images/lang_es/es_','/images/');                                    
            }          
        }
        
        var myregexp = /lang=(.*)&/g;
        var match = myregexp.exec(src);
        var iframe=document.getElementById('ifrm_sms')
        var src=iframe.getAttribute('src');
        
        if(Language=='es')
        {   
            if(src.indexOf('lang=es')!=-1)
                return;
                           
            src=src.replace(myregexp,'lang=' + Language + '&');
            iframe.setAttribute('src',src + Math.random());
            
            document.getElementById('txt_enteraddress').innerHTML='Ingrese Dirección'; 
            document.getElementById('txt_address').innerHTML='Dirección'; 
            document.getElementById('txt_city').innerHTML='Ciudad, Estado o Zip'; 
            
            document.getElementById('txt_name').innerHTML='Su Nombre:'; 
            document.getElementById('txt_email').innerHTML='Su E-mail:'; 
            document.getElementById('txt_friendname').innerHTML='Nombre de su amigo:'; 
            document.getElementById('txt_friendemail').innerHTML='E-mail de su amigo:'; 
            document.getElementById('txt_message').innerHTML='Mensaje:'; 
        }
        else
        {   
            if(src.indexOf('lang=en')!=-1)
                return;
                
            src=src.replace(myregexp,'lang=' + Language + '&');
            iframe.setAttribute('src',src + Math.random());            
            
            document.getElementById('txt_enteraddress').innerHTML='Enter Address'; 
            document.getElementById('txt_address').innerHTML='Address'; 
            document.getElementById('txt_city').innerHTML='City, State o Zip'; 
            
            document.getElementById('txt_name').innerHTML='Your Name:'; 
            document.getElementById('txt_email').innerHTML='Your E-mail:'; 
            document.getElementById('txt_friendname').innerHTML='Friend&#39;s Name:'; 
            document.getElementById('txt_friendemail').innerHTML='Friend&#39;s Email:'; 
            document.getElementById('txt_message').innerHTML='Message:'; 
        }
     }
//Create and config GMAP
var browserName=navigator.appName; 
var ie=0;
if (browserName=="Microsoft Internet Explorer")ie=1;
//Tracking URL
var UrlTracking='http://vtcv.epsilonforce.com/tracking.aspx';
var UrlSMS='http://yctv.epsilonforce.com/sendsms.aspx';
var UrlXML='Feedyctv.xml';
//Center Category Code
var center_cat_code=6;
var center_address='';
var url_map=window.location.href;
var Language='en';
function URLDecode(encoded)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef";        
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
       if (ch == "+") {
           plaintext += " ";
	       i++;
       } else if (ch == "%") {
		    if (i < (encoded.length-2) 
				    && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
				    && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
			    plaintext += unescape( encoded.substr(i,3) );
			    i += 3;
		    } else {
			    alert( 'Bad escape combination near ...' + encoded.substr(i) );
			    plaintext += "%[ERROR]";
			    i++;
		    }
	    } else {
	       plaintext += ch;
	       i++;
	    }
    } // while
    
   return plaintext;       
}

//cordenate center map
var LonMap;
var LatMap;
var ZoomMap

//Functions for valid enter
function valid_enter(att_url,att_id)
{
    if(!validtext_empty('txtname',(Language=='en')?'Enter name.':'Ingrese su nombre.')){return false;}
    if(!validtext_empty('txtemail',(Language=='en')?'Enter e-mail.':'Ingrese su e-mail.')){return false;}
    if(!validtext_empty('txtfriendname',(Language=='en')?'Enter friend&#39;s name.':'Ingrese nombre de su amigo.')){return false;}
    if(!validtext_empty('txtfriendemail',(Language=='en')?'Enter friend&#39;s e-mail.':'Ingrese e-mail de su amigo.')){return false;}
    
    if(!validtext_email('txtemail',(Language=='en')?'Enter valid e-mail.':'Ingrese e-mail valido.')){return false;}
    if(!validtext_email('txtfriendemail',(Language=='en')?'Enter valid friend&#39;s email.':'Ingrese e-mail de su amigo valido.')){return false;}
      
    var attname=document.getElementById('attname').innerHTML;      
    var params ='call=sendemail&urlmap=' + url_map + '&attname=' + attname + '&atturl=' + URLDecode(att_url) + '&name=' + document.getElementById('txtname').value + '&email=' + document.getElementById('txtemail').value +
                '&friend=' + document.getElementById('txtfriendname').value + '&friendemail=' + document.getElementById('txtfriendemail').value + '&message=' + document.getElementById('txtmessage').value;
                 
    DoCrossRequest(params);
    popUpDiv(document.getElementById('txtname'),'div_sent_email',(Language=='en')?'e-mail Sent!':'e-mail enviado!',(Language=='en')?'An e-mail has been sent to <b>' + document.getElementById('txtfriendemail').value + '</b><br><br>Thank You.':'Un e-mail fue enviado a <b>' + document.getElementById('txtfriendemail').value + '</b><br><br>Gracias.');
    document.getElementById('txtname').value='';
    document.getElementById('txtemail').value='';
    document.getElementById('txtfriendname').value='';
    document.getElementById('txtfriendemail').value=''; 
    document.getElementById('txtmessage').value='';
}
function valid_enterSMS(){return true;}
function showGoogleDirections(Source)
{
    var uri = "";		
    // Source = 1: To directions
    if (Source==1)
    {
	    uri = "http://maps.google.com/maps?saddr=" + document.getElementById('googleAddress').value + "%2c+" + document.getElementById('googleCSZ').value + "&daddr=" + center_address;
    }
    else
    {
    // Source = 2: From directions
	    uri = "http://maps.google.com/maps?daddr=" + document.getElementById('googleAddress').value + "%2c+" + document.getElementById('googleCSZ').value + "&saddr=" + center_address;
    }    
    window.open(uri, "googlemap");
}		
function validateMap(Source)
{
   
    if (document.getElementById('googleCSZ').value.length <= 0)
    {
	    alert('Please enter a valid City and State.');
	    return false;
    }
    showGoogleDirections(Source);
}
//Loading XML Request
function loadDataMapXML(){   
    if(typeof G_API_VERSION =='undefined')
        return;
        
    var newUrl=UrlXML.replace('www.yctv.tv',window.location.host);    
    var request = GXmlHttp.create();   
    request.open("GET",newUrl,true);
    request.onreadystatechange = function() 
    {
        if (request.readyState == 4) 
        {
            xmlDoc = request.responseXML;
            //GXml.parse(request.responseText);
            //alert('Parsed');
            //Create Category List 
            //addCategory(xmlDoc);
            //Create Locations In Map
            addLocation(xmlDoc,''); 
            //Set List Att. By Category Left Side Menu
            //setCategoryAttractions();  
            //Display Center Attraction             
            if(centerAttIndex!=-1)  GEvent.trigger(gmarkers[centerAttIndex],'click');
            if(showLoadYCTVAtt)
                setAttYCTV(document.getElementById('imgchkYCTVContent')); 
           show_hideLigthBoxMsg('lBMsg',false); 
         }         
    }    
    request.send(null);   
}
//------------ Advertising Functions ------------------------------       
//Loading XML Request
function loadAdvertisingXML(indexAdv,feedName)
{
   var request = GXmlHttp.create();
   request.open("GET","advertising/" + feedName,true);
    
   request.onreadystatechange = function() 
   {
        if (request.readyState == 4) 
        {
            var xmlAdvertising = GXml.parse(request.responseText);
            addAdvertising(xmlAdvertising,indexAdv,feedName); 
            replaceDisplayObj('div_list_adv','div_loading_adv');
         }         
   }    
   request.send(null);       
}
var markerAdvertising = new Array();
var imgName;
var shaName;
var imgWidth;
var imgHeight;
var shaWidth;
var shaHeight;
var iconAx;
var iconAy;
var infoWx;
var infoWy;
var infoSx;
var infoSy;
function addAdvertising(xmlAdvertising,indexAdv,feedName) 
{   var index=0;        
    if(xmlAdvertising==null)
        return;          
   
    var PinConfig=xmlAdvertising.documentElement.getElementsByTagName("PinConfig")[0];
    imgName=PinConfig.getAttribute("imgName");
    shaName=PinConfig.getAttribute("shaName");
    imgWidth=parseInt(PinConfig.getAttribute("imgWidth"));
    imgHeight=parseInt(PinConfig.getAttribute("imgHeight"));
    shaWidth=parseInt(PinConfig.getAttribute("shaWidth"));
    shaHeight=parseInt(PinConfig.getAttribute("shaHeight"));
    iconAx=parseInt(PinConfig.getAttribute("iconAx"));
    iconAy=parseInt(PinConfig.getAttribute("iconAy"));
    infoWx=parseInt(PinConfig.getAttribute("infoWx"));
    infoWy=parseInt(PinConfig.getAttribute("infoWy"));
    infoSx=parseInt(PinConfig.getAttribute("infoSx"));
    infoSy=parseInt(PinConfig.getAttribute("infoSy"));
    //alert(imgName + '-' + shaName  + '-' +  imgWidth  + '-' +  imgHeight  + '-' + shaWidth  + '-' + shaHeight  + '-' + iconAx  + '-' + iconAy  + '-' + infoWx  + '-' + infoWy + '-' + infoSx + '-' + infoSy);
    var LocationNodes=xmlAdvertising.documentElement.getElementsByTagName("Location");      
    
    markerAdvertising[indexAdv-1]=new Array();
              
    for (var i = 0; i <LocationNodes.length; i++)
    {   if(LocationNodes[i].nodeType==1)
        {    
            var Location=LocationNodes[i];            
            
            var lon=Location.getAttribute("Lon");
            var lat=Location.getAttribute("Lat");
            var point = new GPoint(parseFloat(lon),parseFloat(lat));
            
            var name = Location.getAttribute("Name");
            var address =Location.getElementsByTagName("Address")[0].childNodes[0].nodeValue;
            
            var markerAdv = createMarkAdvertising(name,address,point);
            
            markerAdvertising[indexAdv-1][index]= markerAdv;                                    
            G_Map.addOverlay(markerAdv);  
            index++;
        }
    }
}
function GetIconAdvertising2()
{
    var baseIcon = new GIcon();   
    baseIcon.shadow = "images/pin_advertising/" + shaName;
    baseIcon.image = "images/pin_advertising/"+ imgName;
    baseIcon.iconSize = new GSize(imgWidth,imgHeight);
    baseIcon.shadowSize = new GSize(shaWidth,shaHeight);
    baseIcon.iconAnchor = new GPoint(iconAx,iconAy);
    baseIcon.infoWindowAnchor = new GPoint(infoWx,infoWy);
    baseIcon.infoShadowAnchor = new GPoint(infoSx,infoSy);    
    /*
    baseIcon.iconSize = new GSize(27,29);
    baseIcon.shadowSize = new GSize(42, 25);
    baseIcon.iconAnchor = new GPoint(13,33);
    baseIcon.infoWindowAnchor = new GPoint(5,10);
    baseIcon.infoShadowAnchor = new GPoint(5,10);    
    */
    return baseIcon;
}
function createMarkAdvertising(name,address,point)
{   var markerAdv = new GMarker(point,{icon:GetIconAdvertising2(),title:name,zIndexProcess:orderOfCreation});      
    //var markerAdv = createMarkerAdvertising(point,name,imgName,shaName,imgWidth,imgHeight,shaWidth,shaHeight,iconAx,iconAy,infoWx,infoWy,infoSx,infoSy);            
    var htmlAdvertising='<div><b>' + name + '</b><br>' + address + '</div>';                      
    
    GEvent.addListener(markerAdv,"click",function(){markerAdv.openInfoWindowHtml(htmlAdvertising);});    
    return markerAdv;
}
function doShowAdvertising(obj,index,feedName)
{
    var i=0;        
    if(typeof(markerAdvertising[index-1])=="undefined")
    {   replaceDisplayObj('div_loading_adv','div_list_adv');            
        loadAdvertisingXML(index,feedName);
    } 
    else
    {        
        if(obj.checked)    
        {   
            for(i=0;i<markerAdvertising[index-1].length;i++)          
                markerAdvertising[index-1][i].show();
        }
        else
        {   for(i=0;i<markerAdvertising[index-1].length;i++)          
                markerAdvertising[index-1][i].hide();                                     
        }
    }
}
//------------End Advertising Functions ------------------------------       
function GetIconMini()
{
    var baseIcon = new GIcon();   
    baseIcon.shadow = "images/shadow.png";
    baseIcon.image = "images/pin.png";
    baseIcon.iconSize = new GSize(22,33);
    baseIcon.shadowSize = new GSize(35, 18);
    baseIcon.iconAnchor = new GPoint(2,33);
    baseIcon.infoWindowAnchor = new GPoint(5,10);
    baseIcon.infoShadowAnchor = new GPoint(5,10);
    return baseIcon;
}
function GetIconAdvertising(index)
{
    var baseIcon = new GIcon();   
    baseIcon.shadow = "images/advsha1.png";
    baseIcon.image = "images/advimg1.png";
    baseIcon.iconSize = new GSize(27,29);
    baseIcon.shadowSize = new GSize(42, 25);
    baseIcon.iconAnchor = new GPoint(13,33);
    baseIcon.infoWindowAnchor = new GPoint(5,10);
    baseIcon.infoShadowAnchor = new GPoint(5,10);    
    return baseIcon;
}
//var and function show mark with click 
 var dots_gmarkers = [];//Save Dots Category Marks
 var gmarkers = [];//Save Category Marks
 var gminimarkers = [];
 var htmls = [];
 var position=[]; 
 var categories_mark_code=[];//Save Category Code of Mark Location
 var categories_code=[];//Save Category Code of Categories
 var categories_images=[];//Save Category Image
 var attraction_names=[];//Save Attraction Name
 var attraction_ids=[];//Save Attraction IDs
 var attraction_videoType=[];//Save Attraction Video Type
 //Determine Type de Icon
 var typeNode=1;
 // Create Mark Icon
 function GetIcon(catcode)
 {
    var baseIcon = new GIcon();
    var i=0;
    var band=1;
    
    for(i=0;i<categories_code.length;i++)
    {
        if(categories_code[i]==catcode)
        {
            band=0;
            baseIcon.shadow = "images/categories/pins/pin_shadow.png";
            baseIcon.image ="images/categories/pins/pin_cat_" + catcode + ".png"; 
            baseIcon.iconSize = new GSize(50, 45);
            baseIcon.shadowSize = new GSize(50,45);
            baseIcon.iconAnchor = new GPoint(14,45);
            baseIcon.infoWindowAnchor = new GPoint(14,1);
            baseIcon.infoShadowAnchor = new GPoint(14,1);                            
        }
    }
    
    if(band)
    {
        baseIcon.image = "images/categories/you-are-here.png";
        baseIcon.iconSize = new GSize(50,45);        
        baseIcon.iconAnchor = new GPoint(13,45);
        baseIcon.infoWindowAnchor = new GPoint(13,1);        
    }
    
    return baseIcon;
    
 }    
 function GetDotIcon(catcode)
 {
    var baseIcon = new GIcon();    
    if(catcode==center_cat_code)
    {
        baseIcon.image = "images/categories/you-are-here.png";
        baseIcon.iconSize = new GSize(50,45);        
        baseIcon.iconAnchor = new GPoint(13,45);
        baseIcon.infoWindowAnchor = new GPoint(13,1);                
        return baseIcon;
    }
    var i=0;    
    for(i=0;i<categories_code.length;i++)
    {
        if(categories_code[i]==catcode)
        {          
            baseIcon.shadow="images/categories/dots/cat_" + catcode + ".png"; 
            baseIcon.image="images/categories/dots/cat_" + catcode + ".png"; 
            baseIcon.iconSize = new GSize(16,16);
            baseIcon.shadowSize = new GSize(16,16);
            baseIcon.iconAnchor = new GPoint(6,14);
            baseIcon.infoWindowAnchor = new GPoint(8,8);
            baseIcon.infoShadowAnchor = new GPoint(8,8);
        }
    }    
    return baseIcon;    
 }    
// This function picks up the click and opens the corresponding info window
function myclick(i,att_id){           
    //GEvent.trigger(gmarkers[i],"click");    
    if(centerAttIndex!=-1 && i>=centerAttIndex)
        GEvent.trigger(dots_gmarkers[i+1],"click");    
    else
        GEvent.trigger(dots_gmarkers[i],"click");    
}
// Creates a marker whose info window displays the given number
var index_mark=0;
var sidebar_html='';
function createMarker(point, name, catcode){    
  var marker; 
  if(catcode!=center_cat_code)   
    marker=new GMarker(point,{icon:GetIcon(catcode),title:name,hide:true});    
  else
    marker=new GMarker(point,{icon:GetIcon(catcode),title:name});    
  return marker;       
}
function createDotsMarker(point, name, catcode){    
  //return new GMarker(point,{icon:GetDotIcon(catcode),title:name});
  return new GMarker(point,{icon:GetDotIcon(catcode)});
}
function orderOfCreation(marker,b){ return 1;} 
function createMarkerAdvertising(point, name,imgName,shaName,imgWidth,imgHeight,shaWidth,shaHeight,iconAx,iconAy,infoWx,infoWy,infoSx,infoSy) 
{   
  var marker;
  marker=new GMarker(point,{icon:GetIconAdvertising2(imgName,shaName,imgWidth,imgHeight,shaWidth,shaHeight,iconAx,iconAy,infoWx,infoWy,infoSx,infoSy),title:name,zIndexProcess:orderOfCreation});      
    
  return marker;       
}
function createMarker2(point, name) 
{    
  var marker = new GMarker(point,{icon:GetIconPLocation(),title:name});      
  return marker;       
}
function createMiniMarker(point, text, icon) 
{
  var marker = new GMarker(point,GetIconMini());
  // Show this marker's index in the info window when it is clicked
  GEvent.addListener(marker, "click",function() {
  marker.openInfoWindowHtml('<p>' + text + '</p>');  });
  return marker;
}
function setVideo()
{
    if(document.getElementById('div_img_video')!=null)
    {
        document.getElementById('div_img_video').style.display='none';
        document.getElementById('div_video').style.display='block';
    }
}
function replaceDisplayObj(objshow_id,objhide_id)
{
    if(document.getElementById(objshow_id)!=null && document.getElementById(objhide_id)!=null)
    {   
        document.getElementById(objhide_id).style.display='none';
        document.getElementById(objshow_id).style.display='block';
    }
}
//Our info window content
var infoTabs = Array();    
var countMark=0;    
var HandlerMark=[];
var FunctionClickMark=[];
var clickedCategoryID=0;
var clickedAttractionID=0;
var clickedAttractionIndex=-1;
var centerAttIndex=-1;
var centerBubble=false; 
function createMarkHotel(index,lon,lat,point,name,description,address,phone,fax,url,htmlvideo,hasreservation,urlreservation,hasbuy,urlbuy,catcode,att_id,att_videoType){ 
  var minimarker = new createMiniMarker(point,'<b>'+ name + '</b><br>' + address,'');
  
  var whichmini = "minimap" + countMark;
  countMark++;
  var txtphone=(phone=='')?'':'Phone:' + phone;
  var txtfax=(fax=='')?'':'<br>Fax: ' + fax; 
  //var imgreservation="makersvp.gif"
  
  //if(catcode=='12')
  //imgreservation="buytix.gif";
     
  var txtlinkreservation=(hasreservation)?'<a onclick="DoCrossRequest(&quot;call=atratype&type=10&quot;)" target="_blank" href="' + urlreservation + '"><img islang="1" border="0" src="images/makersvp.gif"/></a>':'';
  if(hasbuy){
    if(hasreservation)
        txtlinkreservation+='<br><a onclick="DoCrossRequest(&quot;call=atratype&type=10&quot;)" target="_blank" href="' + urlbuy + '"><img islang="1" border="0" src="images/buytix.gif"/></a>';
    else
        txtlinkreservation='<a onclick="DoCrossRequest(&quot;call=atratype&type=10&quot;)" target="_blank" href="' + urlbuy + '"><img islang="1" border="0" src="images/buytix.gif"/></a>';
  }
  //alert(htmlvideo);    
  var txtHtml='<div id="div_hotel'+ whichmini + '">' +
        '<table align="center" width="410" height="240" border="0" cellpadding="0" cellspacing="1" bgcolor="#EAEAEA"><tr><td height="16" colspan="2" align="center" class="txtchico">'+
        '<h2 id="attname" class="txt">'+ name +'</h2>' +
        '</td></tr>' +
        '<tr>'+
        '<td width="145" align="center" valign="top" class="txtchico">' +
        '<br />' + address + '<br/>'+
        txtphone + txtfax +  '<br/><br/>' + description +         
        '</td><td width="249" align="center" valign="top"><div id="div_img_video"><br><br><br><img id="img_video" src="images/loading.gif" width="130" height="60" /></div><div id="div_video" style="display:none">' + htmlvideo + '</div></td>' +
        '</tr>' +            
        '<tr>' +
        '<td align="center">'+ txtlinkreservation + '</td><td align="left" class="tdbottom" style="padding-left:30px"><input id="btn_ischecked" onclick="isChecked('+ (countMark- 1).toString() + ')" type="button" value="tracking" style="display:none;"/><img title="Add" class="imgbtn" islang="1" onclick="chkAddIti(true,'+ (countMark- 1).toString() +',' + lon  + ','+ lat +')" id="att_add_iti" src="images/att_add_iti.gif" /><img title="Remove" islang="1" class="imgbtn" onclick="chkAddIti(false,'+ (countMark- 1).toString() +',' + lon  + ','+ lat +')" id="att_remove_iti" src="images/att_remove_iti.gif" style="display:none" /><br><a href="' + url + '" target="_black" rel="nofollow" onclick="DoCrossRequest(&quot;call=atratype&type=2&quot;)" ><img islang="1" src="images/bot_vist.png" border="0" /></a></td>' +        
        '</tr></table>'+           
        '</div>';
        
  var txtHtmlMini='<div><table align="center" width="410" height="220" border="0" cellpadding="0" cellspacing="4" bgcolor="#EAEAEA"><tr><td valign="top"><div id="'+ whichmini + '" style="width:408px;height:218px;border:solid 1px silver;background-color:white;z-index:999"></div></td></tr></table></div>';
          
  var address_state_zip=address.split(',');       
  var _address=(address_state_zip.length>0)?address_state_zip[0]:'';
  var _state=(address_state_zip.length>1)?address_state_zip[1]:'';
  var _zip=(address_state_zip.length>2)?',' + address_state_zip[2]:'';
  
  var txtHtmlAddress='<div><table align="center" width="410" height="220" border="0" cellpadding="0" cellspacing="4" bgcolor="#EAEAEA"><tr><td valign="top">' +
        '<h2 id="txt_enteraddress" class="txt">Enter Address</h2><br>'+
        '<span id="txt_address" class="txtchico" style="font-weight:bold">Address</span><br>'+
        '<input type="text" maxlength="40" size="30" id="googleAddress" name="googleAddress" value="' + _address + '"><br><br>'+
        '<span id="txt_city" class="txtchico" style="font-weight:bold">City, State or Zip</span><br>'+
        '<input type="text" maxlength="40" size="30" id="googleCSZ" name="googleCSZ" value="' +  _state + _zip + '"><br><br>'+
        '<img name="btnMap" islang="1" src="images/bot_dirto.png" border="0" style="cursor:pointer" onclick="javascript:validateMap(1,&quot;'+ address +'&quot;);" />' +
        '&nbsp;<br><br>'+
        '<img name="btnMap" islang="1" src="images/bot_dirfrom.png" border="0" style="cursor:pointer" onclick="javascript:validateMap(2,&quot;'+ address +'&quot;);" />' +
        '</td></tr></table></div>';
        
  var txtHtmlSendToFriend='<div><form id="frmsend" action="" method="post"><table align="center" width="410" height="220" border="0" cellpadding="0" cellspacing="1" bgcolor="#EAEAEA">' +
        '<tr><td id="txt_name" class="txtchico">Your Name:</td><td><input type="text" name="txtname" id="txtname" maxlength="50" style="width:200px;"/></td></tr>' + 
        '<tr><td id="txt_email" class="txtchico">Your E-mail:</td><td><input type="text" name="txtemail" id="txtemail" maxlength="60" style="width:200px;"/></td></tr>' +
        '<tr><td id="txt_friendname" class="txtchico">Friend&#39;s Name:</td><td><input type="text" name="txtfriendname" id="txtfriendname" maxlength="50" style="width:200px;"/></td></tr>' +
        '<tr><td id="txt_friendemail" class="txtchico">Friend&#39;s E-mail:</td><td><input type="text" name="txtfriendemail" id="txtfriendemail" maxlength="50" style="width:200px;"/></td></tr>' +
        '<tr><td id="txt_message" class="txtchico" valign="top">Message:</td><td><textarea cols="30" rows="4"  name="txtmessage" id="txtmessage"></textarea></td></tr>' +
        '<tr><td colspan="2"><br><img islang="1" src="images/bot_send.png" border="0" style="cursor:pointer;" onclick="valid_enter(&quot;'+ url + '&quot;,'+ att_id + ')" /></td></tr>' +
        '</table></form></div>';
  var txtHtmlSendSMS='<br><iframe src="' + UrlSMS + '?sms_attid=' + att_id + '&lang='+ Language + '&" id="ifrm_sms" height="230" width="430" frameborder="no" scrolling="auto"></iframe>';
  
  var scMiniMap='<div id="div_scriptminimap" style="display:none"> function _showminimap(){ var minimap = new GMap2(document.getElementById("' + whichmini + '"));' +          
     //'minimap.addControl(new GSmallMapControl());' +     
     'minimap.setCenter(new GLatLng('+lat+','+lon+'),16);' +      
     'var extLargeMapControl = new ExtLargeMapControl({type : "small"});'+
     'minimap.addControl(extLargeMapControl);'+
     'minimap.addOverlay(gminimarkers['+ (countMark-1) +']);}</div>';    
                            
  var htmlBubble= new String();
  htmlBubble=containerHTML.replace('[DETAIL]',txtHtml);
  htmlBubble=htmlBubble.replace('[DIRECTIONS]',txtHtmlAddress);
  htmlBubble=htmlBubble.replace('[MINIMAP]',txtHtmlMini + scMiniMap);
  htmlBubble=htmlBubble.replace('[SENDSMS]',txtHtmlSendSMS);
  htmlBubble=htmlBubble.replace('[SEND]',txtHtmlSendToFriend);  
  //Save Category Code
  categories_mark_code[countMark-1]=catcode;
  //Set Center point Address
  if(catcode==center_cat_code)
  { center_address=address;  
    centerAttIndex=index;    
  }
  //Save Attraction Name
  attraction_names[countMark-1]=name;
  //Save Attraction IDS
  attraction_ids[countMark-1]=att_id;
  //Save Attraction isYCTV
  attraction_videoType[countMark-1]=att_videoType;
  var marker = new createMarker(point, name,catcode);
  var dots_marker = new createDotsMarker(point, name,catcode);
  //Save mini mark
  gminimarkers[countMark-1]=minimarker;                  
  //var tab=infoTabs[countMark-1]; 
  //htmls[countMark-1] = tab;
  //htmls[countMark-1] = htmlBubble;
  //Save position    
  position[countMark-1]=[lat,lon];
  //Save the info we need to use later for the sidebar
  gmarkers[countMark-1] = marker;
  dots_gmarkers[countMark-1] = dots_marker;
  
  GEvent.addListener(dots_marker,"mouseover",function(){
        Tip(name, BALLOON, true, ABOVE, true);
  });  
  GEvent.addListener(dots_marker,"mouseout",function(){
        UnTip();
  });  
  
  FunctionClickMark[countMark-1]= function (){showYCTVAtt=false; 
    if(catcode!=center_cat_code){
        var moveEnd = GEvent.addListener(G_Map, "moveend", function(){
		marker.openInfoWindowHtml(htmlBubble,{noCloseOnClick:true});
		GEvent.removeListener(moveEnd);
	    });
        G_Map.panTo(marker.getLatLng());   
    }
    else
        marker.openInfoWindowHtml(htmlBubble,{noCloseOnClick:true});
  };                                               
  GEvent.addListener(marker,"click",FunctionClickMark[countMark-1]);  
  //Set init options
  GEvent.addListener(marker,"infowindowopen",function(){              
    //centerBubble=true;   
    clickedCategoryID=catcode;
    clickedAttractionID=att_id;  
    clickedAttractionIndex=index;
    setLangBubble();
    MM_nbGroup('down','group2','bot1','images/bot1_up.jpg',1);DoCrossRequest('call=att');document.getElementById('btn_ischecked').click(); setTimeout('setVideo()',2500);setAttInMenu(clickedAttractionID,clickedCategoryID);     
    });
  //Set initial tab index 
  GEvent.addListener(marker,"infowindowclose",function()
  { if(clickedCategoryID!=catcode){dots_marker.show();marker.hide();}
    tabAttractionIndex=1;
    desAttInMenu(clickedAttractionID,clickedCategoryID);
    clickedAttractionID=-1;});  
  
  HandlerMark[countMark-1]=GEvent.addListener(dots_gmarkers[countMark-1],"click",function(){ 
    if(marker.isHidden()){dots_marker.hide();marker.show();}
     GEvent.trigger(marker,"click");
  }); 
  
  return marker;
}
//preload images
var myimages=new Array();
var preimages=new Array();
function preloadimages()
{
    for (i=0;i<preimages.length;i++)
    {
        myimages[i]=new Image();
        myimages[i].src=preimages[i];
    }
}
//var using in display
var imgsrc;
var lon;
var lat;
var point;
var name;
var description;
var htmlvideo;
var videoType=0;
var address;
var phone;
var fax;
var hasreservation=false;
var urlreservation='';
var hasbuy=false;
var urlbuy='';
var catcode;
var catimage;
var marker;
//var tracking 
var attraction_ID;   
var client_ID=0; 
function addLocation(xmlDoc,icon) 
{
    var index=0;
    var PrimaryLoc = xmlDoc.documentElement.getElementsByTagName("PrimaryLocation")[0];         
    //Get parmas for map
    LonMap=PrimaryLoc.getAttribute("Lon");        
    LatMap=PrimaryLoc.getAttribute("Lat");
    ZoomMap=PrimaryLoc.getAttribute("Zoom");
    showLoadYCTVAtt=(PrimaryLoc.getAttribute("ShowYCTVCont")!='true')?false:true; 
    var PrimaryLocationName= xmlDoc.documentElement.getElementsByTagName("LocationName")[0].childNodes[0].nodeValue;        
    //Client ID
    client_ID=PrimaryLoc.getAttribute("ID");
    //Create MAP
    GreateMap();    
    //Do Tracking Of Map
    DoCrossRequest('call=map');
    //Adding Attractions  
    var AttractionNodes=xmlDoc.documentElement.getElementsByTagName("Attraction");  
    //alert(AttractionNodes.length); 
    //The node are attractions
    typeNode=0;    
    for (var i = 0; i <AttractionNodes.length; i++) 
    {            
        //alert(AttractionNodes[i].nodeType);
        if(AttractionNodes[i].nodeType==1)
        {    
            var Attraction=AttractionNodes[i];            
            attraction_ID=Attraction.getAttribute("ID");                                           
            lon=Attraction.getAttribute("Lon");
            lat=Attraction.getAttribute("Lat");
            point = new GPoint(parseFloat(lon),parseFloat(lat));
            
            catcode=Attraction.getAttribute("CategoryCode");                           
            name = Attraction.getElementsByTagName("Name")[0].childNodes[0].nodeValue;                        
            description=(typeof Attraction.getElementsByTagName("Desc")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("Desc")[0].childNodes[0].nodeValue : '';           
            if(typeof Attraction.getElementsByTagName("HtmlVideo")[0].childNodes[0]!='undefined')
            {   htmlvideo = Attraction.getElementsByTagName("HtmlVideo")[0];
                videoType=(typeof htmlvideo.getAttribute("Type")!='undefined') ? htmlvideo.getAttribute("Type") : 0;            
                htmlvideo = htmlvideo.childNodes[0].nodeValue;
            }
            else
            {   htmlvideo='';
                videoType=0;
            }            
            address=(typeof Attraction.getElementsByTagName("Address")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("Address")[0].childNodes[0].nodeValue :''; 
            phone=(typeof Attraction.getElementsByTagName("Phone")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("Phone")[0].childNodes[0].nodeValue :'';
            fax=(typeof Attraction.getElementsByTagName("Fax")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("Fax")[0].childNodes[0].nodeValue :'';
            url=(typeof Attraction.getElementsByTagName("URL")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("URL")[0].childNodes[0].nodeValue :'';
            
            urlreservation='';
            urlbuy='';                       
            if(Attraction.getAttribute("hasReservation")!=null)               
                hasreservation=(Attraction.getAttribute("hasReservation")=="true")?true:false;
            if(Attraction.getAttribute("hasBuy")!=null)               
                hasbuy=(Attraction.getAttribute("hasBuy")=="true")?true:false;
            if(Attraction.getElementsByTagName("URLReservation")[0].childNodes.length==1)            
                urlreservation=(typeof Attraction.getElementsByTagName("URLReservation")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("URLReservation")[0].childNodes[0].nodeValue :'';
            if(Attraction.getElementsByTagName("URLBuy")[0].childNodes.length==1)
                urlbuy=(typeof Attraction.getElementsByTagName("URLBuy")[0].childNodes[0]!='undefined') ? Attraction.getElementsByTagName("URLBuy")[0].childNodes[0].nodeValue :'';
            
            marker = createMarkHotel(index,lon,lat,point,name,description,address,phone,fax,url,htmlvideo,hasreservation,urlreservation,hasbuy,urlbuy,catcode,attraction_ID,videoType);                      
            G_Map.addOverlay(marker);
            //if(catcode!=center_cat_code) 
            //marker.hide();
            //HandlerMark[countMark-1]=GEvent.addListener(dots_gmarkers[countMark-1],"click",FunctionClickMark[countMark-1]);            
            G_Map.addOverlay(dots_gmarkers[countMark-1]);
            index++; 
        }
    }
}
var pageName=getPageName();
//Do Cross Request-Tracking
function DoCrossRequest(query_string)
{         
    var head = document.getElementsByTagName("head").item(0);          
    //var GUID=generateGuid();                
    var script = document.createElement('script');
    var url=UrlTracking + '?cliid=' + client_ID +'&attid=' + clickedAttractionID + '&' + query_string + '&pn=' + pageName + '&c=' + Math.random();
    //alert(url);
    script.setAttribute('src',url);
    script.setAttribute('type','text/javascript');        
    head.appendChild(script);                 
    //alert(script.src);
    return true;
}
var showLoadYCTVAtt;
var showYCTVAtt=false;
function setAttYCTV(obj)
{   
    if(allCategoriesSelected)
        Hide2('imgloadtop',false,'images/loader.gif');    
    else
       Hide2('imgloadtop',false,'images/loader2.gif');
            
    if(!showYCTVAtt)
    {   obj.src='images/check_on.gif';
        showYCTVAtt=true;
    }
    else
    {   obj.src='images/check.gif';
        showYCTVAtt=false;
    }
    var vType;
    var objtd;
    for(j=0;j<attraction_names.length;j++)
    {   
        objtd=document.getElementById('tratt' + attraction_ids[j]);       
        if(objtd!=null)
        {
            vType=objtd.getAttribute('vType');
            objtd.style.display='';
            if(showYCTVAtt)
            {
                if(vType!='1')
                {   objtd.style.display='none';                     
                    gmarkers[j].hide();  
                    dots_gmarkers[j].hide();                  
                }
            }
            else
            {   //objtd.style.display='';
                if(cat_code_select_menu==-1)
                {
                  gmarkers[j].hide();  
                  dots_gmarkers[j].show();
                } 
                else
                {
                    if(categories_mark_code[j]==cat_code_select_menu)
                    {   gmarkers[j].show();  
                        dots_gmarkers[j].hide(); 
                    }
                    else
                    {   gmarkers[j].hide();  
                        dots_gmarkers[j].show(); 
                    }
                }
            }           
       }
    }  
    if(allCategoriesSelected)     
        setTimeout("Hide2('imgloadtop',true,'images/loader.gif');",300);   
    else
        setTimeout("Hide2('imgloadtop',true,'images/loader2.gif');",300);   
}
var html_category='<table id="tblcategories" border="0" cellpadding="0" cellspacing="0" width="296">';                    
function addCategory(xmlDoc) 
{ 
  var Categories=xmlDoc.documentElement.getElementsByTagName("Category");
  var i=0;
  var category_code;
  var index=0;   
  var op=0;
  //html_category +='<tr><td class="tdcat" id="tdchk" background="images/fondo_top.jpg"  onclick="setImgBack(this,\'images/fondo_top_up.jpg\',\'up\');showHideSwitch(\'tdchk\')" onmouseover="setImgBack(this,\'images/fondo_top_over.jpg\',\'over\')" onmouseout="setImgBack(this,\'images/fondo_top.jpg\',\'out\')" height="23" width="296" ><img id="imgchkallcategories" src="images/check.gif" border="0" style="float:left;margin-top:1px;margin-right:3px;"> All Categories <img id="imgchkYCTVContent" src="images/check.gif" border="0" style="margin-top:1px;margin-left:50px;"> YCTV Content</td></tr>';  
  html_category +='<tr><td class="tdcat" style="cursor:auto" id="tdchk" background="images/fondo_top.jpg"  height="23" width="296" ><img id="imgchkallcategories" onclick="setImgBack(document.getElementById(\'tdchk\'),\'images/fondo_top_up.jpg\',\'up\');showHideSwitch(\'tdchk\')" src="images/check.gif" border="0" style="cursor:pointer;float:left;margin-top:5px;margin-right:3px;"> All Categories <img id="imgchkYCTVContent" onclick="setAttYCTV(this)" src="images/check.gif" border="0" style="cursor:pointer;margin-top:5px;margin-left:30px;"> YCTV Videos <img id="imgloadtop" style="margin-left:23px;visibility:hidden;" src="images/loader.gif"></td></tr>';  
  //html_category +='<tr><td><div style="overflow:-moz-scrollbars-vertical;overflow-x:hidden;overflow-y:auto;height:270px;width:300px;"><table border="0" cellpadding="0" cellspacing="0" width="296">';
  html_category +='<tr><td><table border="0" cellpadding="0" cellspacing="0" width="296">';
  for(i=0;i<Categories.length;i++)
  {
    if(center_cat_code!=Categories[i].getAttribute("Code"))
    {
        category_code=Categories[i].getAttribute("Code");       
        if(index==Categories.length-1-op)
            html_category = html_category + '<tr><td class="tdcat" id="td' + category_code +'" background="images/fondo_bottom.jpg"  onclick="showHideSwitch(\'' + category_code + '\');setImgBack(this,\'images/fondo_bottom_up.jpg\',\'up\')" onmouseover="setImgBack(this,\'images/fondo_bottom_over.jpg\',\'over\')" onmouseout="setImgBack(this,\'images/fondo_bottom.jpg\',\'out\')" height="23" width="296" ><img src="' + Categories[i].getAttribute("URLImage") + '" border="0" height="10" width="10"> ' + Categories[i].getAttribute("Name") + '</td></tr><tr class="hideSwitch" id=\'tr_' + category_code  + '\'><td><div class="expandMenu"><div class="hideSwitch" id=\'m_' + category_code  + '\'></div></div></td></tr>';  
        else
            html_category = html_category + '<tr><td class="tdcat" id="td' + category_code +'" background="images/fondo.jpg"  onclick=";showHideSwitch(\'' + category_code + '\');setImgBack(this,\'images/fondo_up.jpg\',\'up\')" onmouseover="setImgBack(this,\'images/fondo_over.jpg\',\'over\')" onmouseout="setImgBack(this,\'images/fondo.jpg\',\'out\')" height="20" width="296" ><img src="' + Categories[i].getAttribute("URLImage") + '" border="0" height="10" width="10"> ' + Categories[i].getAttribute("Name") + '</td></tr><tr class="hideSwitch" id=\'tr_' + category_code  + '\'><td><div class="expandMenu"><div class="hideSwitch" id=\'m_' + category_code  + '\'></div></div></td></tr>';  
            
        //Save Category Image
        categories_images[index]=Categories[i].getAttribute("URLImage");
        //Save Category Code
        categories_code[index]=category_code;
        index++;
    }
    else
        op=1;
  }
  
  //document.getElementById('sidebarcategory').innerHTML= html_category + "</table></div></td></tr></table>"; 
  document.getElementById('sidebarcategory').innerHTML= html_category + "</table></td></tr></table>"; 
  
  if(document.getElementById('div_extrainfo')!=null)
    document.getElementById('div_extrainfo').style.display='';
  if(typeof(showAdvertising)!='undefined')
  {
    if(showAdvertising)
        document.getElementById('div_list_adv').style.display='';
  }  
} 
var cat_code_select_menu=-1; 
function setCategory(code)
{
    var i=0;
    var chkList;  
    var vType=0;   
    cat_code_select_menu = code;   
    for(i=0;i<categories_mark_code.length;i++)
    {  
        if(categories_mark_code[i]==code || code==-1)
        {   objtd=document.getElementById('tratt' + attraction_ids[i]); 
            if(!showYCTVAtt)
            {
                if(code==-1)//All 
                {   gmarkers[i].hide();
                    dots_gmarkers[i].show();
                }
                else
                {   gmarkers[i].show();
                    dots_gmarkers[i].hide();
                }                
                if(objtd!=null)
                    document.getElementById('tratt' + attraction_ids[i]).style.display='';
            }
            else if(objtd!=null)
            {
                vType=objtd.getAttribute('vType');
                //not yctv video
                if(vType!='1')
                {   objtd.style.display='none';  
                    gmarkers[i].hide();
                    dots_gmarkers[i].hide();   
                }
                else
                {   objtd.style.display='';
                    if(categories_mark_code[i]==code)
                    {   gmarkers[i].show();
                        dots_gmarkers[i].hide();                      
                    }
                    else
                    { gmarkers[i].hide();  
                      dots_gmarkers[i].show();     
                    }
                }                
            }
        }else if(categories_mark_code[i]!=center_cat_code)
        {    
            gmarkers[i].hide();            
            dots_gmarkers[i].show(); 
        }
    }     
}
var expandCatID=0;
function setAttInMenu(attid,catcode)
{
    if(document.getElementById('tratt'+attid)!=null)
    {   
        document.getElementById('tratt'+attid).className='highlight';
        if((!allCategoriesSelected && lastSwitchID!=catcode) ||(lastSwitchID==catcode && lastSwitchState!='show'))
        {
            if(catcode!=expandCatID)
            {   if(!allCategoriesSelected && expandCatID)
                {
                   document.getElementById('m_' + expandCatID).className = 'hideSwitch';
                   document.getElementById('tr_' + expandCatID).className = 'hideSwitch';   
                } 
                expandCatID=catcode;           
            }  
            
            if(lastSwitchID!=catcode && lastSwitchState=='show')
            {
                document.getElementById('m_' + lastSwitchID).className = 'hideSwitch';
                document.getElementById('tr_' + lastSwitchID).className = 'hideSwitch';
            } 
                      
            document.getElementById('m_' + catcode).className = 'showSwitch';
            document.getElementById('tr_' + catcode).className = 'showSwitch';
                            
            lastSwitchID=catcode;        
            lastSwitchState='hide';
            clickDone=false;          
            setImgBack(document.getElementById('td'+catcode),'images/fondo_up.jpg','up');
            clickDone=false;                
        }
        
        setCategory(catcode);     
    }
}
function desAttInMenu(attid,catcode)
{
    if(document.getElementById('tratt'+attid)!=null)
       document.getElementById('tratt'+attid).className='nohighlight';    
}
function setBgColor(obj,op)
{
    if('tratt'+ clickedAttractionID==obj.id)  return;         
    obj.className= op ? 'highlight' : 'nohighlight';     
}
var img_star=' <img src="images/star.gif" width="12" height="12" />';
var img_business=' <img src="images/blue-dot.gif" width="11" height="11" />';
function setCategoryAttractions()
{   var i=0,j=0;
    var html='';
    var htmlimg='';  
    for(i=0;i<categories_code.length;i++)
    {   html='<table class="dd" style="border-left:solid 1px silver;border-right:solid 1px silver;"><tbody>';     
        for(j=0;j<attraction_names.length;j++)
        {
          if(categories_mark_code[j]==categories_code[i])
          {
            if(attraction_videoType[j]=='1')
                htmlimg=img_star;
            else if(attraction_videoType[j]=='2')
                htmlimg=img_business;
            else
                htmlimg='';                
            //html=html + '<tr><td id="tdatt'+ attraction_ids[j] +'" isyctv="'+ attraction_isYCTV[j] +'"><a href="javascript:myclick('+ j + ',' + attraction_ids[j] + ');">' + attraction_names[j] + '</a>'+ (attraction_isYCTV[j]=="true"?img_star:'') +'</td></tr>';
            html=html + '<tr  onclick="myclick('+ j + ',' + attraction_ids[j] + ');" onmouseover="setBgColor(this,1)" onmouseout="setBgColor(this,0)" id="tratt'+ attraction_ids[j] +'" vType="'+ attraction_videoType[j] + '"><td class="nohighlight">' + attraction_names[j] + htmlimg +'</td></tr>';
          }
        }
        html=html + '</tbody></table>';
        document.getElementById('m_' + categories_code[i]).innerHTML=html;
    }
}

var containerHTML='';      
var G_Map;
var G_Dir; 
var G_Zoom;
var count=0;
function GreateMap()
{
    containerHTML= document.getElementById('div_attcontent').innerHTML;
    document.getElementById('div_attcontent').innerHTML='';
    var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,40));
    G_Map= new GMap2(document.getElementById("map"));	
    G_Map.setCenter(new GLatLng(LatMap,LonMap),parseInt(ZoomMap));   
    G_Zoom = new ExtLargeMapControl();
    G_Map.addControl(G_Zoom,topRight);
    G_Map.addControl(new GMapTypeControl());    
    
    G_Dir = new GDirections(G_Map);
    GEvent.addListener(G_Dir, "error", handleErrors);
   
//    GEvent.addListener(G_Map, "moveend", function(){    
//       if(centerBubble){
//          count++;
//          if(count==2){
//            document.getElementById('map').firstChild.firstChild.style.top=parseInt(document.getElementById('map').firstChild.firstChild.style.top)+150 +'px';                  
//            centerBubble=false;
//            count=0; 
//            G_Map.checkResize(); 
//          }
//       }
//    });
}
function load() 
{
  if (GBrowserIsCompatible()) 
     loadDataMapXML();
}
//***********Tab Functions*****************
var selectedTab=-1;
function setTabCategory(){
    try{  
        if(selectedTab!=1){     
            show_hideLigthBoxMsg('lBMsg',true);   
            if(handlerOverLayDist!=null) GEvent.removeListener(handlerOverLayDist);  
            if(handlerOverLayIti!=null) GEvent.removeListener(handlerOverLayIti); 
            handlerOverLayDist=null;  
            handlerOverLayIti=null; 
            clearRoute();         
            RemoveEventToDistance();
            //clear itinerary selected
            if(lastItiState=='show') showHideSwitchIti(lastItiID);
            emptyIti(); 
            G_Map.setCenter(new GLatLng(LatMap,LonMap),parseInt(ZoomMap));            
            for(i=0;i<FunctionClickMark.length;i++){  
                GEvent.removeListener(HandlerMark[i]);
                //HandlerMark[i]=GEvent.addListener(gmarkers[i],"click",FunctionClickMark[i]);
                HandlerMark[i]=GEvent.addListener(dots_gmarkers[i],"click",FunctionClickMark[i]);
            }   
            for(i=0;i<gmarkers.length;i++){   
                 gmarkers[i].hide();   
                 dots_gmarkers[i].show();    
            }          
            selectedTab=1;
            show_hideLigthBoxMsg('lBMsg',false);   
       }
    }
    catch(e)
    {
      alert(e.message);
    }
}
var handlerOverLayDist=null; 
function setTabDistance()
{   var i=0;
    var xlat;
    var xlon;    
    if(selectedTab!=2){  
      show_hideLigthBoxMsg('lBMsg',true);   
      //clear itinerary selected
      if(lastItiState=='show') showHideSwitchIti(lastItiID);
      emptyIti();
      if(handlerOverLayIti!=null) GEvent.removeListener(handlerOverLayIti); 
      handlerOverLayIti=null;      
      handlerOverLayDist=GEvent.addListener(G_Dir, "addoverlay", onGDir_AddOverlayDist); 
      G_Map.setCenter(new GLatLng(LatMap,LonMap),parseInt(ZoomMap));
      if(clickedAttractionIndex!=-1)
         gmarkers[clickedAttractionIndex].closeInfoWindow();    
      for(i=0;i<HandlerMark.length;i++){
        GEvent.removeListener(HandlerMark[i]);        
        xlat=position[i][0];
        xlon=position[i][1]; 
        addNewEventClick(i,xlat,xlon);        
      }
      //measure only between attractions
      //AddEventToDistance();	
      
      allCategoriesSelected=true;
      showHideSwitch('tdchk');
      for(i=0;i<gmarkers.length;i++)
      {   dots_gmarkers[i].show();   
          if(!gmarkers[i].isHidden())
             gmarkers[i].hide()
      }        
    }
    selectedTab=2;
    show_hideLigthBoxMsg('lBMsg',false);   
}
/**Change click event in mark**/
function addNewEventClick(i,xlat,xlon){ HandlerMark[i]=GEvent.addListener(dots_gmarkers[i],"click",function(){ DoMarkDistInMap(dots_gmarkers[i],new GPoint(parseFloat(xlon),parseFloat(xlat)));});}
/**Do click in tab "My Itinerary"**/
var handlerOverLayIti=null; 
function setTabItinerary(){   
    var i=0;
    var xlat;
    var xlon;
    if(selectedTab!=3){   
      clearRoute();   
      if(handlerOverLayDist!=null) GEvent.removeListener(handlerOverLayDist);          
      RemoveEventToDistance();
      if(clickedAttractionIndex!=-1)
         gmarkers[clickedAttractionIndex].closeInfoWindow();      
      for(i=0;i<gmarkers.length;i++){
        gmarkers[i].hide();          
        dots_gmarkers[i].hide();
      }               
      //initial menu category
      allCategoriesSelected=true;
      showHideSwitch('tdchk'); 
      handlerOverLayDist=null;
      handlerOverLayIti=GEvent.addListener(G_Dir, "addoverlay", onG_DirAddOverlayIti);          
      //set initial values
      isFirstIti=true; 
      showCustomIti=false; 
      lastItiID='-1';
      lastItiState='';     
      
	  selectedTab=3;
	  var table = document.getElementById('tbl_itinerary');
      var tableDnD = new TableDnD();
      tableDnD.init(table);
      isFirst=true;
      if(!ie){
        triggerEventClick('trItiCustom');
        triggerEventClick('tdi0');        
      }else
        setTimeout("document.getElementById('trItiCustom').click();document.getElementById('tdi0').click();",300);  
    }
}

function addEventClickItinerary(i,xlat,xlon)
{
    HandlerMark[i]=GEvent.addListener(gmarkers[i],"click",function(){ DoMarkItineraryInMap(i,new GLatLng(parseFloat(xlat),parseFloat(xlon)));});
}
//*********Transparent popup ***********************************/
//this function shows the pop-up when user moves the mouse over the link	
function Show(e,objid)
{	var obj=document.getElementById(objid);
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY){
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY){
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	//alert(posx + "-" + posy);
	obj.style.display='block'; 
	obj.style.left = (posx+5) + 'px';
	obj.style.top =  (posy+10) + 'px';
}
// this function hides the pop-up when user moves the mouse out of the link
function Hide(objid){
	document.getElementById(objid).style.display="none";	
}
function Hide2(objid,hide,src){
    if(hide)
	    document.getElementById(objid).style.visibility="hidden";		
	else
	{    document.getElementById(objid).src=src;
	    document.getElementById(objid).style.visibility="visible";	
	}
}
/**handler error in direction API**/
function handleErrors(){
  if (G_Dir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
  {  alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + G_Dir.getStatus().code);
     //MarkDistance=MarkDistance.splice(MarkDistance.length-1,1);
     //onGDirectionsAddOverlay();  
  }
  else if (G_Dir.getStatus().code == G_GEO_SERVER_ERROR)
    alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + G_Dir.getStatus().code);
  else if (G_Dir.getStatus().code == G_GEO_MISSING_QUERY)
    alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + G_Dir.getStatus().code);
  else if (G_Dir.getStatus().code == G_GEO_BAD_KEY)
    alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + G_Dir.getStatus().code);
  else if (G_Dir.getStatus().code == G_GEO_BAD_REQUEST)
    alert("A directions request could not be successfully parsed.\n Error code: " + G_Dir.getStatus().code);
  else alert("An unknown error occurred.\nPlease try again.");
  show_hideLigthBoxMsg(false);    
}