var cardno=1
var cardcounter=0
var cardnumber=new Array()
var dspl=new Array()
var ontimerfile=new Array()
var timervalue=new Array()
var gohref=new Array()
var wmlfile=""
var sourcecode=""
var optname=""
var optvalue=""
var scrolltext=""
var goOK=""
var backOK=false
var nextOK=false
var variableOK=false
var selecttext=""
var prevwmlfile=""
var txt=new Array()
var cardid=new Array()
var cardtitle=new Array()
var dotype=new Array()
var dolabel=new Array()

if (navigator.userAgent.indexOf("Firefox")>-1)
	{
	cardat=0
	cardwidth=310
	cardheight=80
	}
else
	{
	cardat=0
	cardwidth=150
	cardheight=80
	}

function load_ready()
{
document.getElementById("wmlfile").value="caption"
document.getElementById("source").value=""
}

function traverse(obj)
{
if (obj.id=="backbtn")
	{
	if (cardcounter==0)
		{
		return false
		}
	if (cardno==1)
		{
		return false
		}
	backOK=true
	cardno=cardno-1
	resetcardat()
	displaycards()
	}
if (obj.id=="acceptbtn")
	{
	if (cardcounter==0)
		{
		return false
		}
	if (document.getElementById("carddisplay").childNodes[0].nodeName=="#text")
		{
		if (document.getElementById("carddisplay").childNodes[1])
			{
			if (document.getElementById("carddisplay").childNodes[1].nodeName=="FORM")
				{
				getvariable()
				}
			}
		}
	if (document.getElementById("carddisplay").childNodes[0].nodeName=="FORM")
		{
		getvariable()
		}
	if (cardno==0)
		{
		return false
		}
	if (cardno==cardcounter)
		{
		return false
		}
	if (gohref[cardno]!="")
		{
		goOK=gohref[cardno]
		if (goOK.substr(0,1)=="#")
			{
			goOK=goOK.substr(1,goOK.length)
			}
		readcards()
		}
	else
		{
		nextOK=true
		cardno=cardno+1
		}
	resetcardat()
	displaycards()
	}
}

function fileselect(obj)
{
goOK=""
if (obj.id=="wmlfile")
	{
	if (obj.value=="caption")
		{
		return false
		}
	prevwmlfile=wmlfile
	wmlfile=obj.value
	resetcardat()
	readcards()
	cardno=1
	displaycards()
	}
else
	{
	resetcardat()
	readcards()
	cardno=1
	displaycards()
	}
}


function readcards()
{
var x,xx,xxx,xxxx,i,ii,iii,iiii,l,ll,lll,llll,j
cardcounter=0
var xmlDoc
// code for IE
if (window.ActiveXObject)
	{
	xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
	}
// code for Mozilla, etc.
else
	{
    xmlDoc=document.implementation.createDocument("","",null);
	}
xmlDoc.async=false
xmlDoc.load(wmlfile + "?r=" + Math.random())
x=xmlDoc.documentElement.getElementsByTagName("wml")
l=x.length
for (i=0;i<l;i++)
	{
	sourcecode=x[i].childNodes[0].nodeValue
	}
if (window.ActiveXObject)
	{
	xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
	xmlDoc.async=false
	xmlDoc.loadXML(sourcecode)
	}
// code for Mozilla, etc.
else
	{
	var doc=new DOMParser();
	xmlDoc=doc.parseFromString(sourcecode,"text/xml");
	}
x=xmlDoc.getElementsByTagName("wml")
l=x.length
for (i=0;i<l;i++)
	{
	xx=x[i].getElementsByTagName("card")
	ll=xx.length
	for (ii=0;ii<ll;ii++)
		{
		cardcounter=cardcounter+1
		for (j=1;j<=cardcounter;j++)
			{
			txt[cardcounter]=""
			cardid[cardcounter]=""
			cardtitle[cardcounter]=""
			dotype[cardcounter]=""
			dolabel[cardcounter]=""
			gohref[cardcounter]=""
			cardnumber[cardcounter]=cardcounter
			if (xx[ii].getAttribute("id")!="")
				{
				cardid[cardcounter]=xx[ii].getAttribute("id")
				}
			if (xx[ii].getAttribute("title")!="")
				{
				cardtitle[cardcounter]=xx[ii].getAttribute("title")
				}
			if (xx[ii].getAttribute("ontimer")!="")
				{
				ontimerfile[cardcounter]=xx[ii].getAttribute("ontimer")
				xxx=xx[ii].getElementsByTagName("timer")
				lll=xxx.length
				for (iii=0;iii<lll;iii++)
					{
					if (xxx[iii].getAttribute("value")!="")
						{
						timervalue[cardcounter]=xxx[iii].getAttribute("value")
						}
					}
				}
			xxx=xx[ii].getElementsByTagName("do")
			lll=xxx.length
			for (iii=0;iii<lll;iii++)
				{
				if (xxx[iii].getAttribute("label")!="")
					{
					dolabel[cardcounter]=xxx[iii].getAttribute("label")
					}
				else
					{
					dolabel[cardcounter]=""
					}
				if (xxx[iii].getAttribute("type")!="")
					{
					dotype[cardcounter]=xxx[iii].getAttribute("type")
					}
				else
					{
					dotype[cardcounter]=""
					}
				xxxx=xxx[iii].getElementsByTagName("go")
				llll=xxxx.length
				for (iiii=0;iiii<llll;iiii++)
					{
					gohref[cardcounter]=xxxx[iiii].getAttribute("href")
					}
				}
			xxx=xx[ii].getElementsByTagName("p")
			lll=xxx.length
			for (iii=0;iii<lll;iii++)
				{
				findnodes(xxx[iii])
				}
			}
		}
	}
}	


