﻿function initSmartFocal( infoclipperParams) {
	Event.observe(window, 'load', function( event) {
		var map = new SmartFocalMap( '71939c44-12cc-31ee-9c72-83fef46f31a6', 'smfmap', onMyMapEvents);
		map.url = "smartfocal.php"
		map.setSMFParameter( "subtype", "regular");
		map.setMyParameter( "url", "http://www.info-clipper.com/infomapper");
		map.setMyParameter( "smfurl", "http://beta.smartfocal.fr");
		map.setMyParameter( "depth", -1);
		map.setMyParameter( "with-br", "false");
		map.setMyParameter( "with-countries", "false");
		map.setMyParameter( "duns", infoclipperParams.get( "srcduns"));
		map.setMyParameter( "focusduns", infoclipperParams.get( "srcduns"));
		infoclipperParams.each(function(pair) {
			map.setMyParameter( pair.key, pair.value);
		});
		map.generate();
		
		Event.observe('smfbr', 'click', function( event) {
			if( map.getMyParameter( "with-br") == "true") {
				map.setMyParameter( "with-br", "false");
				$('smfbr').update("Afficher les établissements secondaires");
			} else {
				map.setMyParameter( "with-br", "true");
				$('smfbr').update("Masquer les établissements secondaires");
			}
			map.generate();
		});
		Event.observe('smftype', 'click', function( event) {
			if( map.getSMFParameter( "subtype") == "radial") {
				map.setSMFParameter( "subtype", "regular");
				$('smftype').update("Afficher la vue radiale");
			} else {
				map.setSMFParameter( "subtype", "radial");
				$('smftype').update("Afficher la vue hiérarchique");
			}
			map.generate();
		});
		Event.observe('smfcountries', 'click', function( event) {
			if( map.getMyParameter( "with-countries") == "true") {
				map.setMyParameter( "with-countries", "false");
				$('smfcountries').update("Répartir par pays");
			} else {
				map.setMyParameter( "with-countries", "true");
				$('smfcountries').update("Masquer la répartition par pays");
			}
			map.generate();
		});
		Event.observe('smfprint', 'click', function( event) {
			var parameters = new Hash();
			map.SMFparameters.each(function(pair) {
				parameters.set( pair.key, pair.value);
			});
			parameters.set( 'format', SmartFocal.Mime.PNG);
			var uri = Object.toQueryString({ uri: map.url + '/engine?' + Object.toQueryString( parameters) });
			window.open( "print.php?" + uri, "_blank");
		});
		Event.observe('smfhelp', 'click', function( event) {
			window.open( "help.html", "smfhelp", "height=500,width=600,scrollbars=yes,location=no,toolbar=no,titlebar=no,status=no").focus();
		});
		Event.observe('smfavert', 'click', function( event) {
			window.open( "avertissement.html", "smfavert", "height=500,width=600,scrollbars=yes,location=no,toolbar=no,titlebar=no,status=no").focus();
		});
	});
}

function niveauSuperieur( map, duns) {
	map.setMyParameter( "duns", duns);
	map.generate();
}

function showReference( map, duns) {
		node = map.map.objects.get( duns);
		if( node) {
			//node.flash();
			node.flag();
		}
}

