function trimAll(TxtValue)
{
	try
	{
		while (TxtValue.substring(0,1) == ' ')
		{
			TxtValue = TxtValue.substring(1, TxtValue.length);
		}
		while (TxtValue.substring(TxtValue.length-1, TxtValue.length) == ' ')
		{
			TxtValue = TxtValue.substring(0,TxtValue.length-1);
		}
		return TxtValue;
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('1')
		return false
	}
}

function ClearSpan(Id)
{
	for(x in Id)
	{
		try
		{
			document.getElementById('span_'+Id[x]).innerHTML = ''
		}
		catch(e)
		{}
	}
}

function ClearSpanText(Id)
{
	try
	{
		document.getElementById('span_'+Id).innerHTML = ''
	}
	catch(e)
	{}
}

function CreateSpan(Id,ErrorValue,Css)
{
	try
	{
		if(document.getElementById('span_' + Id) != null)
		{
			try
			{
				document.getElementById('span_'+Id).innerHTML = ''
				if(Css != null)
					document.getElementById('span_'+Id).className = Css
				else
					document.getElementById('span_'+Id).className = ''
				if(ErrorValue != null)
					document.getElementById('span_'+Id).innerHTML = '&nbsp;' + ErrorValue
				else
					document.getElementById('span_'+Id).innerHTML = '&nbsp;*'
			}
			catch(e)
			{
				alert(e.toString());
				alert(e.message.toString());
				alert('2')
				return false
			}
		}
		else
			throw e
	}
	catch(e)
	{
		var ObjSpan = document.createElement('span')
		var ObjParent = document.getElementById(Id).parentNode
		ObjParent.appendChild(ObjSpan)
		ObjSpan.id = 'span_' + Id
		if(Css != null)
			ObjSpan.className = Css
		else
			ObjSpan.className = ''
		if(ErrorValue != null)
			ObjSpan.innerHTML = '&nbsp;' + ErrorValue
		else
			ObjSpan.innerHTML = '&nbsp;*'
	}
}

function RequiredField(Id, ErrorValue, Css)
{
	isvalid = true
	for(x in Id)
	{
		try
		{
			if(document.getElementById(Id[x]) == null)
			{
				alert(e.toString())
				alert('3')
				throw e
			}
		}
		catch(e)
		{
			alert('Control name "' + Id[x] + '" not found');
			return false;
		}		
		if(trimAll(document.getElementById(Id[x]).value) == '')
		{
			try
			{				
				CreateSpan(Id[x],ErrorValue,Css)
			}
			catch(e)
			{
				alert(e.toString());
				alert(e.message.toString());
				alert('4')
			}
			finally
			{
				isvalid = false
			}
		}
		else
			ClearSpanText(Id[x])
		
	}
	return isvalid
}
function CreateBorder(Id)
{
	try
	{
		document.getElementById(Id).style.border='1px solid red';
	}
	catch(e)
	{
		
	}
}
function ClearBorder(Id)
{
	try
	{
		document.getElementById(Id).style.border='1px solid gray';
	}
	catch(e)
	{
		
	}
}
function RequiredFieldWithBorder(Id)
{
	isvalid = true
	for(x in Id)
	{
		try
		{
			if(document.getElementById(Id[x]) == null)
			{
				alert(e.toString())
				alert('3')
				throw e
			}
		}
		catch(e)
		{
			alert('Control name "' + Id[x] + '" not found');
			return false;
		}		
		if(trimAll(document.getElementById(Id[x]).value) == '')
		{
			try
			{				
				CreateBorder(Id[x])
			}
			catch(e)
			{
				alert(e.toString());
				alert(e.message.toString());
				alert('4')
			}
			finally
			{
				isvalid = false
			}
		}
		else
			ClearBorder(Id[x])
		
	}
	return isvalid
}



function ValidateEmail(Id)
{
	try
	{
		var reg1 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
		var reg2 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
		
		Value = trimAll(document.getElementById(Id).value)
		
//		if(Value == '')
//		{
//			CreateSpan(Id, '*', 'SpanStyle')
//			return false
//		}
		
//		ClearSpanText(Id)
		if(Value != '')
		{
		if(! reg1.test(document.getElementById(Id).value) || reg2.test(document.getElementById(Id).value))
		{
			CreateSpan(Id, 'Invalid', 'SpanStyle')
			return false
		}
		}
		return true
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('8')
		return false 
	}
}

function ValidatePhoneNumber(Id)
{
	try
	{
		var values = trimAll(document.getElementById(Id).value)
				
		if(values == '')
		{
			CreateSpan(Id, 'Required', 'SpanStyle')
			return false
		}
		ClearSpanText(Id)
		
		var objRegExp=/^\d{3}-\d{3}-\d{4}$/
		var objRegExp1=/^\d*$/
		
		if(objRegExp.test(values))
			return true
		
		if(objRegExp1.test(values))
			return true
		
		CreateSpan(Id, 'Invalid phone number', 'SpanStyle')
		return false
}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('9')
		return false 
	}
}

function IsNumber(Id)
{
	try
	{
		var Value = trimAll(document.getElementById(Id).value)
		
		if(Value == '')
		{
			CreateSpan(Id, '*', 'SpanStyle')
			return false
		}
		
		ClearSpanText(Id)
		
		if(isNaN(Value) || Value < 0)
		{
			CreateSpan(Id, 'Invalid', 'SpanStyle')
			return false
		}
		else
			return true
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('10')
		return false
	}
}