function trim(str)
{
if(!str || typeof str != 'string')
	{
	return null;
	}
return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}

		
function findnodes(z)
{
var x,xx,xxx,i,ii,iii,l,ll,lll
radiocount=1
x=z.childNodes
l=x.length
for (i=0;i<l;i++)
	{
	if (x[i].nodeName=="#text")
		{
		txt[cardcounter]=txt[cardcounter] + x[i].nodeValue
		}
	if (x[i].nodeName=="br")
		{
		txt[cardcounter]=txt[cardcounter] + "<br />"
		}
	if (x[i].nodeName=="b")
		{
		txt[cardcounter]=txt[cardcounter] + "<b>" + x[i].childNodes[0].nodeValue + "</b>"		
		}
	if (x[i].nodeName=="em")
		{
		txt[cardcounter]=txt[cardcounter] + "<em>" + x[i].childNodes[0].nodeValue + "</em>"		
		}
	if (x[i].nodeName=="strong")
		{
		txt[cardcounter]=txt[cardcounter] + "<strong>" + x[i].childNodes[0].nodeValue + "</strong>"		
		}
	if (x[i].nodeName=="i")
		{
		txt[cardcounter]=txt[cardcounter] + "<i>" + x[i].childNodes[0].nodeValue + "</i>"		
		}
	if (x[i].nodeName=="u")
		{
		txt[cardcounter]=txt[cardcounter] + "<u>" + x[i].childNodes[0].nodeValue + "</u>"		
		}
	if (x[i].nodeName=="big")
		{
		txt[cardcounter]=txt[cardcounter] + "<big>" + x[i].childNodes[0].nodeValue + "</big>"		
		}
	if (x[i].nodeName=="small")
		{
		txt[cardcounter]=txt[cardcounter] + "<small>" + x[i].childNodes[0].nodeValue + "</small>"		
		}
	if (x[i].nodeName=="table")
		{
		txt[cardcounter]=txt[cardcounter] + "<table>"		
		xx=x[i].getElementsByTagName("tr")
		ll=xx.length
		for (ii=0;ii<ll;ii++)
			{
			txt[cardcounter]=txt[cardcounter] + "<tr>"
			xxx=xx[ii].getElementsByTagName("td")
			lll=xxx.length
			for (iii=0;iii<lll;iii++)
				{
				txt[cardcounter]=txt[cardcounter] + "<td>" + xxx[iii].childNodes[0].nodeValue + "</td>"
				}
			txt[cardcounter]=txt[cardcounter] + "</tr>"
			}
		txt[cardcounter]=txt[cardcounter] + "</table>"
		}
	if (x[i].nodeName=="a")
		{
		wmlfile=x[i].getAttribute("href")
		txt[cardcounter]=txt[cardcounter] + "<u><a onclick='fileselect(this)' onmouseover='cursorhand(this)'>" + x[i].childNodes[0].nodeValue + "</a></u>"		
		}
	if (x[i].nodeName=="anchor")
		{
		xx=x[i].getElementsByTagName("go")
		ll=xx.length
		for (ii=0;ii<ll;ii++)
			{
			wmlfile=xx[ii].getAttribute("href")
			}
		xx=x[i].getElementsByTagName("prev")
		ll=xx.length
		for (ii=0;ii<ll;ii++)
			{
			if (prevwmlfile!="")
				{
				wmlfile=prevwmlfile
				}
			}
		xx=x[i].getElementsByTagName("refresh")
		ll=xx.length
		for (ii=0;ii<ll;ii++)
			{
			wmlfile=wmlfile
			}
		txt[cardcounter]=txt[cardcounter] + "<u><a onclick='fileselect(this)' onmouseover='cursorhand(this)'>" + x[i].childNodes[0].nodeValue + "</a></u>"
		}
	if (x[i].nodeName=="img")
		{
		imgsrc=x[i].getAttribute("src")
		imgalt=x[i].getAttribute("alt")
		txt[cardcounter]=txt[cardcounter] + "<img src='" + imgsrc + "' alt='" + imgalt + "'/>"
		}
	if (x[i].nodeName=="input")
		{
		inputname=x[i].getAttribute("name")
		inputsize=x[i].getAttribute("size")
		txt[cardcounter]=txt[cardcounter] + "<input class='wapdemo' type='text' size='" + inputsize + "' name='" + inputname + "'>" + "<br/>"
		}	
	if (x[i].nodeName=="select")
		{
		txt[cardcounter]=txt[cardcounter] + "<form name='formname'>"
		optname=x[i].getAttribute("name")
		multiple=x[i].getAttribute("multiple")
		if (multiple=="true")
			{
			xx=x[i].getElementsByTagName("option")
			ll=xx.length
			for (ii=0;ii<ll;ii++)
				{
				optvalue=xx[ii].getAttribute("value")
				txt[cardcounter]=txt[cardcounter] + "<input value='" + optvalue + "' type='checkbox' name='" + optname + "'>" + xx[ii].childNodes[0].nodeValue + "<br/>"
				}
			}
		else
			{
			xx=x[i].getElementsByTagName("option")
			ll=xx.length
			for (ii=0;ii<ll;ii++)
				{
				optvalue=xx[ii].getAttribute("value")
				if (radiocount==1)
					{
					txt[cardcounter]=txt[cardcounter] + "<input checked value='" + optvalue + "' type='radio' name='" + optname + "'>" + xx[ii].childNodes[0].nodeValue + "<br/>"
					}
				else
					{
					txt[cardcounter]=txt[cardcounter] + "<input value='" + optvalue + "' type='radio' name='" + optname + "'>" + xx[ii].childNodes[0].nodeValue + "<br/>"
					}
				radiocount=radiocount+1
				}
			}
		txt[cardcounter]=txt[cardcounter] + "</form>"
		}
	if (x[i].nodeName=="fieldset")
		{
		fldtitle=x[i].getAttribute("title")
		txt[cardcounter]=txt[cardcounter] + "<fieldset><legend>" + fldtitle + "</legend>"
		findnodes(x[i])
		txt[cardcounter]=txt[cardcounter] + "</fieldset>"
		}
	}
}

