

//<![CDATA[

<!--


function Client(){
	this.min = false; if (document.getElementById){this.min = true;};
	this.ua = navigator.userAgent;
	this.name = navigator.appName;
	this.ver = navigator.appVersion;  
	this.mac = (this.ver.indexOf('Mac') != -1);
	this.win = (this.ver.indexOf('Windows') != -1);
	this.gecko = (this.ua.indexOf('Gecko') > 1);
	if (this.gecko){
		this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length));
		if (this.geckoVer < 20020000){this.min = false;}
	}
	
	this.firebird = (this.ua.indexOf('Firebird') > 1);
	
	this.safari = (this.ua.indexOf('Safari') > 1);
	if (this.safari){
		this.gecko = false;
	}
	
	this.ie = (this.ua.indexOf('MSIE') > 0);
	if (this.ie){
		this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length));
		if (this.ieVer < 5.5){this.min = false;}
	}
	
	this.opera = (this.ua.indexOf('Opera') > 0);
	if (this.opera){
		this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length));
		if (this.operaVer < 7.04){this.min = false;}
	}
	if (this.min == false){
		alert('Your browser may not be able to handle this page.');
	}
	
	this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6));
}
var C = new Client();



function NavBtnOver(Btn){
	if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';}
}
function NavBtnOut(Btn){
	Btn.className = 'NavButton';
}
function NavBtnDown(Btn){
	Btn.className = 'NavButtonDown';
}
function FuncBtnOver(Btn){
	if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';}
}
function FuncBtnOut(Btn){
	Btn.className = 'FuncButton';
}
function FuncBtnDown(Btn){
	Btn.className = 'FuncButtonDown';
}
function FocusAButton(){
	if (document.getElementById('CheckButton1') != null){
		document.getElementById('CheckButton1').focus();
	}
	else{
		if (document.getElementById('CheckButton2') != null){
			document.getElementById('CheckButton2').focus();
		}
		else{
			document.getElementsByTagName('button')[0].focus();
		}
	}
}



var topZ = 1000;
function ShowMessage(Feedback){
	var Output = Feedback + '<br /><br />';
	document.getElementById('FeedbackContent').innerHTML = Output;
	var FDiv = document.getElementById('FeedbackDiv');
	topZ++;
	FDiv.style.zIndex = topZ;
	FDiv.style.top = TopSettingWithScrollOffset(30) + 'px';
	FDiv.style.display = 'block';
	ShowElements(false, 'input');
	ShowElements(false, 'select');
	ShowElements(false, 'object');
	ShowElements(true, 'object', 'FeedbackContent');
	setTimeout("document.getElementById('FeedbackOKButton').focus()", 50);
	
}
function ShowElements(Show, TagName, ContainerToReverse){
	
	TopNode = document.getElementById(ContainerToReverse);
	var Els;
	if (TopNode != null) {
		Els = TopNode.getElementsByTagName(TagName);
	} else {
		Els = document.getElementsByTagName(TagName);
	}
	for (var i=0; i<Els.length; i++){
		if (TagName == "object") {
			
			if (Show == true){
				Els[i].style.visibility = 'visible';
				
				if (C.mac && C.gecko) {Els[i].style.display = '';}
			}
			else{
				Els[i].style.visibility = 'hidden';
				if (C.mac && C.gecko) {Els[i].style.display = 'none';}
			}
		} 
		else {
			
			
			if (C.ie) {
				if (C.ieVer < 7) {
					if (Show == true){
						Els[i].style.visibility = 'visible';
					}
					else{
						Els[i].style.visibility = 'hidden';
					}
				}
			}
		}
	}
}
function HideFeedback(){
	document.getElementById('FeedbackDiv').style.display = 'none';
	ShowElements(true, 'input');
	ShowElements(true, 'select');
	ShowElements(true, 'object');
	if (Finished == true){
		Finish();
	}
}




//This is the JavaScript code needed to make the exercise function

