
var qsParm = new Array();

function qs()
{
    var query = window.location.search.substring(1);
    var parms = query.split('&');

    for (var i = 0; i < parms.length; i++)
    {
        var pos = parms[i].indexOf('=');
        if (pos > 0)
        {
            var key = parms[i].substring(0, pos);
            var val = parms[i].substring(pos + 1);
            qsParm[key] = val;
        }
    }
}

function SetSelect(Element, Value)
{
    try
    {
        var Obj = document.getElementById(Element);
        for (i = 0; i < Obj.options.length; i++)
        {
            if (Obj.options[i].value == Value)
            {
                Obj.options[i].selected = true;
                break;
            }
        }
    }
    catch (err)
    {
    }
}

function textCounter(field, cntfield, maxlimit)
{
    if (field.value.length > maxlimit)
        field.value = field.value.substring(0, maxlimit);

    else
        cntfield.value = "(" + (maxlimit - field.value.length) + ") characters left";
}

function IsNumeric(input)
{
    return (input - 0) == input && input.length > 0;
}

function ajax(url, vars, callbackFunction, param1, param2)
{
    try
    {
        var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");

        request.open("POST", url, true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        request.onreadystatechange = function ()
        {
            if (request.readyState == 4 && request.status == 200)
            {
                if (request.responseText)
                {
                    callbackFunction(request.responseText, param1, param2);
                }
            }
        }
        request.send(vars);
    }
    catch (err)
    {
    }
}


function Login()
{
    try
    {
        var Email = document.getElementById('Email').value;
        var Password = document.getElementById('Password').value;

        ajax('ajax.aspx', 'fc=Login' +
            '&Email=' + Email +
            '&Password=' + Password,
            LoginResult);
    }
    catch (err)
    {
    }
}

function LoginResult(x)
{
    try
    {
        if (x == "true")
        {
            document.location = "home.aspx";
        }
        else
        {
            document.getElementById("err").innerHTML = x;
        }
    }
    catch (err)
    {
    }
}

function Logout()
{
    try
    {
        ajax('ajax.aspx', 'fc=Logout' + "", LogoutResult);
    }
    catch (err)
    {
    }
}

function LogoutResult(x)
{
    try
    {
        window.location = "logout.aspx";
    }
    catch (err)
    {
    }
}


function ToggleFavoritesList(AircraftID)
{
    ajax('ajax.aspx', 'fc=ToggleFavoritesList&AircraftID=' + AircraftID, ToggleFavoritesListResult);
}

function ToggleFavoritesListResult(x)
{
    try
    {

        var list = x.split("|");

        var stat = list[0];
        var msg = list[1];
        var msgid = list[2];
        if (stat == 0)
            document.getElementById("FavoritesListImage" + msgid).src = "images/RemoveFromFavorites.jpg";
        else if (stat == 1)
            document.getElementById("FavoritesListImage" + msgid).src = "images/AddToFavorites.jpg";

    }
    catch (err)
    {
    }

}


function SendPass()
{

    try
    {

        var Email = document.getElementById('Email').value;
        
        if (Email == "")
        {
            document.getElementById("err").innerHTML = "Please enter your email";
        }
        else
        {
            ajax('ajax.aspx', 'fc=SendPass&Email=' + Email, SendPassResult);
        }
    }
    catch (err)
    {
    }
}

function SendPassResult(x)
{
    try
    {
        document.getElementById("err").innerHTML = x;
    }
    catch (err)
    {
    }
}

function ChangePassword()
{
    try
    {
        var NewPassword = document.getElementById('NewPassword').value;
        if (NewPassword == "")
        {
            document.getElementById("err").innerHTML = "Please enter a new Password";
            return;
        }
        ajax('ajax.aspx', 'fc=ChangePassword&NewPassword=' + NewPassword, ChangePasswordResult);

    }
    catch (err)
    {
    }
}
function ChangePasswordResult(x)
{
    try
    {
        document.getElementById("err").innerHTML = x;
    }
    catch (err)
    {
    }
}


function ContactUser()
{
    try
    {
        var UserID = document.getElementById('UserID').value;
        var cName = document.getElementById('cName').value;
        var cEmail = document.getElementById('cEmail').value;
        var cPhone = document.getElementById('cPhone').value;
        var cMessage = document.getElementById('cMessage').value;

        if (UserID != "" && cMessage != "")
        {
            ajax('ajax.aspx', 'fc=ContactUser' +
            '&UserID=' + UserID +
            '&cName=' + cName +
            '&cEmail=' + cEmail +
            '&cPhone=' + cPhone +
            '&cMessage=' + cMessage,

            ContactUserResult);
        }
    }
    catch (err)
    {
    }
}

function ContactUserResult(x)
{
    try
    {
        alert(x);
    }
    catch (err)
    {
    }
}


function trim(x)
{
    return x.replace(/^\s+|\s+$/g, "");
}



function UpdateProfile()
{
    try
    {
        
        var Email = document.getElementById("Email").value;
        var Password = document.getElementById("Password").value;
        var PasswordConfirm = document.getElementById("PasswordConfirm").value;
        var errs = 0;
        document.getElementById("errEmail").innerHTML = "&nbsp;";
        if (Email.length < 2)
        {
            document.getElementById("errEmail").style.color = "#dd0000";
            document.getElementById("errEmail").innerHTML = "* Invalid email";
            errs += 1;
        }

        document.getElementById("errPassword").innerHTML = "&nbsp;";
        var validPassword = /^[a-zA-Z0-9]*$/;

        if (Password.length < 6)
        {
            document.getElementById("errPassword").style.color = "#dd0000";
            document.getElementById("errPassword").innerHTML = "* At least 6 characters";
            errs += 1;
        }

        else if (!validPassword.test(Password))
        {
            document.getElementById("errPassword").style.color = "#dd0000";
            document.getElementById("errPassword").innerHTML = "* Only numbers and letters";
            errs += 1;
        }

        document.getElementById("errPasswordConfirm").innerHTML = "&nbsp;";
        if (Password != PasswordConfirm)
        {
            document.getElementById("errPasswordConfirm").style.color = "#dd0000";
            document.getElementById("errPasswordConfirm").innerHTML = "* Passwords must match";
            errs += 1;
        }

        if (errs > 0)
        {
            return;
        }
        
        isValidCreditCard();
        
    }
    catch (err)
    {
    }
}


function UpdateAircraft()
{
    try
    {
        document.forms[0].submit();

    }
    catch (err)
    {
    }
}

function submitonEnter(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode == "13")
    {
        //do something;
    }
}


