﻿var maxRegionStackSize = 20;
var licenseUseNumber = 1;
var maxLicenseUseNumber = 12;
var maxMatrixIDCodeLength = 8;

function selectPack()
{
    if (document.getElementById("lstPacks").value == "")
    {
        return;
    }
    
    var customFields = getHttpResponse("../Postback/RetrievePackFields.aspx?packId=" + encodeURIComponent(trim(document.getElementById("lstPacks").value)));

    if (!customFields || trim(customFields) == "")
    {
        raiseError("No pack id found. No license code can be generated.");
        return;
    }

    var customFieldArr = customFields.split('|');
    
    if (customFieldArr.length != 6 || trim(customFieldArr[0]) == "" || trim(customFieldArr[1]) == "")
    {
        raiseError("Pack id is corrupt. No license code can be generated.");
        return;
    }
    
    licenseUseNumber = parseInt(customFieldArr[0]);
    
    if (licenseUseNumber > maxLicenseUseNumber)
    {
        raiseError("Pack id has too many usages. No license code can be generated.");
        return;
    }
    
    if (trim(customFieldArr[5]) != "")
    {
        displayDescription(customFieldArr[5]);
    }

    if (trim(customFieldArr[2]) == "")
    {
        displayDuration(customFieldArr[1]);
    }
    else
    {
        displaySingleDuration(customFieldArr[2]);
    }

    if (trim(customFieldArr[3]) != "")
    {
        displayNonApplicableRegion();
    }

    if (trim(customFieldArr[4]) != "")
    {
        displaySingleIndustry(customFieldArr[4]);
    }

    generateLicenseCodes();
}

function displayDescription(description)
{
    if (description && trim(description) != "")
    {
        document.getElementById("txtDescription").innerHTML = trim(description);

        if (document.getElementById("trDescription").style.display == "none")
	        document.getElementById("trDescription").style.display = "";
	}
}

function displayRightsReadyDescription(description)
{
    if (description && trim(description) != "")
    {
        document.getElementById("txtRightsReadyDescription").innerHTML = trim(description);

        if (document.getElementById("trRightsReadyDescription").style.display == "none")
	        document.getElementById("trRightsReadyDescription").style.display = "";
	}
}

function displayDuration(mediaMatrixLicenseCode)
{
    var durationList = getHttpResponse("../Postback/RetrieveDurationPacks.aspx");

    clearSelect("lstDuration");
    
    if (durationList && trim(durationList) != "")
    {
        var durationArr = durationList.split("|||");

        if (durationArr.length == 1)
        {
            document.getElementById("lstDuration").options[0] = new Option(durationArr[0].split("||")[0], durationArr[0].split("||")[1]);
            document.getElementById("lstDuration").selectedIndex = 0;

            durationSelected();
        }
        else
        {
    	    document.getElementById("lstDuration").options[0] = new Option("-- What is the duration of the image usage? --", "");

            for (var i=0; i < durationArr.length; i++)
            {
                if (trim(durationArr[i]).indexOf("||") > 0)
                {
	                document.getElementById("lstDuration").options[i+1] = new Option(durationArr[i].split("||")[0], durationArr[i].split("||")[1]);
                }
            }
        }
	}
	else
	{
	    raiseError("No duration item found. Cannot generate media license.");
	    return;
	}
}

function displaySingleDuration(durationLicenseCode)
{
    var duration = getHttpResponse("../Postback/RetrieveSingleDuration.aspx?durationLicenseCode=" + durationLicenseCode);

    clearSelect("lstDuration");
    
    if (!duration || trim(duration) == "")
    {
	    raiseError("No duration item found. Cannot generate media license.");
	    return;
    }

    document.getElementById("lstDuration").options[0] = new Option(duration, durationLicenseCode);
    durationSelected();

    document.getElementById("trDuration").style.display = "none";
    document.getElementById("trDurationSeparator").style.display = "none";
}

