

//<! --<script language="JavaScript">-->

//entries=new Array();

dayNames = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

mons=new Array ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

months = new Array("NONE","January","February","March","April","May","June","July","August","September","October","November","December");

var tt;

var fText="";

function df(inText){

	fText=fText+lR()+inText;

}



function debugPopText(varName){

	var tS=escape(varName);

	var regExp=/¬/g;

	var repText=lR();

	if (!(tS==null)){

		if (tS.length>0){

			tS=tS.replace(regExp,repText);

		}

	}

	var dString="width=950,height=500,top=100,left=100";

	var wString = "var w=window.open('popupBoxWinster.htm?&cols=100&text="+tS+"','sInfo','dependent=yes,scrollbars=yes,resizable=yes,"+dString+"');";

	eval (wString);

}



function EventFromWeb(groupChar,dateString,desc,decHours,isExternal){

	if (arguments.length<4){
		decHours=19.5;
	}
	if (arguments.length<5){
		isExternal=false;
	}
	Event(groupChar,dateString,unescape(desc),decHours,isExternal);

}



function dmEvent(groupChar,dayOfWeek,weekInMonth,firstMonth,firstYear,finalMonth,finalYear,desc,decHours,isExternal){

	//0=Sunday, 1=Monday, 5=Friday, 6=Saturday

	var focusMonth;

	var focusYear;

	var goDateString;

	//rest of this year

	focusYear=firstYear;

	for (var focusMonth=firstMonth; focusMonth<12;focusMonth++){

		

		if ((firstYear==finalYear) && (focusMonth>finalMonth)){

			return;

		}

		goDateString=indexDate(focusMonth, focusYear, dayOfWeek, weekInMonth);

		//alllert("1:month=" + focusMonth +" - Year=" + focusYear+ " string=" +goDateString);

		Event(groupChar,goDateString,desc,decHours,isExternal);

	}

	if (firstYear==finalYear){

			return;

		}

	//all of middle years

	for (focusYear=aV(firstYear,1);focusYear<finalYear;focusYear++){

		for (var focusMonth=0; focusMonth<12;focusMonth++){

			goDateString=indexDate(focusMonth, focusYear, dayOfWeek, weekInMonth);

			Event(groupChar,goDateString,desc,decHours,isExternal);

			//alllert("2:month=" + focusMonth +" - Year=" + focusYear+ " string=" +goDateString);

		}

	}

	

	//first bit of final year

	focusYear=finalYear;

	for (var focusMonth=0; focusMonth<=finalMonth;focusMonth++){

		goDateString=indexDate(focusMonth, focusYear, dayOfWeek, weekInMonth);

		Event(groupChar,goDateString,desc,decHours,isExternal);

		//alllert("3:month=" + focusMonth +" - Year=" + focusYear+ " string=" +goDateString);

	}

}

function aV(){

	var tV=0;

	for (var a=0;a<arguments.length;a++){

		tV+= parseInt(parseInt(arguments[a]));

	}

	return tV;

}

function indexDate(Month, Year, StartOfWeekDay, targetIndex) {

	//returns 2nd Wednesday of month (etc)

	//0=Sunday

	var tS="";

	var a=0;

	var hitDate;

	_Date = new Date(Year, aV(Month,-1), 1);

	_LastDate = new Date();

	_LastDate = new Date(_Date);

	_LastDate.setMonth(_Date.getMonth() + 1);

	_LastDate.setHours(_LastDate.getHours() - 24);

	var I = 1

	while (I <= _LastDate.getDate()) {

		_Date.setDate(I);

		if (_Date.getDay() == StartOfWeekDay) {

			a+=1;

			if (a==targetIndex){

				hitDate=new Date(_Date);

				var tS= hitDate.getDate()+"/"+aV(hitDate.getMonth(),1)+"/"+hitDate.getFullYear();

				return tS;

			}

		    I += 6;

		  }

		  I++;

	}

}



function test(){

	dmEvent("V",5,4,1,2005,11,2005,"<b>Mobile Police Station in Winster</b> outside Market House",10);

	//var tX=indexDate(1,2005,5,4);

	//alllert (tX);

	alert(tt);

}

function cEvent(groupChar,dateString,desc,decHours,isExternal){

	tt+=dateString +"~"+desc;

}