function onMyMapEvents(map, node, event) {
switch( event.type) {
  case 'error':
  	break;
  case 'unsupported':
  	break;
  case 'post-generate':
		if( map.getMyParameter( "duns") == map.getMyParameter( "srcduns")) 
			$("smfcenter").hide();
		else 
			$("smfcenter").show();
			
		var node = map.map.objects.get( map.getMyParameter( "duns"));
		if( node) {
			var path = node.path.evalJSON();
			var ss;
			if( path.size() == 0) {
				$("smfpath").hide();
				ss = "<a title='Définir comme tête de carte' href=\"javascript:niveauSuperieur( $('" + map.mapDiv.id + "').smartFocal,'" + node.id + "')\">" + node.name + "</a>"
			}
			else { 
				$("smfpath").show();
				ss = "<a title='Définir comme tête de carte' href=\"javascript:niveauSuperieur( $('" + map.mapDiv.id + "').smartFocal,'" + path[0].id + "')\">" + path[0].name + "</a>"
			}
			$("smfworldheadcontent").update( ss);
			
			var ss = path.collect( function(s) {
  					return "<a title='Définir comme tête de carte' href=\"javascript:niveauSuperieur( $('" + map.mapDiv.id + "').smartFocal,'" + s.id + "')\">" + s.name + "</a>";
			}).join(' <br> ');
			$("smfpathcontext").update( ss); 
			ss = "<a title='Définir comme tête de carte' href=\"javascript:niveauSuperieur( $('" + map.mapDiv.id + "').smartFocal,'" + node.id + "')\">" + node.name + "</a>"
			$("smfcentercontext").update( ss); 
			if( map.getMyParameter( "with-countries") == "true") {
				ss = map.map.objects.size() - node.links.size();
			}
			else
				ss = map.map.objects.size();
			$("smfinfo").update( 1 == ss ? "1 société" : ss + " sociétés");
		}
		node = map.map.objects.get( map.getMyParameter( "srcduns"));
		if( node) {
			var ss = "<a title='Définir comme tête de carte' href=\"javascript:niveauSuperieur( $('" + map.mapDiv.id + "').smartFocal,'" + node.id + "')\">" + node.name + "</a>"
			$("smfsearchedcontext").update( ss); 
		}
  	break;
  case 'click':
    if( node.country)
	    showPopupMenu(map, node, event);
		break;
  case 'mouseover':
		break;
  case 'mouseout':
		break;
  case 'tiptext':
		var tip = '<div id="smftipcontent" style="text-align:left"><span class="smftipname">' + node.name + '</span>';
		if( node.country) {
			tip += '<br>&nbsp;<span class="smftipcountry">' + node.countryName.substr(0, 30) + '&nbsp;<img src="images/flags/' + node.country + '.gif" width="16" height="11"></span>';
			/*if( node.type!="br" && (Number(node.ChildHQ) + Number(node.ChildSL) + Number(node.ChildBR) > 0)) {
				tip += '<br>&nbsp;<span class="smftiplocation">';
				var n = Number(node.ChildHQ) + Number(node.ChildSL);
				if( n > 0) { 
					tip += (1 == n) ? ' 1 siège social ' : n + ' sièges sociaux ';
				}
				var n2 = Number(node.ChildBR);
				if( n2 > 0) {
					if( n > 0) tip += ', '; 
					tip += (1 == n2) ? ' 1 établissement secondaire' : n2 + ' établissements secondaires';
				}
				tip += '</span>';
			}*/
		}
		tip + '</div>';
		return tip;
  }
}  
function showPopupMenu(map, node, event){
	var style = {padding:'2px',fontSize:'12px',cursor:'pointer',textAlign:'left'};
	var over = {background:'#5492FF',color:'#FFFFFF'};
	var out = {background:'#FFFFFF',color:'#5492FF'};
	switch( node.smftype) {
		case SmartFocalItem.Type.OBJECT:
			node.hideTip(map); 
			var popup = new SmartFocalPopupMenu(map, {border:'1px solid #5492FF',background:'#FFFFFF',color:'#5492FF',padding:'0px'});
   			popup.add( "Fiche identité", function(smfmap){ 
				if( map.getMyParameter( "user") == "anonymous") {
					alert("Ceci est la version de démonstration. Vous ne pouvez accéder à la fiche de la société.");
				}
				else {
	   				var page = "http://www.info-clipper.com/index2.php?country_code=" + node.country + "&my_search=&state_code=AL&my_adress=&my_postcode=&my_town=&my_duns=" + node.id + "&my_tel=&q=SearchItems";
	   				window.open( page, "_blank");
				}
   		}, style, over, out);
   		if( node.type!="br") {
	   		popup.add("Tête de carte", function(smfmap){ 
	   			smfmap.setMyParameter( "duns", node.id);
					smfmap.generate();
	   		}, style, over, out);
	   	}
			popup.setSize(100,0);
			popup.show(event);
		  break;
	}
}
