/**
 * javascript / jquery file
 * users.js 
 * copyright 2011 - 2012 OCEN
 * js file for all user related js functions
 */
var aCustomMail = ['gmail','hotmail','yahoo','msn', 'xs4all', 'ziggo'];
var aBlackMail = ['storax','novoferm','dakluiken','gorterluiken','gorterdeutschland','ottevaere','gorter','gorterhungary','gorterhatches','gortergroup','vloerluiken','wandluiken','gorterzrt','bik','surespancovers','surespan.ie','emogy.nl','emogy-fotografie.nl'];
var popup_time	= 2000;

/** 
 * login box applications 
 */
$(document).ready(function(){
	$('#loginBox .loginBtn').mouseenter(function(){
		$('#loginBox #submitBox').animate({
			height: '175px'
		}, 100);
		$('#loginBox .loginBtn').addClass('active');
		return false;
	}); 
	$('#loginBox').mouseleave(function(){	
		$('#loginBox #submitBox').animate({
			height: '0px'
		}, 100, function(){ 
			$(this).hide();
			$('#loginBox .loginBtn').removeClass('active');
		});
		return false;
	});	
});


function toggleLoginFormSmall(p_bShow){
	$('#loginBox form').hide();	
	$('#loginBox form').each(function(){
		this.reset();
	});
	if( p_bShow ) {
		$('#loginFormSmall').fadeIn();		
	} else {
		$('#resetFormSmall').fadeIn();		
	}	
	return false; 
}
function toggleLoginForm(p_bShow){
	$('#formHolder form').hide();	
	$('#formHolder form').each(function(){
		this.reset();
	});
	if( p_bShow ) {
		$('#loginForm').fadeIn();		
	} else {
		$('#resetForm').fadeIn();		
	}	
	return false; 
}


/**
 * login actions
 */
