/**
	C-C JAVASCRIPTS V1.0
**/

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

var ns4 = (document.layers)? true:false;         	//NS 4
var ie4 = (document.all)? true:false;         		//IE 4
var dom = (document.getElementById)? true:false;   	//NS 6 ou IE 5

function CC_Encode64 (input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function CC_Decode64 (input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

	function CC_Post_Commentaire_Element (div, url, element, type, dossier) {
	   
	   if (document.getElementById('cc-titrecommentaire')) var titre = document.getElementById('cc-titrecommentaire').value;
	   if (document.getElementById('cc-textecommentaire')) var commentaire = document.getElementById('cc-textecommentaire').value;
	   if (document.getElementById('cc-notecommentaire')) var note= document.getElementById('cc-notecommentaire').value;
	   
	   if (document.getElementById('cc-membrecommentaire')) {
	   		var membre = (document.getElementById('cc-membrecommentaire').checked) ? 'O' : 'N';
		} else {
			var membre = 'N';
		}
	   
	   if (document.getElementById('cc-privecommentaire')) {
	   		var prive = (document.getElementById('cc-privecommentaire').checked) ? 'O' : 'N';
		} else {
			var prive = 'N';
		}

	   var parametresurl = 'cc-url=' + escape(cchttpurl) + escape('/cc_api.php');
	   parametresurl 	+= '&cc-api=formcommentaireelement&cc-titrecommentaire=' + escape(titre);
	   parametresurl 	+= '&cc-textecommentaire=' + escape(commentaire);
	   parametresurl 	+= '&cc-uid=' + escape(uid);
	   parametresurl 	+= '&cc-elementcommentaire=' + escape(element);
	   parametresurl 	+= '&cc-urlcommentaire=' + escape(url);
	   parametresurl 	+= '&cc-pseudo=' + escape(pseudo);
	   parametresurl 	+= '&cc-dossiercommentaire=' + escape(dossier);
	   parametresurl 	+= '&cc-typecommentaire=' + escape(type);
	   parametresurl 	+= '&cc-membrecommentaire=' + escape(membre);
	   parametresurl 	+= '&cc-privecommentaire=' + escape(prive);
	   parametresurl 	+= '&cc-notecommentaire=' + escape(note);
	   parametresurl 	+= '&cc-tag=' + escape(tag);
	   parametresurl 	+= '&cc-mode=' + escape(mode);
	   parametresurl 	+= '&cc-displaydivformcommentaireelement=1';

	   // alert (parametresurl);

	   var query = 'cc-parametresurl=' + CC_Encode64(parametresurl);

	   CC_Ajax_MAJ_Div (div, httpurl + '/cc_get_url.php', query);
	   // var p = new Pause(5);
	   // CC_MAJ_Commentaires_Element (div);
	}

	function CC_MAJ_Commentaires_Element (div, url, element) {
	   
	   var parametresurl = 'cc-url=' + escape(cchttpurl) + escape('/cc_api.php');
	   parametresurl 	+= '&cc-api=commentaireselement&cc-uid=' + escape(uid);
	   parametresurl 	+= '&cc-elementcommentaire=' + escape(element);
	   parametresurl 	+= '&cc-urlcommentaire=' + escape(url);
	   parametresurl 	+= '&cc-pseudo=' + escape(pseudo);
	   //  parametresurl 	+= '&cc-dossier=' + escape(dossier);
	   parametresurl 	+= '&cc-tag=' + escape(tag);
	   parametresurl 	+= '&cc-mode=' + escape(mode);

	   // alert (parametresurl);

		var query = 'cc-parametresurl=' + CC_Encode64(parametresurl);

	    CC_Ajax_MAJ_Div (div, httpurl + '/cc_get_url.php', query);
	}


	function CC_Masque_DIV (div) {
		if (document.getElementById) {
			obj = document.getElementById(div);
			obj.style.display = "none";
		}
	}

	function CC_Affiche_DIV (div) {
		if (document.getElementById) {
			obj = document.getElementById(div);
			obj.style.display = "";
		}
	}

	function CC_AfficheMasque_DIV (div) {
		if (document.getElementById) {
			obj = document.getElementById(div);
			if (obj.style.display == "") obj.style.display = "none";
			else obj.style.display = "";
		}
	}


   function CC_Set_DIV (ID, Content) {
      if (dom) {
		document.getElementById(ID).innerHTML = Content;
      }
      if (ie4) {
		document.all[ID].innerHTML = Content;
      }
      if (ns4) {
		with (eval('document.'+ID+'.document')) {
			open();
			write(Content);
			close();
		}
      }
	}


/** constructor 
   
       @param duration integer seconds
       @param <optional> function to run while waiting.
       
    */
   function Pause(duration, busy){
      this.duration= duration * 1000;
      this.busywork = null; // function to call while waiting.
      this.runner = 0;

      if (arguments.length == 2) {
         this.busywork = busy;
      }

      this.pause(this.duration);

   } // Pause class

   /** pause method 
   
       @param duration: integer in seconds
       
    */
   Pause.prototype.pause = function(duration){
      if ( (duration == null) || (duration < 0)) {return;}

      var later = (new Date()).getTime() + duration;

      while(true){
         if ((new Date()).getTime() > later) {
            break;
         }

         this.runner++;

         if (this.busywork != null) {
            this.busywork(this.runner);
         }

      } // while

   } // pause method
