function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

function trim(str) {
	if(!str || typeof str != 'string')
		return '';
	
	return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function lchk() {
	links=document.getElementsByTagName('a');
	linkpresent=false;
	for(var i=0;i<links.length;i++)
		if (((links[i].href.indexOf('www.avail.co.za') > 0) | (links[i].href.indexOf('-direct.com') > 0)) & (trim(links[i].innerHTML).length >= 5))
			linkpresent=true;

	if (!linkpresent)
		for(var i=1;i<=10;i++) {
			if (getObj('d'+calidarr[i]))
				getObj('d'+calidarr[i]).style.visibility='hidden';
			if (getObj('form'+i))
				getObj('form'+i).style.visibility='hidden';
			if (getObj('msg'+i))
				getObj('msg'+i).innerHTML='<div style="padding:10px;border:1px solid #ABABAB;background:#FFFFFF"><p><b>AVAIL / LINK REQUIRED</b></p><p>AVAIL is free for homeowners to use.  The only requirement is that a link is placed to one of the sites below on any page using the calendar.</p><li> www.capetown-direct.com</li><li> www.gardenroute-direct.com</li><li> www.durban-direct.com</li><li> www.krugerpark-direct.com</li><li> www.johannesburg-direct.com</li><li> www.victoriafalls-direct.com</li><li> www.kenyasafari-direct.com</li><li> www.avail.co.za</li><p style="color:#FF0000><b>Place a link to one of the above sites somewhere on this page to remove this message</b></p></div>';
			if (getObj('msgx'+i))
				getObj('msgx'+i).innerHTML='<div style="padding:10px;border:1px solid #ABABAB;background:#FFFFFF"><p><b>AVAIL / LINK REQUIRED</b></p><p>AVAIL is free for homeowners to use.  The only requirement is that a link is placed to one of the sites below on any page using the calendar.</p><li> www.capetown-direct.com</li><li> www.gardenroute-direct.com</li><li> www.durban-direct.com</li><li> www.krugerpark-direct.com</li><li> www.johannesburg-direct.com</li><li> www.victoriafalls-direct.com</li><li> www.kenyasafari-direct.com</li><li> www.avail.co.za</li><p style="color:#FF0000><b>Place a link to one of the above sites somewhere on this page to remove this message</b></p></div>';
		}
				
}

function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	getObj('fc_x').style.display='none';
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function Left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function replaceAll(oldStr,findStr,repStr) {
	  var srchNdx = 0;
	  var newStr = ""; 
	  while (oldStr.indexOf(findStr,srchNdx) != -1)  
	  {
	    newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx));
	    newStr += repStr;
	    srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length);        
	  }
	  newStr += oldStr.substring(srchNdx,oldStr.length);           
	  return newStr;
	}
	
function wtl(objid) {
		alert(objid);
		if (!getObj(objid).Document.body.scrollHeight)
			setTimeout('wtl('+objid+')',500);
	}

if (typeof cc=='undefined')
	cc=1;
else
	cc++;
if (typeof stylebuilderarr=='undefined')
	stylebuilderarr=new Array(10);
if (typeof calidarr=='undefined')
	calidarr=new Array(10);
if (typeof addyear=='undefined')
	addyear=new Array(10);
if (typeof addmonth=='undefined')
	addmonth=new Array(10);
if (typeof mao=='undefined')
	mao=new Array(10);
if (typeof mir=='undefined')
	mir=new Array(10);
if (typeof propidarr=='undefined')
	propidarr=new Array(10);
if (typeof useridarr=='undefined')
	useridarr=new Array(10);
if (typeof roomidarr=='undefined')
	roomidarr=new Array(10);
if (typeof ckarr=='undefined')
	ckarr=new Array(10);
if (typeof d_f=='undefined')
	d_f='dd/mm/yyyy';
ckarr[cc]=(typeof ck=='undefined')?'':ck;

