
/**
 * Inpix media - septembre 2006 - Skander Jabouzi - Educalcool - cartes.js
 */

indice = 0;
nbreReceiver = 1;
currentPage = 1;
lang = "";
pagesAnimes = 1;
temp = 0;

/**
 * detecter la langue fr ou en
 */
function getLangue(){
	var url = window.location;
    if ((url.toString().match(/en/i))) 
    {
       return "en";
    }
    else return "fr";
}	

/**
 * animation des images en slides 
 */
animInit1 = function() {  	 

	   document.getElementById("box_cartes_slide_inner").style.width = getNbPagesFooter()*450+"px";

	   var attributes_slide_prev = {
	      scroll: { by: [450, YAHOO.util.Dom.get('box_cartes_slide').scrollTop] }
	   };
	   var attributes_slide_next = {
	      scroll: { by: [-450, YAHOO.util.Dom.get('box_cartes_slide').scrollTop] }
	   };
	   
	   var tabAnimNext = new Array();
	   var tabAnimPrev = new Array();
	   var tabanim_next = new Array();
	   var tabanim_prev = new Array();
		
	   for (var k = 1; k<= getNbPagesFooter(); k++){
			tabAnimPrev[k] = {
				scroll: { by: [450*k, YAHOO.util.Dom.get('box_cartes_slide').scrollTop] }
			};	
			tabAnimNext[k] = {
				scroll: { by: [-450*k, YAHOO.util.Dom.get('box_cartes_slide').scrollTop] }
			};			
		}
	
	   var anim_slide_prev = new YAHOO.util.Scroll('box_cartes_slide', attributes_slide_prev, 0.5, YAHOO.util.Easing.easeOut);
	   var anim_slide_next = new YAHOO.util.Scroll('box_cartes_slide', attributes_slide_next, 0.5, YAHOO.util.Easing.easeOut); 
	   
	   for (var l = 1; l <= getNbPagesFooter(); l++){
			tabanim_prev[l] = new YAHOO.util.Scroll('box_cartes_slide', tabAnimPrev[l], 0.5, YAHOO.util.Easing.easeOut);
			tabanim_next[l] = new YAHOO.util.Scroll('box_cartes_slide', tabAnimNext[l], 0.5, YAHOO.util.Easing.easeOut);
		}
	   
	   YAHOO.util.Event.on("bt_slide_prev", 'click', anim_slide1, anim_slide_prev, true);
	   YAHOO.util.Event.on("bt_slide_next", 'click', anim_slide2, anim_slide_next, true); 
	   
	   function anim_slide1(){	   			
				anim_slide_next.animate();				
		}
		
		function anim_slide2(){					 
				anim_slide_prev.animate();					
	    }
		
		var slides = parseInt(document.getElementById("animatedPages").value);
		if ( null != tabanim_prev[Math.ceil(slides/5)-1])tabanim_prev[Math.ceil(slides/5)-1].animate();
			
};

/**
 * animation des images par pages
 */