function GetManufacturers(AircraftType, Manufacturer)
{
    try
    {
        ajax('ajax.aspx', 'fc=GetManufacturers' +
        '&AircraftType=' + AircraftType +
        '&Manufacturer=' + Manufacturer,
        
        GetManufacturersResult, AircraftType, Manufacturer);
    }
    catch (err)
    {
    }
}

function GetManufacturersResult(x, AircraftType, Manufacturer)
{
    try
    {
        document.getElementById("ManufacturerContainer").innerHTML = x;
    }
    catch (err)
    {
    }
}

function GetModels(AircraftType, Manufacturer, Model)
{
    try
    {
        document.getElementById("SearchModel").value = "";
        var Man = document.getElementById("Manufacturer").value;
           
        ajax('ajax.aspx', 'fc=GetModels' +
        '&AircraftType=' + AircraftType +
        '&Manufacturer=' + Man +
        '&Model=' + Model ,

        GetModelsResult, Model);
    }
    catch (err)
    {
    }
}

function GetModelsResult(x, Model)
{
    try
    {
        document.getElementById("ModelContainer").innerHTML = x;
    }
    catch (err)
    {
    }
}


function GetModelsSearch(AircraftType, Manufacturer, Model)
{
    try
    {
        
        //document.getElementById("SearchModel").value = "";
        var Man = document.getElementById("Manufacturer").value;
        
        ajax('ajax.aspx', 'fc=GetModels' +
        '&AircraftType=' + AircraftType +
        '&Manufacturer=' + Manufacturer +
        '&Model=' + Model,

        GetModelsResult, Model);
    }
    catch (err)
    {
    }
}