function Asset(ID, Name, InitVal, DecPlace, ShowDuring, ShowEnd, ShowCount, CurrVal, Parent){
	this.ID = ID;
	this.Name=Name;
	this.InitVal=InitVal;
	this.DecPlace=DecPlace;
	this.ShowDuring=ShowDuring;
	this.ShowEnd=ShowEnd;
	this.ShowCount=ShowCount;
	this.CurrVal=CurrVal;
	this.Parent = Parent;
}
function AssetGetCurrValString(){
	var Num = this.CurrVal;
	if (this.DecPlace > 0){
		for (var i=0; i<this.DecPlace; i++){Num /= 10;}
	}
	var Result = Num.toString();
	if (this.DecPlace > 0){
		var DecLoc = Result.indexOf('.');
		if (DecLoc < 0){Result += '.';}
		while (((Result.length-1) - Result.indexOf('.'))<this.DecPlace){Result += '0';} 
		while (((Result.length-1) - Result.indexOf('.'))>this.DecPlace){Result = Result.substring(0, Result.length-1);}
	}
	return Result;
}
Asset.prototype.GetCurrValString=AssetGetCurrValString;
function AssetGetCurrValFloat(){
	var Num = this.CurrVal;
	if (this.DecPlace > 0){
		for (var i=0; i<this.DecPlace; i++){Num /= 10;}
	}
		return Num;
}
Asset.prototype.GetCurrValFloat=AssetGetCurrValFloat;
function AssetSetCurrValFromFloat(Num){
	if (this.DecPlace > 0){
		for (var i=0; i<this.DecPlace; i++){Num *= 10;}
	}
	this.CurrVal = Num;
}
Asset.prototype.SetCurrValFromFloat=AssetSetCurrValFromFloat;
function AssetReportCurrState(){
	return this.Name + ': ' + this.GetCurrValString();
}
Asset.prototype.ReportCurrState=AssetReportCurrState;
function AssetMeetsRequirement(ReqType, Req){
	var Result = true;
	switch(ReqType){
		case 0: break;
		case 1: Result = (this.CurrVal > Req); break;
		case 2: Result = (this.CurrVal < Req); break;
		case 3: Result = (this.CurrVal == Req); break;
		case 4: Result = (this.CurrVal != Req); break;
	}
	return Result;
}
Asset.prototype.MeetsRequirement=AssetMeetsRequirement;
function AssetPerformTransaction(OperatorType, Operand){
	if ((this.Name == '_Timer_Seconds')&&(this.Parent.Active == true)){
		this.CurrVal = Seconds;
	}
	switch(OperatorType){
		case 1: this.CurrVal += Operand; break; 
		case 2: this.CurrVal -= Operand; break; 
		case 3: for (var x=0; x<this.DecPlace; x++){Operand /= 10;}this.CurrVal *= Operand; break; 
		case 4: for (var x=0; x<this.DecPlace; x++){Operand /= 10;}this.CurrVal /= Operand; break; 
		case 5: this.CurrVal = Operand; break; 
		case 6: for (var x=0; x<this.DecPlace; x++){Operand /= 10;}this.CurrVal *= (Operand/100); break; 
		case 7: 
			for (var x=0; x<this.DecPlace; x++){Operand /= 10;}
			var y = this.CurrVal; for (var x=0; x<this.DecPlace; x++){y /= 10;}
			x = y; for (var j=1; j<Operand; j++){y *= x;} 
			for (var x=0; x<this.DecPlace; x++){y *= 10;}
			this.CurrVal = y;
			break; 
	}
	this.CurrVal = Math.round(this.CurrVal);
	if ((this.Name == '_Timer_Seconds')&&(this.Parent.Active == true)){
		Seconds = this.CurrVal;
	}
}
Asset.prototype.PerformTransaction=AssetPerformTransaction;
function AssetCanBeShown(){
	var Result = true;
	if (IsEndPoint == true){
		switch (this.ShowEnd){
			case 0: Result = true; break;
			case 1: Result = false; break;
			case 2: Result = (this.CurrVal != 0); break;
		}
	}
	else{
		switch (this.ShowDuring){
			case 0: Result = true; break;
			case 1: Result = false; break;
			case 2: Result = (this.CurrVal != 0); break;
		}
	}
	return Result;
}
Asset.prototype.CanBeShown=AssetCanBeShown;
function Basket(AList, Active){
	this.Active = Active;
	this.Assets = new Array();
	if (AList.length > 0){
		for (var i=0; i<AList.length; i++){
			this.Assets[i] = new Asset(i, AList[i][0], AList[i][1], AList[i][2], AList[i][3], AList[i][4], A[i][5], A[i][6], this);
		}
	}
}
function BasketGetEffectiveOperand(Trans){
	var Operand = 0;
	switch(Trans[2]){
		case 0: Operand = Trans[3]; break;
		case 1: Operand = GetRand(Trans[3], Trans[4]); break;
		case 2: Operand = this.Assets[Trans[5]].GetCurrValFloat(); 
			for (var i=0; i<this.Assets[Trans[0]].DecPlace; i++){Operand *= 10;}
			break;
	}
	return Operand;
}
Basket.prototype.GetEffectiveOperand=BasketGetEffectiveOperand;
function BasketReportCurrState(){
	if (this.Assets.length < 1){return '';}
	var Result = '';
	for (var i=0; i<this.Assets.length; i++){
		if (this.Assets[i].CanBeShown()==true){
			Result += '<tr><td style="text-align: right;">' + this.Assets[i].Name + ' </td>';
			Result += '<td style="text-align: left;"> '
			if (this.Assets[i].ShowCount==true){
				Result += '&nbsp;:&nbsp;' + this.Assets[i].GetCurrValString();
			}
			Result += ' </td></tr>';
		}
	}
	if (Result.length > 0){
		Result = '<table class="AssetTable"><tr><th colspan="2">' + strYouHave + '</th></tr>' + Result + '</table>';
	}
	return Result;
}
Basket.prototype.ReportCurrState=BasketReportCurrState;
function BasketCloneSelf(Copy, Active){
	Copy = new Basket(A, false);
	Copy.Active = Active;
	for (var i=0; i<this.Assets.length; i++){
		Copy.Assets[i].CurrVal = this.Assets[i].CurrVal;
	}
	return Copy;
}
Basket.prototype.CloneSelf=BasketCloneSelf;
function BAssetMeetsRequirement(ANum, ReqType, Req){
	return this.Assets[ANum].MeetsRequirement(ReqType, Req);
}
Basket.prototype.AssetMeetsRequirement=BAssetMeetsRequirement;
function BAssetPerformTransaction(ANum, OpType, Operand){
	this.Assets[ANum].PerformTransaction(OpType, Operand);
}
Basket.prototype.PerformTransaction=BAssetPerformTransaction;
function BGetAssetValByName(AssetName){
	var Result = 0;
	for (var i=0; i<this.Assets.length; i++){
		if (this.Assets[i].Name == AssetName){
			Result = this.Assets[i].CurrVal;
		}
	}
	return Result;
}
Basket.prototype.GetAssetValByName=BGetAssetValByName;
var CurrBasket;
var TempBasket;
var CurrNode=0;
var strYouHave='Tens: ';
var strLinkCaption='<img src="seta-quan.png" alt="Avan&#x00E7;ar" title="Avan&#x00E7;ar" width="78" height="29"></img>';
var strFinishCaption='<img src="seta-quan.png" alt="Avan&#x00E7;ar" title="Avan&#x00E7;ar" width="78" height="29"></img>';
var strDefaultRefusalMessage='Sorry! You can\'t do that.';
var strTimesUp = 'Your time has run out!';
var strBookmarkExplanation = 'Your current position and settings have been encoded in <br />the URL of the page. Now set a bookmark in your <br />browser, so you can return here.<br />';
var strExerciseComplete = '';
var ShowImpossibleLinks=true;
var StartTime = (new Date()).toLocaleString();
var HPNStartTime = (new Date()).getTime();
var SubmissionTimeout = 30000;
var FollowingTrack = false;
var CurrTime;
var Started=false;
var IsEndPoint = false;
var Finished = false; 
var TimeOver = false;
function TransactionList(NNum, LNum){
	this.List = new Array();
	var i;
	for (i=0; i<N[NNum][4].length; i++){this.List[this.List.length] = N[NNum][4][i];}
	for (i=0; i<N[NNum][3][LNum][2].length; i++){this.List[this.List.length] = N[NNum][3][LNum][2][i];}
	for (i=0; i<N[N[NNum][3][LNum][0]][2].length; i++){this.List[this.List.length] = N[N[NNum][3][LNum][0]][2][i];}
}
function TestTransactions(NNum, LNum){
	var T = new TransactionList(NNum, LNum);
	var Result = '';
	var B = CurrBasket.CloneSelf(B, false);
	for (var i=0; i<T.List.length; i++){
		if (B.AssetMeetsRequirement(T.List[i][0], T.List[i][7], T.List[i][6]) == true){
			B.PerformTransaction(T.List[i][0], T.List[i][1], B.GetEffectiveOperand(T.List[i]));
		}
		else{
			if (T.List[i][8].length > 0){
				return T.List[i][8];
			}
			else{
				return strDefaultRefusalMessage;
			}
		}
	}
	return '';
}
function StartExercise(){
	CurrBasket = new Basket(A, true);

	ParseSearch();
	CurrTime = new Date();
	ShowCurrNode();

	Started = true;
}
function StartUp(){

	if (document.location.search.indexOf('___') > -1){
		StartExercise();
	}
}
function Restart(){
	var d = document.location;
	d.search = '';
	document.location = d;
}
function HNode(NNum, LNum, Bask){
	this.NNum = NNum; 
	this.LNum = LNum; 
	this.Basket = Bask.CloneSelf(A, false); 
	this.EntryTime = CurrTime.getTime(); 
	this.EntryTimeString = CurrTime.toLocaleString();
	var D = new Date();
	this.ExitTime = D.getTime(); 
	this.ExitTimeString = D.toLocaleString(); 
}
function HNodeReportSelf(AddTime){
	var S = this.NNum + ':' + this.LNum;
	if (AddTime == true){
		S += ':' + this.EntryTime;
	}
	return S;
}
HNode.prototype.ReportSelf=HNodeReportSelf;
function HNodeList(){
	this.Nodes = new Array();
	var D = new Date();
	this.StartTime = D.getTime(); 
	this.StartTimeString = D.toLocaleString();
}
function HNodeListReportAsSearch(IncludeTime){
	var S = '___t;';
	if (this.Nodes.length > 0){
		S += this.Nodes[0].ReportSelf(IncludeTime);
		for (var i=1; i<this.Nodes.length; i++){
			S += ',' + this.Nodes[i].ReportSelf(IncludeTime);
		}
	}
	return S;
}
HNodeList.prototype.ReportAsSearch=HNodeListReportAsSearch;
var H = new HNodeList(); 
function Undo(){
	if (H.Nodes.length < 1){
		return;
	}
	var LastNode = H.Nodes.pop();
	CurrNode = LastNode.NNum;
	CurrBasket = LastNode.Basket.CloneSelf(A, true);
	ShowCurrNode();
}
function ParseSearch(){
	if (document.location.search.length < 1){return;}
	var StateString = document.location.search.substring(document.location.search.lastIndexOf('___'), document.location.search.length);
	if (StateString.length > 0){
		ParseStateString(StateString);
	}
}
function ParseStateString(StateString){
	var S = StateString.split(';');
	if (S.length > 0){
		if (S[0] == '___b'){
			ShowMessage(strBookmarkExplanation);
		}
		if (S[0] == '___t'){
			ParseTrack(S[1]);
			return;
		}
	}
	if (S.length > 1){
		if (S[1].length > 0){
			var CN=parseInt(S[1]);
			if ((CN>-1)&&(CN<N.length)){
				CurrNode = CN;
			}
		}
	}
	if (S.length > 2){
		if (S[2].length > 0){
			var AA=S[2].split(',');
			if (AA.length > 0){
				for (var i=0; i<AA.length; i++){
					var Val = parseInt(AA[i]);
					if ((i<A.length)&&(Val != NaN)){
						CurrBasket.Assets[i].CurrVal = Val;
					}
				}
			}
		}
	}

}
var Footprints = new Array();
function ParseTrack(Track){
	if (Track.length < 3){
		return;
	}
	var Steps = Track.split(',');
	if (Steps.length < 2){
		return;
	}
	FollowingTrack = true;
	var NNum = 0;
	var LNum = 0;
	var T = 0;
	for (var i=0; i<Steps.length; i++){
		var Step = Steps[i].split(':');
		NNum = parseInt(Step[0]);
		if (NNum > -1){
			LNum = parseInt(Step[1]);
			if (LNum > -1){
				if (Step.length > 2){
					T = parseInt(Step[2]);
				}
				Footprints.push(new Array(NNum, LNum, T));
			}
		}
	}
}
function CreateBookmark(Prefix){
	var S = '___' + Prefix + ';' + CurrNode + ';';
	if (CurrBasket.Assets.length > 0){
		S += CurrBasket.Assets[0].CurrVal;
		for (var i=1; i<CurrBasket.Assets.length; i++){
			S += ',' + CurrBasket.Assets[i].CurrVal;
		}
	}

	return S;
}
function SetBookmark(){
	if (Started == false){return;}
	var Temp = document.location.search;
	if (Temp.length < 1){
		Temp = '?';
	}
	else{
		Temp += '&';
	}
	document.location.search = Temp + CreateBookmark('b');
}
function MillisecondsToTimeReadout(MS){
	var DT = new Date(MS);
	return DT.getHours() + ':' + DT.getMinutes() + ':' + DT.getSeconds() + ':' + DT.getMilliseconds();
}
function ShowCurrNode(){
	var DPT = N[CurrNode][0];
	if ((FollowingTrack==true)&&(Footprints.length > 0)){
		if (Footprints[0][2] > 0){
			DPT += ' (' + MillisecondsToTimeReadout(Footprints[0][2]) + ')';
		}
	}
	document.getElementById('DPTitle').innerHTML = DPT;
	document.getElementById('DPContentsDiv').innerHTML = N[CurrNode][1];
	var Links = '';
	var Refusal = '';
	var ValidLinks = 0;
	for (var LNum=0; LNum<N[CurrNode][3].length; LNum++){
		if ((FollowingTrack==true)&&(Footprints.length > 0)){
			if (LNum == Footprints[0][1]){
				Links += MakeLink(CurrNode, LNum);
				ValidLinks++;
			}
			else{
				Links += MakeDummyLink(CurrNode, LNum);
			}
		}
		else{
			Refusal = TestTransactions(CurrNode, LNum);
			if (Refusal.length > 0){
				if (N[CurrNode][3][LNum][4] < 1){
					N[CurrNode][3][LNum][3] = Refusal;
					Links += MakeRefusalLink(CurrNode, LNum);
				}
			}
			else{
				Links += MakeLink(CurrNode, LNum);
				ValidLinks++;
			}
		}
	}
	if (Links.length > 0){
		Links = '<table class="LinkTable">' + Links + '</table>';
	}
	IsEndPoint = false;
	if (ValidLinks < 1){
		IsEndPoint = true;
		Finished = true;
		if (document.getElementById('store') != null){
			Links = '<table class="LinkTable">' + MakeEndLink() + '</table>';
		}
		else{
			if (document.getElementById('UndoButton') == null){
				Links = '<table class="LinkTable"><tr><td>' + strExerciseComplete + '</td></tr></table>';
			}
		}

	}
	document.getElementById('LinkListDiv').innerHTML = Links;
	var AssetOutput = CurrBasket.ReportCurrState();
	if (AssetOutput.length > 0){
		document.getElementById('AssetsDiv').innerHTML = AssetOutput;
		document.getElementById('AssetDisplay').style.display = 'block';
	}
	else{
		document.getElementById('AssetsDiv').innerHTML = '';
		document.getElementById('AssetDisplay').style.display = 'none';
	}
	if (Footprints.length > 0){Footprints.shift();}
	if ((IsEndPoint==true)&&(document.getElementById('UndoButton') == null)){
		H.Nodes.push(new HNode(CurrNode, LNum, CurrBasket));
		CurrTime = new Date();
		setTimeout('Finish()', SubmissionTimeout);
	}
}
function MakeFunctionButton(Caption, Action){
	var Result = '';
	if (C.opera){
		Result = '<a href="javascript:' + Action + '">' + Caption + '</a>';
	}
	else{
		Result = '<button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)"  onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="' + Action + '">' + Caption + '</button>';
	}
	return Result;
}
function MakeRefusalLink(NNum, LNum){
	var Result = '<tr><td>';
	Result += MakeFunctionButton(strLinkCaption, 'ShowMessage(N[' + NNum + '][3][' + LNum + '][3])');
	Result += '</td>';
	Result += '<td>' + N[NNum][3][LNum][1] + '</td></tr>';
	return Result;
}
function MakeLink(NNum, LNum){
	var Result = '<tr><td>';
	Result += MakeFunctionButton(strLinkCaption, 'FollowLink(' + LNum + ')');
	Result += '</td>';
	Result += '<td>' + N[NNum][3][LNum][1] + '</td></tr>';
	return Result;
}
function MakeDummyLink(NNum, LNum){
	var Result = '<tr><td style="text-align: right;">&nbsp;&#x25cf;&nbsp;</td>';
	Result += '<td>' + N[NNum][3][LNum][1] + '</td></tr>';
	return Result;
}
function MakeEndLink(){
	var Result = '<tr><td>';
	Result += MakeFunctionButton(strFinishCaption, 'Finish()');
	Result += '</td>';
	Result += '<td>' + strExerciseComplete + '</td></tr>';
	return Result;
}
function FollowLink(LNum){

	H.Nodes.push(new HNode(CurrNode, LNum, CurrBasket));
	CurrTime = new Date();
	var T = new TransactionList(CurrNode, LNum);
	for (var i=0; i<T.List.length; i++){
		CurrBasket.PerformTransaction(T.List[i][0], T.List[i][1], CurrBasket.GetEffectiveOperand(T.List[i]));
	}
	CurrNode = N[CurrNode][3][LNum][0];
	ShowCurrNode();

}

