﻿include("/Scripts/Classes/Extensions.js");

window.onload = function(){

    document.getElementById("username").focus();
    document.domain = "samepagemusic.com";
}

document.onkeypress = processKey;
function processKey(e)
{
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    
    if (code == 13)  {
        if( document.getElementById("profile").disabled )
            Log_In();
        else
            Set_Profile();
    } else if( code == 32 || ( code > 47 && code < 123 )){
        document.getElementById("profile").disabled = true;
        document.getElementById("loginButton").disabled = true;
    }
}

function ImWorking( Show ){
    if( Show )
        document.getElementById("ajax_indicator").style.visibility = 'visible';
    else
        document.getElementById("ajax_indicator").style.visibility = 'hidden';
}

function InvalidLogin( Show ){

    var sel = document.getElementById("profile");
    var login = document.getElementById("loginButton");

    if( Show ){
        sel.disabled = true;
        login.disabled = true;
        document.getElementById("Invalid").style.visibility = 'visible';
    } else {
        sel.disabled = false;
        login.disabled = false;
        document.getElementById("Invalid").style.visibility = 'hidden';
    }
}

function Log_In(){

    ImWorking(true);
    
    var Username = document.getElementById("username").value.trim();
    var Password = document.getElementById("password").value.trim();
    
    if( Username.length == 0 || Password.length == 0 ){
        ImWorking(false);
        alert("Please enter valid login information.");
        return;
    }
  
    SendXmlRequest(
        'AuthenticateMember', 
        'Username=' + Username.uriSafe() + "&Password=" + Password.uriSafe(), 
        function( ResponseXML ){
            if( getNodeValue(ResponseXML, 'Authentication') == 'OK' ){
                SendXmlRequest('ProfileFetchByMemberID', '', 
                    function( ResponseXML ){ populateProfiles( ResponseXML ); } );
            } else {
                ImWorking(false);
                InvalidLogin(true);
            }
        } );
}

function populateProfiles(xmlDoc) {
    //Get the profiles to populate the select box

    ImWorking(false);

    var Profiles = xmlDoc.getElementsByTagName("Profile");
        
    switch( Profiles.length ){
        case 0: return;
        case 1: Set_Profile( getNodeValue( Profiles[0], "ProfileID" ));
        default: InvalidLogin( false );
    }
    
    //Get select box and the login button by id
    var sel = document.getElementById("profile");
    
    //alert(sel.options.length);
    
    //Remove each previous profile from the select
    for (var i=sel.length-1; i>=0; i--) {
        sel.remove(i);
    }

    //For each profile make a new option
    for (var i=0; i<Profiles.length; i++) {
   
        var profileId = getNodeValue( Profiles[i], "ProfileID" );
        var profileName = getNodeValue( Profiles[i], "ProfileName" );
        
        
        try {
            sel.options[sel.options.length] = new Option(profileName,profileId);
        } catch(ex) {
            sel.options.add(el, sel.selectedIndex); // IE only
        }
        
    }
}

function Set_Profile ( ProfileID ) {

    ImWorking(true);

    if( ProfileID == null )
        ProfileID = document.getElementById("profile").value;

    SendXmlRequest(
        'AuthenticateProfile', 
        'ProfileID=' + ProfileID, 
        function( ResponseXML ){
            if( getNodeValue(ResponseXML, 'Authentication') == 'OK' ){
                window.location.href = "/Default.aspx";
            } else {
                ImWorking(false);
                InvalidLogin(true);
            }
        } );

}