function fillStates(state_id, city_id){
    var state = document.getElementById(state_id);
    var city = document.getElementById(city_id);
    if(!state || !city){ return true; }
    
    for(var i in states){
        op = new Option();
        op.abbr = i;
        op.innerHTML = states[i].name;
        state.appendChild(op);
    }
    state.onchange = function(){
        var ab = state.options[state.selectedIndex].abbr;
        if (ab in states) {
            sel_city = states[ab].cities;
            city.innerHTML = "";
            for (var c = 0; sel_city.length > c; c++) {
                op = new Option();
                op.innerHTML = sel_city[c];
                city.appendChild(op);
            }
        }else{
            city.innerHTML = "";
        }
    }
}

function clear_form(){
    $("old", "new", "new2").invoke("removeClassName", "error");
    $("error").update(" ");
}

function change_password(){
    clear_form();
    if(!$("old").value){
        $("old").addClassName("error");
        $("error").update("You should enter your old password");
        return false;
    }
    
    new Ajax.Request("../server.php", {
        parameters: {
            action:"check_password",
            password: $("old").value
        },
        onSuccess: function(t){
            if(t.responseText != "OK"){
                $("old").addClassName("error");
                $("error").update("Wrong Password");
                return false;
            }else{
                clear_form();
                if(!$("new").value || $("new").value.length < 6){
                    $("new").addClassName("error");
                    $("error").update("Please Enter a valid password");
                    return false;
                }
                if($("new").value != $("new2").value){
                    $("new").addClassName("error");
                    $("new2").addClassName("error");
                    $("error").update("New password doesn't match");
                    return false;
                }
                
                new Ajax.Request("../server.php", {
                    parameters: {
                        action: "change_password",
                        oldpassword:$("old").value,
                        password:$("new").value
                    },
                    onSuccess: function(t){
                        if(t.responseText != "ok"){
                            $("error").update(t.responseText);
                        }else{
                            $("passbox").update("<br><br><h2>Password Successfullly Changed.</h2>");
                        }
                    }
                })                
            }
        }
    })
}

function send_password(){
    $("email").removeClassName("error");
    $("error").update();
    if(!$("email").value){
        $("email").addClassName("error");
        $("error").update("Please enter an email address");
        return false;
    }
    new Ajax.Request("../server.php", {
        parameters:{
            action:"retrieve_password",
            email:$("email").value
        },
        onSuccess: function(t){
            if(t.responseText == "no"){
                $("email").addClassName("error");
                $("error").update("No such account exists with this email address");
                return false;
            }else{
                alert("Password Reminder is Sent");
            }
        }
    })
}

document.observe("dom:loaded", function(){
    fillStates("q21", "q22");
    fillStates("q23", "q24");
    
    if ($("year_q19")) {
        $("year_q19").onchange = function(){
            var ops = $("q20");
            for(var i = 0; ops.options.length > i; i++){
                op = ops.options[i];
                if (op.text == Number($("year_q19").value) + 12) {
                    op.selected = true;
                }                
            }

        };
    }
});
