function downloadCurriculumsAsPdf(event, params) {
	if (params.referer == 'CURRICULUM') {
		$('downloadCurriculumsIframe').src = params.controller;
	
	} else if (params.referer == 'CURRICULUM_FROM_SEARCH') { 
		
		if (params.comments) {
			jQuery('#downloadComments').val('true');			 
		} else {
			jQuery('#downloadComments').val('false');
		}

		var form = $('jobSeekersForm');
		form.action = params.controller;
		form.submit();
		
	} else if (params.referer == 'SEARCH') {
		checkboxes = document.getElementsByName('jobSeekerId');
		
		if (validateCheckbox(checkboxes, 1, 1)) {
			
			listadoJobSeekerIds = ""; 
			otroListadoJobSeekerIds = "";
			first = 0;  
			
			for (i = 0; i < checkboxes.length; i++) { 
				if (checkboxes[i].checked) { 
					first++; 
					if (first == 1) { 
						listadoJobSeekerIds+= '?values='+checkboxes[i].value;
						otroListadoJobSeekerIds+= '?';
					} else { 
						listadoJobSeekerIds+=','+checkboxes[i].value;
						otroListadoJobSeekerIds+='&';
					}
					otroListadoJobSeekerIds+= 'jobSeekerId='+checkboxes[i].value;
				}   
			 }
			
			URL = params.controller + listadoJobSeekerIds;
	
			document.getElementById('commentConfirmDownloadYes').href = URL;
			document.getElementById('commentConfirmDownloadNo').href = URL;
			
			var hasComments = selectedCVsHaveAtLeastOneComment(params.verifyCommentsController, otroListadoJobSeekerIds);
			
			if (hasComments) {
				showConfirmCommentPopupDownload('Descargar en formato PDF', downloadCVPopupCallback, {url: URL});
			} else {
				downloadCVPopupCallback(false, URL);
			}	
			
		} else {
			displayBlock('export-pdf-tooltip');
			positionClick(event, 'export-pdf-tooltip');
		}	
	}
}

function selectedCVsHaveAtLeastOneComment(verifyCommentsController, selectedJobSeekerIds) {
	var hasComments;
	
	new Ajax.Request(verifyCommentsController + selectedJobSeekerIds, {
		method : 'post',
		asynchronous : false,
		requestHeaders : {
			Accept : 'application/json'
		},
		onComplete : function(transport) {
			var json = transport.responseText.evalJSON();
			hasComments = json.comments;
		}
	});
	
	return hasComments;
}

function printCurriculumVitae(event,params) {

	checkboxes = document.getElementsByName('jobSeekerId');	
	
	if (validateCheckbox(checkboxes, 1, 1)) {
		listadoJobSeekerIds = ""; 
		first = 0;  
		 
		for (i = 0; i < checkboxes.length; i++) { 
			if (checkboxes[i].checked) { 
				first++; 
				if (first == 1) { 
					listadoJobSeekerIds+= '?'; 
				} else { 
					listadoJobSeekerIds+='&'; 
				}
				listadoJobSeekerIds+='jobSeekerId='+checkboxes[i].value;
			}
		 } 
		
		URL = params.controller + listadoJobSeekerIds;
		
		document.getElementById('commentConfirmPrintYes').href = URL + '&printComments=true';
		document.getElementById('commentConfirmPrintNo').href = URL + '&printComments=false';
		
		var hasComments = selectedCVsHaveAtLeastOneComment(params.verifyCommentsController, listadoJobSeekerIds);
		if (hasComments) {
			showConfirmCommentPopupPrint(params.title, printCommentPopupCallback, {url: URL});
		} else {
			URL = URL + '&printComments=false';
			printCommentPopupCallback(URL);
		}

	} else {
		displayBlock('send-print-tooltip');
		positionClick(event, 'send-print-tooltip');
	}
}

