var d=document;

function clearChild(el){
	while(el.childNodes[0])el.removeChild(el.firstChild)
	}

function ce(el){
	return(d.createElement(el))
	}

function ac(el,ch){
	el.appendChild(ch);
	return(el)
	}
function ctn(txt){
	return(d.createTextNode(txt))
	}

function sa(el,atr,val){
	el.setAttribute(atr,val);
	return(el)
	}
function stils(el,stils)
	{
	sa(el,'style',stils);
	el.style.cssText=stils
	}
	
	
function changerooms(nr)
	{	
	for(var i=1;i <= 4;i++)
		if (i <= nr) stils(d.getElementById('room'+i),'clear:both')
		else 
				{
				stils(d.getElementById('room'+i),'visibility:hidden;display:none;height:0');
				}
		
	}

function changech(nr,num)
	{
	if (nr>0) stils(d.getElementById('chages'+num),'float:right')
	else stils(d.getElementById('chages'+num),'visibility:hidden;display:none;height:0');
	for(var i=1;i <= 3;i++)
		if (i <= nr) stils(d.getElementById('ch_age'+num+'_'+i),'')
		else stils(d.getElementById('ch_age'+num+'_'+i),'visibility:hidden;display:none;height:0')
		
	}

function getLastDayOfMonth(y, m){
	var d=new Date();
	d.setFullYear(y);
	d.setMonth(m);
	var tmp;
	for (var i=29; i<33; i++){
		d.setDate(i);
		tmp=d.getDate();
		if (tmp==1){
			return i-1;
		}
	}
	return 0;
}
function getFirstDayOfMonth(y, m){
	var d=new Date(y,m,1);
	var day=d.getDay();
	//alert(m);
	return day;
}
function str_to_dateobj(str){
	var ymd=str.split('-');
	var dateobj=new Date();
	var m=parseInt(ymd[1])-1;
	dateobj.setFullYear(ymd[0]);
	dateobj.setMonth(m);
	dateobj.setDate(ymd[2]);
	return dateobj;
}
function str_to_mls(str){
	var ymd=str.split('-');
	var dateobj=new Date();
	var m=parseInt(ymd[1])-1;
	dateobj.setFullYear(ymd[0]);
	dateobj.setMonth(m);
	dateobj.setDate(ymd[2]);
	var mls=dateobj.getTime();
	return mls;
}
function setArrivalEvent(depdate){
	var ymd=depdate.split('-');
	var set_d=parseInt(ymd[2]);
	var set_m=parseInt(ymd[1])-1;
	var set_y=parseInt(ymd[0]);
	var arr_date=new Date();
	arr_date.setFullYear(set_y);
	arr_date.setMonth(set_m);
	arr_date.setDate(set_d);
	var arr_date_mls=arr_date.getTime();
	var dep_date_mls=arr_date_mls+date_difference;
	var dep_date=new Date();
	dep_date.setTime(dep_date_mls);
	var dep_m=parseInt(dep_date.getMonth())+1;
	var dep_date_txt=dep_date.getFullYear()+'-'+dep_m+'-'+dep_date.getDate();
	//alert ('dep_date_txt='+dep_date_txt);
	fill_cal('departure', dep_date_txt, true);
	var arr_date_txt=ymd[0]+'-'+ymd[1]+'-'+ymd[2];
	//alert ('arr_date_txt='+arr_date_txt)
	fill_cal('arrival', arr_date_txt, true);
	document.getElementById('dateto').value=dep_date_txt;
	document.getElementById('datefrom').value=depdate;
	document.getElementById('span_arrival').innerHTML=ymd[2]+'.'+ymd[1]+'.'+ymd[0];
	document.getElementById('span_departure').innerHTML=dep_date.getDate()+'.'+dep_m+'.'+dep_date.getFullYear();
}
function setDepartureEvent(arrdate_str){
	var eventdate_mls=str_to_mls(arrdate_str);
	var depdate_str=document.getElementById('datefrom').value;
	var arrdate_mls=str_to_mls(depdate_str);
	date_difference=eventdate_mls-arrdate_mls;
	var ymd=arrdate_str.split('-');
	var m=parseInt(ymd[1])-1;
	document.getElementById('date_difference').value=date_difference;
	fill_cal('departure', arrdate_str, true);
	document.getElementById('dateto').value=arrdate_str;
	document.getElementById('span_departure').innerHTML=ymd[2]+'.'+ymd[1]+'.'+ymd[0];
}




