﻿function jumpToFieldAtLimit(sValue, sTargetElementID, iLimit) {
    if(document.getElementById(sTargetElementID) != undefined) {
        if(sValue.length >= iLimit) {
            document.getElementById(sTargetElementID).select();
            document.getElementById(sTargetElementID).focus();
        }
    }
}

function checkAll(bCheck) {
    var arrElement = document.getElementsByTagName("input");
    for(i=0; i<arrElement.length; i++) {
        if(arrElement[i].type == "checkbox") {
            arrElement[i].checked = bCheck;
        }
    }
}

function setFieldType(sFieldTypeID, sLabelTextboxID, sValueHolderID, sCopyStatesFromID) {
    if(document.getElementById(sLabelTextboxID) != undefined && document.getElementById(sValueHolderID) != undefined) {
        var eLabel = document.getElementById(sLabelTextboxID);
        var eHolder = document.getElementById(sValueHolderID);

        var sHTML = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
        var sStateDropDownID = "";
        switch(Number(sFieldTypeID)) {
            case 1:
                eLabel.value = "Alternate Email";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" width=\"110\" style=\"padding-right: 5px;\">Email Address:</td><td align=\"left\" style=\"padding-left: 3px;\">";
                sHTML += "<input type=\"text\" style=\"width: 200px\" name=\"input_Detail_Value1\" id=\"input_Detail_Value1\" />";
                sHTML += "</td></tr>";
                break;
            case 2:
                eLabel.value = "Alternate Phone";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" width=\"110\" style=\"padding-right: 5px;\">Number:</td><td align=\"left\" style=\"padding-left: 3px;\">";
                sHTML += "<input type=\"text\" style=\"width: 50px\" name=\"input_Detail_Value1\" onkeyup=\"jumpToFieldAtLimit(this.value, 'input_Detail_Value2', 3);\" maxlength=\"3\" id=\"input_Detail_Value1\" /> - ";
                sHTML += "<input type=\"text\" style=\"width: 50px\" name=\"input_Detail_Value2\" onkeyup=\"jumpToFieldAtLimit(this.value, 'input_Detail_Value3', 3);\" maxlength=\"3\" id=\"input_Detail_Value2\" /> - ";
                sHTML += "<input type=\"text\" style=\"width: 50px\" name=\"input_Detail_Value3\" maxlength=\"4\" id=\"input_Detail_Value3\" />";
                sHTML += "</td></tr>";
                break;
            case 3:
                eLabel.value = "Alternate Address";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" width=\"110\" style=\"padding-right: 5px;\">Address Line 1:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><input type=\"text\" style=\"width: 150px\" name=\"input_Detail_Value1\" id=\"input_Detail_Value1\" /></td></tr>";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" style=\"padding-right: 5px;\">Address Line 2:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><input type=\"text\" style=\"width: 150px\" name=\"input_Detail_Value2\" id=\"input_Detail_Value2\" /></td></tr>";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" style=\"padding-right: 5px;\">City:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><input type=\"text\" style=\"width: 150px\" name=\"input_Detail_Value3\" id=\"input_Detail_Value3\" /></td></tr>";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" style=\"padding-right: 5px;\">State:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><select name=\"input_Detail_Value4\" id=\"input_Detail_Value4\" style=\"width: 150px;\"></select></td></tr>";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" style=\"padding-right: 5px;\">Zip:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><input type=\"text\" style=\"width: 150px\" name=\"input_Detail_Value5\" id=\"input_Detail_Value5\" /></td></tr>";
                sStateDropDownID = "input_Detail_Value4";
                break;
            case 4:
                eLabel.value = "Alternate Contact Name";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" width=\"110\" style=\"padding-right: 5px;\">First Name:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><input type=\"text\" style=\"width: 150px\" name=\"input_Detail_Value1\" id=\"input_Detail_Value1\" /></td></tr>";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" style=\"padding-right: 5px;\">Last Name:</td><td style=\"padding-left: 3px; padding-top: 5px; padding-bottom: 5px;\" align=\"left\"><input type=\"text\" style=\"width: 150px\" name=\"input_Detail_Value2\" id=\"input_Detail_Value2\" /></td></tr>";
                break;
            default:
                eLabel.value = "";
                sHTML += "<tr><td align=\"right\" class=\"Title_Small\" width=\"110\" style=\"padding-right: 5px;\">Value:</td><td style=\"padding-left: 3px;\" align=\"left\">";
                sHTML += "<input type=\"text\" style=\"width: 200px\" name=\"input_Detail_Value1\" id=\"input_Detail_Value1\" />";
                sHTML += "</td></tr>";
                break;
        }
        sHTML += "</table>";
        eHolder.innerHTML = sHTML;
        
        if(sStateDropDownID != "") {
            //Add states
            if(document.getElementById(sCopyStatesFromID) != undefined) {
                for(i=0; i<document.getElementById(sCopyStatesFromID).options.length; i++) {
                    document.getElementById(sStateDropDownID).add(new Option(document.getElementById(sCopyStatesFromID).options[i].text, document.getElementById(sCopyStatesFromID).options[i].value));
                }
            }
            else {
                alert(sCopyStatesFromID);
            }
        }
    }
}