function printCommentPopupCallback(printURL){
	displayElement('transparentDiv','none');
	displayElement('confirmCommentPopupPrint','none');

	URL = printURL;
	window.open(URL, 'imprimir', 'width=1, height=1');
	
	return false;
}

function sendCurriculumVitaeByMail(event,params){

	checkboxes = document.getElementsByName('jobSeekerId');
	
	if (validateCheckbox(checkboxes, 1, 1)) {
		listadoJobSeekerIds = ""; 
		otroListadoJobSeekerIds = "";
		first = 0;  
		 
		for (i = 0; i < checkboxes.length; i++) { 
			if (checkboxes[i].checked) { 
				first++; 
				if (first == 1) { 
					listadoJobSeekerIds+= '?values='+checkboxes[i].value;
					otroListadoJobSeekerIds+= '?';
				} else { 
					listadoJobSeekerIds+=','+checkboxes[i].value;
					otroListadoJobSeekerIds+='&';
				}
			otroListadoJobSeekerIds+= 'jobSeekerId='+checkboxes[i].value;
			}   
		}
		
		URL = params.controller + listadoJobSeekerIds;
		
		document.getElementById('commentConfirmMailYes').href = URL + '&comments=true';
		document.getElementById('commentConfirmMailNo').href = URL + '&comments=false';

		var hasComments = selectedCVsHaveAtLeastOneComment(params.verifyCommentsController, otroListadoJobSeekerIds);
		if (hasComments) {
			showConfirmCommentPopupMail('Enviar por mail', sendCurriculumVitaeByMailCallback, {url: URL});
		} else {
			URL = URL + '&comments=false';
			sendCurriculumVitaeByMailCallback(URL);
		}
	} else {
		displayBlock('send-mail-tooltip');
		positionClick(event, 'send-mail-tooltip');
	}
}

function sendCurriculumVitaeByMailCallback(mailURL){
	displayElement('transparentDiv','none');
	displayElement('confirmCommentPopupMail','none');

	URL = mailURL;
	window.open(URL, 'popupwindow', 'width=453', 'height=850','scrollbars=no','menubar=no','location=no','resizable=no');
	return false;
}

function downloadCVPopupCallback(withComments, downloadURL){
	displayElement('transparentDiv','none');
	displayElement('confirmCommentPopupDownload','none');

	downloadCurriculumsAsPdf({},{referer : ftlSourceReferer='CURRICULUM_FROM_SEARCH', controller : downloadURL + '&downloadComments=' + withComments, comments : withComments});
	
	return false;
}

// Para employer
function onModifyEmployerValidationFailure(params, transport) {
	onFormUserEmployerModuleValidationFailure(transport, 'employer');
	displayElement('alertaModifyError', 'none');
	displayElement('alertaError', 'block');
}

function onModifyEmployerValidationSuccess(params) {
	$(params.formId).submit();
}

function onModifyEmployerFailure(params, transport) {
	onFormUserEmployerModuleValidationFailure(transport, 'employer');
	displayElement('alertaModifyError', 'block');
	displayElement('alertaError', 'none');
}



function dilplayOtherCity(params){
	if(params.locationId == '-1'){
		displayElement('cityEmployerFieldDiv','block');
	}else{
		var cityInput=$('city');
		cityInput.value='';
		displayElement('cityEmployerFieldDiv','none');
	}
}


function getLocations(params) {
	if (params.locationId == '0') {
		for (var i = (parseInt(params.level)); i <= 3; i++) {
			var selectLocation = 'location' + i + 'IdEmployerFieldDiv'; 
			displayElement(selectLocation, 'none');
			$('location' + i + 'Id').selectedIndex = 0;
		}
		displayElement('cityEmployerFieldDiv', 'none');
		$('city').value = '';
	} else if (params.locationId != '-1') {
		new Ajax.Request(params.controller, {  
			method : 'get',parameters : {  
			locationId : params.locationId },  
			requestHeaders : {  Accept : 'application/json'  }, 
			onSuccess : 
				function(transport) {  
				onStatesRetrieved(params, transport);  
				}  
			});  
	} else {
		for( var counterLevel = (parseInt(params.level));counterLevel <= 3;counterLevel++) {
			displayElement('location' + counterLevel + 'IdEmployerFieldDiv', 'none');
		}
		displayElement('cityEmployerFieldDiv','block'); 
	} 
}