function Finish(){
	try{
		var F = document.getElementById('store');
		if (F != null){
			F.starttime.value = HPNStartTime;
			F.endtime.value = (new Date()).getTime();
			F.mark.value = CurrBasket.GetAssetValByName('Score'); 
			var Temp = '<?xml version="1.0"?><hpnetresult><fields>';
			Temp += '<field><fieldname>endbookmark</fieldname><fieldtype>url-search</fieldtype><fieldlabel>Click here to see the final position in the maze</fieldlabel><fieldlabelid>QuandaryViewFinalPosition</fieldlabelid><fielddata>' + CreateBookmark('b') + '</fielddata></field>';
			Temp += '<field><fieldname>track</fieldname><fieldtype>url-search</fieldtype><fieldlabel>Click here to track the student through the maze.</fieldlabel><fieldlabelid>QuandaryViewTrack</fieldlabelid><fielddata>' + H.ReportAsSearch(false) + '</fielddata></field>';
			Temp += '<field><fieldname>timedtrack</fieldname><fieldtype>url-search</fieldtype><fieldlabelid>QuandaryViewTimedTrack</fieldlabelid><fieldlabel>Click here to track the student through the maze with timing data.</fieldlabel><fielddata>' + H.ReportAsSearch(true) + '</fielddata></field>';
			Temp += '</fields></hpnetresult>';
			F.detail.value = Temp;
			F.submit();
		}
	}
	catch(er){
		return;
	}
}
function GetScrollTop(){
	if (document.documentElement && document.documentElement.scrollTop){
		return document.documentElement.scrollTop;
	}
	else{
		if (document.body){
 			return document.body.scrollTop;
		}
		else{
			return window.pageYOffset;
		}
	}
}
function GetViewportHeight(){
	if (window.innerHeight){
		return window.innerHeight;
	}
	else{
		return document.getElementsByTagName('body')[0].clientHeight;
	}
}
function TopSettingWithScrollOffset(TopPercent){
	var T = Math.floor(GetViewportHeight() * (TopPercent/100));
	return GetScrollTop() + T; 
}
function GetRand(Lower, Upper){
	var Rng = Upper-Lower;
	return (Math.round(Math.random()*Rng)) + Lower;
}
var A = new Array();

