// -------------------------------------------------------------
// DATING PROJECT
// AUTHOR: GOCE BONEV [goce@asymbio.net]
// -------------------------------------------------------------


// USERNAME FUNCTIONS
// -------------------------------------------------------------
function register_checkUsername(inner){
    var username = document.getElementById('username').value;
    var messageSpan = document.getElementById('status_username');
    messageSpan.innerHTML = "";
    var regex_username  = /^([a-zA-Z0-9_\-]){5,18}$/;

    if(username.length == 0){return false;}

    if(username.length < 5){
        messageSpan.innerHTML = 'Корисничкото име е пократко од 5 симболи!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(username.length > 18){
        messageSpan.innerHTML = 'Корисничкото име е подолго од 18 симболи!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(!regex_username.test(username)){
        messageSpan.innerHTML = 'Корисничкото име содржи недозволени симболи!';
        messageSpan.className = 'form_error';
        return false;
    }
    if(!inner){
        call('ajaxcore/register.php?action=checkUsername&username='+username,'register_usernameResponse','');
        document.getElementById('loading_username').style.display= "inline";
    }
    else {
    	messageSpan.innerHTML = '<img src="img/sys/ok_bw.gif" />';
        messageSpan.className = 'form_ok';
    }
    return true;
}

function register_usernameResponse(data){
    document.getElementById('loading_username').style.display= "none";
    var root = data.childNodes;
    var messageSpan = document.getElementById('status_username');
    for(i=0;i<root.length;i++){
        if(root[i].nodeName.toLowerCase()=='data'){
            for(j=0;j<root[i].childNodes.length;j++){
                if(root[i].childNodes[j].nodeName.toLowerCase()=='username_exists'){
                    var exists = root[i].childNodes[j].firstChild.nodeValue;
                    if(exists != "false"){
                        messageSpan.innerHTML = 'Корисничкото име е зафатено!';
                        messageSpan.className = 'form_error';
                    }
                    else {
                        messageSpan.innerHTML = 'Корисничкото име е слободно!';
                        messageSpan.className = 'form_ok';
                    }
                }
            }
        }
    }
}


// EMAIL FUNCTIONS
// -------------------------------------------------------------
function register_checkEmail(inner){
    var email = document.getElementById('email').value;
    var messageSpan = document.getElementById('status_email');
    messageSpan.innerHTML = "";
    var regex_email  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-\.])+)\.([a-zA-Z0-9]{2,6})+$/;

    if(!regex_email.test(email)){
        messageSpan.innerHTML = 'Внесете валидна e-mail адреса!';
        messageSpan.className = 'form_error';
        return;
    }
    if(!inner){
        call('ajaxcore/register.php?action=checkEmail&email='+email,'register_emailResponse','');
        document.getElementById('loading_email').style.display= "inline";
    }
    else {
	    	messageSpan.innerHTML = '<img src="img/sys/ok_bw.gif" />';
	        messageSpan.className = 'form_ok';
    }
    return true;
}

function register_emailResponse(data){
    document.getElementById('loading_email').style.display= "none";
    var root = data.childNodes;
    var messageSpan = document.getElementById('status_email');
    for(i=0;i<root.length;i++){
        if(root[i].nodeName.toLowerCase()=='data'){
            for(j=0;j<root[i].childNodes.length;j++){
                if(root[i].childNodes[j].nodeName.toLowerCase()=='email_exists'){
                    var exists = root[i].childNodes[j].firstChild.nodeValue;
                    if(exists != "false"){
                        messageSpan.innerHTML = 'E-mail адресата е регистрирана на друг корисник!';
                        messageSpan.className = 'form_error';
                        return false;
                    }
                    else {
                        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
                        messageSpan.className = 'form_ok';
                        return true;
                    }
                }
            }
        }
    }
}


