$(document).ready(function() {
	
	$('.NavigationBtnActive').hover(function() {
		$('.NavigationBtnOn', this).show();
	}, function() {
		$('.NavigationBtnOn', this).hide();
	});
		
	/* Stuff */
	jQueryUI();
	jFancy();
		
	InitializeCufon();
});


function isDefined(variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function jQueryUI() {
	
	$('form input[type=text], form input[type=password], form textarea').focus(function() { $('#'+$(this).attr('id')+"_Err").slideUp('fast'); });	
	
	$(".uiButton").button().mouseout(function() { $(this).removeClass('ui-state-focus'); });	
	
	$("button.qteButton").hover(function() { var src = str_replace('_off','_on', $('img',this).attr('src')); $('img',this).attr('src',src); }, function() { var src = str_replace('_on','_off', $('img',this).attr('src')); $('img',this).attr('src',src); });	
	
	$(".RadioSet").buttonset();
	
	$('.tooltip, .tooltip-s, .tooltip-n, .tooltip-w, .tooltip-e, .tooltip-ne, .tooltip-nw, .tooltip-se, .tooltip-sw').mouseover(function() { $(this).css('cursor', 'help'); });
	
	$('.tooltip').tipsy({title: 'alt', gravity: 's'});
	$('.tooltip-s').tipsy({title: 'alt', gravity: 's'});
	$('.tooltip-n').tipsy({title: 'alt', gravity: 'n'});
	$('.tooltip-w').tipsy({title: 'alt', gravity: 'w'});
	$('.tooltip-e').tipsy({title: 'alt', gravity: 'e'});
	
	$('.tooltip-ne').tipsy({title: 'alt', gravity: 'ne'});
	$('.tooltip-nw').tipsy({title: 'alt', gravity: 'nw'});
	
	$('.tooltip-se').tipsy({title: 'alt', gravity: 'se'});
	$('.tooltip-sw').tipsy({title: 'alt', gravity: 'sw'});
	
	
	$.datepicker.setDefaults($.datepicker.regional['fr']);
	$.datepicker.setDefaults({showWeek: true, dateFormat: 'dd/mm/yy', constrainInput: true}); 

		
	$('form.jqTransform').jqTransform();
	
	
}

function jFancy() {
	$('a.fancy').fancybox({ title: $('img',this).attr('alt') ,titlePosition : 'inside', 'zoomOpacity'	: true,	'zoomSpeedIn'	: 500, 'zoomSpeedOut'	: 500 , centerOnScroll : true});
	
	$('a.zoomable').each(function() {
		$(this).prepend('<div class="fancyMagnifier"></div>');
	});
	$('a.zoomable').hover(function() {
		$('.fancyMagnifier', this).show();
	}, function() {
		$('.fancyMagnifier', this).hide();
	});
}

/* SESSIONIZE */
function Sessionize(SessionVar, SessionVal, SessionArray, callBack) {
	var dataString = "FormAction=Sessionize&SessionVar="+SessionVar+"&SessionVal="+SessionVal+"&SessionArray="+SessionArray;		
		
	// Execution du formulaire
	$.ajax({
		type: "POST",
		url: "./includes.php",
		data: dataString,
		dataType : 'html',
		cache: false,
		async: true,
		success: function(data) { if ($.isFunction(callBack)) { callBack(); } else { eval(data); } return(false); },
		error: function() { Boxy.alert('Une erreur est survenue. Veuillez réessayer à nouveau.<br>Si le problème persiste veuillez contacter l\'administrateur du système.', null, {title: 'Information'}); }
	});
	
	return false;
}

function UnSessionize(SessionVar, SessionArray, callBack) {
	var dataString = "FormAction=UnSessionize&SessionVar="+SessionVar+"&SessionArray="+SessionArray;		
		
	// Execution du formulaire
	$.ajax({
		type: "POST",
		url: "./includes.php",
		data: dataString,
		dataType : 'html',
		cache: false,
		async: true,
		success: function(data) { if ($.isFunction(callBack)) { callBack(); } else { eval(data); } return(false); },
		error: function() { Boxy.alert('Une erreur est survenue. Veuillez réessayer à nouveau.<br>Si le problème persiste veuillez contacter l\'administrateur du système.', null, {title: 'Information'}); }
	});
	
	return false;
}

/* CUFON */
function InitializeCufon()
{		
	if ((Cufon != "undefined") && (true)) {

		Cufon.set('forceHitArea',true);
				
		Cufon.replace($('.BigTitreBold, .VeryBigTitreBold'), { fontFamily: 'GothamNarrow-Black' });
		Cufon.replace($('.BigTitre, .VeryBigTitre'), { fontFamily: 'GothamNarrow-Medium' });
		
		Cufon.replace($('.BoxTop'), { fontFamily: 'GothamNarrow-Medium' });					
		
	}
}


function getUrlVars()
{
    var vars = [], hash;
    
    //var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    
	var QString = $.address.queryString();
	var hashes = QString.split('&');
	
 
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
 
    return vars;
}

function trim (str, charlist) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: mdsjack (http://www.mdsjack.bo.it)
    // +   improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: DxGx
    // +   improved by: Steven Levithan (http://blog.stevenlevithan.com)
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // *     example 1: trim('    Kevin van Zonneveld    ');
    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: trim('Hello World', 'Hdle');
    // *     returns 2: 'o Wor'
    // *     example 3: trim(16, 1);
    // *     returns 3: 6
    var whitespace, l = 0,
        i = 0;
    str += '';

    if (!charlist) {
        // default list
        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
    } else {
        // preg_quote custom list
        charlist += '';
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
    }

    l = str.length;
    for (i = 0; i < l; i++) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(i);
            break;
        }
    }

    l = str.length;
    for (i = l - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(0, i + 1);
            break;
        }
    }

    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}


function str_replace (search, replace, subject, count) {
   
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}