var N = new Array();
N[0] = new Array();
N[0][0] = 'Como se formam as palavras em portugu\u00EAs?';
N[0][1] = 'A riqueza de uma l&#x00ED;ngua tem a ver com a capacidade de cria&#x00E7;&#x00E3;o de novas palavras a partir das que j&#x00E1; existem &mdash; as <strong>palavras primitivas</strong> .<br /><br />Em portugu&#x00EA;s, as novas palavras formam-se de duas maneiras diferentes.<br />Clica nos bot&#x00F5;es abaixo para descobrires mais sobre as palavras da nossa l&#x00ED;ngua.<br /><br /><br />';
N[0][2] = new Array();

N[0][3] = new Array();
N[0][3][0] = new Array();
N[0][3][0][0] = 1;
N[0][3][0][1] = 'O que s\u00E3o <strong><em>palavras primitivas</em></strong>?';
N[0][3][0][2] = new Array();

N[0][3][0][3] = '';
N[0][3][0][4] = 0;

N[0][3][1] = new Array();
N[0][3][1][0] = 2;
N[0][3][1][1] = 'O que s\u00E3o <strong><em>palavras derivadas</em></strong>?';
N[0][3][1][2] = new Array();

N[0][3][1][3] = '';
N[0][3][1][4] = 0;

