
var n=navigator,B=(n.userAgent+n.appName).toLowerCase(),V=parseInt(n.appVersion);
var N4=(B.indexOf("netscape")!=-1&&V==4),IE=(B.indexOf("microsoft")!=-1);

var calForm;
var dropDayd,dropMonthd,dropDayr,dropMonthr;
var currButtonNo;

var initDay,initMonth,initYear;
var endDay,endMonth;
var numMonths;

var calWidth=142;
var calHeight=180;

var bPressed,calendar;
var calendarHTML="";
monthNames=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");//placeholders

// Global variables.
domain		= '';
path		= '/';
cName		= "";
str ="";

function savecookies(fname){
form=eval('document.'+fname); 
cName=fname;
for(i=0;i<form.elements.length;i++){
 var objType = new String(form.elements[i].type);
 if(objType.toLowerCase()=="select-one"){
  str+= form.elements[i].name + '~[' + form.elements[i].selectedIndex + ']|';
 }
}
if (str!=""){
  setCookie(fname,str);
}
}
function setCookie(name,value) {
var exp = new Date(); 
exp.setTime(today.getTime() + (1*24*60*60*1000));
document.cookie = name + "=" + (value) + 
"; expires=" + exp.toGMTString() + "; path=/";
}

function isCookies(fname)
{
    form=eval('document.'+fname);
    str="";
    cookie = document.cookie;
    var start = cookie.indexOf(fname);
    if (start == -1) return 0;
    else return 1;
}
function loadCookies(fname)
{
   form=eval('document.'+fname);
   str="";
   form.times.value="atLeastOne"
   cookie = document.cookie;
   for(i=0;i<form.elements.length;i++)
   {
   	 var objType = new String(form.elements[i].type);
     if(objType.toLowerCase() ==	 "select-one")
     {
      setF(form.elements[i]);
     }
   }
}
function setF(o) {
	var cookie = '', real_value = '';
	cookie = document.cookie;
    var oName = new String(o.name);
 var start = cookie.indexOf(oName + '~[');
	 if (start == -1) return 1;
	 var startlen = oName.length + 2;
	 start = start + startlen;
	 var end = cookie.indexOf('|', start);
	 o.selectedIndex  = cookie.substring(start, end-1);

}
if(document.getElementById("f"))
{
if(!N4)document.onmouseup=function(e){
calendar.hide();
if(bPressed){
bPressed=false;
showCalendar(e);}
}
xMousePos = 0; 
yMousePos = 0;

document.onmousemove = function (e) {
if (document.all) {
xMousePos = window.event.x-document.body.scrollLeft;
yMousePos = window.event.y-document.body.scrollTop;
}
}
}
function startUpCalendar(dd1,dm1,dd2,dm2){
if(N4)return;
if(!document.all)document.all=document.getElementsByTagName("*");
calForm=document.f;
dropDayd=calForm[dd1];dropMonthd=calForm[dm1];
calendar=new LayerFrame('cIframe');
stPos=currpos=0;


}

function setCalendar(buttonNo){
bPressed=true;
currButtonNo=buttonNo;
var currMonth=getChronMonth(eval('document.f.'+buttonNo+'dm').selectedIndex);
currpos=calHeight*currMonth;
getCalendarHTML();
var cIframe=frames['cIframe'];
cIframe.document.write(calendarHTML);
cIframe.document.close();
}

function showCalendar(e){

posX=xMousePos;posY=yMousePos;
doc_height=document.body.clientHeight+(IE?document.body.scrollTop:0);
if(posY>doc_height-calHeight)calendar.show(posX,posY-calHeight+20)
else calendar.show(posX,posY);		
}

function LayerFrame(id){
this.style=eval('document.all.'+id).style;
this.reset=cReset;
this.show=function(x,y){cReset();this.style.left=x;this.style.top=y;}
this.hide=function(){this.style.top=-2000;}
this.next=scrollDown;
this.previous=scrollUp;
}

function cReset(){
cIframe.scroll(0,currpos);//keep state
}

function scrollDown(){
currpos+=calHeight;
cIframe.scroll(0,currpos);
}