function GetModelsEdit(AircraftType, Manufacturer, Model)
{
    try
    {

        //document.getElementById("SearchModel").value = "";
        var Man = document.getElementById("Manufacturer").value;

        ajax('ajax.aspx', 'fc=GetModels' +
        '&AircraftType=' + AircraftType +
        '&Manufacturer=' + Manufacturer +
        '&Model=' + Model +
        '&NoCount=true' ,
        GetModelsResult, Model);
    }
    catch (err)
    {
    }
}


function SubmitEnter(e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
    {
        return false;
    }
    else
        return true;
}

function ClosePop()
{
    document.getElementById('PopUp').style.visibility = "hidden";
}


function LoadContactSeller(UserID)
{
    
    document.getElementById('PopUp').innerHTML = "";
    document.getElementById('PopUp').style.visibility = "hidden";

    ajax('ajax.aspx', 'fc=LoadContactSellerTemplate&Template=ContactSeller.htm&UserID=' + UserID, LoadTemplateResult);
}

function LoadTemplateResult(x)
{
    try
    {
        document.getElementById('PopUp').innerHTML = x;
        document.getElementById('PopUp').style.visibility = "visible";
        document.getElementById('Contact').focus();
    }
    catch (err)
    {
    }
}


function ContactSeller()
{
    try
    {
        
        var UserID = document.getElementById('UserID').value;
        var Contact = document.getElementById('Contact').value;
        var Email = document.getElementById('Email').value;
        var Phone = document.getElementById('Phone').value;
        var Question = document.getElementById('Question').value;

        ajax('ajax.aspx', 'fc=ContactSeller&UserID=' + UserID +
            '&Contact=' + Contact +
            '&Email=' + Email +
            '&Phone=' + Phone +
            '&Question=' + Question,
            ContactSellerResult);

    }
    catch (err)
    {


    }

}

function ContactSellerResult(x)
{

    try
    {
        alert(x);
        if (x == "Your Email Has Been Sent")
        ClosePop();
    }
    catch (err)
    {

    }
}


function GetAllUsers(Active, BegJoin, EndJoin, Format)
{

    ajax('ajax.aspx', 'fc=GetAllUsers&Active=' + Active + '&BegJoin=' + BegJoin + '&EndJoin=' + 
    EndJoin + '&Format=' + Format, GetAllUsersResult);
}

function GetAllUsersResult(x)
{
    try
    {
        var list = x.split("<head>");
        var result = list[0];
        result = result.replace(/b!b/gi, "&lt;");
        result = result.replace(/e!e/gi, "&gt;");

        newwin = window.open('', '', 'width=600; scrollbars=yes');
        newwin.document.write(result);
        newwin.focus();

    }
    catch (err)
    {

    }
}


function AuthorizePayment(NameOnCard, CreditCardNumber, CardType, CardExpMonth, CardExpYear, SecurityCode)
{
    ajax('AuthorizePayment.aspx', "fc=AuthorizePayment" +
    "&NameOnCard=" + NameOnCard +
    "&CreditCardNumber=" + CreditCardNumber +
    "&CardType=" + CardType +
    "&CardExpMonth=" + CardExpMonth +
    "&CardExpYear=" + CardExpYear +
    "&SecurityCode=" + SecurityCode,
     AuthorizePaymentResult);
}

function AuthorizePaymentResult(x)
{
    try
    {
        if (x == "ok")
        {
            alert("Thank you! Your payment was received.");
            document.getElementById("Approved").value = "Y";
            document.forms[0].submit();
        }
        else
        {
            alert("Your request was not processed.  The payment gateway may be unavailable so try again later.");
            document.getElementById("Update").disabled = false;
        }
        return;
    }
    catch (err)
    {
    }
}

function AuthorizeARB(NameOnCard, CreditCardNumber, CardType, CardExpMonth, CardExpYear, SecurityCode, Email)
{
    ajax('AuthorizeARB.aspx', "fc=AuthorizeARB" +
    "&NameOnCard=" + NameOnCard +
    "&CreditCardNumber=" + CreditCardNumber +
    "&CardType=" + CardType +
    "&CardExpMonth=" + CardExpMonth +
    "&CardExpYear=" + CardExpYear +
    "&SecurityCode=" + SecurityCode +
    "&Email=" + Email,
     AuthorizeARBResult);
}

