// JavaScript Document

var facebookGlobalPageElement = new Array();

/*
	Vérification des composants nécessaires ŕ Ajax
*/
if( !window.XMLHttpRequest && window.ActiveXObject ) {
	window.XMLHttpRequest = function() { 
	var a = [ 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP.6.0' ], 
	i = a.length; while(i--) { 
	try { 
		return new ActiveXObject( a[i] ); 
	} catch (e) { } 
		} 
	return null; 
	}; 
} 

/*
  Remplace toutes les occurences d'une chaine
*/
function strReplaceAll(str, search, repl) {
  while (str.indexOf(search) != -1) 
    str = str.replace(search, repl);
  return str;
}

String.prototype.strReplaceSpace = function () {
   return this.replace(/\s*/g,"");
}

/*
	Login du user a facebook, avec permission
*/
function facebookLogin(siteId, subsidiaryCode) {
	FB.login(function(response) {
	  if (response.session) {
	    if (response.perms) {
		    // user successfully logged in
				facebookIsLogin(siteId, subsidiaryCode);
	    } else {
	      // user is logged in, but did not grant any permissions
	    }
	  } else {
	    // user is not logged in
	  }
	}, {perms:'publish_stream'});
}

/*
	Si user loggue alors chargement des donnees
*/
function facebookIsLogin(siteId, subsidiaryCode) {
	for (var itemPageElement in facebookGlobalPageElement) {
	 	var elementName = facebookGlobalPageElement[itemPageElement]['elementName'];
	 	var elementIdentifier = facebookGlobalPageElement[itemPageElement]['elementIdentifier'];
	 	var fieldsNameLike = facebookGlobalPageElement[itemPageElement]['fieldsNameLike'];
	 	var fieldsNameOpinions = facebookGlobalPageElement[itemPageElement]['fieldsNameOpinions'];
	 	// alert(elementName + ' : '  + elementIdentifier);
	 	if (elementName!='bbrtest') {
		    loadLike(siteId, subsidiaryCode, elementName, elementIdentifier, fieldsNameLike);
		}
		loadOpinions(siteId, subsidiaryCode, elementName, elementIdentifier, fieldsNameOpinions);
	}
}

/*
	Loading du bloc like
*/
function loadLike(siteId, subsidiaryCode, elementName, elementIdentifier, fieldsName) {
	// si loguer
	FB.getLoginStatus(function(response) {
	  if (response.session) {
	    // logged in and connected user, someone you know
			FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
				var user = new Array();
				user = response;
				FB.api('/me/friends/?fields=id,name,picture'
					, function(response) {
				  if (!response || response.error) {
				    // alert('Error occured');
				  } else {
				  	var friends = new Array();
			    	for (var obj in response){
				    	for (var obj2 in response[obj]){
								friends[obj2] = response[obj][obj2];
							}
						}
						// mise a jour du bloc like
						getLike(siteId, subsidiaryCode, elementName, elementIdentifier, user, friends, fieldsName);
				  }
				});
			});
	  } else {
	    // no user session available, someone you dont know
			var user = new Array();
			var friends = new Array();
			getLike(siteId, subsidiaryCode, elementName, elementIdentifier, user, friends, fieldsName);
	  }
	});
}

/*
	Loading du bloc opinions
*/
function loadOpinions(siteId, subsidiaryCode, elementName, elementIdentifier, fieldsName) {
	// si loguer
	FB.getLoginStatus(function(response) {
	  if (response.session) {
	    // logged in and connected user, someone you know
			FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
				var user = new Array();
				user = response;
				FB.api('/me/friends/?fields=id,name,picture'
					, function(response) {
				  if (!response || response.error) {
				    // alert('Error occured');
				  } else {
				  	var friends = new Array();
			    	for (var obj in response){
				    	for (var obj2 in response[obj]){
								friends[obj2] = response[obj][obj2];
							}
						}
						// mise a jour des infos persos
						document.getElementById(fieldsName[0]).style.display = 'none';
						if (document.getElementById(fieldsName[1]).className.indexOf('Loguer') < 0) {
							document.getElementById(fieldsName[1]).className = document.getElementById(fieldsName[1]).className + 'Loguer';
						}
						if (document.getElementById(fieldsName[2]).className.indexOf('Loguer') < 0) {
							document.getElementById(fieldsName[2]).className = document.getElementById(fieldsName[2]).className + 'Loguer';
						}
						document.getElementById(fieldsName[3]).innerHTML = '<img src="' + user['picture'] + '" width="50" height="50" alt="' + strReplaceAll(user['name'], '"', '&quot;') + '" />';
						document.getElementById(fieldsName[4]).innerHTML = user['name'] + ' :';
						document.getElementById(fieldsName[5]).className = 'facebookLogo2';						
						// mise a jour du bloc avis conso
						getOpinions(siteId, subsidiaryCode, elementName, elementIdentifier, user, friends, fieldsName, '0');
				  }
				});
			});
	  } else {
	    // no user session available, someone you dont know
			var user = new Array();
			var friends = new Array();
			getOpinions(siteId, subsidiaryCode, elementName, elementIdentifier, user, friends, fieldsName, '0');
	  }
	});
}