function scrollUp(){
currpos-=calHeight;
if(currpos>0)cIframe.scroll(0,currpos);
else{currpos=stPos;calendar.reset();}
}

function displayDate(dt){
calendar.hide();

var DMY=dt.split("/");
var day=DMY[0]-1;
var month=DMY[1]-1;
var year=DMY[2];
setDropdowns(day,month,year,currButtonNo);
}

function setDropdowns(dv,mv,dy,bn){
var drDay=eval('document.f.'+bn+"dd");
var drMonth=eval('document.f.'+bn+"dm");
var drYr=eval('document.f.'+bn+"dy");
drYr.selectedIndex=dy-(today.getFullYear());
selOptionVal(drMonth,mv);
selOptionVal(drDay,dv);
}


function selOptionVal(ob,val){
ob.selectedIndex=val;
}

function hasOptionVal(ob,val){
var ops=new Object();
for(var i=0;i<ob.length;i++)ops[ob[i].value]=ob[i];
if(ops[val])return true;
else return false;
}

function getChronMonth(month){
var cM=month-initMonth;
return (cM<0)?cM+12:cM;
}

function getCalendarHTML(){
var color = '#102070';
var rightImage = 'http://www.parkandsave.co.uk/arrowr.gif';
var leftImage = 'http://www.parkandsave.co.uk/arrowl.gif';
var tImage = 'http://www.parkandsave.co.uk/t.gif';

var week_days = 'MTWTFSS';
var closeText = 'Close';
calendarHTML="";
var currDate=new Date(Date.UTC(initYear,initMonth,initDay));//yyyy/mm from 0/d from 1

calendarHTML+='<html><head><title>Calendar</title><style type="text/css">body{font-family:Verdana,sans-serif;font-size:8pt;}a{text-decoration:none;}a:hover{text-decoration:underline;}td{font-family:Verdana,Helvetica,sans-serif;font-size:8pt;text-align:center;color:#cccccc}td a{color:#000000;}b{color:#000000;}.white{color:#FFFFFF;font-weight:bold;}</style></head><body bgcolor="#e0ba6d" leftmargin="1" topmargin="1">'

for(i=1;i<=numMonths;i++){//For each month

var month=currDate.getMonth();//mm is from 0
var numDays=getNumDays(month+1);
var year=currDate.getYear()-2000;
if(year<10)year="0"+year;

currDate.setDate(1);//set to first of the month and get day of the week
var firstDay=currDate.getDay()-1;//Sun is 0 from getDay() but we run from Mon
if(firstDay<0)firstDay=6;

//Compile HTML
var monthHTML='\
<table border="0" cellspacing="0" cellpadding="0" width=140  height="20" bgcolor=#102070><TR  height="20" ><TD align=left width=32>';
if(i>1)
monthHTML+='<a href="javascript:parent.calendar.previous()"><img src="' + leftImage + '" align=absmiddle  border="0" width="32" height="16" alt="&lt;&lt;Prev"></a>';
else
monthHTML+='<img src="' + tImage + '" width="32" height="16" border="0">';

monthHTML+='</td><td align=center>&nbsp;<span class="white">'+ monthNames[month] + ' ' + year + '</span>&nbsp;</td><td align=right width=32>';

if(i<numMonths)
monthHTML+='<a href="javascript:parent.calendar.next()"><img src="' + rightImage + '" align=absmiddle   border="0" width="32" height="16" alt="Next&gt;&gt;"></a>';
else
monthHTML+='<img src="' + tImage + '" width="32" height="16" border="0">';

monthHTML+='</td></tr></table><table border="0" cellspacing="0" cellpadding="0" height="140" width="140" bgcolor="#FFFFFF"><tr><td height="20" width="20"><b>' + week_days.charAt(0) + '</b></td><td width="20"><b>' + week_days.charAt(1) + '</b></td><td width="20"><b>' + week_days.charAt(2) + '</b></td>\
<td width="20"><b>' + week_days.charAt(3) + '</b></td><td width="20"><b>' + week_days.charAt(4) + '</b></td><td width="20"><b>' + week_days.charAt(5) + '</b></td><td width="20"><b>' + week_days.charAt(6) + '</b></td></tr>';

for(j=0;j<42;j+=7){//for 6 week slots in month

monthHTML+='<tr height="20" >';

for(k=1;k<8;k++){//for each day of week

var slotNo=j+k;
var countFromFirstDay=slotNo-firstDay;
var isLink=(slotNo>firstDay)&&(countFromFirstDay<=numDays);
var preDays=(month==initMonth&&countFromFirstDay<initDay);
if(currButtonNo=="r"){
var M=dropMonthd.selectedIndex*1,D=dropDayd.selectedIndex+1;
var M1=getChronMonth(M),cM=getChronMonth(month);
preDays=(cM<M1)||(cM==M1&&countFromFirstDay<D);}
var postDays=(month==endMonth&&countFromFirstDay>endDay);
var dateToShow=(isLink)?countFromFirstDay:'';

//compile displayDate('dd/mm/yyyy') argument for link
var dateDay=countFromFirstDay;
var dateMonth=currDate.getMonth()+1;
var dateYear=currDate.getYear();
var dateString=dateDay+"/"+dateMonth+"/"+dateYear;

//Write table cell with link
monthHTML+='<td height="20">';
if(isLink&&!preDays&&!postDays)
monthHTML+='<a href="javascript:parent.displayDate(\''+dateString+'\')">';
monthHTML+=dateToShow;
if(isLink&&!preDays&&!postDays)
monthHTML+='</a>';
monthHTML+='</td>';
}
monthHTML+='</tr>';
}
monthHTML+='</table>'
monthHTML+='<table border="0" cellspacing="0" cellpadding="0" width=140 height="20" bgcolor=#102070><TR height="20" ><TD align=left width=32>'
if(i>1)
monthHTML+='<a href="javascript:parent.calendar.previous()"><img src="' + leftImage + '" align=absmiddle  border="0" width="32" height="16"  alt="&lt;&lt;Prev"></a>';
else
monthHTML+='<img src="' + tImage + '" width="32" height="16" border="0">';

monthHTML+='</td><td align=center>&nbsp<a href="javascript:parent.calendar.hide()" class="white">' + closeText + '</a>&nbsp</td><td align=right width=32>';


if(i<numMonths)
monthHTML+='<a href="javascript:parent.calendar.next()"><img src="' + rightImage + '" align=absmiddle   border="0" width="32" height="16"  alt="Next&gt;&gt;"></a>';
else
monthHTML+='<img src="' + tImage + '" width="32" height="16" border="0">';

monthHTML+='</td></tr></table>'

calendarHTML+=monthHTML+'</body></html>';

currDate.setMonth(currDate.getMonth()+1);
}
}

