Event.observe('clientinfobutton', 'click', function(event)
{
	  var valid = true;
	  var contactname = $F('ClientContactName').strip();
	  var companyname = $F('ClientCompanyName').strip();
	  var email = $F('ClientEmail').strip();
	  var username = $F('ClientClientUsername').strip();
	  
	  if ('' != email)
	  {
	  	if(IsEmail("ClientEmail"))
	  	{
			$('error_email').update(invalid_email).show();
	    	valid = false;  	
	  	}
	  	else
	  	{
	  		/*var emailcheckresponse = emailuniquecheck(email);
	  		if(emailcheckresponse == false)
	  		{
	  			valid = false;
	  		}*/
	  	}
	  }
	  
	  if ('' != username)
	  {
	  	if(username.length < 4 || username.indexOf(' ')!=-1)
	  	{
	  		$('error_username').update(lesschar_username).show();
	  		valid = false;
	  	}
	  	else
	  	{
	  		var unamecheckresponse = usernameuniquecheck(username);
	  		if(unamecheckresponse == false)
	  		{
	  			valid = false;
	  		}
	  	}
	  }
	  
	  if ('' == contactname)
	  {
	    $('error_contact_name').update(empty_contactperson).show();
	  	valid = false;
	  }
	  else
	  {
	  	$('error_contact_name').update('').hide();
	  }
	  
	  if ('' == companyname)
	  {
	    $('error_company_name').update(empty_companyname).show();
	    valid = false;
	  }
	  else
	  {
	  	$('error_company_name').update('').hide();
	  }
	  
	  if ('' == email)
	  {
	    $('error_email').update(empty_email).show();
	    valid = false;
	  }
	  
	  if ('' == username)
	  {
	    $('error_username').update(empty_username).show();
	    valid = false;
	  }
	  
	  
	  GeneratePassword();
	  
	  if(valid == true)
	  	$('ClientClientInformationForm').submit();
	  else
	  	Event.stop(event);
});

function usernameuniquecheck(username)
{
	var unamecheck = true;
	var basepath = $('basepath').value;
	new Ajax.Request(basepath+"clients/usernameuniquecheck", {
	    		method: "post", 
	    		parameters: { usernametocheck: username }, 
	    		onComplete: function(transport){
				   	var response = transport.responseText;
				   	if(response == 'unamecheckfailed')
				   	{
				   		$('error_username').update(duplicate_username).show();
	  					unamecheck = false;
				   	}
				   	else
				   	{
				   		$('error_username').update('').hide();
				   	}
				}
	});
	return unamecheck;
}

function emailuniquecheck(email)
{
	var emailcheck = true;
	var basepath = $('basepath').value;
	new Ajax.Request(basepath+"clients/emailuniquecheck", {
	    		method: "post", 
	    		parameters: { emailtocheck: email }, 
	    		onComplete: function(transport){
				   	var response = transport.responseText;
				   	if(response == 'emailcheckfailed')
				   	{
				   		$('error_email').update(duplicate_email).show();
	  					emailcheck = false;
				   	}
				   	else
				   	{
				   		$('error_email').update('').hide();
				   	}
				}
	});
	return emailcheck;
}

function GeneratePassword() {
    var length=6;
    var sPassword = "";
    length =6;
    var noPunction = true;
    var randomLength = false;
    
    if (randomLength) {
        length ==Math.random();

        length = parseInt(length * 100);
        length = (length % 7) + 6
    }
   
    for (i=0; i < length; i++) {

        numI = getRandomNum();
        if (noPunction) { while (checkPunc(numI)) { numI = getRandomNum(); } }

        sPassword = sPassword + String.fromCharCode(numI);
    }
    $('ClientClientPassword').value = sPassword;
    return true;
    
}

function getRandomNum() {

    // between 0 - 1
    var rndNum = Math.random()

    // rndNum from 0 - 1000
    rndNum = parseInt(rndNum * 1000);

    // rndNum from 33 - 127
    rndNum = (rndNum % 94) + 33;

    return rndNum;
}

function checkPunc(num) {

    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }

    return false;
}