/*
	Chargement du contenu du bloc like
*/
function getLike(siteId, subsidiaryCode, elementName, elementIdentifier, user, friends, fieldsName) {
	var sError = '';
  var xhr_object = null;
	if( window.XMLHttpRequest ) { 
		xhr_object = new XMLHttpRequest(); 
	} 
	if( !xhr_object ) { 
		alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest, merci d\'utiliser la derni\350re version d\'Internet Explorer ou de Firefox'); 
	}
  if (xhr_object) {
    xhr_object.open("POST", "/scripts/viral/getLikes.aspx", true);   
    var parameters = "id_site=" + siteId;
    parameters+="&code_subsidiary=" + subsidiaryCode;
    parameters+="&element_name=" + elementName;
    parameters+="&element_identifier=" + elementIdentifier;
    if (user['id']) {
	    parameters+="&user_facebook_id=" + user['id'];
	  }	  
    var friendsInfos = new Array();
    var friendsId = '';
    if (friends) {
	    for (var friend in friends){
	    	var infos = '';
	    	var friend_id = '';
	    	for (var info in friends[friend]){
		    	if (info == "id") {
		    		friend_id = friends[friend][info];
		    		friendsId += ',' + friend_id;
		    	}
		    }
		    friendsInfos[friend_id] = friends[friend];
	    }
	    if (friendsId != '') {
		    parameters+="&friends_facebook_id=" + friendsId.substring(1);
		  }
		}
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.setRequestHeader("Content-length", parameters.length);
    xhr_object.setRequestHeader("Connection", "close");
    // alert(parameters);
		xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) {
      	if (xhr_object.status == 200) {
      		var content;
      		content = xhr_object.responseText;
      		content = content.split('|');
      		if (content[0]) {
     				if (content[0] == "1") {
     					document.getElementById(fieldsName[0]).className = "facebookBtLikeActif";
							document.getElementById(fieldsName[0]).onclick = function onclick(event) { setLike(siteId,subsidiaryCode,elementName,elementIdentifier,'0',fieldsName) }; 
						}
						else {
     					document.getElementById(fieldsName[0]).className = "facebookBtLike";
							document.getElementById(fieldsName[0]).onclick = function onclick(event) { setLike(siteId,subsidiaryCode,elementName,elementIdentifier,'1',fieldsName) }; 
     				}
     			}
     			var contentText = '';
     			if (content[1]) {
						contentText = content[1];		      		
					}
					document.getElementById(fieldsName[2]).innerHTML = "";
      		if ((content[0]) && (content[2])) {
      			// ajout info perso dans tableau des amis
      			var tmp = new Array();
      			tmp['name'] = user['name'];
      			tmp['picture'] = user['picture'];
      			friendsInfos[user['id']] = tmp;
      			//
      			var contentFriendImg = '';
      			var contentFriend = content[2];
      			contentFriend = contentFriend.split(',');
      			for (i=0; i<contentFriend.length; i++) {
      				contentFriendImg = contentFriendImg + '<a href="http://www.facebook.com/profile.php?id=' + contentFriend[i] + '" target="_blank"><img src="' + friendsInfos[contentFriend[i]]['picture'] + '" width="30" height="30" border="0" alt="' + strReplaceAll(friendsInfos[contentFriend[i]]['name'], '"', '&quot;') + '" title="' + strReplaceAll(friendsInfos[contentFriend[i]]['name'], '"', '&quot;') + '" /></a>';
							if (((i == 0) && (content[0] == "0")) || ((i == 1) && (content[0] == "1"))) {
								contentText = contentText.replace('[friend1]', friendsInfos[contentFriend[i]]['name']);
							}
							if (((i == 1) && (content[0] == "0")) || ((i == 2) && (content[0] == "1"))) {
								contentText = contentText.replace('[friend2]', friendsInfos[contentFriend[i]]['name']);
							}
      			}
      			document.getElementById(fieldsName[2]).innerHTML = contentFriendImg;
      		}
     			if (content[1]) {
	      		document.getElementById(fieldsName[1]).innerHTML = contentText;			      		
					}
        }
        else { 
          sError+="Error: returned status code " + 
          xhr_object.status + " " + xhr_object.statusText; 
          // alert(sError);
        } 
      }
    }
    xhr_object.send(parameters);
  }
}

