// JavaScript Document

var req=null;
var console=null;
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;
var num_results = new String();
var db_data = new Array();
var date_nodes = new Array(1,2,5,6);

function parse_dates(db_data){
	function parse_date(date_string){
		var date_array = new Array();
		date_array = date_string.split(',');
		var return_date = new Date();
		return_date.setFullYear(date_array[0],date_array[1]-1,date_array[2]);
		return_date.setHours(date_array[3],date_array[4],date_array[5]);
		return(return_date);
	}
	for( var i in db_data ){
		for (var n in date_nodes){
			db_data[i][date_nodes[n]] = parse_date( db_data[i][date_nodes[n]] );
		}
	}
}

function display_by_view(){
	if ( current_view == 'month' ){
		display_events_month();
	}else if ( current_view == 'week' ){
		display_events_week();
	}else if ( current_view == 'day' ){
		//initialize_day_view(use_date);
	}
}

function display_events_month(){
	marker_target = new String;
	marker_string = new String;
	for ( var i in db_data ){
		//alert(db_data[i][1].getMonth() + '?=' + current_mo); 
		if( db_data[i][1].getMonth() == current_mo ){
			marker_target = 'day' + ( ( db_data[i][1].getDate() - 1 ) + offset );
			marker_string = '*';
			if ( db_data[i][2].getDate() > db_data[i][1].getDate() || db_data[i][2].getMonth() > db_data[i][1].getMonth() || db_data[i][2].getFullYear() > db_data[i][1].getFullYear()){
				marker_string = '&gt;';
			}
			setInner( marker_target , readInner(marker_target) + '<span class="start_marker">' + marker_string + '</span>' ); 
		}
		if( db_data[i][2].getMonth() == current_mo ){
			marker_target = 'day' + ( ( db_data[i][2].getDate() - 1 ) + offset );
			marker_string = '<span class="end_marker">&lt;</span>';
			if ( db_data[i][2].getDate() > db_data[i][1].getDate() || db_data[i][2].getMonth() > db_data[i][1].getMonth() || db_data[i][2].getFullYear() > db_data[i][1].getFullYear()){
				setInner( marker_target , readInner(marker_target) + marker_string );
			} 
		}
	}
}

function display_events_week(){
	marker_target = new String;
	marker_string = new String;
	for ( var i in db_data ){
		start_week = getWeek( db_data[i][1].getFullYear(), db_data[i][1].getMonth(), db_data[i][1].getDate() );
		end_week = getWeek( db_data[i][2].getFullYear(), db_data[i][2].getMonth(), db_data[i][2].getDate() );
		if( start_week == current_wk ){
			marker_target = 'wv_day' + db_data[i][1].getDay() ;
			marker_string = '*';
			if ( db_data[i][2].getDate() > db_data[i][1].getDate() || db_data[i][2].getMonth() > db_data[i][1].getMonth() || db_data[i][2].getFullYear() > db_data[i][1].getFullYear()){
				marker_string = '&gt;';
			}
			setInner( marker_target , readInner(marker_target) + '<span class="start_marker">' + marker_string + '</span>' );
			marker_target = 'wv_detail' + db_data[i][1].getDay() ;
			var minutes = db_data[i][1].getMinutes();
			if ( minutes < 10 ){
				minutes = '0' + minutes;
			}
			setInner( marker_target , readInner(marker_target) + db_data[i][1].getHours() + ':' + minutes + ' ' + db_data[i][3] + ' (start)<br />' );
		}
		if( end_week == current_wk ){
			marker_target = 'wv_day' + db_data[i][2].getDay();
			marker_string = '<span class="end_marker">&lt;</span>';
			if ( db_data[i][2].getDate() > db_data[i][1].getDate() || db_data[i][2].getMonth() > db_data[i][1].getMonth() || db_data[i][2].getFullYear() > db_data[i][1].getFullYear()){
				setInner( marker_target , readInner(marker_target) + marker_string );
				marker_target = 'wv_detail' + db_data[i][2].getDay() ;
				var minutes = db_data[i][2].getMinutes();
				if ( minutes < 10 ){
					minutes = '0' + minutes;
				}
				setInner( marker_target , readInner(marker_target) + db_data[i][2].getHours() + ':' + minutes + ' ' + db_data[i][3] + ' (end)<br />' );
			}
		}
	}
}

function display_event(){
	setInner('detail','');
	for ( i in db_data ){
		var start_minutes = db_data[i][1].getMinutes();
		if ( start_minutes < 10 ){
			start_minutes = '0' + start_minutes;
		}
		var end_minutes = db_data[i][2].getMinutes();
		if ( end_minutes < 10 ){
			end_minutes = '0' + end_minutes;
		}
		setInner( 'detail', readInner('detail') + db_data[i][3] + '<br />' + db_data[i][1].getDate() + '/' + ( db_data[i][1].getMonth() + 1 ) + ' ' + db_data[i][1].getHours() + ':' + start_minutes + ' to ' + db_data[i][2].getDate() + '/' + ( db_data[i][2].getMonth() + 1 ) + ' ' + db_data[i][2].getHours() + ':' + end_minutes + '<br />' + db_data[i][4] + '<br />by' + db_data[i][7] + ' on ' + ( db_data[i][6].getMonth() + 1 ) + '/' + db_data[i][6].getDate() + '<br /><br />' )
	}
}

function loadXMLDoc(url,params,HttpMethod) {
	setInner('detail', '');
	if(!HttpMethod){
		HttpMethod = "GET";
	}
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (req) {
		req.onreadystatechange = processReqChange;
		req.open(HttpMethod, url, true);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		req.send(params);
    }
}

function processReqChange(){
	var ready=req.readyState;
	var info=null;
	var data=null;
	var show_loading=null;
	if (ready==READY_STATE_COMPLETE){
		data=req.responseText;
		eval( data );
		if ( num_results > 0){
			parse_dates( db_data );
			if( y_index < 4 ){
				display_by_view();
			}else{
				display_event();
			}
		}
		show_loading = 'hidden';
	}else{
		info="loading...["+ready+"]";
		show_loading = 'visible';
	}
	toConsole(info);
	setVis('loading',show_loading);
}


function toConsole(data){
	if (console!=null){
		var newline=document.createElement("div");
		console.appendChild(newline);
		var txt=document.createTextNode(data);
		newline.appendChild(txt);
	}
}