function getNumDays(M){
if(M==2){ 
var febYear=(initMonth<=2)?initYear:initYear*1+1; 
var febDate=new Date(Date.UTC(febYear,1,29));//yyyy/mm from 0/d from 1 
return (febDate.getMonth()==1)?29:28; 
} 
else return (M==9||M==4||M==6||M==11)?30:31;
}
//end
if(document.getElementById("f"))
{
document.write('<IFRAME style="position:absolute;width:'+calWidth+';height:'+calHeight+';left:34;top:-500; z-index:2" noresize frameborder="0" scrolling="no" id="cIframe" name="cIframe" src="javascript:\'Loading...\'"></IFRAME>');

var today = new Date();
var nextwk= new Date(today.getTime() + (8*86400000));
if(isCookies('f'))
{
  loadCookies('f');

}
else
{
setDropdowns(today.getDate()-1,today.getMonth(),today.getFullYear(),'d');
setDropdowns(nextwk.getDate()-1,nextwk.getMonth(),nextwk.getFullYear(),'r');
}

initDay=today.getDate()*1,initMonth=today.getMonth()*1,initYear=today.getFullYear();
endDay=initDay,endMonth=initMonth+4;
numMonths=4;
currButtonNo="r";
startUpCalendar('ddd','ddm','rdd','rdm');
}