/*
	Enregistrement des preferences du user sur ce produit
*/
function setLike(siteId, subsidiaryCode, elementName, elementIdentifier, itemLike, fieldsName) {
	FB.getLoginStatus(function(response) {
	  if (response.session) {
	    // user successfully logged in
			/*
				Post du message sur le mur facebook du user
			*/
			if (itemLike == "1") {
				// j'aime
				var postMessage = 'aime \347a';
				var postName = document.getElementById('facebook_title_' + elementName + '_' + elementIdentifier).value;
				var postPicture = document.getElementById('facebook_picture_' + elementName + '_' + elementIdentifier).value;
				var postLink = document.getElementById('facebook_link_' + elementName + '_' + elementIdentifier).value;
				var postCaption = location.hostname;
				var postDescription = document.getElementById('facebook_description_' + elementName + '_' + elementIdentifier).value;
				FB.api('/me/feed', 'post', 
			    {
			        message: postMessage,
			        name: postName,
			        picture: postPicture,
			        link: postLink,
			        caption: postCaption,
			        description: postDescription
			    }
					, function(response) {
				  if (!response || response.error) {
				  	// alert('Error occured');
						/*
							Stockage en base des preferences du user si post facebook hs
						*/
						FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
							var user = new Array();
							user = response;
							setLikeBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, '', fieldsName);
						});
				  } else {
				    // alert('Post ID: ' + response);
				    var postFacebookId = '';
			    	for (var obj in response) {
			    		if (obj == 'id') {
				    		postFacebookId = response[obj];
				    	}
						}
						/*
							Stockage en base des preferences du user si post facebook ok
						*/
						FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
							var user = new Array();
							user = response;
							setLikeBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, postFacebookId, fieldsName);
						});
				  }
				});
			}
			else {
				// j'aime plus
				FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
					var user = new Array();
					user = response;
					setLikeBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, '', fieldsName);
				});
			}
	  } else {
	    // user is not logged in
			FB.login(function(response) {
			  if (response.session) {
			    if (response.perms) {
				    // user successfully logged in
				    facebookIsLogin(siteId, subsidiaryCode);
						setLike(siteId, subsidiaryCode, elementName, elementIdentifier, itemLike, fieldsName);
			    } else {
			      // user is logged in, but did not grant any permissions
			    }
			  } else {
			    // user is not logged in
			  }
			}, {perms:'publish_stream'});
	  }
	});
}