function validateEmailAddress(sEmailAddress) {
    var bIsValid = false;
    
    if (sEmailAddress.split('@').length == 2) {
        if (sEmailAddress.split('@')[1].split('.').length == 2) {
            bIsValid = true;
        }
    }
    
    return bIsValid;
}

function validatePhoneNumber(sNumbersOnly) {
    return sNumbersOnly.length == 10 && !isNaN(sNumbersOnly);
}


//Design Setup Functions

function outlineRegion(sElementID) {
    if(document.getElementById(sElementID) != undefined) {
        document.getElementById(sElementID).style.border = "2px #FFFFFF dotted";
    }
}

function removeRegionOutline(sElementID) {
    if(document.getElementById(sElementID) != undefined) {
        document.getElementById(sElementID).style.border = "none";
    }
}

function editRegion(sRegion, sRegionLabel) {
    if(document.getElementById("div_PageCover") != undefined) {
        document.getElementById("div_PageCover").innerHTML = "<div id=\"div_RegionEditor\" style=\"text-align: center; padding-top: 25px;\"></div>";
        
        var sEditorHTML = "";
        
        var sButtonStyle = "font-family: Trebuchet MS, Arial, sans-serif; font-size: 12px; border: 0px; width: 48px; height: 21px; background-image: url(Media/GUI/Button_Tiny.gif); background-repeat: no-repeat; background-position: top left; background-color: transparent; color: #FFFFFF; font-size: 11px; text-align: center;";
        if(sRegion != "Logo") {
            sEditorHTML += "<div style=\"width: 500px; height: 300px; overflow: hidden;\">";
            sEditorHTML += "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\" style=\"border: 1px #003993 solid; background-color: #FFFFFF;\">";
            sEditorHTML += "<tr><td style=\"font-family: Trebuchet MS, Arial, sans-serif; font-weight: bold; color: #FFFFFF; background-color: #003790; border-bottom: 1px #003993 solid; background-image: url(Media/GUI/TableHeader_Tile.gif); background-position: top; background-repeat: repeat-x;\" colspan=\"2\">Change " + sRegionLabel + "</td></tr>";
            
            //Editable Text
            var sValue = document.getElementById("hidden_" + sRegion).value;
            sEditorHTML += "<tr><td align=\"right\" valign=\"top\" height=\"100\"><span style=\"font-family: Trebuchet MS, Arial, sans-serif; font-size: 12px; font-weight: bold; color: #003A94;\">Text:</td><td valign=\"top\"><div style=\"float: right\"><input type=\"button\" value=\"OK\" onclick=\"updateRegion('" + sRegion + "', '" + sRegionLabel + "')\" style=\"" + sButtonStyle + "\" /> <input type=\"button\" value=\"Cancel\" onclick=\"toggleModalCover(false);\" style=\"" + sButtonStyle + "\" /></div><input type=\"text\" id=\"input_" + sRegion + "\" style=\"font-family: Trebuchet MS, Arial, sans-serif; font-size: 12px; width: 300px;\" value=\"" + sValue + "\" /></td></tr>";        
            
            sEditorHTML += "</table>";
            sEditorHTML += "</div>";
        }
        else {
            sEditorHTML = "<iframe src=\"DesignSetup_FileBrowser.aspx\" frameborder=\"0\" scrolling=\"no\" width=\"670\" height=\"375\" name=\"FileBrowser\"></iframe>";
        }
        
        document.getElementById("div_RegionEditor").innerHTML = sEditorHTML;
        
        toggleModalCover(true);
       
    }
}

function toggleModalCover(bVisible) {
    if(document.getElementById("div_PageCover") != undefined) {
        if(bVisible) {
            document.getElementById("div_PageCover").style.visibility = "visible";
            document.getElementById("div_PageCover").style.display = "block";
        }
        else {
            document.getElementById("div_PageCover").style.visibility = "hidden";
            document.getElementById("div_PageCover").style.display = "none";
        }
    }
}