animInit2 = function() { 	   
		document.getElementById("box_anim_cartes_inner").style.width = getNbPages()*452+10*getNbPages()+"px";
		
	 	var attributes_prev = {
		    scroll: { by: [472, YAHOO.util.Dom.get('box_anim_cartes').scrollTop] }
		};
		var attributes_next = {
			scroll: { by: [-472, YAHOO.util.Dom.get('box_anim_cartes').scrollTop] }
		};
		
		var tabAnimNext = new Array();
		var tabAnimPrev = new Array();
		var tabanim_next = new Array();
		var tabanim_prev = new Array();
		
		for (var k = 1; k<= getNbPages(); k++){
			tabAnimNext[k] = {
				scroll: { by: [472*k, YAHOO.util.Dom.get('box_anim_cartes').scrollTop] }
			};	
			tabAnimPrev[k] = {
				scroll: { by: [-472*k, YAHOO.util.Dom.get('box_anim_cartes').scrollTop] }
			};			
		}
		
		var anim_prev = new YAHOO.util.Scroll('box_anim_cartes', tabAnimNext[1], 0.5, YAHOO.util.Easing.easeOut);
		var anim_next = new YAHOO.util.Scroll('box_anim_cartes', tabAnimPrev[1], 0.5, YAHOO.util.Easing.easeOut); 
		for (var l = 1; l <= getNbPages(); l++){
			tabanim_prev[l] = new YAHOO.util.Scroll('box_anim_cartes', tabAnimNext[l], 0.5, YAHOO.util.Easing.easeOut);
			tabanim_next[l] = new YAHOO.util.Scroll('box_anim_cartes', tabAnimPrev[l], 0.5, YAHOO.util.Easing.easeOut);
		}
		
			YAHOO.util.Event.on("bt_pages_prev", 'click', anim1, anim_prev, true);			
			YAHOO.util.Event.on("bt_prev", 'click', anim1, anim_prev, true);		
		
			YAHOO.util.Event.on("bt_pages_next", 'click', anim2, anim_next, true);		
			YAHOO.util.Event.on("bt_next", 'click', anim2, anim_next, true);
			
			for (var i = 1;i <= getNbPages(); i++){			
				YAHOO.util.Event.on("Page"+i, 'click', anim, tabanim_prev[i],true); 				
			}
			
					
		function anim1(){
				anim_next.animate();
				if (pagesAnimes > 1){
					temp = pagesAnimes;
					pagesAnimes = pagesAnimes - 1;
					for (var i = 1;i <= getNbPages(); i++){
						document.getElementById("Page"+i).className = "page";					
					}
					document.getElementById("Page"+pagesAnimes).className = "page selected";
				}
		}
		
		function anim2(){
				anim_prev.animate();					
				if (pagesAnimes < getNbPages()){
					temp = pagesAnimes;
					pagesAnimes = pagesAnimes + 1;			
					for (var i = 1;i <= getNbPages(); i++){
						document.getElementById("Page"+i).className = "page";					
					}
					document.getElementById("Page"+pagesAnimes).className = "page selected";
				}
		}
		
		function anim(){			
			var nbanim = temp - pagesAnimes;
			if (nbanim != 0){
				if (nbanim < 0)	tabanim_prev[Math.abs(nbanim)].animate();
				else tabanim_next[nbanim].animate();
			}
			for (var i = 1;i <= getNbPages(); i++){
				document.getElementById("Page"+i).className = "page";					
			}
			document.getElementById("Page"+pagesAnimes).className = "page selected";
		}		
};

/**
 * animation de "up and down" des images
 */