cellheight=(typeof cellheight=='undefined')?'':cellheight;
cellwidth=(typeof cellwidth=='undefined')?'':cellwidth;
cellfont=(typeof cellfont=='undefined')?'Arial':cellfont;
cellfontsize=(typeof cellfontsize=='undefined')?'12px':cellfontsize;
cellavailablebg=(typeof cellavailablebg=='undefined')?'':cellavailablebg;
cellavailablecol=(typeof cellavailablecol=='undefined')?'':cellavailablecol;
celltakenbg=(typeof celltakenbg=='undefined')?'':celltakenbg;
celltakencol=(typeof celltakencol=='undefined')?'':celltakencol;
cellpendingbg=(typeof cellpendingbg=='undefined')?'':cellpendingbg;
cellpendingcol=(typeof cellpendingcol=='undefined')?'':cellpendingcol;
cellemptybg=(typeof cellemptybg=='undefined')?'':cellemptybg;
cellemptycol=(typeof cellemptycol=='undefined')?'':cellemptycol;
cellheaderbordercol=(typeof cellheaderbordercol=='undefined')?'':cellheaderbordercol;
celldaybordercol=(typeof celldaybordercol=='undefined')?'':celldaybordercol;
cellbordercol=(typeof cellbordercol=='undefined')?'':cellbordercol;
headerfontsize=(typeof headerfontsize=='undefined')?'':headerfontsize;
headerbg=(typeof headerbg=='undefined')?'':headerbg;
headerfontcol=(typeof headerfontcol=='undefined')?'':headerfontcol;
celldaybg=(typeof celldaybg=='undefined')?'':celldaybg;
celldaycol=(typeof celldaycol=='undefined')?'':celldaycol;
totalwidth=(typeof totalwidth=='undefined')?'':totalwidth;
totalheight=(typeof totalheight=='undefined')?'':totalheight;
calendarbg=(typeof calendarbg=='undefined')?'':calendarbg;
monthdecreasetext=(typeof monthdecreasetext=='undefined')?'<img src="http://www.avail.co.za/images/arrowleftmonth.gif" border="0">':monthdecreasetext;
monthincreasetext=(typeof monthincreasetext=='undefined')?'<img src="http://www.avail.co.za/images/arrowrightmonth.gif" border="0">':monthincreasetext;
yeardecreasetext=(typeof yeardecreasetext=='undefined')?'<img src="http://www.avail.co.za/images/arrowleftyear.gif" border="0">':yeardecreasetext;
yearincreasetext=(typeof yearincreasetext=='undefined')?'<img src="http://www.avail.co.za/images/arrowrightyear.gif" border="0">':yearincreasetext;

stylebuilderarr[cc]='&ch='+cellheight+'&cw='+cellwidth+'&cf='+cellfont+'&cfs='+cellfontsize+'&cab='+cellavailablebg+'&cac='+cellavailablecol+'&ctb='+celltakenbg+'&ctc='+celltakencol+'&cpb='+cellpendingbg+'&cpc='+cellpendingcol+'&hfs='+headerfontsize+'&hb='+headerbg+'&hfc='+headerfontcol+'&cdb='+celldaybg+'&cdc='+celldaycol+'&ceb='+cellemptybg+'&cec='+cellemptycol+'&cb='+calendarbg+'&chbc='+cellheaderbordercol+'&cdbc='+celldaybordercol+'&cbc='+cellbordercol;
stylebuilderarr[cc]=replaceAll(stylebuilderarr[cc],'#','<M>');

calidarr[cc]='avcal';
propidarr[cc]=(typeof id=='undefined')?'':id;
useridarr[cc]=(typeof userid=='undefined')?'':userid;
roomidarr[cc]=(typeof roomid=='undefined')?'':roomid;
checkin=(typeof checkin=='undefined')?d_f:checkin;
checkout=(typeof checkout=='undefined')?d_f:checkout;
numadult=(typeof numadult=='undefined')?1:numadult;
numchild=(typeof numchild=='undefined')?0:numchild;
kids=(typeof kids=='undefined')?'':kids;
pagefrom=(typeof pagefrom=='undefined')?'':pagefrom;
trackingcode=(typeof trackingcode=='undefined')?'':trackingcode;

//var xx=readCookie('xx');
//if (xx==null) {
//	createCookie('xx',1,1);
//}
//else
//	createCookie('xx',readCookie('xx')-(-1),1);

//alert(readCookie('xx'));
	

while(getObj(calidarr[cc]))
	calidarr[cc]+='X';

if(window.addEventListener)
window.addEventListener('load', lchk, false);
else if(window.attachEvent)
window.attachEvent('onload', lchk);