function updateRegion(sRegion, sRegionLabel) {
    if(sRegion != "Logo") {
        if(document.getElementById("input_" + sRegion) != undefined) {
            var sNewValue = document.getElementById("input_" + sRegion).value;
            var sOldValue = document.getElementById("hidden_" + sRegion).value;
            
            if(sNewValue != sOldValue) {
                var sErrorMessage = "";
                
                if((sRegion == "SiteTitle" || sRegion == "Tagline") && sNewValue == "") {
                    sErrorMessage = "Please enter a " + sRegionLabel;
                }
                
                if(sRegion == "OptionalHeadline" && sNewValue == "") {
                    sNewValue = "[NO HEADLINE]";
                }
                
                if(sErrorMessage == "") {
                    window.parent.document.getElementById("ctl00_ContentPlaceHolder1_hidden_Changed").value = "1";
                    window.parent.document.getElementById("ctl00_ContentPlaceHolder1_hidden_EnforceChange").value = "1";
                    document.getElementById("region_" + sRegion).innerText = sNewValue;
                    document.getElementById("hidden_" + sRegion).innerText = sNewValue;
                    
                    toggleModalCover(false);
                }
                else {
                    alert(sErrorMessage);
                }
            }
            else {
                toggleModalCover(false);
            }
        }
        else {
            toggleModalCover(false);
        }
    }
    else {
        if(document.getElementById("hidden_" + sRegion) != undefined) {
            var sNewURL = window.FileBrowser.document.getElementById("hidden_FileURL").value;
            var sNewValue = window.FileBrowser.document.getElementById("hidden_FileID").value;
            
            if(sNewValue != "-1") {
                var sOldURL = document.getElementById("region_Logo").src;
                
                if(sNewURL != sOldURL) {
                    window.parent.document.getElementById("ctl00_ContentPlaceHolder1_hidden_Changed").value = "1";
                    window.parent.document.getElementById("ctl00_ContentPlaceHolder1_hidden_EnforceChange").value = "1";
                    document.getElementById("region_Logo").src = sNewURL;
                    document.getElementById("hidden_Logo").value = sNewValue;
                    
                    toggleModalCover(false);
                }
                else {
                    toggleModalCover(false);
                }
            }
            else {
                alert("Please select a new image to use a logo");
            }
        }
        else {
            toggleModalCover(false);
        }
    }
}

function chooseLogo(sFileID, sFileURL) {
    if(document.getElementById("hidden_FileID") != undefined && document.getElementById("hidden_FileURL") != undefined) {
        if(document.getElementById("thumb_File_" + document.getElementById("hidden_FileID").value) != undefined) {
            document.getElementById("thumb_File_" + document.getElementById("hidden_FileID").value).style.border = "0px"
        }
        
        document.getElementById("thumb_File_" + sFileID).style.border = "2px #000000 dotted";
        document.getElementById("hidden_FileID").value = sFileID;
        document.getElementById("hidden_FileURL").value = sFileURL;
		
		if(document.getElementById("hidden_RequireSaveButton") != undefined) {
			if(document.getElementById("hidden_RequireSaveButton").value.toLowerCase() == "false") {
				window.parent.updateRegion('Logo', 'Logo');
			}
		}
    }
}

function toggleModalPopup(sCoverDivID, sContentDivID, bForceOpen) {
    if (document.getElementById(sCoverDivID) != undefined && document.getElementById(sContentDivID) != undefined) {
        document.getElementById(sCoverDivID).style.visibility = document.getElementById(sCoverDivID).style.visibility == "hidden" || bForceOpen ? "visible" : "hidden";
        document.getElementById(sCoverDivID).style.display = document.getElementById(sCoverDivID).style.display == "none" || bForceOpen ? "block" : "none";
        document.getElementById(sContentDivID).style.visibility = document.getElementById(sContentDivID).style.visibility == "hidden" || bForceOpen ? "visible" : "hidden";
        document.getElementById(sContentDivID).style.display = document.getElementById(sContentDivID).style.display == "none" || bForceOpen ? "block" : "none";

        //Size Cover to Height of Page
        var sPageHeight = "100%";
        var iNewYPos = 0;
        if (navigator.appName == "Microsoft Internet Explorer") {
            sPageHeight = (document.body.scrollHeight + 100) + "px";
            if (document.documentElement && document.documentElement.scrollTop) {
                iNewYPos = document.documentElement.scrollTop;
            }
            else if (document.body) {
                iNewYPos = document.body.scrollTop;
            }
        }
        else {
            sPageHeight = String(Number(window.pageYOffset) + Number(document.body.scrollHeight)) + "px";
            iNewYPos = window.pageYOffset;
        }

        document.getElementById(sCoverDivID).style.height = sPageHeight;
        if(document.getElementById(sContentDivID).style.position == "absolute") {
            document.getElementById(sContentDivID).style.top = String(iNewYPos + 100) + "px"; 
        }
    }
}

function openPopup(sPageURL, sWindowName, iWidth, iHeight) {
    var iLeft = (screen.width/2)-(iWidth/2);
    var iTop = (screen.height/2)-(iHeight/2);
    var targetWin = window.open (sPageURL, sWindowName, 'toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+iWidth+', height='+iHeight+', top='+iTop+', left='+iLeft);
}