/*
var hbgcolor = '#004080';//'#cb833d';
var hfgcolor = '#ffffff';
var bgcolor = '#ffffff';
var fgcolor = '#b0b0b0';
var nowcolor = '#800000';
var datcolor = '#1187e7';
var bdrcolor = '#808080';
var selcolor = '#000000';//'#004080';
var imgFile='/styles/images/delete.gif';
*/
function showCompCalendar(shift){
	//check if calendar forward shift limit is set and if it is then prevent month shifting beyond that value
	try{
		if(maxCalendarShift!=null){
			if(shift > maxCalendarShift){
				shift = maxCalendarShift;
			}
		}
	}catch(e){
		//if limit is not defined do nothing
	}
	//
	var now=new Date();
	var d=new Date(now.getFullYear(),now.getMonth(),now.getDate());
	var wd=new Date(d.getFullYear(),d.getMonth()+shift,1);
	var month = wd.getMonth();
	var cal="";
	var value="";
	//cal+=('<script language="JavaScript" src="jslib/calLibFlexComp.js" type="text/javascript"></script>');
	//cal+=('<script language="JavaScript" src="jslib/scriptaculous-js-1.7.0/lib/prototype.js" type="text/javascript"></script>');
	//cal+=('<script language="JavaScript" src="jslib/scriptaculous-js-1.7.0/src/scriptaculous.js" type="text/javascript"></script>');
	cal+=('<center>');
	cal+=('<div id="CompDayCal">');
	cal+=('<table border=0 cellspacing=0 cellpadding=1>');
	cal+=('<tr>');
	cal+=('<td valign=top>');
	cal+=('<div id="CompDayTable" style="width:15em; height:13em; overflow:auto; border: 1px solid '+bdrcolor+';">');
	cal+=('<table border=0 cellspacing=0 cellpadding=1>');
	cal+=('<tr>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Sun</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Mon</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Tue</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Wed</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Thu</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Fri</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Sat</font></td>');					
	cal+=('</tr>');
	for(var j=0;j<6;j++){
		cal+=('<tr>');
		for(var i=0;i<7;i++){
			if(wd.getDay()==i && month==wd.getMonth()){
				value=wd.getFullYear()+zeropad(wd.getMonth()+1)+zeropad(wd.getDate());
				cal+=('<td align=center bgcolor="'+bgcolor+'"><div id="'+value+'"><a href="javascript:addCompDate(\''+value+'\')"><font color="'+(sameDates(d,wd)?nowcolor:datcolor)+'">'+wd.getDate()+'</font></a></div></td>');
				wd=new Date(wd.getFullYear(),wd.getMonth(),wd.getDate()+1);
			}else{
				cal+=('<td bgcolor="'+bgcolor+'">&nbsp;</td>');
			}
		}
		cal+=('</tr>')
	}
	wd=new Date(wd.getFullYear(),wd.getMonth(),wd.getDate()-1);
	cal+=('<tr>');
	//Prevent from going back beyond Jan 2000
	if((zeropad(wd.getMonth())+""+wd.getFullYear())=="002000"){
		cal+=('<td align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">&nbsp;</font></td>');
	}else{
		cal+=('<td align=center bgcolor="'+hbgcolor+'"><a href="javascript:shiftCompMonth('+(shift-1)+');"><font color="'+hfgcolor+'">&lt;&lt;</font></a></td>');
	}
	cal+=('<td align=center colspan=5 bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">'+moy(wd.getMonth())+' '+wd.getFullYear()+'</font></td>');
	cal+=('<td align=center bgcolor="'+hbgcolor+'"><a href="javascript:shiftCompMonth('+(shift+1)+');"><font color="'+hfgcolor+'">&gt;&gt;</font></a></td>');
	cal+=('</tr>');
	cal+=('</table>');
	cal+=('</div>');
	cal+=('</td>');
	cal+=('<td valign=top bgcolor="'+bgcolor+'">');
	cal+=('<div style="width:10em; height:13em; overflow:auto; border: 1px solid '+bdrcolor+';">');
	cal+=('<div id="CompPickedDaysHolder" align="center"><font class=normal><br>Please select<br>date</font></div>');
	cal+=('<ul id="CompPickedDays"></ul>');
	cal+=('</div>');
	cal+=('</td>');
	cal+=('</tr>');
	cal+=('<tr>');
	cal+=('<td align=center><a href="javascript:addCompAll()"><font color="'+datcolor+'">Add All</font></a>');
	cal+=('</td>');
	cal+=('<td align=center><a href="javascript:removeCompAll()"><font color="'+datcolor+'">Remove All</font></a>');
	cal+=('</td>');
	cal+=('</tr>');
	cal+=('</table>');
	cal+=('</div>');
	return cal;

}
//
/*
function moy(n){
	switch(n){
		case 0:return "January";
		case 1:return "February";
		case 2:return "March";
		case 3:return "April";
		case 4:return "May";
		case 5:return "June"
		case 6:return "July";
		case 7:return "August";
		case 8:return "September";
		case 9:return "October";
		case 10:return "November";
		case 11:return "December";
	}
}
//
function sameDates(d1,d2){
	if(d1.getFullYear()==d2.getFullYear() &&
	   d1.getMonth()==d2.getMonth() &&
	   d1.getDate()==d2.getDate())
	   return true;
	else
	   return false;
}
//
function zeropad(n){
	if((n+"").length==1)
		return "0"+n;
	else
		return n+"";
}
//
function transform(d){
	return (d.substring(4,6)+'/'+ d.substring(6,8)+'/'+d.substring(0,4));
}
*/
//
function shiftCompMonth(n){
	if (!$('CompDailyCalendar').empty()){
		var IDs = $('CompPickedDays').immediateDescendants().collect(function (li) {return li.id.match(/\d+$/)[0];});
		Element.remove('CompDayCal');
	}
	$('CompDailyCalendar').innerHTML=showCompCalendar(n);	
	if(IDs!=null){
		IDs.each(addCompDate);
	}
}
//
function addCompDate(dvalue) {
	Element.hide('CompPickedDaysHolder');
	var date = transform(dvalue);
	var html = '<li id="day'+dvalue+'"><span><font color="'+selcolor+'">'+date+'</font></span> <a href="javascript:void(0);" onclick="removeCompDate(\''+dvalue+'\')"><img src="'+imgFile+'" alt="Remove" border=0></a></li>';
	var inserted = false, skip=false;
	
	$('CompPickedDays').immediateDescendants().each(function(li) {
		if ($(li).firstChild.innerHTML.toLowerCase().indexOf(date.toLowerCase())>=0){
			skip=true;
			throw $break;
		}
	});

	if(!skip){
		if (!inserted){
			new Insertion.Bottom('CompPickedDays', html);
		}
	}
}
//
function removeCompDate(dvalue) {
	Element.remove("day"+dvalue);
	if ($('CompPickedDays').empty()){
		Element.show('CompPickedDaysHolder');
	}
}
//
function removeCompAll() {
	var IDs = $('CompPickedDays').immediateDescendants().collect(function (li) {return li.id.match(/\d+$/)[0];});
	IDs.each(removeCompDate);
}
//
function addCompAll() {
	var IDs = $('CompDayTable').descendants().findAll(function(div){return parseInt(div.id)>0;}).collect(function (div) {return div.id.match(/\d+$/)[0];});
	IDs.each(addCompDate);
}
//
function showQuickCompCalendar(shift,x,y,tgt){
	var now=new Date();
	var d=new Date(now.getFullYear(),now.getMonth(),now.getDate());
	var wd=new Date(d.getFullYear(),d.getMonth()+shift,1);
	var month = wd.getMonth();
	var cal="";
	var value="";
	cal+=('<div id="CompQCal" style="border: 1px solid '+bdrcolor+';">');
	cal+=('<table border=0 cellspacing=0 cellpadding=1>');
	cal+=('<tr>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Sun</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Mon</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Tue</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Wed</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Thu</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Fri</font></td>');
	cal+=('<td width="14%" align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">Sat</font></td>');					
	cal+=('</tr>');
	for(var j=0;j<6;j++){
		cal+=('<tr>');
		for(var i=0;i<7;i++){
			if(wd.getDay()==i && month==wd.getMonth()){
				value=wd.getFullYear()+zeropad(wd.getMonth()+1)+zeropad(wd.getDate());
				cal+=('<td align=center bgcolor="'+bgcolor+'"><div id="'+value+'"><a href="javascript:setCompQDate(\''+value+'\',\''+tgt+'\')"><font color="'+(sameDates(d,wd)?nowcolor:datcolor)+'">'+wd.getDate()+'</font></a></div></td>');
				wd=new Date(wd.getFullYear(),wd.getMonth(),wd.getDate()+1);
			}else{
				cal+=('<td bgcolor="'+bgcolor+'">&nbsp;</td>');
			}
		}
		cal+=('</tr>')
	}
	wd=new Date(wd.getFullYear(),wd.getMonth(),wd.getDate()-1);
	cal+=('<tr>');
	//Prevent from going back beyond Jan 2000
	if((zeropad(wd.getMonth())+""+wd.getFullYear())=="002000"){
		cal+=('<td align=center bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">&nbsp;</font></td>');
	}else{
		cal+=('<td align=center bgcolor="'+hbgcolor+'"><a href="javascript:shiftCompQCal('+(shift-1)+','+x+','+y+',\''+tgt+'\');"><font color="'+hfgcolor+'">&lt;&lt;</font></a></td>');
	}
	cal+=('<td align=center colspan=5 bgcolor="'+hbgcolor+'"><font color="'+hfgcolor+'">'+moy(wd.getMonth())+' '+wd.getFullYear()+'</font></td>');
	cal+=('<td align=center bgcolor="'+hbgcolor+'"><a href="javascript:shiftCompQCal('+(shift+1)+','+x+','+y+',\''+tgt+'\');"><font color="'+hfgcolor+'">&gt;&gt;</font></a></td>');
	cal+=('</tr>');
	cal+=('</table>');
	cal+=('</div>');
	return cal;

}
//
function shiftCompQCal(n,x,y,t){
	$('CompHelperCalendar').setStyle({top : y, left : x});
	if($('CompHelperCalendar')!=null){
		$('CompHelperCalendar').innerHTML=showQuickCompCalendar(n,x,y,t);
		$('CompHelperCalendar').show();
	}
}
//
function setCompQDate(v,t){
	var y='comp'+t+'y_r';
	var m='comp'+t+'m_r';
	var d='comp'+t+'d_r';
	if($('CompHelperCalendar')!=null){
		setFormSelect(y,v.substring(0,4));
		setFormSelect(m,v.substring(4,6));
		setFormSelect(d,v.substring(6,8));
		$('CompHelperCalendar').hide();
		$('CompHelperCalendar').setStyle({top : 0, left : 0});
	}
}
//
/*
function setFormSelect(s,v){
	var obj=eval('document.mainForm.'+s);
	for(var j=0; j<obj.options.length; j++){
		if(obj.options[j].value==v){
			obj.selectedIndex=j;
			break;
		}
	}
}
*/