//IE FIX START
if (/msie/i.test (navigator.userAgent)) //only override IE
{
	document.nativeGetElementById = document.getElementById;
	document.getElementById = function(id)
	{
		var elem = document.nativeGetElementById(id);
		if(elem)
		{
			//make sure that it is a valid match on id
			if(elem.id == id)
			{
				return elem;
			}
			else
			{
				//otherwise find the correct element
				for(var i=1;i<document.all[id].length;i++)
				{
					if(document.all[id][i].id == id)
					{
						return document.all[id][i];
					}
				}
			}
		}
		return null;
	};
}

//IE fix end

var result_array = new Array();
var xmlhttp;
var offset = 0;
			
function validate()
{
	timer_request = setTimeout("loadXMLDoc()",500);
}

function loadXMLDoc()
{
	var username = escape(document.getElementById('username').value);
	var password = escape(document.getElementById('password').value);
	var verf_password = escape(document.getElementById('field_verifyPass').value);
	var email = escape(document.getElementById('field_email').value);
	var given_name = escape(document.getElementById('field_extend11').value);
	var family_name = escape(document.getElementById('field_extend12').value);
	var country = escape(document.getElementById('field_extend2').value);
	var country_code = escape(document.getElementById('field_extend_prefix8').value);
	var phone = escape(document.getElementById('field_extend_phone8').value);
	var captcha_validate = escape(document.getElementById('captcha_validate').value.toLowerCase());
	var hidden_captcha = escape(document.getElementById('hidden_captcha').value);

	var url = "/user_validate_dial.php?username=" + username
									+ "&password="+ password 
									+ "&verf_password=" + verf_password
									+ "&email=" + email
									+ "&given_name=" + given_name
									+ "&family_name=" + family_name
									+ "&country=" + country
									+ "&country_code=" + country_code
									+ "&phone=" + phone
									+ "&captcha_validate=" + captcha_validate
									+ "&hidden_captcha=" + hidden_captcha;
									
	xmlhttp=null;
	// code for Mozilla, IE 7
	if (window.XMLHttpRequest)
	  {
	  xmlhttp=new XMLHttpRequest();
	  }
	// code for IE 6 or below
	else if (window.ActiveXObject)
	  {
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
	  }
	if (xmlhttp!=null)
	{
	  
	  xmlhttp.open("GET",url,true);
	  xmlhttp.onreadystatechange=onResponse;
	  xmlhttp.send(null);
	 }else{
	  alert("Your browser does not support XMLHTTP.")
	 }
}

function checkReadyState(obj)
{
  if(obj.readyState == 4)
  {
    if(obj.status == 200)
    {
      return true;
    }
    else
    {
      alert("Problem retrieving XML data. Please contact administrator");
    }
  }
}