function onStatesRetrieved(params, transport) {
	var jsLocation = transport.responseText.evalJSON(); 
	var states = jsLocation.locations;
	var locationSelectId;

	locationSelectId = 'location' + params.level + 'Id';
	$(locationSelectId).removeAttribute('disabled');

	if(states.length > 0){
		// si selecciono una localidad sin ultimo nivel, swapear los nombres
		if ( params.level == '2' && jsLocation.swapLabels) {
			$("location3IdEmployerFieldDiv").down("label").textContent = labelLocation2; 
			$("location2IdEmployerFieldDiv").down("label").textContent = labelLocation3; 
		} else {
			$("location2IdEmployerFieldDiv").down("label").textContent = labelLocation2; 
			$("location3IdEmployerFieldDiv").down("label").textContent = labelLocation3; 
		}

		displayElement('cityEmployerFieldDiv','none');
		displayElement(locationSelectId +'EmployerFieldDiv','block');
	}
	
	var select = $(locationSelectId); 
	removeSelectOptions(select.id); 
	
	for (var counterLevel = (parseInt(params.level) + 1); counterLevel <= 3; counterLevel++) {
		displayElement('location' + counterLevel + 'IdEmployerFieldDiv', 'none');
		$('location' + counterLevel + 'Id').selectedIndex = 0;
	}
	
	var cityInput=$('city');
	cityInput.value='';
	if (states != null && states.length != 0) {
		addSelectOption(select.id, "Seleccione", "0");
		for ( var counter = 0; counter < states.length; counter++) { 
			var state = states[counter]; 
			addSelectOption(select.id, state.name, state.id); 
		}
	} else {
		addSelectOption(select.id, "No disponible", "-2");
	}

}


function enableAndDisableField(field1,field1Value,field2) {	
	var cmb = $(field1);
	if (cmb.options[cmb.selectedIndex].text != field1Value) {
		$(field2).value = "";
		$(field2).disabled = true;
	} else {
		$(field2).disabled = false;
	}
}


function removeSelectOptions(selectId, excludedOptionValue) {  
	var select = $(selectId);  
	for (var counter = select.options.length - 1; counter >= 0; counter--) {  
		if ((excludedOptionValue == undefined)  || (select.options[counter].value != excludedOptionValue)) {  
			select.remove(counter);  
		}  
	} 
} 


function addSelectOption(selectId, text, value) {  
	var option = document.createElement("OPTION");  
	option.text = text;  
	option.value = value;  
	$(selectId).options.add(option); 
} 



// Fin employer

function showConfirmCommentPopupPrint(title, callback, params){

	toggleTransparentDiv('transparentDiv');
	
	jQuery("#confirmCommentPopupPrint").css({
		'top' : '200px', 
		'display' : 'block',
		'width' : '450px',
		'height' : '150px'
	});
	
	window.scrollTo(0, 0);
	
	return false;
}


function showConfirmCommentPopupMail(title, callback, params){
	
	toggleTransparentDiv('transparentDiv');
	
	jQuery("#confirmCommentPopupMail").css({
		'top' : '200px', 
		'display' : 'block',
		'width' : '450px',
		'height' : '150px'
	});
	
	window.scrollTo(0, 0);
	
	return false;
}

function showConfirmCommentPopupDownload(title, callback, params){
	
	toggleTransparentDiv('transparentDiv');
	
	jQuery("#confirmCommentPopupDownload").css({
		'top' : '200px', 
		'display' : 'block',
		'width' : '450px',
		'height' : '150px'
	});
	
	window.scrollTo(0, 0);
	
	return false;
}