function durationSelected()
{
    if (document.getElementById("lstDuration").value == "")
    {
        resetControls(0);
        return;
    }

    document.getElementById("lblDurationCode").innerHTML = document.getElementById("lstDuration").value;
    document.getElementById("lblDurationCode").title = document.getElementById("lblDurationCode").innerHTML;

    if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
        document.getElementById("lstDuration").style.backgroundColor = "#ffffff";

    generateLicenseCodes();
}

function saveDate()
{
	if(document.getElementById("txt_pp_LicenseStartDate").value)
	{	
	    var customFields = getHttpResponse("../Postback/SetLicenseStartDateForPlusPacks.aspx?startDate=" + encodeURIComponent(trim(document.getElementById("txt_pp_LicenseStartDate").value)));
    
	    if (customFields)
		{
			alert(customFields);
		}
    }
}

function displayNonApplicableRegion()
{
    resetControls(1);
    
    clearSelect("lstRegion1");
    
    document.getElementById("lstRegion1").options[0] = new Option("Not Applicable or None", "8RXX");

    document.getElementById("lblRegionCode1").innerHTML = document.getElementById("lstRegion1").value;
    document.getElementById("lblRegionCode1").title = document.getElementById("lblRegionCode1").innerHTML;
    
    document.getElementById("trRegion1").style.display = "none";
}

function region1Selected()
{
    resetControls(2);
    
    if (document.getElementById("lstRegion1").value == "")
    {
        resetControls(1);
        return;
    }

    var menuList = getHttpResponse("../Postback/RetrieveRegionDetail.aspx?regionTerm=" + encodeURIComponent(trim(document.getElementById("lstRegion1").value)));

    clearSelect("lstRegionDetail1");

    if (menuList && trim(menuList) != "")
    {
        var menuArr = menuList.split("|");

        if (menuArr.length == 1)
        {
            document.getElementById("lstRegionDetail1").options[0] = new Option(menuArr[0], menuArr[0]);
            document.getElementById("lstRegionDetail1").selectedIndex = 0;

            region1DetailSelected();
        }
        else
        {
    	    document.getElementById("lstRegionDetail1").options[0] = new Option("-- Select a specific region --", "");

            for (var i=0; i < menuArr.length; i++)
            {
                if (trim(menuArr[i]) != "")
	                document.getElementById("lstRegionDetail1").options[i+1] = new Option(menuArr[i], menuArr[i]);
	            else
	                document.getElementById("lstRegionDetail1").options[i+1] = new Option("No Detail", "No Detail");
            }
        }
	}
	else
	{
        document.getElementById("lstRegionDetail1").options[0] = new Option("No Detail", "No Detail");

	    region1DetailSelected();
	}

    if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
        document.getElementById("lstRegion1").style.backgroundColor = "#ffffff";

    document.getElementById("trRegionDetail1").style.display = "";
    
    generateLicenseCodes();
}

function region1DetailSelected()
{
    if (document.getElementById("lstRegionDetail1").value == "")
    {
        resetControls(2);
        return;
    }

    var currentCode = trim(calculateRegionCode(1));

    document.getElementById("lblRegionCode1").innerHTML = currentCode;
    document.getElementById("lblRegionCode1").title = currentCode;

    if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
        document.getElementById("lstRegionDetail1").style.backgroundColor = "#ffffff";

    document.getElementById("btnAddRegion").style.visibility = "visible";
    
    generateLicenseCodes();
}

