
//function objToString(o){s='';for(aProp in o){s += aProp + "\t";}return s;}
var cal_only=0;
var is_nav=0;
var Events = Array();

function set_day(day){
	if(cal_only==1){
		mt = document.getElementById('month');
		yr = document.getElementById('year');
		deptCond = window.opener.document.getElementById('deptDateCondensed');
		deptCond.value = yr.value + '/' + mt.value + '/' + day;
		window.close();
	}else if(is_nav!=1){
		clearTravelContent();
	}else{ // is_nav must equal one
		document.getElementById('mini_cal').submit();
	}

	return true;
}


function set_year(eventform){
	populateCalEvents(0,1,eventform);
}


function get_mycalFilter(){
	try{
		var MapKey = document.getElementById('mycal_filter').value;
	}catch(e){
		var MapKey = 'Events';
	}
	return MapKey;
}

function populateCalEvents(dir,update_only,eventform){
	// don't pass the month get it from the select box
	var yearId = '';
	var monthId = '';
	if(eventform == 1){
		var yearId = 'Submit';
		var monthId = 'Submit';		
		var y=document.getElementById('year'+yearId);
		var m=document.getElementById('month'+monthId);	
	}else{
		var y=document.getElementById('year');
		var m=document.getElementById('month');	
		
	}

	var mth=m.options[m.selectedIndex].value;
	var yr=y.options[y.selectedIndex].value;
	var MapKey = get_mycalFilter();
	if(!update_only){
		if(dir){//add
			mth++;
			if(mth>12){mth=1;yr++;}
		}else{
			mth--;
			if(mth==0){mth=12;yr--;}
		}
	}

	pm=mth;
	if(mth<10){mth="0"+mth;}
	ind = yr + "" + mth;
	p=-1;

	if(is_nav==1){
		for(x=0;x< Events[MapKey].length;x++){
			if(Events[MapKey][x][0]==ind){
				p=x;break;
			}
		}
		eveArr=(p!=-1)? Events[MapKey][p][1]: [];
		write_month(yr,mth,0,eveArr);
	}
	
	// set the month and year box ... if your in event submit mode you have two of them to set...
	for(x=0;x < m.options.length;x++){
		if(m.options[x].value == pm){m.selectedIndex=x;}
	}
	for(x=0;x < y.options.length;x++){
		if(y.options[x].value == yr){y.selectedIndex=x;}
	}	

	if(eventform == 1){
		var y=document.getElementById('year');
		var m=document.getElementById('month');
		for(x=0;x < m.options.length;x++){
			if(m.options[x].value == pm){m.selectedIndex=x;}
		}
		for(x=0;x < y.options.length;x++){
			if(y.options[x].value == yr){y.selectedIndex=x;}
		}			
	}else{
		try{
			var y=document.getElementById('yearSubmit');
			var m=document.getElementById('monthSubmit');
			for(x=0;x < m.options.length;x++){
				if(m.options[x].value == pm){m.selectedIndex=x;}
			}
			for(x=0;x < y.options.length;x++){
				if(y.options[x].value == yr){y.selectedIndex=x;}
			}			
		}catch(e){
			//alert('failed');		
		}		
	}


	if(is_nav!=1){
		set_month(1);
	}

}

function set_month(update_only,is_event_form){
	if(cal_only==1 || is_nav==1){
		populateCalEvents(0,1,is_event_form);
		return true;
		//m=document.getElementById('mini_cal');m.submit();return true;
	}
	var m=document.getElementById('month');
	var year=document.getElementById('year');
	var mth = m.value;
	if(mth.length==1){mth="0"+mth;}
	var yr=year.value;
	var highlight = [];
	var dept=(default_dept=='')?[document.getElementById('leavingFrom').value]:default_dept.split('|');
	var dest=document.getElementById('goingTo');
	DEST=(dest==null)? default_dest.split("|") : dest.value.split("|");
	s_i= yr+""+mth;
	var f = -1;
	var cL=0;
	var cR=0;
	for(d in DEST){
		for(w=0;w < dept.length;w++){
			for(x=0;x < Dept[pcfl][dept[w]].length;x++){
				if(Dept[pcfl][dept[w]][x][0] == DEST[d]){
					for(y=0;y < Dept[pcfl][dept[w]][x][4][0].length;y++){
						if(Dept[pcfl][dept[w]][x][4][0][y] == s_i){
							for(z in Dept[pcfl][dept[w]][x][4][1][y]){						
								highlight.push(Dept[pcfl][dept[w]][x][4][1][y][z]);
							}
							break;
						}
					}
					if(cL && cL > Dept[pcfl][dept[w]][x][4][2][0] || !cL){cL=Dept[pcfl][dept[w]][x][4][2][0];}
					if(cR && cR < Dept[pcfl][dept[w]][x][4][2][1] || !cR){cR=Dept[pcfl][dept[w]][x][4][2][1];}
					break;
				}
			}
		}
	}
	aR=document.getElementById('nav-month-right');
	aL=document.getElementById('nav-month-left');
	aL.style.display=(cL >= s_i || dest.value == 0)?'none':'inline';
	aR.style.display=(cR <= s_i || dest.value == 0)?'none':'inline';
	m.value = parseFloat(mth);
	year.value = yr;
	write_month(yr,mth,'POST',highlight);
	return true;
}



