﻿function isValidCreditCardNumber(cardNumber, cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "mastercard":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "amex":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;

      default:
        prefixRegExp = /^$/;
        return false;
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }
    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}

function checkCellNumber (strng, strnglen) {
    if (strng == "") 
       return false;
    var illegalChars = /\D/;
    // allow only letters, numbers, and underscores
    if (illegalChars.test(strng))
       return false;
    if(strnglen != 0 && strng.length != strnglen)
        return false;
    return true;
}

function CheckString(strng, minstrnglen)
{
    if(strng.length < minstrnglen)
        return false;
    else
        return true;
}

function openhelp()
{
window.open('support/paymentoptions.html');
}

function CheckEmail(strng)
{
    var ValidEmail = /^\w+([-+.]\w+)*@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/;
    // allow only letters, numbers, and underscores
    if (!ValidEmail.test(strng))
        return false;
        
    if(!CheckString(strng, 1))
        return false;

    return true;    
}

function CheckPhoneNumber(strng, minstrnglen)
{
    var ValidPhoneNumber = /^[0-9]+$/;
    // allow only numbers
    if (!ValidPhoneNumber.test(strng))
        return false;
        
    if(!CheckString(strng, minstrnglen))
        return false;

    return true;    
}

function showError(msg, getfocus, ErrorDiv, ErrorMsgDiv){
    
    if(getfocus != "")
        document.getElementById(getfocus).focus();
    
    if(ErrorDiv != "")
        document.getElementById(ErrorDiv).style.display = "block";
    else
        document.getElementById("dvErrorMsg").style.display = "block";
        
    if(ErrorMsgDiv != "") {
        document.getElementById(ErrorMsgDiv).innerHTML = msg;
        document.getElementById(ErrorMsgDiv).style.display = "block";
    }
    else {
        document.getElementById("errorMsg").innerHTML = msg;
        document.getElementById("errorMsg").style.display = "block";
    }
    
    return false;
}

function hideError(ErrorDiv){
    
    if(ErrorDiv != "")
        document.getElementById(ErrorDiv).style.display = "none";
    else
        document.getElementById("dvErrorMsg").style.display = "none";
    
    
    return true;
}

function ShowLoading(LoadingDiv, DivtoHide)
{
    //alert(document.getElementById(DivtoHide).Href);
    if (document.getElementById(DivtoHide) != null)
    {
        /*//alert(document.getElementById(DivtoHide));
        try
        {   
        
            var cloneDiv = document.createElement('DIV');
            cloneDiv.innerHTML = document.getElementById(DivtoHide).innerHTML;
            document.getElementById(DivtoHide).parentNode.appendChild(cloneDiv);
            document.getElementById(DivtoHide).parentNode.removeChild(document.getElementById(DivtoHide));
        }
        catch(e)
        {
            //alert(e);
            document.getElementById(DivtoHide).style.display="none";
        }*/
        document.getElementById(DivtoHide).style.display="none";
        
    }
        
    document.getElementById("dvErrorMsg").style.display = "block";    
    document.getElementById("errorMsg").style.display = "block";
    document.getElementById("errorMsg").innerHTML = "Loading...";    

   
    return true;
}
function ShowLogin()
{
    parent.location.href ="/login.aspx";
}

function checkUserFormHomePage(basehost, mcid, landingid) {
                
        if(!CheckString(document.getElementById("firstname").value, 1))
        {
            showError("Please enter your first name.", "firstname","dvErrorMsg", "errorMsg");
            document.getElementById("firstname").className = "right_form_text_input_error";
            
            return;
        }
        else
            document.getElementById("firstname").className = "right_form_text_input";
        
        if(!CheckString(document.getElementById("lastname").value, 1))
        {
            showError("Please enter your last name.", "lastname","dvErrorMsg", "errorMsg");
            document.getElementById("lastname").className = "right_form_text_input_error";
            
            return;
        }
        else
            document.getElementById("lastname").className = "right_form_text_input";
        
        if(!CheckEmail(document.getElementById("emailaddress").value))
        {
            showError("Please enter a valid email address.", "emailaddress","dvErrorMsg", "errorMsg");
            document.getElementById("emailaddress").className = "right_form_text_input_error";
            
            return;
        }
        else
            document.getElementById("emailaddress").className = "right_form_text_input";
        
        
        if(!CheckString(document.getElementById("password").value, 4))
        {
            showError("Please enter a password - it must be at least 4 characters long.", "password","dvErrorMsg", "errorMsg");
            document.getElementById("password").className = "right_form_text_input_error";
            
            return;
        }
        else
            document.getElementById("password").className = "right_form_text_input";
        
        if(document.getElementById("password").value != document.getElementById("confirmpassword").value)
        {
            showError("The confirmation password is different.", "confirmpassword","dvErrorMsg", "errorMsg");
            document.getElementById("confirmpassword").className = "right_form_text_input_error";
            
            return;
        }
        else
            document.getElementById("confirmpassword").className = "right_form_text_input";
        
        if(!CheckPhoneNumber(document.getElementById("tbHomePhone1").value, 3))
        {
            showError("Please enter your home phone number.", "tbHomePhone1", "dvErrorMsg", "errorMsg");
            document.getElementById("tbHomePhone1").className = "right_form_text_input_phone3_error";
            return;
        }
        else
            document.getElementById("tbHomePhone1").className = "right_form_text_input_phone3";
        if(!CheckPhoneNumber(document.getElementById("tbHomePhone2").value, 3))
        {
            showError("Please enter your home phone number.", "tbHomePhone2", "dvErrorMsg", "errorMsg");
            document.getElementById("tbHomePhone2").className = "right_form_text_input_phone3_error";
            return;
        }
        else
            document.getElementById("tbHomePhone2").className = "right_form_text_input_phone3";                  
        if(!CheckPhoneNumber(document.getElementById("tbHomePhone3").value, 4))
        {
            showError("Please enter your home phone number.", "tbHomePhone3", "dvErrorMsg", "errorMsg");
            document.getElementById("tbHomePhone3").className = "right_form_text_input_phone4_error";
            return;
        }
        else
            document.getElementById("tbHomePhone3").className = "right_form_text_input_phone4";
        
        hideError("dvErrorMsg");
        ShowLoading("dvLoading", "butsubmit");

        document.getElementById("__VIEWSTATE").value = "";
        
        var form;
        
        if (document.getElementById("form1") != null) {
            form = document.getElementById("form1");
        }
        if (document.getElementById("aspnetForm") != null) {
            form = document.getElementById("aspnetForm");
        }
        
        form.action= "https://" + location.host + "/promotions/signup.aspx?MCID=" + mcid;
        
        form.submit();
}
