vLDAPUID = false;

function Trim(value)
{
	return value.replace(/^\s+/,'').replace(/\s+$/,'');;
}

function CheckRegex(value,regex)
{
	if(value.length == 0 )
	{
		return false;
	}
	else
	{
		return regex.test(value);
	}
}

function CheckLength(value)
{
	value = value.replace(/^\s+/,'').replace(/\s+$/,'');
	if(value.length == 0)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function CheckNumber(value)
{
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
 	if(value.length == 0 )
    {
    	return false;
    }
   	else
	{
		check_char = start_format.indexOf(value.charAt(0));
		if (check_char == 1)
		{
			decimal = true;
		}
		else if (check_char < 1)
		{
			return false;
		}
		for (var i=1;i<value.length; i++)
		{
			check_char = number_format.indexOf(value.charAt(i));
			if (check_char < 0)
			{
				return false;
			}
			else if (check_char == 1)
			{
				if (decimal)
				{
					return false;
				}
				else
				{
					decimal = true;
				}
			}
			else if (check_char == 0)
			{
				if (decimal || digits)	
				{
					trailing_blank = true;
				}
			}
			else if (trailing_blank)
			{
				return false;
			}
			else
			{
				digits = true;
			}
		}	
	}
	return true;
}


function NumberRange(value, min_value, max_value)
{
	if(value.length == 0 )
	{
		return false;
	}
	else
	{
		if (min_value != null)
		{
			if (value < min_value)
			{
				return false;
			}
		}
		if (max_value != null)
		{
			if (value > max_value)
			{
				return false;
			}
		}
		return true;
	}
}

function CheckInteger(value)
{
	if(value.length == 0)
    {
    	return false;
    }
	else
	{
		var decimal_format = ".";
		var check_char = value.indexOf(decimal_format);
		if (check_char == -1)
		{
			return CheckNumber(value);
		}
		else
		{
			return false;
		}
	}
}

function CheckEmail(value)
{
	if(value.length == 0)
	{
		return false;
	}
	else
	{
		return CheckRegex(value, /^[a-zA-Z_0-9-'\+~]+(\.[a-zA-Z_0-9-'\+~]+)*@([a-zA-Z_0-9-]+\.)+[a-zA-Z]{2,7}$/);
	}
}

function CheckCreditcard(value)
{
	if(value.length == 0 )
	{
		return false;
	}
	else
	{
		var white_space = " -";
		var creditcard_string="";
		var check_char;
		for (var i=0; i<value.length;i++)
		{
			check_char = white_space.indexOf(value.charAt(i));
			if (check_char < 0)
			{
				creditcard_string += value.substring(i, (i + 1));
			}
		}	
		if (creditcard_string.length < 13 || creditcard_string.length > 19)
		{
			return false;
		}
		if (creditcard_string.charAt(0) == "+")
		{
			return false;
		}
		if (!CheckInteger(creditcard_string))
		{
			return false;
		}
		var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
		var checkdigit = 0;
		var tempdigit;
		for (var i=0;i<creditcard_string.length;i++)
		{
			tempdigit = eval(creditcard_string.charAt(i));
			if (doubledigit)
			{
				tempdigit *= 2;
				checkdigit += (tempdigit % 10);
				if ((tempdigit / 10) >= 1.0)
				{
					checkdigit++;
				}
				doubledigit = false;
			}
			else
			{
				checkdigit += tempdigit;
				doubledigit = true;
			}
		}
	}	
	return (checkdigit % 10) == 0 ? true : false;
}

function SplitString(string,index)
{
	var RString = '';
	var TempString = '';
	var TempCounter = 1;
	for(i=0;i<string.length;i++)
	{
		if(string.charAt(i) != ' ')
		{
			RString = RString + string.charAt(i);
		}
	}
	for(i=0;i<RString.length;i++)
	{
		TempString = TempString + RString.charAt(i);
		if (TempCounter == index && i + 1 != RString.length)
		{
			TempString = TempString + ' ';
			TempCounter = 1;
		}
		else
		{
			TempCounter++;
		}
	}
	
	return TempString;
}
   
function ConvertParamString(ParamString) 
{
	vConvetedParams = '';
	var aSplitParams = ParamString.split("&");
	for (var i=0;i < aSplitParams.length;i++)
	{
		if(aSplitParams[i].length)
		{
			if (vConvetedParams.length)
			{
				var aSplitParamsIndex = aSplitParams[i].split("=");
				vConvetedParams = vConvetedParams + "&" + aSplitParamsIndex[0] + "=" + encodeURI(aSplitParamsIndex[1]);
			}
			else
			{	
				var aSplitParamsIndex = aSplitParams[i].split("=");
				vConvetedParams = vConvetedParams + aSplitParamsIndex[0] + "=" + encodeURI(aSplitParamsIndex[1]);
			}
		}
	}
	return vConvetedParams;
}

function makeRequest(url,parameters,funct)
{
	vLDAPUID = false;
	vParameters = ConvertParamString(parameters);
	http_request = false;
	if (window.XMLHttpRequest)  // Mozilla, Safari,...
	{ 
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			http_request.overrideMimeType('text/xml');
		}
	} 
	else if (window.ActiveXObject) // IE
	{ 
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
			catch (e) 
			{
				try 
				{
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} 
					catch (e) 
					{
					}
			}
	}
	if (!http_request) 
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = eval(funct);
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
	
	return vLDAPUID;
}

function alertContents()
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			alert(http_request.responseText);
		}
	}
}

function CheckLDAPUID()
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			if (Trim(http_request.responseText) != '')
			{
				if(Trim(http_request.responseText) == 'true')
				{
					alert('This user ID already exists.');
				}
				else
				{
					if (CheckEmail(document.getElementById('mail').value))
					{
						alert('User ID ok.');
					}
					else
					{
						alert('The User ID is an invalid e-mail address.');
					}
				}
			}
			else
			{
				alert('Request fail!');
			}
		}
	}
}

function Question(Message,Target)
{
	Check = confirm(Message);
	if(Check == true)
	{
		window.location.href = Target;
	}
}
