////////////////////////--- Funtions to work in IE4 and DOM ---/////////////////////////////////
var _val_agt=navigator.userAgent.toLowerCase();
var _val_is_major=parseInt(navigator.appVersion);
var _val_is_ie=((_val_agt.indexOf("msie")!=-1) && (_val_agt.indexOf("opera")==-1));
var _val_isNT=_val_agt.indexOf("windows nt")!=-1;
var _val_IE=(document.all);
var _val_IE4=(_val_is_ie && (_val_is_major==4) && (_val_agt.indexOf("msie 4")!=-1));
var _val_IE6=(_val_is_ie && (_val_agt.indexOf("msie 6.0")!=-1));
var _val_NS=(document.layers);
var _val_DOM=(document.getElementById);
var _val_isMac=(_val_agt.indexOf("Mac")==-1);
var _val_allString="document.";
_val_allString += (_val_IE)?"all.":(_val_DOM)?"getElementById(\"":"";
var _val_styleString=(_val_IE)?".style":(_val_DOM)?"\").style":"";
var _val_endAllString=(_val_DOM && !_val_IE)?"\")":"";
var _val_px=(_val_DOM)?"px":"";

function GetField(id)
{
	var element;
	if(id != '') {
		element = eval(_val_allString + id + _val_endAllString);
	}
	else {
		element = null;
	}
	return element;
}

function ChgInnerHTML(fieldID, newhtml) 
{
	var field;
	
	field = GetField(fieldID);
	field.innerHTML = newhtml;
}


//Returns the Selected value of a drop down
function DropDownValue(drop)
{
 return document.getElementsByTagName("*")[drop].options[document.getElementsByTagName("*")[drop].selectedIndex].value
}

//Returns the Selected text of a drop down
function DropDownText(drop)
{
 return GetField(drop).options[GetField(drop).selectedIndex].text
}


function formatNumber(nbr)
{
	if (nbr<10)
		return '0' + nbr;
	
	return nbr;
}

//Reset DropDown, ie, select first position
function ResetDropDown(drop)
{
 document.getElementsByTagName("*")[drop].options[0].selected = true;
 return true;
}

function ValidateEmail(ToValidate, Validator, Message){
	objToValidate = GetField(ToValidate);
	objValidator = GetField(Validator);
	val = objToValidate.value;

	if(val.indexOf("@") > 0)
	{
		dom = val.substr(val.indexOf("@")+1, val.length);
	
		if(dom.indexOf(".") > 0)
		{
			if(dom.indexOf(".")+1 < dom.length){				
				ChgInnerHTML(Validator, '');
				return true;
			}		
			else{
				ChgInnerHTML(Validator, Message);
				return false;		
			}				
		}
		else
		{
			ChgInnerHTML(Validator, Message);
			return false;		
		}
	}
	else
	{
		ChgInnerHTML(Validator, Message);
		return false;
	}
	
	ChgInnerHTML(Validator, Message);
	return false;
}


function RequiredField(ToValidate, Validator, Message){
	objToValidate = GetField(ToValidate);
	objValidator = GetField(Validator);

	// Check if the field is filled
	if (objToValidate.value == ""){ // Not filled
		ChgInnerHTML(Validator, Message);
		return false;
	}
	else{ // Filled
		ChgInnerHTML(Validator, '');
		return true;
	}
}

function MatchPassword(Pwd, RePwd, Validator, Message){
	objPwd = GetField(Pwd);
	objRePwd = GetField(RePwd);

	// Check if the both pwds match
	if(objPwd.value == objRePwd.value){ // Match
		return true; 
	}
	else{ // Do not match
		ChgInnerHTML(Validator, Message);
		return false; 
	}
}

function RequiredNumber(ToValidate, Validator, Message){
	objToValidate = GetField(ToValidate);
	objValidator = GetField(Validator);

	if (objToValidate.value == '')
		objToValidate.value = 0;
	
	newVal = new String (objToValidate.value);
	val = newVal.replace(',', '.');
	
	objToValidate.value = val;

	if (!isNaN(val)){
		ChgInnerHTML(Validator, '');
		return true;
	}
	else{ // Not numeric values
		ChgInnerHTML(Validator, Message);
		return false;
	}
}

function ValidateDate(ToValidate, Validator, Message){
	objToValidate = GetField(ToValidate);
	objValidator = GetField(Validator);
	val = objToValidate.value;

	if ((val.substr(4,1) == "-" || val.substr(4,1) == "." || val.substr(4,1) == "/") && 
		(val.substr(7,1) == "-" || val.substr(7,1) == "." || val.substr(7,1) == "/")){
		if (!isNaN(val.substr(0,4)) && !isNaN(val.substr(5,2)) && !isNaN(val.substr(8,2))){
			return true;
		}
		else{ // Not numeric values
			ChgInnerHTML(Validator, Message);
			return false;
		}
	} // Invalid separators
	else{
		ChgInnerHTML(Validator, Message);
		return false;
	}
}