/*
	Enregistrement en base des preferences du user sur ce produit
*/
function setLikeBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, postFacebookId, fieldsName) {
	var sError = '';
  var xhr_object = null;
	if( window.XMLHttpRequest ) { 
		xhr_object = new XMLHttpRequest(); 
	} 
	if( !xhr_object ) { 
		alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest, merci d\'utiliser la derni\350re version d\'Internet Explorer ou de Firefox'); 
	}
  if (xhr_object) {
    xhr_object.open("POST", "/scripts/viral/setLike.aspx", true);
    var parameters = "id_site=" + siteId;
    parameters+="&code_subsidiary=" + subsidiaryCode;
    parameters+="&element_name=" + elementName;
    parameters+="&element_identifier=" + elementIdentifier;
    if (user['id']) {
	    parameters+="&user_facebook_id=" + user['id'];
	  }
	  if (postFacebookId) {
	    parameters+="&post_facebook_id=" + postFacebookId;
	  }
    parameters+="&like=" + itemLike;
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.setRequestHeader("Content-length", parameters.length);
    xhr_object.setRequestHeader("Connection", "close");
    // alert(parameters);
		xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) {
      	if (xhr_object.status == 200) {
      		// alert(xhr_object.responseText);
      		if (xhr_object.responseText == "") {
    				loadLike(siteId, subsidiaryCode, elementName, elementIdentifier, fieldsName);
      		}
        } 
        else { 
          sError+="Error: returned status code " + 
          xhr_object.status + " " + xhr_object.statusText; 
          // alert(sError);
        } 
      }
    }
    xhr_object.send(parameters);
  }
}

/*
	Chargement de la liste des avis conso du produit
*/
function getOpinions(siteId, subsidiaryCode, elementName, elementIdentifier, user, friends, fieldsName, allOpinions) {
	var sError = '';
  var xhr_object = null;
	if( window.XMLHttpRequest ) { 
		xhr_object = new XMLHttpRequest(); 
	} 
	if( !xhr_object ) { 
		alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest, merci d\'utiliser la derni\350re version d\'Internet Explorer ou de Firefox'); 
	}
  if (xhr_object) {
    xhr_object.open("POST", "/scripts/viral/getOpinions.aspx", true);
    var parameters = "id_site=" + siteId;
    parameters+="&code_subsidiary=" + subsidiaryCode;
    parameters+="&element_name=" + elementName;
    parameters+="&element_identifier=" + elementIdentifier;
    if (user['id']) {
	    parameters+="&user_facebook_id=" + user['id'];
	  }
	  parameters+="&all=" + allOpinions;
    var friendsInfos = new Array();
    var friendsId = '';
    if (friends) {
	    for (var friend in friends){
	    	var infos = '';
	    	var friend_id = '';
	    	for (var info in friends[friend]){
		    	if (info == "id") {
		    		friend_id = friends[friend][info];
		    		friendsId += ',' + friend_id;
		    	}
		    }
		    friendsInfos[friend_id] = friends[friend];
	    }
	    if (friendsId != '') {
		    parameters+="&friends_facebook_id=" + friendsId.substring(1);
		  }
		}		
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.setRequestHeader("Content-length", parameters.length);
    xhr_object.setRequestHeader("Connection", "close");
    // alert(parameters);
		xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) {
      	if (xhr_object.status == 200) {
      		if (xhr_object.responseText != "") {
	      		var content;
	      		content = xhr_object.responseText;	      		
      		    var html1 = '';
                var html2 = '';
                var html3 = '';
                var html4 = '';
                var html5 = '';
                var html6 = '';
                var html7 = '';
	            var html8 = ''; 
	            if (content != "") {
	      		    if (elementName=='bbrtest') {
		      		    html1 += '<li>\n';
	                    html1 += '	<div class="communityAvatar">';
	                    html2 += '</div>\n';
	                    html2 += '	<div class="communityCommentTexte">\n'; 
	                    html2 += '			<div class="communityPseudo">'; 
	                    //html3 += '				<a class="facebookLogo2"></a>\n'; 
	                    html3 += ' on '
	                    html4 += '</div>\n';   //on ferme communityPseudo
	                    html4 += '			<div class="communityComment">\n'; 
	                    html5 += '			</div>\n';  
	                    html6 += '		</div>\n';  
	                    html6 += '	</li>\n';
	      		    }
	      		    else {
	      		        if (elementName == 'product') {
		      		        html1 += '<div class="facebookBlocAvis facebookBlocAvisCourt">\n';
		      	        }
		      	        else {
		      		        html1 += '<div class="facebookBlocAvis facebookBlocAvisLong">\n';
		      	        }
	                    html1 += '	<div class="facebookImgAvis">';
	                    html2 += '</div>\n';
	                    html2 += '	<div class="facebookSousBlocAvis">\n'; 
	                    html2 += '		<div class="facebookBlocNomAvis">\n'; 
	                    html2 += '			<div class="facebookNomAvis">'; 
	                    html3 += '</div>\n';                                    	
	                    html3 += '				<a class="facebookLogo2"></a>\n'; 
	                    html3 += '			</div>\n'; 
	                    html3 += '			<div class="facebookDateAvis">'; 
	                    html4 += '</div>\n';  
	                    html4 += '			<div class="facebookTexteAvis">\n'; 
	                    html5 += '			</div>\n';  
	                    html6 += '		</div>\n';  
	                    html6 += '	</div>\n';
	                    if (user['id']) {
	            	        if (elementName == 'product') {
			                    html7 += '<div class="facebookBlocVoirTousCommentaires facebookBlocVoirTousCommentairesCourt">\n';
			                }
			                else {
			                    html7 += '<div class="facebookBlocVoirTousCommentaires facebookBlocVoirTousCommentairesLong">\n';			          	
			                }
		                    html7 += '	<div class="facebookVoirTousCommentaires"><a href="javascript:void(0);" onclick="" id="facebookVoirTousCommentaires">';
		                }
	                }
				    if (user['id']) {
	          	      html8 += '</a></div>\n';
	            	    html8 += '	<div class="facebookVoirTousCommentairesPicto"></div>\n';
	           		    html8 += '</div>\n';
	           	    }
	           	
	                content = strReplaceAll(content, "[html1]", html1);
	                content = strReplaceAll(content, "[html2]", html2);
	                content = strReplaceAll(content, "[html3]", html3);
	                content = strReplaceAll(content, "[html4]", html4);
	                content = strReplaceAll(content, "[html5]", html5);
	                content = strReplaceAll(content, "[html6]", html6);
	                content = strReplaceAll(content, "[html7]", html7);
	                content = strReplaceAll(content, "[html8]", html8);
	                content = content + '<!-- opinions ajax end -->';
	            
	            var oldcontent = document.getElementById(fieldsName[6]).innerHTML;
	            if (oldcontent.indexOf('<!-- opinions ajax end -->') > 0) {
		            oldcontent = oldcontent.substr(26 + oldcontent.indexOf('<!-- opinions ajax end -->'));
							}           
	            document.getElementById(fieldsName[6]).innerHTML = content + oldcontent;
	            if (user['id']) {
	            	if (document.getElementById('facebookVoirTousCommentaires')) {
		 							document.getElementById('facebookVoirTousCommentaires').onclick = function onclick(event) { getOpinions(siteId,subsidiaryCode,elementName,elementIdentifier,user,friends,fieldsName,'1') }; 
								}
	 						}
	          }
	        }
        } 
        else { 
          sError+="Error: returned status code " + 
          xhr_object.status + " " + xhr_object.statusText; 
          // alert(sError);
        } 
      }
    }
    xhr_object.send(parameters);
  }
}