function regionSelected(controlNumber)
{
    clearRegionDetail(controlNumber);

    if (document.getElementById("lstRegion" + controlNumber).value == "")
    {
        clearRegion(controlNumber);
        regionDetailSelected(controlNumber);

        return;
    }

    var menuList = getHttpResponse("../Postback/RetrieveRegionDetail.aspx?regionTerm=" + encodeURIComponent(trim(document.getElementById("lstRegion" + controlNumber).value)));

    clearSelect("lstRegionDetail" + controlNumber);

    if (menuList && trim(menuList) != "")
    {
        var menuArr = menuList.split("|");

        if (menuArr.length == 1)
        {
            document.getElementById("lstRegionDetail" + controlNumber).options[0] = new Option(menuArr[0], menuArr[0]);
            document.getElementById("lstRegionDetail" + controlNumber).selectedIndex = 0;

            regionDetailSelected(controlNumber);
        }
        else
        {
    	    document.getElementById("lstRegionDetail" + controlNumber).options[0] = new Option("-- Select a specific region --", "");

            for (var i=0; i < menuArr.length; i++)
            {
                if (trim(menuArr[i]) != "")
	                document.getElementById("lstRegionDetail" + controlNumber).options[i+1] = new Option(menuArr[i], menuArr[i]);
	            else
	                document.getElementById("lstRegionDetail" + controlNumber).options[i+1] = new Option("No Detail", "No Detail");
            }
        }
	}
	else
	{
        document.getElementById("lstRegionDetail" + controlNumber).options[0] = new Option("No Detail", "No Detail");

        regionDetailSelected(controlNumber);
	}

    if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
        document.getElementById("lstRegion" + controlNumber).style.backgroundColor = "#ffffff";

    document.getElementById("trRegionDetail" + controlNumber).style.display = "";

    generateLicenseCodes();
}

function regionDetailSelected(controlNumber)
{
    if (document.getElementById("lstRegionDetail" + controlNumber).value == "")
    {
        document.getElementById("lblRegionCode" + controlNumber).innerHTML = "";
        document.getElementById("lblRegionCode" + controlNumber).title = "";

        return;
    }

    var currentCode = trim(calculateRegionCode(controlNumber));

    document.getElementById("lblRegionCode" + controlNumber).innerHTML = currentCode;
    document.getElementById("lblRegionCode" + controlNumber).title = currentCode;

    if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
        document.getElementById("lstRegionDetail" + controlNumber).style.backgroundColor = "#ffffff";

    generateLicenseCodes();
}

function addRegion()
{
    if (document.getElementById("lstRegion1").value == "" || document.getElementById("lstRegionDetail1").value == "")
    {
        alert("You must select the first region and detail before adding additional ones.");
        return;
    }

    var currentStackId = -1;

    for (var i=2; i <= maxRegionStackSize; i++)
    {
        if (document.getElementById("trRegion" + i).style.display == "none")
        {
            currentStackId = i;
            break;
        }
    }

    if (currentStackId == -1)
    {
        raiseError("Region stack out of bounds. Only " + maxRegionStackSize + " regions allowed.");
        return;
    }

    document.getElementById("trRegion" + currentStackId).style.display = "";
    document.getElementById("trRegionSeparator" + currentStackId).style.display = "";

    copyRegionValues(currentStackId);
}

function copyRegionValues(controlNumber)
{
    if (!document.getElementById("lstRegion1") || !document.getElementById("lstRegion" + controlNumber))
        return;

	for (var count = 0; count <= document.getElementById("lstRegion1").options.length; count++)
	{
	    try
	    {
	        document.getElementById("lstRegion" + controlNumber).options[count] = new Option(document.getElementById("lstRegion1").options[count].text, document.getElementById("lstRegion1").options[count].value);
	    }
	    catch(e)
	    {
	    }
	}
}

function removeRegion(controlNumber)
{
    document.getElementById("trRegion" + controlNumber).style.display = "none";
    document.getElementById("trRegionDetail" + controlNumber).style.display = "none";
    document.getElementById("trRegionSeparator" + controlNumber).style.display = "none";

    clearSelect("lstRegion" + controlNumber);
    clearSelect("lstRegionDetail" + controlNumber);

    document.getElementById("lblRegionCode" + controlNumber).innerHTML = "";
    document.getElementById("lblRegionCode" + controlNumber).title = "";

    generateLicenseCodes();
}