if (ckarr[cc]) {
	
	mao[cc]=(typeof monthsatonce=='undefined')?3:monthsatonce;
	mir[cc]=(typeof monthsinarow=='undefined')?3:monthsinarow;
		
	addyear[cc]=0;
	addmonth[cc]=0;
	

		
	function dateoffset(y, m, calnum, fid) {
		addyear[calnum]+=y;
		addmonth[calnum]+=m;
		if (addmonth[calnum] >= 12) {
			addyear[calnum]+=1;
			addmonth[calnum]-=12;
		}
		if (addmonth[calnum] <= -12) {
			addyear[calnum]-=1;
			addmonth[calnum]+=12;
		}
		
		var currentfr=getObj(fid);
		if (currentfr.contentDocument)
			currentroomid=currentfr.contentDocument.getElementById('roomidcurrent').value;
		else
			currentroomid=currentfr.Document.getElementById('roomidcurrent').value;
		getObj(calidarr[calnum]).src='calendar.asp?ck='+ckarr[calnum]+'&id=' + propidarr[calnum] +'&roomid=' + roomidarr[calnum] + '&nm='+mao[calnum]+'&mr='+mir[calnum]+'&ay=' + addyear[calnum] + '&am=' + addmonth[calnum]+stylebuilderarr[calnum] + '&croomid=' + currentroomid;
	}
	
}
else
	{
		document.write('<form action="http://www.avail.co.za/availability.asp?userid='+useridarr[cc]+'&id='+propidarr[cc]+'&d_f=' + d_f + '" method="post"><input type="hidden" name="pagefrom" value="' + pagefrom + '"><input type="hidden" name="trackingcode" value="' + trackingcode + '"><span id="msg'+cc+'"></span><table id="form' + cc +'" style="border-collapse:collapse;font:'+ cellfontsize + ' '+cellfont+'"><tr><td colspan=2><table style="border-collapse:collapse;font:'+ cellfontsize + ' '+cellfont+'"><tr><td>Adults (13+)</td><td align=right><select name="numadult" style="width:40px">');
		
		for(var ii=1;ii<=15;ii++) {
			txt=(ii==numadult)?'selected':'';
			document.write('<option value="' + ii + '" ' + txt + '>' + ii + '</option>');
		}				
		document.write('</select></td></tr>');
		
		sv=(kids=='yes')?'':'style="display:none"';
		cbv=(kids=='yes')?'checked':'';
		
		document.write('<tr><td>Children (0-12)</td><td align="right" style="padding-top:2px;padding-bottom:2px"><input ' + cbv + ' type="checkbox" name="kids" value="yes" id="kp" style="cursor:pointer;border:none;width:18px" size="10" onclick="tk()"></td></tr>');
		document.write('<tr><td><span ' + sv + ' id="tc1">Children (3-12)</span></td><td align=right><span ' + sv + ' id="tc2"><select name="numchild" id="nc" style="width:40px">');
		
		for(var ii=0;ii<=15;ii++) {
			txt=(ii==numchild)?'selected':'';
			document.write('<option value="' + ii + '" ' + txt + '>' + ii + '</option>');
		}
		document.write('</select></span></td></tr><tr><td><b>CHECK IN</b></td><td><b>CHECK OUT</b></td></tr><tr><td><input type="text" id="checkin'+cc+'" name="checkin" value="'+checkin+'" style="width:81px" onfocus="this.select();lc(this,'+cc+')" onclick="event.cancelBubble=true;this.select();lc(this,'+cc+')"></td><td><input type="text" id="checkout'+cc+'" name="checkout" value="'+checkout+'" style="width:81px" onfocus="this.select();lc(this,'+cc+')" onclick="event.cancelBubble=true;this.select();lc(this,'+cc+')"></td></tr></table></td></tr><tr><td colspan=2><input type=image style="width:171px;height:40px;border:none" src="http://www.avail.co.za/images/availabilitybutton.gif"></td></tr></table></form>');
		
		if (!getObj('fc_x')) {
			document.write('<table id="fc_x" style="position:absolute;border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB;display:none" cellpadding=2>');
			document.write('<tr><td style="cursor:pointer" onclick="event.cancelBubble=true;csm();"><img src="http://www.avail.co.za/images/arrowleftmonth.gif"></td><td colspan=5 id="mn" align="center" style="font:bold 13px Arial;color:#333333"></td><td align="right" style="cursor:pointer" onclick="event.cancelBubble=true;cam()"><img src="http://www.avail.co.za/images/arrowrightmonth.gif"></td></tr>');
			document.write('<tr><td align=center style="background:#ABABAB;font:12px Arial">S</td><td align=center style="background:#ABABAB;font:12px Arial">M</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">W</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">F</td><td align=center style="background:#ABABAB;font:12px Arial">S</td></tr>');
			for(var kk=1;kk<=6;kk++) {
				document.write('<tr>');
				for(var tt=1;tt<=7;tt++) {
					num=7 * (kk-1) - (-tt);
					document.write('<td id="c' + num + '" style="width:18px;height:18px">&nbsp;</td>');
				}
				document.write('</tr>');
			}
			document.write('</table>');
		}
		
		document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);
	}

// Toggle kids
function tk() {
	getObj('nc').selectedIndex=0;
	getObj('tc1').style.display=(getObj('kp').checked)?'':'none';
getObj('tc2').style.display=(getObj('kp').checked)?'':'none';
}

// Calendar script
var now = new Date;
var sccm=now.getMonth();
var sccy=now.getFullYear();
//var scfd=(now.getDate() + now.getDay()) % 7;
//var sd=now.getDate();
var ccm=now.getMonth();
var ccy=now.getFullYear();
//var cfd=(now.getDate() + now.getDay()) % 7;

