var clickFunction
var formObj
var namemes = ["January","February","March","April","May","June","July","August","September","October","November","December"];

function bissexto(year) { ////////////////////////////////////	VERIFICA SE É ANO BISEXTO
	if (year % 4 == 0) return true// regra basica // se o ano e' bissexto
	return false // se o ano nao e' bissexto
}

function corover() {
	if (this.style.backgroundColor == '#ccd' || this.style.backgroundColor == 'rgb(204, 204, 221)') 
		this.style.backgroundColor = '#EFF'
}

function corout() {
	if (this.style.backgroundColor == '#eff' || this.style.backgroundColor == 'rgb(238, 255, 255)') 
		this.style.backgroundColor = '#CCD'
}

function maisano(){ //////////////////////////////////////////////	ADICIONA VALOR - ANO
	$$$('ano').value = parseInt($$$('ano').value)+1;
	criacalendario()
}

function menosano(){ //////////////////////////////////////////////	SUBTRAE VALOR - ANO
	$$$('ano').value = parseInt($$$('ano').value)-1;
	criacalendario()
}

function maismes(){ //////////////////////////////////////////////	ADICIONA VALOR - MÊS
	if($$$('mes').selectedIndex != 11) {
		$$$('mes').selectedIndex = $$$('mes').selectedIndex+1;
	} else {
		$$$('mes').selectedIndex = 0;
		$$$('ano').value = parseInt($$$('ano').value)+1;
	}
	criacalendario()
}

function menosmes(){ //////////////////////////////////////////////	SUBTRAE VALOR - MÊS
	if($$$('mes').selectedIndex != 0) { 
		$$$('mes').selectedIndex = $$$('mes').selectedIndex-1;
	} else {
		$$$('mes').selectedIndex = 11;
		$$$('ano').value = parseInt($$$('ano').value)-1;
	}
	criacalendario()
}

function calendar(click_, obj, top, left){ ////////////////////	INÍCIO DA CRIAÇÃO DO CALENDÁRIO
	clickFunction="formData"
	if (click_) clickFunction = click_
	if (obj) formObj = obj;

	if (!top)  top  = posy + scrollPos();
	if (!left) left = posx;
	if ($$$('calendario_')) {
		if ($$$('calendario_').innerHTML) {
			$$$('calendario_').style.top = top;
			$$$('calendario_').style.left = left;
			$$$('calendario_').style.display='block';
			return false;
		}
	} else {
		Div					= document.createElement('div');
		Div.id				= 'calendario_';
		Div.style.position	= 'absolute';
		Div.style.top		= top  + 'px';
		Div.style.left		= left + 'px';
		Div.style.width		= '190px';
		Div.style.border		= '3px #036 solid';
		Div.style.backgroundColor = '#336';
		$$$('form1').appendChild(Div);

		Div					= document.createElement('div');
		Div.id				= 'tb';
		Div.className				= 'dragbar';
		Div.style.padding = 0;
		$$$('calendario_').appendChild(Div);

		elem = document.createElement('div');
//		elem.src 	= dominio+'images/ico/fecha.jpg'
		elem.innerHTML='X';
//		elem.style.marginLeft 	= '170px'
		elem.className='btnFecha';
		elem.onclick = function () { $$$('calendario_').style.display = 'none' }
		$$$('tb').appendChild(elem);
	}

	$$$('calendario_').style.zIndex = 111111111111110;

	elem		= document.createElement('input');
	elem.type	= 'hidden';
	elem.id		= 'dia';
	elem.name	= 'dia';
	$$$('calendario_').appendChild(elem);

	selectMes					= document.createElement('select');
	selectMes.id				= 'mes';
	selectMes.name				= 'mes';
	selectMes.onchange			= criacalendario
	$$$('calendario_').appendChild(selectMes);

	var nomemes = ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];

	data = new Date();

	for (i=1; i < 13; i++) {
		$$$('mes').options[i - 1] = new Option(nomemes[i -1], i);
	}

	$$$('mes').options[data.getMonth()].selected = true;

	mmenos = document.createElement('div');
	mmenos.className				= 'btnDown';
	mmenos.onclick = menosmes
	$$$('calendario_').appendChild(mmenos);
	
	mmais = document.createElement('div');
	mmais.className				= 'btnUp';
	mmais.src	= dominio+'images/ico/up_.jpg';
	mmais.onclick = maismes
	$$$('calendario_').appendChild(mmais);

	txtano						= document.createElement('input');
	txtano.type					= 'text';
	txtano.id					= 'ano';
	txtano.name					= 'ano';
	txtano.value				= data.getFullYear()
	txtano.size					= 4;
	txtano.maxlength			= 4;
	txtano.style.padding	= '2px';
	txtano.style.marginLeft	= '12px';
	txtano.onblur				= criacalendario
	$$$('calendario_').appendChild(txtano);

	amenos = document.createElement('div');
	amenos.className				= 'btnDown';