animInit3 = function() {
	
	  var heightAll = Math.ceil(getNbImagesAll()/3*159/(getNbImagesAll()/12));
	  var heightCur = Math.ceil(getNbImagesCur()/3)*159;
	  
	  var animateFadeIn = {
		  opacity: { to: 0}       
	  };
	  
	  var animateFadeOut = {
		  opacity: { to:  1}       
	  };
			   
	  var animateDn = {
		  height: { to: heightAll}       
	  };  	 
				   
	  var animateUp = {
		  height: { to: heightCur}       
	  };   
	  
	  var attributes_prev = {
				scroll: { by: [-472*getNbPages(), YAHOO.util.Dom.get('box_anim_cartes').scrollTop] }
	   };
			
	  var anim_prev = new YAHOO.util.Scroll('box_anim_cartes', attributes_prev, 1.5, YAHOO.util.Easing.easeOut);
		  
	  var animationFadeOut = new Array();
	  var animationFadeIn = new Array();
	  
	  for (var i = getNbImagesCur() + 1; i <= getNbImagesAll(); i++){		  
		  animationFadeOut[i] = new YAHOO.util.Anim(i.toString(), animateFadeOut, 1.5, YAHOO.util.Easing.easeOutStrong); 
	  }	 
	  for (var i = getNbImagesCur() + 1; i <= getNbImagesAll(); i++){		  
		  animationFadeIn[i] = new YAHOO.util.Anim(i.toString(), animateFadeIn, 1.5, YAHOO.util.Easing.easeOutStrong); 
	  }	 
	  var animationUp = new YAHOO.util.Anim('box_cartes', animateUp, 1.5, YAHOO.util.Easing.easeOutStrong); 	 
	  var animationDn = new YAHOO.util.Anim('box_cartes', animateDn, 1.5, YAHOO.util.Easing.easeOutStrong); 	  

	  
	  	
	  YAHOO.util.Event.on('tobig', 'click', function() 
	  {		  	 
	  	 var elements = YAHOO.util.Dom.getElementsByClassName("une_carte_opaque", "img"); 
	  	 for (var i = 0; i < elements.length; i++)
		  {	
			  elements[i].style.display = "block";	 
		  }	
	  	
	  	 
		  for (var i = getNbImagesCur() + 1; i <= getNbImagesAll(); i++)
		  {	
			  animationFadeOut[i].animate();
		  }		  		 
		  animationDn.animate();
		  var postData = "type=9&langue="+getLangue();
		  var sUrl = "/assets/cartes.php"; 
		  YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackNav, postData);	
		  document.getElementById("box_cartes").className = "box_cartes all";		  
	});
	  
	  YAHOO.util.Event.on('tosmall', 'click', function() {			  
		  for (var i = getNbImagesCur() + 1; i <= getNbImagesAll(); i++){				  
			  animationFadeIn[i].animate();
		  }	
		  animationUp.animate();	
		  
		  var postData = "type=8&langue="+getLangue();
		  var sUrl = "/assets/cartes.php";
		  YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackNav, postData);
		  document.getElementById("box_cartes").className = "box_cartes";
	});	
	  animationUp.onComplete.subscribe(function() {		 
		  anim_prev.animate();
		  pagesAnimes = 1;
		  temp = 0;
	 });
	  animationDn.onStart.subscribe(function() {		 
		  anim_prev.animate();
		  pagesAnimes = 1;
		  temp = 0;
	 });
};

/**
 * récuperer toutes les images de la compagne actuelle
 */
function getCurrentPhotos(){
	nbreReceiver = 1;
	var sUrl = "/assets/cartes.php";
	indice = 0;		
	var postData = "type=1&flag=1&langue="+getLangue();
	var sUrl = "/assets/cartes.php";
	document.getElementById("type").value = 1;
	YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);	
}

/**
 * récuperer toutes les images des compagnes précédentes
 */
function getAllPhotos(){	
	indice = 0;		
	var postData = "type=1&flag=2&langue="+getLangue();
	var sUrl = "/assets/cartes.php";
	document.getElementById("type").value = 1;
	YAHOO.util.Dom.get('flagAllImages').value=1;
	YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);	
}

/**
 * xmlhttp reponse en success
 */
var handleSuccess = function(o) {  	    	       
    document.getElementById("php_res").innerHTML = o.responseText; 
    if (document.getElementById("box_cartes_slide") != null) animInit1(); 
    if (document.getElementById("tobig") != null) animInit3(); 
};

/**
 * xmlhttp reponse en success pour les animations des images
 */
var handleSuccessNav = function(o) {  	    	
	var res = o.responseText.split("@")
    document.getElementById("PageLink").innerHTML = res[0]; 
	document.getElementById("PageNav").innerHTML = res[1]; 
	if (document.getElementById("box_anim_cartes_inner") != null) animInit2();    
    if (document.getElementById("tobig") != null) animInit3(); 
    if (document.getElementById("tosmall") != null) animInit3(); 
};

/**
 * xmlhttp reponse en success pour les envoyes des messages
 */
var handleSuccessEmail = function(o) {  	    	       
    var res = o.responseText.split("@");
    if (res[0] == 0){
	  	var postData = "type=6&image="+res[1]+"&me="+res[2]+"&langue="+getLangue();;
		var sUrl = "/assets/cartes.php";
		YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
    }
    else {
    	if (getLangue() == "en") alert("Error sending the message.");
    	else alert("Erreur lors de l'envoi du message.");
    }
};

