/**
 * Levi's Multimap library
 *
 * @project   Levi's Stores Location
 * @author    <mohamed.benarroudj@laposte.net>
 * @version   1.0
 */
 
 /**
  * Globals variables
  */
 var strChUserAgent = navigator.userAgent;
 var intSplitStart = strChUserAgent.indexOf("(",0);
 var intSplitEnd = strChUserAgent.indexOf(")",0);
 var strChStart = strChUserAgent.substring(0,intSplitStart);
 var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
 var strChEnd = strChUserAgent.substring(strChEnd); 
if(strChMid.indexOf("MSIE 6") != -1)
	var IE6 = true; 
var storeloc_mapviewer;               // Multimap's map Instance
var storeloc_searcher;                // Searcher   : Instance of MMSearcher to do a search
var storeloc_search;                  // Search     : Instance of MMSearch use by the searcher to define the search 
var storeloc_results = new Array();   // Results set
var storeloc_markers;                 // Currents markers in map
var storeloc_autoscale_markers;       // Autoscale selection markers
var storeloc_search_compare;          // Value use to compare search value to clear the input box on focus
var storeloc_count_page   = 5;        // pagination : Number of results item by page
var storeloc_popup_id     = 0;        // Intern counter to generate a new popup ID each popup created
var storeloc_max_distance = 10;       // Max distance in Km
var storeloc_neighbor     = 3;        // Max distance to retrieve neighbor store
var storeloc_marker_icon;             // Marker icon
var storeloc_is_loading   = false;    // Loading flag
var storeloc_panel_is_open= false;    // Left Result Panel Flag
var storeloc_current_page;

// Morph Transformation
var storeloc_loading_on_morph;
var storeloc_loading_off_morph;
var storeloc_panel_morph;
var storeloc_map_morph;
var storeloc_panel_fade_morph;

function translateQS(qs){
	switch(qs){
		case "morocco": return "kingdom of morocco";
		break;
		default: return qs;
	}
}


//locale = 'fr_FR';

// Location country
if( typeof(locale) == 'string' )
{
  var tmp = locale.split('_');
  storeloc_country = tmp[1];
  db_country = (storeloc_country == 'GB')? 'UK':storeloc_country;
}
/**
 * Initialisiation of Multimap
 *
 * @return  void
 */
function storeloc_InitMap()
{
  // Get the map instance and move it to local country 
  storeloc_mapviewer = MMFactory.createViewer(document.getElementById('storeloc-map'));
  if(storeloc_country.toLowerCase() != 'eu')
	storeloc_mapviewer.goToPosition( new MMAddress({'country_code': storeloc_country}) );
  else{
	storeloc_mapviewer.goToPosition( new MMAddress({'qs': 'europe'}),4 );
//	storeloc_mapviewer.goToPosition( new MMAddress({'country_code': "fr"}) );
	}
	// Markers group style:  MM_DECLUTTER_AGGREGATE OR MM_DECLUTTER_GRID
  var cluster_icon          = new MMIcon('/common/images/store-locator/custom-marker-multiple.png');
  cluster_icon.iconSize     = new MMDimensions(27, 30);
  cluster_icon.iconAnchor   = new MMPoint(10, 23);
  storeloc_mapviewer.declutterGroup(undefined, {'hide_index': 'False', 'cluster_icon': cluster_icon}, MM_DECLUTTER_GRID);
//  storeloc_mapviewer.declutterGroup(undefined, {'hide_index': 'False', 'cluster_icon': cluster_icon}, MM_DECLUTTER_AGGREGATE);
  
  // Single Marker custom
  storeloc_marker_icon            = new MMIcon('/common/images/store-locator/custom-marker.png' );
  storeloc_marker_icon.iconSize   = new MMDimensions( 23, 26);
  storeloc_marker_icon.iconAnchor = new MMPoint(10, 23);
  
  // Add Zoom Widget in Point left:7px; right:7px;
  storeloc_mapviewer.addWidget(new MMPanZoomWidget(new MMBox(0, 7)));
  
  // Add Type Widget : Map types 4, 8, 64 => Map, Aeral, BirdEyes - No selector (context menu)
  storeloc_mapviewer.addWidget(new MMMapTypeWidget(new Array(4, 8, 64), undefined, 'MMMapTypeWidget', false));
//alert(MM_WORLD_BEHYBRID);  
  // Set "mouse:wheel" events to zoom the map
  storeloc_mapviewer.setOptions({'mousewheel:wheelup': 'zoomin', 'mousewheel:wheeldown': 'zoomout'});
  
  // Init Searcher : When search is finished, OnEndSearch function is call
  storeloc_searcher = MMFactory.createSearchRequester(storeloc_OnEndSearch);
  
  // Init Search
  storeloc_search                  = new MMSearch(); 
  storeloc_search.count            = 100;       // Get all results
  storeloc_search.start_index      = 1;               
  storeloc_search.min_distance     = undefined;       // No min distance
  // storeloc_search.distance_units   = 'kilometers';
}

/**
 * Clean the map
 *  - Remove all overlays
 *  - Delete all values
 *
 * @return void
 */
function storeloc_CleanMap()
{
  storeloc_mapviewer.removeAllOverlays();
  delete storeloc_results
  delete storeloc_markers;
  delete storeloc_autoscale_markers
  storeloc_markers = new Array();
  storeloc_autoscale_markers = new Array();
  storeloc_results = new Array();
}
 
/**
 * Start search by query string address
 *
 * @param address_qs  string represent address (ex: 86, rue nazareth Paris 03)
 * @return void
 */