function ValidateTime(ToValidate, Validator, Message){
	objToValidate = GetField(ToValidate);
	objValidator = GetField(Validator);
	val = objToValidate.value;

	if (val.substr(2,1) == "-" || val.substr(2,1) == "." || val.substr(2,1) == ":"){ // 2 digits in hours and 2 digits in minutes
		if (!isNaN(val.substr(0,2)) && !isNaN(val.substr(3,2))){
			return true;
		}
		else{
			// Not a number
			ChgInnerHTML(Validator, Message);
			return false;
		}
	} 	
	else if (val.substr(1,1) == "-" || val.substr(1,1) == "." || val.substr(1,1) == ":"){ // 1 digits in hours and 2 digits in minutes
		if (!isNaN(val.substr(0,1)) && !isNaN(val.substr(2,2))){
			return true;
		}
		else{
			alert("numeric");
			// Not a number
			ChgInnerHTML(Validator, Message);
			return false;
		}
	}
	else if (val.substr(2,1) == "-" || val.substr(2,1) == "." || val.substr(2,1) == ":"){ // 2 digits in hours and 1 digits in minutes
		if (!isNaN(val.substr(0,2)) && !isNaN(val.substr(3,1))){
			return true;
		}
		else{
			// Not a number
			ChgInnerHTML(Validator, Message);
			return false;
		}
	}
	else if (val.substr(1,1) == "-" || val.substr(1,1) == "." || val.substr(1,1) == ":"){ // 1 digits in hours and 1 digits in minutes
		if (!isNaN(val.substr(0,1)) && !isNaN(val.substr(2,1))){
			return true;
		}
		else{
			// Not a number
			ChgInnerHTML(Validator, Message);
			return false;
		}
	}
	else{
		// Not correct format
		ChgInnerHTML(Validator, Message);
		return false;
	}
}

function TimeGreatherThen(TimeGreather, TimeLower, Validator, Message){
	objTimeGreather = GetField(TimeGreather);
	objTimeLower = GetField(TimeLower);
	
	intHourIn = 0;
	intMinuteIn = 0;
	intHourOut = 0;
	intMinuteOut = 0;
	
	val = objTimeLower.value;
	if (val.substr(2,1) == "-" || val.substr(2,1) == "." || val.substr(2,1) == ":"){ // 2 digits in hours and 2 digits in minutes
		if (!isNaN(val.substr(0,2)) && !isNaN(val.substr(3,2))){
			intHourIn = val.substr(0,2);
			intMinuteIn = val.substr(3,2);
		}
	} 	
	else if (val.substr(1,1) == "-" || val.substr(1,1) == "." || val.substr(1,1) == ":"){ // 1 digits in hours and 2 digits in minutes
		if (!isNaN(val.substr(0,1)) && !isNaN(val.substr(2,2))){
			intHourIn = val.substr(0,1);
			intMinuteIn = val.substr(2,2);
		}
	}
	else if (val.substr(2,1) == "-" || val.substr(2,1) == "." || val.substr(2,1) == ":"){ // 2 digits in hours and 1 digits in minutes
		if (!isNaN(val.substr(0,2)) && !isNaN(val.substr(3,1))){
			intHourIn = val.substr(0,2);
			intMinuteIn = val.substr(3,1);
		}
	}
	else if (val.substr(1,1) == "-" || val.substr(1,1) == "." || val.substr(1,1) == ":"){ // 1 digits in hours and 1 digits in minutes
		if (!isNaN(val.substr(0,1)) && !isNaN(val.substr(2,1))){
			intHourIn = val.substr(0,1);
			intMinuteIn = val.substr(2,1);
		}
	}

	val = objTimeGreather.value;
	if (val.substr(2,1) == "-" || val.substr(2,1) == "." || val.substr(2,1) == ":"){ // 2 digits in hours and 2 digits in minutes
		if (!isNaN(val.substr(0,2)) && !isNaN(val.substr(3,2))){
			intHourOut = val.substr(0,2);
			intMinuteOut = val.substr(3,2);
		}
	} 	
	else if (val.substr(1,1) == "-" || val.substr(1,1) == "." || val.substr(1,1) == ":"){ // 1 digits in hours and 2 digits in minutes
		if (!isNaN(val.substr(0,1)) && !isNaN(val.substr(2,2))){
			intHourOut = val.substr(0,1);
			intMinuteOut = val.substr(2,2);
		}
	}
	else if (val.substr(2,1) == "-" || val.substr(2,1) == "." || val.substr(2,1) == ":"){ // 2 digits in hours and 1 digits in minutes
		if (!isNaN(val.substr(0,2)) && !isNaN(val.substr(3,1))){
			intHourOut = val.substr(0,2);
			intMinuteOut = val.substr(3,1);
		}
	}
	else if (val.substr(1,1) == "-" || val.substr(1,1) == "." || val.substr(1,1) == ":"){ // 1 digits in hours and 1 digits in minutes
		if (!isNaN(val.substr(0,1)) && !isNaN(val.substr(2,1))){
			intHourOut = val.substr(0,1);
			intMinuteOut = val.substr(2,1);
		}
	}
	
	if ((Number(intHourOut) > Number(intHourIn)) || 
		 (Number(intHourOut) == Number(intHourIn) && Number(intMinuteOut) > Number(intMinuteIn))){
		return true;
	}
	else{
		// False
		ChgInnerHTML(Validator, Message);
		return false;
	}
}

function GetSelectedValue(fieldName){
	return GetField(fieldName)[GetField(fieldName).selectedIndex].value;
}

function SetSelectedValue(fieldName, value){
	pos = 0;
	
	for (i=0; i < GetField(fieldName).options.length; i++)
	{
		if(GetField(fieldName)[i].value == value)
		{
			pos = i;
			break;
		}
	}
	GetField(fieldName).options[pos].selected=true;
}

function RequiredAtLeastOne(fieldName, fieldNameAlternate, Validator, Message){
	objRequired = GetField(fieldName);
	objRequiredAlternate = GetField(fieldNameAlternate);

	// Check if at least one is filled
	if(objRequired.value != "" || objRequiredAlternate.value != ""){ // Ok
		return true; 
	}
	else{ // Not ok
		ChgInnerHTML(Validator, Message);
		return false; 
	}
}