var handleSuccessAvecNav = function(o) {  	    
	var res = o.responseText.split("@");
    document.getElementById("php_res").innerHTML = res[0]; 
    //document.getElementById("php_res").innerHTML = o.responseText;
    //var temp = document.getElementById("slide_cards").innerHTML;
    //document.getElementById("slide_cards").innerHTML = res[1] + temp;
    if (document.getElementById("box_cartes_slide") != null) animInit1(); 
    if (document.getElementById("tobig") != null) animInit3(); 
    var postData = "type=10&flag="+res[1]+"&langue="+getLangue()+"&menus="+res[2];
	var sUrl = "/assets/cartes.php";
	YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackSliders, postData);	    
};

var handleSuccessSliders = function(o) { 
    var temp = document.getElementById("slide_cards").innerHTML;
    document.getElementById("slide_cards").innerHTML = o.responseText + temp; 
    if (document.getElementById("box_cartes_slide") != null) animInit1(); 
    if (document.getElementById("tobig") != null) animInit3();    
};

var handleFailure = function(o) {   
    alert("Submission failed: " + o.status);          
};


var callback = {        
	success:handleSuccess, 
	failure:handleFailure	
};

var callbackNav = {        
		success:handleSuccessNav, 
		failure:handleFailure	
	};

var callbackEmail = {        
		success:handleSuccessEmail, 
		failure:handleFailure	
	};
	
var callbackSliders = {        
		success:handleSuccessSliders, 
		failure:handleFailure	
	};

/**
 * selectionner une seule image pour visualiser
 */
function showPhoto(indice,isWithNav)
{
	var flag = document.getElementById('flagAllImages').value;
	document.getElementById("animatedPages").value = indice;
	var elements = YAHOO.util.Dom.getElementsByClassName("une_carte_opaque", "img"); 
  	for (var i = 0; i < elements.length; i++)
	{	
	  elements[i].style.display = "block";	 
	}
		 
	var postData = "type=3&image="+document.getElementById(indice).src+"&images="+document.getElementById("type").value+"&flag="+flag+"&langue="+getLangue()+"&isWithNav="+isWithNav;
	var sUrl = "/assets/cartes.php";
	
	if(isWithNav)
	{
		YAHOO.util.Connect.asyncRequest('POST', sUrl, callBackAvecNav, postData);		
	}
	else
	{
		YAHOO.util.Connect.asyncRequest('POST', sUrl, callBackSansNav, postData);		
	}
}

handleSuccessSansNav = function(o) {  	
	document.getElementById("primary_img").innerHTML = o.responseText; 	
}

var callBackSansNav = {        
	success:handleSuccessSansNav, 
	failure:handleFailure	
};

var callBackAvecNav = {        
	success:handleSuccessAvecNav, 
	failure:handleFailure	
};

/**
 * selectionner une image pour l'envoyer
 */
function selectPhoto(id,flag,index){		
	//nbreReceiver = 1;
	if (document.getElementById("i_subject") != null)
		var subject = document.getElementById("i_subject").value;
	else if (subject = document.getElementById("psubject") != null )
		var subject = document.getElementById("psubject").innerHTML;
	else var subject = "";
	if (document.getElementById("i_message") != null)
		var message = document.getElementById("i_message").value;
	else if (document.getElementById("pmessage") != null) 
		var message = document.getElementById("pmessage").innerHTML;
	else var message = "";
	if (document.getElementById("i_name") != null)
		var myname = document.getElementById("i_name").value;
	else myname = "";
	if (document.getElementById("i_email") != null) 
		var myemail = document.getElementById("i_email").value;
	else var myemail = "";
	var toname = new Array();
	var toemail = new Array();
	for (var i = 1; i <= nbreReceiver; i++){		
		var f = "i_name_friend"+i;		
		if (document.getElementById(f) != null)
			toname [i] = document.getElementById(f).value;
		else toname [i]  = "";
	}
	for (var i = 1; i <= nbreReceiver; i++){
		var f = "i_mail_friend"+i;			
		if (document.getElementById(f) != null)
			toemail [i] = document.getElementById(f).value;
		else toemail [i]  = "";
	}
	var friendsnames = toname.join("#");
	var friendsemails = toemail.join("#");
	if (document.getElementById("i_cc") != null) 
		var me = document.getElementById("i_cc").checked;
	else if (document.getElementById("pcc") != null) 
		var me = document.getElementById("pcc").value;
	else var me = false;
	var postData = "type=4&image="+document.getElementById(id).src+"&flag="+flag+"&index="+index+"&nbreReceiver="+nbreReceiver+"&subject="+subject+"&myname="+myname+"&myemail="+myemail+"&message="+message+"&friendsnames="+friendsnames+"&friendsemails="+friendsemails+"&me="+me+"&langue="+getLangue();
	var sUrl = "/assets/cartes.php";
	YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);	
}

