function CheckSubActionType(source, clientside_arguments)		
{		
	clientside_arguments.IsValid 
		= clientside_arguments.Value != '';
	alert(clientside_arguments.Value);
}



// constants
var KEY_UP = 38;
var KEY_RIGHT = 39;
var KEY_LEFT = 37;
var KEY_DOWN = 40;
var KEY_DELETE = 46;
var KEY_BACKSPACE = 8;
var KEY_PERIOD = 190;
var KEY_TAB = 9;

// key handler for phone fields (only numbers allowed)
function keyPhone(event, elem) 
{
	// get key code
	var code = event.keyCode;
	
	// did the user press a number, left, right, DELETE or BACKSPACE
	if ((code == KEY_TAB && event.shiftKey) || code == KEY_TAB || code == KEY_LEFT || code == KEY_RIGHT || code == KEY_DELETE || code == KEY_BACKSPACE || (code >= 48 && code <= 57) || (code >= 96 && code <= 105)) 
	{
		return true;
	} 
	else 
	{
		return false;
	}
}



// key handler for phone time fields (only numbers and colon allowed + some 
// special keys)
function keyPhoneTime(event, elem)  
{
	// create calendar
	var cal_start1 = new calendar1(elem);
	cal_start1.date_comp = false;
	cal_start1.time_comp = true;
	
	// get key code
	var code = event.keyCode;
	
	// did the user press DELETE or BACKSPACE
	if (code == KEY_DELETE || code == KEY_BACKSPACE) 
	{
		elem.value = "";
		return false;
	}
	
	switch (code) 
	{
		case KEY_UP:
			cal_start1.cal_adjustTime(30);
			return false;
		case KEY_DOWN:
			cal_start1.cal_adjustTime(-30);
			return false;
		case KEY_RIGHT:
			cal_start1.cal_adjustTime(120);
			return false;
		case KEY_LEFT:
			cal_start1.cal_adjustTime(-120);
			return false;
	}
	
	// is the key press valid
	if (code == KEY_TAB) 
	{
		// accept and leave
		return true;
	} 
	else if (event.shiftKey)
	{
		return true;
	}
	else if ((code == KEY_PERIOD && event.shiftKey) || (code >= 48 && code <= 57) || (code >= 96 && code <= 105)) 
	{
		// accept the character
		return true;
	} 
	else 
	{
		return false;
	}		
}


// key handler for phone time fields (only numbers and colon allowed + some 
// special keys)
function formatPhoneTime(elem) 
{
	// get the value of the element
	var value = elem.value;
	
	// did the user use a colon
	if (value.indexOf(":") > -1) 
	{
		// yes he did - treat as a specified time
		
	} 
	else 
	{
		// no colon specified - format
		switch (value.length) 
		{
			case 1:
				// only one character - assume hour component
				elem.value = "0" + value + ":00";
				break;
			case 2:
				// two characters - asuume hour component
				elem.value = value + ":00";
				break;
			case 3:
				// three chacters - assume 2 characters in minutes component
				elem.value = "0" + value.substr(0, 1) + ":" + value.substr(1);
				break;
			case 4:
				// 4 characters - assume hour and minutes
				elem.value = value.substr(0, 2) + ":" + value.substr(2);
				break;
		}
	}
	
	// convert 24:00 to 00:00
	if (elem.value == '24:00') 
	{
		elem.value = '00:00';
	}
	
	try 
	{
		// validate that the time is valid
		cal_prs_time1(elem.value, new Date());
	} 
	catch (exception) 
	{
		alert("Det angivne tidspunkt er ikke validt...");
		elem.focus();
	}
}

function ValidateTime(source, clientside_arguments)
{       
	clientside_arguments.IsValid=true;  
	try 
	{
		cal_prs_time1(clientside_arguments.Value, new Date());
	} 
	catch (exception) 
	{
		clientside_arguments.IsValid = false;  
	}
}




/**
 * Function for calculating the length a comment on a form.
 * 
 */
function calculateCommentLength(comment_name, count_name, length) 
{
	var e = document.getElementById(comment_name);
	var s = document.getElementById(count_name);
	if (e.value.length > length) 
	{
		e.value = e.value.substr(0, length);
	}
	if (s.childNodes) 
	{
		s.removeChild(s.childNodes[0]);
	}
	s.appendChild(document.createTextNode(length - (e.value.length-0)));
}

// validate element length
function verifyLength(count_element, max_length, chars_left_element) 
{
	// must at least have the count element
	if (count_element == null) return;
	
	// verify length
	if (count_element.value.length > max_length) 
	{
		count_element.value = count_element.value.substr(0, max_length);
	}
	
	// should we write the number of chars left ?
	if (null != chars_left_element) 
	{
		/*
		if (chars_left_element.childNodes) 
		{
			chars_left_element.removeChild(chars_left_element.childNodes[0]);
		}
		chars_left_element.appendChild(document.createTextNode(max_length - (count_element.value.length-0)));
		*/
		chars_left_element.innerHTML = max_length - (count_element.value.length-0);
	}
}