// PASSWORD FUNCTION
// ----------------------------------------------------------------
function register_checkPassword(){
    var password = document.getElementById('password').value;
    var password_repeat = document.getElementById('password_repeat').value;
    var messageSpan = document.getElementById('status_password');
    messageSpan.innerHTML = "";
    var regex_password  = /^([a-zA-Z0-9_\-\.@!\*,]){6,18}$/;

    if(password.length == 0){return false;}

    if(password.length < 6){
        messageSpan.innerHTML = 'Лозинката пократка од 6 симболи!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(password.length > 18){
        messageSpan.innerHTML = 'Лозинката е подолга од 18 симболи!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(!regex_password.test(password)){
        messageSpan.innerHTML = 'Лозинката содржи недозволени симболи!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(password_repeat.length != 0 && password_repeat != password){
        messageSpan.innerHTML = 'Лозинките не се совпаѓаат!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(password_repeat.length != 0){
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
        messageSpan.className = 'form_ok';
        return true;
    }
}


// NAME FUNCTION
// ----------------------------------------------------------------
function register_checkName(){
    var name = document.getElementById('name').value;
    var messageSpan = document.getElementById('status_name');
    messageSpan.innerHTML = "";

    if(name.length == 0){return false;}

    if(name.length < 3 || name.length > 255){
        messageSpan.innerHTML = 'Внесете валидно име и презиме!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(name.length != 0){
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
        messageSpan.className = 'form_ok';
        return true;
    }
}

// NICK FUNCTION
// ----------------------------------------------------------------
function register_checkNick(){
    var nick = document.getElementById('nick').value;
    var messageSpan = document.getElementById('status_nick');
    messageSpan.innerHTML = "";

    if(nick.length == 0){return;}

    if(nick.length < 3 || nick.length > 255){
        messageSpan.innerHTML = 'Внесете валиден nickname!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(nick.length != 0){
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
        messageSpan.className = 'form_ok';
    }

    return true;
}

// DAY FUNCTION
// ----------------------------------------------------------------
function register_checkDay(){
    var day = document.getElementById('day').value;
    var messageSpan = document.getElementById('status_bday');
    messageSpan.innerHTML = "";

    if(day.length == 0){return false;}

    var regex_day  = /^([0123])+([0-9]+)$/;

    if(!regex_day.test(day) || day > 31 || day == "00"){
        messageSpan.innerHTML = 'Внесете валиден ден!';
        messageSpan.className = 'form_error';
        return false;
    }

    return true;
}

// MONTH FUNCTION
// ----------------------------------------------------------------
function register_checkMonth(){
    var month = document.getElementById('month').value;
    var messageSpan = document.getElementById('status_bday');
    messageSpan.innerHTML = "";

    if(month.length == 0){return false;}

    var regex_month  = /^([01])+([0-9]+)$/;

    if(!regex_month.test(month) || month > 12 || month == "00"){
        messageSpan.innerHTML = 'Внесете валиден месец!';
        messageSpan.className = 'form_error';
        return false;
    }

    return true;
}

// YEAR FUNCTION
// ----------------------------------------------------------------
function register_checkYear(){
    var year = document.getElementById('year').value;
    var messageSpan = document.getElementById('status_bday');
    messageSpan.innerHTML = "";

    if(year.length == 0){return false;}

    var regex_year  = /^([12])+([0-9]+)([0-9]+)([0-9]+)$/;

    if(!regex_year.test(year) || year > 2006 || year < 1910){
        messageSpan.innerHTML = 'Внесете валидна година на раѓање!';
        messageSpan.className = 'form_error';
        return false;
    }

    if(register_checkDay() && register_checkMonth()){
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
        messageSpan.className = 'form_ok';
    }
    return true;
}

// WEIGHT FUNCTION
// ----------------------------------------------------------------
function register_checkWeight(){
    var weight = document.getElementById('weight').value;
    var messageSpan = document.getElementById('status_weight');
    messageSpan.innerHTML = "";

    if(weight.length == 0){return false;}

    var regex_weight  = /^([0-9]){2,3}$/;

    if(!regex_weight.test(weight) || weight > 200 || weight < 30){
        messageSpan.innerHTML = 'Внесете валидна тежина!';
        messageSpan.className = 'form_error';
        return false;
    }
	messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
    messageSpan.className = 'form_ok';
    return true;
}


