/* horizontal menu monitor */

function hLinkOn(text)
/* in-text simple links */
{ 
   if (text == "" ) text = this.label;
   document.write("<a href=\"" + this.url + "\" >" + text + "</a>");
};

function hNavigateOn(text,icon,name)
/* - text may be empty and defaults to the object's label
   - icon is one of: back, book, box, home, more, next, url, zoom
   - name shall be a unique ID in the page 
   GENERATES AN HYPERLINK WITH ANIMATED GIF 
   */
{ 
  this.icon = document.homepath + "img/" + icon;
   document.write("<a class=\"inpgmenu\" href=\"" + this.url + "\" onmouseover=\"" + name + ".src='" + this.icon + "-focus.gif';\" onmouseout=\"" + name + ".src='" + this.icon + ".gif';\">" 
   + "<img name=\"" + name + "\" src=\"" + this.icon + ".gif\" width=50 height=16 border=0 align=middle hspace=5>");
   if (text == "" ) {
      document.write( this.label + "</a><BR>");
	  }
   else document.write( text + "</a><BR>");
};

function hMoveOn(text,icon,name)
/* - text may be empty and defaults to the object's label
   - icon is one of: back, book, box, home, more, next, url, zoom, goto, webinar
   - name shall be a unique ID in the page 
   USE THIS FUNCTION FOR BUILDING A TABLE OF TOPICS (&other topic links) WITHIN THE SAME PAGE (href="#...")
   */
{ 
  this.icon = document.homepath + "img/" + icon;
   document.write("<a class=\"topicjump\" href=\"#" + this.label.replace(/ +/gi, "_") + "\" onmouseover=\"" + name + ".src='" + this.icon + "-focus.gif';\" onmouseout=\"" + name + ".src='" + this.icon + ".gif';\">" 
   + "<img name=\"" + name + "\" src=\"" + this.icon + ".gif\" width=50 height=16 border=0 align=middle hspace=5>");
   if (text == "" ) {
      document.write( this.label + "</a><BR>");
	  }
   else document.write( text + "</a><BR>");
};


function sectionItem(hint,label,level,url,desc){ 
  this.hint = hint;
  this.label = label;
  this.level = level;
  this.desc = desc;
  if (url.indexOf("://")>0) { 
  		this.url = url; 
		this.topic = "EXTERNAL";
	}
    else { 
		this.url = document.homepath + url; 
		this.topic = "SECTION";
	};
  this.linkOn = hLinkOn;
  this.navigateOn = hNavigateOn;
  
  /* register into menu list */
  document.menuList[document.menuList.length] = this ;
  
if ( document.key != "sitemap") {
	/* Generate the horizontal menu item */
      if ((level ==1)&&(document.type != "I")) {
	  	if (document.menuList.length > 2 ) document.write("<td> ~ </td>");
	  	document.write("<td><a class=\"menu\" href=\"" + this.url + "\">" + label + "</a></td>");
		}
	}
};



/* build the horizontal menu in a table */
  if ( (document.key != "sitemap")&&(document.type != "I")) document.write("<table border=\"0\"  style=\"text-align: center\"><tr>");


/* ********** MENU ITEMS ***************** */
/* arguments: hint,label,level,url,desc */	 

sHome = new sectionItem("Home page","The &quot;Art&quot; of Integration",2,"index.html","Back to the home page.");

/*sTestLab = new sectionItem("Hint element","TestLab",1,"_page_templates/_00_section.html","Test section");*/

sConcepts = new sectionItem("about Architecture and Integration altogether","Theory &amp; Concepts",1,"concepts/_00_section.html","Years of dealing with integration matters have fueld many thoughts, some of which are original ones. These techniques do help me greatly in the execution of Architecture and Integration missions for my customers. These are excerpts from a forthcoming book, see copyright restrictions.");

