/* Define two custom functions (asc and desc) for date sorting */
$(document).ready(function() {
	jQuery.fn.dataTableExt.oSort['date-case-asc']  = function(x,y) {
		var dateFormat = $.datepicker._defaults.dateFormat;
		if (x == null || y ==null)
			return 0;
		var dateX = null;
		var dateY = null;
		try {
			dateX = $.datepicker.parseDate(dateFormat,x);
		} catch (e) {
			return -1;
		}
		try {
			dateY = $.datepicker.parseDate(dateFormat,y);
		} catch (e) {
			return 1;
		}
		return ((dateX.getTime() < dateY.getTime()) ?  -1 : ((dateX.getTime() > dateY.getTime()) ? 1 : 0));
	};
	
	jQuery.fn.dataTableExt.oSort['date-case-desc'] = function(x,y) {
		var dateFormat = $.datepicker._defaults.dateFormat;		
		if (x == null || y ==null)
			return 0;
		var dateX = null;
		var dateY = null;
		try {
			dateX = $.datepicker.parseDate(dateFormat,x);
		} catch (e) {
			return 1;
		}
		try {
			dateY = $.datepicker.parseDate(dateFormat,y);
		} catch (e) {
			return -1;
		}
		return ((dateX.getTime() < dateY.getTime()) ?  1 : ((dateX.getTime() > dateY.getTime()) ? -1 : 0));
	};	

	// sort for french full datetime format "dd/mm/YYY hh:ii:ss"
        jQuery.fn.dataTableExt.oSort['dateTime-case-asc'] = function(a, b) {
                if (trim(a) != '') {
           				var aWithoutHTML = a.replace(/\n/g," ").replace(/&nbsp;/g,"").replace(/<.*?>/g,"");
                        var frDatea = trim(aWithoutHTML).split(' ');
                        var frTimea = frDatea[1].split(':');
                        var frDatea2 = frDatea[0].split('/');
                        var x = (frDatea2[2] + frDatea2[1] + frDatea2[0] + frTimea[0] + frTimea[1] + frTimea[2]) * 1;
                        } else {
                        var x = 10000000000000; // = l'an 1000 ...
                        }
                if (trim(b) != '') {
		                var bWithoutHTML = b.replace(/\n/g," ").replace(/&nbsp;/g,"").replace(/<.*?>/g,"");
                        var frDateb = trim(bWithoutHTML).split(' ');
                        var frTimeb = frDateb[1].split(':');
                        frDateb = frDateb[0].split('/');
                        var y = (frDateb[2] + frDateb[1] + frDateb[0] + frTimeb[0] + frTimeb[1] + frTimeb[2]) * 1;                      
                } else {
                        var y = 10000000000000;                 
                }
                var z = ((x < y) ? -1 : ((x > y) ? 1 : 0));
                return z;
        };

        jQuery.fn.dataTableExt.oSort['dateTime-case-desc'] = function(a, b) {
    // rsort for french full datetime format "dd/mm/YYY hh:ii:ss"
                if (trim(a) != '') {
           				var aWithoutHTML = a.replace(/\n/g," ").replace(/&nbsp;/g,"").replace(/<.*?>/g,"");
                        var frDatea = trim(aWithoutHTML).split(' ');
                        var frTimea = frDatea[1].split(':');
                        var frDatea2 = frDatea[0].split('/');
                        var x = (frDatea2[2] + frDatea2[1] + frDatea2[0] + frTimea[0] + frTimea[1] + frTimea[2]) * 1;                     
                } else {
                        var x = 10000000000000;                 
                }
                if (trim(b) != '') {
		                var bWithoutHTML = b.replace(/\n/g," ").replace(/&nbsp;/g,"").replace(/<.*?>/g,"");
                        var frDateb = trim(bWithoutHTML).split(' ');
                        var frTimeb = frDateb[1].split(':');
                        frDateb = frDateb[0].split('/');
                        var y = (frDateb[2] + frDateb[1] + frDateb[0] + frTimeb[0] + frTimeb[1] + frTimeb[2]) * 1;                            
                } else {
                        var y = 10000000000000;                 
                }                         
                var z = ((x < y) ? 1 : ((x > y) ? -1 : 0));                     
                return z;
        }; 
});
/* Trim String var */
function trim(str) 
{
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}
/* Formating function for row details */
function fnFormatDetails ( nTr, label )
{
	var iIndex = oTable.fnGetPosition( nTr );
	var aData = oTable.fnSettings().aoData[iIndex]._aData;
	
	var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
	sOut += '<tr><td valign=top>'+label+'</td><td valign=top>'+aData[4]+'</td></tr>';
	sOut += '</table>';
	
	return sOut;
}
function buildFundsheetUri() {
	var initialLoc = document.location.href;
	var channelId = "";
	var programId = "";
	var pageTypeId = "";
	var contentId = "";	
	//Recuperation des parametres necessaires pour le breadcrumb
	if (initialLoc.indexOf("channelId=") > 0) {
		var channelIdIndex = initialLoc.indexOf("&", initialLoc.indexOf("channelId=")+1);
		if (channelIdIndex == -1) {
			channelIdIndex = initialLoc.length;
		}
		channelId=initialLoc.substring(initialLoc.indexOf("channelId=") + 10, channelIdIndex);
	}
	if (initialLoc.indexOf("programId=") > 0) {
		var programIdIndex = initialLoc.indexOf("&", initialLoc.indexOf("programId=")+1);
		if (programIdIndex == -1) {
			programIdIndex = initialLoc.length;
		}
		programId=initialLoc.substring(initialLoc.indexOf("programId=") + 10, programIdIndex);
	}
	if (initialLoc.indexOf("pageTypeId=") > 0) {
		var pageTypeIdIndex = initialLoc.indexOf("&", initialLoc.indexOf("pageTypeId=")+1);
		if (pageTypeIdIndex == -1) {
			pageTypeIdIndex = initialLoc.length;
		}
		pageTypeId=initialLoc.substring(initialLoc.indexOf("pageTypeId=") + 11, pageTypeIdIndex);
	}
	if (initialLoc.indexOf("contentId=") > 0) {
		var contentIdIndex = initialLoc.indexOf("&", initialLoc.indexOf("contentId=")+1);
		if (contentIdIndex == -1) {
			contentIdIndex = initialLoc.length;
		}
		contentId=initialLoc.substring(initialLoc.indexOf("contentId=") + 10, contentIdIndex);
	}	
	var loc= initialLoc.substring(0,initialLoc.indexOf("?")) 
		+ "?contentType=COMPARTMENT&contentId="+contentId;
	if (channelId != null && channelId != "") {
		var loc = loc + "&channelId=" + channelId;
	}
	if (programId != null && programId != "") {
		var loc = loc + "&programId=" + programId;
	}
	if (pageTypeId != null && pageTypeId != "") {
		var loc = loc + "&pageTypeId=" + pageTypeId;
	}
	var currency = $('#selectCurrency').val();
	var fundshareId = null;
	if (currency != null && currency != "") {
		var loc = loc + "&currency=" + currency;
		fundshareId = $('#selectCurrency :selected').attr("id");
		if (fundshareId != null && fundshareId != "") {
			var loc = loc + "&fundIdSel=" + fundshareId;
		} else {
			fundshareId = $('#selectFundshare').val();
			if (fundshareId != null && fundshareId != "") {
				var loc = loc + "&fundIdSel=" + fundshareId;
			}				
		}
	} else {
		fundshareId = $('#selectFundshare').val();
		if (fundshareId != null && fundshareId != "") {
			var loc = loc + "&fundIdSel=" + fundshareId;
		}
	}
	var selVal = $('#selVal').val();
	if (selVal != null && selVal != "") {
		var loc = loc + "&selVal=" + selVal;
	}
	var selectTab = $('#globaltabs').tabs('option', 'selected');
	if (selectTab != null && selectTab != "") {
		var loc = loc + "&subTabSelect=" + selectTab;
	}
	return loc;		
}