N[0][3][2] = new Array();
N[0][3][2][0] = 3;
N[0][3][2][1] = 'O que s\u00E3o <strong><em>palavras compostas</em></strong>?';
N[0][3][2][2] = new Array();

N[0][3][2][3] = '';
N[0][3][2][4] = 0;


N[0][4] = new Array();


N[1] = new Array();
N[1][0] = 'Palavras primitivas';
N[1][1] = 'As palavras primitivas s&#x00E3;o <strong>aquelas que n&#x00E3;o se formam a partir de nenhuma outra</strong>.<br /><br />Muitas delas prov&#x00EA;m de palavras latinas, gregas ou &#x00E1;rabes - embora possam ter outras origens (franc&#x00EA;s, ingl&#x00EA;s, espanhol...).<br /><blockquote><strong><ul>Exemplos</strong>:<ul>caderno<br />futebol<br />mar<br />tempo</ul> </ul> </blockquote>';
N[1][2] = new Array();

N[1][3] = new Array();
N[1][3][0] = new Array();
N[1][3][0][0] = 2;
N[1][3][0][1] = 'O que s\u00E3o <strong><em>palavras derivadas</em></strong>?';
N[1][3][0][2] = new Array();

N[1][3][0][3] = '';
N[1][3][0][4] = 0;