function onResponse() 
{
  if(checkReadyState(xmlhttp))
  {
	var response = xmlhttp.responseXML;
	var x = response.getElementsByTagName("validated");
	
	var i = 0;
	
	result_array[i] = {v_username:'', v_pass:'', v_passverf:'', v_email:'', v_gname:'', v_fname:'', v_country:'', v_cnumber:'', v_phone:'', v_captcha:''}

	 xx=x[i].getElementsByTagName("username")
	 {
	 try
		{
			result_array[i].v_username = xx[0].firstChild.data
		}
	 catch (er)
		{
			result_array[i].v_username = ""
		}
	 }
	 xx=x[i].getElementsByTagName("password")
	  {
	  try
		{
		result_array[i].v_pass = xx[0].firstChild.data
		}
	  catch (er)
		{
		result_array[i].v_pass = ""
		}
	  }
	 xx=x[i].getElementsByTagName("verf_password")
	  {
	  try
		{
		result_array[i].v_passverf = xx[0].firstChild.data
		}
	  catch (er)
		{
		result_array[i].v_passverf = ""
		}
	  }
	 xx=x[i].getElementsByTagName("email")
	  {
	  try
		{
		result_array[i].v_email = xx[0].firstChild.data
		}
	  catch (er)
		{
		result_array[i].v_email = ""
		}
	  }
	 xx=x[i].getElementsByTagName("given_name")
	  {
	  try
		{
		result_array[i].v_gname = xx[0].firstChild.data
		}
	  catch (er)
		{
		result_array[i].v_gname = ""
		}
	  }
	 xx=x[i].getElementsByTagName("family_name")
	  {
	  try
		{
		result_array[i].v_fname = xx[0].firstChild.data
		}
	  catch (er)
		{
		result_array[i].v_fname = ""
		}
	  }
	 xx=x[i].getElementsByTagName("country")
	  {
	  try
		{
		result_array[i].v_country = xx[0].firstChild.data
		}
	  catch (er)
		{
		result_array[i].v_country = ""
		}
	  }
	xx=x[i].getElementsByTagName("country_code")
	  {
	  try
		{
		result_array[i].v_cnumber = xx[0].firstChild.data;
		}
	  catch (er)
		{
		result_array[i].v_cnumber = ""
		}
	  }
	xx=x[i].getElementsByTagName("phone")
	  {
	  try
		{
		result_array[i].v_phone = xx[0].firstChild.data;
		}
	  catch (er)
		{
		result_array[i].v_phone = ""
		}
	  }
	xx=x[i].getElementsByTagName("captcha")
	  {
	  try
		{
		result_array[i].v_captcha = xx[0].firstChild.data;
		}
	  catch (er)
		{
		result_array[i].v_captcha = ""
		}
	  } 
	

	//-----------------------generate the validation result after query--------------
	
	var error = 1;
	// display validate username result
	if(result_array[i].v_username == "taken"){
		document.getElementById('error_username').innerHTML = username_taken;
		error += 1 ;
	}else if(result_array[i].v_username == "invalid"){
		document.getElementById('error_username').innerHTML = username_invalid;
		error += 1 ;
	}else if(result_array[i].v_username == "empty"){
		document.getElementById('error_username').innerHTML = username_empty;
		error += 1 ;
	}else{
			document.getElementById('error_username').innerHTML = "";
		}
		
	// display validate password result
	if(result_array[i].v_pass == "empty"){
		document.getElementById('error_password').innerHTML = password_empty;
		error += 1 ;
	}else if(result_array[i].v_pass == "invalid"){
		document.getElementById('error_password').innerHTML = password_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_password').innerHTML = "";
		}
		
	// display validate verf password result
	if(result_array[i].v_passverf == "empty"){
		document.getElementById('error_verf_password').innerHTML = password_empty;
		error += 1 ;
	}else if(result_array[i].v_passverf == "not_match"){
		document.getElementById('error_verf_password').innerHTML = verf_password_not_match;
		error += 1 ;
	}else{
		document.getElementById('error_verf_password').innerHTML = "";
		}
		
	// display validate email result
	if(result_array[i].v_email == "empty"){
		document.getElementById('error_email').innerHTML = email_empty;
		error += 1 ;
	}else if(result_array[i].v_email == "taken"){
		document.getElementById('error_email').innerHTML = email_taken;
		error += 1 ;
	}else if(result_array[i].v_email == "invalid"){
		document.getElementById('error_email').innerHTML = email_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_email').innerHTML = "";
		}
		
	// display validate Given Name result
	if(result_array[i].v_gname == "invalid"){
		document.getElementById('error_given_name').innerHTML = given_name_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_given_name').innerHTML = "";
		}
		
	// display validate Family Name result
	if(result_array[i].v_fname == "invalid"){
		document.getElementById('error_family_name').innerHTML = family_name_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_family_name').innerHTML = "";
		}
		
	// display validate Country result
	if(result_array[i].v_country == "empty"){
		document.getElementById('error_country').innerHTML = country_empty;
		error += 1 ;
	}else{
		document.getElementById('error_country').innerHTML = "";
		}
		
	// display validate Country Code result
	if(result_array[i].v_country == "invalid"){
		document.getElementById('error_country_code').innerHTML = country_code_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_country_code').innerHTML = "";
		}
		
	// display validate Phone result
	if(result_array[i].v_phone == "invalid"){
		document.getElementById('error_phone').innerHTML = phone_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_phone').innerHTML = "";
		}
		
	// display validate Phone result
	if(result_array[i].v_captcha == "empty"){
		document.getElementById('error_captcha').innerHTML = captcha_empty;
		error += 1 ;
	}else if(result_array[i].v_captcha == "invalid"){
		document.getElementById('error_captcha').innerHTML = captcha_invalid;
		error += 1 ;
	}else{
		document.getElementById('error_captcha').innerHTML = "";
		}
		
	if(error == 1)
		document.mosUserForm.submit();
	
  }
}

function formatInteger(id)
{
   var cur =
   document.getElementById(id).value;
   reg = /[^\d]+/;
   cur = cur.replace(',', '.');
   cur = cur.replace('..', '.');
   cur = cur.replace(reg, '');
   document.getElementById(id).value = cur;
}