/**
 * neodys.common: Neodys unclassified functions
 *
 * Functions:
 *            neodys.cookies.checkEnabled
 *            neodys.cookies.defined .......... Check cookie existence
 *            neodys.cookies.getHash .......... Get cookies in an object with elements cookieName:cookieValue
 *            neodys.cookies.getValue ......... Get cookie.value
 **/

// Check libraries availability
var neodys;  

// COOKIES
if (!neodys || !neodys.cookies) 
    throw new Error("neodys/cookies.js has not been loaded"); 
// basicTools
if (!neodys || !neodys.basicTools) 
    throw new Error("neodys/basicTools.js has not been loaded"); 



// This function is similar to SectionAdmin#riskListManagerOrderBy => TODO: Remove the duplicate code
function publicRiskListOrderBy(field) {
    // OUTLINE
    // 0.- Defaults
    // 1.- Set ordering direction
    // 2.- Set cookie: field:direction
    // 3.- Reload

    if (checkCookiesEnabled()) { 


	// 0.- Defaults
	var direction;
	switch(field) { // Default direction
	case 'ps_max':
	    direction = 'descending';
	    break;
	case 'ts_max':
	    direction = 'descending';
	    break;
	case 'designation':
	    direction = 'descending';
	    break;
	default:
	    direction = 'ascending';
	}

	// 1.- Set ordering direction
	if (neodys.cookies.defined('PublicRiskListOrderBy')) {
	    var old_field, old_direction;
	    
	    // Get cookie value
	    var cookie_values = neodys.cookies.getValue('PublicRiskListOrderBy').split(':');
	    old_field = cookie_values[0];
	    old_direction = cookie_values[1];

	    // Toggle direction
	    if (old_field == field) {
		switch (old_direction) {
		case 'ascending':
		    direction = 'descending';
		    break;
		case 'descending':
		    direction = 'ascending';
		    break;
		}
	    }
	} 

	// 2.- Set cookie: field:direction
	// alert('Setting cookie ' + field + ':' + direction); // debug
	/*
	var today = new Date();
	var expire = new Date();
	expire.setTime(today.getTime() + 3600*1000 * 24 * 365);  // Last for 1 year
	document.cookie = 
	    "PublicRiskListOrderBy=" + 
	    field + ":" + direction
	    " ;expires="+expire.toGMTString();
	*/
	document.cookie = 
	    "PublicRiskListOrderBy=" + 
	    field + ":" + direction +
	    ";max-age=" + (60*60*24*365); // Last for 1 year

	// 3.- Reload
	location.reload(true);


    } else { //Warning: Cookies disabled!!!
	var message = "Sorry, couldn't set the field to sort the risk list. " +
	    "It seems that your browser is not accepting cookies ...";
	alert(message);
    }
}