/*
	Enregistrement de l avis du user sur ce produit
*/
function setOpinion(siteId, subsidiaryCode, elementName, elementIdentifier, fieldsName) {
	document.getElementById(fieldsName[2]).style.visibility = 'hidden';
	var postMessage = document.getElementById(fieldsName[1]).value;
	// controle message non vide
	if (postMessage.strReplaceSpace().length <= 0) {
		// alert('Invalid comment...');
		document.getElementById(fieldsName[2]).style.visibility = 'visible';
		return;
	}
	// controle message different du texte par defaut
	if (document.getElementById(fieldsName[1]).onfocus) {
		var funcFocus = document.getElementById(fieldsName[1]).onfocus + '';
		if (funcFocus.indexOf("'")) {
			if (postMessage.strReplaceSpace() == funcFocus.substring(funcFocus.indexOf("'") + 1, funcFocus.lastIndexOf("'")).strReplaceSpace()) {
				document.getElementById(fieldsName[1]).value = '';
				document.getElementById(fieldsName[2]).style.visibility = 'visible';
				return;
			}
		}
	}
	// ici qu'on teste si account salomon ou facebook puis save bdd
	FB.getLoginStatus(function(response) {
	  if (response.session) {
	    // user successfully logged in
			/*
				Post du message sur le mur facebook du user
			*/			
			var postName = document.getElementById('facebook_title_' + elementName + '_' + elementIdentifier).value;
			var postPicture = document.getElementById('facebook_picture_' + elementName + '_' + elementIdentifier).value;
			var postLink = document.getElementById('facebook_link_' + elementName + '_' + elementIdentifier).value;
			var postCaption = location.hostname;
			var postDescription = document.getElementById('facebook_description_' + elementName + '_' + elementIdentifier).value;
			FB.api('/me/feed', 'post', 
		    {
		        message: postMessage,
		        name: postName,
		        picture: postPicture,
		        link: postLink,
		        caption: postCaption,
		        description: postDescription
		    }
				, function(response) {
			  if (!response || response.error) {
			    // alert('Error occured');
					/*
						Stockage en base du commentaire du user si post facebook hs
					*/
					FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
						var user = new Array();
						user = response;
						setOpinionBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, postMessage, '', fieldsName);
					});
			  } else {
			    // alert('Post ID: ' + response);
			    var postFacebookId = '';
		    	for (var obj in response) {
		    		if (obj == 'id') {
			    		postFacebookId = response[obj];
			    	}
					}
					/*
						Stockage en base du commentaire du user si post facebook ok
					*/
					FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
						var user = new Array();
						user = response;
						setOpinionBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, postMessage, postFacebookId, fieldsName);
					});
			  }
			});
	  } else {
	    // user is not logged in
	    /*
			FB.login(function(response) {
			  if (response.session) {
			    if (response.perms) {
				    // user successfully logged in
				    setOpinion(siteId, subsidiaryCode, elementName, elementIdentifier);
			    } else {
			      // user is logged in, but did not grant any permissions
			    }
			  } else {
			    // user is not logged in
			  }
			}, {perms:'publish_stream'});
			*/
			document.getElementById(fieldsName[0]).className = 'btFacebookConnectActif';
			document.getElementById(fieldsName[2]).style.visibility = 'visible';
	  }
	});
}

