function URLEncode(string) {
        var SAFECHARS = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "-_.!~*'()";
        var HEX = "0123456789ABCDEF";
        var plaintext = string;
        var encoded = "";
        for (var i = 0; i < plaintext.length; i++ ) {
                var ch = plaintext.charAt(i);
                if (ch == " ") {
                        encoded += "+";
                }
                else if (SAFECHARS.indexOf(ch) != -1) {
                        encoded += ch;
                }
                else {
                        var charCode = ch.charCodeAt(0);
                        if (charCode > 255) {
                                alert("Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.");
                                encoded += "+";
                        }
                        else {
                                encoded += "%";
                                encoded += HEX.charAt((charCode >> 4) & 0xF);
                                encoded += HEX.charAt(charCode & 0xF);
                        }
                }
        }
        return encoded;
}

function checkPseudo(pseudo){
	// show waiter 
        document.getElementById('pseudoMax').style.display = "none";
        document.getElementById('pseudoExists').style.display = "none";
        document.getElementById('pseudoValid').style.display = "none";
        document.getElementById('pseudoVerif').style.display = "";
        // check db
        var xhrPseudo;
	try {
		xhrPseudo = new XMLHttpRequest();
	}
	catch(e){
		xhrPseudo = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhrPseudo.onreadystatechange = function(){
		if(xhrPseudo.readyState == 4){
			if(xhrPseudo.status == 200){
                                // show correct message 
                                document.getElementById('pseudoVerif').style.display = "none";
                                switch(xhrPseudo.responseText){
                                        case "1": document.getElementById('pseudoMax').style.display = "";      break;
                                        case "2": document.getElementById('pseudoExists').style.display = "";   break;
                                        case "0": document.getElementById('pseudoValid').style.display = "";    break;
                                        default : break;
                                }
			}
		}
	}
	var d = new Date();
	xhrPseudo.open("GET", "../../bin-ajax/pseudo.php?p=" + URLEncode(pseudo) + "&time=" + d.getTime(), true); 
	xhrPseudo.send(null);
}

function checkPass(pass){
        document.getElementById('passMin').style.display = "none";
        document.getElementById('passMax').style.display = "none";
        document.getElementById('passDiff').style.display = "none";
        document.getElementById('passValid').style.display = "none";
        if (pass != ""){
                if (pass.length < 6)            document.getElementById('passMin').style.display = "";
                else if (pass.length > 25)      document.getElementById('passMax').style.display = "";
                else {
                        if (passValidated == true){
                                passValidated = false
                                document.getElementById('passValid').style.display = "";
                        }
                        else if (passValidated == "error"){
                                passValidated = false
                                document.getElementById('passDiff').style.display = "";
                        }
                        else {
                                document.getElementById('passFormConfirm').style.display = "";
                                document.getElementById('passConfirm').focus();
                        }
                }
        }
}

function checkMail(mail){
	// show waiter 
        document.getElementById('mailInfo').style.display = "none";
        document.getElementById('mailEreg').style.display = "none";
        document.getElementById('mailExists').style.display = "none";
        document.getElementById('mailValid').style.display = "none";
        document.getElementById('mailVerif').style.display = "";
        // check db
        var xhrMail;
	try {
		xhrMail = new XMLHttpRequest();
	}
	catch(e){
		xhrMail = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhrMail.onreadystatechange = function(){
		if(xhrMail.readyState == 4){
			if(xhrMail.status == 200){
                                // show correct message 
                                document.getElementById('mailVerif').style.display = "none";
                                switch(xhrMail.responseText){
                                        case "1": document.getElementById('mailEreg').style.display = "";       break;
                                        case "2": document.getElementById('mailExists').style.display = "";     break;
                                        case "0": document.getElementById('mailValid').style.display = "";      break;
                                        default : document.getElementById('mailInfo').style.display = "";       break;
                                }
			}
		}
	}
	var d = new Date();
	xhrMail.open("GET", "../../bin-ajax/mail.php?m=" + URLEncode(mail) + "&time=" + d.getTime(), true); 
	xhrMail.send(null);
}

function checkMailCode(code, valid){
        // show waiter 
        document.getElementById('codeWrong').style.display = "none";
        document.getElementById('codeValid').style.display = "none";
        document.getElementById('codeVerif').style.display = "none";
        if (code.length >= 4){
                // check db
                var xhrCode;
                try {
                        xhrCode = new XMLHttpRequest();
                }
                catch(e){
                        xhrCode = new ActiveXObject("Microsoft.XMLHTTP");
                }
                xhrCode.onreadystatechange = function(){
                        if(xhrCode.readyState == 4){
                                if(xhrCode.status == 200){
                                        // show correct message 
                                        document.getElementById('codeVerif').style.display = "none";
                                        switch(xhrCode.responseText){
                                                case "1": document.getElementById('codeWrong').style.display = "";      break;
                                                case "0": document.getElementById('codeValid').style.display = "";      break;
                                                default : break;
                                        }
                                }
                        }
                }
                var d = new Date();
                xhrCode.open("GET", "../../bin-ajax/code.php?c=" + URLEncode(code) + "&v=" + valid + "&time=" + d.getTime(), true); 
                xhrCode.send(null);
        }
}

function correctMail(){
        ShowADiv('newmail');
        ShowADiv('blkmail');
        document.getElementById('mailOriginal').focus();
}

function checkNewMail(newmail, valid){
	// show waiter 
        document.getElementById('mailInfo').style.display = "none";
        document.getElementById('mailEreg').style.display = "none";
        document.getElementById('mailExists').style.display = "none";
        document.getElementById('mailNotsend').style.display = "none";
        document.getElementById('mailValid').style.display = "none";
        document.getElementById('mailVerif').style.display = "";
        // check db
        var xhrNewMail;
	try {
		xhrNewMail = new XMLHttpRequest();
	}
	catch(e){
		xhrNewMail = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhrNewMail.onreadystatechange = function(){
		if(xhrNewMail.readyState == 4){
			if(xhrNewMail.status == 200){
                                // show correct message 
                                document.getElementById('mailVerif').style.display = "none";
                                switch(xhrNewMail.responseText){
                                        case "1": document.getElementById('mailEreg').style.display = "";       break;
                                        case "2": document.getElementById('mailExists').style.display = "";     break;
                                        case "3": document.getElementById('mailNotsend').style.display = "";    break;
                                        case "0":
                                                document.getElementById('newmail').style.display = "none";
                                                document.getElementById('blkmail').style.display = "";
                                                document.getElementById('mailValid').style.display = "";
                                                document.getElementById('newadress').innerHTML = " à l'adresse " + document.getElementById('mailOriginal').value;
                                                break;
                                        default : document.getElementById('mailInfo').style.display = "";       break;
                                }
			}
		}
	}
	var d = new Date();
	xhrNewMail.open("GET", "../../bin-ajax/newmail.php?n=" + URLEncode(newmail) + "&v=" + valid + "&time=" + d.getTime(), true); 
	xhrNewMail.send(null);
}

function ShowBlogName() {
        if (document.getElementById('urlOriginal').value == "") document.getElementById('podcasturl').innerHTML = "Example : 'titre' pour 'http://titre.libcast.com'";
        else document.getElementById('podcasturl').innerHTML = "http://" + document.getElementById('urlOriginal').value + ".libcast.com/";
}

function checkURL(url){
	// show waiter 
        document.getElementById('urlInfo').style.display = "none";
        document.getElementById('urlMax').style.display = "none";
        document.getElementById('urlEreg').style.display = "none";
        document.getElementById('urlExists').style.display = "none";
        document.getElementById('urlValid').style.display = "none";
        document.getElementById('urlVerif').style.display = "";
        // check db
        var xhrURL;
	try {
		xhrURL = new XMLHttpRequest();
	}
	catch(e){
		xhrURL = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xhrURL.onreadystatechange = function(){
		if(xhrURL.readyState == 4){
			if(xhrURL.status == 200){
                                // show correct message 
                                document.getElementById('urlVerif').style.display = "none";
                                switch(xhrURL.responseText){
                                        case "1": document.getElementById('urlMax').style.display = "";         break;
                                        case "2": document.getElementById('urlEreg').style.display = "";        break;
                                        case "3": document.getElementById('urlExists').style.display = "";      break;
                                        case "0": document.getElementById('urlValid').style.display = "";       break;
                                        default : document.getElementById('urlInfo').style.display = "";        break;
                                }
			}
		}
	}
	var d = new Date();
	xhrURL.open("GET", "http://www.libcast.com/bin-ajax/url.php?u=" + URLEncode(url) + "&time=" + d.getTime(), true); 
	xhrURL.send(null);
}

function checkTitle(title){
        document.getElementById('titleMax').style.display = "none";
        document.getElementById('titleValid').style.display = "none";
        if (title != ""){
                if (title.length > 255) document.getElementById('titleMax').style.display = "";
                else                    document.getElementById('titleValid').style.display = "";
        }
}

function confirmElement(){
        var element = document.getElementById('passOriginal').value;
        var confirm = document.getElementById('passConfirm').value;
        if (element == confirm){
                document.getElementById('passFormConfirm').style.display = "none";
                passValidated = true;
                document.getElementById('mailOriginal').focus();
        }
        else {
                passValidated = "error";
                document.getElementById('passOriginal').select();
                document.getElementById('passOriginal').focus();
        }
        checkPass(element);
}

function PaymentMethod(id){
        // hide others 
        for (i=1; i<=3; i++){
                document.getElementById(i + 'Page').style.display = "none";
                document.getElementById(i + 'Info').style.display = "none";
                document.getElementById(i + 'Onglet').className = "divOngletOff";
        }
        // show correct 
        document.getElementById(id + 'Page').style.display = "";
        document.getElementById(id + 'Info').style.display = "";
        document.getElementById(id + 'Onglet').className = "divOngletOn";
        switch (id){
                case "2" :      document.getElementById('idPage').value = "check";      break;
                case "3" :      document.getElementById('idPage').value = "auto";       break;
                default :       document.getElementById('idPage').value = "cb";         break;
        }
        // show adds 
        switch (id){
                case "3":       document.getElementById('howMuchMonth').style.display = "none"; break;
                default:        document.getElementById('howMuchMonth').style.display = "";     break;
        }
}

var passValidated = false;