function storeloc_SearchByQS(address_qs)
{
  // Set loading status
  storeloc_Loading(true);
  if(storeloc_country.toLowerCase() == 'eu'){
	storeloc_search.data_source='mm.clients.levi_at,mm.clients.levi_ch,mm.clients.levi_de,mm.clients.levi_ad,mm.clients.levi_es,mm.clients.levi_pt,mm.clients.levi_fr,mm.clients.levi_it,mm.clients.levi_be,mm.clients.levi_dk,mm.clients.levi_fi,mm.clients.levi_is,mm.clients.levi_lu,mm.clients.levi_nl,mm.clients.levi_no,mm.clients.levi_se,mm.clients.levi_gb,mm.clients.levi_ie,mm.clients.levi_ru,mm.clients.levi_al,mm.clients.levi_bg,mm.clients.levi_ba,mm.clients.levi_by,mm.clients.levi_cz,mm.clients.levi_ee,mm.clients.levi_hr,mm.clients.levi_hu,mm.clients.levi_lt,mm.clients.levi_lv,mm.clients.levi_md,mm.clients.levi_mk,mm.clients.levi_pl,mm.clients.levi_ro,mm.clients.levi_si,mm.clients.levi_ua,mm.clients.levi_sk,mm.clients.levi_cy,mm.clients.levi_gr,mm.clients.levi_ae,mm.clients.levi_az,mm.clients.levi_ge,mm.clients.levi_il,mm.clients.levi_kz,mm.clients.levi_kg,mm.clients.levi_qa,mm.clients.levi_tr,mm.clients.levi_uz,mm.clients.levi_sa,mm.clients.levi_ma,mm.clients.levi_rs';
 }
  else{
	storeloc_search.data_source='mm.clients.levi_'+storeloc_country.toLowerCase();
  }
  // Set max distance and get all results
  storeloc_search.max_distance     = storeloc_max_distance;
  storeloc_search.count            = 100;
  
  // Set address in query string format
  delete storeloc_search.address;
  delete storeloc_search.point;
  if(storeloc_country.toLowerCase() == 'eu')
	storeloc_search.address  = new MMAddress({'qs': address_qs});
  else
  storeloc_search.address  = new MMAddress({'country_code': storeloc_country, 'qs': address_qs});

  storeloc_search.point    = undefined;
  
  // Default order
  storeloc_search.order_by_fields  = ['flagshipstores','premiumstores','levistoreownedoperated','levistorefranchisee','factoryoutlets','factoryoutletsfranchisee','shopinshops','shopinshops'];
  storeloc_search.order_by_order  = 'asc';

  // Set filters
  delete storeloc_search.filters;
  storeloc_search.filters = new Array();
  storeloc_search.filters.push(new MMSearchFilter('active', 'eq', 'TRUE'));
  
  // products
  switch( $('storeloc-products-filter').get('value') )
  {
    case 'men':
      storeloc_search.filters.push(new MMSearchFilter('stockingmen', 'eq', 'YES'));
      break;
      
    case 'women':
      storeloc_search.filters.push(new MMSearchFilter('stockingwomen', 'eq', 'YES'));
      break;
  
    case 'kids':
	  storeloc_search.data_source='mm.clients.levi_groupzannier';
      storeloc_search.filters.push(new MMSearchFilter('stockingkids', 'eq', 'YES'));
      break;
    
    case 'accessories':
	  storeloc_search.data_source='mm.clients.levi_dccompany,mm.clients.levi_abc,mm.clients.levi_grasset,mm.clients.levi_powerplay,mm.clients.levi_comtech';
      storeloc_search.filters.push(new MMSearchFilter('stockingaccessories', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'BWK':
	  storeloc_search.data_source='mm.clients.levi_abc';
      storeloc_search.filters.push(new MMSearchFilter('stockingaccessories', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'belts':
	  storeloc_search.data_source='mm.clients.levi_dccompany';
      storeloc_search.filters.push(new MMSearchFilter('belts', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'eyewear':
	  storeloc_search.data_source='mm.clients.levi_grasset';
      storeloc_search.filters.push(new MMSearchFilter('eyewear', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'HGS':
	  storeloc_search.data_source='mm.clients.levi_dccompany';
      storeloc_search.filters.push(new MMSearchFilter('hatsscarvesgloves', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'watches':
	  storeloc_search.data_source='mm.clients.levi_comtech';
      storeloc_search.filters.push(new MMSearchFilter('watches', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'footwear':
	  storeloc_search.data_source='mm.clients.levi_dccompany';
      storeloc_search.filters.push(new MMSearchFilter('footwear', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
    
    case 'underwear':
	  storeloc_search.data_source='mm.clients.levi_powerplay';
      storeloc_search.filters.push(new MMSearchFilter('underwear', 'eq', 'YES'));
	  if(storeloc_country.toLowerCase() !='eu')
      storeloc_search.filters.push(new MMSearchFilter('country', 'eq', db_country));
      break;
  }
  
  // Collections
  switch( $('storeloc-collections-filter').get('value') )
  {
    case 'redtab':
      storeloc_search.filters.push(new MMSearchFilter('stockingredtab', 'eq', 'YES'));
      break;
    
    case 'lej':
      storeloc_search.filters.push(new MMSearchFilter('stockinglej', 'eq', 'YES'));
      break;
    
    case 'blue':
      storeloc_search.filters.push(new MMSearchFilter('stockingblue', 'eq', 'YES'));
      break;
    
    case 'lvc':
      storeloc_search.filters.push(new MMSearchFilter('stockinglvc', 'eq', 'YES'));
      break;
  }

  // Start Search
  storeloc_searcher.search(storeloc_search);
}

/**
 * Start search by position
 * The search is ever initialised by searchByQS function.
 * This function is always call after a searchByQS (first, user do a searchByQs then, a "did u mean" message allow a searchByCoords)
 *
 * @param lat  float represent latitude
 * @param lon  float represent longitude
 * @return void
 */
function storeloc_SearchByCoords(lat, lon)
{ 
  // Set loading status
  storeloc_Loading(true);
  
  // Init Coords
  delete storeloc_search.address;
  delete storeloc_search.point;
  storeloc_search.point    = new MMLocation(new MMLatLon(lat, lon));
  storeloc_search.address  = undefined;

  // Start Search
  storeloc_searcher.search(storeloc_search);
}

/**
 * If no result found, 
 * this function remove the distance constraint to show 3 results
 *
 * @return void
 */
function storeloc_ExtraSearch()
{
  // Set loading status
  storeloc_Loading(true);
  
  storeloc_search.max_distance     = undefined;
  storeloc_search.count            = 3;
  storeloc_search.order_by_fields  = ['flagshipstores','premiumstores','levistoreownedoperated','levistorefranchisee','factoryoutlets','factoryoutletsfranchisee','shopinshops','shopinshops'];
	storeloc_search.order_by_order  = 'asc';
  
  // Start Search
  storeloc_searcher.search(storeloc_search);
}

/**
 * Sort the results
 *
 * @param order order type
 * @return void
 */
function storeloc_SortBy(order)
{
  if( !order )
		return;

  // Set loading status
  storeloc_Loading(true);
  if( order == 1 ){
//    storeloc_search.order_by_fields = 'flagshipstores';
    storeloc_search.order_by_fields = ['flagshipstores','premiumstores','levistoreownedoperated','levistorefranchisee','factoryoutlets','factoryoutletsfranchisee','shopinshops','shopinshops'];
	storeloc_search.order_by_order  = 'asc';
 }

  else if( order == 2 ){
storeloc_search.route_modes = 'walking,driving';
	storeloc_search.radius_units = 'km';
    storeloc_search.order_by_fields = 'distance';
    storeloc_search.order_by_order = 'desc';
 }
  // Start Search
  storeloc_searcher.search(storeloc_search);
}

/**
 * Search is finished
 * Function is call automatically by the searcher when a search is finished
 * All results are stored in "storeloc_results"
 * The flag "storeloc_searcher.error_code" is set to defined if success or error occured : 
 *    - MM_GEOCODE_NO_MATCHES         : Address does not exists
 *    - MM_GEOCODE_MULTIPLE_MATCHES   : Many address possibles
 *
 * This function parse the results and display stores in map and in panel "storeloc-results"
 *
 * @return void
 */
function storeloc_OnEndSearch()
{
  // Set loading status
  storeloc_Loading(false);
  
  // Error occured
  if( storeloc_searcher.error_code )
  {
    var list = new Element('ul');
    
    switch( storeloc_searcher.error_code )
    {
	// No address not exists
      case 'MM_GEOCODE_NO_MATCHES':
        list.addClass('no-results');
        list.adopt(new Element('li', {'html':LABEL_NO_RESULTS_FOUND, 'class':'title'}));
        list.adopt(new Element('li', {'html':LABEL_WE_COULD_NOT_LOCATE+' :'}));
        list.adopt(new Element('li', {'html':$('storeloc-search').get('value'), 'class':'address'}));
        list.adopt(new Element('li', {'html':LABEL_SUGGESTIONS+' :', 'class':'suggest'}));
        list.adopt(new Element('li', {'html':LABEL_CHECK_SPELLING, 'class':'item'}));
        list.adopt(new Element('li', {'html':LABEL_MAKE_SURE_U_ADDRESS, 'class':'item'}));
        list.adopt(new Element('li', {'html':LABEL_ADD_POST_CODE, 'class':'item'}));
        break;
        
      // Parse suggestions address
      case 'MM_GEOCODE_MULTIPLE_MATCHES':
        list.addClass('did-u-mean');
        list.adopt(new Element('li', {'html':LABEL_DID_U_MEAN, 'class':'title'}));
        storeloc_searcher.result_set.each(function(item, index)
        {
					if( index < 5 )
					{
						var li      = new Element('li', {'html': item.address});
						li.address  = item.address;
						li.lat      = item.coords.lat;
						li.lon      = item.coords.lon;
						li.addEvent('click', function()
						{
							storeloc_SearchByCoords(this.lat,this.lon);
							$('storeloc-search').set('value', this.address);
						});
          
						list.adopt(li);
					}
					return;
        });
        break;
      
      // Unknow error
      default:
		var list = new Element('ul');
		list.addClass('no-results');
        list.adopt(new Element('li', {'html':LABEL_NO_RESULTS_FOUND, 'class':'title'}));
		list.adopt(new Element('li', {'html':LABEL_WE_COULD_NOT_LOCATE+' :'}));
        list.adopt(new Element('li', {'html':$('storeloc-search').get('value'), 'class':'address'}));
        list.adopt(new Element('li', {'html':LABEL_SUGGESTIONS+' :', 'class':'suggest'}));
        list.adopt(new Element('li', {'html':LABEL_CHECK_SPELLING, 'class':'item'}));
        list.adopt(new Element('li', {'html':LABEL_MAKE_SURE_U_ADDRESS, 'class':'item'}));
        list.adopt(new Element('li', {'html':LABEL_ADD_POST_CODE, 'class':'item'}));
        break;
    }
    
    $('storeloc-results').adopt(list);
    return;
  }

  var i=0;
  var result_array = new Array();
  
  while(i< storeloc_searcher.record_sets.length){
	if(storeloc_searcher.record_sets[i].records){
		result_array.push(storeloc_searcher.record_sets[i]);
	}
	i++;
 }
  if ( !result_array.length )
  {
    // Check if last search is not a extra search
    if( storeloc_search.max_distance )
    {
      // Start a extra search
      storeloc_ExtraSearch();
    }
    else
    {
//      $('storeloc-results').adopt(new Element('div', {'html': LABEL_INTERNAL_ERROR}));
		var list = new Element('ul');
		list.addClass('no-results');
		list.adopt(new Element('li', {'html':LABEL_NO_RESULTS_FOUND, 'class':'title'}));
		list.adopt(new Element('li', {'html':LABEL_WE_COULD_NOT_LOCATE+' :'}));
		list.adopt(new Element('li', {'html':$('storeloc-search').get('value'), 'class':'address'}));
		list.adopt(new Element('li', {'html':LABEL_SUGGESTIONS+' :', 'class':'suggest'}));
		list.adopt(new Element('li', {'html':LABEL_CHECK_SPELLING, 'class':'item'}));
		list.adopt(new Element('li', {'html':LABEL_MAKE_SURE_U_ADDRESS, 'class':'item'}));
		list.adopt(new Element('li', {'html':LABEL_ADD_POST_CODE, 'class':'item'}));    
		$('storeloc-results').adopt(list);
	}
    return;
  }
  
  // Stores founds
  
	// Re-Init all values
	storeloc_CleanMap();
	result_array.each(function(item,index){
		item.records.each(function(it,idx){
			storeloc_results.push(it);
		});
	});
  storeloc_results.reverse();
if(storeloc_search.order_by_fields == 'distance') storeloc_results.sort(sortByDistance);

  // Add Sort by Panel
  var box_sortby    = new Element('div', {'class': 'storeloc-results-orderby-box'});
  var select_sortby = new Element('select', {'name':'order-by', 'id':'order-by'});
  select_sortby.adopt(new Element('option', {'value':0, 'html': LABEL_SORT_BY}));
  select_sortby.adopt(new Element('option', {'value':1, 'html': LABEL_RECOMMENDED_STORES}));
  select_sortby.adopt(new Element('option', {'value':2, 'html': LABEL_NEAREST}));
  select_sortby.addEvent('change', function(){ storeloc_SortBy(this.get('value')) });
  box_sortby.adopt(select_sortby);
  var top = new Element('div',  {'id': 'storeloc-results-top'});
  top.adopt(new Element('div', {'class': 'storeloc-results-title', 'html': LABEL_RESULTS}));
  top.adopt(box_sortby);
 
  $('storeloc-results').adopt(top);
  
  var list = new Element('div', {'class': 'storeloc-results-items', 'id': 'page_1'});
  
  // parse results
  storeloc_results.each(function(item, index)
  {
		if( index && !(index%storeloc_count_page) )
		{
			$('storeloc-results').adopt(list);
			list = new Element('div', {'class': 'storeloc-results-items', 'id': 'page_'+(Math.ceil(index/storeloc_count_page)+1)});
			list.setStyle('display', 'none');
		}
		
    list.adopt(storeloc_AddRecord(item, index));
  });
  
  // Add lists results items
  $('storeloc-results').adopt(list);
  
  // Custom select box
  dhtmlselect('order-by', 'SelectType4', '5000', LABEL_SORT_BY);
  
  // Add pagination
	if( storeloc_results.length > storeloc_count_page )
	{
		var num_pages = Math.ceil(storeloc_results.length/storeloc_count_page);
		var pages = new Element('div', {'id': 'storeloc-results-pages'});
		
		// Previous page
    pages.adopt(new Element('a', {
			'html'	: '<img src="/common/images/store-locator/arrow-left-disabled.gif">', 
			'events': {'click': function(){storeloc_DisplayPage((storeloc_current_page.idx-1))}}
		}));
		
		// First page
		storeloc_current_page 		= new Element('a', {'class': 'selected', 'html':'1'});
		storeloc_current_page.idx = 1;
		storeloc_current_page.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
		
		pages.adopt(storeloc_current_page);
		
		for(var i=2; i <= num_pages; i++)
		{
			var link = new Element('a', {'html':i});
			link.idx = i;
			link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
			pages.adopt(link);
      
      if( i >= 5 )
      {
        var link = new Element('a', {'html':'...'});
        pages.adopt(link);
        
        var link = new Element('a', {'html':num_pages});
        link.idx = num_pages;
        link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
        pages.adopt(link);
        
        break;
      }
		}
		
		// Next page
    pages.adopt(new Element('a', {
			'html'	: '<img src="/common/images/store-locator/arrow-right.gif">', 
			'events': {'click': function(){storeloc_DisplayPage((storeloc_current_page.idx+1))}}
		}));
		
		$('storeloc-results').adopt(pages);
	}
  
  // Scale map to markers
  storeloc_mapviewer.goToPosition(storeloc_mapviewer.getAutoScaleLocation(storeloc_autoscale_markers));
}

function sortByDistance(a,b)
{
return a.distance.km - b.distance.km;
}
/**
 * Add record on map and create "<li>" node element
 * 
 * @param record  Item of searcher's results set 
 * @param index   Number of record (Start from 0)
 * @return nodeElement return an "<li>" node element
 */
function storeloc_AddRecord(record, index)
{
  // Contact content
  var contact_content  = '<div class="storeloc-infobox">';
  
  if( record.storepicture1.length > 4 )
    contact_content   += '<img src="'+record.storepicture1+'" class="preview" alt="preview">';
  if( record.storepicture2.length > 4 )
    contact_content   += '<img src="'+record.storepicture2+'" class="preview" style="clear:right;margin-right:11px;margin-top:5px;" alt="preview">';
    
  contact_content     += '<ul class="storeloc-infobox-contact">';
  contact_content     += '<li class="name">'+record.name.toUpperCase()+'</li>';
  contact_content     += '<li class="street">'+record.street+'</li>';
  contact_content     += '<li class="street">'+record.pc+' '+record.town+'</li>';
  contact_content     += (record.phone)?'<li class="phone">'+LABEL_TEL+': '+record.phone+'</li>':'';
  contact_content     += (record.fax)?'<li class="fax">'+LABEL_FAX+': '+record.fax+'</li>':'';
  contact_content     += '<li class="url">'+record.url+'</li>';
  contact_content     += '<li class="email">'+record.email+'</li>';
  contact_content     += '</ul>';
  contact_content     += '<div style="clear:both;"></div>';
  contact_content     += '<img src="/common/images/store-locator/infobox-print.gif" class="print" alt="print" onClick="storeloc_OnPrintMarker('+index+')" />';
  contact_content     += '</div>';
  
  // Opening Hours
  var opening_days  = '';
  var opening_hours = '';
  
  var now = new Date();
  
  if( record.monday && record.monday.length ) 
  {
    opening_days  += '<li'+( now.getDay() == 1 ? ' class="today"' : '')+'>'+LABEL_MONDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 1 ? ' class="today"' : '')+'>'+record.monday+'</li>';
  }
  if( record.tuesday && record.tuesday.length )
  {
    opening_days  += '<li'+( now.getDay() == 2 ? ' class="today"' : '')+'>'+LABEL_TUESDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 2 ? ' class="today"' : '')+'>'+record.tuesday+'</li>';
  }
  if( record.wednesday && record.wednesday.length )
  {
    opening_days  += '<li'+( now.getDay() == 3 ? ' class="today"' : '')+'>'+LABEL_WEDNESDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 3 ? ' class="today"' : '')+'>'+record.wednesday+'</li>';
  }
  if( record.thursday && record.thursday.length )
  {
    opening_days  += '<li'+( now.getDay() == 4 ? ' class="today"' : '')+'>'+LABEL_THURSDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 4 ? ' class="today"' : '')+'>'+record.thursday+'</li>';
  }
  if( record.friday && record.friday.length )
  {
    opening_days  += '<li'+( now.getDay() == 5 ? ' class="today"' : '')+'>'+LABEL_FRIDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 5 ? ' class="today"' : '')+'>'+record.friday+'</li>';
  }
  if( record.saturday && record.saturday.length )
  {
    opening_days  += '<li'+( now.getDay() == 6 ? ' class="today"' : '')+'>'+LABEL_SATURDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 6 ? ' class="today"' : '')+'>'+record.saturday+'</li>';
  }
  if( record.sunday && record.sunday.length )
  {
    opening_days  += '<li'+( now.getDay() == 0 ? ' class="today"' : '')+'>'+LABEL_SUNDAY+'</li>';
    opening_hours += '<li'+( now.getDay() == 0 ? ' class="today"' : '')+'>'+record.sunday+'</li>';
  }

  // Collections
  var collections_content = '';
  if( record.stockingredtab.toLowerCase() == 'yes' )  collections_content += '<li class="redtab"><span>LEVI\'S<sup>&reg;</sup> RED TAB JEANS<sup>&reg;</sup></span></li>';
  if( record.stockinglej.toLowerCase() == 'yes'    )  collections_content += '<li class="ej"><span>LEVI\'S<sup>&reg;</sup> ENGINEERED JEANS<sup>&reg;</sup></span></li>';
  if( record.stockingblue.toLowerCase() == 'yes'   )  collections_content += '<li class="blue"><span>LEVI\'S<sup>&reg;</sup> BLUE </span></li>';
  if( record.stockinglvc.toLowerCase() == 'yes'    )  collections_content += '<li class="vlc"><span>LEVI\'S<sup>&reg;</sup> VINTAGE CLOTHING</span></li>';
           
  // Infox Box Tabs           
  var tabs = new Array();
  
  // Tab Contact
  tabs.push(new MMInfoBoxTab(LABEL_CONTACT, contact_content));
  
  // Tab Opening Hours
  if( opening_days.length )
    tabs.push(new MMInfoBoxTab(LABEL_OPENGING_HOURS, '<div class="storeloc-infobox"><p class="opening-name">'+record.name.toUpperCase()+'</p><ul class="storeloc-infobox-opening-days">'+opening_days+'</ul><ul class="storeloc-infobox-opening-hours">'+opening_hours+'</ul><img src="/common/images/store-locator/infobox-print.gif" class="print" alt="print" onClick="storeloc_OnPrintMarker('+index+')" /></div>'));
    
  // Tab Collections Hours
  if( collections_content.length )
    tabs.push(new MMInfoBoxTab(LABEL_COLLECTIONS, '<div class="storeloc-infobox"><p class="collections-name">'+record.name.toUpperCase()+'</p><p class="available">'+LABEL_COLLECTIONS_AVAILABLE+'</p><ul class="storeloc-infobox-collections">'+collections_content+'</ul><img src="/common/images/store-locator/infobox-print.gif" class="print" alt="print" onClick="storeloc_OnPrintMarker('+index+')" /></div>'));
  
  // Create marker
  var marker = storeloc_mapviewer.createMarker(record.point, {'label' : record.name, 'text': (index+1), 'icon' : storeloc_marker_icon});
  marker.setInfoBoxContent(tabs);
  storeloc_markers.push(marker);
  
  // Push MAX_COUNT markers or NEARLESS than NEIGHBOR_KM distance
  if( index < storeloc_count_page || record.distance.km < storeloc_neighbor )
  {
    // Add to autoscale markers group
    storeloc_autoscale_markers.push(marker);
	}
	
	// Return item
	var displayed_name = (record.name.length < 30)?record.name:record.name.substring(0,30)+'...';
	var item = new Element('ul', {'class': 'storeloc-results','title': record.name});
	item.adopt(new Element('li', {'html': (index+1)+'.&nbsp;&nbsp;'+displayed_name,'class': 'name'}));
	
	if( record.street.length > 30 )
		item.adopt(new Element('li', {'html': record.street.substring(0, 30)+' ...', 'class': 'address', 'title': record.street}));
	else
		item.adopt(new Element('li', {'html': record.street, 'class': 'address'}));
	
	item.adopt(new Element('li', {'html': record.pc+' '+record.town, 'class': 'address'}));
	
	item.addEvent('click',      function(){storeloc_ToggleMarker(marker)});
	item.addEvent('mouseover',  function(){this.addClass('over')});
	item.addEvent('mouseleave', function(){this.removeClass('over')});
	
	return item;
}

/**
 * Display page results
 *
 * @param 	page page number to be display
 * @return 	void
 */
function storeloc_DisplayPage(page)
{
	if( storeloc_current_page.idx != page && page > 0 && page <= Math.ceil(storeloc_results.length/storeloc_count_page) )
	{
    // Check if pagination will be regenerate
		if( Math.ceil(storeloc_results.length/storeloc_count_page) >= 7 && 
        ( 
          ( page > storeloc_current_page.idx && !$('storeloc-results-pages').getElement('a:contains("'+(page+1)+'")') ) ||
          ( page < storeloc_current_page.idx && !$('storeloc-results-pages').getElement('a:contains("'+(page-1)+'")') ) 
        )
      )
		{
      if( page >= 5 )
      {
        // Remove all previous pages
        var pages = $('storeloc-results-pages');
        pages.empty();
        
        // Previous page
        pages.adopt(new Element('a', {
          'html'	: '<img src="/common/images/store-locator/arrow-left.gif">', 
          'events': {'click': function(){storeloc_DisplayPage((storeloc_current_page.idx-1))}}
        }));
        
        // First page
        var link = new Element('a', {'html':'1'});
        link.idx = 1;
        link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
        pages.adopt(link);
        
        // Add "..."
        var link = new Element('a', {'html':'...'});
        pages.adopt(link);
        
        for(var i=(page-2); i <= (page+2) && i < Math.ceil(storeloc_results.length/storeloc_count_page); i++)
        {
          var link = new Element('a', {'html':i});
          link.idx = i;
          link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
          pages.adopt(link);
        }
        
        if( (page+3) < Math.ceil(storeloc_results.length/storeloc_count_page) )
        {
          // Add "..."
          var link = new Element('a', {'html':'...'});
          pages.adopt(link);
        }
        
        var link = new Element('a', {'html':Math.ceil(storeloc_results.length/storeloc_count_page)});
        link.idx = Math.ceil(storeloc_results.length/storeloc_count_page);
        link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
        pages.adopt(link);
        
        // Next page
        pages.adopt(new Element('a', {
          'html'	: '<img src="/common/images/store-locator/arrow-right.gif">', 
          'events': {'click': function(){storeloc_DisplayPage((storeloc_current_page.idx+1))}}
        }));
      }
      else
      {
        // Remove all previous pages
        var pages = $('storeloc-results-pages');
        pages.empty();
        
        // Previous page
        pages.adopt(new Element('a', {
          'html'	: '<img src="/common/images/store-locator/arrow-left.gif">', 
          'events': {'click': function(){storeloc_DisplayPage((storeloc_current_page.idx-1))}}
        }));
        
        for(var i=1; i <= 5; i++)
        {
          var link = new Element('a', {'html':i});
          link.idx = i;
          link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
          pages.adopt(link);
        }
        
        // Add "..."
        var link = new Element('a', {'html':'...'});
        pages.adopt(link);
        
        var link = new Element('a', {'html':Math.ceil(storeloc_results.length/storeloc_count_page)});
        link.idx = Math.ceil(storeloc_results.length/storeloc_count_page);
        link.addEvent('click', function(){ storeloc_DisplayPage(this.idx) });
        pages.adopt(link);
        
        // Next page
        pages.adopt(new Element('a', {
          'html'	: '<img src="/common/images/store-locator/arrow-right.gif">', 
          'events': {'click': function(){storeloc_DisplayPage((storeloc_current_page.idx+1))}}
        }));
      }
		}
    
    // 1st page
    if( page == 1 )
    {
      $('storeloc-results-pages').getFirst('a').getElement('img').set('src', '/common/images/store-locator/arrow-left-disabled.gif');
      $('storeloc-results-pages').getLast('a').getElement('img').set('src', '/common/images/store-locator/arrow-right.gif');
    }
    // Last page
    else if( page == Math.ceil(storeloc_results.length/storeloc_count_page) )
    {
      $('storeloc-results-pages').getFirst('a').getElement('img').set('src', '/common/images/store-locator/arrow-left.gif');
      $('storeloc-results-pages').getLast('a').getElement('img').set('src', '/common/images/store-locator/arrow-right-disabled.gif');
    }
    
		storeloc_current_page.removeClass('selected');
		$('page_'+storeloc_current_page.idx).setStyle('display', 'none');
		
		storeloc_current_page = $('storeloc-results-pages').getElement('a:contains("'+page+'")');
		storeloc_current_page.addClass('selected');
		$('page_'+page).setStyle('display', 'block');
		
		// Scale map to markers
		storeloc_mapviewer.goToPosition(storeloc_mapviewer.getAutoScaleLocation(storeloc_markers.slice((page-1)*storeloc_count_page, page*storeloc_count_page)));
		
	}
}

/**
 * Toggle the marker on map. (Open it if closed or close it)
 *
 * @param   marker multimap marker
 * @return  void
 */
function storeloc_ToggleMarker(marker)
{
  if( marker.infoBoxOpened() ) 
    target.closeInfoBox();
   
  else {
	storeloc_mapviewer.goToPosition( marker.getPosition() );
    marker.openInfoBox( );
  }
}

/**
 * Loading Status
 *
 * @return void
 */
function storeloc_Loading(status)
{
  if( storeloc_is_loading != status )
  {
    storeloc_is_loading = status;
    
    if( storeloc_is_loading )
    {
      storeloc_OpenPanel();
			
			$('storeloc-results').empty();
			storeloc_loading_on_morph.start({'opacity':'1'});
			
      //$('storeloc-loading').setStyle('display', 'block');
    }
    else
    {
      $('storeloc-results').setStyle('opacity', '0');
			storeloc_loading_off_morph.start({'opacity':'0'});
			
      //$('storeloc-loading').setStyle('display', 'none');
    }
  }
}

/**
 * Open the left panel
 *
 * @return void
 */
function storeloc_OpenPanel()
{
  if( !storeloc_panel_is_open )
  {
    storeloc_panel_is_open = true;
    
    if( $('collapse-expand').getStyle('display') == 'none' ) 
      $('collapse-expand').setStyle('display', 'block');
    
    storeloc_panel_morph.start({'width': '320px'});
    storeloc_map_morph.start({'width': '554px'});
    $('collapse-expand').setStyle('background-position', '0 0');
		
	if(IE6)
		(function(){$('storeloc-results').setStyle('display','block')}).delay(1000);
	else		
			(function(){ storeloc_results_morph.start({'opacity':'1'});}).delay(1000);
	  }
	storeloc_mapviewer.resize(new MMPoint( 0, 0 ));
}

/**
 * Close the left panel
 *
 * @return void
 */
function storeloc_ClosePanel()
{
  if( storeloc_panel_is_open )
  {
    storeloc_panel_is_open = false;
    
	if(IE6)
		$('storeloc-results').setStyle('display','none');
	else		
		storeloc_results_morph.start({'opacity':'0'});
		(function(){ storeloc_panel_morph.start({'width': '28px'}) }).delay(500);
	if(IE6)
	    (function(){ storeloc_map_morph.start({'width': '847x'}) }).delay(500);
	else		
	    (function(){ storeloc_map_morph.start({'width': '847x'}) }).delay(500);
	    $('collapse-expand').setStyle('background-position', '-22px 0');
	  }
	storeloc_mapviewer.resize(new MMPoint( 0, 0 ));
}

/**
 * Toggle the left panel
 *
 * @return void
 */
function storeloc_TogglePanel()
{
  if( !storeloc_panel_is_open ) 
		storeloc_OpenPanel();
	else
		storeloc_ClosePanel();
}

// MultiMap handler
MMAttachEvent(window, 'load', storeloc_InitMap);

function getUrlParam( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function openAndSelect(type,value){
//	$('storeloc-menu').setStyle('width','325px');
	$('storeloc-advanced-search').getElement('a').fireEvent('click');
	$$('.Item').setStyle('display','block');
	myDirtySetSelect('storeloc-'+type+'-filter','SelectType3','5200',value);
}
function myDirtySetSelectBack(selectid, selectClassName, combozindex, optionid) {
    var selectbox = document.getElementById(selectid);
    var combobox = document.getElementById('dhtml_'+selectid);
    var combotext = "";

    combobox.getElementsByTagName("ul")[0].style.display = "none";
    combobox.style.overflow="visible";

    for (var i=0; i<selectbox.options.length; i++) {
        if (selectbox.options[i].value == optionid) {
            selectbox.value = optionid;
            combotext = selectbox.options[i].text
        }
    }

    dhtmlselect(selectid,selectClassName,combozindex,combotext);
//combobox.set("class","selectType3selected");
if(IE6)combobox.addClass("selectType3selected");
//combobox.setStyle('opacity',0.6);
    if (selectbox.onchange){
        selectbox.onchange();
        document.forms[0].submit();
    }
}

/**
 * Mootools ready function
 * Function call when page is loaded
 * Set/Init all actions of nodes elements by javascript
 */
window.addEvent('domready', function()
{


  // Init input search compare value
  storeloc_search_compare = $('storeloc-search').get('value');
	
	// Init select box
  $('storeloc-products-filter').value 		= '';
  $('storeloc-collections-filter').value 	= '';
  
  // Init loading gif
  $('storeloc-loading').setStyle('display', 'block');

   $('storeloc-print-on').addEvents({
		mouseover: function(){
			(function(){this.getElements('.storeloc-print-on-img').setStyle('margin-top','-45px');}.bind(this)).delay(10);
		},
		mouseout: function(){
			this.getElements('.storeloc-print-on-img').setStyle('margin-top','0');
		}
   });

	[$('storeloc-products-filter'),$('storeloc-collections-filter')].each(function(item,index){
		item.addEvent('change',function(){
			if(item.id=="storeloc-products-filter"){
				if(IE6)$('dhtml_storeloc-products-filter').set('class','SelectType3');
				else{
					$('dhtml_storeloc-products-filter').setStyle('color','#FFFFFF');
					$('dhtml_storeloc-collections-filter').setStyle('color','#666666');
				}
				myDirtySetSelectBack('storeloc-collections-filter','SelectType3selected','5200',"");
			}
			if(item.id=="storeloc-collections-filter"){
				if(IE6)$('dhtml_storeloc-collections-filter').set('class','SelectType3');
				else{
					$('dhtml_storeloc-collections-filter').setStyle('color','#FFFFFF');
					$('dhtml_storeloc-products-filter').setStyle('color','#666666');
				}
				myDirtySetSelectBack('storeloc-products-filter','SelectType3selected','5200',"");
			}
		});
	});

  //  Search on click event and key pressed
  $('storeloc-search-link').addEvent('click', function(e){ storeloc_SearchByQS(translateQS($('storeloc-search').get('value'))) });
  $('storeloc-search').addEvents(
  {
    'keydown': function(e)
    {
      if( e.key == 'enter' )
        storeloc_SearchByQS(translateQS($('storeloc-search').get('value'))) 
    },
    'click': function()
    {
      if( $('storeloc-search').get('value') == storeloc_search_compare )
      {
        $('storeloc-search').set('value', '');
        $('storeloc-search').setStyle('color', 'black');
      }
    },
    'blur': function()
    {
      if( !$('storeloc-search').get('value').length )
      {
        $('storeloc-search').set('value', storeloc_search_compare);
        $('storeloc-search').setStyle('color', '#999');
      }
    }
  });
  
	// Toggle panel on expand/collapse
	$('collapse-expand').addEvent('click', function()
	{
		storeloc_TogglePanel();
	});
	
  // On print
  $('storeloc-print-on').addEvent('click', function()
	{ 
		storeloc_OnPrint();
	});  
	
	// Toggle advanced search panel
	storeloc_advanced_is_open		= false;
  storeloc_menu_morph 				= new Fx.Morph($('storeloc-menu'), {'duration': 1000, 'transition': Fx.Transitions.Sine.easeOut});
  
	$('storeloc-advanced-search').getElement('a').addEvent('click', function(e)
  {
    if( storeloc_advanced_is_open )
    {
      storeloc_advanced_is_open = false;
      storeloc_menu_morph.start({'width': 0});
			$$('.Item').each(function(item){item.setStyle('display', 'none');$('storeloc-main').setStyle('display', 'none');});
      $('storeloc-advanced-search-img').getElement('img').set('src', '/common/images/store-locator/search-right.gif');
    }
    else
    {
      storeloc_advanced_is_open = true;
      storeloc_menu_morph.start({'width': '325px'});
			$$('.Item').each(function(item){(function(){item.setStyle('display', 'block');$('storeloc-main').setStyle('display', 'block');}).delay(1000);});
      $('storeloc-advanced-search-img').getElement('img').set('src', '/common/images/store-locator/search-left.gif');
    }
  });
  
  // Init Morph transformation
  $('storeloc-loading').setStyle('opacity', '0');
  storeloc_loading_on_morph = new Fx.Morph($('storeloc-loading'), 
  {
    'duration': 500, 
    'transition': Fx.Transitions.Sine.easeOut,
    'onStart': function(){ $('storeloc-loading').setStyle('display', 'block') }
  });
  
  storeloc_loading_off_morph = new Fx.Morph($('storeloc-loading'), 
  {
    'duration': 500, 
    'transition': Fx.Transitions.Sine.easeOut,
    'onComplete': function(){ $('storeloc-loading').setStyle('display', 'none'); storeloc_results_morph.start({'opacity':'1'});  }
  });

  storeloc_panel_morph = new Fx.Morph($('storeloc-results-container'), 
  {
    'duration': 1000, 
    'transition': Fx.Transitions.Sine.easeOut
  });

	storeloc_map_morph = new Fx.Morph($('storeloc-map'), 
  {
    'duration': 1000, 
    'transition': Fx.Transitions.Sine.easeOut
  });

	storeloc_results_morph = new Fx.Morph($('storeloc-results'), 
  {
    'duration': 500, 
    'transition': Fx.Transitions.Sine.easeOut
  });

	if(collection = getUrlParam('collection')){
		
		openAndSelect('collections',collection);
	}
	else if (product = getUrlParam('product')){
		openAndSelect('products',product);
	}
});

/**
 * Print Marker
 */
function storeloc_OnPrintMarker(index)
{
  var record = storeloc_results[index];
  
  // Create a empty popup window
  var w = window.open("",storeloc_popup_id++, 'height=600, width=800, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=yes');
  
  
  w.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\
                    <html xmlns="http://www.w3.org/1999/xhtml">\
                    <head>\
                    <title>Levi\'s</title>\
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\
                    <link type="text/css" rel="stylesheet" href="/common/css/store-locator/print.css" />\
                    </head>\
                    <body>\
                    <div id="main">\
                    <div id="header">\
                      <img src="/common/images/store-locator/print-header-logo.jpg" border="0" width="554" height="22" alt="Levi\'s" />\
                      <div id="print"><a href="javascript:window.print()" class="link">Print this page</a></div>\
                    </div>\
                    <div id="content">\
                    <div id="top">\
                    <div id="left-block">\
                      <div class="text-block">\
                      <span class="title1">'+record.name.toUpperCase()+'</span>\
                    </div>\
                    <img src="http://preview.multimap.com/API/map/1.2/levi_api12?lat='+record.point.lat+'&lon='+record.point.lon+'&label='+index+'&width=384&height=202&zoomFactor=17" border="0" width="384" height="202" alt="" class="photo" />\
                    </div>\
                    <div id="right-block">\
                    <form action="" method="post">\
                      <div class="text-block"><label for="notes" class="title2">YOUR NOTES</label></div>\
                      <div class="textarea-block"><textarea name="notes" id="notes"></textarea><script type="text/javascript">document.forms[0].notes.focus(); </script></div>\
                    </form>\
                    </div>\
                    </div>\
                    <div id="central-block">\
                    <img src="/common/images/store-locator/print-line.gif" border="0" width="554" height="20" alt="" />\
                    <div class="title3">'+record.name+'</div>\
                    <div class="text">\
                    '+record.street+'<br />\
                    '+record.pc+' '+record.town+'<br />\
                    <br />');
		if( record.phone )
                    w.document.write('<div class="column1">Phone:</div><div class="column2"> '+record.phone+'</div>');
		if( record.fax )
                    w.document.write('<div class="column1">Fax:</div><div class="column2"> '+record.fax+'</div>');

	if( record.monday || record.tuesday || record.wednesday || record.thursday || record.friday || record.saturday || record.sunday )
                    w.document.write('</div>\
                    <img src="/common/images/store-locator/print-line.gif" border="0" width="554" height="20" alt="" />\
                    <div class="title3">OPENING HOURS</div>\
                    <div class="text">');
                    
  // Opening Hours
  if( record.monday && record.monday.length )         w.document.write('<div class="column1">Monday:</div><div class="column2"> '+record.monday+'</div>');
  if( record.tuesday && record.tuesday.length )       w.document.write('<div class="column1">Tuesday:</div><div class="column2"> '+record.tuesday+'</div>');
  if( record.wednesday && record.wednesday.length )   w.document.write('<div class="column1">Wednesday:</div><div class="column2"> '+record.wednesday+'</div>');
  if( record.thursday && record.thursday.length )     w.document.write('<div class="column1">Thursday:</div><div class="column2"> '+record.thursday+'</div>');
  if( record.friday && record.friday.length )         w.document.write('<div class="column1">Friday:</div><div class="column2"> '+record.friday+'</div>');
  if( record.saturday && record.saturday.length )     w.document.write('<div class="column1">Saturday:</div><div class="column2"> '+record.saturday+'</div>');
  if( record.sunday && record.sunday.length )         w.document.write('<div class="column1">Sunday:</div><div class="column2"> '+record.sunday+'</div>');
                
  w.document.write('</div>');
                
  // Collections
  var collections_content = '';
  if( record.stockingredtab.toLowerCase() == 'yes' )          collections_content += '<li><img src="/common/images/store-locator/print-levis-logo1.gif" border="0" width="34" height="28" alt="" class="logo" /><div class="text">LEVI\'S<sup>&reg;</sup> RED TAB<sup>&reg;</sup> JEANS</div></li>';
  if( record.stockinglej.toLowerCase() == 'yes' )             collections_content += '<li><img src="/common/images/store-locator/print-levis-logo2.gif" border="0" width="34" height="28" alt="" class="logo" /><div class="text">LEVI\'S<sup>&reg;</sup> ENGINEERED JEANS<sup>&reg;</sup></div></li>';
  if( record.stockingblue.toLowerCase() == 'yes' )            collections_content += '<li><img src="/common/images/store-locator/print-levis-logo3.gif" border="0" width="34" height="28" alt="" class="logo" /><div class="text">LEVI\'S<sup>&reg;</sup> BLUE</div></li>';
  if( record.stockinglvc.toLowerCase() == 'yes' )             collections_content += '<li><img src="/common/images/store-locator/print-levis-logo4.gif" border="0" width="34" height="28" alt="" class="logo" /><div class="text">LEVI\'S<sup>&reg;</sup> VINTAGE CLOTHING</div></li>';
  
  if( collections_content.length )
  {
    w.document.write('<img src="/common/images/store-locator/print-line.gif" border="0" width="554" height="20" alt="" />\
                      <div class="title3">COLLECTIONS</div>\
                      <div class="text">Collections sold in this shop:</div>\
                      <ul class="collections">\
                      '+collections_content+'</ul>');
  }

  w.document.write('<div class="spacer"></div>\
                    </div>\
                  </div>\
                  </div>\
                  </body>\
                  </html>');
                  
  w.document.close();                    

}

/**
 * print page results
 */
function storeloc_OnPrint()
{
  if( !storeloc_results )
  {
    // no results
    return;
  }
  
  if( storeloc_results.length == 1 )
  {
    storeloc_OnPrintMarker(0);
    return;
  }
  
  // Create a empty popup window
  var w = window.open("",storeloc_popup_id++, 'height=600, width=800, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=yes');
  
  // Show static map with all markers
  if( storeloc_results.length > 5 )
  {
    var records = storeloc_results.slice((storeloc_current_page.idx-1)*storeloc_count_page, storeloc_current_page.idx*storeloc_count_page);
    var offset = (storeloc_current_page.idx-1)*storeloc_count_page;
  }
  else
  {
    var records = storeloc_results;
    var offset = 0;
  }
  var mm_params = new Object();
  mm_params.all = '';
  mm_params.markers = new Array();
  
  
  for(var i=0; i < records.length; i++)
  {
    var index = i + 1;
    
    mm_params.all += 'lat_'+index+'='+records[i].point.lat+'&lon_'+index+'='+records[i].point.lon+'&label_'+index+'='+(index+offset)+'&';
    mm_params.markers.push('lat='+records[i].point.lat+'&lon='+records[i].point.lon+'&label='+index);
  }
  
  w.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\
                    <html xmlns="http://www.w3.org/1999/xhtml">\
                    <head>\
                    <title>Levi\'s</title>\
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\
                    <link type="text/css" rel="stylesheet" href="/common/css/store-locator/print.css" />\
                    </head>\
                    <body>\
                    <div id="main">\
                      <div id="header">\
                        <img src="/common/images/store-locator/print-header-logo.jpg" border="0" width="554" height="22" alt="Levi\'s" />\
                        <div id="print"><a href="javascript:window.print()" class="link">Print this page</a></div>\
                      </div>\
                      <div id="content">\
                        <div id="top">\
                          <div id="left-block">\
                            <!--<div class="text-block">\
                              <span class="title1">5 RESULTS<span class="title2"> FOR</span> LEVIS STORE<span class="title2"> AROUND</span> PARIS</span>\
                            </div>-->\
                            <img src="http://preview.multimap.com/API/map/1.2/levi_api12?'+mm_params.all+'width=384&height=218" border="0" width="384" height="218" alt="" class="photo" />\
                          </div>\
                          <div id="right-block">\
                            <form action="" method="post">\
                              <div class="text-block"><label for="notes" class="title2">YOUR NOTES</label></div>\
                              <div class="textarea-block"><textarea name="notes" id="notes"></textarea><script type="text/javascript">document.forms[0].notes.focus(); </script></div>\
                            </form>\
                          </div>\
                        </div>\
                        <div id="central-block">\
                        <ul>');
                        
                        
  for(var i=0; i < mm_params.markers.length; i++)
  {                     
    w.document.write('<li>\
                      <img src="/common/images/store-locator/print-line.gif" border="0" width="554" height="19" alt="" />\
                      <div class="number-bg">\
                      <img src="/common/images/store-locator/print-number-bg.jpg" border="0" width="10" height="96" alt="" />\
                      <span class="number">'+(i+1)+'</span>\
                      </div>\
                      <img src="http://preview.multimap.com/API/map/1.2/levi_api12?'+mm_params.markers[i]+'&width=94&height=94&zoomFactor=16" border="0" width="94" height="94" alt="" class="smallphoto" />\
                      <div class="title3">'+records[i].name+'</div>\
                      <div class="text">\
                      '+records[i].street+'<br />\
                      '+records[i].pc+' '+records[i].town+'<br />\
                      <br />\
                      '+records[i].distance.km+' kilom&egrave;tres\
                      </div>\
                      <div class="spacer"></div>\
                      </li>');
  }
      
  w.document.write('</ul></div></div></div></body></html>');
  
  w.document.close();
}