var updID;
var lastcnt;
function lc(ielem,cnt) {
	updID=ielem.id;
	lastcnt=cnt;
	getObj('fc_x').style.left=Left(ielem);
	getObj('fc_x').style.top=Top(ielem)+ielem.offsetHeight;
	getObj('fc_x').style.display='';
	
	// First check date is valid
	curdt=ielem.value;
	curdtarr=curdt.split('/');
	isdt=true;
	for(var k=0;k<curdtarr.length;k++) {
		if (isNaN(curdtarr[k]))
			isdt=false;
	}
	if (isdt&(curdtarr.length==3)) {
		ccm=curdtarr[1]-1;
		ccy=curdtarr[2];
		if (d_f=='dd/mm/yyyy')
			prepcal(curdtarr[0],curdtarr[1]-1,curdtarr[2]);
		else
			prepcal(curdtarr[1],curdtarr[0]-1,curdtarr[2]);
	}
	
}	

function hc(e,calid) {
	CSE=evtTgt(e);
	if (!isChild(CSE,getObj(calid)))
		getObj(calid).style.display='none';
}

function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function c_over(e) {
	evtTgt(EvtObj(e)).style.background='#FFCC66';
}
function c_out(e) {
	evtTgt(EvtObj(e)).style.background='#C4D3EA';
}
function c_click(e) {
//	alert(updID);
	getObj(updID).value=valarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
	getObj('fc_x').style.display='none';
	
}

var mn=new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var valarr=new Array(42);

function f_cp(obj) {
	obj.style.background='#C4D3EA';
	obj.style.font='10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.textDecoration='none';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

function f_cpp(obj) {
	obj.style.background='#C4D3EA';
	obj.style.font='10px Arial';
	obj.style.color='#ABABAB';
	obj.style.textAlign='center';
	obj.style.textDecoration='line-through';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='default';
}

function f_hd(obj) {
	obj.style.background='#FFF799';
	obj.style.font='bold 10px Arial';
	obj.style.color='#333333';
	obj.style.textAlign='center';
	obj.style.border='1px solid #6487AE';
	obj.style.cursor='pointer';
}

// day selected
function prepcal(hd,cm,cy) {
	now=new Date();
	sd=now.getDate();
	td=new Date();
	td.setDate(1);
	td.setFullYear(cy);
	td.setMonth(cm);
	cd=td.getDay();
	getObj("mn").innerHTML=mn[cm]+ ' ' + cy;
	marr=((cy%4)==0)?mnl:mnn;
	for(var d=1;d<=42;d++) {
		f_cp(getObj('c'+parseInt(d)));
		if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
			dip=((d-cd < sd)&&(cm==sccm)&&(cy==sccy));
			htd=((hd!='')&&(d-cd==hd));
			if (dip)
				f_cpp(getObj('c'+parseInt(d)));
			else if (htd)
				f_hd(getObj('c'+parseInt(d)));
			else
				f_cp(getObj('c'+parseInt(d)));

			getObj('c'+parseInt(d)).onmouseover=(dip)?null:c_over;
			getObj('c'+parseInt(d)).onmouseout=(dip)?null:c_out;
			getObj('c'+parseInt(d)).onclick=(dip)?null:c_click;
			
			getObj('c'+parseInt(d)).innerHTML=d-cd;
			if (d_f=='dd/mm/yyyy')
				valarr[d]=''+(d-cd)+'/'+(cm-(-1))+'/'+cy;
			if (d_f=='mm/dd/yyyy')
				valarr[d]=''+(cm-(-1))+'/'+(d-cd)+'/'+cy;
		}
		else {
			getObj('c'+d).innerHTML='&nbsp;';
			getObj('c'+parseInt(d)).onmouseover=null;
			getObj('c'+parseInt(d)).onmouseout=null;
			getObj('c'+parseInt(d)).style.cursor='default';
			}
	}
}

prepcal('',ccm,ccy);

function cam() {
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm+=1;
	if (ccm>=12) {
		ccm=0;
		ccy++;
	}
	cdf();
	prepcal('',ccm,ccy);
}

function csm() {
	marr=((ccy%4)==0)?mnl:mnn;
	
	ccm-=1;
	if (ccm<0) {
		ccm=11;
		ccy--;
	}
	cdf();
	prepcal('',ccm,ccy);
}

function cdf() {
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
	return;
else {
	ccy=sccy;
	ccm=sccm;
	cfd=scfd;
	}
}

monthdecreasetext='';
yeardecreasetext='';
monthincreasetext='';
yearincreasetext='';
id='';
roomid='';
checkin=d_f;
checkout=d_f;
numadult=1;
numchild=0;
kids='';
