
function ymd(dateObject)
{
	y = dateObject.getFullYear();
	m = dateObject.getMonth()+1;
	if(m<10)
		m = '0'+m;
	mDate = dateObject.getDate();
	if(mDate<10)
		mDate = '0'+mDate;
	return y+'-'+m+'-'+mDate;
}

function ymdToDate(vYmd)
{
	vYmd = vYmd.split('-');
	return new Date(vYmd[0],vYmd[1]-1,vYmd[2]);
}



calendar = new Object();

calendar.format = function(dStr)
{
	d = ymdToDate(dStr);
	rStr = date_format;
	regexp = /%Y/g;
	rStr = rStr.replace(regexp,d.getFullYear());
	m = d.getMonth()+1;
	if(m<10)
		m = '0'+m;
	md = d.getDate()
	if(md<10)
		md = '0'+md;
	regexp = /%m/g;
	rStr = rStr.replace(regexp,m);
	
	regexp = /%d/g;
	newStr = rStr.replace(regexp,md);
	return newStr;
}

calendar.unformat = function(dStr)
{
	ar = date_format.split(date_separator);
	ar1 = dStr.split(date_separator);
	newStr = new Array()
	for(is=0;v = ar[is];is++)
	{
		if(v=='%Y')
		{
			newStr[0]=ar1[is];
		}
		if(v=='%m')
		{
			newStr[1]=ar1[is];
		}
		if(v=='%d')
		{
			newStr[2]=ar1[is];
		}
	}
	return newStr.join('-');
}

calendar.create = function(obj)
{
	html = '<div style="z-index:1px;clear:left;">'
	html += '<div style="float:left;">';
	change ="";
	//onfocus="calendar.show('+obj.name+')"
	jsChange = "";
	//alert(obj.name)
	if(obj.id=='start-date')
		jsChange = ' onchange="setEndDate()" ';
	html += '<input type="text" id="'+obj.id+'" '+jsChange+' name="'+obj.fName+'" value="'+calendar.format(obj.value)+'" class="date-input" style="font-size:12px;"/>';
	html += '</div><div style="float:left;">&nbsp;<a href="#" onclick="return calendar.show('+obj.name+')"><img src="/rent/calendar1.png" style="vertical-align:middle;"/></a>';
	html += '<div id="'+obj.id+'-container" class="calendar">';
	html += '</div></div></div>';
	document.getElementById(obj.id+"-box").innerHTML = (html);
	document.getElementById(obj.id).onChange=obj.change;

}