/**
 * previsualiser le message
 */
function preview(id){	
	if (validate()){
		if (document.getElementById("i_subject") != null)
			var subject = document.getElementById("i_subject").value;
		else var subject = document.getElementById("psubject").innerHTML;
		var myname = document.getElementById("i_name").value;
		var myemail = document.getElementById("i_email").value;
		var message = document.getElementById("i_message").value;
		var toname = new Array();
		var toemail = new Array();
		for (var i = 1; i <= nbreReceiver; i++){
			var f = "i_name_friend"+i;		
			toname [i] = document.getElementById(f).value;
		}
		for (var i = 1; i <= nbreReceiver; i++){
			var f = "i_mail_friend"+i;		
			toemail [i] = document.getElementById(f).value;
		}
		var friendsnames = toname.join("#");
		var friendsemails = toemail.join("#");
		var me = document.getElementById("i_cc").checked;
		var postData = "type=5&image="+document.getElementById(id).src+"&subject="+subject+"&myname="+myname+"&myemail="+myemail+"&message="+message+"&friendsnames="+friendsnames+"&friendsemails="+friendsemails+"&me="+me+"&langue="+getLangue();
		var sUrl = "/assets/cartes.php";
		YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);	
	}
}

/**
 * envoyer le message
 */
function send(id){		
	if (validate()){
		if (document.getElementById("i_subject") != null)
			var subject = document.getElementById("i_subject").value;
		else var subject = document.getElementById("psubject").innerHTML;
		if (document.getElementById("i_message") != null)
			var message = document.getElementById("i_message").value;
		else var message = document.getElementById("pmessage").innerHTML;
		var myname = document.getElementById("i_name").value;
		var myemail = document.getElementById("i_email").value;
		var toname = new Array();
		var toemail = new Array();
		for (var i = 1; i <= nbreReceiver; i++){
			var f = "i_name_friend"+i;		
			toname [i] = document.getElementById(f).value;
		}
		for (var i = 1; i <= nbreReceiver; i++){
			var f = "i_mail_friend"+i;		
			toemail [i] = document.getElementById(f).value;
		}
		var friendsnames = toname.join("#");
		var friendsemails = toemail.join("#");
		if (document.getElementById("i_cc") != null) 
			var me = document.getElementById("i_cc").checked;
		else {
			var me = document.getElementById("pcc").value;			
		}
		var postData = "type=7&image="+document.getElementById(id).src+"&subject="+subject+"&myname="+myname+"&myemail="+myemail+"&message="+message+"&friendsnames="+friendsnames+"&friendsemails="+friendsemails+"&me="+me+"&langue="+getLangue();
		var sUrl = "/assets/cartes.php";
		YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackEmail, postData);	
	}	
}

/**
 * ajouter un nouveau contact pour recevoir la carte
 */
function addreceiver(){		
	var data1 = new Array();
	var data2 = new Array();	
	for (var i = 1; i <= nbreReceiver; i++){		
		var m = "i_mail_friend"+i;
		var n = "i_name_friend"+i;	
		data1[i] = document.getElementById(n).value;
		data2[i] = document.getElementById(m).value;
	}	
	nbreReceiver++;
	if (getLangue() == "en")
	{
		var strReceiverName	= "Recipient's name:";
		var strReceiverEmail= "Recipient's email address:";
	}
	else
	{
		var strReceiverName	= "Nom du destinataire :";
		var strReceiverEmail= "Courriel du destinataire :";
	}
	document.getElementById("sendto").innerHTML += 
		'<div class="i_dbl"><div class="i_txt"><label for="i_name_friend'+nbreReceiver+'">'+strReceiverName+'</label><input type="text" id="i_name_friend'+nbreReceiver+'" /></div><div class="i_txt right"><label for="i_mail_friend'+nbreReceiver+'">'+strReceiverEmail+'</label><input type="text" id="i_mail_friend'+nbreReceiver+'" /></div></div>';
	for (var i = 1; i < nbreReceiver; i++){
		var m = "i_mail_friend"+i;
		var n = "i_name_friend"+i;	
		document.getElementById(n).value = data1[i];
		document.getElementById(m).value = data2[i];
	}
}

