var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var AjaxCall = YAHOO.util.Connect;
var yahoo = YAHOO;
var enjoy = yahoo.namespace("enjoy");

var agendaE_date = "";
var voucher_codes = new Array();

enjoy.app = {
    init: function() {
	
    },
    
    pass: function(){
    	Dom.replaceClass("passHolder", "show", "hidden");
        Dom.replaceClass("pass", "hidden", "show");
        Dom.get("pass").focus(); 
    },
        
    pass2: function(){
		Dom.replaceClass("passHolder2", "show", "hidden");
    	Dom.replaceClass("pass2", "hidden", "show");
    	Dom.get("pass2").focus(); 
    },
    
    toogle:function(e){
    	var elt = Dom.get(e);
    	if (Dom.hasClass(elt, "hidden")){
    		Dom.replaceClass(elt, "hidden", "show");
    	} else {
    		Dom.replaceClass(elt, "show", "hidden");
    	}		
    },
    
    redir:function(url){
    	location.href = url;
    },
    
    closeModal:function(){
    	Dom.setStyle("modal", "display", "none");
    	Dom.setStyle("zoom", "display", "none");
    },
    
    toggleParent:function(tar, el){
    	var elt = Dom.get(tar).checked;
    	if (elt == true){
    		Dom.get(el).checked = true;
    	} else {
    		Dom.get(el).checked = false;
    	}
    },
    
    teaser:function(){
    	
    	var email = Dom.get("email").value;
    	if (email.length > 0){
    		
				var callback = {
					success: function(o) {
					
					Dom.get("invitation").innerHTML = o.responseText;
					Dom.get("email").value = '';
					
					},
  					failure: function(o) { alert("Fail Invitation"); }
				}
		
    			var sUrl = "control.php?";
				var req = "action=teaser";
					req += "&email="+email;
				sUrl += req;
				var transaction = Ajax.asyncRequest('GET', sUrl, callback); 
    	} else {
    		alert(L_MERCI_TAPER_EMAIL);
    		return false;
    	}
    },
    
    checkAll:function(){
    	var elts = Dom.getElementsByClassName("msgCheckBox");
    	for (var i=0; i < elts.length; i++){
    		var elCheck = Dom.get(elts[i]);
    		if (elCheck.checked == true){
    			elCheck.checked = false;
    			Dom.get("linkMsgTool").innerHTML = L_SELECTIONNER_TOUS;
    		} else {
    			elCheck.checked = true;
    			Dom.get("linkMsgTool").innerHTML = L_DESELECTIONNER_TOUS;
    		}
    	}
    },
    
    checkSub:function(e, rel, rel1){
    
    	var elt1 = Dom.getElementsByClassName(rel1);
    	for (var i=0; i < elt1.length; i++){
    		var eltCheck = Dom.get(elt1[i]);
    		if (e.checked == true){
    			//alert("checked");
    			Dom.replaceClass(eltCheck, "hided", "showed");
    		} else {
    			//alert("unchecked");
    			Dom.replaceClass(eltCheck, "showed", "hided");
    		}
    	}
    
    	var elt = Dom.getElementsByClassName(rel);
    	for (var i=0; i < elt.length; i++){
    		var elCheck = Dom.get(elt[i]);
    		if (e.checked == true){
    			elCheck.checked = true; 
    		} else {
    			elCheck.checked = false;
    		}
    	}
    },
    
    appear:function(){
    	var rel = Dom.get("thema_id").value;
    	if (rel != "-1"){
	    	var elt = Dom.getElementsByClassName("appear");
	    	for (var i=0; i < elt.length; i++){
	    		var el = Dom.get(elt[i]);
	    		Dom.replaceClass(el, "showed1", "hided");
	    	}
	    	Dom.replaceClass(rel, "hided", "showed1");
	    }
    },
    
    toggleTree:function(thema_id, f){
    	if (Dom.hasClass(thema_id, "hided")){
	    	Dom.replaceClass(thema_id, "hided", "showed");
	    	Dom.replaceClass(f, "ftop", "fdown");
	    } else {
	    	Dom.replaceClass(thema_id, "showed", "hided");
	    	Dom.replaceClass(f, "fdown", "ftop");
	    }
    },
    
    signupFormOption:function(){
    	var selectField = Dom.get("pays_id").value;
    	if (selectField == "69"){
    		Dom.setStyle("parisien", "display", "block");
    		Dom.get("parisienRadioBtn").className = "validate-one-required";
    	} else {
    		Dom.setStyle("parisien", "display", "none");
    		Dom.get("parisienRadioBtn").className = "";
    	}
    },
    
   
    showCalendarEvent:function(el, target){

    	calE = new YAHOO.widget.Calendar("calE", target, { START_WEEKDAY: 1});
    	var today = new Date();
    	var todayS = calE.toDate(today);
    	calE.cfg.setProperty("mindate",todayS);
    	calE.cfg.setProperty("MDY_DAY_POSITION", MDY_DAY);
		calE.cfg.setProperty("MDY_MONTH_POSITION", MDY_MON);
		calE.cfg.setProperty("MDY_YEAR_POSITION", MDY_YEAR);
		calE.cfg.setProperty("MD_DAY_POSITION", MD_DAY);
		calE.cfg.setProperty("MD_MONTH_POSITION", MD_MON);
		calE.cfg.setProperty("MONTHS_SHORT",   [CAL_JAN, CAL_FEV, CAL_MAR, CAL_AVR, CAL_MAI, CAL_JUI, CAL_JUIL, CAL_AOU, CAL_SEP, CAL_OCT, CAL_NOV, CAL_DEC]);
		calE.cfg.setProperty("MONTHS_LONG",    [CAL_JANVIER, CAL_FEVRIER, CAL_MARS, CAL_AVRIL, CAL_MAIL, CAL_JUIN, CAL_JUILLET, CAL_AOUT, CAL_SEPTEMBRE, CAL_OCTOBRE, CAL_NOVEMBRE, CAL_DECEMBRE]);
		calE.cfg.setProperty("WEEKDAYS_1CHAR", [CAL_D, CAL_L, CAL_M, CAL_M, CAL_J, CAL_V, CAL_S]);
		calE.cfg.setProperty("WEEKDAYS_SHORT", [CAL_DI, CAL_LU, CAL_MA, CAL_ME, CAL_JE, CAL_VE, CAL_SA]);
		calE.cfg.setProperty("WEEKDAYS_MEDIUM",[CAL_DIM, CAL_LUN, CAL_MARL, CAL_MER, CAL_JEU, CAL_VEN, CAL_SAM]);
		calE.cfg.setProperty("WEEKDAYS_LONG",  [CAL_DIMANCHE, CAL_LUNDI, CAL_MARDI, CAL_MERCREDI, CAL_JEUDI, CAL_VENDREDI, CAL_SAMEDI]);

				function onCalSelect(type,args,obj) {
                        var selected = args[0];
                        var dateD = enjoy.app.dateFormat(selected);
						Dom.get(el).value = dateD;
						calE.hide();
                };

		calE.selectEvent.subscribe(onCalSelect, calE, true);
		calE.render();
		calE.show();

    },
    
    dateFormat:function(eventDated){

    		var string = eventDated.toString();
			var elem = string.split(',');
			var an = elem[0];
			var mo = parseFloat(elem[1]);
			var jj = parseFloat(elem[2]);

			if ( mo < parseFloat(10)){
				var moi = "0" + mo;
			} else {
				var moi = mo;
			}

			if (jj < parseFloat(10)){
				var jou = "0" + jj;
			} else {
				var jou = jj;
			}

			var dateD = jou + "/" + moi + "/" + an;
    		return dateD;
    },
    
    requestFriend:function(e){
    	var callback = {
					success: function(o) {
						Dom.get("requestLink").innerHTML = o.responseText;
					},
  					failure: function(o) {  }
				}
		
    	var sUrl = "control.php?";
		var req = "action=requestFriend";
			req += "&member_id="+e;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    },
    
    addEventRel:function(event_id, elt, member_id, context, thema_id, is_friendList){
    	var callback = {
					success: function(o) 
					{
						if (o.responseText != "MAX")
						{
							Dom.get(elt).innerHTML = o.responseText;
							if(is_friendList)
								enjoy.app.inviteMyFriendsToEvent(event_id);
						} 
						else 
						{
							alert(L_NOMBRE_MAX_PARTICIPANT);
						}
					},
  					failure: function(o) { }
				}
		
    	var sUrl = "control.php?";
		var req = "action=addEventRel";
			req += "&event_id="+event_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    },
    
    inviteMyFriendsToEvent:function(event_id)
    {	
    	verifSelectFriend = new Array();
    	var callback = {
			success: function(o) 
			{
			    Dom.get("titlePopup").innerHTML = Dom.get("titleInviteFriendsToEvent").innerHTML;
			    Dom.get("innerPopup").innerHTML = o.responseText;
			},
  			failure: function(o) { }
    	}
		
    	var sUrl = "control.php?";
		var req = "action=getMemberInvite";
		req += "&event_id="+event_id;
		sUrl += req;
	
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    	
    	panel.show();
    },
    
    inviteMyFriendsToContest:function(contest_id)
    {
    	verifSelectFriend = new Array();
    	var callback = {
			success: function(o) 
			{
			    Dom.get("titlePopup").innerHTML = Dom.get("titleInviteFriendsToContest").innerHTML;
			    Dom.get("innerPopup").innerHTML = o.responseText;
			},
  			failure: function(o) { }
		}
			
	    var sUrl = "control.php?";
		var req = "action=getMemberInvite";
		req += "&contest_id="+contest_id;
		sUrl += req;
		
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	    	
	    panel.show();
    },
    
    supEventRel:function(event_id, elt, member_id, context, thema_id){
    	var callback = {
					success: function(o) {
						Dom.get(elt).innerHTML = o.responseText;
					},
  					failure: function(o) {  }
				}
		
    	var sUrl = "control.php?";
		var req = "action=supEventRel";
			req += "&event_id="+event_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    },
    
    confirmEventRel:function(event_id, elt, member_id, context, thema_id){
    	var callback = {
					success: function(o) {
						Dom.get(elt).innerHTML = o.responseText;
					},
  					failure: function(o) {  }
				}
		
    	var sUrl = "control.php?";
		var req = "action=confirmEventRel";
			req += "&event_id="+event_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    },
    
    getAgenda:function(month, year, thema_id, member_id)
    {
    	var callback = {
	    success: function(o) {
		Dom.get("agenda").innerHTML = o.responseText;
		Shadowbox.clearCache();
		Shadowbox.setup();
		Shadowbox.init();
	    },
	    failure: function(o) {  }
	}
	
    	var sUrl = "control.php?";
	var req = "action=getAgenda";
	    req += "&month="+month;
	    req += "&year="+year;
	    req += "&thema_id="+thema_id;
	    req += "&member_id="+member_id;	
	sUrl += req;
	var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    },
	
	getAgendaE:function(month, year, thema_id, member_id, event_parent_id, date)
	{	
    	var callback = {
					success: function(o) {
						Dom.get("agendaEvent").innerHTML = o.responseText;
						
						if (agendaE_date != "")
						{
							Dom.replaceClass("normal_ball_"+agendaE_date, "ball_on", "ball_off");
							Dom.replaceClass("selected_ball_"+agendaE_date, "ball_off", "ball_on");
							if (Dom.get("dayBlock_"+agendaE_date) != undefined)
							{
								Dom.get("dayBlock_"+agendaE_date).style.backgroundColor = "#EFEFEF";
							}		
						}
						
					},
  					failure: function(o) {  }
				}
    	
		if (agendaE_date == "")
		{
			agendaE_date = date;
		}
    	
    	var sUrl = "control.php?";
		var req = "action=getAgendaE";
			req += "&month="+month;
			req += "&year="+year;
			req += "&thema_id="+thema_id;
			req += "&member_id="+member_id;
			req += "&event_parent_id="+event_parent_id;
			req += "&date="+agendaE_date;
		
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    },
	
	getEventsDay:function(date, thema_id, member_id)
	{
    	var callback = {
					success: function(o) 
					{
						var result = o.responseText.split('|||');
						
						var boxWidth = 620;
						var boxHeight = parseInt(result[1]);
						
						Shadowbox.open({
							player: "html",
							content: result[2],
							height: boxHeight,
							width: boxWidth,
							title: result[0]
						});
					},
  					failure: function(o) {  }
				}
		
    	var sUrl = "control.php?";
		var req = "action=getEventsDay";
			req += "&date="+date+"&thema_id="+thema_id+"&member_id="+member_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
	},
	
    langSelect:function(el, tar, nam){
    	var elt = Dom.get(el).value;
    	if (elt != "-1"){
    		var tab = elt.split("-");
    		Dom.get(tar).innerHTML += '<p id="lg'+tab[0]+'" style="vertical-align:middle;"><span><img src="assets/delete.gif" border="0" class="delete" onClick="enjoy.app.langDel(\'lg'+tab[0]+'\', \''+tar+'\');"/></span> <input type="hidden" name="'+nam+'[]" value="'+tab[0]+'"/> '+tab[1]+'</p>';    	
    		if (nam == "thema"){
    		enjoy.app.toggleTree('th'+tab[0], 'f'+tab[0]);
    		}
    	}
    },
    
    langDel:function(elt, tar)
	{	
    	var parent = Dom.get(tar);
    	var el = Dom.get(elt);
    	parent.removeChild(el);
		verifSelectFriend[elt.substr(2,6)] = false;
    },
    
    selectFriend:function(){
    	var selected = Dom.get("participants").value;
    	if (selected)
		{
    		var text = Dom.get("participants").options[Dom.get("participants").selectedIndex].text;
    			if (selected != "")
				{
					if(!verifSelectFriend[selected])
					{
						Dom.get("toFriends").innerHTML += '<p id="lg'+selected+'" style="vertical-align:middle;"><span><img src="assets/delete.gif" border="0" class="delete" onClick="enjoy.app.langDel(\'lg'+selected+'\', \'toFriends\');"/></span> <input type="hidden" name="friends[]" value="'+selected+'"/> '+text+'</p>';
						verifSelectFriend[selected] = true;
					}
				}
    	}
    },
	
	selectAllFriends:function(nb)
	{
		var selected = "";
		for(i=0;i<nb;i++)
		{
			selected = Dom.get("membre"+i).innerHTML;
			var text = Dom.get("participants").options[i].text;
			if (selected != "")
			{
				if(!verifSelectFriend[selected])
				{
					Dom.get("toFriends").innerHTML += '<p id="lg'+selected+'" style="vertical-align:middle;"><span><img src="assets/delete.gif" border="0" class="delete" onClick="enjoy.app.langDel(\'lg'+selected+'\', \'toFriends\');"/></span> <input type="hidden" name="friends[]" value="'+selected+'"/> '+text+'</p>';
					verifSelectFriend[selected] = true;
				}
			}
		}
    },
    
    inviterAmisGrabber: function(){
    	var mail = Dom.get("mail").value;
    	var pass = Dom.get("pass").value;
	
    	if (mail == ""){
			alert(L_EMAIL_VALIDE);
			Dom.get("mail").focus();
			return false;
    	}

    	if (pass == ""){
			alert(L_MOT_DE_PASSE);
			Dom.get("pass").focus();
			return false;
    	}

    	var callback = {
			    success: function(o) {
				    Shadowbox.open({
					    player: "html",
					    content: o.responseText,
					    height: 360,
					    width: 500,
					    title: "Invitations"
				    });
			    },
			    failure: function(o) { }
			}
		
    	var sUrl = "control.php?";
		var req = "action=inviterAmisGrabber";
			req += "&mail="+mail;
			req += "&pass="+pass;
			if (Dom.get("contest_id") != null)
			{
			    req += "&contest_id="+Dom.get("contest_id").value;
			}
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    	
    },
    
    getPeopleYouMayLike:function(){
    	
    	var callback = {
					success: function(o) {
						
						Dom.get("peopleYML").innerHTML = o.responseText;
						
						/*Event.onDOMReady(function () {
						        var carousel3;
						                
						        YAHOO.util.Event.onDOMReady(function (ev) {
						            var carousel3  = new YAHOO.widget.Carousel("peopleYML", {
						                   animation: { speed: 0.5 }, autoPlayInterval:5000, isVertical: true, isCircular: true, numVisible: 2, selectOnScroll: false
						                });       
						            carousel3.render();
						            carousel3.show();
						            carousel3.startAutoPlay();
						        });
    					});*/
						
						
					},
  					failure: function(o) {  }
				}
		
    	var sUrl = "control.php?";
		var req = "action=getPeopleYouMayLike";
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
    	
    },
    
    zoomImg:function(img, size){
    	Dom.setStyle("modal", "display", "block");
        Dom.setStyle("zoom", "display", "block");
        var resize = img.replace(size+"-", "");
        Dom.get("zoom").innerHTML = '<img src="'+resize+'" border="0" width="550" style="border:1px solid #fff;"/>';
        Event.addListener("modal", "click", enjoy.app.closeModal);
        Event.addListener("zoom", "click", enjoy.app.closeModal);
    },
    
	clickTwit:function(member_id, send, cancel)
	{
		var existant = Dom.get("textTwit").innerHTML;
		existant = existant.replace(/^\s*|\s*$/,"");
		
		var formulaire = "";
		formulaire += "<div style=\"float:left;\" <input id='textTwit' name='textTwit' size='52' maxlength='70' value='"+existant+"'></input></div>";
		formulaire += "<div style=\"float:right;\" onclick='enjoy.app.actionTwit("+member_id+",\"cancel\",\""+existant+"\")'><img src='assets/X.gif' class='bottonTwit' alt='"+cancel+"' title='"+cancel+"'></img></div>";
		formulaire += "<div style=\"float:right;\" onclick='enjoy.app.actionTwit("+member_id+",\"validate\",\"\")'><img src='assets/V.gif' class='bottonTwit' alt='"+send+"' title='"+send+"'></img></div>";
		
		Dom.get("boxTwit").innerHTML = formulaire;
	},
	
	actionTwit:function(member_id, choix, twit)
	{
		var callback = {
					success: function(o){
						Dom.get("boxTwit").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}
		
		if(choix == 'validate')
		{
			newTwitter = Dom.get("textTwit").value;
		}
		else if(choix == 'cancel')
		{
			newTwitter = twit;
		}
		
		var sUrl = "control.php?";
		var req = "action=updateTwitter&member_id="+member_id+"&newTwitter="+newTwitter;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	showFriends:function(member_id)
	{
		var callback = {
					success: function(o){
						Dom.get("friendList").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=toggleFriends&member_id="+member_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	modFavorite:function(member_id, place_id, sens)
	{
		var callback = {
					success: function(o){
						Dom.get("favorite").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=modFavorite&member_id="+member_id+"&place_id="+place_id+"&sens="+sens;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	delFavorite:function(member_id, place_id)
	{
		var callback = {
					success: function(o){
						Dom.get("favorite").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=delFavorite&member_id="+member_id+"&place_id="+place_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	showFans:function(place_id)
	{
		var callback = {
					success: function(o){
						Dom.get("fanList").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=toggleFans&place_id="+place_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	toggleChangePass:function()
	{
		var callback = {
					success: function(o){
						Dom.get("titlePopup").innerHTML = Dom.get("titleChangePass").innerHTML;
						Dom.get("innerPopup").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}	
		
		var sUrl = "control.php?";
		var req = "action=toggleChangePass";
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		
		panel.show();
	},
	
	changePass:function()
	{
		var callback = {
					success: function(o){
						if (o.responseText != "")
						{
							Dom.get("messageChangePass").innerHTML = o.responseText;
						}
						else
						{
							window.location.replace("profil.php?m=1&msg=OK_CHANGE_PASS");
						}
					},
  					failure: function(o){  }
		}	
		
		old = Dom.get("old_member_pass").value
		new1 = Dom.get("new1_member_pass").value
		new2 = Dom.get("new2_member_pass").value
		
		var sUrl = "control.php?";
		var req = "action=changePass&old="+old+"&new1="+new1+"&new2="+new2;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		
		panel.show();
	},
	
	hideInfobulle:function()
	{
		document.getElementById("infobulle").style.left = 0; 
		document.getElementById("infobulle").style.top = 0;
		
		document.getElementById("infobulle").className = "hidden";
	},
	
	moveInfobulle:function(e)
	{
	    if (document.getElementById("infobulle").className == "show")
	    {
		// récupère les coordonées du curseur
		if (e)
		{
		    // tous les navigateurs excepté IE
		    var x = e.pageX;
		    var y = e.pageY;
		}
		else
		{
		    // IE
		    var x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		    var y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
		
		//adapte la position sur l'axe Y
		var height = document.getElementById("infobulle").offsetHeight;
		y = y - height - 10;
		
		// déplace l'infobulle
		document.getElementById("infobulle").style.left = x+"px"; 
		document.getElementById("infobulle").style.top = y+"px";
	    }
	},
	
	showInfobulle:function(message)
	{
		document.getElementById("infobulle").className = "show";
		document.getElementById("infobulle-content").innerHTML = message;
	},
	
	askInterest:function(member_id, event_parent_id, confirmation)
	{
		var callback = {
					success: function(o){
						if (o.responseText != "")
						{
							Dom.get("interestQuestion").innerHTML = o.responseText;
						}
						else
						{
							Dom.get("interestQuestion").innerHTML = "";
							Dom.replaceClass("tipbox", "hidden", "show");
						}
					},
  					failure: function(o){  }
		}	
		
		var sUrl = "control.php?";
		var req = "action=askInterest&member_id="+member_id+"&event_parent_id="+event_parent_id;
		if (confirmation)
		{
			req+= "&confirmation=true"
		}
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
	},
	
	likeInterest:function(interest_id, member_id, event_parent_id)
	{
		var callback = {
					success: function(o){
						enjoy.app.askInterest(member_id, event_parent_id, true);
					},
  					failure: function(o){  }
		}	
		
		var sUrl = "control.php?";
		var req = "action=likeInterest&member_id="+member_id+"&interest_id="+interest_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);			
	},
	
	dislikeInterest:function(interest_id, member_id, event_parent_id)
	{
		var callback = {
					success: function(o){
						enjoy.app.askInterest(member_id, event_parent_id, true);
					},
  					failure: function(o){  }
		}	
		
		var sUrl = "control.php?";
		var req = "action=dislikeInterest&member_id="+member_id+"&interest_id="+interest_id;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);			
	},
	
	switchPlace:function(form)
	{
	    var place_id = Dom.get(form).value;
	    
	    var callback = {
		success: function(o){
		    if (o.responseText != "")
		    {
			    var address = o.responseText.split("_");
			    Dom.get("event_parent_lieu").value = address[0];
			    Dom.get("event_parent_adresse").value = address[1];
			    Dom.get("event_parent_ville").value = address[2];
		    }
		    else
		    {
			    Dom.get("event_parent_lieu").value = "";
			    Dom.get("event_parent_adresse").value = "";
			    Dom.get("event_parent_ville").value = "";
		    }
		},
		failure: function(o){  }
	    }	
	    
	    var sUrl = "control.php?";
	    var req = "action=getPlaceAddress&place_id="+place_id;
	    sUrl += req;
	    var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);	
	},
	
	showPlaceEvents:function(place_id, state)
	{
		var callback = {
					success: function(o){
						if (state == "coming"){
							Dom.get("comingEventsList").innerHTML = o.responseText;
						}
						else if (state == "past"){
							Dom.get("pastEventsList").innerHTML = o.responseText;
						}
					},
  					failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=togglePlaceEvents&place_id="+place_id+"&state="+state;
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	getSondage:function()
	{
		var callback = {
					success: function(o){
						Dom.get("sondageBox").innerHTML = o.responseText;
					},
  					failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=getSondage";
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	},
	
	setVote:function(sondage_id)
	{
		var callback = {
			success: function(o){
				enjoy.app.getSondage();
			},
			failure: function(o){ }
		}
			
		var options = document.getElementsByName("optionVote");
		var vote = 0;
		
		for (var i=0; i < options.length; i++)
		{
			if(options[i].checked)
			{
				vote = options[i].value;
			}
		}
				
		if ((vote != 0) && (sondage_id != null))
		{
			var sUrl = "control.php?";
			var req = "action=setVote&sondage_id="+sondage_id+"&option_id="+vote;
			sUrl += req;
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
		}
	},
	
	displayHomeEvents:function(cat)
	{
		for (var i = 0; i <= 1; i++)
		{
			tab = Dom.get("cat"+i);
			list = Dom.get("eventList"+i);
			
			if (i == cat)
			{
				Dom.replaceClass(list, "hidden", "show");
				Dom.replaceClass(tab, "", "selected");
			}
			else
			{
				Dom.replaceClass(list, "show", "hidden");
				Dom.removeClass(tab, "selected");
			}
		}
	},
	
	displayInviteBlock:function()
	{		
		Dom.replaceClass(Dom.get("shareBlock"), "show", "hidden");
		Dom.replaceClass(Dom.get("shareLink"), "show", "hidden");
				 
		Dom.replaceClass(Dom.get("inviteBlock"), "hidden", "show");
		Dom.replaceClass(Dom.get("inviteLink"), "hidden", "show");
	},
	
	displayShareBlock:function()
	{
		Dom.replaceClass(Dom.get("shareBlock"), "hidden", "show");
		Dom.replaceClass(Dom.get("shareLink"), "hidden", "show");
				 
		Dom.replaceClass(Dom.get("inviteBlock"), "show", "hidden");
		Dom.replaceClass(Dom.get("inviteLink"), "show", "hidden");
	},
	
	addInviteMail:function(id)
	{
		id = parseInt(id) + 1;
		
		var label = document.createElement("label");
		label.innerHTML = "E-mail "+id+" : ";
		
		var input = document.createElement("input");
		input.type="text";
		input.name="mail"+id;
		input.className = "inputtext";
		
		Dom.get("mails").appendChild(label);
		Dom.get("mails").appendChild(input);
		Dom.get("mails").appendChild(document.createElement("br"));

		Dom.get("mailNumber").value = id;
	},
	
	deleteAccount:function(question, check)
	{ 
		var answer = prompt(question, "");
		if (answer == check)
		{
			window.location.replace("control.php?action=deleteAccount&confirm=true");
		}
	},
	
	getCreationFormEventP:function()
	{
		var callback = {
			success: function(o){
				Dom.get("form_type").innerHTML = o.responseText;
				$("#date_P1").datepick({minDate: +0});
			},
			failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=getCreationFormEventP";
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
	},

	getCreationFormEventH:function()
	{
		var callback = {
			success: function(o){
				Dom.get("form_type").innerHTML = o.responseText;
				$("#event_date_start").datepick({minDate: +0});
				$("#event_date_end").datepick({minDate: +0});
			},
			failure: function(o){  }
		}
		
		var sUrl = "control.php?";
		var req = "action=getCreationFormEventH";
		sUrl += req;
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
	},
	
	displaySessions:function(event_parent_id, date, event_child_id)
	{
		var callback = {
			success: function(o){
				Dom.get("choose_sessions").innerHTML = o.responseText;
				Dom.replaceClass("choose_sessions", "hidden", "show");
				Dom.replaceClass("help_sessions", "show", "hidden");
				
				if (event_child_id != null)
				{
				    enjoy.app.displayActionSessions(event_child_id);
					enjoy.app.displayEventMembersDiapo(event_child_id, 1);
				}
			},
			failure: function(o){  }
		}
		
		Dom.get("action_sessions").innerHTML = "";
		agendaE_date = date;
		
		if (event_parent_id != -1)
		{
			var days = Dom.getElementsByClassName("dayBlock");
			for (var i = 0; i < days.length; i++)
			{
				var id = days[i].id;
				var tmp = days[i].id.split("_");
				var day_date = tmp[1];
				
				if (day_date == date)
				{
					// hide green or gray ball for the selected date
					Dom.replaceClass("normal_ball_"+day_date, "ball_on", "ball_off");
					// show blue ball for the selected date
					Dom.replaceClass("selected_ball_"+day_date, "ball_off", "ball_on");
					// switch to a gray background for the selected date
					days[i].style.backgroundColor = "#EFEFEF";
				}
				else
				{
					// hide blue ball for others
					Dom.replaceClass("selected_ball_"+day_date, "ball_on", "ball_off");
					// show green or gray ball for others
					Dom.replaceClass("normal_ball_"+day_date, "ball_off", "ball_on");
					// switch to a white background for others
					days[i].style.backgroundColor = "";					
				}
			}
			
			var sUrl = "control.php";
			var req = "?action=displaySessions&event_parent_id="+event_parent_id+"&date="+date+"&event_child_id="+event_child_id;
			sUrl += req;
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		}
		else
		{
			Dom.get("choose_sessions").innerHTML = "";
		}
	},
	
	displayActionSessions:function(event_child_id)
	{
		var callback = {
			success: function(o){
				Dom.get("action_sessions").innerHTML = o.responseText;
				Dom.replaceClass("action_sessions", "hidden", "show");
			},
			failure: function(o){  }
		}
		
		if (event_child_id != -1)
		{
			var sUrl = "control.php";
			var req = "?action=displayActionSessions&event_child_id="+event_child_id;
			sUrl += req;
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		}
		
		Dom.get("action_sessions").innerHTML = "";
	},
	
	addEventRegistration:function(event_child_id, nb_tickets, is_friendlist)
	{
		var callback = {
			success: function(o){
				// refresh action block and diaporama
				enjoy.app.displayActionSessions(event_child_id);
				enjoy.app.displayEventMembersDiapo(event_child_id, 1);
				// display popup to invite friends
				if(is_friendlist)
				{
					enjoy.app.inviteMyFriendsToChildEvent(event_child_id);
				}
			},
			failure: function(o){  }
		}
		
		if (event_child_id != -1)
		{
			var sUrl = "control.php?";
			var req = "action=addEventRegistration&event_child_id="+event_child_id+"&nb_tickets="+nb_tickets;
			
			sUrl += req;
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		}
	},
	
	delEventRegistration:function(event_child_id)
	{
		var callback = {
			success: function(o){
				// refresh action block and diaporama
				enjoy.app.displayActionSessions(event_child_id);
				enjoy.app.displayEventMembersDiapo(event_child_id, 1);
			},
			failure: function(o){  }
		}
		
		if (event_child_id != -1)
		{
			var sUrl = "control.php?";
			var req = "action=delEventRegistration&event_child_id="+event_child_id;
			sUrl += req;
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		}
	},

	confEventRegistration:function(event_child_id)
	{
		var callback = {
			success: function(o){
				// refresh action block and diaporama
				enjoy.app.displayActionSessions(event_child_id);
				enjoy.app.displayEventMembersDiapo(event_child_id, 1);
			},
			failure: function(o){  }
		}
		
		if (event_child_id != -1)
		{
			var sUrl = "control.php?";
			var req = "action=confEventRegistration&event_child_id="+event_child_id;
			sUrl += req;
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
		}
	},
	
	inviteMyFriendsToChildEvent:function(event_child_id)
	{	
	    verifSelectFriend = new Array();
	    var callback = {
			    success: function(o) 
			    {
					Dom.get("titlePopup").innerHTML = Dom.get("titleInviteFriendsToEvent").innerHTML;
					Dom.get("innerPopup").innerHTML = o.responseText;
			    },
			    failure: function(o) { }
	    }
		    
	    var sUrl = "control.php";
	    var req = "?action=getMemberInvite";
	    req += "&event_child_id="+event_child_id;
	    sUrl += req;
	    
	    var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);
	    
	    panel.show();
	},
	
	displayEventMembersDiapo:function(event_child_id, page)
	{
		var callback = {
		success: function(o) 
			{
				Dom.get("eventMembersDiapo").innerHTML = o.responseText;
				Dom.replaceClass("eventMembersPage"+page, "hidden", "show");
			},
			failure: function(o) { }
	    }
		
		if (page == null || page == -1)
		{
			page = 1;
		}
		
		if (event_child_id != -1)
		{
			var sUrl = "control.php";
			var req = "?action=displayEventMembersDiapo";
			req += "&event_child_id="+event_child_id+"&page="+page;
			sUrl += req;
			
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
		}
	},
	
	displayClassicDiapo:function(id, type, page)
	{
	    var callback = {
		success: function(o) 
		{
		    Dom.get(type+"Diapo").innerHTML = o.responseText;
		    Dom.replaceClass(type+"Page"+page, "hidden", "show");
			
		    enjoy.app.initShadowbox();
		},
		failure: function(o) { }
	    }
		
	    if (page == null || page == -1)
	    {
		    page = 1;
	    }
	    
	    if (id != -1)
	    {
		    var sUrl = "control.php";
		    var req = "?action=displayClassicDiapo";
		    req += "&id="+id+"&type="+type+"&page="+page;
		    sUrl += req;
		    
		    var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
	    }
	},
	
	displayEventMembersDiapo:function(event_child_id, page)
	{
		var callback = {
		success: function(o) 
			{
				Dom.get("eventMembersDiapo").innerHTML = o.responseText;
				Dom.replaceClass("eventMembersPage"+page, "hidden", "show");
			},
			failure: function(o) { }
	    }
		
		if (page == null || page == -1)
		{
			page = 1;
		}
		
		if (event_child_id != -1)
		{
			var sUrl = "control.php";
			var req = "?action=displayEventMembersDiapo";
			req += "&event_child_id="+event_child_id+"&page="+page;
			sUrl += req;
			
			var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
		}
	},
	
	switchDiapo:function(type, direction, max)
	{
	    var oldPage = parseInt(Dom.get(type+"CurPage").innerHTML);
	    
	    if (direction == "left")
	    {
		newPage = oldPage - 1;
		if (newPage == 0)
		{
		    newPage = max;
		}
	    }
	    else if (direction == "right")
	    {
		newPage = oldPage + 1;
		if (newPage > max)
		{
		    newPage = 1;
		}			
	    }
	    
	    Dom.replaceClass(type+"Page"+oldPage, "show", "hidden");
	    Dom.replaceClass(type+"Page"+newPage, "hidden", "show");
	    
	    Dom.get(type+"CurPage").innerHTML = newPage;
	},
	
	initShadowbox:function()
	{
		Shadowbox.clearCache();
		Shadowbox.setup();
		Shadowbox.init();
	},
	
	checkPaymentConfirm:function()
	{		
		var email1 = document.getElementById("email1");
		var email2 = document.getElementById("email2");
		var first_name = document.getElementById("first_name");
		var last_name = document.getElementById("last_name");
		var error = "";

		if (first_name.value == "") { error+= first_name.title+"<br/>"; }
		if (last_name.value == "") { error+= last_name.title+"<br/>"; }
		if (email1.value == "" || !email1.value.match(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/))
		{
			error+= email1.title+"<br/>";
		}
		if (email1.value != email2.value) { error+= email2.title+"<br/>"; }

		if (error != "")
		{
			document.getElementById("form_error").innerHTML = error;
			document.form_payment_confirm.action = "javascript:void(0)";
		}
		else
		{
			document.form_payment_confirm.action = "transaction_new.php";	
		}
	},
	
	selectPlaceThema:function(place_thema_id, word_list, cp)
	{
	    var callback = {
		success: function(o) 
		{
		    // fill the list
		    Dom.get("search_place_list").innerHTML = o.responseText;
		    
		    // change buttons
		    var buttons = Dom.getElementsByClassName("place_thema_button");
		    for (key in buttons)
		    {
			if (buttons[key].id == "place_thema_button"+place_thema_id)
			{
			    buttons[key].style.backgroundColor = "#888";
			    buttons[key].style.color = "#EFEFEF";
			}
			else
			{
			    buttons[key].style.backgroundColor = "#EFEFEF";
			    buttons[key].style.color = "#888";			    
			}
		    }
		},
		failure: function(o) { }
	    }
	    
	    var sUrl = "control.php";
	    var req = "?action=getPlaceByThemas";
	    req += "&place_thema_id="+place_thema_id+"&word_list="+word_list+"&cp="+cp;
	    sUrl += req;
	    
	    var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);      
	},
	
	checkVoucherCode:function(voucher_code, voucher_error_check, type_code, event_id)
	{
		event_id = typeof(event_id) != 'undefined' ? event_id : null;
		var callback = {
			success: function(o) 
			{
			if (o.responseText != '')
			{					
				var elements = o.responseText.split(";");
				var voucher_value = parseFloat(elements[0]);
				var voucher_type = parseInt(elements[1]);
				// This voucher code is valid
				if (!in_array(voucher_code, voucher_codes))
				{
					// Create an input field
					var input = document.createElement("input");
					input.type = "hidden";
					input.name = "voucher_codes[]";
					input.value = voucher_code;
					
					// Add the field to the form
					Dom.get("form_payment_confirm").appendChild(input);
					// Save the code
					voucher_codes[voucher_codes.length] = voucher_code;
					
					// Show reductions on the initial price
					Dom.removeClass("after_reductions", "hidden");
					
					var reductions_amount = parseFloat(Dom.get("reductions_amount").innerHTML);
					reductions_amount = Math.round(reductions_amount*100)/100;
					
					var final_amount = parseFloat(Dom.get("final_amount").innerHTML);
					final_amount = Math.round(final_amount*100)/100;
					
					var total_amount = parseFloat(Dom.get("total_amount").innerHTML);
					total_amount = Math.round(total_amount*100)/100;
					
					if(voucher_type==null || voucher_type !=2)
					{
						// Display the result
						Dom.get("used_voucher_code_list").innerHTML+= voucher_code+" ("+voucher_value+" €)<br/>";
						
						if (final_amount >= voucher_value)
						{								
							total_reduction = reductions_amount + voucher_value;
							var new_amount = final_amount - voucher_value;
							new_amount = Math.round(new_amount*100)/100;
							Dom.get("final_amount").innerHTML = new_amount;
						}
						else
						{
							total_reduction = reductions_amount + final_amount;
							Dom.get("final_amount").innerHTML = 0;			
						}							
					}
					else 
					{
					// Display the result
					Dom.get("used_voucher_code_list").innerHTML+= voucher_code+" ("+voucher_value+"%)<br/>";
					
					var new_amount = final_amount-(total_amount*voucher_value/100);	
					new_amount = Math.round(new_amount*100)/100;
					
					total_reduction = reductions_amount + final_amount - new_amount;
					Dom.get("final_amount").innerHTML = new_amount;

					}
					total_reduction = Math.round(total_reduction*100)/100;
					Dom.get("reductions_amount").innerHTML = total_reduction + " €";
				}				
				Dom.get(type_code+"_result").innerHTML = '';
			}
			else
			{
				// This voucher code is invalid
				Dom.get(type_code+"_result").innerHTML = voucher_error_check;
			}
			},
			failure: function(o) { }
	    }
		
		voucher_code = voucher_code.trim();		
		voucher_code = noaccent(voucher_code);
		voucher_code = voucher_code.toUpperCase();
		
		Dom.get(type_code+"_code").value = '';
		
		var sUrl = "control.php";
		var req = "?action=checkVoucherCode";
		req += "&voucher_code="+voucher_code;
		req += "&evt_id="+event_id;
		sUrl += req;
		
		var transaction = AjaxCall.asyncRequest('GET', sUrl, callback);		
	}
};

function noaccent(chaine) {
    temp = chaine.replace(/[àâä]/gi,"a")
    temp = temp.replace(/[éèêë]/gi,"e")
    temp = temp.replace(/[îï]/gi,"i")
    temp = temp.replace(/[ôö]/gi,"o")
    temp = temp.replace(/[ùûü]/gi,"u")
    return temp
 }

function in_array(element, array)
{
	var found = false;
	var i = 0;
	
	while (!found && i < array.length)
	{
		if (array[i] == element)
		{
			found = true;
		}
		else
		{
			i++;
		}
	}
	
	return found;
}

Event.onDOMReady(enjoy.app.init, enjoy.app, true);


