
function universalFns_isValidEmail( str )
{
    var at="@";
    var dot=".";
    var comma = ",";
    var lat=str.indexOf(at);
    var lstr=str.length;
    //var ldot=str.indexOf(dot);

    // if they enter a comma, all bets are off cause this is not technically valid but we want to accept to allow for multiple emails
    if ( str.indexOf( comma ) > -1 )
    {
        return true;
    }

    if (str.indexOf(at)==-1)
    {
        return false;
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
    {
        return false;
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
    {
          return false;
    }

    if (str.indexOf(at,(lat+1))!=-1)
    {
          return false;
    }

    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
    {
          return false;
    }

    if (str.indexOf(dot,(lat+2))==-1)
    {
          return false;
    }

    if (str.indexOf(" ")!=-1)
    {
          return false;
    }

    return true;
}

//moveElement new function for moving elements between list boxes
function moveElement(objSourceElement, objTargetElement)
{
    var aryTempSourceOptions = new Array();
    var x = 0;

    //looping through source element to find selected options
    for (var i = 0; i < objSourceElement.length; i++)
    {
        if (objSourceElement.options[i].selected)
        {
            //need to move this option to target element
            var intTargetLen = objTargetElement.length++;
            objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;
            objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;
        }
        else
        {
            //storing options that stay to recreate select element
            var objTempValues = new Object();
            objTempValues.text = objSourceElement.options[i].text;
            objTempValues.value = objSourceElement.options[i].value;
            aryTempSourceOptions[x] = objTempValues;
            x++;
        }
    }

    //resetting length of source
    objSourceElement.length = aryTempSourceOptions.length;
    //looping through temp array to recreate source select element
    for (var j = 0; j < aryTempSourceOptions.length; j++)
    {
        objSourceElement.options[j].text = aryTempSourceOptions[j].text;
        objSourceElement.options[j].value = aryTempSourceOptions[j].value;
        objSourceElement.options[j].selected = false;
    }
}

function selectAll(objTargetElement)
{
    for (var i = 0; i < objTargetElement.length; i++)
    {
        objTargetElement.options[i].selected = true;
    }

    return false;
}