N[1][3][1] = new Array();
N[1][3][1][0] = 3;
N[1][3][1][1] = 'O que s\u00E3o <strong><em>palavras compostas</em></strong>?';
N[1][3][1][2] = new Array();

N[1][3][1][3] = '';
N[1][3][1][4] = 0;

N[1][3][2] = new Array();
N[1][3][2][0] = 0;
N[1][3][2][1] = 'In\u00EDcio: <strong>Como se formam as palavras em portugu\u00EAs</strong>?';
N[1][3][2][2] = new Array();

N[1][3][2][3] = '';
N[1][3][2][4] = 0;


N[1][4] = new Array();


N[2] = new Array();
N[2][0] = 'Palavras derivadas';
N[2][1] = 'A <strong>deriva&#x00E7;&#x00E3;o</strong> &#x00E9; um m&#x00E9;todo de forma&#x00E7;&#x00E3;o de palavras que consiste em <br /><strong>acrescentar a uma palavra primitiva</strong>:<ul><li> um <strong>prefixo</strong>, ou</li><li>um <strong>sufixo</strong>, ou</li><li>um <strong>prefixo <span style="text-decoration: underline;">e</span> um sufixo</strong></li></ul><blockquote><strong><ul>Exemplos</strong>:<ul><strong>re</strong>fazer <br />cadern<strong>eta</strong><br /><strong>im</strong>paciente<strong>mente</strong> </ul> </ul> </blockquote><br />A nova palavra tem um <strong>significado diferente</strong> da palavra primitiva, mas est&#x00E1; <strong>sempre relacionada com o seu sentido</strong> ';
N[2][2] = new Array();

N[2][3] = new Array();
N[2][3][0] = new Array();
N[2][3][0][0] = 4;
N[2][3][0][1] = 'Palavras <strong>derivadas por prefixa\u00E7\u00E3o</strong>';
N[2][3][0][2] = new Array();

N[2][3][0][3] = '';
N[2][3][0][4] = 0;

N[2][3][1] = new Array();
N[2][3][1][0] = 5;
N[2][3][1][1] = 'Palavras <strong>derivadas por sufixa\u00E7\u00E3o</strong>';
N[2][3][1][2] = new Array();

N[2][3][1][3] = '';
N[2][3][1][4] = 0;

N[2][3][2] = new Array();
N[2][3][2][0] = 6;
N[2][3][2][1] = 'Palavras <strong>derivadas por prefixa\u00E7\u00E3o e sufixa\u00E7\u00E3o</strong>';
N[2][3][2][2] = new Array();

N[2][3][2][3] = '';
N[2][3][2][4] = 0;

N[2][3][3] = new Array();
N[2][3][3][0] = 0;
N[2][3][3][1] = 'In\u00EDcio: <strong>Como se formam as palavras em portugu\u00EAs</strong>?';
N[2][3][3][2] = new Array();

N[2][3][3][3] = '';
N[2][3][3][4] = 0;


N[2][4] = new Array();


N[3] = new Array();
N[3][0] = 'Palavras Compostas';
N[3][1] = 'As <strong>palavras compostas</strong> s&#x00E3;o formadas pela combina&#x00E7;&#x00E3;o de <strong>duas ou mais palavras primitivas</strong> que originam uma nova palavra com significado pr&#x00F3;prio.<br /><blockquote><strong><ul>Exemplos</strong>:<ul>caminho-de-ferro<br />guarda-chuva<br />corrim&#x00E3;o<br />passatempo</ul> </ul> </blockquote><br /><br />';
N[3][2] = new Array();

N[3][3] = new Array();
N[3][3][0] = new Array();
N[3][3][0][0] = 7;
N[3][3][0][1] = 'Palavras <em><b>compostas por justaposi\u00E7\u00E3o</b></em>';
N[3][3][0][2] = new Array();

N[3][3][0][3] = '';
N[3][3][0][4] = 0;

N[3][3][1] = new Array();
N[3][3][1][0] = 8;
N[3][3][1][1] = 'Palavras <em><b>compostas por aglutina\u00E7\u00E3o</b></em>';
N[3][3][1][2] = new Array();

N[3][3][1][3] = '';
N[3][3][1][4] = 0;

