﻿// display hacks for left side navigation
var isOldIE = ($.browser.msie && ($.browser.version.indexOf("6") == 0 || $.browser.version.indexOf("7") == 0));
$(document).ready(leftNavHacks);
function leftNavHacks()
{
    $("[class^='sidenav']").each(function()
    {
        if (this.innerHTML == "Registration form")
        {
            if (this.className == "sidenavSub")
            {
                $("[class^='sidenav']").each(function()
                {
                    if (this.innerHTML == "Register")
                    {
                        this.className = "sidenavSub";
                    }
                });
            }
            hideSideNav($(this));
        }
        if (this.innerHTML == "Submit proposal")
        {
            if (this.className == "sidenavSub")
            {
                $("[class^='sidenav']").each(function()
                {
                    if (this.innerHTML == "Call for speakers")
                    {
                        this.className = "sidenavSub";
                    }
                });
            }
            hideSideNav($(this));
        }
        if (this.innerHTML == "Session details")
        {
            if (this.className == "sidenavSub")
            {
                $("[class^='sidenav']").each(function()
                {
                    if (this.innerHTML == "Conference sessions")
                    {
                        this.className = "sidenavSub";
                    }
                });
                document.title = "UNLEASH 2010 | Conference Sessions";
            }
            hideSideNav($(this));
        }
        if (this.innerHTML == "Upload form")
        {
            if (this.className == "sidenavSub")
            {
                $("[class^='sidenav']").each(function()
                {
                    if (this.innerHTML == "Speaker resources")
                    {
                        this.className = "sidenavSub";
                    }
                });
            }
            hideSideNav($(this));
        }
    });
    $("#sideNavigation").get(0).className = "sidenav";
}
function hideSideNav(linkObj)
{
    linkObj.attr("class", "hide");
    if (isOldIE)
    {
        linkObj.parent().attr("class", "hide");
    }
}

// ContactForm scripts
function GetElementById(id) { var el = document.getElementById(id); return el; } function OptionList_Add(OptionList, OptionText, OptionValue) { OptionList[OptionList.length] = new Option(OptionText, OptionValue); return false; } function OptionList_Clear(OptionList) { for (i = OptionList.length - 1; i >= 0; i--) { OptionList_Delete(OptionList, i); } return false; } function OptionList_Delete(OptionList, Index) { if (OptionList.length > 0) { OptionList[Index] = null; } } function OptionList_SelectAll(OptionList) { for (i = 0; i < OptionList.length; i++) { OptionList[i].selected = true; } return false; } function OptionList_RemoveSelected(OptionList, DelimitTextBox) { for (i = OptionList.length - 1; i >= 0; i--) { if (OptionList[i].selected) { OptionList_Delete(OptionList, i); } } OptionList_DelimitToTextBox(OptionList, DelimitTextBox); return false; } function OptionList_Move(OptionListFrom, OptionListTo, SortOrder, DelimitList, DelimitTextBox) { var selOpts = new Array(); var selCount = 0; for (i = OptionListFrom.length - 1; i >= 0; i--) { if (OptionListFrom[i].selected) { selOpts[selCount] = new Option(OptionListFrom[i].text, OptionListFrom[i].value); selCount++; OptionList_Delete(OptionListFrom, i); } } for (i = selCount - 1; i >= 0; i--) { OptionList_Add(OptionListTo, selOpts[i].text, selOpts[i].value); } if (SortOrder != null) { selOpts = new Array(); selCount = 0; for (sort = 0; sort < SortOrder.length; sort++) { for (i = 0; i < OptionListTo.length; i++) { if (SortOrder[sort] == OptionListTo[i].value) { selOpts[selCount] = new Option(OptionListTo[i].text, OptionListTo[i].value); selCount++; break; } } } OptionList_Clear(OptionListTo); for (i = 0; i < selOpts.length; i++) { OptionList_Add(OptionListTo, selOpts[i].text, selOpts[i].value); } } OptionList_DelimitToTextBox(DelimitList, DelimitTextBox); try { filterContentType($('ddFilterContentType').value); } catch (e) { } return false; } function OptionList_DelimitToTextBox(OptionList, TextBox) { var selValues = ''; for (i = 0; i < OptionList.length; i++) { selValues += OptionList[i].value; if (i + 1 < OptionList.length) { selValues += ';'; } } TextBox.value = selValues } function GetDelimitedValues(text, delimiter) { var split = text.split(delimiter); return split; }

// other webform scripts
function isEmail(src)
{
    var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
    return regex.test(src);
}
function trimString(str)
{
    var str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length;
    while (ws.test(str.charAt(--i)));
    return str.slice(0, i + 1);
}
function trimObjValue(id)
{
    var obj = $("#" + id).get(0);
    if (obj.value != null && obj.value.length > 0)
    {
        // see updateTotal() comments in registration-form.aspx.cs
        obj.value = trimString(obj.value).replace(/\$/g, ""); 
    }
}
function isObjValueNullOrEmpty(id)
{
    var obj = $("#" + id).get(0);
    if (obj.value == null || obj.value.length < 1)
    {
        return true;
    }
    return false;
}
function requireObjValue(labelId, objId, labelQualifier)
{
    var q = labelQualifier == null ? "" : labelQualifier;
    var labelObj = $("#" + labelId).get(0);
    labelObj.className = "label" + q;
    labelObj.title = "";
    trimObjValue(objId);
    if (isObjValueNullOrEmpty(objId))
    {
        labelObj.className = "label" + q + "Error";
        labelObj.title = "This field is required.";
        return false;
    }
    return true;
}
function isObjValueEmail(labelId, objId, labelQualifier)
{
    var q = labelQualifier == null ? "" : labelQualifier;
    var labelObj = $("#" + labelId).get(0);
    labelObj.className = "label" + q;
    labelObj.title = "";
    trimObjValue(objId);
    if (!isObjValueNullOrEmpty(objId) && !isEmail($("#" + objId).get(0).value))
    {
        labelObj.className = "label" + q + "Error";
        labelObj.title = "Please enter a valid email address.";
        return false;
    }
    return true;
}
function requireObjListValue(labelId, objName, labelQualifier, mustContain)
{
    var q = labelQualifier == null ? "" : labelQualifier;

    var labelObj = $("#" + labelId).get(0);
    labelObj.className = "label" + q;
    labelObj.title = "";

    var objList = document.getElementsByName(objName);
    var v = 0;
    var values = new Array();
    for (i = 0; i < objList.length; i++)
    {
        if (objList[i].checked)
        {
            values[v] = objList[i].value;
            v++;
        }
    }

    var invalid = values.length < 1;
    if (!invalid && mustContain != null)
    {
        invalid = true;
        for (i = 0; i < values.length; i++)
        {
            if (values[i] == mustContain)
            {
                invalid = false;
                break;
            }
        }
    }

    if (invalid)
    {
        labelObj.className = "label" + q + "Error";
        labelObj.title = "This field is required.";
    }
    return values;
}