function noEndString(inString,stringToLose,leaveLeft,leaveRight){//015

	if ((stringToLose==null)||(stringToLose.length==0)){

		return inString;

	}

	if (arguments.length<4){

		var leaveRight=false;

	}

	if (arguments.length<3){

		var leaveLeft=false;

	}

	if (!leaveRight){

		//trim right

		while (inString.substr(inString.length-stringToLose.length,stringToLose.length)==stringToLose){

			inString=inString.substr(0,inString.length-stringToLose.length);

		}

	}

	if (!leaveLeft){

		//trim left

		while (inString.substr(0,stringToLose.length)==stringToLose){

			inString=inString.slice(stringToLose.length);

		}

	}

	return inString;

}

function stripLeadingZero(inString){

	return noEndString(inString,"0",false,true);

}







function Event(groupChar,dateString,desc,decHours,isExternal){
    
	//alllert("'Event' run for "+desc);

	if (arguments.length<4){

		var hrs=19;

		var mins=30;

		//alllert("DEFAULT - hrs="+hrs+"   mins="+mins);

	} else {

		var hrs = parseInt(decHours);

		var mins = parseInt((decHours-hrs)*60);

	}

	if (arguments.length<5){

		var isExternal=false;

	}

	var tA = dateString.split(",");

	//alllert("tA length="+tA.length);

	for (var a=0;a<tA.length;a++){

		//alllert("date string is "+tA[a]);

		var tB=tA[a].split("/");

		var nowDate=new Date();

		var eventYear = tB[2];

		if (eventYear<100){

			eventYear=stripLeadingZero(eventYear);

			eventYear=aV(eventYear,2000);

		}

		var eDate = new Date(eventYear,tB[1]-1,tB[0],hrs,mins);

		var dayName = dayNames[eDate.getDay()];

		var monthName = mons[tB[1]-1];

		var eDateString= dayName+" "+tB[0]+" "+monthName;

		//alllert("a: eDate is "+eDate.toLocaleString());

		if (isFuture(eDate)){

			//alllert("b: eDate is "+eDate.toLocaleString());

			entries[entries.length]=new eData(groupChar,eDate,eDateString,desc,isExternal);

			//testString+="<p>dateString="+dateString+" *decHours="+decHours+"eDate+"+eDate+"</p>";

		}

		

	}

	

}



function incDate(anyDate, n){

	//-- Returns the date that is n days from any date object.

	//-adjusts for change of summertime

	var nowSecs=Date.parse(anyDate);

	var newDate = new Date();

	newDate.setTime(nowSecs+(n*1000*60*60*24));

	var hourChange = newDate.getTimezoneOffset()- anyDate.getTimezoneOffset();

	if (!(hourChange==0)){

		newDate.setTime(nowSecs+(n*1000*60*60*24)+(hourChange*60*1000));

	}

	return newDate;

}



function RegularEvent(groupChar,day1,month1,year1,day2,month2,year2,intervalDays,noToShow,desc,followText,decHours){

	if (arguments.length==10){

		var hrs=19;

		var mins=30;

	} else {

		var hrs = parseInt(decHours);

		var mins = parseInt((decHours-hrs)*60);

		//alllert("desc="+desc+"    hrs="+hrs+"   mins="+mins);

	}

	var nowDate=new Date();

	var eDate1 = new Date(year1,month1-1,day1,hrs,mins);

	var eDate2 = new Date(year2,month2-1,day2,hrs,mins);

	//alllert("eDate1="+eDate1.toLocaleString()+"     eDate2="+eDate2.toLocaleString());

	var increment=0;

	var count=noToShow;

	var thisDate=eDate1;

	do {

		thisDate=incDate(thisDate, increment);

		//alllert("thisDate="+thisDate);

		var dayName = dayNames[thisDate.getDay()];

		var monthName = mons[thisDate.getMonth()];

		var eDateString= dayName+" "+thisDate.getDate()+" "+monthName;

		if (count==1){

			eDateString+="<br>"+followText;

		}

		increment=intervalDays;

		if (isFuture(thisDate)){

			entries[entries.length]=new eData(groupChar,thisDate,eDateString,desc);

			//alllert("added new eData for date="+thisDate);

			count--;

		}

	} while ((thisDate<eDate2)&&(count>0));

}