function checkLogin(formID){
	var usr	= $('#'+formID+' input[name=user]').val();
	var pw	= $('#'+formID+' input[name=pass]').val();
	
	$('#'+formID+' input[type=text], #'+formID+' input[type=password]').removeClass('error');
	
	var check = $.post('/users/', { 
			fCall: 'checkLogin', 
			user: usr,
			pass: pw
		}, function(r){
			if(r == 'succes'){
				document.location = '/offertes/';
			} else { 
				$('body').append('<div id="unknownusr" class="error-msg">'+unknown_user_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
				$('#unknownusr').show('fast');
				$('#'+formID+' input[type=text], #'+formID+' input[type=password]').addClass('error');
			}
		}
	);
	
	return false;
}

function getPassword(p_sUser){	
	$('.resetForm input[type=text]').removeClass('error');
	
	var check = $.post('/users/', { 
			fCall: 'getPassword', 
			user: p_sUser
		}, function(r){
			if(r == 'error') { 
				$('body').append('<div id="unknownemail" class="error-msg">'+unknown_email_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
				$('#unknownemail').show('fast');
				$('.resetForm input[type=text]').addClass('error');
			} else {
				$('body').append('<div id="passwordsent" class="error-msg">'+password_sent_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
				
				$('#passwordsent').show('fast');
				
				toggleLoginForm(true);
			}
		}
	);
	
	return false;
}

function doLogout(){
	var check = $.post('/users/', { 
			fCall: 'doLogout'
		}, function(r){
			window.location.reload();
		}
	);
}



function tooltip(p_sHTML, p_oElement, p_iPosX, p_iPosY){
	
	var html = '<div class="tooltip" style="margin-left:'+p_iPosX+'px;margin-top:'+p_iPosY+'px;display:none;">';
	html += '<div class="h"></div>';	
	html += '<div class="c">';
	html += p_sHTML;
	html += '</div>';
	html += '<div class="b"></div>';
	html += '</div>';
	
	$(p_oElement).before(html);
	$('.tooltip').fadeIn()
	
}

/**
 * addressbook functions
 */
function openAddAddressbook(clear){
	$('body,html').animate({ scrollTop: 0 },200);
	
	if(clear){
		document.getElementById('addressForm').reset();
	}
	$('#cover').fadeIn('fast',function(){
		$('#addAddressBox').show('fast');
	});	
}
function editAddressbook(p_iAddress){
	$('.address'+p_iAddress+' .data').each(function(){
		var inputName = $(this).attr('class').replace('data ','');
		var value			= $(this).html();
		$('#addAddressBox input[name='+inputName+']').val(value);
	});
	$('#addAddressBox input[name=addressbook_id]').val(p_iAddress);+
	
	openAddAddressbook();
}
function deleteAddress(p_iAddress){
	if( confirm(delete_confirm_msg) ) { 
		$.post('/users/', { fCall: 'deleteAddress', addressbook_id: p_iAddress }, function(e){
			$('.address'+p_iAddress).parent().fadeOut('fast', function(){ $(this).remove(); });
		});
	}
}
function closeAddAdressbook(){
	$('#cover').fadeOut('fast');
	$('#addAddressBox').hide();	
	document.getElementById('addressForm').reset();
}

function preSaveAddress(){
	$('.tooltip').remove();
	$('#addressForm input[type=text], #addressForm select').removeClass('error');
	var error = false;
	
	// tooltip positions
	var l 	= 385;
	var t 	= -10;
		
	$('#addressForm input[type=text], #addressForm select').each(function(){
		if( $(this).hasClass('mandatory') ) { 		
			// main check
			if( $(this).val() == '' ) { 
				tooltip('u bent vergeten dit veld in te vullen',$(this),l,t);
				$(this).addClass('error');
				error = true;
			}
		}
	});
	
	if ( error == true  ) {		
		$('body').append('<div id="usersaveerror" class="error-msg">'+form_error_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
		$('#usersaveerror').show('fast');
		
		return false;
	} else {
		return true;
	}
	
}


/**
 * user functions
 */
function preSaveUser(){
	
	$('.tooltip').remove();
	$('#userForm input, #userForm textarea, #userForm select').removeClass('error');
	var error = false;	

	// tooltip positions		
	var l 	= 385;
	var t 	= -10;
	$('#userForm input, #userForm textarea, #userForm select').each(function(){		
				
		// new password check
		if( $(this).hasClass('password') ) { 
			if( $('#userForm input[name=password]').val() != '' && $('#userForm input[name=password]').val() != $('#userForm input[name=password_check]').val() ) { 
				tooltip(passw_incorrect_msg,$('#userForm input[name=password_check]'),l,-15);
					$('#userForm input[name=password_check]').addClass('error');
				error = true;
			}
		} else if( $(this).hasClass('email_check') ) {
			if( $('#userForm input[name=email]').val() != $('#userForm input[name=email_check]').val() ) {
			tooltip(email_duplicate_msg,$('#userForm input[name=email_check]'),l,-15);
					$('#userForm input[name=email_check]').addClass('error');
				error = true;
			}
		} else if( $(this).hasClass('email') ) {
			// email check
			var domain = $(this).val().replace(/.*@/, '');
			domain = domain.replace(/\..*/, '');
			if (domain && $(this).val().indexOf('@') > 0 && $(this).val().indexOf('.') > 0) {
		  	for (i in aBlackMail) {
					if (aBlackMail[i] == domain && $('select[name=customers_type_id]').val() != 3) {
		  			// tooltip(email_black_msg, $(this), l, -15);
						// error = true;
						// $(this).addClass('error');
		  			break;
					}
		  	}
	  	} else {
				tooltip(email_incorrect_msg, $(this), l, -15);
				error = true;
				$(this).addClass('error');
			}
			
			
		} else if( $(this).hasClass('mandatory') ) { 
			// main check
			if( $(this).val() == '' ) { 
				tooltip(form_input_msg,$(this),l,t);
				$(this).addClass('error');
				error = true;
			}
		}	
		
	});
	
	if ( error == true  ) {
		
		$('body').append('<div id="usersaveerror" class="error-msg">'+form_error_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
		$('#usersaveerror').show('fast');		
		return false;
	} else {
		return true;
	}
}

/**
 * @desc THIS IS SPECIAL BEFORE STEP 9 CONFIG.. sorry :(
 */
function preAddUser()
{
	
	$('.tooltip').remove();
	$('#userForm input, #userForm textarea, #userForm select').removeClass('error');
	var error = false;	

	if ($('#validatedEmail').val() == 1) {
		return true;
	}

	// tooltip positions
	var l 	= 385;
	var t 	= -10;
	$('#userForm input, #userForm textarea, #userForm select').filter(":visible").each(function(){		
		
		l = $(this).width() + 30;
		
		// new password check
		if( $(this).hasClass('password') ) { 
			if( $('#userForm input[name=password]').val() != '' && $('#userForm input[name=password]').val() != $('#userForm input[name=password_check]').val() ) { 
				tooltip(passw_incorrect_msg,$('#userForm input[name=password_check]'),l,-15);
					$('#userForm input[name=password_check]').addClass('error');
				error = true;
			}
			
		} else if( $(this).hasClass('email_check') ) {
			if( $('#userForm input[name=email]').val() != $('#userForm input[name=email_check]').val() ) {
				tooltip(email_duplicate_msg,$('#userForm input[name=email_check]'),l,-15);
				$('#userForm input[name=email_check]').addClass('error');
				error = true;
			}
			
		} else if( $(this).hasClass('email') ) {
			// email check
			var domain = $(this).val().replace(/.*@/, '');
			domain = domain.replace(/\..*/, '');
			if (domain && $(this).val().indexOf('@') > 0 && $(this).val().indexOf('.') > 0) {
		  	for (i in aBlackMail) {		  		
					if (aBlackMail[i] == domain) {		  			
						tooltip(email_black_error,$('#userForm input[name=email]'),l,-15);
						$('#userForm input[name=email]').addClass('error');
						error = true;
		  			break;
					} else{
						for (i in aCustomMail) {		  		
							if (aCustomMail[i] == domain && $('select[name=customers_type_id]').val() != 3) {		  			
								$('#custom_order').val('yes');
				  			break;
							} else{
								$('#custom_order').val('');
							}
				  	}
					}
		  	}
		  	
	  	} else {
				tooltip(email_incorrect_msg, $(this), l, -15);
				error = true;
				$(this).addClass('error');
				
			}
			
		} else if( $(this).hasClass('mandatory') ) { 
			// main check
			if( $(this).val() == '' ) { 
				tooltip(form_input_msg,$(this),l,t);
				$(this).addClass('error');
				error = true;

			}

		}	

	});

	if (error == true) {
		$('body').append('<div id="usersaveerror" class="error-msg">'+form_error_msg+'<br /><br /><a href="javascript:;" onclick="$(this).parent().fadeOut(\'fast\',function(){ $(this).remove() });" class="button">'+text_close+'</a></div>');
		$('#usersaveerror').show('fast');
		return false;
		
	} else {

		var check = $.post('/users/', { 
			fCall: 'userExists', 
			user: $('input[name=email]').val()
		}, function(r) {
			if(r == 'true'){
				tooltip('Het opgegeven e-mailadres is al bekend in ons systeem.', $('input[name=email]'), 220, -25);
		  	error = true;
				$('input[name=email]').addClass('error');
				return false;
				
			} else {
				if ($('#custom_order').val() == 'yes') {
					alert(email_black_msg);			
				}
				$('#userForm').append('<input type="hidden" name="validatedEmail" id="validatedEmail" value="1" />');
				$('#userForm input[type=submit]').click();
				
			}
		});
		
		return false;
		
	}
}


function checkUserType(l_sValue){
	if( l_sValue == 3 ) {
		$('#companies_row').fadeOut('fast');
	} else {
		$('#companies_row').fadeIn('fast');		
	}
}

/**
 * check user login @ step 9
 */
function checkUser( p_sUser, p_sPass ){
	
	$('#loading').css('display','inline');
	
	var check = $.post('/users/', { 
			fCall: 'checkLogin', 
			user: p_sUser,
			pass: p_sPass
		}, function(r){
			if(r == 'succes'){
				$.post('/users/', { fCall: 'jsGetUser'}, function(data){											
						$('#loading').css('display','none');
						$('.login').fadeOut('fast');
						
						user = eval('('+data+')');
						
						var new_html = 	'<input type="hidden" name="customers_type_id" value="'+user.type+'" />';
						new_html += 		'<input type="hidden" name="gender" value="'+user.gender+'" />';
						new_html += 		'<input type="hidden" name="contact" value="'+user.name+'" />';
						new_html += 		'<input type="hidden" name="companies_name" value="'+user.companies_name+'" />';
						new_html += 		'<input type="hidden" name="telephone" value="'+user.telephone+'" />';
						new_html += 		'<input type="hidden" name="country" value="'+user.country+'" />';
						new_html += 		'<input type="hidden" name="email" value="'+user.email+'" />';
						new_html += 		'<input type="hidden" name="email_check" value="'+user.email+'" />';
						
						
						$('select[name=customers_type_id]').parent().html(user.type_text);
						$('select[name=country]').parent().html(user.country_text);
						if(user.gender == 1){ var gender = "Dhr." } else { var gender = "Mevr." }
						$('select[name=gender]').parent().html(gender);
						$('input[name=contact]').parent().html(user.name);
						$('input[name=companies_name]').parent().html(user.companies_name);
						$('input[name=telephone]').parent().html(user.telephone);
						$('input[name=email]').parent().parent().remove();
						$('input[name=email_check]').parent().parent().remove();
						
						checkCountry(user.country)
						
						$('#userForm').prepend(new_html);
						$('#loginStep9Form .login-step9').html('<a href="/offertes/" class="logoutBtn">Welkom '+user.name+'</a>');
				});
			} else {
				$('.login .login-content').fadeOut('fast');							
				$('#loading').css('display','none');
				
				var html = '<div>Uw gegevens zijn nog niet bekend bij ons.<br />';
				html 		+= 'Door onderstaande gegevens in te vullen kunt u direct een nieuw account aanmaken.<br /><br />';
				html		+= '<a href="javascript:;" onclick="$(\'.login .login-content\').fadeIn(\'fast\');$(this).parent().fadeOut();" class="button">opnieuw proberen in te loggen</a></div>';
				
				$('.login .login-content').after(html);
				
			} 
		}
	);
	
}