function AuthorizeARBResult(x)
{
    try
    {
        if (x == "ok")
        {
            alert("Thank you! Your payment was received.");
            document.getElementById("Approved").value = "Y";
            document.forms[0].submit();
        }
        else
        {
            alert("Your request was not processed.  The payment gateway may be unavailable so try again later.");
            document.getElementById("Update").disabled = false;
        }
        return;
    }
    catch (err)
    {
    }
}

function isValidCreditCard()
{

    var MonthlyRecurring = document.getElementById("MonthlyRecurring").checked;
    var OneMonth = document.getElementById("OneMonth").checked;
    var NameOnCard = document.getElementById("NameOnCard").value;

    var CreditCardNumber = document.getElementById("CardNumber").value;
    var CardType = document.getElementById("CardType").value;

    var CardExpMonth = document.getElementById("CardExpMonth").value;
    var CardExpYear = document.getElementById("CardExpYear").value;
    var SecurityCode = document.getElementById("SecurityCode").value;

    var Email = document.getElementById("Email").value;

    var type = CardType;
    var ccnum = CreditCardNumber;
    
    if (ccnum == "")
    {
        document.forms[0].submit();
        return;
    }

    var d = new Date();
    var month = d.getMonth() + 1;
    var year = d.getYear();

    if (CardExpYear == year)
    {
        if (CardExpMonth < month)
        {
            alert("Please enter valid expiration date");
            return;
        }
    }

    if (NameOnCard.length < 3)
    {
        alert("Please enter name on card");
        return;
    }

    if (SecurityCode.length < 3)
    {
        alert("Please security code");
        return;
    }


    if (type == "Visa")
    {
        // Visa: length 16, prefix 4, dashes optional.
        var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
    } else if (type == "MasterCard")
    {
        // Mastercard: length 16, prefix 51-55, dashes optional.
        var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
    } else if (type == "Discover")
    {
        // Discover: length 16, prefix 6011, dashes optional.
        var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
    } else if (type == "AmericanExpress")
    {
        // American Express: length 15, prefix 34 or 37.
        var re = /^3[4,7]\d{13}$/;
    } else if (type == "Diners")
    {
        // Diners: length 14, prefix 30, 36, or 38.
        var re = /^3[0,6,8]\d{12}$/;
    }

    if (!re.test(ccnum))
    {
        alert("invalid credit card number");
        return false;
    }

    // Remove all dashes for the checksum checks to eliminate negative numbers
    ccnum = ccnum.split("-").join("");

    // Checksum ("Mod 10")
    // Add even digits in even length strings or odd digits in odd length strings.

    var checksum = 0;
    for (var i = (2 - (ccnum.length % 2)); i <= ccnum.length; i += 2)
    {
        checksum += parseInt(ccnum.charAt(i - 1));
    }
    // Analyze odd digits in even length strings or even digits in odd length strings.
    for (var i = (ccnum.length % 2) + 1; i < ccnum.length; i += 2)
    {
        var digit = parseInt(ccnum.charAt(i - 1)) * 2;
        if (digit < 10) { checksum += digit; } else { checksum += (digit - 9); }
    }

    if ((checksum % 10) != 0)
    {
        alert("invalid credit card number");
        return;
    }

    if (MonthlyRecurring == true)
    {
        document.getElementById("Update").disabled = true;
        AuthorizeARB(NameOnCard, CreditCardNumber, CardType, CardExpMonth, CardExpYear, SecurityCode, Email);
        return;
    }

    if (OneMonth == true)
    {
        document.getElementById("Update").disabled = true;
        AuthorizePayment(NameOnCard, CreditCardNumber, CardType, CardExpMonth, CardExpYear, SecurityCode);
        return;
    }

}


function HighlightNav(x)
{
    x.style.backgroundImage = document.getElementById(x.id + "Blue").style.backgroundImage;
}

function LowlightNav(x)
{
    x.style.backgroundImage = document.getElementById(x.id + "White").style.backgroundImage;

}


function deleteThis(table, doc, location)
{

    var r = confirm("Are you sure you want to delete this record?");
    if (r == true)
    {
        ajax('ajax.aspx', 'fc=deleteThis&table=' + table + '&doc=' + doc, deleteThisResult, location);
    }
}

function deleteThisResult(x, location)
{
    window.document.location = location;
}