function clearRegion(controlNumber)
{
    if (document.getElementById("lstRegion" + controlNumber))
    {
        document.getElementById("lstRegion" + controlNumber).selectedIndex = 0;
        clearRegionDetail(controlNumber);
    }
}

function clearRegionDetail(controlNumber)
{
    if (document.getElementById("lstRegionDetail" + controlNumber))
    {
        document.getElementById("trRegionDetail" + controlNumber).style.display = "none";
        clearSelect("lstRegionDetail" + controlNumber);
    }
}

function calculateRegionCode(controlNumber)
{
    if (document.getElementById("lstRegion" + controlNumber).value == "")
    {
        raiseError("Not enough information provided to calculate a license code.");
        return "undefined";
    }

    var licenseCode = getHttpResponse("../Postback/CalculateRegionCode.aspx?regionTerm=" + encodeURIComponent(trim(document.getElementById("lstRegion" + controlNumber).value)) + "&regionDetailTerm=" + encodeURIComponent(trim(document.getElementById("lstRegionDetail" + controlNumber).value.replace("No Detail", ""))));

    if (!licenseCode || trim(licenseCode) == "")
    {
        raiseError("No region item found. No license code can be generated.");
        return "undefined";
    }

    return licenseCode;
}

function displaySingleIndustry(industryLicenseCode)
{
	for (var count = document.getElementById("lstIndustry").options.length-1; count >= 0; count--)
	{
	    if (trim(document.getElementById("lstIndustry").options[count].value) != trim(industryLicenseCode))
	        document.getElementById("lstIndustry").options[count] = null;
	}
	
	if (document.getElementById("lstIndustry").options.length < 1)
	{
	    raiseError("Pack has an invalid industry defined.");
	    return;
	}
	
	document.getElementById("lstIndustry").selectedIndex = 0;
	industrySelected();

    document.getElementById("trIndustry").style.display = "none";
    document.getElementById("trIndustrySeparator").style.display = "none";
}

function industrySelected()
{
    if (document.getElementById("lstIndustry").value == "")
    {
        resetControls(3);
        return;
    }

    var currentCode = trim(calculateIndustryCodes());

    if (currentCode.length > maxMatrixIDCodeLength)
    {
        document.getElementById("lblIndustryCode").innerHTML = currentCode.substring(0, maxMatrixIDCodeLength) + "...";
        document.getElementById("lblIndustryCode").title = currentCode;
    }
    else
    {
        document.getElementById("lblIndustryCode").innerHTML = currentCode;
        document.getElementById("lblIndustryCode").title = currentCode;
    }

    if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
        document.getElementById("lstIndustry").style.backgroundColor = "#ffffff";

    generateLicenseCodes();
}

function calculateIndustryCodes()
{
    if (document.getElementById("lstIndustry").value == "")
    {
        raiseError("Not enough information provided to calculate a license code.");
        return "undefined";
    }
    
    var industryCodes = "";

    for (var i=0; i < document.getElementById("lstIndustry").length; i++)
    {
        if (document.getElementById("lstIndustry")[i].selected == true)
            industryCodes += document.getElementById("lstIndustry")[i].value;
    }

    if (!industryCodes || trim(industryCodes) == "")
    {
        raiseError("No industry items found. No license code can be generated.");
        return "undefined";
    }

    return industryCodes;
}

