﻿// JScript File
<!--

var regExEmailAddress = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var regExAlphaWithSpace = /^([A-Za-z ]+)$/;
var regExAlphaforCity = /^([A-Za-z\s]+)$/;
var regExAlpha = /^([A-Za-z]+)$/;
var regExWord = /^([A-Za-z0-9_-]+)$/;
var regExWhiteSpace = /^(\s)*$/;
var regExZipCode = /^([0-9]{5})$/;

var stepNumber = 1;

function Validate(value, regEx)
{
    return regEx.test(value);
}

function IsEmpty(value)
{
    return regExWhiteSpace.test(value);
}

function OpenPopup(url, name)
{
    var popupWindow = window.open(url, name);
    popupWindow.focus();
}
function CloseWindow()
{
    window.opener = self;
    window.open('','_self','');
    window.close();
}

function BodyLoad()
{
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndCall);
    
    var btnSubmit = document.getElementById("btnSubmit");
    
    if(btnSubmit)
    {
        var attrSubmitted = btnSubmit.getAttribute("submitted");
        
        if(!attrSubmitted || attrSubmitted == "false")
        {
            Atlas.Action("view||entryform|");
        }
        
        if(navigator.userAgent.indexOf("MSIE") != -1)
        {
            document.getElementById("File").style["marginTop"] = "34px";
        }
        
        else if(navigator.userAgent.indexOf("Firefox") != -1)
        {
            document.getElementById("File").style["marginTop"] = "26px";
        }
    }
}

function EndCall(sender, args)
{
    var duplicate = false;
    var tbDesiredUserName = document.getElementById("tbDesiredUserName");
    
    if(tbDesiredUserName)
    {
        var attrDuplicate = tbDesiredUserName.getAttribute("duplicate");
        
        if(!attrDuplicate || attrDuplicate == "false")
        {
            duplicate = false;
        }
        else
        {
            duplicate = true;
        }
    }
    
    var fuImageFile = document.getElementById("File");
        
    if(!duplicate && fuImageFile && fuImageFile.value.length != 0)
    {
        var errorObj = args.get_error();
       
        if (errorObj == null)
        {
            document.getElementById('EntryID').value = document.getElementById('hdMediaID').value;
            document.getElementById('ReturnURL').value = window.location.href + "&UploadStatus=Success";
            document.getElementById('FailureURL').value = window.location.href + "&UploadStatus=Failure";
            
            var uploadForm = document.forms['uploadForm'];
            
            if(uploadForm)
            {
                uploadForm.action = document.getElementById('hdLevel3Url').value;
                var btn = document.getElementById('UploadImage');
                btn.click();
            }
        }
    }        
}

function MaxFileSizeExceeded()
{
    alert("Recipe image is not uploaded, because it exceeded maximum file size (24K).\n\n* [Default recipe image will be displayed].");
}

function RecipeImageChange()
{
    document.getElementById('tbFileName').value = document.getElementById('File').value;
    Atlas.Action("click|uploadimage|entryform");
}

function ShowNextStep(currentDivId, nextDivId)
{
    var divUploadForm = document.getElementById("divUploadForm");
    
    switch(stepNumber)
    {
        case 1:
            if(!ValidateStep1())
            {
                return;
            }
            divUploadForm.style["visibility"] = "visible";
            stepNumber++;
            break;
            
        case 2: 
            if(!ValidateStep2())
            {
                return;
            }
            divUploadForm.style["visibility"] = "hidden";
            DisplayInformation();
            stepNumber++;
            break;
        
        case 3:
            divUploadForm.style["visibility"] = "hidden";
            stepNumber = 1;
            break;
        
        default: 
            divUploadForm.style["visibility"] = "hidden";
            break;
    }
    
    var currentDiv = document.getElementById(currentDivId);
    var nextDiv = document.getElementById(nextDivId);
    currentDiv.style["visibility"] = "hidden";
    nextDiv.style["visibility"] = "visible";
    window.scrollTo(0,0);
}

