dojo.addOnLoad(function () {
    window.setTimeout(function () {
	    //Attach a keypress listener to each of the form's inputs
	    dojo.query("#signin input").connect('onkeypress', function(e){
            if(e.keyCode == dojo.keys.ENTER){
                validateUser();
            }
        });
	    dojo.query("#forgotemail input").connect('onkeypress',  function(e){
            if(e.keyCode == dojo.keys.ENTER){
                validateChangePw();
            }
        });
	    dojo.query("#createnewuser input").connect('onkeypress', function(e){
            if(e.keyCode == dojo.keys.ENTER){
                validateNewUser();
            }
        });
	}, 500);
});

function stringReplace(){
    if(dojo.byId("authorizeContainer")==null){return;}
    conTpl = dojo.byId("authorizeContainer").innerHTML;
    conTpl = conTpl.replace(/__NEW_PROMPT__/g,dojo.byId("newuserlabelTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWNICKNAME__/g,dojo.byId("newnicknameTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWPASSWORD__/g,dojo.byId("newpasswordTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWPASSWORD2__/g,dojo.byId("newpassword2Tpl").innerHTML);
    conTpl = conTpl.replace(/__NEWEMAIL__/g,dojo.byId("newemailTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWPHONE__/g,dojo.byId("newphoneTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWOPTIN__/g,dojo.byId("newoptinTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWBIRTHDATE__/g,dojo.byId("newbirthdateTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWGENDER__/g,dojo.byId("newgenderTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWMALE__/g,dojo.byId("newgendermaleTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWFEMALE__/g,dojo.byId("newgenderfemaleTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWTERMSOPERATOR__/g,dojo.byId("newoperatortermsTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWTERMSPRIVACY__/g,dojo.byId("newprivacytermsTpl").innerHTML);
    conTpl = conTpl.replace(/__NEWSUBMITBUTTON__/g,dojo.byId("newuserbuttonTpl").innerHTML);
    
    conTpl = conTpl.replace(/__LOGIN_PROMPT__/g,dojo.byId("loginlabelTpl").innerHTML);
    conTpl = conTpl.replace(/__EMAIL__/g,dojo.byId("emailTpl").innerHTML);
    conTpl = conTpl.replace(/__PASSWORD__/g,dojo.byId("passwordTpl").innerHTML);
    conTpl = conTpl.replace(/__SUBMITBUTTON__/g,dojo.byId("loginTpl").innerHTML);
    conTpl = conTpl.replace(/__FORGOT__/g,dojo.byId("forgotlabelTpl").innerHTML);
    conTpl = conTpl.replace(/__FORGOTEMAIL__/g,dojo.byId("forgotemailTpl").innerHTML);          
    conTpl = conTpl.replace(/__HEADSUP__/g,dojo.byId("headsupTpl").innerHTML);
    conTpl = conTpl.replace(/__ALLACCESSTEXT__/g,dojo.byId("allaccesstextTpl").innerHTML);
    dojo.byId("authorizeContainer").innerHTML = conTpl;
    
    if(dojo.byId("indexRight")==null){return;}
    
    dojo.byId("indexnewnickname").value = dojo.byId("newnicknameTpl").innerHTML + '*';
    dojo.byId("indexnewpasswordtext").value = dojo.byId("newpasswordTpl").innerHTML + '*';
    dojo.byId("indexnewconfirmpasswordtext").value = dojo.byId("newpassword2Tpl").innerHTML + '*';
    dojo.byId("indexnewemail").value = dojo.byId("newemailTpl").innerHTML + '*';
    dojo.byId("indexnewphone").value = dojo.byId("newphoneTpl").innerHTML + '*';
    dojo.byId("indexnewoptinLabel").innerHTML = dojo.byId("indexnewoptinLabel").innerHTML.replace(/__NEWOPTIN__/g,dojo.byId("newoptinTpl").innerHTML);
    dojo.byId("indexnewterms").innerHTML = dojo.byId("indexnewterms").innerHTML.replace(/__NEWTERMSOPERATOR__/g,dojo.byId("newoperatortermsTpl").innerHTML);
    
}

function createNewPassword(){
    var pw1 = dojo.byId('resetPw').value;
    var pw2 = dojo.byId('resetPwConfirm').value;
    //if(pw1.length < 6){
    //  dojo.byId('pwResetErrorMsg').innerHTML = "Password must be at least 6 characters";
    //  return;
    //}
    if(pw1 !== pw2){
        dojo.byId('pwResetErrorMsg').innerHTML = "Passwords do not match";
        return;
    }
    dojo.xhrPost({
        url:'/authorize/set-new-password',
        content:{
            token: restPwToken,
            newPw: pw1
        },
        handleAs: 'json',
        load: function(response){
            if(response.status == 'OK'){
                location.href='/setup/index/passwordchanged/1';
            }
            else if(response.status == 'badvalues'){
                dojo.byId('pwResetErrorMsg').innerHTML = "Sorry, the password token could not be verified.";
            }
            else {
                dojo.byId('pwResetErrorMsg').innerHTML = "Sorry, there was an error setting your new password.";
            }
        },
        error: function(){
            dojo.byId('pwResetErrorMsg').innerHTML = "Sorry, there was an error setting your new password.";
        }
    });
}

function authorize(destination) {
    currentDestination=destination;//Where the user gets redirected once login or registration is done

    // clear the form inputs on hide
    dojo.connect(dijit.byId("mainLogin"), 'hide', function() {
        dojo.query("#mainLogin input").forEach(function(inp) {
            if (inp.type == 'text' || inp.type == 'password') {
            	inp.value = '';
            } else
        	if (inp.type == 'checkbox') {
        		inp.checked = false;
        	}
        });
        dojo.query("#mainLogin .authorizeLabel").forEach("item.style.color='#ffffff';");
        dojo.query("#mainLogin .registerErrorText").forEach("item.innerHTML='';");
    });

    
    dijit.byId("mainLogin").show();

    // hide on a press of the escape key
//    dojo.connect(dijit.byId("mainLogin").containerNode, 'onkeypress', function (evt) {
//        key = evt.keyCode;
//        if(key == dojo.keys.ESCAPE) {
//            dijit.byId("mainLogin").hide();
//            dojo.stopEvent(evt);
//        }
//    });
    
}

function setRegField(elem, focus){
    var dv;//default value
    switch(elem.id){
        case 'indexnewnickname':
            dv = dojo.byId("newnicknameTpl").innerHTML + '*';
            break;
        case 'indexnewpasswordtext':
            dv = dojo.byId("newpasswordTpl").innerHTML + '*';
            break;
        case 'indexnewconfirmpasswordtext':
            dv = dojo.byId("newpassword2Tpl").innerHTML + '*';
            break;
        case 'indexnewemail':
            dv = dojo.byId("newemailTpl").innerHTML + '*';
            break;
        case 'indexnewphone':
            dv = dojo.byId("newphoneTpl").innerHTML + '*';
            break;
    }

    if(focus == true){
        //console.log('focusing '+elem.id+' (value:\''+elem.value+'\')');
        if(dojo.byId(elem.id).value == dv){
            
            if(elem.id == 'indexnewpasswordtext' || elem.id == 'indexnewconfirmpasswordtext'){
                //console.log('replacing '+elem.id + ' with password field');
                //dojo.byId(elem.id).type = 'password';
                dojo.byId(elem.id).style.display = "none";
                dojo.byId(elem.id.replace('text','')).style.display="";
                dojo.byId(elem.id.replace('text','')).focus();
            }else{
                //console.log('blanking '+elem.id);
                dojo.byId(elem.id).value = '';
            }
            
        }
        dojo.removeClass(elem.id, 'registerErrorText');
    }else{
        //console.log('blurring '+elem.id+ ' (value:\''+elem.value+'\')');
        if(dojo.byId(elem.id).value == ''){
            if(elem.id == 'indexnewpassword' || elem.id == 'indexnewconfirmpassword'){
                //console.log('replacing '+elem.id + ' with text field');
                //dojo.byId(elem.id).type = 'text';
                
                dojo.byId(elem.id + 'text').style.display = '';
                dojo.byId(elem.id).style.display = 'none';
            }else{
                //console.log('writing default value in '+elem.id);
                dojo.byId(elem.id).value = dv;
            }
        }
    }
    
}

dojo.addOnLoad(
        function (){
            if(typeof(badtoken) != 'undefined' && badtoken == true){
                dojo.html.set(dojo.byId('messageDlgMsg'), authStrings['badtoken']);
                dijit.byId('messageDlg').show();
            } 
            if(typeof(restPwToken) != 'undefined' && restPwToken.length > 0){
                dijit.byId('resetPwDlg').show();
            }
            if(dojo.byId("indexRegister")){
                dojo.connect(dojo.byId("indexRegister"), 'onkeypress', function(e) {
                    if (e.keyCode == dojo.keys.ENTER) {
                        validateNewUser(true);
                        return;
                    }
                });
            }
        }   
    );
