/**
 * Fichier de mise en place d'élément ergonomique pour l'interface 
 *
 * @copyright		Copyright 2005-2010, Eggboxstudio. (http://www.eggboxstudio.com)
 * @link			http://www.eggboxstudio.com
 * @package			webroot
 * @subpackage		webroot.js
 * @controller		exemple
 * @version			1.0
 */



// -----------------------------------------------------------------------------
//				VERIFICATION ES FORMULAIRES
// -----------------------------------------------------------------------------
/**
 *
 */
function checkRequired(element)
{
	var value		= $(element).val();
	var required	= $(element).attr('required');
	if(value == '' && required) {
		$(element).addClass('missing');
		return false;
	} else {
		$(element).removeClass('missing');
		return true;
	}
}

/**
 *
 */
function checkAllRequired(parent)
{
	var tousPresent = true;
	$(parent).find('[required=true]').each(function(){
		var element = $ (this). get (0);
		var result = checkRequired(element);
		if (!result ) {
			tousPresent = false;
		}
	});
	return tousPresent;
}

/**
 *
 */
function pulseMissing(parent)
{
	$(parent).find('[required=true]').each(function(){
		var element = $ (this). get (0);
		if (!checkRequired(element)) {
			var nom_tab_parent = $(this).parents('tabcontent').attr('id');
			$(this).effect("pulsate", { times:2 }, 500);
			$("#"+nom_tab_parent.substr(4,nom_tab_parent.length)).stop();
			$("#"+nom_tab_parent.substr(4,nom_tab_parent.length)).effect("pulsate", { times:2 }, 500);
		}

	});
}

/**
 *
 */
function initFieldsRequired(parent)
{
	checkAllRequired(parent);

	$(parent).find('input:text, textarea, select').live('change',function(){
		checkRequired($ (this). get (0));
		return false;
	});
}
/**
 *
 */
function initDatePicker(){
	//$( ".datepicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
}
/**
 *
 */
function initInputs(parent)
{
	//initGetterSetter(parent);
	initFieldsRequired(parent);
	initDatePicker();
}

// -----------------------------------------------------------------------------
//				TOGGLER
// -----------------------------------------------------------------------------
/**
 *
 */
function toggleTabs()
{
	$('.toggler').live('click',function(){
		var id = $(this).attr('id');
		var tab = id.split('_')[1];
		var old_id = $(this).parent().parent().find('.selected').attr('id');
		if(old_id != '')
		{
			var old_tab = old_id.split('_')[1];
			// on masque l'onglet ouvert
			$(this).parent().parent().find('.selected').removeClass('selected');
			$('#tab_'+old_tab).removeClass('selected');
			//$('#tab_'+old_tab).hide();
		}
		// on ouvre le nouvel onglet
		$(this).addClass('selected');
		$('#tab_'+tab).addClass('selected');
		//$('#tab_'+tab).show();
		return false;
	});
}
/**
 *
 */
function egbxPrint() {
    if (document.all) {
        if (navigator.appVersion.indexOf("5.0") == -1) {
            var OLECMDID_PRINT = 6;
            var OLECMDEXECOPT_DONTPROMPTUSER = 2;
            var OLECMDEXECOPT_PROMPTUSER = 1;
            var WebBrowser = "<OBJECT ID=\"WebBrowser1\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>";
            document.body.insertAdjacentHTML("beforeEnd", WebBrowser);
            WebBrowser1.ExecWB(6, 2);
            WebBrowser1.outerHTML = "";
        } else {
            self.print();
        }
    } else {
        self.print();
    }
}
/**
 *
 */


// -----------------------------------------------------------------------------
//									FONCTIONS POUR LES TOOLTIPS
// -----------------------------------------------------------------------------

/**
 * 
 */
function displayTooltip(value)
{
	if(document.getElementById('tooltip')){
		//
	}
	else{
		$('body').prepend('<div id="tooltip"><div id="tooltipcontent"></div></div>');
	}
	$('#tooltip #tooltipcontent').html(value);
	$(document).mousemove(function(e){
		var _helpX = e.pageX + 20;
		var _helpY = e.pageY + 20;
		$('#tooltip').css({'left' : _helpX,'top' : _helpY});
	});
}

/**
 * 
 */
function hideTooltip()
{
	//$('#tooltip #tooltipcontent').html('');
	$('#tooltip').remove();
}

/**
 *
 */
function initToolTip(parent)
{
	$(parent).find('[help]').die('mouseover mouseleave click').unbind('mouseover mouseleave click');
	
	$(parent).find('[help]').live('mouseover mousemove',function(){
		var value = $(this).attr('help');
		if(value!='') {
			displayTooltip(value);
		} else {
			hideTooltip();
		}
	});

	$(parent).find('[tooltiper]').live('mouseover mousemove',function(){
			var value = $(this).find('.tooltip').html();
			if(value!='') {
				displayTooltip(value);
			} else {
				hideTooltip();
			}
	});

	$(parent).find('[help], [tooltiper]').live('mouseout mouseleave click',function(){
			hideTooltip();
		}
	);
}
// -----------------------------------------------------------------------------
//									DEPLACEMENT
// -----------------------------------------------------------------------------

$(document).ready(function(){
	$('a[href^=#]').live('click',function(){
		// la destination
		var target=$(this).attr('href');
		var targetName = target.substr(1,target.length-1);
		// déplacement
		var hauteur = $(target).position();
		$('#container').animate({scrollTop: hauteur.top}, 500, 'easeOutQuint');
		return false;
	});
});

/*
$(document).ready(function(){
	$('a[href^=#]').live('click',function(){
		// la destination
		var target=$(this).attr('href');
		var targetName = target.substr(1,target.length-1);
		// deplacement
		var hauteur = $(target).position();
		$('body').animate({scrollTop: hauteur.top}, 500, 'easeOutQuint');
		return false;
	});
});
*/

// -----------------------------------------------------------------------------
//									FONCTIONS D'INIT DE L'UI
// -----------------------------------------------------------------------------

/**
 * Initialise les UI de bases pour les éléments basiques (Input, tabulations etc)
 */
function initUi(parent)
{
	initToolTip(parent);
	initInputs(parent);
	
	$(parent).find('a.colorBox').colorbox();
}
initUi('body');