function resetControls(index)
{
    if (index == -1)
    {
        document.getElementById("lblPackCode").innerHTML = "";
        document.getElementById("lblPackCode").title = "";

        document.getElementById("trDescription").style.display = "none";

        document.getElementById("lstDuration").selectedIndex = 0;

        document.getElementById("lblDurationCode").innerHTML = "";
        document.getElementById("lblDurationCode").title = "";

        document.getElementById("trRegionDetail1").style.display = "none";

        document.getElementById("lstRegion1").selectedIndex = 0;

        document.getElementById("lstRegionDetail1").selectedIndex = 0;

        document.getElementById("lblRegionCode1").innerHTML = "";
        document.getElementById("lblRegionCode1").title = "";

        document.getElementById("btnAddRegion").style.visibility = "hidden";

        document.getElementById("lblRegionCode1").innerHTML = "";
        document.getElementById("lblRegionCode1").title = "";

        for (var i = 2; i <= maxRegionStackSize; i++)
        {
            document.getElementById("trRegion" + i).style.display = "none";
            document.getElementById("trRegionDetail" + i).style.display = "none";
            document.getElementById("trRegionSeparator" + i).style.display = "none";

            document.getElementById("lstRegion" + i).selectedIndex = 0;           
            document.getElementById("lstRegionDetail" + i).selectedIndex = 0;

            document.getElementById("lblRegionCode" + i).innerHTML = "";
            document.getElementById("lblRegionCode" + i).title = "";
        }

        document.getElementById("lstIndustry").selectedIndex = -1;

        document.getElementById("lblIndustryCode").innerHTML = "";
        document.getElementById("lblIndustryCode").title = "";
    }
    
    if (index == 0)
    {
        document.getElementById("lblDurationCode").innerHTML = "";
        document.getElementById("lblDurationCode").title = "";
    }

    if (index == 1)
    {
        document.getElementById("trRegionDetail1").style.display = "none";

        document.getElementById("lstRegion1").selectedIndex = 0;
        document.getElementById("lstRegionDetail1").selectedIndex = 0;

        document.getElementById("lblRegionCode1").innerHTML = "";
        document.getElementById("lblRegionCode1").title = "";
    }

    if (index == 2)
    {
        document.getElementById("btnAddRegion").style.visibility = "hidden";

        document.getElementById("lblRegionCode1").innerHTML = "";
        document.getElementById("lblRegionCode1").title = "";
    }

    if (index == 3)
    {
        document.getElementById("lstIndustry").selectedIndex = -1;

        document.getElementById("lblIndustryCode").innerHTML = "";
        document.getElementById("lblIndustryCode").title = "";
    }

    for (var i=1; i <= maxLicenseUseNumber; i++)
    {
        document.getElementById("txtUse" + i).value = "";
    }

    document.getElementById("txtMenuMacro").value = "";
}

function clearSelect(selectName)
{
	if (document.getElementById(selectName))
	{
		for (var count = document.getElementById(selectName).options.length-1; count >= 0; count--)
		{
			document.getElementById(selectName).options[count] = null;
		}
	}
}