/*
	Enregistrement en base de l avis du user sur ce produit
*/
function setOpinionBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, postMessage, postFacebookId, fieldsName) {
	var sError = '';
  var xhr_object = null;
	if( window.XMLHttpRequest ) { 
		xhr_object = new XMLHttpRequest(); 
	} 
	if( !xhr_object ) { 
		alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest, merci d\'utiliser la derni\350re version d\'Internet Explorer ou de Firefox'); 
	}
  if (xhr_object) {
    xhr_object.open("POST", "/scripts/viral/setOpinion.aspx", true);
    var parameters = "id_site=" + siteId;
    parameters+="&code_subsidiary=" + subsidiaryCode;
    parameters+="&element_name=" + elementName;
    parameters+="&element_identifier=" + elementIdentifier;    
    if (user['id']) {
	    parameters+="&user_facebook_id=" + user['id'];
	  }
	  if (user['name']) {
    	parameters+="&title=" + user['name'];
    }
	  if (user['last_name']) {
    	parameters+="&lastname=" + user['last_name'];
    }
	  if (user['first_name']) {
    	parameters+="&firstname=" + user['first_name'];
    }
    if (user['picture']) {
    	parameters+="&picture=" + user['picture'];
    }    
    parameters+="&opinion=" + postMessage;
	  if (postFacebookId) {
	    parameters+="&post_facebook_id=" + postFacebookId;
	  }
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.setRequestHeader("Content-length", parameters.length);
    xhr_object.setRequestHeader("Connection", "close");
    // alert(parameters);
		xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) {
      	if (xhr_object.status == 200) {
      		if (xhr_object.responseText == "") {
						// post ok
						document.getElementById(fieldsName[1]).value = '';
						window.location.href = '#bas';
						document.getElementById(fieldsName[2]).style.visibility = 'visible';
						facebookIsLogin(siteId, subsidiaryCode);
      		}
        } 
        else { 
          sError+="Error: returned status code " + 
          xhr_object.status + " " + xhr_object.statusText; 
          // alert(sError);
        } 
      }
    }
    xhr_object.send(parameters);
  }
}