function displaycards()
{
var text=""
if (document.forms["myform"]["myinput"].value!="")
	{
	variableOK=true
	selecttext=document.forms["myform"]["myinput"].value
	}
document.getElementById("source").value='<?xml version="1.0"?>' + sourcecode
if (goOK!="" && backOK==false && nextOK==false)
	{
	for (i=1;i<=cardcounter;i++)
		{
		if (goOK==cardid[i])
			{
			cardno=cardnumber[i]
			if (cardtitle[i]!="")
				{
				document.getElementById("titledisplay").innerHTML="<b>" + cardtitle[i] + "</b>"
				}
			else
				{
				document.getElementById("titledisplay").innerHTML="&nbsp;"
				}
			if (txt[i]!="")
				{
				if (variableOK==true)
					{
					for (k=0;k<txt[i].length;k++)
						{
						pxp=txt[i].substr(k,1)
						if (pxp=="$")
							{
							pxp=selecttext
							k=k+(txt[i].length-k)
							}
						text=text + pxp
						}
					document.getElementById("carddisplay").innerHTML=text
					}
				else
					{
					document.getElementById("carddisplay").innerHTML=txt[i]
					}
				}
			else
				{
				document.getElementById("carddisplay").innerHTML="&nbsp;"
				}
			if (dolabel[i]!="")
				{
				document.getElementById("acceptdisplay").innerHTML="<b>" + dolabel[i] + "</b>"
				}
			else
				{
				if (cardcounter>1 && i<cardcounter)
					{
					document.getElementById("acceptdisplay").innerHTML="<b>Next</b>"
					}
				else
					{
					document.getElementById("acceptdisplay").innerHTML="&nbsp;"
					}
				}
			if (i>1)
				{
				document.getElementById("backdisplay").innerHTML="<b>Back</b>"
				}
			else
				{
				document.getElementById("backdisplay").innerHTML="&nbsp;"
				}
			if (ontimerfile[i]!="" && timervalue[i]!="" && ontimerfile[i]!="undefined" && timervalue[i]!="undefined" && ontimerfile[i] && timervalue[i])
				{
				cardtimer(ontimerfile[i],timervalue[i])
				ontimerfile[i]=""
				timervalue[i]=""
				}
			}
		}
	backOK=false
	nextOK=false
	}
else
	{
	if (cardtitle[cardno]!="" && cardtitle[cardno]!=null)
		{
		document.getElementById("titledisplay").innerHTML="<b>" + cardtitle[cardno] + "</b>"
		}
	else
		{
		document.getElementById("titledisplay").innerHTML="&nbsp;"
		}
	if (txt[cardno]!="")
		{
		document.getElementById("carddisplay").innerHTML=txt[cardno]
		}
	else
		{
		document.getElementById("carddisplay").innerHTML="&nbsp;"
		}
	if (dolabel[cardno]!="")
		{
		document.getElementById("acceptdisplay").innerHTML="<b>" + dolabel[cardno] + "</b>"
		}
	else
		{
		if (cardcounter>1 && cardno<cardcounter)
			{
			document.getElementById("acceptdisplay").innerHTML="<b>Next</b>"
			}
		else
			{
			document.getElementById("acceptdisplay").innerHTML="&nbsp;"
			}
		}
	if (cardno>1)
		{
		document.getElementById("backdisplay").innerHTML="<b>Back</b>"
		}
	else
		{
		document.getElementById("backdisplay").innerHTML="&nbsp;"
		}
	if (ontimerfile[cardno]!="" && timervalue[cardno]!="" && ontimerfile[cardno]!="undefined" && timervalue[cardno]!="undefined" && ontimerfile[cardno] && timervalue[cardno])
		{
		cardtimer(ontimerfile[cardno],timervalue[cardno])
		ontimerfile[cardno]=""
		timervalue[cardno]=""
		}
	backOK=false
	nextOK=false
	}
}




