﻿if (!window.Renault) window.Renault=new Object();
if (!window.Renault.Modules) window.Renault.Modules=new Object();
if (!window.Renault.Modules.CommonControls) window.Renault.Modules.CommonControls=new Object();
if (!window.Renault.Modules.CommonControls.LoginActions) window.Renault.Modules.CommonControls.LoginActions=new Object();

Renault.Modules.CommonControls.LoginActions.OnLoginInit = function(ID, Platform) {
    if (Platform != "Unknown") {
        var Control = document.getElementById(ID);
        if (Control == null) return;
        var Login = Control.getElementsByTagName("a")[1];
        var UserName = Control.getElementsByTagName("input");
        var Password = UserName[1];
        UserName = UserName[0];
        
        var UserNamePrompt = Renault.Modules.CommonControls.LoginActions.CreatePrompt(Login, UserName, "Your email", ID + "_UserNamePrompt");
        Renault.Modules.CommonControls.LoginActions.CreatePrompt(Login, Password, "Password", ID + "_PasswordPrompt");
        if (UserName.value != "") {
            UserName.style.display = "";
            UserNamePrompt.style.display = "none";
        }
    }
	if (RegisterButton!=null)
		RegisterButton.style.visibility="visible";
}
Renault.Modules.CommonControls.LoginActions.OnPostcodeValidate = function(sender,e) {
    e.IsValid=(e.Value.replace(/\s/gi,"").match(/([gG][iI][rR]0[aA][aA]|[A-PR-UWYZa-pr-uwyz]([0-9]{1,2}|([A-HK-Ya-hk-y][0-9]|[A-HK-Ya-hk-y][0-9]([0-9]|[ABEHMNPRV-Yabehmnprv-y]))|[0-9][A-HJKS-UWa-hjksuw])[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2})/gi)!=null);
}
Renault.Modules.CommonControls.LoginActions.OnRegistrationInit=function(ID)
{
	var Control=document.getElementById(ID);
	if (Control==null) return;
	var Register=Control.getElementsByTagName("a")[0];
	var UserName=Control.getElementsByTagName("input");
	var ConfirmUserName = UserName[1];
	var Password1=UserName[3];
	var Password2=UserName[5];
	var Firstname=UserName[2];
	var Lastname=UserName[4];
	var PostCode=UserName[6];
	UserName=UserName[0];
	UserName.onkeypress=null;
	Password1.onkeypress=null;
	Password2.onkeypress=null;
	Firstname.onkeypress=null;
	Lastname.onkeypress=null;
	PostCode.onkeypress=null;
	if (typeof(Password1Value)!="undefined")
	    Password1.value=Password1Value;
	if (typeof(Password2Value)!="undefined")
	    Password2.value=Password2Value;
	UserNamePrompt=Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register,UserName,"Your email",ID+"_UserNamePrompt");
	Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, ConfirmUserName, "Repeat email", ID + "_ConfirmUserNamePrompt");
	Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register,Password1,"Password",ID+"_Password1Prompt");
	Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register,Password2,"Repeat password",ID+"_Password2Prompt");
	Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register,Firstname,"Firstname",ID+"_FirstnamePrompt");
	Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register,Lastname,"Lastname",ID+"_LastnamePrompt");
	if (typeof(Password1Value)!="undefined") {
	    Password1.parentNode.getElementsByTagName("input")[0].style.display="";
	    Password1.parentNode.getElementsByTagName("input")[1].style.display="none";
	}
	if (typeof(Password2Value)!="undefined") {
	    Password2.parentNode.getElementsByTagName("input")[0].style.display="";
	    Password2.parentNode.getElementsByTagName("input")[1].style.display="none";
	}
	
	if (PostCode!=undefined)
		Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register,PostCode,"Postcode",ID+"_PostCodePrompt");
	if (UserName.value=="")
		UserName.style.display="none";
	else
	{
		UserName.style.display="";
		UserNamePrompt.style.display="none";
	}    
}

