//Constants
var SPECIALTE_AUTRE_VAL = "16";
//Initialize
$(init);
function init()
{
	var test = callAjax('common/test_reminder.php');
	if(test=="true")
	{
		var html = callAjax('common/reminder.php');
		confirmDialog=$(html).dialog({modal:true,resizable: false,title:false,close: function(event, ui) {confirmDialog.dialog("destroy"); $('#div_confirm').remove();}});
	}
	//Menu actions
	$('div.menuItem').mouseover
	(
		function() 
		{
			$(".submenu").css({"display":"none"});
			$(".menuItem").find("span.mg").css({"visibility":"hidden"});
			$(".menuItem").find("a.parent").removeClass('hover');
		}
	);
	$('div.parent').mouseover
	(
		function() 
		{
			var id = $(this).attr('id').replace('menu','');
			$(this).find("span.mg").css({"visibility":"visible"});
			$(this).find("a.parent").addClass('hover');
			$("#submenu"+id).css({"display":"inline"});
		}
	);
	$('div.parent').mouseout
	(
		function() 
		{
			$(this).find("span.mg").css({"visibility":"hidden"});
			$(this).find("a.parent").removeClass('hover');
		}
	);
	$('div.submenu').each
	(
		function() 
		{
			var id = $(this).attr('id').replace('submenu','');
			var p = $("#menu"+id);
			var position = p.position();
			var parentLeft = position.left - 51;
			$(this).css({'margin-left':parentLeft+'px'});
		}
	);
	$('div.submenu').mouseover
	(
		function() 
		{
			var id = $(this).attr('id').replace('submenu','');
			$("#menu"+id).find("span.mg").css({"visibility":"visible"});
			$("#menu"+id+" a").addClass('hover');
		}
	);
	$('div#logo').mouseover
	(
		function() 
		{
			$('div.menuItem').find("span.mg").css({"visibility":"hidden"});
			$('div.menuItem').find("a.parent").removeClass('hover');
			$(".submenu").css({"display":"none"});
		}
	);
	$('div#content').mouseover
	(
		function() 
		{
			$('div.menuItem').find("span.mg").css({"visibility":"hidden"});
			$('div.menuItem').find("a.parent").removeClass('hover');
			$(".submenu").css({"display":"none"});
		}
	);
	//Clear error visual onchange
	$('.clearError').keydown
	(
	 	function()
		{
			$(this).removeClass('inputError');
			$(this).addClass('noError');
		}
	 );
	//Attach validations to form submits
	$('a.submitR').click
	(
	 	function()
		{
			validateLogin();
		}
	 );
	$('#form_login input.clearError').bind('keypress', 
		function(e)
		{
			if(e.keyCode==13)
			{
				validateLogin();
			}
		}
	);
	$('a.submit_service').click
	(
	 	function()
		{
			validateService();
		}
	 );
	$('a.calculate').click
	(
	 	function()
		{
			validateOutil();
		}
	 );
	$('a.submit_eval').click
	(
	 	function()
		{
			validateEval();
		}
	 );
	$('a.clear_eval').click
	(
	 	function()
		{
			$('#input_age').val('');
			$('#input_crea').val('');
			$('#input_poids').val('');
			$('#input_taille').val('');
			$('.groupSexe').attr('checked', false);
			$('.groupOrig').attr('checked', false);
			$('.groupCrea').attr('checked', false);
			$('.evalResults').css({'display':'none'});
		}
	 );
	$('a.submit_inscription').click
	(
	 	function()
		{
			validateInscription();
		}
	 );
	$('a.submit_mdpperdu').click
	(
	 	function()
		{
			validateMdpperdu();
		}
	 );
	$('a.submit_mdpperdu_conf').click
	(
	 	function()
		{
			validateMdpperduConf();
		}
	 );
	$('a.submit_moncompte').click
	(
	 	function()
		{
			validateMoncompte();
		}
	 );
	 //Set cookie for next step
	 $('a.btBouNext').click
	 (
	  	function()
		{
			var step = $(this).attr("href").replace("boutique-etape","").replace(".php","").replace("produits","");
			callAjax('common/setStep.php?step='+step);
		}
	  );
	$('a.submitInvoice').click
	(
	 	function(e)
		{
			e.preventDefault();
			validateInvoice($(this).attr("href"));	
		}
	 );
	//Show/Hide long/short text on home page
	$('.toggleHome').click
	(
	 	function()
		{
			if($('div#homeShort').css("display")=="block")
				$(this).text(lgFermer);
			else
				$(this).text(lgLireLaSuite);
			$('div#homeShort').slideToggle('slow');	
			$('div#homeLong').slideToggle('slow');	
		}
	 );
	//Search
	setupDCI();
	setupSheetLinks();
	 populateMenu();
	 //Logout
	 $('a.logout').click
	 (
	  	function()
		{
	  		callAjax('common/logout.php');
		}
	  );
	 //Inscription
	 $('#select_specialite').change
	 (
	  	function()
		{
			if($(this).val()==SPECIALTE_AUTRE_VAL)
				$('#input_autre').css({'display':'block'});
			else
			{
				$('#input_autre').css({'display':'none'});
				$('#input_autre').removeClass('inputError');
				$('#input_autre').addClass('noError');
				$('#input_autre').attr("value","");
			}
		}
	  );
	 //Set total for selected price
	 $('input.radioPrice').click
	 (
	  	function()
		{
			var id = $(this).attr("id").replace("radio_product","");
			$('#selTotal').text($('#radio_price'+id).attr("value"));
		}
	  );
	 //Add product to basket
	 $('a.addProduct').click
	 (
	  	function()
		{
			callAjax('common/addProduct.php?prod='+$("input[name='radio_product']:checked").val());	
		}
	  );
	 //Check promo code
	 $('a.checkPromo').click
	 (
	  	function()
		{
			var html = callAjax('common/checkPromo.php?code='+$('#input_promo').attr("value"));
			$('#resultPromo').html(html);
		}
	  );
	 //Clear cart & promo
	 $('a.btAnnulerBou').click
	 (
	  	function()
		{
			callAjax('common/clearCart.php');		
		}
	  );
	 //Payment buttons
	 $('a.okPaypal').click
	 (
	  	function()
		{
			$('#form_paypal').submit();	
		}
	  );
}
/*
var inFormOrLink;
$('a').live('click', function() { inFormOrLink = true; });
$('form').bind('submit', function() { inFormOrLink = true; });

$(window).bind("beforeunload", function() { 
    return inFormOrLink || callAjax("common/logout.php"); 
})
*/

