﻿function register_checkUsernameSub(){
	$('register_username').value = $('register_username').value.toLowerCase();
	$('register_username').value = $('register_username').value.trim();
	$('register_username').value = $('register_username').value.replace(/[^\w-]+/g,'');
	if($('register_username').value.length < 4 || $('register_username').value.length > 18){$('messageBox_username').innerHTML = '<div class="serror nomargin"><b>Username must be between 4 and 18 characters!</b></div>'; return false;}
	$('messageBox_username').innerHTML = '<div class="ssuccess nomargin"><b>Username is OK!</b></div>';
	return true;
}
function register_checkUsername(){
	if(!register_checkUsernameSub()){return false;}
    try{
		if($('register_username').value.length > 3){
			call('api.php?o=user&a=username&data[user_username]='+$('register_username').value, 'register_checkUsernameRSP','');
			$('messageBox_username').innerHTML = 'Checking username...';
		}
		else{$('messageBox_username').innerHTML = '';}
    } catch(error){}
}

function register_checkUsernameRSP(data){
	var root = data.childNodes; if(root[1] != null){var i = 1;} else {var i = 0}; var xml_nodes = root[i].childNodes;
	for(j = 0; j < xml_nodes.length; j++){if(xml_nodes[j].nodeName == 'register'){
		if(xml_nodes[j].getAttribute('status') == 0){$('messageBox_username').innerHTML = '<div class="ssuccess nomargin"><b>Username is available!</b></div>';}
		else{$('messageBox_username').innerHTML = '<div class="serror nomargin"><b>This username is already registered!</b></div>';}
	}} return;
}


function register_checkEmailSub(){
	$('register_email').value = $('register_email').value.toLowerCase();
	$('register_email').value = $('register_email').value.trim();
	var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-\.])+)\.([a-zA-Z0-9]{2,6})+$/
	if(!regex.test($('register_email').value)){$('messageBox_email').innerHTML = '<div class="serror nomargin"><b>Please enter valid email address!</b></div>'; return false;}
	$('messageBox_email').innerHTML = '<div class="ssuccess nomargin"><b>Email is OK!</b></div>';
	return true;
}

function register_checkEmail(){
	if(!register_checkEmailSub()){return false;}
    try{
		call('api.php?o=user&a=email&data[user_email]='+$('register_email').value, 'register_checkEmailRSP','');
		$('messageBox_email').innerHTML = 'Checking email...';
    } catch(error){}
}

function register_checkEmailRSP(data){
	var root = data.childNodes; if(root[1] != null){var i = 1;} else {var i = 0}; var xml_nodes = root[i].childNodes;
	for(j = 0; j < xml_nodes.length; j++){if(xml_nodes[j].nodeName == 'register'){
		if(xml_nodes[j].getAttribute('status') == 0){$('messageBox_email').innerHTML = '<div class="ssuccess nomargin"><b>Email is OK!</b></div>';}
		else{$('messageBox_email').innerHTML = '<div class="serror nomargin"><b>This email address is already registered!</b></div>';}
	}} return;
}
function register_ThemeDeveloper(){
	if($('register_theme_develper').checked == true){$('theme-developer-question').setStyle('display', 'block');}
	else{$('theme-developer-question').setStyle('display', 'none');}
};

function register_checkName(){
	$('register_name').value = $('register_name').value.replace(/[^a-zA-Z0-9 \._-]+/g,'');
	if($('register_name').value.length < 3){$('messageBox_name').innerHTML = '<div class="serror nomargin"><b>Name must be at least 3 characters!</b></div>'; return false;}
	if($('register_name').value.length > 24){$('messageBox_name').innerHTML = '<div class="serror nomargin"><b>Name too long!</b></div>'; return false;}
	$('messageBox_name').innerHTML = '<div class="ssuccess nomargin"><b>Name OK!</b></div>';
	return true;
};

function register_checkPassword(){
	$('register_password').value = $('register_password').value.replace(/[^a-zA-Z0-9_\-\.@!\*,#]+/g,'');
	if($('register_password').value.length < 6){$('messageBox_password').innerHTML = '<div class="serror nomargin"><b>Password must be at least 6 characters!</b></div>'; return false;}
	if($('register_password').value.length > 32){$('messageBox_password').innerHTML = '<div class="serror nomargin"><b>Password too long!</b></div>'; return false;}
	$('messageBox_password').innerHTML = '<div class="ssuccess nomargin"><b>Password OK!</b></div>';
	return true;
};

function register_checkHuman(){
	if($('register_human').value.length !=4){$('messageBox_human').innerHTML = '<div class="serror nomargin"><b>Are you sure you are human? You provided an invalid verification code!</b></div>'; return false;}
	$('messageBox_human').innerHTML = ''; 
	return true;
}
function getCheckedValue(radioObj) {
	if(!radioObj) return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)if(radioObj.checked) return radioObj.value; else return "";
	for(var i = 0; i < radioLength; i++) {if(radioObj[i].checked){return radioObj[i].value;}}
	return "";
}

function register_checkAll(){
	if(register_checkName() && register_checkUsernameSub() && register_checkEmailSub() && register_checkPassword() && register_checkHuman()){
		if($('register_theme_develper').checked == true){if(getCheckedValue($('st_registerForm').elements['themeSoftware']) == ''){alert('Please answer the developer question or uncheck the "I am a theme developer!" checkbox!'); return false;}}return true;
	} return false;
}

function register_checkAllFB(){
	if(register_checkName() && register_checkUsernameSub() && register_checkPassword()){
		if($('register_theme_develper').checked == true){if(getCheckedValue($('st_registerForm').elements['themeSoftware']) == ''){alert('Please answer the developer question or uncheck the "I am a theme developer!" checkbox!'); return false;}}return true;
	} return false;
}


function register_init(fb){
	$('register_name').addEvent('change', function(){register_checkName();});
	$('register_name').addEvent('keyup', function(){register_checkName();});
	
	$('register_username').addEvent('change', function(){register_checkUsername();});
	$('register_username').addEvent('keyup', function(){register_checkUsername();});
	if(fb == 0){
		$('register_email').addEvent('change', function(){register_checkEmail();});
		$('register_email').addEvent('keyup', function(){register_checkEmail();});
	}

	$('register_password').addEvent('change', function(){register_checkPassword();});
	$('register_password').addEvent('keyup', function(){register_checkPassword();});	
	
	if(fb != 0){$('st_registerForm').addEvent('submit', function(){ return register_checkAllFB();});}
	else{$('st_registerForm').addEvent('submit', function(){ return register_checkAll();});}
	
	$('register_theme_develper').addEvent('change', function(){register_ThemeDeveloper();});
	register_ThemeDeveloper();
};