N[3][3][2] = new Array();
N[3][3][2][0] = 0;
N[3][3][2][1] = 'In\u00EDcio: <strong>Como se formam as palavras em portugu\u00EAs</strong>?';
N[3][3][2][2] = new Array();

N[3][3][2][3] = '';
N[3][3][2][4] = 0;


N[3][4] = new Array();


N[4] = new Array();
N[4][0] = 'Palavras derivadas por prefixa\u00E7\u00E3o';
N[4][1] = '<img src="form-pal-01.png" alt="Deriva&#x00E7;&#x00E3;o de palavras - prefixa&#x00E7;&#x00E3;o (esquema)" title="Deriva&#x00E7;&#x00E3;o de palavras - prefixa&#x00E7;&#x00E3;o (esquema)" width="240" height="219" style="float: left; margin-right: 70px; vertical-align: bottom; margin-top: 0px;"></img>Neste caso, foi acrescentado um elemento (des-<strong>*</strong>) <br />no in&#x00ED;cio da palavra &#x00AB;atento&#x00BB;,<br /> e <em>nasceu</em> a palavra &#x00AB;desatento&#x00BB;.<br /><br />Quando o <strong>elemento</strong> de forma&#x00E7;&#x00E3;o de palavras &#x00E9; <br /><strong>acrescentado no in&#x00ED;cio da palavra</strong>, <br />tem o nome de <strong>prefixo</strong>.<br /><br />As palavras formadas por este m&#x00E9;todo t&#x00EA;m o nome de<br /><strong>palavras derivadas por prefixa&#x00E7;&#x00E3;o</strong>.<br /><br /><br /><strong>*</strong> um prefixo &#x00E9; sempre representado com um <strong>h&#x00ED;fen</strong> no final, significando que &#x00E9; um elemento que<br />vai ser seguido por outro elemento (neste caso, uma palavra primitiva)<br /><br /><br />';
N[4][2] = new Array();

N[4][3] = new Array();
N[4][3][0] = new Array();
N[4][3][0][0] = 5;
N[4][3][0][1] = 'Palavras <strong><em>derivadas por sufixa\u00E7\u00E3o</em></strong>';
N[4][3][0][2] = new Array();

N[4][3][0][3] = '';
N[4][3][0][4] = 0;

N[4][3][1] = new Array();
N[4][3][1][0] = 2;
N[4][3][1][1] = '<strong><em>Palavras derivadas</em></strong>';
N[4][3][1][2] = new Array();

N[4][3][1][3] = '';
N[4][3][1][4] = 0;


N[4][4] = new Array();


N[5] = new Array();
N[5][0] = 'Palavras derivadas por sufixa\u00E7\u00E3o';
N[5][1] = '<img src="form-pal-02.png" alt="Deriva&#x00E7;&#x00E3;o de palavras - sufixa&#x00E7;&#x00E3;o (esquema)" title="Deriva&#x00E7;&#x00E3;o de palavras - sufixa&#x00E7;&#x00E3;o (esquema)" width="263" height="219" style="float: left; margin-right: 40px; vertical-align: bottom; margin-top: 0px;"></img>Neste caso, foi acrescentado um elemento (-mente<strong>*</strong>) <br />no final da palavra &#x00AB;atento&#x00BB;,<br /> e <em>nasceu</em> a palavra &#x00AB;atentamente&#x00BB;.<br /><br /><br />Quando o <strong>elemento</strong> de forma&#x00E7;&#x00E3;o de palavras &#x00E9; <br /><strong>acrescentado no final da palavra</strong>, <br />tem o nome de <strong>sufixo</strong>.<br /><br />As palavras formadas por este m&#x00E9;todo chamam-se <br /><strong>palavras derivadas por sufixa&#x00E7;&#x00E3;o</strong>.<br /><br /><br /><div style="text-align: center;">(nota que, <strong>nas palavras a que se adiciona &#x00AB;-mente&#x00BB;</strong>, este sufixo &#x00E9; adicionado &#x00E0; <br /><strong>forma do feminino do adjectivo se este for biforme</strong>.)</div><br /><br /><strong>*</strong> um sufixo &#x00E9; sempre representado com um <strong>h&#x00ED;fen no in&#x00ED;cio</strong>, significando que &#x00E9; um elemento <br />antecedido por outro elemento (neste caso, uma palavra primitiva)<br /><br />';
N[5][2] = new Array();

N[5][3] = new Array();
N[5][3][0] = new Array();
N[5][3][0][0] = 6;
N[5][3][0][1] = 'Palavras <strong><em>derivadas por prefixa\u00E7\u00E3o e sufixa\u00E7\u00E3o</em></strong>';
N[5][3][0][2] = new Array();

N[5][3][0][3] = '';
N[5][3][0][4] = 0;

N[5][3][1] = new Array();
N[5][3][1][0] = 2;
N[5][3][1][1] = 'Voltar a <strong><em>palavras derivadas</em></strong>';
N[5][3][1][2] = new Array();

N[5][3][1][3] = '';
N[5][3][1][4] = 0;


N[5][4] = new Array();


