var DIST = {						
	currIndex:0,
	objXML:null,
	block1Visible:false,
	latlng: new google.maps.LatLng(45.616898, 9.192333),
	map:null
};	

DIST.loadSection = function(){
	
	DIST.currIndex = 0;
	DIST.block1Visible = false;
	$('#distrib_map_holder').hide();
	
	$('#distribution #block1').empty();
	$('#distribution #block2').empty();
	$('#distribution #block1Wrapper').css('height', $(window).height() - ($(window).height()/3 + 120));
	$('#distribution #block2Wrapper').css('height', $(window).height() - ($(window).height()/3 + 90));
	
	$('#distribution #block1Header').hide();
	$('#distribution #block1Header').unbind('click');
	$('#distribution #block1Header').click(function(){
		DIST.toggleBlock1();											
	});
	
	$('.mapLink').live('click', function(e){
		e.preventDefault();
		
		var coord = $(this).attr('data-id');
		var rName = $(this).attr('data-name');
		var coordArray = coord.split(",");
		var tempLatLng = new google.maps.LatLng(coordArray[0], coordArray[1]);
		DIST.latlng = tempLatLng;
		$('#google_maps_link').html(langObject.open_google);
		$('#google_maps_link').attr('href', 'http://maps.google.com/maps?q='+rName + '@'+coord+'&z=15');
		DIST.showMap();
		DIST.initializeMap();
	})
	
	
	$.ajax({
	  type: "GET",
		 url: 'content/distribuzione.xml',
		 dataType: "xml",
		 success: function(xml) {
			DIST.createSecondaryMenu(xml);	
			$('#distribution h1').html(langObject.distribution);
			Cufon.replace('h1');
			PO.sectionLoaded = true;
			if(BGO.imageLoaded && !PO.showingSplashPage){
				PO.animateSection();
				//return;
			}	
			if(PO.subSection != '' && PO.subSection != 'distribuzione_online'){
				DIST.loadBlock1();	
			}
			if(PO.subSection == 'distribuzione_online'){
				DIST.loadBlockOnline();	
			}
		 },
		 error:function(e){
			//console.log(e); 
		}
	}); //close $.ajax
};

DIST.showMap = function(){
	$('#distrib_map_holder').fadeIn(500);
}

DIST.hideMap = function(){
	$('#distrib_map_holder').fadeOut(300);
}

DIST.initializeMap = function() {
	/*** desaturate map ***/
	var stylez = [{
		featureType: "all",
		elementType: "all",
		stylers: [
		  { saturation:-100 }
		]
	 }];		  
  
	/* options */
	var myOptions = {
		zoom: 14,
		center: DIST.latlng,
		navigationControl: true,
		navigationControlOptions: {
		  	style: google.maps.NavigationControlStyle.DEFAULT,
		 	position: google.maps.ControlPosition.LEFT_TOP
		},
		mapTypeControl: false,
		scaleControl: true,
		streetViewControl:false,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		mapTypeControlOptions: {
		   mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'blackwhite']
		}
	};
  
	var map = new google.maps.Map(document.getElementById("distrib_map"), myOptions);
  	DIST.map = map;
  
	var styledMapOptions = {name: "Black-White"};

	var bwMapType = new google.maps.StyledMapType(stylez, styledMapOptions);

	DIST.map.mapTypes.set('blackwhite', bwMapType);
	DIST.map.setMapTypeId('blackwhite');
	
	
	/**** add marker ***/
	var marker_image = 'img/google_marker_small.png';
	var marker = new google.maps.Marker({
		position: DIST.latlng,
		title:"Milano Bedding",
		icon: marker_image
	});
	
	
	// To add the marker to the map, call setMap();
	marker.setMap(DIST.map);
	
	
	
	google.maps.event.trigger(DIST.map, 'resize');
}


