var lat = 49;
var lng = 32;
var zoom = 5;
var map;
var my_marker;


// ------------------------------------------------------------------------

// Init map
function shopsMapInit() {
    if (GBrowserIsCompatible()) {            	
        
		// Config
		map = new GMap2(document.getElementById("map_canvas"));                                   
        var mapTypes = map.getMapTypes();                	
      	map.setCenter(new GLatLng(lat, lng), zoom);
		  
		// Min zoom        
		// Overwrite the getMinimumResolution() and getMaximumResolution() methods for each map type
	    var minMapScale = 5;					    
		for (var i=0; i<mapTypes.length; i++) {
			mapTypes[i].getMinimumResolution = function() {return minMapScale;}			
		}                                                                   								
		 
		map.setUIToDefault();		
		map.getInfoWindow(); 
		
		// Get markers        
    	getMarkers();    	    									
		
		// Event listeners
		GEvent.addListener(map, "zoomend", function() {						      	
			getMarkers();
		});                                      
    }
}

// ------------------------------------------------------------------------

// Get markers from server and put them on the map
function getMarkers() {    	
	
	// Clear previous markers
	map.clearOverlays();				    	    	
	
	// Request markers
	$.ajax({		
		type: "POST",
		url: base_url + "shop/markers",
		data: "zoom="+map.getZoom(),
		dataType: "xml",
		success: function(data) {		              				
  			$(data).find("marker").each(function() {
      			var marker = $(this);          			          							
				var point = new GLatLng(parseFloat(marker.attr("lat")), parseFloat(marker.attr("lng")));							
				var marker = createMarker(point, marker.text());										
				map.addOverlay(marker);					
  			});				  	
		}
	});		
}

// ------------------------------------------------------------------------

// Create new marker	
function createMarker(point, info) {
	var marker = new GMarker(point, {icon: create_icon()});        	
  	
	GEvent.addListener(marker, 'click', function() {  		      	
		marker.openInfoWindowHtml(info, {maxWidth:120, maxHeight:270});		     					    
  	});
  	
  	return marker;
}

// ------------------------------------------------------------------------

// Get the name of image for the marker
function create_icon() {      
    var icon = new GIcon();
    icon.image = "../public/img/map_icon.png";
    icon.iconAnchor = new GPoint(15, 40);
    icon.infoWindowAnchor = new GPoint(15, 0);
    icon.iconSize = new GSize(34, 41);        
    return icon;  
}   

// ------------------------------------------------------------------------

function show_city(lat, lng, zoom) {	
	map.setCenter(new GLatLng(lat, lng), zoom);
}

// ------------------------------------------------------------------------

function show_video() {
    slideshow = false;	
    $('#slideshow').css('opacity', '0.3');
    //$('.show_video').css('opacity', '0.3');            
	$('#video').show();
}

// ------------------------------------------------------------------------

function hide_video() {
    slideshow = true;	
    $('#slideshow').css('opacity', '1');
    //$('.show_video').css('opacity', '1');    
	$('#video').hide();
}

// ------------------------------------------------------------------------

var slideshow = true;

function slideSwitch() {
    if (slideshow) {
        var $active = $('#slideshow img.active');
     
        if ( $active.length == 0 ) $active = $('#slideshow img:last');
     
        var $next =  $active.next().length ? $active.next() : $('#slideshow img:first');
     
        $active.addClass('last-active');
     
        $next.css({opacity: 0.0})
            .addClass('active')
            .animate({opacity: 1.0}, 1000, function() {
                $active.removeClass('active last-active');
            });
        setTimeout("slideSwitch()", 5000);
    } else {
        $('.active').stop();        
        setTimeout('slideSwitch()', 1000);
    }
}
 
// ------------------------------------------------------------------------

var m_type = 'adult';
var m_size = 20;
var m_spring = 51;
var m_glue = false;
var m_firmness = 0;
var m_customer_weight = 100;
var m_partner_weight = 70;

