/**
 * gioiadeseda package
 *
 * This package contains initialization functions.
 *
 * @author <a href="mailto:info@cappuccinonet.com.com">Bernhard Woehrlin, IT.CappuccinoNet.com</a>
 */
if (typeof gioiadeseda == 'undefined') {
    gioiadeseda = function () { }
}
gioiadeseda.init = function () { }

/**
 * initializes the page's JavaScript
 *
 * @package lebenszahlen.init
 */
gioiadeseda.init.initialize = function () {

    // avoid jQuery conflicts with other libraries (i. e. like mootools)
    // http://docs.jquery.com/Using_jQuery_with_Other_Libraries
    $j = jQuery.noConflict();
    FB.log('initialize', DEBUG);
 
    // extend jQuery functionality
    $j.extend({
        getUrlVars: function() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for (var i=0; i<hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        },
        getUrlVar: function(name){
            return $j.getUrlVars()[name];
        }
    });
    
    // jQuery action
    //$j(function(){});

    $j(document).ready( function() {
        
        
        //gioiadeseda.init.autoresize();
        /*
        http://buildinternet.com/2009/07/quick-tip-resizing-images-based-on-browser-window-size/
        imageresize();//Triggers when document first loads    
        
        $(window).bind("resize", function(){//Adjusts image when browser resized
            imageresize();
        });
         */
        gioiadeseda.init.scrollpane();
        
        var $box = $j('#zoom');
        
        $j('#clickzoom').click(function() {
            $j('#zoom').fadeIn(1000);
            $j('#clickzoom').fadeOut(1000);
        });
        
        //gioiadeseda.init.boutiques();
        //gioiadeseda.init.boutique();
        //gioiadeseda.init.boutiqueswitch();
        //gioiadeseda.init.editor();
        gioiadeseda.init.carousel();
        
    }); 
}

/**
 * @see http://caroufredsel.frebsite.nl/installation.php
 *      http://caroufredsel.frebsite.nl/examples/basic-carousels.php
 */
gioiadeseda.init.carousel = function () {
    if ( $j('#slideshow').length != 0) {
        $j("#slideshow").carouFredSel({
            items               : 3,
            direction           : "left",
            padding             : [0, 20, 0, 0],
            scroll : {
                items           : 1,
                easing          : "easeOutBounce",
                duration        : 1000,                        
                pauseOnHover    : true
            },
            auto : {
                play            : true,
                delay           : 0,
                easing          : "easeOutBounce",
                duration        : 1000,                        
                pauseOnHover    : true
            },
            prev                : ".prev-btn",
	    next                : ".next-btn"
        }); 
    }
    
    if ( $j('#slideshow2').length != 0) {
        $j("#slideshow2").carouFredSel({
            items               : 1,
            direction           : "left",
            padding             : [0, 0, 0, 0],
            scroll : {
                items           : 1,
                easing          : "easeOutBounce",
                duration        : 1000,                        
                pauseOnHover    : true
            },
            prev                : ".prev-btn",
	    next                : ".next-btn"
        }); 
    }
}

/**
 * @see http://valums.com/edit-in-place/
 */
gioiadeseda.init.editor = function () {
    if ( $j('.editableText').length != 0) {
    
        $j('.editableText').editableText({
            // default value
            newlinesEnabled: false
        });
        
        var boutique_id = $j('#address').attr('boutique_id');
        $j('.editableText').change(function(){    
            var newValue = $j(this).html();
            
            FB.log('go to save: '+newValue);
            
            // do something         
            // For example, you could place an AJAX call here:  
            
            $j.ajax({
                type: 'POST',
                url: 'index.php?option=com_gioiadeseda&view=boutique&id='+boutique_id+'&layout=boutique&task=save_news',
                data: 'msg=' + newValue,
                error: function(msg) {
                    $j('#textbox_emph').html('Error: '+ msg.status + ' ' + msg.statusText);
                },
                success: function(msg){
                    alert( gioiadeseda.string.SUCCESFULLY_SAVED_DATA );
                }
            });
            
        });
        
    
    }
}