function scrolldown()
{
if (cardat<document.getElementById("carddisplay").offsetHeight-cardheight)
	{
	cardat=cardat + 10
	cardwidth=cardwidth-10
	document.getElementById("carddisplay").style.clip="rect(" + cardat + "px 135px " + (cardat + cardheight) + "px 0px)"
	document.getElementById("carddisplay").style.top=cardwidth + "px"
	}
}

function scrollup()
{
if (cardat>0)
	{
	cardwidth=cardwidth+10
	cardat=cardat-10
	document.getElementById("carddisplay").style.clip="rect(" + cardat + "px 135px " + (cardat + cardheight) + "px 0px)"
	document.getElementById("carddisplay").style.top=cardwidth + "px"
	}
}

function fastdown()
{
scrolldown()
scrolltimer=setTimeout("fastdown()",100)
}

function fastup()
{
scrollup()
scrolltimer=setTimeout("fastup()",100)
}

function stopscrolltimer()
{
clearTimeout(scrolltimer)
}

function resetcardat()
{
if (navigator.userAgent.indexOf("Firefox")>-1)
	{
	cardat=0
	cardwidth=310
	cardheight=80
	}
else
	{
	cardat=0
	cardwidth=150
	cardheight=80
	}
document.getElementById("carddisplay").style.clip="rect(" + cardat + "px 135px " + (cardat + cardheight) + "px 0px)"
document.getElementById("carddisplay").style.top=cardwidth + "px"
}

var timercount=1
var timer

function cursorhand(elmnt)
{
elmnt.style.cursor="pointer"
}

function getvariable()
{
var radioselect=document.forms["formname"].name
for (j=0;j<radioselect.length;j++)
	{
	if (radioselect[j].checked)
		{
		selecttext=radioselect[j].value
		document.forms["myform"]["myinput"].value=selecttext
		}
	}
}

function cardtimer(ontimerfile,timervalue)
{
wmlfile=ontimerfile
valuecount=timervalue
if (timercount==timervalue)
	{
	clearTimeout(timer)
	timercount=1
	readcards()
	displaycards()
	}
else
	{
	timercount++
	timer=setTimeout("cardtimer(wmlfile,valuecount)",100)
	}
}

function stoptimer()
{
clearTimeout(timer)
}