function checkMail(email)
{
    return ( /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email) )?true:false;
};

function createAccount()
{
    switchHelper();
	
	var value = $('word_1').value;
    
    if(	$('identifiant').value!='' && 
        $('identifiant').value!='http://' &&
        checkMail($('login').value) &&
        $('password').value.length>3 && 
        $('chbx').checked==true &&
        value.length>0
        )
    {
        if ( confirmPswd() )
        {
            new Ajax.Request('/includes/api.controler.captcha.php',{
                parameters:'word='+value+'&method=json', 
                onSuccess:function(r)
                {
                    if ( eval(r.responseText)==true )
                    { 
                        new Ajax.Request('/includes/api.controler.account.php',{ 
                            parameters: 'action=create&method=json&identifiant='+encodeURIComponent($('identifiant').value)+'&email='+encodeURIComponent($('login').value)+'&password='+encodeURIComponent($('password').value), 
                            onSuccess:function(r)
                            {
                                if ( r.responseText.length>0 )
                                {
                                    if ( r.responseText.match('Validation failed: ') )
                                    {	
                                        new_freecap($('freecap'));
                                        $('word_1').value='';
                                        var err = r.responseText.split('Validation failed: ');
                                        err = err[1];
                                        alert(err.replace('Key subscription','site référant \"'+$('identifiant').value+'\"\n\n' )+'\n\nVous pouvez vous identifier pour consulter votre compte (ou recevoir votre mot de passe si vous l\'avez oublié),\nen cliquant sur \"mon compte\" en haut à droite' );
                                    }
                                    else if ( r.responseText.match('serial: ') )
                                    {
                                        var serial = r.responseText.split('serial: '); 
										
                                        generateCode(serial[1]); 
                                        switchAPI();
                                    }
                                }
                            }
                        });
                    }
                    else
                    {
                        new_freecap($('freecap'));
                        alert("Le mot de confirmation n\'est pas correctement saisi,\nou ce mot est périmé. (régénérez-le avec le bouton fléché orange)");
                    }
                }
            });
        }
        else
        {
            alert("votre mot de passe doit faire plus de 4 caractères");	
        }
    } 
    else
    {
        var err='';
        if($('identifiant').value==''||$('identifiant').value=='http://') 	{ err += 'Votre identifiant (site référent), n\'est pas valide.\n'; }
        if(!checkMail($('login').value))       							{ err += 'Votre email n\'est pas valide.\n'; }
        if($('password').value.length<=3 && $('password').value!='')		{ err += 'Votre mot de passe est trop court.\n'; }
        if($('password').value=='') 										{ err += 'Votre mot de passe est vide.\n'; }
        if(value.length<=0) 												{ err += 'Vous devez confirmer le mot secret.\n'; }
        if ( $('chbx').checked==false )									{ err += '\nVous devez être d\'accord avec\nles conditions générales d\'utilisation\npour télécharger l\'API.\n'; }
        alert( err );
    }	
};

function confirmPswd()
{
    return ($('password').value.length>4)?true:false;
}

function new_freecap(freecap_img)
{
    if(typeof freecap_img == 'object')
    {
        var thesrc = freecap_img.src;
        var thesrc = thesrc.substring(0,thesrc.lastIndexOf(".")+4);
        $(freecap_img).src = thesrc+"?"+Math.round(Math.random()*100000);
    }
}; 

