/* System functions */

	// The triple $-method is a shortcut to get elements by name.
	function $$$(elementName)
	{
		return document.getElementsByName(elementName);
	}

	function setInnerHTML(object, text){
		object.innerHTML = text;
	}
	
	function GetByName(ElementName)
	{
		return document.getElementsByName(ElementName)[0];
	}

/* System methods */

/****************************************************************
 * *
 * Get Events from Filemaker *
 * *
 ****************************************************************/


/* Här tar vi över form_field_3 som är Event. Skulle Event ändras till någon annan, så får man ändra variabeln */

var CaptureField = 'form_field_3';

function GetEvents()
{
	var Backend = '/plugins/ext_cdsoft_ajaxbridge.php?uri=get_evan.php'; // Backend url

	var req = new Ajax.Request(
		Backend,
		{
			method: 'get', // Använd GET.
			onComplete: function(xml)
			{
				// Parsing XML
				var xmldoc = xml.responseXML.documentElement;

				var Events = xmldoc.getElementsByTagName('Event'); // Hämta events
				
				if(Events.length > 0)
				{
					$(CaptureField).options.length = 0;
					$(CaptureField).options[0] = new Option('Välj event',0);
					
					for(i=0; i<Events.length;i++)
					{
						var Value		= Events[i].firstChild.data;	// Statusen i text

						var ID			= Events[i].getAttribute("id");

						$(CaptureField).options[i+1] = new Option(Value, ID);
					}
				}
				else
				{
					$(CaptureField).options.length = 0;
					$(CaptureField).options[0] = new Option('- Inga events tillgängliga -',0);
				}
			} , 
			onCreate: function(xml)
			{
				$(CaptureField).options.length = 0;
				$(CaptureField).options[0] = new Option('Hämtar...',0);
			}
		}
	);

	return false;
}

function HideShowFields(Object)
{
	try
	{
		if(Object.name == 'form_field_4')
		{
			var SelectedIndex = Object.selectedIndex;
			var SelectedValue = Object.options[SelectedIndex].value;
			
			switch(SelectedIndex)
			{
				case 0:
					$('row_5').style.display	= 'none';
					$('row_6').style.display	= 'none';
					$('row_7').style.display	= 'none';
					$('row_8').style.display	= 'none';
					$('row_9').style.display	= 'none';
					$('row_10').style.display	= 'none';
					$('row_11').style.display	= 'none';
					$('row_12').style.display	= 'none';
					$('row_13').style.display	= '';
				break;

				case 1:
					$('row_5').style.display	= '';
					$('row_6').style.display	= '';
					$('row_7').style.display	= '';
					$('row_8').style.display	= '';
					$('row_9').style.display	= '';
					$('row_10').style.display	= '';
					$('row_11').style.display	= '';
					$('row_12').style.display	= '';
					$('row_13').style.display	= 'none';
				break;
			}
		}
	}
	catch(e)
	{
	}
}

/*    *    *    *    *    *    *    */
/**   **   **   **   **   **   **   **/
/***  ***  ***  ***  ***  ***  ***  ***/
/**** **** **** **** **** **** **** ****/
/***  ***  ***  ***  ***  ***  ***  ***/
/**   **   **   **   **   **   **   **/
/*    *    *    *    *    *    *    */

/* Function to get the IDs to validate the forms. */
function GetID(Object)
{
	var Array = Object.name.split('_');
	
	var ArraySize = Array.length;
	

	return Array[ArraySize-1];
}

function GetRequiredFields(Object)
{
	var Elements = Object.elements;
	var IDs = new Array();
	var ReturnArray = new Array();
		
	for(i=0; i<Elements.length; i++)
	{
		var Name = Elements[i].name;

		if((Elements[i].type == 'select-one') && (Elements[i].name == 'form_field_18'))
		{
			IDs[i] = GetID(Elements[i]);
		}
		else
		{
			if((Name.substr(0, 19) == 'form_field_required') && (Elements[i].value == '1'))
			{
				IDs[i] = GetID(Elements[i]);
			}
		}
	}
	
	var j = 0;
	for(i=0; i<IDs.length; i++)
	{
		if(parseInt(IDs[i]) > 0)
		{
			ReturnArray[j] = IDs[i];
			j++;
		}
	}

	
	return ReturnArray;
}

function GetErrors(Type)
{
	switch(Type)
	{
		case 0:
			var Explode = '3,13';
		break;

		case 1:
			var Explode = '3,5,6,7,9,10,11,12';
		break;
	}
	
	return Explode.split(',');
}

function ValidateForms(Object)
{
	var Message = '';
	var Error = '';

	switch(Object.id)
	{
		case 'MiMEvent':
			try
			{
				var Index = $('form_field_4').selectedIndex;
				var Type = $('form_field_4').options[Index].value;
				var Array = GetErrors(Index);
				
				
			
				for(i=0; i<Array.length; i++)
				{
					var formField = GetByName('form_field_' + Array[i]);
					var FieldName = GetByName('form_field_name_' + Array[i]);
					formField.style.backgroundColor = '';
					
					if((formField.type == 'select-one') && (Array[i] == 3))
					{
						if(formField.selectedIndex == 0)
						{
							formField.style.backgroundColor = '#d82935';
							Message += 'Du måste välja ' + FieldName.value + '.\n';
							Error = 1;
						}
					}
					else
					{
						if(formField.value.length == 0)
						{
							formField.style.backgroundColor = '#d82935';
							Message += 'Du måste fylla i ' + FieldName.value + '.\n';
							Error = 1;
						}
					}
				}
			
			}
			catch(e) {alert(e);}
		break;
		
		case 'BliMedlem':
			try
			{
				var Array = GetRequiredFields(Object);

				for(i=0; i<Array.length; i++)
				{
					var formField = GetByName('form_field_' + Array[i]);
					var FieldName = GetByName('form_field_name_' + Array[i]);
					formField.style.backgroundColor = '';

					if((formField.type == 'select-one') && (Array[i] == 18))
					{
						if(formField.selectedIndex == 0)
						{
							formField.style.backgroundColor = '#d82935';
							Message += 'Du måste välja ' + FieldName.value + '.\n';
							Error = 1;
						}
					}
					else
					{
						if(formField.value.length == 0)
						{
							formField.style.backgroundColor = '#d82935';
							Message += 'Du måste fylla i ' + FieldName.value + '.\n';
							Error = 1;
						}
					}
				}

			}
			catch(e) {alert(e);}

		break;
		
		
		default:
			alert('ID: ' + Object.id)
		break;

	}
	
	if(Error == 1)
	{
		alert(Message);
		return false;
	}
	else
	{
		return true;
	}
}