Renault.Modules.CommonControls.LoginActions.OnRegistrationCorporateInit = function(ID) {
    var Control = document.getElementById(ID);
    if (Control == null) return;
    var Register = Control.getElementsByTagName("a")[0];
    var UserName = Control.getElementsByTagName("input");
    var Password1 = UserName[1];
    var Password2 = UserName[2];
    var Firstname = UserName[3];
    var Lastname = UserName[4];
    var PostCode = UserName[5];
    UserName = UserName[0];
    UserName.onkeypress = null;
    Password1.onkeypress = null;
    Password2.onkeypress = null;
    Firstname.onkeypress = null;
    Lastname.onkeypress = null;
    PostCode.onkeypress = null;
    UserNamePrompt = Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, UserName, "Your email", ID + "_UserNamePrompt");
    Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, Password1, "Password", ID + "_Password1Prompt");
    Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, Password2, "Repeat password", ID + "_Password2Prompt");
    Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, Firstname, "Firstname", ID + "_FirstnamePrompt");
    Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, Lastname, "Lastname", ID + "_LastnamePrompt");
    if (PostCode != undefined)
        Renault.Modules.CommonControls.LoginActions.CreatePrompt(Register, PostCode, "Postcode", ID + "_PostCodePrompt");
    if (UserName.value == "")
        UserName.style.display = "none";
    else {
        UserName.style.display = "";
        UserNamePrompt.style.display = "none";
    }
}

Renault.Modules.CommonControls.LoginActions.CreatePrompt = function(Submit, Parent, Text, ID) {
    var Prompt = document.createElement("input");
    if (Parent.value.replace(" ","").length>0)
        Prompt.value=Parent.value;
    else
        Prompt.value = Text;
    Prompt.id = ID;
    Prompt.className = Parent.className;
    Prompt.onfocus = Renault.Modules.CommonControls.LoginActions.OnFocus;
    Prompt.setAttribute("associatedITextControl", Parent.name);
    Parent.setAttribute("associatedITextControl", Prompt.id);
    Prompt.setAttribute("tabindex", Parent.tabIndex);
    Parent.style.display = "none";
    Parent.parentNode.appendChild(Prompt);
    Parent.onblur = Renault.Modules.CommonControls.LoginActions.OnBlur;
    if ((Submit.id) && (Submit.id != "")) {
        Parent.setAttribute("associatedIButtonControl", Submit.id);
        Parent.onkeyup = Renault.Web.HttpRequest.OnKeyUp;
    }
    else if ((Submit.name) && (Submit.name != "")) {
        Parent.setAttribute("associatedIButtonControl", Submit.name);
        Parent.onkeyup = Renault.Web.HttpRequest.OnKeyUp;
    }
    return Prompt;
}

Renault.Modules.CommonControls.LoginActions.KeyCheck = function(evt) {
    if (!evt) evt = window.event;
    var KeyCode = (evt.which ? evt.which : evt.keyCode);
    var Source = (evt.srcElement ? evt.srcElement : evt.target);
    if (KeyCode == "9") {
        var TabIndex = Source.tabIndex;
        var NextIndex = (TabIndex + 1);
        $("*[tabindex=" + NextIndex + "]").focus();
        return false;
    }
}

Renault.Modules.CommonControls.LoginActions.OnFocus=function(evt)
{
	if (!evt) evt=window.event;
	var Source=(evt.srcElement?evt.srcElement:evt.target);
	var UserNamePrompt=Source;
	var UserName=document.getElementsByName(Source.getAttribute("associatedITextControl"))[0];
	UserNamePrompt.style.display="none";
	UserName.style.display="";
	UserName.focus();
}

Renault.Modules.CommonControls.LoginActions.OnBlur=function(evt)
{
	if (!evt) evt=window.event;
	var Source=(evt.srcElement?evt.srcElement:evt.target);
	var UserName=Source;
	var UserNamePrompt=document.getElementById(Source.getAttribute("associatedITextControl"));
	if (UserName.value=="")
	{
		UserNamePrompt.style.display="";
		UserName.style.display="none";
	}
}

Renault.Modules.CommonControls.LoginActions.OnForgottenPasswordClick=function(evt,UserName,Pattern)
{
	UserName=document.getElementById(UserName);
	if (UserName.value.match(Pattern)==null)
	{
		alert("Please type an email first to retrieve a password.");
		return false;
	}
	else
		return true;
}

Renault.Modules.CommonControls.LoginActions.ReplacePostcode=function(PostCodeControlId)
{
	var PostCode=document.getElementById(PostCodeControlId);
	while (PostCode.value.indexOf(" ")>0)
	{
		PostCode.value=PostCode.value.replace(/ /g,"");
	}
}

Renault.Modules.CommonControls.LoginActions.NewLoginError = function(NewUserNameValidatorId) {
    var Validator = document.getElementById(NewUserNameValidatorId);
    Validator.style.display = "block";
    Validator.style.visibility = "visible";
}

Renault.Modules.CommonControls.LoginActions.PasswordStrength = function(sender, e) {
    //e.IsValid = (e.Value.match(/(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,})+$/gi) != null);
    e.IsValid=(e.Value.length>5);
    if (e.IsValid)
    { document.getElementById('PasswordStrength').style.display = "none"; }
    else
    { document.getElementById('PasswordStrength').style.display = "block"; }

}