function generateLicenseCodes()
{
    if (trim(document.getElementById("lblPackCode").innerHTML) == "")
    {
        return;
    }

    var usageCodes = getHttpResponse("../Postback/RetrievePackUsageCodes.aspx?packId=" + encodeURIComponent(trim(document.getElementById("lstPacks").value)));

    if (!usageCodes || trim(usageCodes) == "")
    {
        raiseError("No pack id usage codes found. No license code can be generated.");
        return;
    }
    
    var usageCodeArr = usageCodes.split('|');
    
    if (usageCodeArr.length != licenseUseNumber)
    {
        raiseError("Pack id usage codes are not valid. No license code can be generated.");
        return;
    }

    var menuCount = 0;

    if (trim(document.getElementById("lblDurationCode").innerHTML) == "")
    {
        return;
    }
    
    var durationCode = document.getElementById("lblDurationCode").innerHTML;
    menuCount++;
    
    if (trim(document.getElementById("lblRegionCode1").title) == "")
    {
        return;
    }
    
    var regionCode = "";
    
    if (trim(document.getElementById("lblRegionCode1").title) != "")
    {
        for (var i=1; i <= maxRegionStackSize; i++)
        {
            if ((i == 1 || document.getElementById("trRegion" + i).style.display != "none") &&
                 trim(document.getElementById("lblRegionCode" + i).title) != "")
            {
                if (regionCode.indexOf(document.getElementById("lblRegionCode" + i).title) < 0)
                {
                    regionCode += document.getElementById("lblRegionCode" + i).title;
                    menuCount++;
                }
            }
        }
    }

    if (trim(document.getElementById("lblIndustryCode").title) == "")
    {
        return;
    }

    var industryCode = document.getElementById("lblIndustryCode").title;

    for (var i=0; i < document.getElementById("lstIndustry").length; i++)
    {
        if (document.getElementById("lstIndustry")[i].selected == true)
            menuCount++;
    }

    for (var i=1; i <= licenseUseNumber; i++)
    {
        var currentMenuCount = menuCount + parseInt(usageCodeArr[i-1].split(";")[1]);
        var currentUsageCode = "1I" + getUsageCountCode(currentMenuCount) + usageCodeArr[i-1].split(";")[0];

        if (trim(durationCode) != "")
            currentUsageCode = currentUsageCode.replace("{duration}", durationCode);

        if (trim(regionCode) != "")
            currentUsageCode = currentUsageCode.replace("{region}", regionCode);

        if (trim(industryCode) != "")
            currentUsageCode = currentUsageCode.replace("{industry}", industryCode);
    
        if (currentUsageCode.indexOf("{duration}") >= 0 || currentUsageCode.indexOf("{region}") >= 0 || currentUsageCode.indexOf("{industry}") >= 0)
            currentUsageCode = "";
    
        document.getElementById("txtUse" + i).value = currentUsageCode;
    }
    
    var useMenuMacro;
    
    useMenuMacro = document.getElementById("lstDuration").selectedIndex + "|";

    for (regionCounter = 1; regionCounter <= maxRegionStackSize; regionCounter++)
    {
        if (document.getElementById("trRegion" + regionCounter).style.display != "none" && trim(document.getElementById("lstRegion" + regionCounter).value) != "" &&
            trim(document.getElementById("lstRegionDetail" + regionCounter).value) != "")
        {
            useMenuMacro += document.getElementById("lstRegion" + regionCounter).selectedIndex + "," +
                                                                document.getElementById("lstRegionDetail" + regionCounter).selectedIndex + ";"
        }
    }

    useMenuMacro = useMenuMacro.substring(0, useMenuMacro.length - 1) + "|";

    for (var i=0; i < document.getElementById("lstIndustry").length; i++)
    {
        if (document.getElementById("lstIndustry")[i].selected)
        {
            useMenuMacro += i + ";";
        }
    }

    useMenuMacro = useMenuMacro.substring(0, useMenuMacro.length - 1);

    document.getElementById("txtMenuMacro").value = useMenuMacro;
}

function getUsageCountCode(usageCount)
{
	if (isNaN(usageCount) || usageCount < 1 || usageCount > 676 || parseInt(usageCount) != usageCount)
	{
		raiseError("Invalid usage count provided.");
		return 0;
	}

	var code1 = parseInt(usageCount / 26);
	var code2 = usageCount % 26;

	code1 += 65;
	code2 += 64;

	if (!code1 || code1 < 65 || code1 > 90 || !code2 || code2 < 65 || code2 > 90)
	{
		raiseError("Invalid usage count provided.");
		return 0;
	}
	
	var codeString1 = String.fromCharCode(code1);
	var codeString2 = String.fromCharCode(code2);
	
	if (codeString1 == "" || codeString2 == "")
	{
		raiseError("Invalid usage count provided.");
		return 0;
	}

	return codeString1 + codeString2;
}

