$(document).ready(function() {
    
    /*******************************************************************************
     * Silde initializing code from here
     ******************************************************************************/
    
    $('ul.slides').cycle({ 
        fx:     'fade',
        speed:  1000, 
        timeout: 4000, 
        next:   '.next', 
        prev:   '.prev',
        pager:  '.slide-navi',
        cleartypeNoBg: true,
        cleartype: true
    });
    
    $('.slide-container').live('mouseover', function() {
        $('ul.slides').cycle('pause');
    })
    
    $('.slide-container').live('mouseleave', function() {
        $('ul.slides').cycle('resume');
    })
    
    $('a', '.companys').live('mouseover', function() {
        $('ul.slides').cycle($(this).attr('rel')-1);
    })
    
    if($("ul.slides li").length == 1) {
        $('.slide-nav').css('display', 'none');
        $('.slide-nav').css('display', 'none');
        $('.slide-buttons').css('display', 'none');
    }
    
    
    /*******************************************************************************
     * Google Maps Integration without using iframes!
     ******************************************************************************/
    
    if($("#map").length > 0) {
        initializeMap();
        searchLocation('Hostatostr. 3, 65929 Frankfurt am Main', '', 13, false);
    }
})

/***************************************************************************
* Google Maps Code
**************************************************************************/

var map;
var marker;
var infowindow;
var target;
var pan = false;
var lat = 50.982641;
var lng = 11.02272;

var mapMarker = new Array();
mapMarker['museum'] = 'media/layout/jewelry.png';

function initializeMap(t) {
   target = t ? t : '#map';
   
   try {
        var myLatLng = new google.maps.LatLng(lat, lng);
        
        var myOptions = {
             zoom: 6
            ,center: myLatLng
            ,mapTypeId: google.maps.MapTypeId.ROADMAP
            ,mapTypeControl: true
            ,navigationControl: true
            ,navigationControlOptions: {
              style: google.maps.NavigationControlStyle.SMALL
            }
        };
                                
        map = new google.maps.Map(document.getElementById(target.substring(1)), myOptions);
        fitToBounds();
   }
   catch(e) {
       $(target).empty();
       $(target).append('<p class="error">Für die Darstellung der Karte benötigen Sie eine Verbindung zum Internet!</p>');
       $(target).append('<p class="error">Bitte überprüfen Sie Ihre Internetverbindung.</p>');
   }
}

function fitToBounds() {
    var southWest = new google.maps.LatLng(47.323056,5.041944); // dijon
    var northEast = new google.maps.LatLng(55.105556,14.702778); // roenoe / bornholm
    var bounds = new google.maps.LatLngBounds(southWest,northEast);
    
    map.panToBounds(bounds);
}

function setZoom(zoom) {
    zoom = !zoom ? 6 : zoom;
    map.setZoom();
}

function searchLocation(txtAddress, htmlAddress, zoom, infowindowShow) {
   
    try {
        var geocoder = new google.maps.Geocoder();
        
        if(!zoom) zoom = 6;
        
        geocoder.geocode({address: txtAddress}, function(results, status) {
            
            if (status == google.maps.GeocoderStatus.OK) {                
               
                if(pan == false) {
                    map.setCenter(results[0].geometry.location);
                    map.setZoom(zoom);
                }
                
                var marker = new google.maps.Marker();
                var image = new google.maps.MarkerImage(mapMarker['museum']);
    
                marker.setIcon(image);
                marker.setOptions({
                    position: results[0].geometry.location, 
                    map: map
                });
                
                if(htmlAddress != '') {
                    /***********************************************************
                    var boxText = document.createElement("div");
                    boxText.style.cssText = "border: solid 1px #D5B36B; margin-bottom: 8px; background: #FFF; padding: 10px;";
                    boxText.innerHTML = htmlAddress;
                    
                    var myOptions = {
                             content: boxText
                            ,disableAutoPan: false
                            ,maxWidth: 0
                            ,pixelOffset: new google.maps.Size(-80, -200)                     
                            ,zIndex: 999
                            ,boxStyle: { 
                              //background: "url('/macaurum/img/tipbox.gif') bottom left no-repeat"
                              minWidth: "280px"                              
                             }
                            ,closeBoxMargin: "2px 2px 2px 2px"
                            ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
                            ,infoBoxClearance: new google.maps.Size(1, 1)
                            ,isHidden: false
                            ,pane: "mapPane"
                            ,enableEventPropagation: false
                    };
                    ***********************************************************/
                    
                    var infowindow = new google.maps.InfoWindow();
                    
                    google.maps.event.addListener(marker, 'click', function() {
                      infowindow.setContent(htmlAddress);
                      infowindow.open(map, marker);
                      //var ib = new InfoBox(myOptions);                
                      //ib.open(map, marker);
                    });
                    
                    if(infowindowShow && infowindowShow == true) {
                      infowindow.setContent(htmlAddress);
                      infowindow.open(map, marker);
                      infowindow.setPosition(results[0].geometry.location);
                      
                      //var ib = new InfoBox(myOptions);                
                      //ib.open(map, marker);
                    }
                }
            }
            else {
                $('#right').append(status + '<br /><br />' + txtAddress);
            }
        });
    }
    catch(e) {
        $('#map').empty();
        $('#map').append('<p class="error">Für die Darstellung der Karte benötigen Sie eine Verbindung zum Internet!</p>');
        $('#map').append('<p class="error">Bitte überprüfen Sie Ihre Internetverbindung.</p>');
    }
}
