//clase para el manejo del estado del formulario
var Status = function(status) {
	var sts = null;
	if(status) {
		sts = status;
	}
	this.isModifying = function() {
		if(2 == sts.id) {
			return true;
		}else {
			return false;
		}
	};
};

jQuery(document).ready(function() {
	var modifyData = false; //no se ha logeado
	// formularios >
	// login >
	var login = jQuery("#login");
	var loginVar = login.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < loginVar.errorList.length; i++) {
			jQuery(loginVar.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		rules: {
			fullName: {
				required: true,
				minlength: 3,
				email: true
			},
			userPass: {
				required: true,
				minlength: 1
			}
		},
		messages: {},
		errorPlacement: function(error, element) {},//procesamiento de los errores
		submitHandler: function() {
			login.ajaxSubmit({
				dataType:  'json',
				beforeSubmit: function(formData, jqForm, options) {}, // pre-submit callback
				success: function(responseText, statusText) { // post-submit callback
					if(0 === responseText.sts) {
						window.location = responseText.dir;
					}else if(1 == responseText.sts) {
						activate();
					}else {
						Sexy.alert(responseText.msg);
					}
				}
			});
		}
	});
	
	function activate() {
		Sexy.prompt('<h1>Su cuenta se encuentra inactiva</h1><br /><p>Proporcione el c&oacute;digo de activaci&oacute;n</p>','',{
				password: true,
				onComplete: function(returnvalue) {
					if(returnvalue) {
						jQuery.ajax({
							url: 'http://www.e-arca.com.mx/anterior/?id=643',
							data: "passCode=" + returnvalue,
							type: 'POST',
							dataType: 'json',
							error: function(){},
							success: function(responseText, statusText){
								if(0 === responseText.sts) {
									window.location = 'http://www.e-arca.com.mx/anterior/?id=642';
								}else {
									Sexy.alert(responseText.msg);
									activate();
								}
							}
						});
					}
				}
		});
	}
	// < login
	
	// ubicación >
	var locationUsr = jQuery("#location");
	var locationUsrVar = locationUsr.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < locationUsrVar.errorList.length; i++) {
			jQuery(locationUsrVar.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		rules: {
			userCountry: {
				required: true,
				minlength: 1
			},
			userState: {
				required: true,
				minlength: 1
			},
			userCity: {
				required: true,
				minlength: 1
			},
			infoBT: {
				required: true,
				minlength: 1
			},
			ARCAEmploy: {
				required: true,
				minlength: 1
			}
		},
		messages: {},
		errorPlacement: function(error, element) {}
	});
	// < ubicación
	// datos personales >
	var personal = jQuery("#personal");
	var personalVar = personal.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < personalVar.errorList.length; i++) {
			jQuery(personalVar.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		unhighlight: function(el) {
			jQuery(el).css('background','#FFF');
		},
		rules: {
			userName: {
				required: true,
				minlength: 2
			},
			userLastName: {
				required: true,
				minlength: 2
			},
			userLastName1: {
				required: true,
				minlength: 2
			},
			userBirthDay: {
				required: true,
				minlength: 10
			},
			userPhone: {
				required: true,
				minlength: 1
			},
			userMail: {
				required: true,
				email: true
			},
			userMailConf: {
				equalTo: "#userMail",
				required: true,
				email: true
			},
			userPass: {
				//required: true,
				//minlength: 6,
				required: function(element) {
					return !sts.isModifying();
				}
			},
			userPassConf: {
				equalTo: "#userPass",
				//minlength: 6,
				//required: true,
				required: function(element) {
					return !sts.isModifying();
				}
			}
		},
		messages: {},
		errorPlacement: function(error, element) {},
		submitHandler: function() {
			personal.ajaxSubmit({
				dataType:  'json',
				beforeSubmit: function(formData, jqForm, options) {}, // pre-submit callback
				success: function(responseText, statusText) { // post-submit callback
					if(0 === responseText.sts) {
						Sexy.info(
							responseText.msg,{
							onComplete: function(returnvalue) {
								window.location = "http://www.e-arca.com.mx/anterior/?id=" + responseText.dir;
							}
						});
						jQuery("#personal")[0].reset();
					}else if(-1 == responseText.sts) {
						window.location = "http://www.e-arca.com.mx/anterior/?id=" + responseText.dir;
					}else if(15 == responseText.sts) {
						Sexy.alert(
							responseText.msg,{
							onComplete: function(returnvalue) {
								window.location = "http://www.e-arca.com.mx/anterior/?id=" + responseText.dir;
							}
						});
					}else {
						Sexy.alert(responseText.msg);
					}		
				}
			});
		}
	});
	// < datos personales
	
	// información academica >
	var academic = jQuery("#academic");
	var academicVar = academic.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < academicVar.errorList.length; i++) {
			jQuery(academicVar.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		rules: {
			acedemic: {
				required: true,
				minlength: 1
			},
			country: {
				required: true,
				minlength: 1
			},
			school: {
				required: true,
				minlength: 1
			},
			title: {
				required: true,
				minlength: 1
			}
		},
		messages: {
		},
		errorPlacement: function(error, element) {
			// alert("test: " + element);
		}
	});
	function showRequestAcademic(formData, jqForm, options) {
		
	}
	
	function showResponseAcademic(responseText, statusText) {
		var response = responseText;
		if(0 === responseText.sts) {
			
		}else {
			
		}
	}
	// < información academica
	
	// lang >
	var lang = jQuery("#lang");
	var langVar = lang.bind("invalid-form.validate", function() {
		Sexy.alert("Llene los campos requeridos");
	}).validate({
		rules: {
		},
		messages: {
		},
		errorPlacement: function(error, element) {
		}
	});
	
	var i = 1;
	var template = jQuery.format(jQuery("#template").val());
	var addRowButton = jQuery("#addLang");
	addRowButton.click(function() {
		jQuery(template(i++)).appendTo("#lang #panel");
		return false;
	});
	
	//var rmvRowButton = jQuery(".rmv");
	jQuery('a.rmv[id!="erase"]').live('click', function() {
		if('panel' == jQuery(this.parentNode.parentNode).attr('id')) {
			jQuery(this.parentNode).remove();
		}else if('langFormElement' == jQuery(this.parentNode.parentNode.parentNode).attr('class')) {
			jQuery(this.parentNode.parentNode.parentNode).remove();
		}else {
			jQuery(this.parentNode.parentNode).remove();
		}
		return false;
	});
	jQuery('a#erase.rmv').live('click', function() {
		if('panel' == jQuery(this.parentNode.parentNode).attr('id')) {
			//jQuery('')[0].selectedIndex = 0;
			//jQuery(this.parentNode).remove();
		}else {
			jQuery('')[0].selectedIndex = 0;
			//jQuery(this.parentNode.parentNode).remove();
		}
		return false;
	});
	//jQuery('form#lang select.langNameSelect').live('change', function() {
	jQuery('form#lang select.langNameSelect').live('click', function(ev) {
		var el = jQuery(this);
		if(23 == el.val()) {
			jQuery(this).parents('div.langFormElement').children('div.specified').fadeIn();
		}else {
			jQuery(this).parents('div.langFormElement').children('div.specified').fadeOut();
		}
		// Stop event handling in non-IE browsers:
		ev.preventDefault();
		ev.stopPropagation();
		// Stop event handling in IE
		return false;
	});
	// < lang
	
	// computational skills >
	var comSkill = jQuery("#skillComp");
	var comSkillVar = lang.bind("invalid-form.validate", function() {
		Sexy.alert("Llene los campos requeridos");
	}).validate({
		rules: {
		},
		messages: {
		},
		errorPlacement: function(error, element) {
			// alert("test: " + element);
		}
	});
	
	i = 1;
	var templateCompSkill = jQuery.format(jQuery("#templateCompSkill").val());
	var addRowButtonCompSkill = jQuery("#addCompSkill");
	addRowButtonCompSkill.click(function() {
		jQuery(templateCompSkill(i++)).appendTo("#panel");
		return false;
	});
	
	//var rmvRowButton = jQuery(".rmv");
	//jQuery(".rmv").live('click', function() {
	//	jQuery(this.parentNode).remove();
	//	return false;
	//});
	// < computational skills
	
	// áreas de interes >
	var interes = jQuery("#interes");
	var interesVar = interes.bind("invalid-form.validate", function() {
		Sexy.alert("Llene los campos requeridos");
	}).validate({
		rules: {
		},
		messages: {
		},
		errorPlacement: function(error, element) {
			// alert("test: " + element);
		}
	});
	
	i = 1;
	var templateInt = jQuery.format(jQuery("#templateAreaInt").val());
	var addRowButtonInt = jQuery("#addInteres");
	addRowButtonInt.click(function() {
		jQuery(templateInt(i++)).appendTo("#panel");
		return false;
	});
	
	// Tipo de empleo >
	var typeJob = jQuery("form#jobInfo");
	var typeJobVar = typeJob.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < typeJobVar.errorList.length; i++) {
			jQuery(typeJobVar.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		rules: {
			typeJob: {
				required: true,
				minlength: 1
			},
			cash2: {
				required: true,
				minlength: 1
			}
		},
		messages: {
		},
		errorPlacement: function(error, element) {
			// alert("test: " + element);
		}
	});
	// < Tipo de empleo
	
	// Movilidad >
	var movForm = jQuery("form#mov");
	var movVar = movForm.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < movVar.errorList.length; i++) {
			jQuery(movVar.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		rules: {
			changeUbicationInt: {
				required: true,
				minlength: 1
			},
			changeUbicationNal: {
				required: true,
				minlength: 1
			},
			travel: {
				required: true,
				minlength: 1
			},
			file: {
				//required: true,
				minlength: 5
			}
		},
		messages: {
		},
		errorPlacement: function(error, element) {
			// alert("test: " + element);
		},
		submitHandler: function() {
			movForm.ajaxSubmit({
				dataType:  'json',
				beforeSubmit: function(formData, jqForm, options) {
				}, // pre-submit callback
				success: function(responseText, statusText) { //showResponseMov // post-submit callback
					if(0 === responseText.sts) {
						Sexy.info(responseText.msg,{
							onComplete: function() {
								window.location = 'http://www.e-arca.com.mx/anterior/?id=' + responseText.dir;
							}
						});
					}else {
						Sexy.alert(responseText.msg);
					}
				}
			});
		}
	});
	// < Movilidad
	
	// < áreas de interes
	// < formularios
	
	var selectCountry = jQuery("#userCountry");
	var selectProvince = jQuery("#userState");
	selectCountry.change(function(){
		if('' != jQuery(this).val()) {
			jQuery.ajax({
				url: 'http://www.e-arca.com.mx/anterior/?id=658',
				data: "country=" + this.value,
				type: 'POST',
				dataType: 'html',
				error: function(){
					//
				},
				beforeSend: function() {
					jQuery("img.loader").css("display","block");
					selectProvince.attr("disabled","disabled");
				},
				success: function(responseText, statusText){
					selectProvince.children("option").remove();
					selectProvince.append(responseText);
					selectProvince.children('option:first-child').html('Todos');
					selectProvince.removeAttr("disabled");
					jQuery("img.loader").css("display","none");
				}
			});
		}else {
			selectProvince.children("option").remove();
			selectProvince.append('<option value=""></option>');
			selectProvince.attr("disabled","disabled");
		}
	});
	
	// recursos humanos >
	var loginRH = jQuery("form#loginRH");
	var loginRHBind = loginRH.bind("invalid-form.validate", function() {
		var i;
		for(i = 0; i < loginRHBind.errorList.length; i++) {
			jQuery(loginRHBind.errorList[i].element).css('background','#AC0202');
		}
		Sexy.alert("Llene los campos requeridos (marcados con rojo)");
	}).validate({
		rules: {
			fullName: {
				required: true,
				minlength: 3,
				email: true
			},
			userPass: {
				required: true,
				minlength: 6
			}
		},
		messages: {},
		errorPlacement: function(error, element) {},//procesamiento de los errores
		submitHandler: function() {
			loginRH.ajaxSubmit({
				dataType:'json',
				type: 'POST',
				beforeSubmit: function(formData, jqForm, options) {}, // pre-submit callback
				success: function(responseText, statusText) { // post-submit callback
					if(0 === responseText.sts) {
						window.location = responseText.dir;
					}else {
						Sexy.alert(responseText.msg);
					}
				}
			});
		}
	});
	
	var selectLangRH = jQuery('select#lang');
	var inputLangRH = jQuery('div#lang2InputWp');
	selectLangRH.change(function() {
		if('23' == jQuery(this).val()) {
			inputLangRH.fadeIn();
		}else if(inputLangRH.is(':visible')) {
			inputLangRH.fadeOut();
		}
	});
	var lbRHData = jQuery('div#lbRHDataUSR');
	var lbRHDataClose = lbRHData.children('a.close');
	var moreView = jQuery('td.moreCol>a.moreLink');
	moreView.click(function() {
		jQuery.ajax({
			url: this.href,
			//data: "country=" + this.value,
			type: 'GET',
			dataType: 'html',
			error: function(xhr){
				if(500 == xhr.status) {
					alert('Ha ocurrido un error en el servidor');
				}else {
					alert(xhr.statusText);
				}
				lbRHData.children('div#dataUSR').children().remove();
				lbRHData.fadeOut();
			},
			beforeSend: function() {
				lbRHData.children('div#dataUSR').children().remove();
				lbRHData.fadeIn();
				lbRHData.children('div#messageUSR').fadeIn();
			},
			success: function(responseText, statusText){
				lbRHData.children('div#dataUSR').html(responseText);
				lbRHData.children('div#messageUSR').fadeOut(function() {
					lbRHData.children('div#dataUSR').fadeIn();
				});
			}
		});
		return false;
	});
	lbRHDataClose.click(function() {
		lbRHData.children('div#dataUSR').children().remove();
		lbRHData.fadeOut();
		return false;
	});
	// guardar los registros
	var saveReg = jQuery('a#saveReg');
	var formReg = jQuery('form#reclutadorRegister');
	formReg.submit(function() {
		formReg.ajaxSubmit({
			dataType: 'json',
			beforeSubmit: function() {},
			success: function(res) {
				if(0 === res.sts) {
					alert(res.msg);
				}else {
					alert(res.msg);
				}
			}
		});
		return false;
	});
	saveReg.click(function() {
		formReg.submit();
		return false;
	});
	var selecAllUsers = jQuery('input#selectAllUsers');
	selecAllUsers.click(function() {
		if(jQuery(this).is(':checked'))
			jQuery('input[type="checkbox"][id!="selectAllUsers"]').attr('checked',true);
		else
			jQuery('input[type="checkbox"][id!="selectAllUsers"]').attr('checked',false);
	});
	/**
	 * Lightbox para recuperar contraseña del reclutador
	 */
	var closeLB = function() {
		lbForm.fadeOut('fast',function() {
			lbOver.fadeOut('fast');
		});
	};
	var lbPass = jQuery('a#forgetPasswordLink');
	var lbOver = jQuery('div#overLayer');
	var lbForm = jQuery('div#formLayer');
	lbPass.click(function() {
		lbOver.css({
			'display': 'block',
			'height': jQuery(document).height(),
			'opacity': '0.4'
		}).fadeIn('fast',function() {
			lbForm.fadeIn('fast');
		});
		return false;
	});
	lbOver.click(function() {
		closeLB();
		return false;
	});
	var pwdFormMsg = jQuery('div#pswProcessSts');
	var pswForm = jQuery('form#getPswForm');
	pswForm.submit(function() {
		pswForm.ajaxSubmit({
			dataType:  'json',
			error: function() {
				pwdFormMsg.children('div#processAction').fadeOut('fast', function() {
					jQuery('div#msgAction > p').text('error');
					jQuery('div#msgAction').fadeIn();
				});
			},
			beforeSubmit: function(formData, jqForm, options) {
				pwdFormMsg.children('div#processAction').fadeIn();
			}, // pre-submit callback
			success: function(responseText, statusText) { // post-submit callback
				pwdFormMsg.children('div#processAction').fadeOut('fast', function() {
					jQuery('div#msgAction > p').text(responseText.msg);
					jQuery('div#msgAction').fadeIn();
				});
				if(0 === responseText.sts) {
					pswForm.clearForm();
				}
			}
		});
		return false;
	});
	// administrador de reclutadores
	var erase = jQuery('table#resultReclutadores a.delete');
	var active = jQuery('table#resultReclutadores a.activate');
	
	erase.click(function() {
		var row = jQuery(this).parent().parent();
		jQuery.ajax({
			url: jQuery(this).attr('href'),
			data: "task=delete&idRec=" + jQuery(this).attr('id'),
			type: 'GET',
			dataType: 'json',
			error: function(){},
			success: function(responseText, statusText){
				if(0 === responseText.sts) {
					row.remove();
				}else if(1 == responseText.sts) {
					alert('No se pudo eliminar el reclutador');
				}
			}
		});
		return false;
	});
	active.click(function() {
		var row = jQuery(this).parent().parent();
		var inactive = row.find('img.inactive');
		var active = row.find('img.active');
		jQuery.ajax({
			url: jQuery(this).attr('href'),
			data: "task=activate&idRec=" + jQuery(this).attr('id'),
			type: 'GET',
			dataType: 'json',
			error: function(){},
			success: function(responseText, statusText){
				if(0 === responseText.sts) {
					row.children('td.status').text(responseText.txtSts);
					if('none' != inactive.css('display')) {
						inactive.fadeOut(function() {
							active.fadeIn();
						});
					}else {
						active.fadeOut(function () {
							inactive.fadeIn();
						});
					}
					//borrar la fila
				}else if(1 == responseText.sts) {
					//jQuery(this).parent.parent.parent.css('background','red');
				}
			}
		});
		return false;
	});
	var formTrigger = jQuery('a#formSubmit');
	var formSubmit = jQuery('form#filtro input#mysubmit');
	formTrigger.click(function() {
		formSubmit.click();
		return false;
	});
	/*
	var addTrigger = jQuery('a#addRec');
	addTrigger.click(function() {
		jQuery.ajax({
			url: jQuery(this).attr('href'),
			data: "task=add&idRec=" + jQuery(this).attr('id'),
			type: 'GET',
			dataType: 'json',
			error: function(){},
			success: function(responseText, statusText){
				if(0 === responseText.sts) {
					row.children('td.status').text(responseText.txtSts);
					if('none' != inactive.css('display')) {
						inactive.fadeOut(function() {
							active.fadeIn();
						});
					}else {
						active.fadeOut(function () {
							inactive.fadeIn();
						});
					}
					//borrar la fila
				}else if(1 == responseText.sts) {
					//jQuery(this).parent.parent.parent.css('background','red');
				}
			}
		});
		return false;
	});
	*/
	
	var addFormLBBase = jQuery('div#wpLayerAddReclutador');
	var addFormLBData = jQuery('div#lbAddReclutador');
	var addFormLBClose = jQuery('div#lbAddReclutador>a.close');
	var addFormLBTrigger = jQuery('a#addRec');
	var addForm = jQuery('form#addRecForm');
	var tableResult = jQuery('table#resultReclutadores > tbody');
	addFormLBTrigger.click(function() {
		addFormLBBase.css({
			'height':jQuery(document).height(),
			'opacity': 0.5
		}).fadeIn(function() {
			addFormLBData.fadeIn();
		});
		return false;
	});
	addFormLBBase.click(function() {
		addFormLBData.fadeOut(function () {
			addFormLBBase.fadeOut();
		});
	});
	addFormLBClose.click(function() {
		addFormLBBase.click();
		return false;
	});
	addForm.submit(function() {
		addForm.ajaxSubmit({
			dataType: 'json',
			beforeSubmit: function() {},
			success: function(res) {
				alert(res.msg);
				if(0 === res.sts) {
					tableResult.append(res.html);
					addForm.clearForm();
				}
			}
		});
		return false;
	});
	// < recursos humanos
});