function isLeap(year){
 if ((year%400==0)||((year%4==0)&&(year%100!=0))) {return true;}
 else {return false;}
}


function write_month(yr,mth,mode,highlight){
	// we should have passed a standardized array of dates to highlight and the method for which we are posting those dates...
	// now we need to cycle through the calendar grid and write the appropriate code for each day...
	// alert('Year:'+yr+'   Month:'+mth+'   highlight:'+highlight);
	// we should be writing the calendar regardless of whether we have a highlight or not...
	// figure out what day the first is ex MON TUEs
	var myDate = new Date();
	myDate.setFullYear(yr,mth-1,1);
	var theFirst = myDate.getDay();
	ML=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	dayMax = ((mth-1)==1 && isLeap(yr))? ML[mth-1]+1: ML[mth-1];
	//alert(dayMax);
	// 7 == Saturday
	// wipe the grid clean
	day=0;
	for(z=1;z<43;z++){
		c=document.getElementById('cal-'+z);
		c.className = "empty_day_cell";
		c.innerHTML = '';
		if(z > theFirst && day < dayMax){
			day++;
			c.className = "day_cell";
			c.innerHTML = day
			for(var i=0;i<highlight.length;i++){
				if(highlight[i] == day){
					c.className = "travel_cell";
					c.innerHTML = "<input class='day_cell_input' type='submit' name='day' onclick='set_day("+day+");' value='"+day+"' />";
				}
			}

		}	
	}
}

function get_mini_cal(){
	if(document.getElementById){
		dept = document.getElementById('leavingFrom');
		if(default_dest!=''){
			destination = default_dest;
		}else{
			dest = document.getElementById('goingTo');
			destination = dest.value;
		}
		if(pcfl=='pc'){
			pack = document.getElementById('package_code');
		}else{
			pack = document.getElementById('flight_return');
		}
		if(!(dept.value  == '' || dept.value == 0) && !(destination == '' || destination == 0)){
			DeptDest = '&dept='+dept.value+'&dest='+destination+'&pcfl='+pcfl+'&pack='+pack.value;
		}else{
			DeptDest = '&dept=all&dest=all';
		}
	}
	window.open('index.php?page=mini_calendar'+DeptDest,'mini_cal', 'toolbar=no,width=250,height=200');
}

	function submitMonthYear() {
		document.monthYear.method = "post";
		document.monthYear.action = "index.php?month=" + document.monthYear.month.value + "&year=" + document.monthYear.year.value;
		document.monthYear.submit();
	}

	function postMessage(day, month, year) {
		var month = document.getElementById('month').value;
		var year = document.getElementById('year').value;	
		try{
			var day = document.getElementById('day').value;			
		}catch(e){
			var day = document.getElementById('today').value;
		}
		
		eval("page" + day + " = window.open('index.php?page=calendar&mode=post&d=" + day + "&m=" + month + "&y=" + year + "', 'postScreen', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=340,height=400');");
	}

	function openPosting(pId) {
		eval("page" + pId + " = window.open('index.php?page=calendar&mode=display&id=" + pId + "', 'mssgDisplay', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=340,height=400');");
	}

	function editPosting(pId) {
		eval("page" + pId + " = window.open('index.php?page=calendar&mode=eventform&id=" + pId + "', 'mssgDisplay', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=340,height=400');");
	}

	function editReminder(pId) { // took this out for now...
		var MapKey = get_mycalFilter();
		eval("page" + pId + " = window.open('index.php?page=calendar&filter="+MapKey+"&mode=reminder&id=" + pId + "', 'mssgDisplay', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=340,height=400');");
	}

	function deleteConfirm(eid,day,get_str) {
		var msg = "Are you Sure?";
		var get_str = (get_str != 'undefined')? get_str: '';
		y=document.getElementById('year');
		m=document.getElementById('month');
		mth=m.options[m.selectedIndex].value;
		yr=y.options[y.selectedIndex].value;
		if (confirm(msg)) {
			window.location = "index.php?"+get_str+"&mode=eventsubmit&flag=delete&id=" + eid + "&month="+mth+"&year="+yr+"&day="+day;
		} else {
			return;
		}
	}

	function getDates(){ //v3.0
		formDept = document.getElementById('leavingFrom');
		formDest = document.getElementById('goingTo');
		formOpt = document.getElementById('type_opt');
		formDur = document.getElementById('duration');
		dept = formDept.options[formDept.selectedIndex].value;
		if(formDest.options){
			dest = formDest.options[formDest.selectedIndex].value;
		}else{
			alert('Has No Options');
			dest = formDest.value;				
		}
		if(formOpt.options){
			opt = formOpt.options[formOpt.selectedIndex].value;
			ro=1;
		}else{
			opt='';
			if(formOpt.checked){
				ro=formDur.value;
				formDur.style.visibility='visible';		
			}else{
				ro='0';
				formDur.style.visibility='hidden';
			}
		}	
	}