function debug(str)
{
	debugt = document.getElementById('debug');
	debugt.innerHTML += str + '<br/>';
}
calendar.populate = function(target,pD)
{
	if(!pD)
	{
		el = document.getElementById(target.id);
		value = calendar.unformat(el.value);//.split('-');
		pD = ymdToDate(value);
		//pD = new Date(value[0],value[1]-1,value[2]);
	}
	if(isNaN(pD.getMonth()))
	{
		pD = new Date(today.getFullYear(),today.getMonth(),today.getDate());
	}
	month = pD.getMonth();
	year = pD.getFullYear();
	selector = "<select style=\"font-size:12px;\" onchange=\"selectChange("+target.name+",this)\">";
	d = new Date(today.getFullYear(),today.getMonth(),1);
	isSelected = false;
	for(i=today.getMonth();i<today.getMonth()+12;i++)
	{
		selected = "";
		value = d.getFullYear()+','+d.getMonth();
		if(value==year+","+month)
		{
			selected = ' selected '
			isSelected = true;
		}
		selector += '<option '+selected+' value="'+value+'">'+d.getFullYear()+" " +months[d.getMonth()]+'</option>';
		d.setMonth(d.getMonth()+1);
		
	}
	if(!isSelected)
		selector += '<option selected value="'+year+","+(month-1)+'">'+year+" " +months[month-1]+'</option>';
	d = new Date(year,month,1);
	selector += "</select>";
	//alert(selector);
	c = document.getElementById(target.id+'-container');
	goBack = "&nbsp;";
	//d.getMonth()>today.getMonth()&& 
	if(today.getFullYear()<d.getFullYear() || today.getMonth()< d.getMonth() && d.getFullYear()==today.getFullYear())
		goBack = '<a href="" onclick="return calendar.populate('+target.name+',new Date('+d.getFullYear()+','+(d.getMonth()-1)+',1))">«</a>';
	goNext = "&nbsp;"
	
	if(ymd(d)<ymd(maxDate))
	goNext = '<a href="" onclick="return calendar.populate('+target.name+',new Date('+d.getFullYear()+','+(d.getMonth()+1)+',1))">»</a>';
	
	html = '<table style="width:100%;">';
	html += '<tr>';
	html += '<td style="width:20px;text-align:left;">'+goBack+'</td>';
	html += '<td style="text-align:center;">'+selector+'</td>';
	html += '<td style="width:20px;text-align:right;">'+goNext+'</td>';
	html += '</tr>';
	html += '</table><table style="width:100%;">';
	d = new Date(year,month,1);
	dStart = new Date(d.getFullYear(),month,1);
	i=8;
	
	while(dStart.getDay()!=1)
	{
		dStart.setDate(dStart.getDate()-1);
		i--;
		if(i==0)
			break;
	}
	dEnd = new Date(year,month+1,1);
	i=8;
	while(dEnd.getDay()!=1)
	{
		dEnd.setDate(dEnd.getDate()+1);
		i--;
		if(i==0)
			break;
	}
	i=50;
	input = document.getElementById(target.id);
	min = 0;
	if(target.minDate)
		min = (target.minDate())
	else
		min = target.minDateValue;
	
	//	alert(min);
	while(dEnd>dStart)
	{
		if(dStart.getDay()==1)
			html += '<tr>';
		classes = "calendar";
		if(dStart.getMonth()==month)
			classes += " calendar_in";
		if(calendar.format(ymd(dStart))==input.value)
			classes += " selected";
		dStr = '<a href="#" onclick="return selectDate('+target.name+','+dStart.getFullYear()+','+dStart.getMonth()+','+dStart.getDate()+');">'+dStart.getDate()+'</a>';
		//alert(dStart);
		//break;
		if(ymd(dStart)<=min)
			dStr = dStart.getDate();
		html += '<td class="'+classes+'">'+dStr+'</td>';
		if(dStart.getDay()==0)
			html += '</tr>';
		dStart.setDate(dStart.getDate()+1);
		i--;
		if(i==0)
			break;
	}
	html += "</table>";
	c.innerHTML = html;
	return false;
}
calendar.show = function(cObj)
{
	ul = document.getElementById('underlay');
	ul.style.display='block';
	ul.style.width='100%';
	ul.style.height='100%';
	con = document.getElementById(cObj.id+'-container');
	con.style.display='block';
        con.style.position='absolute';
	input = document.getElementById(cObj.id);

	document.getElementById(cObj.id).focus();
	calendar.populate(cObj,false);
	if(cObj.id=='end-date')
		document.getElementById('start-date-container').style.display='none';
	else
		document.getElementById('end-date-container').style.display='none';
	return false;
}
calendar.hide = function()
{
	document.getElementById('underlay').style.display='none';
	document.getElementById(calendar1.id+'-container').style.display='none';
	document.getElementById(calendar2.id+'-container').style.display='none';
	return false;
}
function selectChange(target,sel)
{
	dd = sel.options[sel.selectedIndex].value.split(",");
	calendar.populate(target,new Date(dd[0],dd[1],1));
}
function selectDate(sTarget,sYear,sMonth,sDay)
{
	sMonth+=1;
	if(sMonth<10)
		sMonth = "0"+sMonth;
	if(sDay<10)
		sDay = "0"+sDay;
	el = document.getElementById(sTarget.id);
	el.value = calendar.format(sYear + "-" +sMonth + "-" + sDay);
	calendar.hide();
	if(el.onChange)
		el.onChange()
	return false;
}

function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	while(1) 
	{
		curleft += obj.offsetLeft;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.x)
	curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	while(1)
	{
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.y)
	curtop += obj.y;
	return curtop;
}


function popup(imageSrc,nWidth,nHeight)
{
   var nXpos = (screen.availWidth - nWidth) / 2;
   var nYpos = (screen.availHeight - nHeight) / 2;

   window.open(imageSrc, "Legend", 
                  "top=" + nYpos + ",left=" + nXpos +
                  ",screenY=" + nYpos + ",screenX=" + nXpos +
                  ",height=" + nHeight + ",width=" + nWidth +
                  ",toolbar=false,resizable,scrollbars=true");
	return false;
}

function sValidate()
{
	valid = false;
	f = document.getElementById('search');
	if(!f.start.value || !f.end.value || f.start.value >= f.end.value)
	{
		alert(errors[1])
		return false;
	}
	return true;
}