function fillInputField(id, pass) {
    var isGoogle = window.location.href.indexOf('accounts.google.com') != -1 ? true : false;
    var isSpotify = window.location.href.indexOf('accounts.spotify.com/en/login') != -1 ? true : false;
    var inputs = document.getElementsByTagName('input'),
        idField = null,
        passField = null;

    if (isSpotify) {
        idField = document.querySelector('#login-username');
        passField = document.querySelector('input[type=password]');

        var focusEvent = document.createEvent('FocusEvent');
        focusEvent.initEvent('focus', true, true);

        var inputEvent = document.createEvent('KeyboardEvent');
        inputEvent.initKeyboardEvent('input', true, false);

        idField.dispatchEvent(focusEvent);
        idField.value = id;
        idField.dispatchEvent(inputEvent);

        passField.dispatchEvent(focusEvent);
        passField.value = pass;
        passField.dispatchEvent(inputEvent);

        var btn = document.querySelector('button');
        btn.click();

        return 'success';
    }

    if (isGoogle) {
    	console.log('is google');
        idField = document.querySelector('#Email');
        passField = document.querySelector('input[type=password]');

        if (idField && idField.className.indexOf('hidden') == -1) {
            idField.value = id;
            var next = document.querySelector('#next');

            (function(open) {
                XMLHttpRequest.prototype.open = function(method, url, async, user, xhrPass) {
                    this.addEventListener('readystatechange', function() {
                        setTimeout(function() {
                            var passField = document.querySelector('input[type=password]');
                            if (passField) {
                                passField.value = pass;
                                var loginBtn = document.querySelector('#signIn');
                                if (loginBtn) {
                                    loginBtn.click();
                                }
                            }
                        }, 1500);
                    }, false);
                    open.call(this, method, url, async, user, xhrPass);
                };
            })(XMLHttpRequest.prototype.open);

            if (next) {
                next.click();
            }

        } else {
            if (passField) {
                passField.value = pass;
                var loginBtn = document.querySelector('#signIn');
                if (loginBtn) {
                    loginBtn.click();
                }
            }
        }

        return 'success';

    } else {
        // common case
        for (var i = 0; i < inputs.length; i++) {
            var name = inputs[i].name.toLowerCase();
            var idType = inputs[i].type.toLowerCase();

            if (inputs[i].type === 'password') {
                passField = inputs[i];
            } else if (name === 'email' || name === 'id' || name === 'username' || name === 'log' || idType === 'email') {
                idField = inputs[i];
            }
        }

        if (idField) {
            idField.value = id;
        }
        if (passField) {
            passField.value = pass;
        }
        var form = document.querySelector('form');
        var find = function(form, query) {
            if (!form) {
                return null;
            }
            return form.querySelector(query);
        };
        var button = find(form, 'input[type=submit]') || find(form, 'button[type=submit]') || find(form, 'button[type=button]') || find(form, 'button');

        if (button) {
            button.click();
            return 'success';
        }
        return 'fail';
    }
}

fillInputField('%s', '%s');

function autofillForGoogle(pass) {
	var passField = document.querySelector('input[type=password]');
	if (passField) {
	    passField.value = pass;
	    var loginBtn = document.querySelector('#signIn');
	    if (loginBtn) {
	        loginBtn.click();
	    }
	}
}

autofillForGoogle('%s');