function generateCode(serial)
{
    $('widgetCode').disabled = false; 
    $('widgetCode').value = 
		"<scrip"+"t type='text/javascript'>\n"+
		"	var RevDate = new Date();\n"+
		"	document.write( unescape( \"%3Cscript src=\'\" + ((\"https:\" == document.location.protocol) ? \"https://api2.reversoform.com/www.reversoform.com/includes/js/reversoObj.js\" : \"http://api2.reversoform.com/includes/js/reversoObj.js\") + \"?t=\"+RevDate.getTime()+\"\' type=\'text/javascript\'%3E%3C/script%3E\" ) );\n"+
		"</sc"+"ript>\n"+
        "<sc"+"ript type='text/javascript'>\n"+
        "	/** \n"+
        "	 *  powered by reversoform.com\n"+
        "	 *  <a href=\'http://www.reversoform.com\'>reversoform.com</a>\n"+
        "	 *\n"+
        "	 *	1/ Pour utiliser ce code, complétez les variables ci-dessous \n"+
        "	 *  avec valeurs des ID des champs de votre formulaire existant.\n"+
		"	 *  Seulement si ces champs existe dans votre formulaire."+
        "	 *	ex: \n"+
        "	 *		<input type=\'text\' id=\'societe\'\>\n"+
        "	 *		...\n"+
        "	 *		ObjReverso.company=\'societe\';\n"+
        "	 *\n"+
		"	 *\n"+
		"	 *	2/ Notez que vous ne pouvez utiliser l’API ReversoForm uniquement avec le \n"+
		"	 *   serial valide pour le nom de domaine défini lors de l’inscription.\n"+
		"	 *\n"+
	    "	 *\n"+	
        "	 *	3/ Vous pouvez utiliser la fonction javascript \n"+
        "	 *	ObjReverso.reverso(\'0150302010\');\n"+
        "	 *	directement pour compléter le formulaire à partir d\'un No\n"+
        "	 *	provenant d\'une autre source que la saisie par l\'utilisateur.\n"+
        "	 *\n"+
		"	 *\n"+
		"	 *	4/ La fonction \"ObjReverso.fireCallback\" est appelé systématiquement après la saisie d\'un numéro de téléphone.\n"+
		"	 *	Elle est utile si vous souhaitez appliquer des effets Ajax, tel que dérouler le formulaire pour le rendre visible après la completion.\n"+
		"	 *\n"+
		"	 *\n"+
		"	 *	5/ Vous avez le choix de déclencher l\'acion qu\'en bon vous semble, veuillez intégrer le code javacript de déclenchement\n"+
		" 	 *\n"+
		//"	 *\n"+
        //"	 *  Vous pouvez egalement utiliser votre API en mode REST/JSON : \n"+
        //"	 *  /!\\ UNIQUEMENT depuis le nom de domaine definit lors de l\'inscription \n"+
        //"	 *  http://api.reversoform.com/includes/api.controler.reverso.php?phone_number=0102030405&serial="+serial+"\n"+
        "	 *\n"+
        "	 **/\n"+
		"	ObjReverso.serial		= '"+serial+"';\n"+ 
        "	ObjReverso.phone		= '';\n"+
        "	ObjReverso.company		= '';\n"+
        "	ObjReverso.firstname	= '';\n"+ 
        "	ObjReverso.lastname		= '';\n"+
        "	ObjReverso.address		= '';\n"+ 
        "	ObjReverso.zip			= '';\n"+
        "	ObjReverso.city			= '';\n"+
		"	ObjReverso.country		= '';\n"+
		"	ObjReverso.siret		= '';\n"+
		"	ObjReverso.naf			= '';\n"+
		"	ObjReverso.activity		= '';\n"+
		"   \n"+
		"   ObjReverso.fireCallback = function( response )\n"+
		"   {\n"+
		"		if ( response=='NULL' ) \n"+
		"		{\n"+
		"			alert('aucune correspondance trouvée.');\n"+	
		"		}\n"+
		"		else \n"+
		"		{\n"+
		"       	/*\n"+
		"			alert( 	'prénom: \\t\\t'+ 		response.first_name +'\\n'+\n"+
		"					'nom: \\t\\t'+  		response.last_name 	+'\\n'+\n"+
		"					'adresse: \\t\\t'+		response.address 	+'\\n'+\n"+
		"					'ville: \\t\\t'+ 		response.city 		+'\\n'+\n"+
		"					'code postal: \\t\\t'+	response.zip 		+'\\n'+\n"+
		"					'pays: \\t\\t'+			response.country	+'\\n'+\n"+
		"					'société: \\t\\t'+		response.company	+'\\n'+\n"+
		"					'siret: \\t\\t'+		response.siret		+'\\n'+\n"+
		"					'code pays: \\t\\t'+	response.naf		+'\\n'+\n"+
		"					'activité: \\t\\t'+		response.activity	+'\\n'\n"+
		"			 );\n"+
		"       	*/\n"+
		"		}\n"+
		"   };\n"+
		"	\n"+
		"	try\n"+
		"	{\n"+
		"   	/*\n"+
		"   	----- [ CHOIX 1 : déclenchement de l\'action au changement de champs ] -----------\n"+
		"   	(cf : http://www.reversoform.com/blog/)\n"+
		"   	*/\n"+
		"		document.getElementById( ObjReverso.phone ).onblur = function()\n"+
		"		{\n"+
        "			ObjReverso.reverso( this.value );\n"+
        "		};\n"+
		"   	/*\n"+
		"  		----- [ CHOIX 2 : Déclenchement de l\'action au 10ème chiffre saisie ] -----------\n"+
		"   	(cf : http://www.reversoform.com/blog/)\n"+
		"		document.getElementById( ObjReverso.phone ).onblur = function()\n"+
		"		{\n"+
        "			ObjReverso.reverso( this.value );\n"+
        "		};\n"+
		"  		----- [ CHOIX 3 : Déclenchement de l\'action en cliquant sur un bouton ] ---------\n"+
		"   	(cf : http://www.reversoform.com/blog/?cat=1)\n"+
		"   	(cf : http://www.reversoform.com/blog/?cat=6)\n"+ 
		"   	(cf : http://www.reversoform.com/blog/?cat=8)\n"+
		"   	(cf : http://www.reversoform.com/blog/?cat=9)\n"+
		"		----------------------------------------------------------------------------------\n"+
		"		*/\n"+
		"	\n"+
		"	}catch(e){};\n"+
		"</scr"+"ipt>\n";
};

function switchAPI()
{
    Effect.Fade('api_c'+(($('api_c2').style.display=='none')?1:2),{duration:0.0});
    Effect.Appear('api_c'+(($('api_c2').style.display=='none')?2:1),{duration:0.4});
}

function switchHelper(s)
{
    function HH(but){$$('.floating').each(function(el){Effect.Fade(el.id,{duration:0.1});});setTimeout(function(){if($('floating_'+but)){Effect.Appear('floating_'+but,{duration:0.2});}},200);};
    switch (s) 
    {
        case 'url':			HH(s);break;
        case 'email':		HH(s);Effect.Pulsate('login_my_account');break;
        case 'password' :	HH(s);break;
        default :			HH(s);break;
    }
};