function ValidateStep1()
{
    var desiredUserNameCaption = document.getElementById("lblDesiredUserNameCaption");
    var firstNameCaption = document.getElementById("lblFirstNameCaption");
    var lastNameCaption = document.getElementById("lblLastNameCaption");
    var streetAddressCaption = document.getElementById("lblStreetAddressCaption");
    var aptUnitCaption = document.getElementById("lblAptUnitCaption");
    var cityCaption = document.getElementById("lblCityCaption");
    var stateCaption = document.getElementById("lblStateCaption");
    var zipCodeCaption = document.getElementById("lblZipCodeCaption");
    var emailAddressCaption = document.getElementById("lblEmailAddressCaption");
    
    var desiredUserNameValidator = document.getElementById("lblDesiredUserNameValidator");
    var firstNameValidator = document.getElementById("lblFirstNameValidator");
    var lastNameValidator = document.getElementById("lblLastNameValidator");
    var streetAddressValidator = document.getElementById("lblStreetAddressValidator");
    var aptUnitValidator = document.getElementById("lblAptUnitValidator");
    var cityValidator = document.getElementById("lblCityValidator");
    var stateValidator = document.getElementById("lblStateValidator");
    var zipCodeValidator = document.getElementById("lblZipCodeValidator");
    var emailAddressValidator = document.getElementById("lblEmailAddressValidator");
    
    var desiredUserName = document.getElementById("tbDesiredUserName");
    var firstName = document.getElementById("tbFirstName");
    var lastName = document.getElementById("tbLastName");
    var streetAddress = document.getElementById("tbStreetAddress");
    var aptUnit = document.getElementById("tbAptUnit");
    var city = document.getElementById("tbCity");
    var state = document.getElementById("ddlState");
    var zipCode = document.getElementById("tbZipCode");
    var emailAddress = document.getElementById("tbEmailAddress");
    
    var isValid = true;
    
    if(IsEmpty(desiredUserName.value))
    {
        desiredUserNameCaption.style['color'] = "Red";
        desiredUserNameValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(!Validate(desiredUserName.value, regExWord))
    {
        desiredUserNameCaption.style['color'] = "Red";
        desiredUserNameValidator.innerHTML = "Invalid";
        isValid = false;
    }
    else
    {
        desiredUserNameCaption.style['color'] = "";
        desiredUserNameValidator.innerHTML = "";
    }
    
    if(IsEmpty(firstName.value))
    {
        firstNameCaption.style['color'] = "Red";
        firstNameValidator.innerHTML = "Required";    
        isValid = false;
        
    }
    else if(!Validate(firstName.value, regExAlphaWithSpace))
    {
        firstNameCaption.style['color'] = "Red";
        firstNameValidator.innerHTML = "Invalid";
        isValid = false;
    }
    else
    {
        firstNameCaption.style['color'] = "";
        firstNameValidator.innerHTML = "";
    }
    
    if(IsEmpty(lastName.value))
    {   
        lastNameCaption.style['color'] = "Red";
        lastNameValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(!Validate(lastName.value, regExAlpha))
    {
        lastNameCaption.style['color'] = "Red";
        lastNameValidator.innerHTML = "Invalid";
        isValid = false;
    }
    else
    {
        lastNameCaption.style['color'] = "";
        lastNameValidator.innerHTML = "";
    }
    
    if(IsEmpty(streetAddress.value))
    {
        streetAddressCaption.style['color'] = "Red";
        streetAddressValidator.innerHTML = "Required";
        isValid = false;
    }
    else
    {
        streetAddressCaption.style['color'] = "";
        streetAddressValidator.innerHTML = "";
    }
    
    if(IsEmpty(city.value))
    {
        cityCaption.style['color'] = "Red";
        cityValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(!Validate(city.value, regExAlphaforCity))
    {
        cityCaption.style['color'] = "Red";
        cityValidator.innerHTML = "Invalid";
        isValid = false;
    }
    else
    {
        cityCaption.style['color'] = "";
        cityValidator.innerHTML = "";
    }
    
    if(state.options[state.selectedIndex].value.length == 0)
    {
        stateCaption.style['color'] = "Red";
        stateValidator.innerHTML = "Required";
        isValid = false;
    }
    else
    {
        stateCaption.style['color'] = "";
        stateValidator.innerHTML = "";
    }
    
    if(IsEmpty(zipCode.value))
    {
        zipCodeCaption.style['color'] = "Red";
        zipCodeValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(!Validate(zipCode.value, regExZipCode))
    {
        zipCodeCaption.style['color'] = "Red";
        zipCodeValidator.innerHTML = "Enter valid zip code";
        isValid = false;
    }
    else
    {
        zipCodeCaption.style['color'] = "";
        zipCodeValidator.innerHTML = "";
    }
    
    if(IsEmpty(emailAddress.value))
    {
        emailAddressCaption.style['color'] = "Red";
        emailAddressValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(!Validate(emailAddress.value, regExEmailAddress))
    {
        emailAddressCaption.style['color'] = "Red";
        emailAddressValidator.innerHTML = "Enter valid email address";
        isValid = false;
    }
    else
    {
        emailAddressCaption.style['color'] = "";
        emailAddressValidator.innerHTML = "";
    }
    
    return isValid;
}

function ValidateStep2()
{
    var recipeTitleCaption = document.getElementById("lblRecipeTitleCaption");
    var recipeIngredientsCaption = document.getElementById("lblRecipeIngredientsCaption");
    var recipeInstructionsCaption = document.getElementById("lblRecipeInstructionsCaption");
    var recipeImageCaption = document.getElementById("lblRecipeImageCaption");
    
    var recipeTitleValidator = document.getElementById("lblRecipeTitleValidator");
    var recipeIngredientsValidator = document.getElementById("lblRecipeIngredientsValidator");
    var recipeInstructionsValidator = document.getElementById("lblRecipeInstructionsValidator");
    var recipeImageValidator = document.getElementById("lblRecipeImageValidator");
    
    var recipeTitle = document.getElementById("tbRecipeTitle");
    var recipeIngredients = document.getElementById("tbRecipeIngredients");
    var recipeInstructions = document.getElementById("tbRecipeInstructions");
    var recipeImage = document.getElementById("tbFileName");
    
    var isValid = true;
    
    if(recipeTitle.value.length == 0)
    {
        recipeTitleCaption.style['color'] = "Red";
        recipeTitleValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(recipeTitle.value.length > 50)
    {
        recipeTitleCaption.style['color'] = "Red";
        recipeTitleValidator.innerHTML = "Character length exceeded";
        isValid = false;
    }
    else
    {
        recipeTitleCaption.style['color'] = "";
        recipeTitleValidator.innerHTML = "";
    }
    
    if(recipeIngredients.value.length == 0)
    {
        recipeIngredientsCaption.style['color'] = "Red";
        recipeIngredientsValidator.innerHTML = "Required";    
        isValid = false;
        
    }
    else if(recipeIngredients.value.length > 900)
    {
        recipeIngredientsCaption.style['color'] = "Red";
        recipeIngredientsValidator.innerHTML = "Character length exceeded";
        isValid = false;
    }
    else
    {
        recipeIngredientsCaption.style['color'] = "";
        recipeIngredientsValidator.innerHTML = "";
    }
    
    if(recipeInstructions.value.length == 0)
    {   
        recipeInstructionsCaption.style['color'] = "Red";
        recipeInstructionsValidator.innerHTML = "Required";
        isValid = false;
    }
    else if(recipeInstructions.value.length > 1600)
    {
        recipeInstructionsCaption.style['color'] = "Red";
        recipeInstructionsValidator.innerHTML = "Character length exceeded";
        isValid = false;
    }
    else
    {
        recipeInstructionsCaption.style['color'] = "";
        recipeInstructionsValidator.innerHTML = "";
    }
    
    if(recipeImage.value.length != 0)
    {
        fileTypes = ['gif', 'jpg', 'jpeg', 'png'];
        fileType = recipeImage.value.substring(recipeImage.value.lastIndexOf(".") + 1);
        
        if(fileTypes.join(".").indexOf(fileType.toLowerCase()) == -1)
        {
            recipeImageCaption.style['color'] = "Red";
            recipeImageValidator.innerHTML = "* Only ." + fileTypes.join(", .") + " file types allowed";
            isValid = false;
        }
        else
        {
            recipeImageCaption.style['color'] = "";
            recipeImageValidator.innerHTML = "";
        }
    }
    else
    {
        recipeImageCaption.style['color'] = "";
        recipeImageValidator.innerHTML = "";
    }
    
    return isValid;
}

function DisplayInformation()
{
    var lblDesiredUserName = document.getElementById("lblDesiredUserName");
    var lblFirstName = document.getElementById("lblFirstName");
    var lblLastName = document.getElementById("lblLastName");
    var lblStreetAddress = document.getElementById("lblStreetAddress");
    var lblAptUnit = document.getElementById("lblAptUnit");
    var lblCity = document.getElementById("lblCity");
    var lblState = document.getElementById("lblState");
    var lblZipCode = document.getElementById("lblZipCode");
    var lblEmailAddress = document.getElementById("lblEmailAddress");
    var lblRecipeTitle = document.getElementById("lblRecipeTitle");
    var lblRecipeIngredients = document.getElementById("lblRecipeIngredients");
    var lblRecipeInstructions = document.getElementById("lblRecipeInstructions");
    var lblRecipeImage = document.getElementById("lblRecipeImage");
    
    var lblUploadSuccessMessage = document.getElementById("lblUploadSuccessMessage");
    
    var tbDesiredUserName = document.getElementById("tbDesiredUserName");
    var tbFirstName = document.getElementById("tbFirstName");
    var tbLastName = document.getElementById("tbLastName");
    var tbStreetAddress = document.getElementById("tbStreetAddress");
    var tbAptUnit = document.getElementById("tbAptUnit");
    var tbCity = document.getElementById("tbCity");
    var ddlState = document.getElementById("ddlState");
    var tbZipCode = document.getElementById("tbZipCode");
    var tbEmailAddress = document.getElementById("tbEmailAddress");
    var tbRecipeTitle = document.getElementById("tbRecipeTitle");
    var tbRecipeIngredients = document.getElementById("tbRecipeIngredients");
    var tbRecipeInstructions = document.getElementById("tbRecipeInstructions");
    var tbFileName = document.getElementById("tbFileName");
    
    lblDesiredUserName.innerHTML = tbDesiredUserName.value;
    lblFirstName.innerHTML = tbFirstName.value;
    lblLastName.innerHTML = tbLastName.value;
    lblStreetAddress.innerHTML = tbStreetAddress.value;
    lblAptUnit.innerHTML = tbAptUnit.value;
    lblCity.innerHTML = tbCity.value;
    lblState.innerHTML = ddlState.options[ddlState.selectedIndex].text;
    lblZipCode.innerHTML = tbZipCode.value;
    lblEmailAddress.innerHTML = tbEmailAddress.value;
    lblRecipeTitle.innerHTML = tbRecipeTitle.value;
    lblRecipeIngredients.innerHTML = ReplaceAll(tbRecipeIngredients.value, "\n", "<br/>");
    lblRecipeInstructions.innerHTML = ReplaceAll(tbRecipeInstructions.value, "\n", "<br/>");
    
    if(tbFileName.value.length != 0)
    {
        lblRecipeImage.innerHTML = tbFileName.value.substring(tbFileName.value.lastIndexOf("\\") + 1);
        lblUploadSuccessMessage.innerHTML = "Image Upload Successful";
    }
    else
    {
        lblRecipeImage.innerHTML = "";
        lblUploadSuccessMessage.innerHTML = "( no recipe image )";
    }
}

function ReplaceAll(mainString, findString, newString)
{
    while(mainString.indexOf(findString) >= 0)
    {
        mainString = mainString.replace(findString, newString);
    }
    
    return mainString;
}

/***** Code Of Conduct *****/
function BodyLoadCOC()
{
    document.getElementById("imgSponsorLogo").src = 
        window.opener.document.getElementById("imgSponsorLogo").src;
}
-->