/* OPEN GOOGLE MAP */
function initialize() {
	var chico = new google.maps.LatLng(4.68112,-74.04735);
	var usaquen = new google.maps.LatLng(4.69344,-74.03127);
	var mapCenter = new google.maps.LatLng(4.69550,-74.04250);
	var myOptions = {
		zoom: 14,
		center: mapCenter,
		mapTypeControl: false,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map(document.getElementById('map'), myOptions);
	var infoChico = '<div class="mapInfo"><img src="media/ui/cm-logo-small.png" alt="C &amp; M Consultores S.A." width="64" height="36" title="C &amp; M Consultores S.A."><span id="info"><b>Sede Chic&oacute;</b><br>Carrera 13 No. 96-67<br>Oficina 309<br>+57 1 743 4850<br>Bogot&aacute;, D.C., Colombia</span></div>';
	var bubbleChico = new google.maps.InfoWindow({
		content: infoChico
	});
	var markerChico = new google.maps.Marker({
		position: chico,
		map: map,
		title:'C & M Consultores S.A.'
	});
	bubbleChico.open(map,markerChico);
	google.maps.event.addListener(markerChico, 'click', function() {
  	bubbleChico.open(map,markerChico);
	});
	var infoUsaquen = '<div class="mapInfo"><img src="media/ui/cm-logo-small.png" alt="C &amp; M Consultores S.A." width="64" height="36" title="C &amp; M Consultores S.A."><span id="info"><b>Sede Usaqu&eacute;n</b><br>Carrera 6 No. 116-30<br>Oficina 202<br>+57 1 629 6561 / 6562<br>Bogot&aacute;, D.C., Colombia</span></div>';
	var bubbleUsaquen = new google.maps.InfoWindow({
		content: infoUsaquen
	});
	var markerUsaquen = new google.maps.Marker({
		position: usaquen,
		map: map,
		title:'C & M Consultores S.A.'
	});
	bubbleUsaquen.open(map,markerUsaquen);
	google.maps.event.addListener(markerUsaquen, 'click', function() {
  	bubbleUsaquen.open(map,markerUsaquen);
	});
}

/* USER LOGIN */
function login() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
	  var ieversion = new Number(RegExp.$1);
    if (ieversion <= 6) {
			window.location = 'login.php';
		}
	} else {
		var lightbox = document.createElement('div');
		lightbox.id = 'lightbox';
		document.body.appendChild(lightbox);
		document.getElementById('lightbox').innerHTML = '<iframe id="login" src="login.php"></iframe><a href="javascript:closeLightbox();" id="closeButton"><img src="media/ui/close-button.png" alt="Cerrar ventana" width="16" height="16" title="Cerrar ventana"></a>';
	}
}

function closeLightbox() {
	var lightbox = document.getElementById('lightbox');
	document.body.removeChild(lightbox);
}

/* VALIDATIONS */
function checkEmail(field, id) {
	var emailFilter = /^.+@.+\..{2,3}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;
	var alertId = 'alert' + id.replace(id.charAt(0), id.charAt(0).toUpperCase());
	if (!(emailFilter.test(field)) || field.match(illegalChars)) {
		document.getElementById(alertId).innerHTML = 'Escriba una direcci&oacute;n de correo v&aacute;lida';
		document.getElementById(id).setAttribute('class', 'error');
	} else {
		document.getElementById(alertId).innerHTML = '';
		document.getElementById(id).removeAttribute('class');
	}
}

function checkPassword(field, id){
	var alertId = 'alert' + id.replace(id.charAt(0), id.charAt(0).toUpperCase());
	if (field == '') {
		document.getElementById(id).setAttribute('class', 'error');
		document.getElementById(alertId).innerHTML = 'Escriba su contrase&ntilde;a';
	} else {
		document.getElementById(alertId).innerHTML = '';
		document.getElementById(id).removeAttribute('class');
	}
}

function validateLogin() {
	var flag = true;
	var form = document.identify;
	var emailFilter = /^.+@.+\..{2,3}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;
	if (form.email.value == '' || !(emailFilter.test(form.email.value)) || form.email.value.match(illegalChars)) {
		form.email.setAttribute('class', 'error');
		document.getElementById('alertEmail').innerHTML = 'Escriba una direcci&oacute;n de correo v&aacute;lida';
		flag = false;
	}		
	if (form.password.value == '') {
		form.password.setAttribute('class', 'error');
		document.getElementById('alertPassword').innerHTML = 'Escriba su clave de acesso';
		flag = false;
	} else {
		document.getElementById('alertPassword').innerHTML = '';
		form.password.removeAttribute('class');
	}
	if (!flag) {
		return false;
	}
	return true;
}

