/**
 * IE8 CORRECTION
 */
if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function(obj, start) {
		for (var i = (start || 0), j = this.length; i < j; i++) {
			if (this[i] === obj) { return i; }
		}
		return -1;
	}
}

(function($j){

/**
 * CONFIRM
 */
$j.fn.confirm = function () {
	this.click(function(){
		if (!window.confirm($j(this).attr('title'))) {
			return false;
		}
	});
};

/**
 * DELETE DEFAULT VALUE ON FOCUS
 */
jQuery.fn.deleteDefaultValueOnFocus = function () {
	
	this.each(function(index){
					   
		var inputField 		= jQuery(this);		
		var defaultValue 	= inputField.val();
	
		inputField.focus(function(){
			var myInput = jQuery(this);
			if (myInput.val() == defaultValue) {
				myInput.val('');
			}
		});
		
		inputField.blur(function(){
			var myInput = jQuery(this);
			if (myInput.val() == '') {
				myInput.val(defaultValue);
			}
		});		
	});	
};

/**
 * SIMPLE ANTI SPAM : INPUT formMode true/false
 */

$j.fn.simpleAntiSpam = function (options) {
	var settings = {
		formName: ''
	};
	
	if (options) $j.extend(settings, options);
	
	this.filter('input').focus(function(){
		$j('input[name=' + settings.formName + 'Mode]').val('true');
	});
	
	return this;
};

/**
 * DPE Diagramme de déperdition d'énergie
 */

$j.fn.dpe = function (options) {
	var settings = {
		imagePath: 			'/images/fr/dpe/',
		imageName: 			'dpe_$.png',
		imageWidth: 		270,
		imageHeight: 		270,
		imageMinimumSize: 	180,
		spanTextSize: 		18,
		spanColor: 			'#fff',
		spanFirstTop: 		45,
		spanLastTop: 		187,
		spanLeft: 			228
	};
	
	if (options) $j.extend(settings, options);
	
	this.each(function(){
		var dpeGraph = $j(this);
		var dpeValue = parseInt(dpeGraph.html());
		
		if (!isNaN(dpeValue)) {
			dpeGraph.html('');
			
			var dpeLetter;
			var dpeSpanTop;
			var spanStepHeight = (settings.spanLastTop - settings.spanFirstTop) / 5;
			switch (true) {
				case (dpeValue <= 50):
					dpeLetter = 'a';
					dpeSpanTop = settings.spanFirstTop;
					break;
				case (51 <= dpeValue && dpeValue <= 90):
					dpeLetter = 'b';
					dpeSpanTop = settings.spanFirstTop + (1 * spanStepHeight);
					break;
				case (91 <= dpeValue && dpeValue <= 150):
					dpeLetter = 'c';
					dpeSpanTop = settings.spanFirstTop + (2 * spanStepHeight);
					break;
				case (151 <= dpeValue && dpeValue <= 230):
					dpeLetter = 'd';
					dpeSpanTop = settings.spanFirstTop + (3 * spanStepHeight);
					break;
				case (231 <= dpeValue && dpeValue <= 330):
					dpeLetter = 'e';
					dpeSpanTop = settings.spanFirstTop + (4 * spanStepHeight);
					break;
				case (331 <= dpeValue && dpeValue <= 450):
					dpeLetter = 'f';
					dpeSpanTop = settings.spanFirstTop + (5 * spanStepHeight);
					break;
				case (dpeValue >= 451):
					dpeLetter = 'g';
					dpeSpanTop = settings.spanFirstTop + (6 * spanStepHeight);
					break;
			}
			
			var imageURL 	= settings.imagePath + settings.imageName.replace('$', dpeLetter);
			var imageWidth 	= Math.round(dpeGraph.width() ? dpeGraph.width() : dpeGraph.width(settings.imageMinimumSize).width());
			var imageHeight = imageWidth;
			
			var spanFontSize 	= Math.round((settings.spanTextSize * imageHeight) / settings.imageHeight);
			var spanTop 		= Math.round((dpeSpanTop * imageHeight) / settings.imageHeight);
			var spanLeft 		= Math.round((settings.spanLeft * imageWidth) / settings.imageWidth);
			
			dpeGraph
				.css('position', 'relative')
				.append('<img src="' + imageURL + '" alt="' + dpeValue + '" title="' + dpeValue + '" width="' + imageWidth + '" height="' + imageHeight + '" />')
				.append('<span>' + dpeValue + '</span>')
				.find('span')
				.css('font-family', 'Arial, sans-serif')
				.css('font-size', spanFontSize)
				.css('color', settings.spanColor)
				.css('position', 'absolute')
				.css('top', spanTop)
				.css('left', spanLeft);
		}
		else {
			dpeGraph.html(dpeValue);
		}
	});
	
	return this;
};

/**
* CREATE A ROLL OVER ON IMAGES
*/
$j.fn.rollOver = function (options) {
	var settings = {
		suffixe: '_over'
	};
	
	if(options) $j.extend(settings, options);
	
	var images = this.filter('img');
	
	images.each(function(index){
	   var image = $j(this);
	   var fileName 					= image.attr('src');
	   var fileNameWithoutExtension 	= fileName.substring(0, fileName.lastIndexOf('.'));
	   var fileExtension 				= fileName.substring(fileName.lastIndexOf('.'), fileName.length);
	   
	   var imgSrc 						= fileName;
	   var imgSrcOver 					= fileNameWithoutExtension + settings.suffixe + fileExtension;
	   
	   image.mouseover(function(){
			$j(this).attr('src', imgSrcOver);
	   });
	   image.mouseout(function(){
			$j(this).attr('src', imgSrc);
	   });
	});
	
	return this;
};

/**
 * TRACE
 */
$j.trace = function(message){
	if (window.console) {
		console.log(message);
	}
	else {
		alert(message);
	}
};

/**
 * GET URL PARAMS
 */
$j.getURLParams = function () {
	var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	
    for(var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
	
    return vars;
};

})(jQuery);