function generateLicenseSummaryCode()
{
    var use1exists = false;
    var use2exists = false;
    var use3exists = false;
    var use4exists = false;
    var use5exists = false;
    var use6exists = false;
    var use7exists = false;
    var use8exists = false;
    var use9exists = false;
    var use10exists = false;
    var use11exists = false;
    var use12exists = false;

    if (document.getElementById("txtUse1") && trim(document.getElementById("txtUse1").value) != "")
        use1exists = true;

    if (document.getElementById("txtUse2") && trim(document.getElementById("txtUse2").value) != "")
        use2exists = true;

    if (document.getElementById("txtUse3") && trim(document.getElementById("txtUse3").value) != "")
        use3exists = true;

    if (document.getElementById("txtUse4") && trim(document.getElementById("txtUse4").value) != "")
        use4exists = true;

    if (document.getElementById("txtUse5") && trim(document.getElementById("txtUse5").value) != "")
        use5exists = true;

    if (document.getElementById("txtUse6") && trim(document.getElementById("txtUse6").value) != "")
        use6exists = true;

    if (document.getElementById("txtUse7") && trim(document.getElementById("txtUse7").value) != "")
        use7exists = true;

    if (document.getElementById("txtUse8") && trim(document.getElementById("txtUse8").value) != "")
        use8exists = true;

    if (document.getElementById("txtUse9") && trim(document.getElementById("txtUse9").value) != "")
        use9exists = true;

    if (document.getElementById("txtUse10") && trim(document.getElementById("txtUse10").value) != "")
        use10exists = true;

    if (document.getElementById("txtUse11") && trim(document.getElementById("txtUse11").value) != "")
        use11exists = true;

    if (document.getElementById("txtUse12") && trim(document.getElementById("txtUse12").value) != "")
        use12exists = true;

    if (!use1exists && !use2exists && !use3exists && !use4exists && !use5exists && !use6exists &&
        !use7exists && !use8exists && !use9exists && !use10exists && !use11exists && !use12exists)
    {
        //alert("No Usage has been created yet. Select 1 or more Usages above and populate all the menus first. At least one Media Code must be populated.");
        var answer = confirm("No Usage has been created yet. If you proceed without completing these fields, your Permissions settings will cleared. ")
        if (answer)
        {
            document.location.href = "../Steps/PermissionsPreview.aspx";   
            return;
        }
        else
        {
            return;
        }
        
    }

    var usageCount = 0;
    var usageCountFormatted = "";
    
    var mediaSummaryCode = "";

    for (var i=1; i <= maxLicenseUseNumber; i++)
    {
        if (document.getElementById("txtUse" + i) && trim(document.getElementById("txtUse" + i).value) != "")
        {
            mediaSummaryCode += "|" + document.getElementById("txtUse" + i).value;
            usageCount++;
        }
    }

    if (usageCount.toString().length == 3)
    {
        usageCountFormatted = usageCount.toString();
    }
    else if (usageCount.toString().length == 2)
    {
        usageCountFormatted = "0" + usageCount.toString();
    }
    else if (usageCount.toString().length == 1)
    {
        usageCountFormatted = "00" + usageCount.toString();
    }
    else
    {
        raiseError("Invalid Usage count generated.");
        return;
    }

    document.location.href = "../Steps/PermissionsPreview.aspx?mediaCode=" + "|PLUS|V0120|U" + usageCountFormatted + mediaSummaryCode + "|";
}

