//=============================================================================
//	Area for 'Events' from Member-Area
//=============================================================================
function ValidateForm()
{
	var aMand = new Array( 'strTitle' );
	var aDate = new Array( 'dateFrom', 'dateTo');
	var aInt = new Array();
	var aCur = new Array();
	
	return ValidateInput( aMand, aDate, aInt, aCur );
}

function ValidateEventPasEdit()
{
	var aMand = new Array( 'strLastName' );
	var aDate = new Array();
	var aInt = new Array();
	var aCur = new Array();
	
	return ValidateInput( aMand, aDate, aInt, aCur );
}

function ValidateEventPasAdmin()
{
	var aMand = new Array( 'strLastName' );
	var aDate = new Array();
	var aInt = new Array();
	var aCur = new Array( 'dblPayment' );
	
	return ValidateInput( aMand, aDate, aInt, aCur );
}

//=============================================================================
//	Area for 'Events' from XML-Data 
//=============================================================================

// Name and Path to XML-data
var strXMLName = "./data/events.xml";
// create Global xmlDoc
var xmlDoc = null;
// current type
var nCurrentType = -1;

function InitData()
{
	// only load xml-Document through initializaion - Nodelist will be loaded in FillList()
	xmlDoc = LoadXMLDoc( strXMLName );
	if( xmlDoc == null )
	{
		alert( 'Error creating/loading XML-Doc: ' + strXMLName );
	}
}

function FillList( nType, strFilter )
{
	// no xml-Data loaded
	if( xmlDoc == null )
	{
		return false;
	}
	
	nCurrentType = nType;

	// build XPath dependend on Type and Filter
	// -> apply Filter on YEar
	// -> only include selected type
	// -> if nType >= 10 subtrac 10 and use only events incluing gallery information
	var bGallery = false;
	var strTypeFilter;
	if( nType >= 10 )
	{
		nType = nType - 10;
		strTypeFilter = " and nType = " + nType + " and strGallery != ''";
		bGallery = true;	// remember, because other tabledesign!
	}
	else
	{
		strTypeFilter = " and nType = " + nType;
	}


	var strXPath = "/dataroot/events[ contains( strYear , '" + strFilter + "' )" + strTypeFilter + " ]";

	var xmlNodelist = SelectNodes( xmlDoc, strXPath );
	if( xmlNodelist == null )
	{
		return true;
	}

	// get needed HTML-Elements
	var htmlTable = document.getElementById( 'tablebody' );
	

	// first delete dynamic created rows (don't delete header!)
	var htmlRows = htmlTable.getElementsByTagName("tr");
	var nRows = htmlRows.length;
	for( i = nRows - 1; i > 0; i-- )
	{
		// delete reverse
		htmlTable.removeChild( htmlRows[i] );
	}
	
	var htmlHeader = document.getElementById( 'headerrow' );
	if( htmlTable == null || htmlHeader == null )
	{
		return true;
	}

	// now fill list
	nRows = xmlNodelist.length;
	for( i = 0; i < nRows; i++ )
	{
		// get Event-Data from Node
		var xmlEvent = xmlNodelist[i];
		
		var nEventType = NodeText( SelectSingleNode( xmlEvent, 'nType') );

		// create new HTML-Row (clone from header)
		var htmlRow = htmlHeader.cloneNode(true);

		// append to Table before first access - otherwise IE won't work fine
		htmlTable.appendChild( htmlRow );

		if( i % 2 )
		{
			htmlRow.className = 'hatched1';
		}
		else
		{
			htmlRow.className = 'hatched2';
		}
		
		var nCol = 0;
		var htmlCols = htmlRow.getElementsByTagName("td");
		
		// Time-Span 
		htmlCols[nCol++].innerHTML = NodeText( SelectSingleNode( xmlEvent, 'strTimeSpan') );

		if( bGallery )
		{
			// Event + Gallerylink
			var strEvent = NodeText( SelectSingleNode( xmlEvent, 'strEvent') );
			var strGallery = NodeText( SelectSingleNode( xmlEvent, 'strGallery') );

			strGallery = '<a class=gallerylink href="gallery_show.html?gallery/' + strGallery + '">' + strEvent + '</a>';

			htmlCols[nCol++].innerHTML = strGallery;
		}
		else
		{
			// Event
			// check, if link is available
			var strLink = NodeText( SelectSingleNode( xmlEvent, 'strLink') );
			var strEvent = NodeText( SelectSingleNode( xmlEvent, 'strEvent') );
			if( strLink != null && strLink != '' && strLink != '<null>' )
			{
				// external links should be opened in new Tab/Window
				var strTarget = '';
				var strClass = 'class=internallink';
				if( strLink.toLowerCase().substr( 0, 5 ) == 'http:' )
				{
					strTarget = 'target="_blank"';
					strClass = 'class=externallink';
				}
				if( strLink.toLowerCase().substr( strLink.length - 4, 4 ) == '.pdf' )
				{
					strTarget = 'target="_blank"';
					strClass = 'class=pdflink';
				}
				
				strEvent= '<a href="' + strLink + '"' + strTarget + '>' + strEvent + '</a>';
				// for additional link as Symbol in seperate col
				strLink= '<a ' + strClass + ' href="' + strLink + '"' + strTarget + '>&nbsp;</a>';
			}
			else
			{
				strLink = '';
			}
			htmlCols[nCol++].innerHTML = strEvent;
			// optical Symbol / Link for Details
			htmlCols[nCol++].innerHTML = strLink;
		
			// Link to Gallery
			var	strGallery = NodeText( SelectSingleNode( xmlEvent, 'strGallery') );
			if( strGallery != null && strGallery != '' && strGallery != '<null>' )
			{
				strGallery = '<a class=gallerylink href="gallery_show.html?gallery/' + strGallery + '">&nbsp;</a>';
			}
			else
			{
				strGallery = '';
			}
			htmlCols[nCol++].innerHTML = strGallery;
		}
		// set unique id
		htmlRow.id = 'row' + i;
	}
}

function OnSetYear( selectList )
{
	FillList( nCurrentType, selectList.value );
}