function checkNames(field, id) {
	var alertId = 'alert' + id.replace(id.charAt(0), id.charAt(0).toUpperCase());
	var nameFilter = /[^A-z\ÁÉÍÓÚÀÈÌÒÙÑÇßáéíóúàèìòùñç\-\s]/gi;
	var illegalChars = field.match(nameFilter);
	if(nameFilter.test(field)) {
		if(illegalChars.length > 1) {
			document.getElementById(alertId).innerHTML = '"' + illegalChars + '" no son caracteres v&aacute;lidos';
		} else {
			document.getElementById(alertId).innerHTML = '"' + illegalChars + '" no es un car&aacute;cter v&aacute;lido';
		}
		document.getElementById(id).setAttribute('class', 'error');
	} else {
		document.getElementById(alertId).innerHTML = '';
		document.getElementById(id).removeAttribute('class');
	}
}

function checkSelect(field, id) {
	var alertId = 'alert' + id.replace(id.charAt(0), id.charAt(0).toUpperCase());
	if(document.jobs.field == 0) {
		if(id == 'state'){
			document.getElementById('alertState').innerHTML = 'Seleccione un departamento';
		} else if(id == 'city') {
			document.getElementById('alertCity').innerHTML = 'Seleccione una ciudad';
		}
	} else {
		if(id == 'state'){
			document.getElementById('alertState').innerHTML = '';
		} else if(id == 'city') {
			document.getElementById('alertCity').innerHTML = '';
		}
	}
}

function checkFile(filename) {
	var lastDot = filename.lastIndexOf('.');
	var type = filename.substr(lastDot).toLowerCase();
	if(type != '.doc' && type != '.docx' && type != '.pdf'){
		document.getElementById('cv').setAttribute('class', 'error');
		document.getElementById('alertFile').style['color'] = '#F00';
		document.getElementById('cv').value = '';
	} else {
		document.getElementById('cv').removeAttribute('class');
		document.getElementById('alertFile').style['color'] = '#4C4C4C';
	}
}

function checkComment(message){
	if(message == ''){
		document.getElementById('alertComment').innerHTML = 'Escriba su mensaje';
		document.getElementById('comment').setAttribute('class', 'error');
	} else {
		document.getElementById('alertComment').innerHTML = '';
		document.getElementById('comment').removeAttribute('class');
	}
}

function validateForm(form) {
	var flag = true;
	var emailFilter = /^.+@.+\..{2,3}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;
	var nameFilter = /[^A-z\ÁÉÍÓÚÀÈÌÒÙÑÇßáéíóúàèìòùñç\-\s]/gi;
	var nameChars = form.firstName.value.match(nameFilter);
	var lastNameChars = form.lastName.value.match(nameFilter);
	if(form.firstName.value == '') {
		document.getElementById('alertFirstName').innerHTML = 'Escriba su nombre';
		form.firstName.setAttribute('class', 'error');
		flag = false;
	}
	if(nameFilter.test(form.firstName.value)) {
		if(nameChars.length > 1) {
			document.getElementById('alertFirstName').innerHTML = '"' + nameChars + '" no son caracteres v&aacute;lidos';
		} else {
			document.getElementById('alertFirstName').innerHTML = '"' + nameChars + '" no es un car&aacute;cter v&aacute;lido';
		}
		form.firstName.setAttribute('class', 'error');
		flag = false;
	}
	if(form.lastName.value == '') {
		document.getElementById('alertLastName').innerHTML = 'Escriba su apellido';
		form.lastName.setAttribute('class', 'error');
		flag = false;
	}
	if(nameFilter.test(form.lastName.value)) {
		if(lastNameChars.length > 1) {
			document.getElementById('alertLastName').innerHTML = '"' + lastNameChars + '" no son caracteres v&aacute;lidos';
		} else {
			document.getElementById('alertLastName').innerHTML = '"' + lastNameChars + '" no es un car&aacute;cter v&aacute;lido';
		}
		form.lastName.setAttribute('class', 'error');
		flag = false;
	}
	if (form.email.value == '' || !(emailFilter.test(form.email.value)) || form.email.value.match(illegalChars)) {
		form.email.setAttribute('class', 'error');
		document.getElementById('alertEmail').innerHTML = 'Escriba una direcci&oacute;n de correo v&aacute;lida';
		flag = false;
	}
	if(form.id == 'jobs'){
		if(form.state.selectedIndex == 0) {
			document.getElementById('alertState').innerHTML = 'Seleccione un Departamento';
			flag = false;
		}
		if(form.city.selectedIndex == 0) {
			document.getElementById('alertCity').innerHTML = 'Seleccione una ciudad';
			flag = false;
		}
		if(form.cv.value == ''){
			form.cv.setAttribute('class', 'error');
			document.getElementById('alertFile').style['color'] = '#F00';
			flag = false;
		}
	}
	if(form.id == 'contact'){
		if(form.comment.value == ''){
			document.getElementById('alertComment').innerHTML = 'Escriba su mensaje';
			form.comment.setAttribute('class', 'error');
			flag = false;
		}
	}
	if(form.id == 'addUser'){
		if (form.password.value == '') {
			form.password.setAttribute('class', 'error');
			document.getElementById('alertPassword').innerHTML = 'Escriba una clave de acesso';
			flag = false;
		} else {
			document.getElementById('alertPassword').innerHTML = '';
			form.password.removeAttribute('class');
		}
		if (form.confirmPass.value == '') {
			form.confirmPass.setAttribute('class', 'error');
			document.getElementById('alertConfirmPass').innerHTML = 'Escriba de nuevo la clave de acceso';
			flag = false;
		} else {
			document.getElementById('alertConfirmPass').innerHTML = '';
			form.confirmPass.removeAttribute('class');
		}
		if(form.password.value != '' && form.confirmPass.value != ''){
			if(form.password.value != form.confirmPass.value){
				form.password.setAttribute('class', 'error');
				document.getElementById('alertPassword').innerHTML = 'Escriba de nuevo la clave de acesso';
				form.password.value = '';
				form.confirmPass.setAttribute('class', 'error');
				document.getElementById('alertConfirmPass').innerHTML = 'Escriba de nuevo la clave de acceso';
				form.confirmPass.value = '';
				flag = false;
			}
		}
	}
	if (!flag) {
		return false;
	}
	return true;
}