function fill_cal(prefix, dateval, is_select_day){
	var ppp=document.getElementById('calendarrr');
		for (var i=0; i<ppp.elements.length; i++) 
			if (ppp.elements[i].name=='region[0]') 
				{
				ppp.elements[i].style.visibility='visible';
				if (ppp.elements[i].value!=-1) ppp.elements[i+1].style.visibility='visible';
				}
				
	var day_link=new Array(1,2,3,4,5,6,0);
	var cell;
	var ymd=dateval.split('-');
	//ymd[2]=parseInt(ymd[2]);
	var cur_m=parseInt(ymd[1])-1;
	//alert(prefix+': dateval='+dateval+', ymd_0='+ymd[0]+', ymd_1='+ymd[1]+', ymd_2='+ymd[2]+', cur_m='+cur_m)
	
	document.getElementById(prefix+'_m_y').value=ymd[0]+'-'+ymd[1];
	//alert('setted '+prefix+'_m_y to '+ymd[0]+'-'+ymd[1]);
	var dateobj=new Date();
	var lastDate=getLastDayOfMonth(ymd[0], cur_m);
	var cur_cell_id;
	dateobj.setFullYear(ymd[0]);
	dateobj.setMonth(cur_m);
	dateobj.setDate(ymd[2]);
	//alert('first day of month='+getFirstDayOfMonth(ymd[0], cur_m));
	var tmp_date_obj=new Date();
	//alert('on '+prefix+': dateval ='+dateval+', dateobj='+dateobj+', setted FullYear on '+ymd[0]+', month:'+cur_m+', date:'+ymd[2]);
	var cur_d=1;
	var is_started=0;
	var inner_string;
	var tmp_d;
	var tmp_m=cur_m;
	var tmp_y=ymd[0];
	var date_click_function;
	var cell_date;
	var a_class;
	if (is_select_day){
		var sel_date=str_to_dateobj(dateval);
	}
	else {
		if (prefix=='arrival'){
			var sel_date=str_to_dateobj(document.getElementById('datefrom').value);
		}
		else {
			var sel_date=str_to_dateobj(document.getElementById('dateto').value);
		}
	}
	var today=new Date();
	today.setHours(0);
	today.setMinutes(0);
	today.setSeconds(0);
	//i=week number; j=weekday
	for (var i=0; i<6; i++){
		for (var j=0; j<7; j++){
			cur_cell_id=prefix+i+j;
			//if (!document.getElementById(cur_cell_id)) alert (cur_cell_id+' is not an element');
			document.getElementById(cur_cell_id).innerHTML='&nbsp;';
			cell=i*6+j;
			if (!is_started){
				if (getFirstDayOfMonth(ymd[0], cur_m)==day_link[j]){
					is_started=1;
				}
			}
			if (is_started){
				dateobj.setDate(cur_d);
				if (cur_d <= lastDate){
					cell_date=ymd[0]+'-'+ymd[1]+'-'+cur_d;
					//alert('cur_cell_id='+cur_cell_id);
					//document.writeln('inner html for '+cur_cell_id+' is: '+cur_d+'<br>\n');
					if (prefix=='arrival'){
						date_click_function='setArrivalEvent(\''+cell_date+'\')';
					}
					else {
						date_click_function='setDepartureEvent(\''+cell_date+'\')';
					}
					//alert ('dateobj of '+cur_d+' is '+dateobj.getTime+', today time is '+today.getTime);
					if (dateobj.getTime() < today.getTime()){
						//alert ('in '+prefix+' today='+today+', dateobj='+dateobj);
						
						//document.getElementById(cur_cell_id).className='gray';
						inner_string=cur_d;
					}
					else{
						inner_string='<a id="link_'+prefix+i+j+'" href="javascript:'+date_click_function+'">'+cur_d+'</a>';
					}
					document.getElementById(cur_cell_id).innerHTML=inner_string;
					if (dateobj.getFullYear()==sel_date.getFullYear() && dateobj.getMonth()==sel_date.getMonth() && dateobj.getDate()==sel_date.getDate()){
						if (document.getElementById('link_'+prefix+i+j)) document.getElementById('link_'+prefix+i+j).className='active';
					}
					cur_d++;
				}
			}
		}
	}
}	