function eData(eGroupChar,eDate,eDateString,desc,isExternal){

	if (arguments.length<5){

		var isExternal=false;

	}

	//alllert("eData gets date as "+eDate.toLocaleString());

	if ((eGroupChar==null)||(eGroupChar.length==0)){

		this.hasGroupChar=false;

	} else {

		this.hasGroupChar=true;

		this.groupChar=eGroupChar;

	}

	this.hasGroupChar=eGroupChar;

	this.groupChar=eGroupChar;

	this.dateString= eDateString;

	this.date=eDate;

	var regExp=/’/g;

	this.desc=desc.replace(regExp,"'");

	this.year=eDate.getFullYear();

	this.isExternal=isExternal;

}

function dateOrder(a,b){

	return a.date-b.date;

}



function lR(nRet){//016 adds  Line-Return(s)

	var rC=String.fromCharCode(10);

	var tS = rC;

	if(arguments.length==0){nRet=1}

	while (nRet>1){

		tS += rC;

		nRet = nRet-1;

	}

	return tS;

}

function setNoon(anyDate){

	var anyDate2=anyDate;

	return anyDate2.setHours(12,0,0,0);

}

function showList(incString,showLinks,popup,doNotResetFtext){

	if (!(doNotResetFtext)){

		fText="";

	}

	var tS ="";

	var prevDateString="";

	var prevExternal = false;

	var prevToday=false;

	var isExternal=false;

	var isFirst=true;

	entries.sort(dateOrder);

	var currentYear= 2003;//dummy

	df("<tr><td><img src='shim.gif' width='185' height='1'></td><td>&nbsp;</td></tr>");

	var u=0;

	var nu=0;

	var g=0;

	//alllert("entries.length="+entries.length);

	for (var a=0; a<entries.length;a++){

		var isExternal=false;

		var isToday=false;

		var showDate=true;

		var endSpacerClass="sp";

		if ((incString==null)||(incString.length==0)){

			var useThis=true;

		} else {//looking for match with incString

			if (entries[a].hasGroupChar){

				g++;

				if (entries[a].groupChar.indexOf(incString)==-1){

					var useThis=false;

					//alllert("MISS: incString="+incString+lR()+"entries["+a+"].groupChar="+entries[a].groupChar+lR()+"result="+entries[a].groupChar.indexOf(incString));

				} else {

					var useThis=true;

					//alllert("HIT incString="+incString+lR()+"entries["+a+"].groupChar="+entries[a].groupChar+lR()+"result="+entries[a].groupChar.indexOf(incString));

				}

			} else {

				var useThis=false;

			}

		}

		if (useThis){

			u++;

			if (!(entries[a].year==currentYear)){

				currentYear=entries[a].year;

				df("<tr><td colspan='2'class='yearHeader'>"+entries[a].year+"</td></tr>");

			}

			var thisDate = new Date();

			/*if (setNoon(entries[a].date)==setNoon(thisDate)){

				var pText="<tr><td class='today' colspan='2'><span class='todayHeader'>TODAY</span></td></tr>";

				var cS1=" class='today'";

			} else {

				var pText="";

				var cS1="";

			}*/

			

			if ((setNoon(entries[a].date)==setNoon(thisDate))&&(!popup)){

				var cN="today";

				isToday=true;

				if (entries[a].isExternal){

					var isExternal=true;

					var cS1=" class='externalToday'";

				} else {

					var cS1=" class='today'";

				}

				

				if ((prevToday==isToday)||(popup)){

					pText="";

				} else {

					var pText="<tr><td class='today' colspan='2'><span class='todayHeader'>"

					pText+="TODAY";

					pText+="</span></td></tr>";

				}

				

			} else {

				if (entries[a].isExternal){

					var isExternal=true;

					var cS1=" class='external'";

				} else {

					var cS1="";

				}

				var pText="";

			}

			prevToday=isToday;

			tS="<tr>"+pText+"<td valign='top' "+cS1+">";

			var thisDateString = entries[a].dateString

			if ((thisDateString==prevDateString) && (isExternal==prevExternal)){

				tS+="&nbsp;";

			} else {

				tS+=entries[a].dateString;

			}

			prevDateString=thisDateString;

			prevExternal=isExternal;

			tS+="</td>";

			if (showLinks){

				var entryText=entries[a].desc;

			} else {

				var entryText=stripLink(entries[a].desc);

			}

			entryText=upQuote(entryText);

			tS+="<td"+cS1+">"+entryText+"</td></tr>";

			//tS+="<td>"+entries[a].date.toLocaleString()+" - "+entries[a].desc+"</td></tr>";//temp

			if (isFirst){

			} else {

				if (prevToday && isToday){

					endSpacerClass="spToday";

				} else {

					endSpacerClass="sp";

				}

				df("<tr><td colspan='2' class='"+endSpacerClass+"'>&nbsp;</td></tr>");

			}

			df(tS);

			

		} else {

			nu++;

		}

	isFirst=false;

	}

	//alllert("fText=" + fText);

	if (popup) {

		debugPopText("fText");

	}

	document.writeln(fText);

	//alllert("STATS:"+lR()+"u="+u+lR()+"nu="+nu+lR()+"g="+g);

}