DIST.createSecondaryMenu = function(xml){
	$('#distribution .secondaryMenuDiv .secondaryMenu').empty();
	var list = $('<ul></ul>');
	var counter = 0;
	var numItems = $(xml).find('area').length;
		
	$(xml).find('area').each(function(){
		counter++;
		$('<li><a href="/' + lang + '/distribution/' + $(this).attr("target") + '.html" id="' +  $(this).attr('target') + '-link">' + $(this).attr('titolo') + '</a></li>').appendTo(list);
		if(counter < numItems){
			if(counter == 1){
				$('<li style="width:40px">&nbsp;</li>').appendTo(list);
			}else{
			  	$('<li class="divider"></li>').appendTo(list);
			}
		}else{
			$('<li style="width:40px">&nbsp;</li>').appendTo(list);
			$('<li><a href="/' + lang + '/distribution/distribuzione_online.html" id="distribuzione_online-link">Online authorised dealers</a></li>').appendTo(list);
		}		
	});
	
	
	
	$('#distribution .secondaryMenuDiv .secondaryMenu').append(list);
		
		
	setTimeout(function(){				
		$('nav.secondaryMenu a').each(function() {	
			if($(this).attr('id') == PO.subSection+'-link'){
				$(this).parent().siblings().find("a").removeClass('selected');
				$(this).addClass('selected');
			}
		});		
	}, 400);
	
}

DIST.loadBlock1 = function(){
	if(PO.subSection == 'distribuzione_online'){
		DIST.loadBlockOnline();
		return;
	}
	$('#distribution #block1').empty();
	$('#distribution #block2').slideUp();
	$('#distribution #block2').hide();
	
	DIST.hideMap();
	fleXenv.updateScrollBars();	
	$('#distribution #block1').hide();
	$('#distribution #block1Header').empty();
	if(PO.subSection == 'distribuzione_italy'){
		$('#distribution #block1Header').html(langObject.selezionaRegione);
	}else{
		$('#distribution #block1Header').html(langObject.selezionaPaese);
	}
	$('#distribution #block1Header').append($('<div class="yellowDash"></div>'));
	$('#distribution #block1Header').css({'cursor':'pointer'}).show();
	$.ajax({
	  type: "GET",
		 url: 'content/' + PO.subSection + '.xml',
		 context:$('#distribution #block1'),
		 dataType: "xml",
		 success: function(xml) {
			DIST.objXML = xml;								// save as variable
			var list = $('<ul></ul>');
			var numItems = $(xml).find('regione').length;
			var counter = 0;
			
			$(xml).find('regione').each(function(){
				counter++;
				$('<li><a href="' + $(this).attr("titolo") + '" id="' +  $(this).attr('titolo') + '-link">' + $(this).attr('titolo') + '</a></li>').appendTo(list);
						
			});
			$('#distribution #block1').append(list); 	
			if (!$('#block1Wrapper').fleXcroll){
				fleXenv.fleXcrollMain("block1Wrapper");
			}
		
			$('#distribution #block1').css('overflow', 'auto');				
				
			if ($('#block1Wrapper').fleXcroll){
				document.getElementById('block1Wrapper').fleXcroll.setScrollPos(0,0);
				fleXenv.updateScrollBars();
			}
			
			// add actions
			$('#distribution #block1 a').unbind('click');
			$('#distribution #block1 a').click(function(e) {
			  e.preventDefault();
			  DIST.loadBlock2($(this).attr('href'));
			  DIST.toggleBlock1($(this).attr('href'));
			  DIST.hideMap();
			});
		 },
		 error:function(e){
			//console.log(e); 
		}
	}); //close $.ajax
}

DIST.toggleBlock1 = function(title){
	if (!$('#block1Wrapper').fleXcroll){
		fleXenv.fleXcrollMain("block1Wrapper");
	}
	
	document.getElementById('block1Wrapper').fleXcroll.setScrollPos(false,0);
	fleXenv.updateScrollBars();
	$('#distribution #block1')
	  	.slideToggle(400, function(){
			document.getElementById('block1Wrapper').fleXcroll.setScrollPos(false,0);
	  		fleXenv.updateScrollBars();
			if(title){
				$('#distribution #block1Header').html(title);		
				$('#distribution #block1Header').append($('<div class="yellowDash"></div>'));
			}
		});
	
}