sMethods = new sectionItem("Integration Methodologies and &quot;how-to&quot; Techniques","Methodology",1,"methods/_00_section.html","Understanding the &quot;what&quot; of Integration is far from being enough to ensure efficient developments. I try to point out some of the common problems that can easily turn an integration project into a bleeding experience. I explain my own methods, some had allowed to speed up integration development and lighten subsequent operations by a factor of three and more");

sChecklists = new sectionItem("Inventories, route maps and Forms","Checklists &amp; Templates",1,"checklists/_00_section.html","I have been learning a lot since many years in Integration and still do learn a lot. More than can hold in one's mind. These forms, checklists and templates help me on two fronts: some are refreshing lists of all aspects to a problem,  others carry the rigour necessary to conduct integration works. They are never final nor complete because you always discover new bits, technology evolves, and they must be adapted to each context: of course about the integration platform but too about the work organisation. I could have named the topic &quot;helpers&quot; or &quot;accelerators&quot;.");

sThinkTank = new sectionItem("Food for thought, essays and useful links","Think Tank",1,"thinktank/_00_section.html","This section groups articles that do not fit into the other structured sections. Some articles are original essays, others are commenting thoughts from various sources, there are links too. I collect at this place the bits that I find mind twisting, or useful, or both indeed. I welcome contributions as well. They will remain duly attributed to their respective authors.");

sContact = new sectionItem("Bernard Hauzeur","Contact",1,"contact/_00_section.html","A regular question when you look at web content: who's behind the site? can I trust this source? I tell some bits of my history  and where I gained my expertise. You'll find how to contact me or even hire me into your projects.");

/* build the horizontal menu in a table */
  if ( (document.key != "sitemap") && (document.type != "I")) document.write("</tr></table>");
 	
																		  
/* EXTERNAL LINKS */
/* arguments: hint,label,level,url,desc */	

/* companies */
	lCoralis = new sectionItem("Coralis","Freelance Cooperative: www.coralis.be",2,"http://www.coralis.be","I am member of a cooperative of freelancers; an interesting business model given that we share commercial leads and assist each other with expertise, and save our customers from structural charges when they are just looking for good resources.");

	lAprico = new sectionItem("Aprico Consultants","ICT project experts: www.aprico-consult.com",2,"http://www.aprico-consult.com","Being independent is nice, but being alone is not, especially when you like to design solutions and propose them to customers. Aprico Consultants is a small ICT company with a strong project-oriented culture and team spirit. I really enjoy being one of their Solution Architects.");

/* web sites */

	lPraxemeOrg = new sectionItem("The PRAXEME Institute","The main author's web site: The PRAXEME Institute",2,"http://www.praxeme.org","The PRAXEME method is public under a Creative Commons license. This web site publishes the original materials (training courses and methodological guides) which are in French language. A few documents in English are anyhow available.");

	lOrchestra = new sectionItem("Orchestra Networks","SOA-related materials at the web site of the co-author of PRAXEME",2,"http://www.orchestranetworks.com/fr/soa/","These materials (in French language) complement the PRAXEME documents available from the PRAXEME Institute");

	lSustainable = new sectionItem("Sustainable IT Architecture","Materials from the Sustainable IT Architecture web site",2,"http://www.sustainableitarchitecture.com/materials ","Sustainable IT architecture is the english version of an original IT book that is very popular in France. The web site presents a new approach to the design of IT systems truly capable to support change. Yes, this is Service-oriented but the originality lies in the PRAXEME methodology. The site contains translated PRAXEME documents.");

/* specific documents */

lPEGS = new sectionItem("EU Commission Report by the author", "Technology and market trends for European e-Government services",2,"http://europa.eu.int/idabc/servlets/Doc?id=18945","A report I prepared in 2004 - through Capgemini - for the European Comission on technology and market evolutions which could affect the implementation of pan-European e-Government services (PEGS) in the next five years (the document was written in 2004).  Integration issues in a pan-European government context are not purely technical, so the report placed emphasis on technologies (dynamic discovery and matching of web services, Business Process Management, &quot;Dataweb&quot;, etc) that could support semantic and organisational interoperability.");