function stripLink(inText){

	var startLink=inText.indexOf("<a href");

	if (startLink==-1){

		return inText;

	}

	var newText=inText.substr(0,startLink);

	var restText=inText.substr(startLink);

	var endLink=restText.indexOf(">")+1;

	if (endLink==-1){alert("error in endLink");return inText}

	newText+= restText.substr(endLink);

	newText=newText.replace("</a>","");

	return newText;

}

/*function d(i){

	document.writeln(i);

}*/

function writeHeader(headerText){

	df("<table width='760' border='0' cellspacing='0' cellpadding='0'>");

	df("<tr><td colspan='2'>&nbsp;</td></tr>");

	if ((headerText)&&(headerText.length>0)){

		df("<tr><td colspan='2'class='h1'>"+headerText+"</td></tr>");

	}

	df("<tr>");

	/*d("<tr><td colspan='2'>&nbsp;</td></tr>");

	df("<td class='h3'>Date</td><td class='h3'>Event</td>");

	df("</tr>");*/

	

	df("<tr>");

	df("<td><img src='shim.gif' width='150' height='1'></td><td><img src='shim.gif' width='150' height='1'></td>");

	df("</tr>");

}



function writeFooter(){

	df("</td></tr>");

	df("</table>");

}

function upQuote(uqText){

	//turns single quote to double-quote, and § (alt-0167) to single quote

	var newString=String.fromCharCode(34);//double-quote

	if (uqText.indexOf(newString)>-1){//already has double-quotes, so upQuoted

		return uqText;

	}

	var tS = "" + uqText+ "";

	if (tS==null){

		return "";

	}

	if (tS.length==0){

	} else {

		tS=tS.replace(/'/g,newString);

		tS = tS.replace(/§/g,"'");

		return tS;

	}

}

function proofList(){

	//alllert("prooflist");

	var currentYear= 0;

	var tS="<table width='760' border='0' cellspacing='0' cellpadding='0' bgColor='yellow'>"+lR();

	tS+="<tr><td><img src='shim.gif' width='160' height='1'></td><td><img src='shim.gif' width='590' height='1'></td></tr>"+lR();;

	for (var a=0; a<entries.length;a++){

		//alllert("a="+a);

		if (!(entries[a].year==currentYear)){

			currentYear=entries[a].year;

			tS+="<tr><td colspan='2'><b>"+entries[a].year+"</b></td></tr>"+lR();

		}

		tS+="<tr><td valign='top'>"+entries[a].dateString+"</td>";

		tS+="<td align='left'>"+upQuote(entries[a].desc)+"</td></tr>";

		tS+="<tr><td colspan='2' class='sp'>&nbsp;</td></tr>"+lR();

	}

	//alllert("proofList is about to return: "+tS+lR()+"entries length="+entries.length);

	return tS;

}

function isFuture(anyDate) {

	//returns true if anyDate is today (any time) or later

	//alllert("anyDate.getTime="+anyDate.getTime()+ "   year= "+anyDate.getFullYear());

	var futureDate=new Date(anyDate.getFullYear(),anyDate.getMonth(),anyDate.getDate());

	//futureDate.setFullYear(anyDate.getFullYear());

	//alllert("futureDate.getTime="+futureDate.getTime());

	var nowDate = new Date();

	nowDate.setHours(0);

	nowDate.setMinutes(0);

	nowDate.setSeconds(0);

	nowDate.setMilliseconds(0);

	/*var tS="isFuture: anyDate="+anyDate.toLocaleString()+" ("+futureDate.getTime()+")";

	tS+= "   nowDate="+nowDate.toLocaleString()+" ("+nowDate.getTime()+ ")   RESULT="+(futureDate >= nowDate);

	alert(tS);*/

	return (futureDate.getTime() >= nowDate.getTime());

}