//	amenos.src = dominio+'images/ico/down_.jpg';
	amenos.onclick = menosano
	$$$('calendario_').appendChild(amenos);

	amais = document.createElement('div');
	amais.className				= 'btnUp';
	//amais.src 	= dominio+'images/ico/up_.jpg'
	amais.onclick = maisano
	$$$('calendario_').appendChild(amais);

	rectangleDiv					= document.createElement('DIV');
	rectangleDiv.id					= 'calendario';
	$$$('calendario_').appendChild(rectangleDiv);

	criacalendario()
}

function criacalendario() {
	$$$('calendario').innerHTML = '';

	var letrasSemana = ["D","S","T","Q","Q","S","S"];

	for(var i=0; i<letrasSemana.length; i++){
		txtdia		= document.createElement('span');
		txtdia.id					= 'ts'+ i;
		txtdia.className			= 'titlebar spDiasemana';
		txtdia.innerHTML 			= letrasSemana[i];
		$$$('calendario').appendChild(txtdia);
	} 

	$$$('calendario').appendChild(document.createElement('br'));
	$$$('calendario').appendChild(document.createElement('br'));
	
	data = new Date('1 '+namemes[$$$('mes').value - 1]+' '+ $$$('ano').value);
	a = 0;
	bi = bissexto(data.getFullYear()) ? 29 : 28;
	diasmes = [31,bi,31,30,31,30,31,31,30,31,30,31];
	var primeiragenda = 0

	if (data.getDay() == 0) increase = 0; else increase = 1;

	for(var i=1; a < diasmes[data.getMonth()]; i++){
		txtweek						= document.createElement('span');
		txtweek.style.margin		= '0 1px';
		txtweek.style.width 		= '15px';
		txtweek.style.padding		= '4px';
		txtweek.style.textAlign		= 'center';
		txtweek.style.float 		= 'left';
		txtweek.style.fontFamily	= 'Courier New'
		txtweek.style.fontSize		= '12px';
		if(i < data.getDay()+increase) {
			txtweek.style.backgroundColor	= '#FFF';
			txtweek.innerHTML 				= '00';
			txtweek.style.border	= '1px #FFF solid';
			txtweek.style.color		= '#FFF';
			$$$('calendario').appendChild(txtweek);
		} else {
			a++;
			txtweek.id			 		= 'dm'+ a;
			txtweek.className			= 'janela';
			txtweek.onmousedown = function () { $$$('form1').dia.value = this.id.replace('dm','') }

			if (clickFunction) {
				txtweek.onclick = function () { eval(clickFunction)(this.id.replace('dm',''), $$$('mes').value, $$$('ano').value) }
			}
			dyndata   = new Date((a+1) +' '+ namemes[$$$('mes').value - 1] +' '+ $$$('ano').value)
			dataAtual = new Date( (parseInt($$$('diaServidor').value) + 1) +' '+ namemes[$$$('mesServidor').value - 1] +' '+ $$$('anoServidor').value)
//			alert(dataAtual)
			if (dataAtual > dyndata) {
				txtweek.style.color 			= '#855';
				txtweek.style.borderColor 		= '#855';
				txtweek.style.backgroundColor 	= '#CAA';
			} else {
				txtweek.style.borderColor		= '#CCD';
				txtweek.style.backgroundColor 	= '#CCD';
				txtweek.style.color				= '#369';
				txtweek.style.cursor			= 'pointer';
			}

			if (formObj && formObj.value && formObj.value != 'DD/MM/AAAA') {
				sdata = formObj.value.split('/')
				if(dyndata-new Date(sdata[0]+' '+namemes[sdata[1]-1]+' '+sdata[2])==86400000) {
					txtweek.style.backgroundColor 	= '#ec8';
				}
			}

			txtweek.onmouseover = corover;
			txtweek.onmouseout  = corout;

			b = '0'+ a
			if (b.length != 2) txtweek.innerHTML = a; else txtweek.innerHTML = b;

			$$$('calendario').appendChild(txtweek);
		}

	if(i % 7 == 0) {
			$$$('calendario').appendChild(document.createElement('br'));
			$$$('calendario').appendChild(document.createElement('br'));
		}
	}
}

function formData (dia, mes, ano) { /////// FUNÇÕES DE AÇÃO ////////////////////////////////////////
	ddia=dia
	dmes=mes
	if (dia.length==1) ddia='0'+eval(dia);
	if (mes.length==1) dmes='0'+eval(mes);
//	if ($$$('dm'+ dia).style.backgroundColor=='#caa') {
//		alert('Não é possível agendar para esta data.');
//		return false
//	}
	formObj.value = ddia + '/' + dmes + '/' + ano;
	$$$('calendario_').style.display = 'none';
	criacalendario()
}

function formData1 (dia, mes, ano) { /////// FUNÇÕES DE AÇÃO ////////////////////////////////////////
	ddia=dia
	dmes=mes
	if (dia.length==1) ddia='0'+eval(dia);
	if (mes.length==1) dmes='0'+eval(mes);
	if ($$$('dm'+ dia).style.backgroundColor=='#caa') {
		alert('Não é possível agendar para esta data.');
		return false
	}
	formObj.value = ddia + '/' + dmes + '/' + ano;
	$$$('calendario_').style.display = 'none';
	criacalendario()
}