// HEIGHT FUNCTION
// ----------------------------------------------------------------
function register_checkHeight(){
    var height = document.getElementById('height').value;
    var messageSpan = document.getElementById('status_height');
    messageSpan.innerHTML = "";

    if(height.length == 0){return false;}

    var regex_height  = /^([0-9]){2,3}$/;

    if(!regex_height.test(height) || height > 250 || height < 120){
        messageSpan.innerHTML = 'Внесете валидна висина!';
        messageSpan.className = 'form_error';
        return false;
    }

    messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
    messageSpan.className = 'form_ok';

    return true;
}

// CITY FUNCTION
// ----------------------------------------------------------------
function register_checkCity(){
    var city = document.getElementById('city').value;
    var messageSpan = document.getElementById('status_city');
    messageSpan.innerHTML = "";

    if(city == 0 || city == ""){
    	messageSpan.innerHTML = 'Изберете место на живеење!';
        messageSpan.className = 'form_error';
    	return false;
    }
    else {
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
		messageSpan.className = 'form_ok';
    }
    return true;
}

// EYE COLOR FUNCTION
// ----------------------------------------------------------------
function register_checkEyes(){
    var eyes = document.getElementById('eyes').value;
    var messageSpan = document.getElementById('status_eyes');
    messageSpan.innerHTML = "";

    if(eyes == 0 || eyes == ""){
    	messageSpan.innerHTML = 'Изберете боја на очите!';
        messageSpan.className = 'form_error';
    	return false;
    }
    else {
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
		messageSpan.className = 'form_ok';
    }
    return true;
}

// HAIRCOLOR COLOR FUNCTION
// ----------------------------------------------------------------
function register_checkHairColor(){
    var haircolor = document.getElementById('haircolor').value;
    var messageSpan = document.getElementById('status_haircolor');
    messageSpan.innerHTML = "";

    if(haircolor == 0 || haircolor == ""){
    	messageSpan.innerHTML = 'Изберете боја на косата!';
        messageSpan.className = 'form_error';
        return false;
    }
    else {
        messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
		messageSpan.className = 'form_ok';
    }
    return true;
}

// HAIRCOLOR COLOR FUNCTION
// ----------------------------------------------------------------
function register_checkGender(){
    var messageSpan = document.getElementById('status_gender');
    messageSpan.innerHTML = "";
    if(document.getElementById('gender_m').checked == true || document.getElementById('gender_f').checked == true){
    	messageSpan.innerHTML = '<img src="img/sys/ok.gif" />';
		messageSpan.className = 'form_ok';
		return true;
	}
	messageSpan.innerHTML = 'Изберете пол!';
	messageSpan.className = 'form_error';
	return false;
}


// TOTAL REVALIDATOR
// ----------------------------------------------------------------
function register_revalidate(inner, alertok){
	if(!register_checkUsername(inner)){alertRegisterError(alertok); return false;}
	if(!register_checkPassword()){alertRegisterError(alertok); return false;}
	if(!register_checkEmail(inner)){alertRegisterError(alertok); return false;}
	if(!register_checkName()){alertRegisterError(alertok); return false;}
	if(!register_checkNick()){alertRegisterError(alertok); return false;}
	if(!register_checkCity()){alertRegisterError(alertok); return false;}
	if(!register_checkDay()){alertRegisterError(alertok); return false;}
	if(!register_checkMonth()){alertRegisterError(alertok); return false;}
	if(!register_checkYear()){alertRegisterError(alertok); return false;}
	if(!register_checkWeight()){alertRegisterError(alertok); return false;}
	if(!register_checkHeight()){alertRegisterError(alertok); return false;}
	if(!register_checkGender()){alertRegisterError(alertok); return false;}
	if(!register_checkEyes()){alertRegisterError(alertok); return false;}
	if(!register_checkWeight()){alertRegisterError(alertok); return false;}
	if(!register_checkHairColor()){alertRegisterError(alertok); return false;}
	if(document.getElementById('agree').checked != true){
		alert('За да се регистрирате како корисник на овој веб сајт, треба да сте согласни со правата и условите за неговото користење!');
		alertRegisterError(alertok); return false;
	}
	return true;

}

function alertRegisterError(alertok){
	if(alertok == true){
		alert('ГРЕШКА: Пополнете ги сите полиња правилно!');
	}
}