var arr = [];
arr[0] = 'accounts_fullnamewarning';
arr[1] = 'accounts_birthdaywarning';
arr[2] = 'accounts_usernamewarning';
arr[3] = 'accounts_passwordwarning';
arr[4] = 'accounts_emailwarning';
arr[5] = 'accounts_genderwarning';
arr[6] = 'accounts_statewarning';
arr[7] = 'accounts_password2warning';
var lent = arr.length;
var ref = "";
if (document.referrer) var ref = document.referrer
$(document).ready(function() {
	var options = {
		target:			'#accounts_message',
		beforeSubmit:	showRequest,
		success:		showResponse
	};
	$('#accounts_form').submit(function() {
		$(this).ajaxSubmit(options);
		return false;
	});
	
	var optCity = {
		target:			'#accounts_city',
		beforeSubmit:	showCityRequest,
		success:		showCityResponse,
		url:			'/accounts/scripts/getcity.php'
	};
	$('#accounts_state').change(function() {
		$('#accounts_signup').ajaxSubmit(optCity);
		return false;
	});
	
	var optUsername = {
		target:			'#accounts_usernamewarning',
		beforeSubmit:	showUsernameRequest,
		url:			'/accounts/scripts/checkusername.php'
	};
	$('#accounts_checkusername').click(function() {
		$('#accounts_signup').ajaxSubmit(optUsername);
		return false;
	});

	var optEmail = {
		target:			'#accounts_emailwarning',
		beforeSubmit:	showEmailRequest,
		success:		showEmailResponse,
		url:			'/accounts/scripts/checkemail.php'
	};
	$('#accounts_checkemail').click(function() {
		$('#accounts_signup').ajaxSubmit(optEmail);
		return false;
	});

	var optRegister = {
		beforeSubmit:	showRegisterRequest,
		success:		showRegisterResponse,
		url:			'/accounts/scripts/signup.php'
	};
	$('#accounts_register').click(function() {
		
		for (i = 0; i < lent; i++) {
			$('#'+arr[i]).html('');
		}
		var noerror = true;
		if (!$('#accounts_signup input[@name=accounts_fullname]').fieldValue()[0]) {
			showMessageWarning('accounts_fullname','Silahkan isi nama Anda.');
			noerror = false;
		}
		if (!$('#accounts_signup select[@name=accounts_birthday]').fieldValue()[0]) {
			showMessageWarning('accounts_birthday','Silahkan cek tanggal lahir Anda.');
			noerror = false;
		}
		else if (!$('#accounts_signup select[@name=accounts_month]').fieldValue()[0]) {
			showMessageWarning('accounts_birthday','Silahkan cek tanggal lahir Anda.');
			noerror = false;
		}
		else if (!$('#accounts_signup select[@name=accounts_year]').fieldValue()[0]) {
			showMessageWarning('accounts_birthday','Silahkan cek tanggal lahir Anda.');
			noerror = false;
		}
		if (!$('#accounts_signup input[@name=accounts_gender]').fieldValue()[0]) {
			showMessageWarning('accounts_gender','Silahkan pilih jenis kelamin Anda.');
			noerror = false;
		}
		if (!$('#accounts_signup select[@name=accounts_state]').fieldValue()[0]) {
			showMessageWarning('accounts_state','Silahkan cek propinsi dan kota Anda.');
			noerror = false;
		}
		else if (!$('#accounts_signup select[@name=accounts_city]').fieldValue()[0]) {
			showMessageWarning('accounts_state','Silahkan cek propinsi dan kota Anda.');
			noerror = false;
		}
		if (!$('#accounts_signup input[@name=accounts_username]').fieldValue()[0]) {
			showMessageWarning('accounts_username','Silahkan isi username Anda.');
			noerror = false;
		}
		if (!$('#accounts_signup input[@name=accounts_password]').fieldValue()[0]) {
			showMessageWarning('accounts_password','Silahkan isi password Anda.');
			noerror = false;
		}
		else if ($('#accounts_signup input[@name=accounts_password]').fieldValue()[0].length < 6) {
			showMessageWarning('accounts_password','Panjang password minimal 6 karakter.');
			noerror = false;
		}
		else if ($('#accounts_signup input[@name=accounts_password]').fieldValue()[0] != $('#accounts_signup input[@name=accounts_password2]').fieldValue()[0]) {
			showMessageWarning('accounts_password2','Password tidak sama, pastikan password yang dimasukkan sama.');
			noerror = false;
		}
		if (!$('#accounts_signup input[@name=accounts_email]').fieldValue()[0]) {
			showMessageWarning('accounts_email','Silahkan isi alamat email Anda.');
			noerror = false;
		}
		if (noerror) {
			$('#accounts_signup').ajaxSubmit(optRegister);
		}
		else {
			document.location = '#regtop';
		}
		
		return false;
	});
	
	var optCityEdit = {
		target:			'#accounts_city',
		beforeSubmit:		showCityRequest,
		success:		showCityResponse,
		url:			'/accounts/scripts/getcity.php'
	};
	$('#accounts_state').change(function() {
		$('#accounts_form_edit').ajaxSubmit(optCityEdit);
		return false;
	});
	
	var optEdit = {
		beforeSubmit:	showEditRequest,
		success:		showEditResponse,
		url:			'scripts/profil_user.php'
	};
	
	$('#accounts_edit').click(function() {
		
		$('#accounts_form_edit').ajaxSubmit(optEdit);		
		return false;
	});
	
	$('#accounts_signup input[@name=accounts_password]').keyup(function(){
		$('#accounts_passwordwarning').html(passwordStrength($('#accounts_signup input[@name=accounts_password]').val(),$('#accounts_signup input[@name=accounts_username]').val()));
	});
		
	$('#refreshsms').click(function() {
		$('#accounts_smsuser').load('scripts/sms_user.php');
		return false;
	});
	
	var hapushp = {
		target:			'#div_hp',
		beforeSubmit:		showDelRequest,
		url:			'/accounts/scripts/hapusnohp.php'
	};
	
	$('#del_hp').click(function() {
		$('#accounts_form_edit').ajaxSubmit(hapushp);
		return false;
	});
	
	var entryhp = {
		beforeSubmit:		showHPRequest,
		success: showHPResponse,
		url:			'/accounts/scripts/entryhp.php'
	};
	
	$('#accounts_hp').click(function() {
		var mnumber = document.getElementById('mnumber').value;
		var mnumberl = document.getElementById('mnumber').value.length;
		if(mnumberl<=0)
		{
			alert('Silahkan mengisi nomor handphone Anda');
		}
		else if(isNaN(mnumber))
		{
			alert('Format handphone harus angka');
		}
		else
		{
			$('#accounts_form_edit').ajaxSubmit(entryhp);
			return false;
		}
	});
});

