function textAreaSize(field,size,remField)
{
	 var spans = getElementsByName_iefix("span",remField.toString());
	 var CharsLeft = size-field.value.length;
	
	if (field.value.length>size)
	{
		field.value=field.value.substring(0,(size));
	}

	for (sx=0; sx < spans.length; sx++)
	{
		if(spans[sx].name = remField)
		{
			if(CharsLeft > 0)
			{
				spans[sx].innerHTML = '  ' + CharsLeft + ' characters left';
			}
			else
			{
				spans[sx].innerHTML = '  0 characters left';
			}
		}
	}
}

/*function to getElementsByName in IE - works fine with FF, Chrome etc*/
function getElementsByName_iefix(tag, name) 
{          
	var elem = document.getElementsByTagName(tag);     
	var arr = new Array();     
	for(i = 0,iarr = 0; i < elem.length; i++) 
		{          
			att = elem[i].getAttribute("name");          
			if(att == name) 
			{               
				arr[iarr] = elem[i];               
				iarr++;          
			}     
		}     
	return arr;
}

function isDateValid( sDate, sFormat, iMinYear, iMaxYear )
{
	if (sDate.length>0)
	{
		iYearStart = sFormat.indexOf("yyyy")
		iMonthStart = sFormat.indexOf("MM")
		iDateStart =  sFormat.indexOf("dd")
		if( iYearStart == -1 || iMonthStart == -1 || iDateStart == -1 ){
			return false
		} else {
			
			iYear	= parseFloat(sDate.substr(iYearStart,4))
			iMonth	= parseFloat(sDate.substr(iMonthStart,2)) - 1
			iDate	= parseFloat(sDate.substr(iDateStart,2))
	
			if( iYear < iMinYear ||  iYear > iMaxYear ){
				return false
			}
	
			myDate = new Date( iYear,iMonth,iDate)
			
			if( iYear != myDate.getFullYear() || iMonth != ( myDate.getMonth()  ) || iDate != myDate.getDate()){
				return false
			}	
			return true
		}
	}
	else
	{
		return true
	}
}

function isTimeValid( sTime, seconds )
{
	var sFormat
	
	if (sTime.length>0)
	{
		if (seconds)
		{
			if(sTime.length != 8)
			{
				return false
			}
		}
		else if (sTime.length != 5)
		{
			return false
		}
		
		if (seconds)
		{
			sFormat="hh:mm:ss";
		}
		else
		{
			sFormat="hh:mm";
		}

		iHourStart = sFormat.indexOf("hh")
		iMinStart = sFormat.indexOf("mm")
		iSecStart =  sFormat.indexOf("ss")
		if( iHourStart == -1 || iMinStart == -1 || (seconds && iSecStart == -1 ))
		{
			return false
		} 
		else 
		{
			if(isNaN(sTime.substr(iHourStart,2)))
			{
				return false
			}
			else
			{
				iHour	= parseFloat(sTime.substr(iHourStart,2))
			}
			
			if(isNaN(sTime.substr(iMinStart,2)))
			{
				return false
			}
			else
			{
				iMin	= parseFloat(sTime.substr(iMinStart,2))
			}
			
			if (seconds)
			{
				if(isNaN(sTime.substr(iSecStart,2)))
				{
					return false
				}
				else
				{
					iSecs	= parseFloat(sTime.substr(iSecStart,2))
				}
			}
			else
			{
				iSecs	= 0
			}
			
			
			if (((iHour>=0) && (iHour <=23)) && ((iMin>=0) && (iMin<=59)) && ((iSecs>=0) && (iSecs<=59)))
			{
				/*CheckTimeLogic(sTime,document.screen.ReleaseDate.value);*/
				return true;
			}
			else
			{
				return false;
			}
			
		}
	}
	else
	{
		return false
	}	
}

function CheckTime(sTime,sDate)
{
	var DateOK;

	var strInputDate = [];
	
	var CurrDate 	= new Date();
	var inputDate	= new Date();
	
	if(sTime == "")
	{
		sTime = "00:00";
	}
	
	strInputDate = sDate.split('/');
		
	inputDate.setDate(strInputDate[0]);
	inputDate.setMonth(strInputDate[1]-1); /*-1 because JS months start from 0*/
	inputDate.setFullYear(strInputDate[2]);
	inputDate.setHours(sTime.substr(0,sTime.indexOf(":")));
	inputDate.setMinutes(sTime.substr(sTime.indexOf(":")+1));

	if(inputDate < CurrDate)
	{
		DateOK = false;
	}
	else
	{
		DateOK = true;
	}
	
	return DateOK;
}