function validatePack()
{
    var validationSummary = "";

    if (trim(document.getElementById("txt_pp_LicenseStartDate").value) == "")
    {
        if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
            document.getElementById("txt_pp_LicenseStartDate").style.backgroundColor = "#ff8080";

        validationSummary += "- License Start Date\r\n";
    }

    if (document.getElementById("lstDuration").value == "" || document.getElementById("lblDurationCode").innerHTML == "")
    {
        if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
            document.getElementById("lstDuration").style.backgroundColor = "#ff8080";

        validationSummary += "- Duration\r\n";
    }

    for (var i = 1; i <= maxRegionStackSize; i++)
    {
        if (document.getElementById("trRegion" + i).style.display != "none" && document.getElementById("lstRegion" + i).value == "")
        {
            if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
                document.getElementById("lstRegion" + i).style.backgroundColor = "#ff8080";

            validationSummary += "- Region\r\n";
        }

        if (document.getElementById("trRegionDetail" + i).style.display != "none" && document.getElementById("lstRegionDetail" + i).value == "")
        {
            if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
                document.getElementById("lstRegionDetail" + i).style.backgroundColor = "#ff8080";

            validationSummary += "- Region Detail " + i + "\r\n";
        }
    }

    if (trim(document.getElementById("txt_pp_ProductOrServiceConstraints").value) == "")
    {
        if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
            document.getElementById("txt_pp_ProductOrServiceConstraints").style.backgroundColor = "#ff8080";

        validationSummary += "- Product or Service Constraints\r\n";
    }

    if (document.getElementById("lstIndustry").value == "" && document.getElementById("lblIndustryCode").innerHTML == "")
    {
        if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)
            document.getElementById("lstIndustry").style.backgroundColor = "#ff8080";

        validationSummary += "- Industry\r\n";
    }

    if (validationSummary != "")
    {
        alert("Please make sure that you have completed all of these fields, which are required for Packs:\r\n\r\n" + validationSummary);
        return;
    }

    var response = getHttpResponse("../Postback/SetPackSession.aspx?licenseStartDate=" + encodeURIComponent(trim(document.getElementById("txt_pp_LicenseStartDate").value)) +
                                    "&regionConstraints=" + encodeURIComponent(trim(document.getElementById("txt_pp_RegionConstraints").value)) +
                                    "&productOrServiceConstraints=" + encodeURIComponent(trim(document.getElementById("txt_pp_ProductOrServiceConstraints").value)) +
                                    "&menuMacroCode=" + encodeURIComponent(trim(document.getElementById("txtMenuMacro").value)));
                                    
    if (response && trim(response) != "")
    {
        raiseError("Session objects could not be created. " + response);
        return;
    }

    generateLicenseSummaryCode();
}

function raiseError(message)
{
    alert("ERROR: " + message);
}

function startUp()
{
    selectPack();

    if (trim(document.getElementById("txtMenuMacro").value) != "")
    {
        var menuArr = document.getElementById("txtMenuMacro").value.split("|");
        
        if (menuArr.length == 3)
        {
            document.getElementById("lstDuration").selectedIndex = menuArr[0];
            durationSelected();

            var regionArr = menuArr[1].split(";");

            for (var regionCounter = 1; regionCounter <= regionArr.length; regionCounter++)
            {
                if (regionCounter > 1)
                {               
                    document.getElementById("trRegion" + regionCounter).style.display = "";
                    document.getElementById("trRegionSeparator" + regionCounter).style.display = "";

                    copyRegionValues(regionCounter);
                }

                document.getElementById("lstRegion" + regionCounter).selectedIndex = regionArr[regionCounter-1].split(",")[0];

                if (regionCounter == 1)
                    region1Selected();
                else
                    regionSelected(regionCounter);

                document.getElementById("lstRegionDetail" + regionCounter).selectedIndex = regionArr[regionCounter-1].split(",")[1];
                
                if (regionCounter == 1)
                    region1DetailSelected();
                else
                    regionDetailSelected(regionCounter);
            }

            var industryArr = menuArr[2].split(";");

            document.getElementById("lstIndustry").selectedIndex = -1;

            for (var industryCounter = 0; industryCounter < industryArr.length; industryCounter++)
            {
                document.getElementById("lstIndustry")[industryArr[industryCounter]].selected = true;
            }

            industrySelected();
        }
    }
}

function displayPlusPacks()
{
    var packsWindow = window.open("../License/DisplayPlusPacks.aspx", "Packs", "width=625,height=550,scrollbars=1,resizable=1,status=0");

    if (packsWindow && packsWindow.open)
    {
        packsWindow.focus();
    }
    else
    {
        alert("Your browser's pop-up blocker is preventing the term window from displaying on your screen. " +
	        "Please set your pop-up blocker to allow this site to open the window.");
    } 
}