function showHPResponse(responseText, statusText) {
	$('#div_hp').html(responseText);

	var entryhp = {
		beforeSubmit:		showHPRequest,
		success: showHPResponse,
		url:			'/accounts/scripts/entryhp.php'
	};
	
	$('#accounts_hp').click(function() {
		var mnumber = document.getElementById('mnumber').value;
		var mnumberl = document.getElementById('mnumber').value.length;
		if(mnumberl<=0)
		{
			alert('Silahkan mengisi nomor handphone Anda');
		}
		else if(isNaN(mnumber))
		{
			alert('Format handphone harus angka');
		}
		else
		{
			$('#accounts_form_edit').ajaxSubmit(entryhp);
			return false;
		}
	});
}

function showRequest(formData, jqForm, options) {
	$('#accounts_message').html('<img src="http://www.kapanlagi.com/v4/i/ajaxloading.gif" alt="" width="16" height="16" /> Silahkan tunggu...');
	return true;
}

function showResponse(responseText, statusText)  {
	if(responseText == 'Login sukses') {
		var hr = window.location.href;
		var spl = hr.split("?");
		hr = hr.replace(/\#login/,'');
		var nl = hr.replace(/(.+?)\?ref\=/,'');
		if (hr.match(/\?ref\=/) || ref != '') {
			var url_loc = '';
			if (hr.match(/url\=/)) {
				var ss = hr.split("&");
				url_loc = ss[1].replace(/url\=/,'');
			}
			if (url_loc != '') {
				nl = url_loc;
			}
			else if (ref != '') { // nl == 'ftd' && 
				nl = ref;
			}
			else if (nl == 'ftd') {
				nl = 'http://musik.kapanlagi.com/';
			}
		}
		
		//alert(nl);
		if (nl != "") {
			if(nl=='http://www.kapanlagi.com/accounts/index.php#Login')
			{
				window.location='http://www.kapanlagi.com/accounts/home.php';
			}
			else
			{
				window.location=nl;	
			}			
		}
		else {
			window.location='http://www.kapanlagi.com/accounts/home.php';
		}
	}
	return true;
}

function showCityRequest(formData, jqForm, options) {
	$('#accounts_city').html('<img src="http://www.kapanlagi.com/v4/i/ajaxloading.gif" alt="" width="16" height="16" /> Mengambil data...');
	return true;
}

function showCityResponse(responseText, statusText)  {
	return true;
}

function showEmailRequest(formData, jqForm, options) {
	$('#accounts_emailwarning').html('<img src="http://www.kapanlagi.com/v4/i/ajaxloading.gif" alt="" width="16" height="16" /> Silahkan tunggu...');
	return true;
}

function showEmailResponse(responseText, statusText)  {
	return true;
}

function showUsernameRequest(formData, jqForm, options) {
	$('#accounts_usernamewarning').html('<img src="http://www.kapanlagi.com/v4/i/ajaxloading.gif" alt="" width="16" height="16" /> Silahkan tunggu...');
	return true;
}

function showRegisterRequest(formData, jqForm, options) {
	$('#accounts_register').attr("disabled", "true");
	$('input#accounts_register').attr("value", "Sedang proses...");
	return true;
}

function showRegisterResponse(responseText, statusText)  {
	if (responseText.match(new RegExp('^success game', 'g'))) {
		window.location = "http://www.kapanlagi.com/game/tournaments/";
	}
	else if (responseText.match(new RegExp('^success mobil', 'g'))) {
		window.location = "http://mobil.kapanlagi.com/submit/login.php";
	}
	else if (responseText.match(new RegExp('^success xmobil_1', 'g'))) {
		window.location = "http://mobil.kapanlagi.com/submit/";
	}
	else if (responseText.match(new RegExp('^success', 'g'))) {
		window.location = "index.php";
	}
	else {
		if (responseText.indexOf("||")) {
			var arrdt = responseText.split('||');
			showMessageWarning(arrdt[0], arrdt[1]);
		}
		else {
			alert(responseText);
		}
		$('#accounts_register').removeAttr("disabled");
		//$('#accounts_register').attr("value", "Daftar KL Accounts");
		$('input#accounts_register').attr("value", "Daftar KL Accounts");
		
	}
	return true;
}

function showEditRequest(formData, jqForm, options) {
	$('#accounts_edit').attr("disabled", "true");
	$('#accounts_edit').val("Sedang proses...");
	return true;
}

function showEditResponse(responseText, statusText)  {
	if (responseText.match(new RegExp('^success', 'g'))) {
		window.location = "home.php";
	}
	else {
		if (responseText.indexOf("||")) {
			var arrdt = responseText.split('||');
			showMessageWarning(arrdt[0], arrdt[1]);
		}
		else {
			alert(responseText);
		}
		$('#accounts_edit').removeAttr("disabled");
		$('#accounts_edit').val("Edit Accounts");
		
	}
	return true;
}

function showRefreshRequest(formData, jqForm, options) {
	$('#accounts_smsuser').html('<span style="color:#ff0000;">refresh data...</span>');
	return true;
}

function showDelRequest(formData, jqForm, options) {
	$('#del_hp').html('<span style="color:#ff0000;">sedang menghapus...</span>');
	return true;
}

function showHPRequest(responseText, statusText)  {
	$('#accounts_edit').removeAttr("disabled");
	$('#accounts_edit').val("Sedang proses...");		
	return true;
}

function showMessageWarning(warningId, messageText) {
	$('#'+warningId+'warning').html('<span style="color:#ff0000;">'+messageText+'</span>');
}

var shortPass = '<span style="color:#ff0000;">Password minimal 6 karakter</a>';
var badPass = '<span style="color:#ff0000;">Kombinasi password kurang bagus</a>';
var goodPass = '<span style="color:#009900;">Kombinasi password bagus</a>';
var strongPass = '<span style="color:#009900;"><b>Kombinasi password sangat bagus</b></a>';

function passwordStrength(password,username)
{
    score = 0;
    
    //password < 4
    if (password.length < 6 ) { return shortPass }
    
    //password == username
    if (password.toLowerCase()==username.toLowerCase()) return badPass;
    
    //password length
    score += password.length * 4;
    score += ( checkRepetition(1,password).length - password.length ) * 1;
    score += ( checkRepetition(2,password).length - password.length ) * 1;
    score += ( checkRepetition(3,password).length - password.length ) * 1;
    score += ( checkRepetition(4,password).length - password.length ) * 1;
    
    //password has 3 numbers
    if (password.match(/(.*[0-9].*[0-9].*[0-9])/))  score += 5;
    
    //password has 2 sybols
    if (password.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) score += 5;
    
    //password has Upper and Lower chars
    if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))  score += 10;
    
    //password has number and chars
    if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/))  score += 15;
    //
    //password has number and symbol
    if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/))  score += 15;
    
    //password has char and symbol
    if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/))  score += 15;
    
    //password is just a nubers or chars
    if (password.match(/^\w+$/) || password.match(/^\d+$/) )  score -= 10;
    
    //verifing 0 < score < 100
    if ( score < 0 )  score = 0;
    if ( score > 100 )  score = 100;
    
    if (score < 34 )  return badPass;
    if (score < 68 )  return goodPass;
    return strongPass;
}


// checkRepetition(1,'aaaaaaabcbc')   = 'abcbc'
// checkRepetition(2,'aaaaaaabcbc')   = 'aabc'
// checkRepetition(2,'aaaaaaabcdbcd') = 'aabcd'

function checkRepetition(pLen,str) {
    res = "";
    for ( i=0; i<str.length ; i++ ) {
        repeated=true;
        for (j=0;j < pLen && (j+i+pLen) < str.length;j++)
            repeated=repeated && (str.charAt(j+i)==str.charAt(j+i+pLen));
        if (j<pLen) repeated=false
        if (repeated) {
            i+=pLen-1;
            repeated=false;
        }
        else {
            res+=str.charAt(i);
        }
    }
    return res;
}