function validateSingleInput(form){
	var flag = true;
	var emailFilter = /^.+@.+\..{2,3}$/;
	if (form.user.value == '' || !(emailFilter.test(form.user.value)) || form.user.value.match(illegalChars)) {
		form.user.setAttribute('class', 'error');
		document.getElementById('alertUser').innerHTML = 'Escriba una direcci&oacute;n de correo v&aacute;lida';
		flag = false;
	}
	if(!flag){
		return false;
	} else {
		return true;
	}
}

function checkNewPassword(value, id){
	var alertId = 'alert' + id.replace(id.charAt(0), id.charAt(0).toUpperCase());
	if(value.length < 8){
		document.getElementById(alertId).innerHTML = 'Contrase&ntilde;a muy corta. M&iacute;nimo 8 caracteres';
		document.getElementById(id).setAttribute('class', 'error');
	} else {
		document.getElementById(alertId).innerHTML = '';
		document.getElementById(id).removeAttribute('class');		
	}
}

function checkConfirmPassword(value, id){
	var alertId = 'alert' + id.replace(id.charAt(0), id.charAt(0).toUpperCase());
	var newPassword = document.getElementById('newPassword').value;
	if(value != newPassword){
		document.getElementById(alertId).innerHTML = 'Las contrase&ntilde;as no coinciden';
		document.getElementById(id).setAttribute('class', 'error');		
	} else {
		document.getElementById(alertId).innerHTML = '';
		document.getElementById(id).removeAttribute('class');		
	}
}

function validatePasswords(form){
	var flag = true;
	if(form.password.value == ''){
		document.getElementById('alertPassword').innerHTML = 'Escriba su contrase&ntilde;a';
		form.password.setAttribute('class', 'error');
		flag = false;
	}
	if(form.newPassword.value == ''){
		document.getElementById('alertNewPassword').innerHTML = 'Escriba su nueva contrase&ntilde;a';
		form.newPassword.setAttribute('class', 'error');
		flag = false;
	}
	if(form.confirmPassword.value == ''){
		document.getElementById('alertConfirmPassword').innerHTML = 'Escriba de nuevo su nueva contrase&ntilde;a';
		form.confirmPassword.setAttribute('class', 'error');
		flag = false;
	} else if(form.confirmPassword.value != form.newPassword.value){
		document.getElementById('alertConfirmPassword').innerHTML = 'Las contrase&ntilde;as no coinciden';
		form.confirmPassword.setAttribute('class', 'error');
		form.newPassword.value = '';
		form.confirmPassword.value = '';
		flag = false;
	}
	if(!flag){
		return false;
	} else {
		return true;
	}
}
