function synchro(){

// Set this variable to prove that we have passed the Welcome page
parent.frames[0].pastWelcome = 1;		

// Set up the variables used for parsing
var getItDebug =0;
var URL = unescape(document.location);
var lastSlash = URL.lastIndexOf("/");
var lengthURL = URL.length;
var fileNameExt = URL.substring(lastSlash + 1, lengthURL);
var fileName = URL.substring(lastSlash + 1, lengthURL - 4);
var fileNameLength = fileName.length;

// The three variables passed to navigate()
var parsedT = "null";
var parsedS = "null";
var parsedP = "null";
var containsPages = 0;

// Check for simple topic and build variables
if (fileNameLength == 1){ 					// topic only
   parsedT = fileName;
}
else if (fileNameLength == 3){				// topic pages
   parsedT = fileName.substr(0,1);
   parsedP = fileName.substr(2);
}
else if (fileNameLength == 4){				// topic pages (max)
   parsedT = fileName.substr(0,1);
   parsedP = fileName.substr(2);
}
else if (fileNameLength == 5){				// "normal" T, S, & P values				
   parsedT = fileName.substr(0,1);
   parsedS = fileName.substr(2,1);
   parsedP = fileName.substr(4);
}
else if (fileNameLength == 6){				// "normal" T, S, & P values (max) AND pages (min)
	if (fileName.search(/pages/i) != -1){	// if it DOES contain "pages"...
	   parsedT = fileName.substr(0,1);
	   containsPages = 1;
	}   
	else {									// if it does NOT contain "pages"...
	   parsedT = fileName.substr(0,1);
	   parsedS = fileName.substr(2,1);
	   parsedP = fileName.substr(4);
	}										
}
else if (fileNameLength == 8){				// pages (max)
   parsedT = fileName.substr(0,1);
   parsedS = fileName.substr(2,1);
   containsPages = 1;
}

// Look for number of pages...
var numPages=eval("parent.frames[0].topic" + parsedT + "PagesArray[" + parsedS + "]");
if (numPages == 1){
	parsedP = "null";
}


// DISPLAY THE DEBUGGING MESSAGE
if (getItDebug == 1){
var msg = "Topic = " + parent.frames[0].curTopic + "\n";
var msg = msg + "Subtopic = " + parent.frames[0].curSubTopic + "\n";
var msg = msg + "Page = " + parent.frames[0].curPage + "\n";
var msg = msg + "parsedT = " + parsedT + "\n";
var msg = msg + "parsedS = " + parsedS + "\n";
var msg = msg + "parsedP = " + parsedP + "\n\n";
var msg = msg + "Number of pages = " + numPages + "\n\n";
var msg = msg + "containsPages = " + containsPages + "\n";
var msg = msg + "curTopicItems = " + parent.frames[0].curTopicItems + "\n";
//var msg = msg + "inSynchro = " + parent.frames[0].inSynchro + "\n";
//var msg = msg + "pastWelcome = " + parent.frames[0].pastWelcome + "\n";
alert(msg);
}

// NAVIGATION!!!  This function will run twice-- the first time, it will reset the nav scheme.  
//When the new page loads, it runs again and just passes straight through without doing anything. 
if (containsPages == 1){ 							//Handle the "pages" first!
	if (parent.frames[0].inSynchro != 1){			
		parent.frames[0].curTopic = parsedT;					
		parent.frames[0].curSubTopic = parsedS;
		parent.frames[0].pageUnhilight()
		parent.frames[0].showPageList();
		parent.frames[0].inSynchro = 1;				//set this, taking control ...
	} else{
		parent.frames[0].inSynchro = 0;			//set this, giving control back...
	}
}
else{														
	if ((parent.frames[0].curTopic.toString() == parsedT.toString()) &&		//Handle the "normal" TSP values...
	   (parent.frames[0].curSubTopic.toString() == parsedS.toString()) &&
	   (parent.frames[0].curPage.toString() == parsedP.toString()) ){
			if (getItDebug == 1){
			alert("No need to reload...");									//FINE, BUT WE STILL NEED TO CHECK ALL HIGHLIGHTS...
			}
			parent.frames[0].linkNavigating = 1;
			parent.frames[0].setNavigation(parsedT);						// call the modified openTopic() function
	} else {
		if ((parsedS == "null") && (parsedP == "null")){					//use openTopic() if required...
			if (getItDebug == 1){
			alert("Calling setNavigation()...");									
			}
		parent.frames[0].openTopic(parsedT);
		}
		else {																//...otherwise, use navigate()
			if (getItDebug == 1){
			alert("Calling navigate()...");									
			}
		parent.frames[0].navigate(parsedT,parsedS,parsedP);
		}
	}
}
}// END OF FUNCTION