gioiadeseda.init.boutiqueswitch = function () {

    if ( $j('#boutiquesswitch').length != 0) {
        $j('#boutiquesswitch').click(function() {
            FB.log('boutiquesswitch clicked'); 
            $j('#boutique_list').slideToggle('slow');
        });
    }
}

/**
         * @see http://docs.jquery.com/UI/Accordion
         */
gioiadeseda.init.boutiques = function () {
    if ( $j('#boutiques').length != 0) {
        FB.log('go to accordion');
        
        $j('#boutiques').accordion({
            autoHeight: false, 
            fillSpace: false
        });
    
        $j('#content #component .item-pagerightnarrow ul li ul li').click(function() {
            
            FB.log('widht item-pagerightnarrow: '+$j('.item-pagerightnarrow').width());
            
            if ($j('.item-pagerightnarrow').width() <= 300) {
                $j('.item-pagerightnarrow').prepend('<div id="boutique_detail"><div id="boutique_map"></div><div id="boutique_newaddress"></div></div>');
                //$j('.item-pagerightnarrow').width(896);
                $j('.item-pagerightnarrow').animate({
                    width: 896, 
                    height:480
                }, 1000);
            }
            var address = '#'+$j(this).attr('id');
            FB.log('go to move: '+address);
            //$j(address).effect("scale", { percent: 10, direction: 'vertical' }, 1000);
            $j('.boutique').height(15);
            $j(address).height(40);
            
            var address_block = '#'+$j(this).attr('id') + '_address_details .inner';
            FB.log('go to move: '+address_block);
            $j('#boutique_newaddress').html($j(address_block).clone());
           
            var map_block = '#'+$j(this).attr('id') + '_address_map .inner';
            FB.log('go to move: '+map_block);
            $j('#boutique_map').html($j(map_block).clone());
            $j('#boutique_map').css('background-color','#ffffff');
            gioiadeseda.init.googlemaps($j(this).attr('id'));
        });
    } 
    
   
    
     
}
gioiadeseda.init.boutique = function () {
    if ($j('#microsite #address').length != 0) {
        
        gioiadeseda.init.googlemaps('#microsite #address');
    } 
}

/*    
function imageresize() {
    var contentwidth = $('#content').width();
    if ((contentwidth) < '700'){
        $('.fluidimage').attr('src','little.jpg');
    } else {
        $('.fluidimage').attr('src','big.jpg');
    }
}
         */    
gioiadeseda.init.autoresize = function () {
    
    var windowwidth = $j('body').width();
    var factor = $j('body').attr('factor');
        
    FB.log('window width: '+windowwidth); 
    FB.log('factor: '+factor);
    FB.log('session windowwidth: '+$j.session('windowwidth'));
    
        
    if ( $j.session('windowwidth') != windowwidth & windowwidth < 1200 ){
        FB.log('redirect to window factor: 1');
        $j.session('windowwidth', windowwidth); 
    //window.location.replace(window.location.pathname+'?factor=1');
    } else if ( $j.session('windowwidth') != windowwidth & windowwidth >= 1200 & windowwidth < 1500){
        FB.log('redirect to window factor: 1.2');
        $j.session('windowwidth', windowwidth); 
    //window.location.replace(window.location.pathname+'?factor=1.2');

    } else if ( ($j.session('windowwidth') == null || $j.session('windowwidth') != windowwidth) && windowwidth >= 1500){
        FB.log('redirect to window factor: 1.5');
        $j.session('windowwidth', windowwidth); 
    //window.location.replace(window.location.pathname+'?factor=1.5');
    }
        
}
gioiadeseda.init.scrollpane = function () {
    
    // http://jscrollpane.kelvinluck.com/
    if ( $j('.item-pagerightnarrow').length != 0) {
        FB.log('initialize jScrollPane');
        $j('.item-pagerightnarrow').jScrollPane({
            horizontalGutter: 30,
            verticalGutter: 60
        });
    }
    
    if ( $j('.item-pageright').length != 0) {
        FB.log('initialize jScrollPane');
        $j('.item-pageright').jScrollPane({
            horizontalGutter: 30,
            verticalGutter: 30
        });
    }
        
    
    if ( $j('.item-pageleft').length != 0) {
        FB.log('initialize jScrollPane');
        $j('.item-pageleft').jScrollPane({
            horizontalGutter: 30,
            verticalGutter: 30
        });
    }
    
}

