var _configs = {
images_path: 'themes/regular/images/'
}
//new mthod for password
$.validator.addMethod("alphaNum", function (value, element) {
return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
}, "Password must contain only letters, numbers, or dashes.");
var client = {
login_form: $('#client_login'),
invites_form: $('#form_invite_friends'),
register_form: $('#client_register'),
activation_mail_el: $('#new_activation_mail'),
navigation: $('#client_cycle'),
active_menu: $('.client_nav ul li.activeSlide'),
update_info_form: $('#update_client_info'),
edit_address_form: $('#_client_address'),
ajax_output_el: $('.ajax_output_msg'),
active_page: null,
info: null,
error_msgs: {
pt: {
//forms
name: 'Não introduziu o seu nome.',
name_length: 'Nome tem de ter pelos menos 3 caracteres.',
email_empty: 'Não introduziu o seu email.',
email: 'Email inválido.',
password: 'Não introduziu a sua password.',
password_length: 'Password tem de ter entre 6 a 10 caracteres.',
password_confirm: 'Não introduziu a confirmação da sua password.',
password_equal: 'Passwords não são iguais.',
address_1: 'Deve inserir o seu endereço.',
postal_code: 'Não inseriu o seu código postal.',
city: 'Não inseriu a cidade.',
country: 'Deve escolher o seu país.',
nif: 'Deve inserir o nif',
terms_conditions: 'Deve aceitar os Termos e Condições',
phone: 'Deve introduzir um número telefone válido',
name_spaced: ' Não introduziu o seu nome',
name_length_spaced: ' Nome inválido',
email_empty_spaced: ' E-mail inválido',
email_spaced: ' Email inválido',
//misc
ajax_error: 'Não possivel enviar-lhe o mail, por favor tente mais tarde.'
},
en: {
//forms
name: 'Name is empty.',
name_length: 'Name must have at least 3 characters.',
email_empty: 'Email is empty.',
email: 'Invalid email address.',
password: 'Password is empty.',
password_length: 'Password must have between 6 and 10 characters.',
password_confirm: 'Password confirmation is empty.',
password_equal: 'Passwords are different.',
address_1: 'You must enter your address.',
postal_code: 'Zip code is empty.',
city: 'No city inserted.',
country: 'Please choose your country.',
nif: 'Please enter your VAT ID.',
terms_conditions: 'You must accept Terms and Conditions',
phone: 'You must enter valid phone number',
//misc
ajax_error: 'Not able to send you the email, please try again later.'
},
es: {
//forms
name: 'El nombre está vacío.',
name_length: 'El nombre debe tener al menos 3 caracteres.',
email_empty: 'El correo electrónico está vacío.',
email: 'El correo electrónico no es válido.',
password: 'Contraseña está vacía.',
password_length: 'La contraseña debe tener entre 6 y 10 caracteres.',
password_confirm: 'Confirmación de la contraseña está vacía.',
password_equal: 'Las contraseñas son diferentes.',
address_1: 'Debe completar su dirección.',
postal_code: 'El código postal está vacía.',
city: 'No ha introducido ciudad.',
country: 'Por favor, elija su país.',
nif: 'Por favor, introduzca su DNI/CIF.',
terms_conditions: 'Debe aceptar los Términos y Condiciones',
phone: 'Debe ingresar el número de teléfono válido',
//misc
ajax_error: 'No es capaz de enviarle el correo, inténtalo más tarde.'
},
},
//validate login inputs
login_validate: function () {
//define error lang
var error_obg = client.error_msgs.pt
if (_lang == 'en')
error_obg = client.error_msgs.en
if (_lang == 'es')
error_obg = client.error_msgs.es
//validate
client.login_form.validate({
rules: {
email: {
required: true,
email: true
},
password: {
required: true
}
},
messages: {
email: {
required: error_obg.email_empty,
email: error_obg.email
},
password: {
required: error_obg.password
}
},
success: function (label) {
$('#Email').closest('.form-group').find('.ok').remove();
$('#Password').closest('.form-group').find('.ok').remove();
label.html('OK').removeClass('error').addClass('ok');
label.css({'padding': '14px 0px 14px 10px', 'margin-bottom': '0px'});
setTimeout(function () {
label.fadeOut(500);
}, 2000)
},
errorClass: "errorLable"
});
},
//validate invites inputs
invites_validate: function () {
//define error lang
var error_obg = client.error_msgs.pt
if (_lang == 'en')
error_obg = client.error_msgs.en
//validate
client.invites_form.validate({
rules: {
nome_1: {
minlength: 3
},
email_1: {
email: true
},
nome_2: {
minlength: 3
},
email_2: {
email: true
},
nome_3: {
minlength: 3
},
email_3: {
email: true
},
nome_4: {
minlength: 3
},
email_4: {
email: true
},
nome_5: {
minlength: 3
},
email_5: {
email: true
},
nome_6: {
minlength: 3
},
email_6: {
email: true
},
nome_7: {
minlength: 3
},
email_7: {
email: true
},
nome_8: {
minlength: 3
},
email_8: {
email: true
},
nome_9: {
minlength: 3
},
email_9: {
email: true
},
nome_10: {
minlength: 3
},
email_10: {
email: true
}
},
messages: {
nome_1: {
minlength: error_obg.name_length_spaced
},
email_1: {
email: error_obg.email_spaced
},
nome_2: {
minlength: error_obg.name_length_spaced
},
email_2: {
email: error_obg.email_spaced
},
nome_3: {
minlength: error_obg.name_length_spaced
},
email_3: {
email: error_obg.email_spaced
},
nome_4: {
minlength: error_obg.name_length_spaced
},
email_4: {
email: error_obg.email_spaced
},
nome_5: {
minlength: error_obg.name_length_spaced
},
email_5: {
email: error_obg.email_spaced
},
nome_6: {
minlength: error_obg.name_length_spaced
},
email_6: {
email: error_obg.email_spaced
},
nome_7: {
minlength: error_obg.name_length_spaced
},
email_7: {
email: error_obg.email_spaced
},
nome_8: {
minlength: error_obg.name_length_spaced
},
email_8: {
email: error_obg.email_spaced
},
nome_9: {
minlength: error_obg.name_length_spaced
},
email_9: {
email: error_obg.email_spaced
},
nome_10: {
minlength: error_obg.name_length_spaced
},
email_10: {
email: error_obg.email_spaced
}
},
success: function (label) {
$('#Email').closest('.form-group').find('.ok').remove();
label.html('OK').removeClass('error').addClass('ok');
console.log("1");
setTimeout(function () {
label.fadeOut(500);
}, 2000)
}
});
},
//validate register inputs
register_validate: function () {
//define error lang
var error_obg = client.error_msgs.pt
if (_lang == 'en')
error_obg = client.error_msgs.en
if (_lang == 'es')
error_obg = client.error_msgs.es
//validate
client.register_form.validate({
rules: {
name: {
required: true,
minlength: 3
},
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 6
},/*
password_confirm: {
required: true,
equalTo: "#register_password"
},
address_1: {
required: true
},
postal_code: {
required: true
},
city: {
required: true
},
country: {
required: true
},
nif: {
required: true
},*/
terms_conditions: {
required: true
}
},
messages: {
name: {
required: error_obg.name,
minlength: error_obg.name_length
},
email: {
required: error_obg.email_empty,
email: error_obg.email
},
password: {
required: error_obg.password,
minlength: error_obg.password_length
},
password_confirm: {
required: error_obg.password_confirm,
equalTo: error_obg.password_equal
},
address_1: {
required: error_obg.address_1
},
postal_code: {
required: error_obg.postal_code
},
city: {
required: error_obg.city
},
country: {
required: error_obg.country
},
nif: {
required: error_obg.nif
},
terms_conditions: {
required: error_obg.terms_conditions
}
},
errorPlacement: function (error, element) {
if (element.attr("type") == "checkbox") {
error.insertAfter($(element).parents('div').find('span'));
}else{
error.insertAfter(element);
}
},
success: function (label) {
if(label.attr('for') !== 'terms_conditions'){
$('#examploNome').closest('.form-group').find('.ok').remove();
$('#examploEmail').closest('.form-group').find('.ok').remove();
$('#register_password').closest('.form-group').find('.ok').remove();
label.html('OK').removeClass('error').addClass('ok');
label.css({'padding': '14px 0px 14px 10px', 'margin-bottom': '0px'});
setTimeout(function () {
label.fadeOut(500);
}, 2000)
}
},
errorClass: "errorLable"
});
},
//resend activation mail
activation_mail: function () {
client.activation_mail_el.click(function (e) {
e.preventDefault();
//loading
if (client.login_form.length > 0)
$('
').insertBefore(client.login_form)
//for password recover page without login form
else if ($('.pass_recover').length > 0)
$('
').appendTo('.pass_recover')
//for account activation page without login form
else if ($('.login').length > 0)
$('
').appendTo('.login')
$.get("includes/adds.ajax.php?action=new_mail_validation",
function (response) {
try {
response = jQuery.parseJSON(response)
$('p.mail_sent').remove()
$('p.mail_not_sent').remove()
$('p.user_output_txt').remove()
//error or sucess msg
if (response.status == 'ok') {
$('section.login').find('p').hide()
if (client.login_form.length > 0)
$('
' + response.msg + '
').fadeIn('normal').insertBefore(client.login_form) //for password recover page without login form else if ($('.pass_recover').length > 0) $('' + response.msg + '
').fadeIn('normal').appendTo('.pass_recover') //for account activation page without login form else if ($('.login').length > 0) $('' + response.msg + '
').fadeIn('normal').appendTo('.login') } else { $('section.login').find('p').hide() if (client.login_form.length > 0) $('' + response.msg + '
').fadeIn('normal').insertBefore(client.login_form) //for password recover page without login form else if ($('.pass_recover').length > 0) $('' + response.msg + '
').fadeIn('normal').appendTo('.pass_recover') //for account activation page without login form else if ($('.login').length > 0) $('' + response.msg + '
').fadeIn('normal').appendTo('.login') } } catch (err) { console.log(err) //internal error if (client.login_form.length > 0) $('' + error_obg.ajax_error + '
').fadeIn('normal').insertBefore(client.login_form) //for account activation page without login form else if ($('.login').length > 0) $('' + error_obg.ajax_error + '
').fadeIn('normal').appendTo('.login') //for password recover page without login form else if ($('.pass_recover').length > 0) $('' + error_obg.ajax_error + '
').fadeIn('normal').appendTo('.pass_recover') } $('img.loading').remove() }); }); }, //controlls client area with cycle plugin menu: function () { client.navigation.cycle({ fx: 'scrollHorz', speed: 500, timeout: 0, allowPagerClickBubble: false, pager: '.client_nav ul', /*startingSlide: 6,*/ fit: 1, pagerAnchorBuilder: function (idx, slide) { if (idx === 6) return '#add_new_address'; // return selector string for existing anchor else return '.client_nav ul li:eq(' + idx + ') a'; }, after: function (currSlideElement, nextSlideElement, options, forwardFlag) { //set current active page and load data if needed client.load_menu() //clean ajax_output_msgs client.ajax_output_el.removeClass('success').removeClass('error').html('') //clean error messages $('label.error').remove() } }); }, //load next slide data load_menu: function () { //get current slide client.active_page = $('.client_nav ul li.activeSlide').attr('data-page'); console.log(client.active_page) //load data if it hasnt been loaded if (!client.active_menu.attr('data-loaded')) { console.log('page to load: ' + client.active_page) //load perosonal info if (client.active_page == 'personal_info') client.load_personal_info() } //logout > remove activeSlide if (client.active_page == 'logout') $('.activeSlide').removeClass('activeSlide'); }, //get client data to start (main info, last orders and deliver/billing address) get_data: function () { $.getJSON('includes/ajax.client.php', {action: 'get_data'}, function (response) { if (response.status == 'ok') client.info = response console.log(client.info) }) }, //load client info load_personal_info: function () { //show loading $('.client_personal_data .client_area_loading').removeClass('hidden') //disable submit client.update_info_form.find('input[type="submit"]').attr('disabled', 'disabled') //check if info alreay loaded if (client.info.name == null || client.info.email == null) { $.getJSON('includes/ajax.client.php', {action: 'client_info'}, function (response) { client.info.name = response.name client.info.email = response.email //update inputs client.update_info_form.find('input[name="name"]').val(client.info.name) client.update_info_form.find('input[name="email"]').val(client.info.email) //hide loading $('.client_personal_data .client_area_loading').addClass('hidden') //enable submit client.update_info_form.find('input[type="submit"]').removeAttr('disabled') }) //load data to inputs } else { //update inputs client.update_info_form.find('input[name="name"]').val(client.info.name) client.update_info_form.find('input[name="email"]').val(client.info.email) //hide loading $('.client_personal_data .client_area_loading').addClass('hidden') //enable submit client.update_info_form.find('input[type="submit"]').removeAttr('disabled') } }, update_info: function () { //show or hide password $('#update_client_info input[name="change_password"]').click(function (e) { //change visibilty state if ($('.change_password').css('visibility') == 'hidden') { $('.change_password').css({'visibility': 'visible'}); } else { $('.change_password').css({'visibility': 'hidden'}); } }); //submit info client.update_info_form.submit(function (e) { e.preventDefault() //remove prev output msgs $(this).find('.ajax_output_msg').removeClass('success').removeClass('error').html('') //show loading $('.client_personal_data .client_area_loading').removeClass('hidden') //disable submit $(this).find('input[type="submit"]').attr('disabled', 'disabled') //get form height to calculate on update errors var form_height = client.update_info_form.height() $.post('includes/ajax.client.php', $(this).serialize(), function (response) { try { response = jQuery.parseJSON(response) console.log(response.status) //error or sucess msg if (response.status == 'ok') { //show sucess msg client.update_info_form.find('.ajax_output_msg').addClass('success').html(response.msg) } else { //show error message client.update_info_form.find('.ajax_output_msg').addClass('error').html(response.msg) //show name error if (response.errors.name) { client.update_info_form.find('.name_error').remove() $('').insertAfter(client.update_info_form.find('input[name="name"]')) } //show email error if (response.errors.email) { client.update_info_form.find('.email_error').remove() $('').insertAfter(client.update_info_form.find('input[name="email"]')) } //show password error if (response.errors.password) { client.update_info_form.find('.password_error').remove() $('').insertAfter(client.update_info_form.find('input[name="password"]')) } //calculate new form height form_height = client.navigation.height() - form_height + client.update_info_form.height() client.navigation.height(form_height) } //hide loading $('.client_personal_data .client_area_loading').addClass('hidden') //enable submit client.update_info_form.find('input[type="submit"]').removeAttr('disabled') } catch (err) { //console.log(err) //internal error /*$('#cf_main_output').html('Internal error. Please try again later.') .removeAttr('class') .addClass('form_error')*/ } }); }); }, edit_address: function () { //update form type - insert $('#add_new_address').click(function (e) { e.preventDefault(); client.edit_address_form.find('input[name="type"]').val('insert') }); //update form type - update $('.edit_this_address').click(function (e) { e.preventDefault(); client.edit_address_form.find('input[name="type"]').val('update') }); //submit address client.edit_address_form.submit(function (e) { e.preventDefault() //remove prev output msgs $(this).find('.ajax_output_msg').removeClass('success').removeClass('error').html('') //show loading $(this).find('.input_loading').removeClass('hidden') //disable submit $(this).find('input[type="submit"]').attr('disabled', 'disabled') //get form height to calculate on update errors var form_height = client.edit_address_form.height() $.post('includes/ajax.client.php', $(this).serialize(), function (response) { try { response = jQuery.parseJSON(response) console.log(response.status) //hide loading client.edit_address_form.find('.input_loading').addClass('hidden') //remove error messages client.edit_address_form.find('label.error').remove() //error or sucess msg if (response.status == 'ok') { //show sucess msg client.edit_address_form.find('.ajax_output_msg').addClass('success').html(response.msg) } else { //show error message client.edit_address_form.find('.ajax_output_msg').addClass('error').html(response.msg) //show name error if (response.errors.name) { $('').insertAfter(client.edit_address_form.find('input[name="name"]')) } //show contact error if (response.errors.contact) { $('').insertAfter(client.edit_address_form.find('input[name="contact"]')) } //show address_1 error if (response.errors.address_1) { $('').insertAfter(client.edit_address_form.find('input[name="address_1"]')) } //show city error if (response.errors.city) { $('').insertAfter(client.edit_address_form.find('input[name="city"]')) } //show postal_code error if (response.errors.postal_code) { $('').insertAfter(client.edit_address_form.find('input[name="postal_code"]')) } //show country error if (response.errors.country) { $('').insertAfter(client.edit_address_form.find('select[name="country"]')) } //calculate new form height form_height = client.navigation.height() - form_height + client.edit_address_form.height() client.navigation.height(form_height) } //enable submit client.edit_address_form.find('input[type="submit"]').removeAttr('disabled') } catch (err) { //console.log(err) //internal error /*$('#cf_main_output').html('Internal error. Please try again later.') .removeAttr('class') .addClass('form_error')*/ } }); }); }, account: function () { //show hide password $('#update_client_info input[name="change_password"]').click(function (e) { if ($(this).is(':checked')) { $('li.change_password').removeClass('hide') } else { $('li.change_password').addClass('hide') } }); }, cli_orders_list: function () { $('.cli_orders_list tr').click(function (e) { var url = $(this).find('a').attr('href') if (url) window.location = url }); }, init: function () { $(document).ready(function () { //if login page/form if (client.login_form.length > 0) { client.login_validate() } //if invites form if (client.invites_form.length > 0) { client.invites_validate() } //if register page if (client.register_form.length > 0) { client.register_validate() } //if register page if (client.activation_mail_el.length > 0) { client.activation_mail() } //show hide password if ($('#update_client_info').length > 0) client.account() if ($('.cli_orders_list').length > 0) client.cli_orders_list() }) } } $(document).ready(function () { client.init() $(".deleteFriendSubmit").click(function () { if (confirm("Are you sure you want to delete?")) return true; else return false; }); if( $(".donothin").length > 0 ){ $(".donothin").click(function(e){ e.preventDefault(); $(this).next().slideToggle(); }) } }) //CODIGOS POSTAIS function validatePostalCode() { //get selected country var selectedCountry = $('.selectingCountry').val(); // Portugal (Continental, Açores ou Madeira) if (selectedCountry == 1 || selectedCountry == 20 || selectedCountry == 21) { jQuery(function ($) { $("#postal_code").mask("9999-999", {placeholder: " "}); }); // NO MASK } else { jQuery(function ($) { $("#postal_code").unmask(); }); } } var personalizados = 0; function adicionaLinhaPersonalizada(hazName,sizes,prodid){ var qty = $("#quantidadeBacana").val(); var filePersonalizacao = $("#fileResult").val(); if(qty > 0/* && filePersonalizacao != '' && filePersonalizacao != undefined*/){ if(personalizados == 0){ var toplineHTML = '| Size | '; if(hazName == true) toplineHTML += 'Name | '; toplineHTML += ''; toplineHTML += ' |
|---|