﻿var submitOnEnter = false;

/* 
Script to fix length of TEXTAREA and display number of characters left.
*/

function setupCharsRemaining(controlID, labelID, maxChars) {
    // Create hidden element in DOM to store the max characters and characters remaining label for this control
    var charInfoId = "ctlCharInfo_" + controlID;
    var charInfo = maxChars + "," + labelID;
    $("body").append("<input type='hidden' id='" + charInfoId + "' value='" + charInfo  + "'>");
    $("#" + controlID).bind("keyup", processMaxKeyUp);
}

function processMaxKeyUp(e) {

    var charInfo = $("#ctlCharInfo_" + $(e.target).attr("id")).attr("value");
    var charInfoItems = charInfo.split(",");
    var maxChars = parseInt(charInfoItems[0], 10);
    var labelId = charInfoItems[1];

    var length = $(this).attr("value").length;
    if (length <= maxChars) {
        $("#" + labelId).text(maxChars - length);
    } else {
        $(this).attr("value", $(this).attr("value").substring(0, maxChars));
        $("#" + labelId).text("0");
    }
}

function validateResponse(val, args) {
    if (args.Value == "") {
        args.IsValid = false;
    } else {
        args.IsValid = true;
    }
    return args.IsValid;
}

function configureLink(index, parentControlID)
{
    $("#" + parentControlID + "_ctlCurrentLink").attr("value", index);
    $("#" + parentControlID + "_ctlLinkContainer > ol").css("display", "none");
    $("#" + parentControlID + "_ctlLinkContainer > div").css("display", "block");
    // If an anchor tag already exists edit it, otherwise clear the text boxes
    var anchor = $("#" + parentControlID + "_ctlContainer" + index + "> *");
    if (anchor.length == 0)
    {
        $("#" + parentControlID + "_txtLinkTitle").attr("value", "");
        $("#" + parentControlID + "_txtLinkUrl").attr("value", "");
    } else {        
        $("#" + parentControlID + "_txtLinkTitle").attr("value", anchor.text());
        $("#" + parentControlID + "_txtLinkUrl").attr("value", anchor.attr("href"));
    }
}

function saveLink(parentControlID)
{
    var linkTitle = $("#" + parentControlID + "_txtLinkTitle").attr("value");
    var linkUrl = $("#" + parentControlID + "_txtLinkUrl").attr("value");
    var index = $("#" + parentControlID + "_ctlCurrentLink").attr("value");
    if (linkTitle == "" && linkUrl == "")    
    {
        // If both set to blank then clear
        $("#" + parentControlID + "_ctlLinkData" + index).attr("value", "");
        $("#" + parentControlID + "_ctlContainer" + index).html(emptyLinkHtml);
        $("#" + parentControlID + "_ctlLinkContainer > ol").css("display", "block");
        $("#" + parentControlID + "_ctlLinkContainer > div").css("display", "none");
    } else {
        // If both set then save
        if (linkTitle != "" && linkUrl != "")
        {
            var linkData = linkTitle + "," + linkUrl;            
            $("#" + parentControlID + "_ctlLinkData" + index).attr("value", linkData);
            $("#" + parentControlID + "_ctlContainer" + index).html("<a href=\"" + linkUrl + "\" target=\"_blank\">" + linkTitle + "</a>");            
            $("#" + parentControlID + "_ctlLinkContainer > ol").css("display", "block");
            $("#" + parentControlID + "_ctlLinkContainer > div").css("display", "none");
        }
    }
}

function cancelLink(parentControlID)
{
    $("#" + parentControlID + "_ctlLinkContainer > ol").css("display", "block");
    $("#" + parentControlID + "_ctlLinkContainer > div").css("display", "none");
}

function switchInputButtonToLinkButton(clientID, uniqueID, hRef, onClick, submitForm)
{
    var buttonText = $("input#" + clientID).attr("value");
    var buttonClass = $("input#" + clientID).attr("class");
    var disabled = "";
    var disAttr = $("input#" + clientID).attr("disabled");
    if (disAttr == "disabled" || disAttr == true)
    {
        disabled = " disabled=\"disabled\"";
        buttonClass = buttonClass + " disabled";
    }
    var buttonType = $("input#" + clientID).attr("type");
    var linkButtonHtml = "<a id=\"" + clientID + "\" class=\"" + buttonClass + "\"" + disabled + hRef + "><span>" + buttonText + "</span></a>";
    $("input#" + clientID).before(linkButtonHtml).remove();
    if (disabled.length == 0)
    {
        if (hRef != "")
        {
            $("a#" + clientID).attr("href", hRef);
        }
        if (onClick != null)
        {
            $("a#" + clientID).click(onClick);
        }
        if (submitOnEnter && submitForm != null)
        {
              var inputTextElements = $("input[@type=text],input[@type=password]");
              if (inputTextElements.length > 0) {
                  for (var i=0;i<=inputTextElements.length - 1;i++){
                      $("#" + inputTextElements[i].id).keypress(submitForm);
                  }
              }            
        }        
    }
}

var multipleChoiceCount;
var submitResponseTextAreaClientId;
var submitButtonUniqueId;