lPraxIntro = new sectionItem("Introduction to PRAXEME", "A Comprehensive Introduction to PRAXEME, a method for the design of Sustainable Enterprise Systems",2,"../praxeme/Praxeme_An_introduction_by_B_Hauzeur.pdf","A 40 page presentation of the PRAXEME methodology for the design of Service Oriented Enterprise Systems.");

lPraxWebinarPDF = new sectionItem("PRAXEME Overview Webinar", "Scripted Document - What Managers Must Know before the Next IT Project",2,"../praxeme/Praxeme_Overview_Webinar_by_B_Hauzeur.pdf","A 50 page presentation of the PRAXEME methodology to the attention of IT and Business Managers.");

lPraxWebinarPPT = new sectionItem("PRAXEME Overview Webinar", "Live Webinar - What Managers Must Know before the Next IT Project",2,"../praxeme/Praxeme_Overview_Webinar_by_B_Hauzeur.html","A 1 hour webinar introducing the PRAXEME methodology to the attention of IT and Business Managers.");

/*
lPraxIntroZ = new sectionItem("Introduction to zzzPRAXEME", "zzzA Comprehensive Introduction to PRAXEME, a method for the design of Sustainable Enterprise Systems",2,"zzz../praxeme/Praxeme_An_introduction_by_B_Hauzeur.pdf","zzzA 40 page presentation of the PRAXEME methodology for the design of Service Oriented Enterprise Systems.");
*/

lEWD0447 = new sectionItem("EWD 447 - Edgsger W. Dijkstra","On the Role of Scientific Thought",2,"http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD447.html","[Excerpts] E.W. Dijkstra: [...]. We make something with the best of intentions in the hope of satisfying a need as we understand it, but when our product has been put into action, it does not perform satisfactorily and how are we to discover whether we have correctly made the wrong thing or whether there is just a silly bug somewhere?");

lEWD0619 = new sectionItem("EWD 619 - Edgsger W. Dijkstra","Essays on the nature and role of mathematical elegance",2,"http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD619.html","[Excerpts] E.W. Dijkstra: [...] Deep in their hearts the idea of complete intellectual control over their designs does not really attract them: many, I found, derive a great part of their professional excitement from not quite understanding what they are doing and from the glorious risks they take in their daring irresponsibility. Besides that it is very questionable, whether simplicity has any sales value.");

lEWD0032 = new sectionItem("EWD 32 - Edgsger W. Dijkstra","Some meditations on Advanced Programming",2,"http://www.cs.utexas.edu/users/EWD/transcriptions/EWD00xx/EWD32.html","[Excerpts] E.W. Dijkstra: This —I should like to call it &quot;unhygienic&quot;— creativity and shrewdness of the programmers has had a very bad influence on machine designers, for after some time they felt free to include all kinds of curious facilities of doubtful usability, reassuring themselves by their experience that, no matter how crazy a facility they provided, always a more crazy programmer would emerge that would manage to turn it into something profitable —as if this were sufficient justification for its inclusion.");

lEWD1304 = new sectionItem("EWD 1304 - Edgsger W. Dijkstra","The end of Computing Science?", 2, "http://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1304.PDF", "[Excerpts] E.W. Dijkstra: You see, while we all know that unmastered complexity is at the root of the misery, we do not know what degree of simplicity can be obtained, nor to what extent the intrinsic complexity of the whole design has to show up in the interfaces. [...] We simply do not know yet the limits of disentanglement. We do not know yet whether intrinsic intricacy can be distinguished from accidental intricacy.");

lEWD0566 = new sectionItem("EWD 566 - Edgsger W. Dijkstra","Programming: from craft to scientific discipline",2, "http://www.cs.utexas.edu/users/EWD/ewd05xx/EWD566.PDF", "[Excerpts] E.W. Dijkstra: while in the past it was regarded as the purpose of our programs to instruct our computers, a shift to the opposite view could now take place, viz. that it is the purpose of our machines to execute our programs.");