function isNumeric(value)
{

	var strLength = value.length;
	var valid = true;
	var c = '';
	
	for (var i=0; i<strLength; i++)
	{
		c=value.charAt(i);
		if (!( ( (c>='0') && (c<='9') ) || (c=='.') || (c=='-')	) )
		{
			valid=false;
		}
	}
	return valid;
}

function isRangeValid(value,min,max)
{
	var strLength = value.length;
	if (value.length>0)
	{
		if (value<min || value>max)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else	
	{
		return true;
	}
}

function isDecimalPlacesValid( value, requiredDecimalPlaces )
{
	
	if( (decimalPlacePos = value.indexOf(".")) == -1 ){
		actualDecimalPlaces = 0;
	} else {
		actualDecimalPlaces = value.length - decimalPlacePos - 1;
	}

	if( actualDecimalPlaces <= requiredDecimalPlaces )
		return true;
	else
		return false;


}


//Function to prevent user selecting MSM Contact as a contact for a UAT or Live release

function contactddl(value)
{
    if (value==1 && document.screen.AuthClient[document.screen.AuthClient.selectedIndex].text=='System Test')
    {
        alert("'System Test Contact' can only be used for a System Release");
    }
    
    if (value==2 && document.screen.AuthClient[document.screen.AuthClient.selectedIndex].text=='System Test')
    {
        alert("'System Test Contact' can only be used for a System Release");
    }
    

}


function disable(value)
{
    var root_cause=document.screen.RootCauseOther;
    
    
    if (document.screen.RootCauseID[document.screen.RootCauseID.selectedIndex].text=='Other')
    {
        alert("Please enter a description of the root cause of the IR");
    }

}

/*Convert any unicode characters into HTML entities

Add space at start of text to prevent the Java POST data parser going crazy*/
function Convert()                                                    
{
	for (var k = 0; k<document.screen.elements.length; k++)
	{
		if (document.screen.elements[k].type == "textarea")
		{
			var sText = document.screen.elements[k].value;
			var sNewText = '';
			var iLen = sText.length;
			var iCode;

			for (i=0; i<iLen; i++)                                                     
			{                                                                       
				iCode = sText.charCodeAt(i);                                          
				sNewText += (iCode > 256? '&#' + iCode + ';': sText.charAt(i));  
			}
			
			if(sNewText.charAt(0) == '-')
			{
				sNewText = ' ' + sNewText;
			}
			
			document.screen.elements[k].value = sNewText;
		}
	}
}


function TestIRCheckboxes()
{
	var blnNonChecked = false;
	var TotalBoxes = document.screen.SelectedIR.length;
	var i;
	
	for(i = 0; i<TotalBoxes; i++)
	{
		if (document.screen.SelectedIR[i].checked == false)
		{
			blnNonChecked = true;
		}
		else
		{
			blnNonChecked = false;
			break;
		}
	}
	
	if (blnNonChecked)
	{
		return true;
	}
	else
	{
		return false;
	}
}

/*
 *Validate extension for uploaded file. List of acceptable extensions is
 *passed in from the MimeType table in the database 
 */
function checkExtensions(extList) 
{
	var form = document.screen;
	var file = form.AttachmentFile.value;
	var extArray = extList.split(',');
	var allowSubmit = false;
	var strExts = '';
	
	if (!file) return;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext = file.slice(file.lastIndexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) 
	{
		if (extArray[i] == ext) 
		{ 
			allowSubmit = true; 
			break; 
		}
	}
	if (allowSubmit) return true;
	else
		for(var k = 0; k < extArray.length; k++)
		{
			
			if(k%10 == 0)
			{
				strExts = strExts + '\n';
			}	
			
			strExts = strExts + extArray[k] + '  ';

		}
		
		
		alert("Please only upload files with the following extensions:  "
		+ strExts + "\nPlease select a new "
		+ "file to upload and submit again.");
		return false;
}

/*(extArray.join("\n"))*/