function IsDecimal(Id)
{
	try
	{
		var Value = trimAll(document.getElementById(Id).value)
		
		if(Value == '')
		{
			CreateSpan(Id, '*', 'SpanStyle')
			return false
		}
		
		ClearSpanText(Id)
		
		if(!isFinite(Value) || Value < 0)
		{
			CreateSpan(Id, 'Invalid', 'SpanStyle')			
			return false
		}
		else
			return true
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('10')
		return false
	}
}



function checkDate(Id, Id1)
{
	try
	{
		Date1 = document.getElementById(Id).value
		Date2 = trimAll(document.getElementById(Id1).value)
		
		if(Date2 == '')
		{
			CreateSpan(Id, 'Required', 'SpanStyle')
			return false
		}
		
		ClearSpanText(Id1)

		if(Date1.length > 0)
		{
			var SerDate = new Date(Date1);
			var CliDate = new Date(Date2);
			
			if(validateUSDate(Date2))
			{
				if(SerDate > CliDate)
				{
					CreateSpan(Id1, 'Activation Date must be greater than or equal to Current date', 'SpanStyle')
					return false;
				}			
				else
					return true
			}
			else
				alert('Date is not correct format');
		}
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('13')
		return false
	}
}	

function ClearText(Id)
{
	try
	{
		for(x in Id)
		{
			try
			{
				if(document.getElementById(Id[x]) == null)
					throw e
			}
			catch(e)
			{
				alert('Control name "' + Id[x] + '" not found');
				return false;
			}
			
			document.getElementById(Id[x]).value = ''
			document.getElementById(Id[x]).disabled = false
			document.getElementById(Id[x]).className = ''
		}
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert('16')
		return false
	}
}

function validateUSDate(strValue) 
{
	try
	{		
		var syed = new Date(strValue)
		var tdt = ((syed.getMonth()/1)+1) +"/" + syed.getDate()+"/" + syed.getFullYear()

		if (tdt!=strValue) 
			return false
		else
			return true
	}
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		alert(e.number)
		return false
	}
}
function validateUkDate(strValue) 
{
	try
	{		
       
		var syed = new Date(US_Dateto_UK(strValue))
		var datecheck=syed.getDate();
		if (syed.getDate()<=9 && syed.getMonth()<=9)
		var tdt = '0'+syed.getDate()+"/"+'0'+((syed.getMonth()/1)+1) +"/" +syed.getFullYear();
		else if (syed.getDate()<=9)
		var tdt = '0'+syed.getDate()+"/"+((syed.getMonth()/1)+1) +"/" +syed.getFullYear();
		else if (syed.getMonth()<=9)
		var tdt = syed.getDate()+"/"+'0'+((syed.getMonth()/1)+1) +"/" +syed.getFullYear();
		else
		var tdt = syed.getDate()+"/"+((syed.getMonth()/1)+1) +"/" +syed.getFullYear();
		if (tdt!=strValue) 
		{
		
		return false
			}
		else
		{
	
			return true
			}
	}
	catch(e)
	{
		
		return false
	}
}
function US_Dateto_UK(strval)
{
var datef=strval.split('/');
if (datef.length==3)
return datef[1]+'/'+datef[0]+'/'+datef[2];
else
return strval;
}

function ValidateUKPhoneNumber(Id)
{
	try
	{
		var values = trimAll(document.getElementById(Id).value)
				
		if(values == '')
		{
			CreateSpan(Id, 'Required', 'SpanStyle')
			return false
		}
		ClearSpanText(Id)
		
		var objRegExp=/^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$/;
		
		if(objRegExp.test(values))
			return true
		
		
		alert('Invalid phone number');
		CreateBorder(Id);
		//CreateSpan(Id, 'Invalid phone number', 'SpanStyle')
		return false
    }
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		
		return false 
	}
}

function ValidateURL(Id,Rule)
{
	try
	{
		var values = trimAll(document.getElementById(Id).value)
				
		if(values == '')
		{
			CreateSpan(Id, 'Required', 'SpanStyle')
			return false
		}
		ClearBorder(Id)
		var re = new RegExp(document.getElementById(Rule).value);
          if (document.getElementById(Id).value.match(re)) {
            
            
            return true;
          }


        alert("Invalid URL");
		CreateBorder(Id);
		//CreateSpan(Id, 'Invalid phone number', 'SpanStyle')
		return false
    }
	catch(e)
	{
		alert(e.toString())
		alert(e.message.toString())
		
		return false 
	}
}
function IsEmpty(txt,span)
{
    var isValid=false;
    if(txt.value=='') isValid=true;
    else
    {
        isValid=true;
        for(var i=0;i<txt.value.length;i++)
            if(txt.value.substring(i,1)!=' '){ isValid=false;break; }
    }
    if(isValid){ span.className='ValidationError'; }
    return isValid;
}
function IsValidDate(d)
{
   var date=new Date(d);
   if(isNaN(date)) return false; 
   return true;
}
function CurrentDateValidatoin(d,currentDate)
{
   var userdate=new Date(d);
   var currentdate=new Date(currentDate);
   if(userdate>=currentdate)
   return true;
   else
   return false;
   
}
function ValidateNumber(ID)
{

var digits='0123456789';
var temp;
var ID1 = 'txtPCode';
for (var i=0;i<document.getElementById(ID).value.length;i++)
{
temp=document.getElementById(ID).value.substring(i,i+1);
if (digits.indexOf(temp)==-1)
{
document.getElementById(ID).style.border='solid 1px red';
return false;
}
else
{
document.getElementById(ID).style.border='solid 1px gray';
return true;
}
}


}