//------------------------------------------------------------------------------------------------------
//Search functions
function setupDCI()
{
	$('#select_dci').change
	(
	 	function()
		{
			//var html = callAjax('common/getGPRDdl.php?id='+$(this).val());
			////$('#gpr').html(html);
			//var html = callAjax('common/getClassesDdl.php?id='+$(this).val());
			//$('#classes').html(html);
			updateResults(0);
		}
	 );
}
function updateResults(pg)
{
	var searchStr = "";
	if($('#select_gpr').val()!="0")	
		searchStr += "&gpr="+$('#select_gpr').val();
	if($('#select_class').val()!="0")	
		searchStr += "&class="+$('#select_class').val();
	if($('#select_dci').val()!="0")	
		searchStr += "&dci="+$('#select_dci').val();
	var html = callAjax('common/getSearchMedResults.php?pg_no='+pg+searchStr);
	$('#searchResults').html(html);
	setupSheetLinks();
}
function setupSheetLinks()
{
	$('td.link a').click
	(
	 	function(e)
		{
			e.preventDefault();
			$('#search_page').css({'display':'none'});
			$('#sheet_page').css({'display':'block'});
			var html = callAjax($(this).attr("href"));
			$('#sheet_page').html(html);
			$('a.back_search').click
			(
			 	function(e2)
				{
					e2.preventDefault();
					$('#search_page').css({'display':'block'});
					$('#sheet_page').css({'display':'none'});
					$('#sheet_page').html("");
				}
			 );
		}
	 );
}