/*
	Enregistrement des preferences du user sur un commentaire du produit
*/
function setLikeComment(siteId, subsidiaryCode, elementName, elementIdentifier, postId, postFacebookId, itemLike) {
	FB.getLoginStatus(function(response) {
	  if (response.session) {
	    // user successfully logged in
	    if (postFacebookId != "") {
		    var likeMethod = '';
		    if (itemLike == '0') {
		    	likeMethod = '/?method=delete';
		    }
		    // alert('/' + postFacebookId + '/likes' + likeMethod);
				FB.api('/' + postFacebookId + '/likes' + likeMethod, 'post',
				  {}
					, function(response) {
				  if (!response || response.error) {
				    // alert('Error occured');
						/*
							Stockage en base des preferences du user meme si pas de post facebook
						*/
						FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
							var user = new Array();
							user = response;
							setLikeCommentBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, postId, postFacebookId, itemLike);
						});
				  } else {
				    // alert('Post ID: ' + response);
						/*
							Stockage en base des preferences du user si post facebook ok
						*/
						FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
							var user = new Array();
							user = response;
							setLikeCommentBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, postId, postFacebookId, itemLike);
						});
				  }
				});
			}
			else {
				/*
					Stockage en base des preferences du user meme si pas de post facebook
				*/
				FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
					var user = new Array();
					user = response;
					setLikeCommentBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, postId, postFacebookId, itemLike);
				});
			}
	  } else {
	    // user is not logged in
	  }
	});
}

/*
	Enregistrement en base des preferences du user sur un commentaire du produit
*/
function setLikeCommentBdd(siteId, subsidiaryCode, elementName, elementIdentifier, user, itemLike, postId, postFacebookId, itemLike) {
	var sError = '';
  var xhr_object = null;
	if( window.XMLHttpRequest ) { 
		xhr_object = new XMLHttpRequest(); 
	} 
	if( !xhr_object ) { 
		alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest, merci d\'utiliser la derni\350re version d\'Internet Explorer ou de Firefox'); 
	}
  if (xhr_object) {
    xhr_object.open("POST", "/scripts/viral/setOpinionLike.aspx", true);
    var parameters = "id_site=" + siteId;
    parameters+="&code_subsidiary=" + subsidiaryCode;
    parameters+="&element_name=" + elementName;
    parameters+="&element_identifier=" + elementIdentifier;
    if (user['id']) {
	    parameters+="&user_facebook_id=" + user['id'];
	  }
    parameters+="&post_id=" + postId;
    parameters+="&like=" + itemLike;
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.setRequestHeader("Content-length", parameters.length);
    xhr_object.setRequestHeader("Connection", "close");
    // alert(parameters);
		xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) {
      	if (xhr_object.status == 200) {
      		// alert(xhr_object.responseText);
      		if (xhr_object.responseText == "") {
      			if (itemLike == "1") {
	    				document.getElementById('facebook_' + postId).className = "facebookBtLikeActif";
							document.getElementById('facebook_' + postId).onclick = function onclick(event) { setLikeComment(siteId,subsidiaryCode,elementName,elementIdentifier,postId,postFacebookId,'0') }; 
						}
						else {
	    				document.getElementById('facebook_' + postId).className = "facebookBtLike";
							document.getElementById('facebook_' + postId).onclick = function onclick(event) { setLikeComment(siteId,subsidiaryCode,elementName,elementIdentifier,postId,postFacebookId,'1') }; 							
						}
      		}
        } 
        else { 
          sError+="Error: returned status code " + 
          xhr_object.status + " " + xhr_object.statusText; 
          // alert(sError);
        } 
      }
    }
    xhr_object.send(parameters);
  }
}