/**
         * jQuery Google Maps
         * @see http://googlemaps.mayzes.org/
         */
gioiadeseda.init.googlemaps = function (boutique) {

    FB.log('draw map: '+boutique);
    
    if ($j('#'+boutique).length != 0) {
        FB.log('Found and work on details map');
        var myLat = $j('#'+boutique).attr('lat');
        var myLng = $j('#'+boutique).attr('lng');
        var myTxt = $j('#'+boutique).attr('txt');
        var myId = $j('#'+boutique).attr('boutique_id');
        var myStyle = $j('#'+boutique).attr('mapstyle');
        var myZoom = parseInt($j('#'+boutique).attr('zoom'));        
        
        FB.log('lat: '+myLat);
        FB.log('lng: '+myLng);
        FB.log('txt: '+myTxt);
        FB.log('id: '+myId);
        FB.log('style: '+myStyle);
        FB.log('zoom: '+myZoom);
    
        if (myLat != '' && myLng != '') {
            gioiadeseda.init.drawmap(myLat, myLng, myTxt, myId, myZoom, myStyle);
        }
    }
    
    
   

}


/**
         * jQuery Google Maps
         * @see http://code.google.com/intl/de-DE/apis/maps/documentation/javascript/overlays.html
         */
gioiadeseda.init.drawmap = function (myLat, myLng, myTxt, myId, myZoom, myStyle) {
    
    FB.log('lat: '+myLat);
    FB.log('lng: '+myLng);
    FB.log('txt: '+myTxt);
    FB.log('id: '+myId);
    FB.log('mapstyle: '+myStyle);
    FB.log('zoom: '+myZoom);
    
    var latlng = new google.maps.LatLng(myLat, myLng);
    FB.log('calculated latlng');
    
    if (myStyle == 'default') {
        var myOptions = {
            zoom: myZoom,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
    } else if (myStyle == 'tiny') {
        var myOptions = {
            zoom: myZoom,
            center: latlng,
            overviewMapControl: false,
            panControl: false,
            rotateControl: false,
            scaleControl: false,
            scrollwheel: false,
            streetViewControl: false,
            zoomControl: false,
            mapTypeControl: false,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
       
        
    }
    FB.log('set options');
    
    gioiadeseda_MAP = new google.maps.Map(document.getElementById("map"), myOptions);
    FB.log('initialized map');
    
    var counter = 0;
    if (myStyle == 'tiny') {
        
        var map_id = 'address';
        
        FB.log('map_id: '+map_id);

        var myLat = $j('#'+map_id).attr('lat');
        FB.log('lat: '+myLat);

        var myLng = $j('#'+map_id).attr('lng');
        FB.log('lng: '+myLng);

        var myTxt = $j('#'+map_id).attr('txt');
        FB.log('txt: '+myTxt);

        var myTitle = ($j('#'+map_id).attr('title'));
        FB.log('title: '+myTitle);

        var myStreet = ($j('#'+map_id).attr('street'));
        FB.log('street: '+myStreet);

        var myLocation= ($j('#'+map_id).attr('ort').replace('+',' '));
        FB.log('location: '+myLocation);

        var myTel= ($j('#'+map_id).attr('tel'));
        FB.log('tel: '+myTel);

        
        var latlng = new google.maps.LatLng(myLat, myLng);

        gioiadeseda.init.addMarker(counter, latlng, myTxt, myTitle, myStreet, myLocation, myTel, myStyle);
    } else {
        $j('li.boutique').each(function(idx, item) {
            counter++;
            FB.log('counter: '+counter);
            var map_id = item.id;
        
            FB.log('map_id: '+map_id);

            var myLat = $j('#'+map_id).attr('lat');
            FB.log('lat: '+myLat);

            var myLng = $j('#'+map_id).attr('lng');
            FB.log('lng: '+myLng);

            var myTxt = $j('#'+map_id).attr('txt');
            FB.log('txt: '+myTxt);

            var myTitle = ($j('#'+map_id).attr('title'));
            FB.log('title: '+myTitle);

            var myStreet = ($j('#'+map_id).attr('street'));
            FB.log('street: '+myStreet);

            var myLocation= ($j('#'+map_id).attr('ort').replace('+',' '));
            FB.log('location: '+myLocation);

            var myTel= ($j('#'+map_id).attr('tel'));
            FB.log('tel: '+myTel);

        
            var latlng = new google.maps.LatLng(myLat, myLng);

            gioiadeseda.init.addMarker(counter, latlng, myTxt, myTitle, myStreet, myLocation, myTel, myStyle);
        
        });
    }

    

}
gioiadeseda.init.addMarker = function (counter, latlng, text, title, street, location, tel, myStyle) {

    
    // 37x37 Icon
    var companyLogo = new google.maps.MarkerImage(gioiadeseda_ICON_URL,
        new google.maps.Size(100,50),
        new google.maps.Point(0,0),
        new google.maps.Point(12,36)
        );
    var companyShadow = new google.maps.MarkerImage('/templates/gioiadeseda/images/markershadow.png',
        new google.maps.Size(74,36),
        new google.maps.Point(0,0),
        new google.maps.Point(14, 36)
        );
    
    var companyMarker = new google.maps.Marker({
        position: latlng,
        map: gioiadeseda_MAP,
        icon: companyLogo,
        shadow: companyShadow,
        title: text
    });
    gioiadeseda_MARKERSARRAY.push(companyMarker);
    
    if (myStyle != 'tiny') {
    
        var html = '<div id="popup"><h3>'+text+'</h3>';
        html += '<p>'+street+'<br/>'+location+'<br/>';
        html += 'Telefon: '+tel+'</p></div>';

        google.maps.event.addListener(companyMarker, 'click', function(){
            FB.log('clicked marker');
            if (!gioiadeseda_MAP_INFOWINDOW) {
                gioiadeseda_MAP_INFOWINDOW = new google.maps.InfoWindow();
            }
            gioiadeseda_MAP_INFOWINDOW.setContent(html);

            gioiadeseda_MAP_INFOWINDOW.open(gioiadeseda_MAP, companyMarker)
        });
    } 
}

// Removes the overlays from the map, but keeps them in the array
gioiadeseda.init.clearOverlays= function () {
    if (gioiadeseda_MARKERSARRAY) {
        for (i in gioiadeseda_MARKERSARRAY) {
            gioiadeseda_MARKERSARRAY[i].setMap(null);
        }
    }
}

// Shows any overlays currently in the array
gioiadeseda.init.showOverlays= function () {
    if (gioiadeseda_MARKERSARRAY) {
        for (i in gioiadeseda_MARKERSARRAY) {
            gioiadeseda_MARKERSARRAY[i].setMap(gioiadeseda_MAP);
        }
    }
}

// Deletes all markers in the array by removing references to them
gioiadeseda.init.deleteOverlays= function () {
    if (gioiadeseda_MARKERSARRAY) {
        for (i in gioiadeseda_MARKERSARRAY) {
            gioiadeseda_MARKERSARRAY[i].setMap(null);
        }
        gioiadeseda_MARKERSARRAY.length = 0;
    }
}

gioiadeseda.init.initialize();