//------------------------------------------------------------------------------------------------------
//Ajax call
function callAjax(url)
{
	return $.ajax
	(
		{
			url: url,
			async: false
		}
	).responseText;
}
//------------------------------------------------------------------------------------------------
//Forms validations
function validateOutil()
{
	var ok = true;
	ok = requiredCheckboxGroup('groupCrea',lgAllRequired,'error_outil');
	ok = ok & requiredTextField('input_outil_age',lgAllRequired,'error_outil',true);
	ok = ok & requiredTextField('input_outil_poids',lgAllRequired,'error_outil',true);
	if(ok) ok = validateTextField('input_outil_age',lgErrNumeric,'error_outil',true,"checkNumeric");
	if(ok) ok = validateTextField('input_outil_poids',lgErrNumeric,'error_outil',true,"checkNumeric");
	if(ok)
		calculateOutil();
}
function validateEval()
{
	var ok = true;
	ok = requiredTextField('input_age',lgRequired,'error_eval',true);
	ok = ok & requiredCheckboxGroup('groupSexe',lgRequired,'error_eval');
	ok = ok & requiredCheckboxGroup('groupOrig',lgRequired,'error_eval');
	ok = ok & requiredTextField('input_crea',lgRequired,'error_eval',true);
	ok = ok & requiredCheckboxGroup('groupCrea',lgRequired,'error_eval');
	if(ok) ok = validateTextField('input_age',lgErrNumeric,'error_eval',true,"checkNumeric");
	if(ok) ok = validateTextField('input_crea',lgErrNumeric,'error_eval',true,"checkNumeric");
	if(ok) ok = validateTextField('input_poids',lgErrNumeric,'error_eval',true,"checkNumeric");
	if(ok) ok = validateTextField('input_taille',lgErrNumeric,'error_eval',true,"checkNumeric");
	if(ok)
		$('#form_eval').submit();
}
function validateService()
{
	var ok = true;
	ok = requiredCheckboxGroup('groupThemes',lgRequiredThemes,'error_service');
	if(ok)
	{
		ok = requiredTextField('input_nom',lgRequired,'error_service',true);
		ok = ok & requiredTextField('input_service',lgRequired,'error_service',true);
		ok = ok & requiredTextField('input_adr',lgRequired,'error_service',true);
		ok = ok & requiredTextField('input_tel',lgRequired,'error_service',true);
		ok = ok & requiredTextField('input_fax',lgRequired,'error_service',true);
		ok = ok & requiredTextField('input_mail',lgRequired,'error_service',true);
	}
	if(ok)
		$('#form_service').submit();
}
function validateInscription()
{
	var ok = true;
	ok = requiredTextField('input_nom',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_prenom',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_institution',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_service',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_nomhospital',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_adresse',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_cp',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_ville',lgRequired,'error_inscription',true);
	/*ok = ok & requiredTextField('input_pays',lgRequired,'error_inscription',true);*/
	ok = ok & requiredTextField('input_email',lgRequired,'error_inscription',true);
	/*ok = ok & requiredTextField('input_telephone',lgRequired,'error_inscription',true);*/
	ok = ok & requiredTextField('input_motdepasse',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_confmdp',lgRequired,'error_inscription',true);
	if($('#input_autre').css('display')=="block")
		ok = ok & requiredTextField('input_autre',lgRequired,'error_inscription',true);
	ok = ok & requiredTextField('input_code',lgRequired,'error_inscription',true);
	if(ok)
	{
		if(validateTextField('input_cp',lgErrNumeric,'error_inscription',true,"checkNumeric"))
		{
			if(validateTextField('input_telephone',lgErrNumeric,'error_inscription',true,"checkNumeric"))
			{
				if(compareTextFields('input_motdepasse','input_confmdp',lgErrMdpConf,'error_inscription',true))
				{
					if(requiredCheckboxGroup('groupCertifie',lgErrCertifie,'error_inscription'))
					{
						if(checkMinTextFieldLength('input_motdepasse',lgErrMdpLength,'error_inscription',true,8))
							$('#form_inscription').submit();
					}
				}
			}
		}
	}
}
function validateMdpperduConf()
{
	var ok = true;
	ok = requiredTextField('input_motdepasse',lgRequired,'error_mdpperdu_conf',true);
	ok = ok & requiredTextField('input_confmdp',lgRequired,'error_mdpperdu_conf',true);
	if(ok)
	{
		if(compareTextFields('input_motdepasse','input_confmdp',lgErrMdpConf,'error_mdpperdu_conf',true))
		{
			if(checkMinTextFieldLength('input_motdepasse',lgErrMdpLength,'error_mdpperdu_conf',true,8))
				$('#form_mdpperdu_conf').submit();
		}
	}
}
function validateMdpperdu()
{
	var ok = true;
	ok = requiredTextField('input_email',lgRequired,'error_mdpperdu',true);
	if(ok)
		$('#form_mdpperdu').submit();
}
function validateLogin()
{
	var ok = true;
	ok = requiredTextField('input_user',lgAllRequired,'error_login',true);
	ok = ok & requiredTextField('input_pass',lgAllRequired,'error_login',true);
	if(ok)
		$('#form_login').submit();
}
function validateMoncompte()
{
	var ok = true;
	ok = requiredTextField('input_nom',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_prenom',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_institution',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_service',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_nomhospital',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_adresse',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_cp',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_ville',lgRequired,'error_moncompte',true);
	/*ok = ok & requiredTextField('input_pays',lgRequired,'error_moncompte',true);*/
	/*ok = ok & requiredTextField('input_telephone',lgRequired,'error_moncompte',true);*/
	ok = ok & requiredTextField('input_email',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_email2',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_oldmdp',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_motdepasse',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_confmdp',lgRequired,'error_moncompte',true);
	if($('#input_autre').css('display')=="block")
		ok = ok & requiredTextField('input_autre',lgRequired,'error_moncompte',true);
	ok = ok & requiredTextField('input_code',lgRequired,'error_moncompte',true);
	if(ok)
	{
		if(validateTextField('input_cp',lgErrNumeric,'error_moncompte',true,"checkNumeric"))
		{
							if(compareTextFields('input_email','input_email2',lgErrEmailConf,'error_moncompte',true))
				{
					if(compareTextFields('input_motdepasse','input_confmdp',lgErrMdpConf,'error_moncompte',true))
					{
						if(checkMinTextFieldLength('input_motdepasse',lgErrMdpLength,'error_moncompte',true,8))
							$('#form_moncompte').submit();
					}
				}
			
		}
	}
}
function validateInvoice(dest)
{
	var ok = true;
	ok = requiredTextField('input_nom',lgRequired,'error_invoice',true);
	ok = ok & requiredTextField('input_prenom',lgRequired,'error_invoice',true);
	ok = ok & requiredTextField('input_adresse',lgRequired,'error_invoice',true);
	ok = ok & requiredTextField('input_cp',lgRequired,'error_invoice',true);
	ok = ok & requiredTextField('input_ville',lgRequired,'error_invoice',true);
	ok = ok & requiredTextField('input_pays',lgRequired,'error_invoice',true);
	/*ok = ok & requiredTextField('input_telephone',lgRequired,'error_invoice',true);*/
	ok = ok & requiredTextField('input_email',lgRequired,'error_invoice',true);
	if(ok)
	{
		if(validateTextField('input_cp',lgErrNumeric,'error_invoice',true,"checkNumeric"))
		{
			
				$('#form_invoice').attr("action",dest);
				$('#form_invoice').submit();
			
		}
	}
}
//------------------------------------------------------------------------------------------------
//Calculations
function calculateOutil()
{
	$('div.error').css({'display':'none'});
}
//------------------------------------------------------------------------------------------------
//Validation common functions
function requiredTextField(idInput,errMsg,idErrDiv,visualAlert)
{
	var valInput = $('#'+idInput).attr('value');
	valInput = jQuery.trim(valInput);
	if(valInput=="")
	{
		if(idErrDiv!='')
		{
			$('#'+idErrDiv).css({'display':'block'});
			$('#'+idErrDiv).html(errMsg);
		}
		else
			alert(errMsg);
		if(visualAlert)
		{
			$('#'+idInput).addClass('inputError');
			$('#'+idInput).removeClass('noError');
		}
		return false;
	}
	return true;
}
function requiredCheckboxGroup(groupClass,errMsg,idErrDiv)
{
	ok = false;
	$('.'+groupClass).each
	(
	 	function()
		{
			if($(this).attr('checked'))
				ok=true;
		}
	 )
	if(!ok)
	{
		if(idErrDiv!='')
		{
			$('#'+idErrDiv).css({'display':'block'});
			$('#'+idErrDiv).html(errMsg);
		}
		else
			alert(errMsg);
		return false;
	}
	return true;
}
function validateTextField(idInput,errMsg,idErrDiv,visualAlert,checkFunction)
{
	var valInput = $('#'+idInput).attr('value');
	valInput = jQuery.trim(valInput);
	if(valInput!="")
	{
		checkValue = eval(checkFunction+"('"+idInput+"')");
		if(!checkValue)
		{
			if(idErrDiv!='')
			{
				$('#'+idErrDiv).css({'display':'block'});
				$('#'+idErrDiv).html(errMsg);
			}
			else
				alert(errMsg);
			if(visualAlert)
			{
				$('#'+idInput).addClass('inputError');
				$('#'+idInput).removeClass('noError');
			}
			return false;
		}
		else
			return true;
	}
	return true;
}		
function compareTextFields(idInput1,idInput2,errMsg,idErrDiv,visualAlert)
{
	var valInput1 = $('#'+idInput1).attr('value');
	valInput1 = jQuery.trim(valInput1);
	$('#'+idInput1).attr('value',jQuery.trim(valInput1));
	var valInput2 = $('#'+idInput2).attr('value');
	valInput2 = jQuery.trim(valInput2);
	$('#'+idInput2).attr('value',jQuery.trim(valInput2));
	if(valInput1!="" && valInput2!="" && valInput1!=valInput2)
	{
		if(idErrDiv!='')
		{
			$('#'+idErrDiv).css({'display':'block'});
			$('#'+idErrDiv).html(errMsg);
		}
		else
			alert(errMsg);
		if(visualAlert)
		{
			$('#'+idInput1).addClass('inputError');
			$('#'+idInput1).removeClass('noError');
			$('#'+idInput2).addClass('inputError');
			$('#'+idInput2).removeClass('noError');
		}
		return false;
	}
	return true;
}
function checkMinTextFieldLength(idInput,errMsg,idErrDiv,visualAlert,noChars)
{
	var valInput = $('#'+idInput).attr('value');
	$('#'+idInput).attr('value',jQuery.trim(valInput));
	valInput = jQuery.trim(valInput);
	if(valInput.length<noChars)
	{
		if(idErrDiv!='')
		{
			$('#'+idErrDiv).css({'display':'block'});
			$('#'+idErrDiv).html(errMsg);
		}
		else
			alert(errMsg);
		if(visualAlert)
		{
			$('#'+idInput).addClass('inputError');
			$('#'+idInput).removeClass('noError');
		}
		return false;
	}
	return true;
}
function checkNumeric(idInput)
{
	if(!$('#'+idInput).val().match('^(0|[0-9]*)$'))
		return false;
	return true;
}
//------------------------------------------------------------------------------------------------
//Search tree
function populateMenu()
{
	$('#tree').tree
	(
	    {
            data : 
            {
                type : 'json',
                async : true,
                opts : 
                {
                    method : "POST",
                    url : "common/searchTree.php"
                }
            },
            ui : 
            {
			    theme_name : 'abmenu',
			    dots:false,
			    animation : 400
			},
			callback :
            {
                onselect : function(NODE,TREE_OBJ)
				{
					if($(NODE).hasClass("leaf"))
					{
						var type = $(NODE).attr("rel");
						var id = $(NODE).attr("id").replace("dci_","");
						if(type=='dci')
						{
							$('#search_page').css({'display':'none'});
							$('#sheet_page').css({'display':'block'});
							var html = callAjax('common/getSheet.php?id='+id);
							$('#sheet_page').html(html);
							$('a.back_search').click
							(
								function(e2)
								{
									e2.preventDefault();
									$('#search_page').css({'display':'block'});
									$('#sheet_page').css({'display':'none'});
									$('#sheet_page').html("");
								}
							 );
						}
					}
					else
					{
						TREE_OBJ.toggle_branch.call(TREE_OBJ, NODE);
					}
				}
			},
            types :
			{
				"default" :
				{
					draggable:false
				}
			}
		}
    );
}