/*
	Loading du bloc opinions
*/
function loadOpinionFriend(siteId, subsidiaryCode, elementName, fieldsName) {
	// si loguer
	FB.getLoginStatus(function(response) {
	  if (response.session) {
	    // logged in and connected user, someone you know
			FB.api('/me/?fields=id,name,last_name,birthday,first_name,link,picture', function(response) {
				var user = new Array();
				user = response;
				FB.api('/me/friends/?fields=id,name,picture'
					, function(response) {
				  if (!response || response.error) {
				    // alert('Error occured');
				  } else {
				  	var friends = new Array();
			    	for (var obj in response){
				    	for (var obj2 in response[obj]){
								friends[obj2] = response[obj][obj2];
							}
						}
						var sError = '';
					  var xhr_object = null;
						if( window.XMLHttpRequest ) { 
							xhr_object = new XMLHttpRequest(); 
						} 
						if( !xhr_object ) { 
							alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest, merci d\'utiliser la derni\350re version d\'Internet Explorer ou de Firefox'); 
						}
					  if (xhr_object) {
					    xhr_object.open("POST", "/scripts/viral/getOpinionAlone.aspx", true);
					    var parameters = "id_site=" + siteId;
					    parameters+="&code_subsidiary=" + subsidiaryCode;
					    parameters+="&element_name=" + elementName;
					    if (user['id']) {
						    parameters+="&user_facebook_id=" + user['id'];
						  }
					    var friendsInfos = new Array();
					    var friendsId = '';
					    if (friends) {
						    for (var friend in friends){
						    	var infos = '';
						    	var friend_id = '';
						    	for (var info in friends[friend]){
							    	if (info == "id") {
							    		friend_id = friends[friend][info];
							    		friendsId += ',' + friend_id;
							    	}
							    }
							    friendsInfos[friend_id] = friends[friend];
						    }
						    if (friendsId != '') {
							    parameters+="&friends_facebook_id=" + friendsId.substring(1);
							  }
							}		
					    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					    xhr_object.setRequestHeader("Content-length", parameters.length);
					    xhr_object.setRequestHeader("Connection", "close");
					    // alert(parameters);
							xhr_object.onreadystatechange = function() {
					      if(xhr_object.readyState == 4) {
					      	if (xhr_object.status == 200) {
					      		if (xhr_object.responseText != "") {
						      		var content;
						      		content = xhr_object.responseText;
						      		if (content != "") {
							      		var html1 = '';
							      		html1 += '<div class="blocCommentairesTitre">';
							      		var html2 = '';
						            html2 += '</div>\n';
						            html2 += '<div class="blocCommentairesIcone">';
						            var html3 = '';
						            html3 += '</div>\n';
						            html3 += '	<div class="blocCommentairesNomLike">\n'; 
						            html3 += '		<div class="blocCommentairesNom">'; 
						            var html4 = '';
						            html4 += '</div>\n';                                    	
						            html4 += '		<a class="facebookLogo2"></a>\n'; 
						            html4 += '		<div class="blocCommentairesProduit">'; 
						            var html5 = '';
						            html5 += '</div>\n';  
						            html5 += '		<div class="blocCommentairesTexte">'; 
						            var html6 = '';
						            html6 += '</div>\n';
						            html6 += '		<div class="blocCommentairesLireSuite">';
						            var html7 = '';
						            html7 += '</div>\n';  
						            html7 += '		<div class="blocCommentairesLike">\n';
						            var html8 = '';
						            html8 += '</div>\n';
						            html8 += '</div>\n';  
						            html8 += '<div class="clear"><span></span></div>\n'; 
						            content = strReplaceAll(content, "[html1]", html1);
						            content = strReplaceAll(content, "[html2]", html2);
						            content = strReplaceAll(content, "[html3]", html3);
						            content = strReplaceAll(content, "[html4]", html4);
						            content = strReplaceAll(content, "[html5]", html5);
						            content = strReplaceAll(content, "[html6]", html6);
						            content = strReplaceAll(content, "[html7]", html7);
						            content = strReplaceAll(content, "[html8]", html8);
						            document.getElementById(fieldsName[0]).innerHTML = content;
												document.getElementById(fieldsName[0]).style.display = 'block';
												Cufon.replace('#accueilColonneDroite .blocCommentairesTitre', { fontFamily: 'InterstateRegularWeb'});
    										Cufon.now();
						          }
						        }
					        } 
					        else { 
					          sError+="Error: returned status code " + 
					          xhr_object.status + " " + xhr_object.statusText; 
					          // alert(sError);
					        } 
					      }
					    }
					    xhr_object.send(parameters);
					  }

				  }
				});
			});
	  } else {
	    // no user session available, someone you dont know
	  }
	});
}

/*
	Gestion preremplissage champ de formulaire
*/
function clearInputText(oinput, defaultext) {
	if (oinput.value == defaultext) oinput.value = "";
}
function displayInputText(oinput, defaultext) {
	if (oinput.value == "") oinput.value = defaultext;
}