N[6] = new Array();
N[6][0] = 'Palavras derivadas por prefixa\u00E7\u00E3o e sufixa\u00E7\u00E3o';
N[6][1] = '<img src="form-pal-03.png" alt="Palavras derivadas por prefixa&#x00E7;&#x00E3;o e sufixa&#x00E7;&#x00E3;o (esquema)" title="Palavras derivadas por prefixa&#x00E7;&#x00E3;o e sufixa&#x00E7;&#x00E3;o (esquema)" width="334" height="258" style="float: left; margin-right: 40px; vertical-align: bottom; margin-top: 0px;"></img> Finalmente, um caso em que &#x00E0; <strong>palavra primitiva</strong> &#x00AB;atento&#x00BB;<br />foram adicionados:<br />o <strong>prefixo</strong> &#x00AB;des-&#x00BB;<br />e o <strong>sufixo </strong>&#x00AB;-mente&#x00BB;.<br /><br /><br />(nota que, nas palavras a que se adiciona &#x00AB;-<strong>mente</strong>&#x00BB;, <br />este sufixo <strong>&#x00E9; adicionado &#x00E0; forma do feminino</strong> <br />do adjectivo se este for <strong>biforme</strong>.)<br /><br /><br /><br /><br /><br /><br />';
N[6][2] = new Array();

N[6][3] = new Array();
N[6][3][0] = new Array();
N[6][3][0][0] = 3;
N[6][3][0][1] = 'O que s\u00E3o <strong><em>palavras compostas</em></strong>?';
N[6][3][0][2] = new Array();

N[6][3][0][3] = '';
N[6][3][0][4] = 0;

N[6][3][1] = new Array();
N[6][3][1][0] = 2;
N[6][3][1][1] = 'Voltar a <strong><em>palavras derivadas</em></strong>';
N[6][3][1][2] = new Array();

N[6][3][1][3] = '';
N[6][3][1][4] = 0;


N[6][4] = new Array();


N[7] = new Array();
N[7][0] = 'Palavras Compostas por Justaposi\u00E7\u00E3o';
N[7][1] = '<img src="form-pal-04.png" alt="Palavras compostas por justaposi&#x00E7;&#x00E3;o (esquema)" title="Palavras compostas por justaposi&#x00E7;&#x00E3;o (esquema)" width="300" height="237" style="float: left; margin-right: 40px;"></img>H&#x00E1; casos em que s&#x00E3;o unidas <br /><strong>duas ou mais palavras primitivas</strong>, formando uma nova palavra &mdash; com significado pr&#x00F3;prio.<br /><br />As palavras s&#x00E3;o <strong>ligadas entre si por um h&#x00ED;fen</strong>; <br />cada uma <strong>mant&#x00E9;m a sua ortografia e acentua&#x00E7;&#x00E3;o pr&#x00F3;prias</strong>.<br /> (no exemplo, havendo tr&#x00EA;s palavras, h&#x00E1; dois h&#x00ED;fenes)<br /><br /><br /><br />';
N[7][2] = new Array();

N[7][3] = new Array();
N[7][3][0] = new Array();
N[7][3][0][0] = 8;
N[7][3][0][1] = 'O que s\u00E3o <strong><em>palavras compostas por aglutina\u00E7\u00E3o</em></strong>?';
N[7][3][0][2] = new Array();

N[7][3][0][3] = '';
N[7][3][0][4] = 0;

N[7][3][1] = new Array();
N[7][3][1][0] = 3;
N[7][3][1][1] = 'Voltar a <strong><em>Palavras Compostas</em></strong>';
N[7][3][1][2] = new Array();

N[7][3][1][3] = '';
N[7][3][1][4] = 0;


N[7][4] = new Array();


N[8] = new Array();
N[8][0] = 'Palavras Compostas por Aglutina\u00E7\u00E3o';
N[8][1] = '<img src="form-pal-05.png" alt="Palavras compostas por aglutina&#x00E7;&#x00E3;o (esquema)" title="Palavras compostas por aglutina&#x00E7;&#x00E3;o (esquema)" width="262" height="216" style="float: left; margin-right: 40px;"></img>Por vezes, <strong>duas palavras primitivas fundem-se numa s&#x00F3;</strong>;<br />esta mant&#x00E9;m <strong>um &#x00FA;nico acento t&#x00F3;nico</strong>: <br />o <strong>da &#x00FA;ltima palavra</strong>.<br /> <br />Em algumas destas palavras, <strong>podem desaparecer sons</strong>:<br /><strong>vinho + acre = vinagre</strong><br />no caso de duas vogais iguais, estas fundem-se numa &#x00FA;nica.<br />(como no exemplo do esquema)<br /><br /><br /><br /><br /><br />';
N[8][2] = new Array();

N[8][3] = new Array();
N[8][3][0] = new Array();
N[8][3][0][0] = 3;
N[8][3][0][1] = 'Voltar a <strong>Palavras Compostas</strong>';
N[8][3][0][2] = new Array();

N[8][3][0][3] = '';
N[8][3][0][4] = 0;

N[8][3][1] = new Array();
N[8][3][1][0] = 0;
N[8][3][1][1] = 'In\u00EDcio: Como se formam as palavras em portugu\u00EAs?';
N[8][3][1][2] = new Array();

N[8][3][1][3] = '';
N[8][3][1][4] = 0;


N[8][4] = new Array();





//-->

//]]>


