
function autoid() {
    
    this.autoid = 1;
    }

autoid.prototype.przydziel_id = function(obiekt) {
    
                                                //do metody przekazujemy obiekt jquery  
                                                //atrybut id istnieje, zwróć istniejący id    
    if (obiekt.attr('id')) {
        
        return obiekt.attr('id');
        }
    
    
    var id = 'run_autoid_' + this.autoid;
    this.autoid++;

    obiekt.attr('id', id);
    
    return id;       
    };

//.................................................................................................
//klasa służąca do uruchamiania flash-a

function flash(obiekt, dane) {
    
    var id = obiekt.attr('id');
    
    
    var width  = dane.width;
    var height = dane.height;
    var src    = dane.src;
    
                                    //trzeba inicjować jakoś te parametry
    var version   = '10.0.0';
    var flashvars = {};
    var params    = {};
    
    
    
    
    if (dane.flashvars) {
        
        flashvars = dane.flashvars;
        }
    
    if (dane.params) {
        
        params = dane.params;
        }
    
    
    
    var flash_zainstalowany = null;
    
    
    if (swfobject.hasFlashPlayerVersion(version)) {
        flash_zainstalowany = true;
        }
        
    else {
        flash_zainstalowany = false;
        }
    
                                                        //tutaj trzeba napisać kod wykrywający flasha
    
    
    if (flash_zainstalowany === true) {
        
                                                        //do parametrów dodajemy ekstra parametr dotyczący przeźroczystości
        //dane.params.wmode = 'transparent';
        
        swfobject.embedSWF(src, id, width, height, version, null, flashvars, params);
        }
    
                                                        //uzupełnienie obiektu alternatywną treścią
    else {
        
        if (!dane.alt_class && !dane.alt_content) {
            
            var komunikat = '';
            }
        
        
        if (dane.alt_class) {        
            obiekt.addClass(dane.alt_class);
            }

        if (dane.alt_content) {
            
            obiekt.html(dane.alt_content);
            }
        }
    
    obiekt.show();
    }

//.................................................................................................

/*
    parametry :
    x - pierwsza współrzędna
    y - druga współrzędna
    firma - nazwa firmy
    adres - adres firmy
    
    opcjonalnie:
    ikona - url do pliku ikony
    cien  - url do pliku cienia
*/


function maps(obiekt, dane) {
    
    var id = obiekt.attr('id');
    
    var x     = dane.x;
    var y     = dane.y;
    var firma = dane.firma;
    var adres = dane.adres;

    
    
    var latlng = new google.maps.LatLng(x,y);

                                                                 //tymi funkcjami można sobie zablokować domylne UI    
    var myOptions = {
          zoom: 14,
          disableDefaultUI: true,
          navigationControlOptions: { style: google.maps.NavigationControlStyle.ZOOM_PAN },
          center: latlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
    
    
    var map = new google.maps.Map(document.getElementById(id), myOptions);
    
    
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(x,y),
        map: map,
        title: firma
        });
    
    
                                                //załadowanie ich tylko wtedy jeśli przekażemy takie parametry    
    if (dane.ikona) {
        
        marker.setIcon(dane.ikona);
        }
    
    
    if (dane.cien) {
        
        marker.setShadow(dane.cien);
        }
    
    
    var infowindow = new google.maps.InfoWindow({
        content: '<p style="margin:0">' + firma + '<br/>' + adres + '</p>',
        size: new google.maps.Size(50,50),
        position: new google.maps.LatLng(x,y)
        });
    
    
    //infowindow.open(map,marker);
    
                                                                //dodanie zdarzenia otwierającego dymek po kliknięciu na marker
    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map,marker);
        });
    }

//.................................................................................................
//.................................................................................................
//.................................................................................................


jQuery(document).ready(function(){
    
    var licznik_id = new autoid(1);
    
    
    
    jQuery('.run').each(function(key, val){
        
        var obiekt = jQuery(val);        
        
        var dane = obiekt.metadata();
        
        var klasa = dane.klasa;
        dane = dane.dane;
        
        licznik_id.przydziel_id(obiekt);
        
        
        if (klasa === 'flash') {
            new flash(obiekt, dane);
            }
    
        else if (klasa === 'maps') {
            new maps(obiekt, dane);
            }
        
        else {
            alert('nieobsługiwana klasa : ' + klasa);
            }
                
        });
    
    });







