
function addMarker(lng,lat,html,title,cat,image,cnt,label){
     var point = new GPoint(lng,lat);
     var marker = createTabedMarker(point,image,title,html,label);
     gmarkers.push(marker);
     marker.type=cat;
//     marker.myhtml=html
     marker.view='1';
//     alert(cat);
     gmarkers[cnt] = marker;
     hexhtmls[cnt]=html;
     hexlabels[cnt]=label;
     
     map.addOverlay(marker);
}
//showMapBlowup(opts?)

function displayMarker(cat){
  for (var i=0; i<gmarkers.length; i++){
    if(gmarkers[i].type==cat){
                    if(gmarkers[i].view=='1'){
		                             map.removeOverlay(gmarkers[i]);
                                             gmarkers[i].view='0';
		                             }
					     else
					     {
		                             map.addOverlay(gmarkers[i]);
                                             gmarkers[i].view='1';
					     }

                             }
    }
}

function createTabedMarker(point,icon,hover,htmls,labels){
var tmp_marker = new GxMarker(point,icon, hover);
GEvent.addListener(tmp_marker, "click", function() 
            { // if index higher than 2 append to first index div correct the size width
            var tabs = [];
            if (htmls.length > 2) {htmls[0] = '<div style="width:'+htmls.length*88+'px">' + htmls[0] + '</div>';}
            for (var i=0; i<htmls.length; i++) {tabs.push(new GInfoWindowTab(labels[i],htmls[i]));}
            tmp_marker.openInfoWindowTabsHtml(tabs);
            });
return tmp_marker;
}

function procRequest(){
                 request = GXmlHttp.create();  
                 request.open("GET", ajax_url, true);
                 request.onreadystatechange = processXML;
                 request.send(null);
}



function sToA(from){return  from.split(',');}

function ccreateMarker(iisource,tnumber){
var html =[];
m_lng    = parseFloat(iisource.getElementsByTagName("tx_rggooglemap_lng")[0].firstChild.data);
m_lat    = parseFloat(iisource.getElementsByTagName("tx_rggooglemap_lat")[0].firstChild.data);
m_tab    = iisource.getElementsByTagName("tx_rggooglemap_tab")[0].firstChild.data;
m_categ    = iisource.getElementsByTagName("tx_rggooglemap_cat")[0].firstChild.data;

m_uid    = iisource.getElementsByTagName("uid")[0].firstChild.data;
m_street = iisource.getElementsByTagName("address")[0].firstChild.data;
m_zip    = iisource.getElementsByTagName("zip")[0].firstChild.data;
m_city   = iisource.getElementsByTagName("city")[0].firstChild.data;
//m_fname  = iisource.getElementsByTagName("first_name")[0].firstChild.data;                                                                                                                                                                                                                                                
//m_lname  = iisource.getElementsByTagName("last_name")[0].firstChild.data;
m_name   = iisource.getElementsByTagName("name")[0].firstChild.data;
m_tel    = iisource.getElementsByTagName("telephone")[0].firstChild.data;                                                                                                                        
m_www    = iisource.getElementsByTagName("www")[0].firstChild.data;
m_email  = iisource.getElementsByTagName("email")[0].firstChild.data;
m_comm  = iisource.getElementsByTagName("comments")[0].firstChild.data;
m_image  = imgpath + iisource.getElementsByTagName("image")[0].firstChild.data;
// ToDo concat data
// add Marker
var tab1 = '<div style="height:200;width:220px;text-align:left;"><img src="'+m_image+'"><br/>';
tab1     += '<br/><strong>Beschreibung:</strong><br/>';
tab1     += '<p>' + m_comm +'</p></div><br/>';

var tab2 = '<b>'+m_name +'</b><br/>';
tab2     += m_street + '<br/>';
tab2     += m_zip + ' ' + m_city +'<br/>';
tab2     += m_tel + '<br/>';
tab2     += m_www + '<br/>';
tab2     += m_email + '<br/>';
html =[tab1,tab2];


var label = ["Info","Kontakt"];
addMarker(m_lng,m_lat,html,m_name,m_categ,gicons[parseInt(m_tab)],tnumber,label);
//addMarker(m_lng,m_lat,html,m_name,m_categ,geticof(parseInt(m_tab)),tnumber,label);
}

function geticof(uid){
  for (var i = 0; i < gicons.length; i++) { if(gicons[i].uididx=uid)   { return gicons[i];  } }
}

function createIcon(isource,number){
var tmpImage = new GIcon();
tmpImage.image = iconpath + isource.getElementsByTagName("name")[0].firstChild.data;
tmpImage.shadow = iconpath + isource.getElementsByTagName("tshadow")[0].firstChild.data;
tmp_ar = sToA(isource.getElementsByTagName("ssize")[0].firstChild.data);
tmpImage.shadowSize = new GSize(parseInt(tmp_ar[0]),parseInt(tmp_ar[1]));
tmp_ar = sToA(isource.getElementsByTagName("isize")[0].firstChild.data);
tmpImage.iconSize = new GSize(parseInt(tmp_ar[0]),parseInt(tmp_ar[1]));
tmp_ar = sToA(isource.getElementsByTagName("ianchor")[0].firstChild.data);
tmpImage.iconAnchor = new GPoint(parseInt(tmp_ar[0]),parseInt(tmp_ar[1]));
tmp_ar = sToA(isource.getElementsByTagName("iwanchor")[0].firstChild.data);
tmpImage.infoWindowAnchor = new GPoint(parseInt(tmp_ar[0]),parseInt(tmp_ar[1]));


//tmpImage.uididx=isource.getElementsByTagName("uid")[0].firstChild.data;
tmpImage.uididx='' + isource.getElementsByTagName("uid")[0].firstChild.data;


tmp_ar = sToA(isource.getElementsByTagName("immap")[0].firstChild.data);
for (var kl = 0; kl < tmp_ar.length; kl++) {tmp_ar[kl]=parseInt(tmp_ar[kl]);}
tmpImage.imageMap = tmp_ar; 
tmpImage.transparent = iconpath + isource.getElementsByTagName("transp")[0].firstChild.data;

//  add to Array
gicons[gicons.length]= new GIcon(tmpImage);
}



function processXML(){
                 if (request.readyState == 4) {
                              if (request.status != 200) {
                                                      alert("Fehler: AJAX/XML Dienst nicht verfuegbar !:"+request.status);
                                                      return;
                                                         }
                                              // normal operations
                                              var xmlDoc = request.responseXML;
                                              // get Path's
                                              basepath=xmlDoc.documentElement.getElementsByTagName("baseurl")[0].firstChild.data;
                                              iconpath=xmlDoc.documentElement.getElementsByTagName("iconpath")[0].firstChild.data;
                                              imgpath=xmlDoc.documentElement.getElementsByTagName("imgpath")[0].firstChild.data;
                                              // get the Icons
                                              var icons = xmlDoc.documentElement.getElementsByTagName("icon");
                                              for (var k = 0; k < icons.length; k++) { 
                                                         createIcon(icons[k],k);
                                                         
                                                         }
                                              // get the Markers
                                              var markers = xmlDoc.documentElement.getElementsByTagName("item"); 
                                              for (var i = 0; i < markers.length; i++) {
                                                         try {
							 ccreateMarker(markers[i],i);
							 }
                                                         catch(err){}
                                                         
                                                         }     
                                              }
}
