//Functions used within the selfmade event calendar

function addEventRole()
{
	var roles=new Array(); 
	var element;
	
	if (document.getElementById && (element = document.getElementById('eventRolesDivTag'))) 
	{
		// now access element.value here
		var str = element.innerHTML;
		str = str.replace(/<br?.\/?>/gi,"|");
		roles = str.split('|'); //Byter ut br mot pipe så vi kan splitta på en char
		var index = roles.length-1;
		
		roles[index] = "<input type=\"text\" name=\"roleName"+index+"\"><input type=\"text\" name=\"roleCap"+index+"\" value=\"0\"><input type=\"text\" name=\"roleComment"+index+"\"><input type=\"button\" name=\"removeRole\" value=\"remove\" onClick=\"removeEventRole("+index+");\"/>";
		str = roles.toString();
		str = str.replace(/,/g,"<br/>")+"<br/></div>";
		element.innerHTML = str; //Lägger tillbaka br där komman är (toString ger komma emellan)
	}
	else
	{
		alert("Javascript error.");
	}
}

function removeEventRole(index)
{
	var roles=new Array(); 
	var element;
	
	if (document.getElementById && (element = document.getElementById('eventRolesDivTag'))) 
	{
		// now access element.value here
		var str = element.innerHTML;
		str = str.replace(/<br?.\/?>/gi,"|");
		roles = str.split('|');
		
		roles.splice(index,1);
		var str = roles.toString();
		var i=0;

		for (i=index;i<=roles.length;i++)
		{
			str = str.replace("removeEventRole("+i, "removeEventRole("+(i-1));
			str = str.replace("roleName"+i, "roleName"+(i-1));
			str = str.replace("roleCap"+i, "roleCap"+(i-1));
			str = str.replace("roleComment"+i,"roleComment"+(i-1));
		}

		str = str.replace(/,/g,"<br/>")+"</div>";
		element.innerHTML = str; //Lägger tillbaka br där komman är (toString ger komma emellan)
	}
	else
	{
		alert("Javascript error.");
	}
}

function validate_form(form)
{
	//Get a roles array
	var roles=new Array(); 
	var element;
	
	if (document.getElementById && (element = document.getElementById('eventRolesDivTag'))) 
	{
		// now access element.value here
		var str = element.innerHTML;
		str = str.replace(/<br?.\/?>/gi,"|");
		roles = str.split('|');
		
		with(form)
		{
			//Check event times
			if(!validateTimestamp(raidStartTime.value))
			{
				alert("Raid start time is not correct!");
				return false;
			}
			
			if(!validateTimestamp(raidEndTime.value))
			{
				alert("Raid end time is not correct!");
				return false;
			}
			
			if(!validateTimestamp(signingEndTime.value))
			{
				alert("Raid sign end time is not correct!");
				return false;
			}
			
			//All roles needs a numeric count and a name set
			for (i=0;i<roles.length-1;i++)
			{
				var valCap = eval("roleCap"+i).value;
				var valName = eval("roleName"+i).value;

				if(valName==""||!valName||valName.length == 0)
				{
					alert("All role names are not set!");
					return false;
				}
							
				if(valName==""||!valCap||isNaN(valCap)||valCap.length == 0)
				{
					alert("All role Caps are not numeric!");
					return false;
				}
			}
		}
		return true;
	}
	else
	{
		alert("Javascript error.");
		return false;
	}
}

function validateTimestamp(timestamp) { 
 
    if (!/\d{4}(\-|\/|\.)\d{2}(\-|\/|\.)\d{2} \d{2}:\d{2}:\d{2}/.test(timestamp)) { 
        return false; 
    } 
 
    var split = timestamp.split(/[^\d]+/); 
 
    var year = parseFloat(split[0]); 
    var month = parseFloat(split[1]); 
    var day = parseFloat(split[2]); 
 
    var hour = parseFloat(split[3]); 
    var minute = parseFloat(split[4]); 
    var second = parseFloat(split[5]); 
 
    return hour < 25 && minute < 61 && second < 61 && month < 13 && day < 32; 
 
}