DIST.loadBlockOnline = function(){
	$('#distribution #block1').empty();
	$('#distribution #block1').hide();
	$('#distribution #block2').empty();
	$('#distribution #block1Header').html('Online authorized dealers:').show().css({'cursor':'default'});
	
	if (!$('#block2Wrapper').fleXcroll){
		fleXenv.fleXcrollMain("block2Wrapper");
	}
	
	//$('#distribution #block2').hide();

	$.ajax({
	  type: "GET",
		 url: 'content/distribuzione_online.xml',
		 dataType: "xml",
		 success: function(xml) {
		 	$(xml).find("area").each(function(){
				$('<a href="' + $(this).attr('href') + '" target="_blank"><div class="dist_header">' + $(this).attr('titolo').toUpperCase() + '</div></a>').appendTo($('#distribution #block2'));
			})
			//document.getElementById('block2Wrapper').fleXcroll.setScrollPos(false,0);	
			fleXenv.updateScrollBars();		
			
			var speed = $('#distribution #block2').height();
			if(speed < 300){
				speed = 300;	
			}
			$('#distribution #block2').slideDown(speed, function(){
				fleXenv.updateScrollBars();			 	 
			});
		 },
		 error:function(e){
			//console.log(e); 
		}
	}); //close $.ajax
}

DIST.loadBlock2 = function(filter){
	var zone='';
	if (!$('#block2Wrapper').fleXcroll){
		fleXenv.fleXcrollMain("block2Wrapper");
	}
	if ($('#block2Wrapper').fleXcroll){
		document.getElementById('block2Wrapper').fleXcroll.setScrollPos(false,0);	
	}
	$('#distribution #block2').empty();
	$('#distribution #block2').hide();
	
	var counter = 0;
	$(DIST.objXML).find("regione[titolo=\'" + filter + "\'] item").each(function(){
		if(zone!=$(this).attr('zona')){
			zone=$(this).attr('zona');
			if(counter == 0){
				$('<div class="dist_header">' + zone.toUpperCase() + '</div>').appendTo($('#distribution #block2'));
			}else{
				$('<div class="dist_header" style="margin-top:5px;">' + zone.toUpperCase() + '</div>').appendTo($('#distribution #block2'));
			}
			counter++;
		}
		var dist_item = $('<div class="dist_item"></div>');
			dist_item.append($('<div class="company_name">' + $(this).attr('nome').split('Outlet Store').join('<span class="highlight">Outlet Store</a>') + '</div>'));
			if($(this).find('indirizzo').text() != '' ){
				if($(this).find('indirizzo').attr('coord') != '' && $(this).find('indirizzo').attr('coord') != null){
					dist_item.append($('<div><a href="" data-id="' + $(this).find('indirizzo').attr('coord') + '" class="mapLink" data-name="' + $(this).attr('nome')  + '">' + $(this).find('indirizzo').text() + '</a></div>'));
				}	else{
					dist_item.append($('<div>' + $(this).find('indirizzo').text() + '</div>'));
				}
			}
			
			
			$(this).find("sub").each(function(){
				switch($(this).attr('tipo')){
					case "0":
						dist_item.append($('<div>' + $(this).attr('nvalue') + '</div>'));
						break;
					case "1":
						dist_item.append($('<div><a href="mailto:' + $(this).attr('nvalue') + '">' + $(this).attr('nvalue') + '</div>'));
						break;
					case "2":
						dist_item.append($('<div><a href="http://' + $(this).attr('nvalue') + '" target="_blank">' + $(this).attr('nvalue') + '</div>'));
						break;
				}						  
			});
		
		dist_item.appendTo($('#distribution #block2'));							   
				
	});
	
	
	document.getElementById('block2Wrapper').fleXcroll.setScrollPos(false,0);	
	fleXenv.updateScrollBars();		
	
	var speed = $('#distribution #block2').height();
	if(speed < 300){
		speed = 300;	
	}
	$('#distribution #block2').slideDown(speed, function(){
		fleXenv.updateScrollBars();			 	 
	});
	
	
}