function clear_data() {
	m_type = 0;
	m_size = 0;
	m_spring = 0;
	m_glue = false;
	m_firmness = 0;
	m_customer_weight = 0;
	m_partner_weight = 0;	
}

function get_results() {
	$('#results').html('<img src="'+base_url+'public/img/ajax-loader.gif"/>');
	$.ajax({		
		type: 'POST',
		url: base_url + 'mattress/find',
		data: 'model='+m_type+'&size='+m_size+'&spring='+m_spring+'&glue='+m_glue+'&firmness='+m_firmness+'&customer_weight='+m_customer_weight+'&partner_weight='+m_partner_weight,
		dataType: 'xml',
		success: function(data) {
		    var lang = base_url == site_url + 'en/' ? 'en/' : '';
			if ($(data).find('msg').text() == 'success') {								
				var html = '';
				$(data).find('item').each(function() {
					html += '<div class="product_wrapper">';
					if ($(this).find('thumbnail').text().length != 0) {
						html += '<img src="'+site_url+'store/published/publicdata/NEWAKANT/attachments/SC/products_pictures/'+$(this).find('thumbnail').text()+'" alt="" class="product_img" />';
					}					
					html += '<a href="'+site_url+'store/'+lang+'product/'+$(this).find('slug').text()+'"><b>'+$(this).find('name').text()+'</b></a>';
					html += '&nbsp;&nbsp;<span class="red">'+$(this).find('price').text()+'</span>';					
					if ($(this).find('desc').text().length != 0) {
						html += '<div class="prod_desc">'+$(this).find('desc').text()+'<a class="product_link" href="'+site_url+'store/product/'+$(this).find('slug').text()+'">&nbsp;&nbsp;&nbsp;</a></div>';
					}
					html += '</div>';
				});
				$('#results_wrapper').html(html);
			} else {
				$('#results_wrapper').html($('#nothing_found_msg').val());
			}		              				
		}
	});		
}

// ------------------------------------------------------------------------

// Event listeners
$(document).ready(function() {
	
	// Main page banners animation
	$('.banner').bind('mouseenter',function() {
		$(this).find('.block_animation').hide();
		$(this).find('.block_animation').animate({left:'+=200', opacity:'0'}, 1);
		$(this).find('.block_animation').show();
		$(this).find('.block_animation').animate({left:'-=200', opacity:'1'}, 500);
	});        
	
});

// ------------------------------------------------------------------------

$(document).ready(function() {        
	// Model type
	$('.adult_wrapper').click(function() {
	    $('#param_mask').hide();        
        $('#mattress_size').removeAttr('disabled');
        $('#mattress_spring').removeAttr('disabled');        
		m_type = 'adult';
		//$('#step2').fadeIn('slow');
		//$('#step3').fadeIn('slow');
		$('#adult_model').css('opacity', '1');
		$('#child_model').css('opacity', '0.2');				
		get_results()
	});
	$('.child_wrapper').click(function() {
	    $('#param_mask').show();
        $('#mattress_size').attr('disabled', 'disabled');
        $('#mattress_spring').attr('disabled', 'disabled');
		//clear_data();
		//$('#step2').hide();		
		//$('#step4').hide();
		//$('#step5').hide();
		m_type = 'child';
		$('#adult_model').css('opacity', '0.2');
		$('#child_model').css('opacity', '1');							
		get_results()
	});			
	
	// Customer & partner weight
	$('#step4 div').click(function() {
		m_customer_weight = $(this).html();        
		$('#step4 div').removeClass('active');
        $(this).addClass('active');        
		get_results()
	});
	$('#step5 div').click(function() {
		m_partner_weight = $(this).html();
        $('#step5 div').removeClass('active');
        $(this).addClass('active');        
		get_results()
	});
	
	// Size
	$('#mattress_size').change(function() {
		m_size = $(this).val();
		get_results()
	});
	
	// Spring
	$('#mattress_spring').change(function() {
		m_spring = $(this).val();
		get_results()
	});	
	
	// Glue technology
	$('#glue').click(function() {
		m_glue = $('#glue').attr('checked');
		get_results()
	});
});