/**
 * modifier le sujet de la carte
 */
function modifierSubj(flag){	
	if (getLangue() == "en") var sujet = "Email subject:";
	else var sujet = "Sujet du courriel :";
	if (1 == flag) var modif = '<a href="javascript:void(0);" onclick="back(888,4,);" class="bt_actions" title="Retour">Retour</a>';
	else var modif = '';
	var sbj = document.getElementById("psubject").innerHTML;	
	document.getElementById("subject").innerHTML = '<p class="bt_back absolute"></p><label for="i_subject">'+sujet+'</label><input type="text" id="i_subject" class="long" value="">';
	document.getElementById("i_subject").value = sbj;
}

/**
 * modifier le message à envoyer avec la carte
 */
function modifierMsg(){	
	if (getLangue() == "en") var message = "Your message:";
	else var message = "Votre message :";
	var msg = document.getElementById("pmessage").innerHTML;
	document.getElementById("message").innerHTML = '<label for="i_message">'+message+'</label><textarea cols="50" rows="10" id="i_message">'+msg+'</textarea>';
}

/**
 * nombre de pages formées par les images
 */
function getNbPages(){	
	if (document.getElementById("nbrePages") != null){
		var nb = parseInt(document.getElementById("nbrePages").value);	
		return nb;	
	}else return 1;
}

/**
 * nombre de pages formées par les images (slider)
 */
function getNbPagesFooter(){	
	if (document.getElementById("nbrePagesFooter") != null){
		var nb = parseInt(document.getElementById("nbrePagesFooter").value);	
		return nb;	
	}else return 1;
}

function getNbImagesAll(){	
	if (document.getElementById("nbreImagesPrec") != null){
		var nb = parseInt(document.getElementById("nbreImagesPrec").value);	
		return nb;	
	}else return 1;
}

function getNbImagesCur(){	
	if (document.getElementById("nbreImagesActu") != null){
		var nb = parseInt(document.getElementById("nbreImagesActu").value);	
		return nb;	
	}else return 1;
}

function back(id,index,flag){
	switch(index){
	case 1: getCurrentPhotos();	
	break;
	case 2: getAllPhotos();	
	break;
	case 3: selectPhoto(id,2);
	break;
	case 4: showPhoto(id,flag,true);		
	break;	
	}	
}

function setClick(i){
	temp = pagesAnimes;
	pagesAnimes = i;
	//alert(i);
}

function validate() {
	    
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var ok = 0;
    if (document.getElementById("i_name").value == "") {
    	if (getLangue() == "en") alert("Please enter your name.");
    	else alert("Veuillez inscrire votre nom");
        ok++;
    }else if (!filter.test(document.getElementById("i_email").value)) {
    	if (getLangue() == "en") alert("Please enter your valid e-mail.");
    	else alert("Veuillez inscrire une adresse courriel valide");
        ok++;
    }	
    else if (document.getElementById("i_name_friend1").value == "") {
    	if (getLangue() == "en") alert("Please enter at least the name of a recipient.");
    	else alert("Veuillez inscrire le nom d'au moins un destinataire");
        ok++;
    }	
    else if (!filter.test(document.getElementById("i_mail_friend1").value)) {
    	if (getLangue() == "en") alert("Please enter at least one valid e-mail of a recipient.");
    	else alert("Veuillez inscrire une adresse courriel valide pour au moins un destinataire.");
        ok++;
    }	    

    if (0 == ok){
        return true;
    }
    else {
        return false;
    }
};

YAHOO.util.Event.onDOMReady(getCurrentPhotos);
