// ArtPrint Web Application
// ========================
//
// [ Feedback evaluation JavaScript ]
// Script per gestione/controllo delle valutazioni feedback
//
// Versione: 1.00 [11.11.2009]
// Autore: Diego Vicentini
// Copyright: ©2007-2009 ArtPrint s.a.s.

var lastClickedCriteriaId;
var lastUnsetCriteriaId;
var setCriteriaIds = new Array();

String.prototype.trim = function () {
    return this.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function dispatchHighlighting(element, criteria_group, criteria_id, state) {

	if (state == 'over') {
		if (isCriteriaSet(criteria_id) == false) {
			highlighting(element, criteria_group, criteria_id, 'on');
		}
	}
	else if (state == 'out') {
		if (!isCriteriaSet(criteria_id)) {
			highlighting(element, criteria_group, criteria_id, 'off');
		} 
	}
	else if (state == 'down') {
		if (lastUnsetCriteriaId == criteria_id) {
			highlighting(element, criteria_group, criteria_id, 'on');
		}
		if (isCriteriaSet(criteria_id) == true) {
			highlighting(element, criteria_group, criteria_id, 'off');
		}
	}	
	else if (state == 'up') {
		if (isCriteriaSet(criteria_id) == false && lastUnsetCriteriaId != criteria_id) {
			highlighting(element, criteria_group, criteria_id, 'on');
		} 
	}
	else if(state == 'disable'){
		if (isCriteriaSet(criteria_id) == true){
			highlighting(element, criteria_group, criteria_id, 'disable');
		}else{
			highlighting(element, criteria_group, criteria_id, 'off');
		}		
	}
}

function highlighting(element, criteria_group, criteria_id, direction) {

	var groupContainer = document.getElementById(criteria_group);
	var criteriaGroupElements = groupContainer.getElementsByTagName("div");

	
	var evaluationElements = new Array();
	
	
	x=0;
	for (z=0; z<criteriaGroupElements.length; z++) {
		if (criteriaGroupElements[z].className.trim() == 'evaluation_link' 
		 || criteriaGroupElements[z].className.trim() == 'evaluation_link max_value'
		 || criteriaGroupElements[z].className.trim() == 'evaluation_link initialized'
		 || criteriaGroupElements[z].className.trim() == 'evaluation_link max_value initialized') {
			evaluationElements[x] = criteriaGroupElements[z];
			x++;	
		}
	}
	
	if (direction == 'on') {
		for (z=0; z<evaluationElements.length; z++) {
			// stelle - cambia colore in giallo
			var height = 30;
			var wight = 21;
			
			// stelle+ per i collegamenti devono essere spostate con una differente altezza e larghezza
			if (evaluationElements[z].className.indexOf('max_value') != -1) {
				height = 32;
				wight = 0;
			}
			
			if (element.id == evaluationElements[z].id) {
				evaluationElements[z].style.backgroundPosition = -1 * wight +"px " + -1 * height + "px";
				break;
			} 
			
			if (element.id != evaluationElements[z].id) {
				//evaluationElements[z].style.backgroundPosition = "0 -15px";
				evaluationElements[z].style.backgroundPosition = -1 * wight +"px " + -1 * height + "px";
			}
		}
	} else if (direction == 'off') {
			// ritorna alla stella bianca
			var height = 15;
			var wight = 21;	
				
			for (z=0; z<evaluationElements.length; z++) {
				// stelle+ per i collegamenti devono essere spostate con una differente altezza e larghezza
				if (evaluationElements[z].className.indexOf('max_value') != -1) {
					height = 16;
					wight = 0;
				}
				evaluationElements[z].style.backgroundPosition = -1 * wight +"px " + -1 * height + "px";
			}
	} else if (direction  == 'disable'){
			// mostra le stelle grigie
			var height = 0;
			var wight = 21;
			for (z=0; z<evaluationElements.length; z++) {
				// stelle+ per i collegamenti devono essere spostate con una differente altezza e larghezza
				if (evaluationElements[z].className.indexOf('max_value') != -1) {
					evaluationElements[z].style.backgroundPosition = "0 0";
				}else{
					evaluationElements[z].style.backgroundPosition = -1 * wight +"px " + -1 * height + "px";
				}
			}
	}
}

function setEvaluationValue(element, criteria_group, criteria_id, criteria_value) {	
	if (isCriteriaSet(criteria_id) == false) {
		lastUnsetCriteriaId = null;
		setCriteriaId(criteria_id);
		document.getElementsByName(criteria_id)[0].value = criteria_value;
	} else {
		unsetCriteriaId(criteria_id);
		lastUnsetCriteriaId = criteria_id;
		document.getElementsByName(criteria_id)[0].value = "";
	}	
}

function setNonEvaluationValue(element, criteria_group, criteria_id) {	
	if (isCriteriaSet(criteria_id) != -1) {
		lastUnsetCriteriaId = null;
		setCriteriaId(criteria_id);
		document.getElementsByName(criteria_id)[0].value = 0;
	} else {
		unsetCriteriaId(criteria_id);
		lastUnsetCriteriaId = criteria_id;
		document.getElementsByName(criteria_id)[0].value = "";
	}	
}

function setCriteriaId(criteria_id) {
	setCriteriaIds.push(criteria_id);
}

function unsetCriteriaId(criteria_id) {
	for(z=0; z<setCriteriaIds.length; z++) {
		if (criteria_id == setCriteriaIds[z]) {
			setCriteriaIds.splice(z,1);
		}
	}
}

function isCriteriaSet(criteria_id) {
	var retval = false;
	
	var element_name = "hidden_val_" + criteria_id;	
	var hidden_val = document.getElementById(element_name);	
	
	if (hidden_val.value) {
		retval = true;
	}
	return retval;
}

function showText(element) {
	var elementToShow = element.getElementsByTagName('span')[0];

		if (elementToShow) {
			elementToShow.style.display = "block";
		}
	/*
	// solo testo nella prima riga (mostra criterio 11)
	if (element.id.indexOf('11') != -1) {
		if (elementToShow) {
			elementToShow.style.display = "block";
		}
	}
	*/
}

var commentWindow;

function hideText(element) {
	var elementToShow = element.getElementsByTagName('span')[0];
	
	if (elementToShow) {
		elementToShow.style.display = "none";
	}
}

// verifica la completezza dei dati inseriti
var error_text;

function checkEvaluationValues() {
	var evaluationValues = document.evaluationform.getElementsByTagName("input");
	var valuesAreComplete = true;
	
	for(z=0; z<evaluationValues.length; z++) {
		if(evaluationValues[z].className.indexOf('evaluation_hidden_value') != -1 &&
		   evaluationValues[z].value == '') {
		   error_text = error_text_2;
		   valuesAreComplete = false;
		}
	}
	return valuesAreComplete;
}

function checkRecommendationValues() {
	var recommendationValues = document.evaluationform.getElementsByTagName("input");
	var valuesAreComplete = false;
	
	for(z=0; z<recommendationValues.length; z++) {
		if(recommendationValues[z].className.indexOf('evaluation_recommendation_value') != -1 &&
		   recommendationValues[z].checked) {
		   valuesAreComplete = true;
		   break;
		} else {
			error_text = error_text_3;
		}
	}
	
	if (!valuesAreComplete) {
		document.getElementById('evaluation_recommendation').style.display = "block";
		document.getElementById('messageLayerOrdernumberContainer').style.display = "none";
		document.getElementById('MessageLayerText').style.fontWeight = "bold";
	}
	
	return valuesAreComplete;
}

// visualizza finestra tooltips
function showTooltip() {
	var tooltip = document.getElementById('tooltip_div');
	
	tooltip.style.display = "block";
}

// nasconde finestra tooltips
function hideTooltip() {
	var tooltip = document.getElementById('tooltip_div');
	
	tooltip.style.display = "none";
}