function contentKeyUp() {
	if ($("#" + submitResponseTextAreaClientId).attr("value").length > 0) {
		thisMovie("flashSplashObj").setData($("#" + submitResponseTextAreaClientId).attr("value"));
	} else {
	    thisMovie("flashSplashObj").clearData();
	}
}

function sendText(val)
{
    // Need to make this generic...
	WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(submitButtonUniqueId, '', true, '', '', false, true));
}

function thisMovie(movieName) {
	if (isIE()) {
	    return document.all[movieName];
	}
	else {
		return document[movieName];
	}
}

function isIE() {
	return navigator.appName.indexOf("Microsoft") != -1;
}

// Updates the Flash to reflect combo boxes
function changeSortOrderOptions()
{
    var optionString = "";
    var optionDropDowns = $("#sort-options select");
    for(var i=0; i<=optionDropDowns.length - 1; i++)
    {
        var dropDownText = $("#" + optionDropDowns[i].id + " :selected").text();        
        if (i==0)
        {
            optionString += dropDownText;
        } else {
            optionString += ",";
            optionString += dropDownText;
        }
    }
    thisMovie("flashSplashObj").setData(optionString);
}

// Updates the combo boxes to reflect the Flash
function sortInOrderOptionsChanged(val)
{
    if (val != null && val.length > 0)
    {
        var optionDropDowns = $("#sort-options select");
        var items = val.split(",");
        if (items == "0,0,0,0,0,0")
        {
            for (var i=0;i<=optionDropDowns.length - 1;i++)
            {
                optionDropDowns[i].selectedIndex = i;
            }            
        } 
        else 
        {            
            if (items.length > 0)
            {
                for (var i=0;i<=items.length - 1;i++)
                {
                    var item = items[i];
                    if (item.length > 0 && item != "0")
                    {
                        if (optionDropDowns != null && optionDropDowns.length > i)
                        {
                            optionDropDowns[i].selectedIndex = new Number(item) - 1;
                        }
                    }
                }
            }
        } 
    }
}

function validateSortInOrderOptions(val, args)
{
    args.IsValid = true;
    var noOfOptions = 0;
    var optionInputs = $(".options-box input");
    if (optionInputs != null && optionInputs.length > 0)
    {
        for(var i=0; i<=optionInputs.length - 1; i++)
        {
            var optionText = $("#" + optionInputs[i].id).attr("value");
            if ((typeof(optionText) != "undefined") 
                &&  (optionText != null) 
                && (optionText.length > 0))
            {
                noOfOptions++;
            }
        }
    }
    if (noOfOptions < 3)
    {
        args.IsValid = false;
    }
}

function submitOnEnterKeyPress(e)
{
    if(e.keyCode==13)
    {
        document.forms[0].submit();
    }
}

function checkNumberSelected(id)
{
    var checked = $(":checked");
    if (checked.length > multipleChoiceCount)
    {
        for (i=0;i<checked.length;i++)
        {
            if (checked[i].id != id)
            {
                checked[i].checked = false;
                checkNumberSelected(id);
                break;
            }
        }        
    } else {
        return;
    }
}

// Updates the Flash to reflect checkboxe
function changeMultipleChoiceOptions(e)
{
    var optionString = "";
    // Make sure the correct number are selected
    checkNumberSelected(e.target.id);    
    var checkBoxList = $("input[type=checkbox]");
    if (checkBoxList != null && checkBoxList.length > 0)
    {
        for (i=0;i<checkBoxList.length;i++)
        {
            var checkBox = $("#" + checkBoxList[i].id);
            if (checkBox.attr("checked").toString() == "true")
            {
                if (optionString.length > 0)
                {
                    optionString += ",";
                }
                optionString += $("label[for=" + checkBoxList[i].id + "]").text().substring(0,1).toLowerCase();
            }
        }
    }
    thisMovie("flashSplashObj").setData(optionString);
}

function multipleChoiceOptionsChanged(text)
{
    var checkBoxList = $("input[type=checkbox]");
    if (checkBoxList != null && checkBoxList.length > 0)
    {
        for (i=0;i<checkBoxList.length;i++)
        {
            if (text.toUpperCase().indexOf(String.fromCharCode(65 + i)) != -1)
            {
                checkBoxList[i].checked = true;
            } else {
                checkBoxList[i].checked = false;
            }
        }
    }
}

function getNumberOfOptionsSpecified()
{
    var result = 0;
    var optionInputs = $(".options-box > .formField > input");
    if (optionInputs != null && optionInputs.length > 0)
    {
        for(var i=0;i<optionInputs.length;i++)
        {
            if (optionInputs[i].value != "")
            {
                result++;
            }        
        }
    }
    return result;
}

function likertClick(e)
{
    e.target.focus();
}

var currentValue = "3";

function likertFocus(e)
{    
    var value = $('label[for=' + e.target.id + ']').text().substring(0,1);
    if (currentValue != value)
    {
        thisMovie("flashSplashObj").setData(value);
        currentValue = value;
    }
}

function likertSelect(rblID, i)
{
    var radioButtons = $('#' + rblID + ' > input');
    if (radioButtons != null && radioButtons.length >= i)
    {
        radioButtons[i - 1].checked = true;
        currentValue = i.toString();
    }
}