﻿function getTheForm() {
    return document.forms[0];
    /*
    var theForm = document.forms['aspnetForm'];
    if( !theForm )
        theForm = document.aspnetForm;
    return theForm;
    */
}

function isIeBrowser()
{
    if( navigator.appName.indexOf('Microsoft') != -1 )
        return true;
  
    return false;
}
        
function setDefaultFormButton(btn_uniqid)
{
    var theform = getTheForm();
    theform.onkeypress="javascript:return WebForm_FireDefaultButton(event, btn_uniqid);"
}

function doPostBack(arg, target, action) {
    theform = getTheForm();
    theform.action = action;
    theform.__EVENTTARGET.value = target;
    theform.__EVENTARGUMENT.value = arg; 
    theform.submit();
}

function isValidDate( s ){
	return( /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/.test( s ) );
}

function isValidEmail( s )
{
	return( /^.+@.+\..+$/.test(s) );
}

// .NET Custom Validator Wrapper for isValidEmail
function customValidatorIsValidEmail(source, arguments)
{
    if( arguments.Value.length == 0 )
        arguments.IsValid = false;
    else
        arguments.IsValid = isValidEmail(arguments.Value);   
        
    return arguments.IsValid;
}

function isDigits( s ) {
	return( /^\d+$/.test( s ) );
}

function isAlphas( s ) {
	var a1 = /^[a-z]+$/i ;
	return ( a1.test( s ) );
}

function isFixedLength( s, len )
{
	return( s.length == len );
}

function isFixedDigits( s, len )
{
	return( isFixedLength( s, len ) &&  isDigits( s ) );
}

function isValidPassword( s ) {
	//Valid passwd is at least 8 characters that contains letters and numbers
	//only and with at least 1 character and at least 1 digit present.
  var c1 = /^[a-z\d]{8,}$/i ; 	// only alphanumerics, and length at least 8
  var c2 = /[a-z]/i  ;  // a letter present
  var c3 = /\d/      ; // a digit present
  return( c1.test( s ) && c2.test( s ) && c3.test( s ) );
}

function isValidPhone( s, min_len ) {
	// strip acceptable non-numeric chars
	var stripped = s.replace(/[\(\)\.\-\ ]/g, '');
	return ( (stripped.length >= min_len) && isDigits( stripped ) );
}

function trim( s )
{
	return s.replace(/^\s+/,'').replace(/\s+$/,'');
}

function getSearchContentCx( origCxName )
{
    var MANGLED_NAME_PREFIX = "ctl00$SearchContent$BusSrch1$";
    var formNameStr = "document.forms[0]" ;
    var elementNameStr = formNameStr + "." + MANGLED_NAME_PREFIX + origCxName ;
    return eval( elementNameStr );
}

function getResultsContentCx( origCxName )
{
    var MANGLED_NAME_PREFIX = "ctl00$ResultsContent$";
    var formNameStr = "document.forms[0]" ;
    var elementNameStr = formNameStr + "." + MANGLED_NAME_PREFIX + origCxName ;
    return eval( elementNameStr );
}

//
// Java Script to Handle AutoSearch in Select element
//
var selkeys = "";
function selectKeyDown(e)
{
    var key = (window.event) ? e.keyCode : e.which;
    //alert( key );
    
    // Escape or Delete Key resets previous search keys
    if( (key == 27) || (key == 46) )
        clrSelKeys();
}
function selectKeyPress(e)
{
    // Notes:
    //    1) previous keys are cleared onBlur/onFocus and with Delete key
    //    2) if the search doesn't find a match, this returns to normal 1 key search
    //        setting returnValue = false below for ALL cases will prevent
    //        default behavior

    var sndr = (window.event) ? window.event.srcElement : e.target;
    var pre = selkeys;
    var key = (window.event) ? e.keyCode : e.which;
    var keychar = String.fromCharCode(key);
    
    var re = new RegExp("^" + pre + keychar, "i"); // "i" -> ignoreCase
    for(var i=0; i<sndr.options.length; i++)
    {
        if(re.test(sndr.options[i].text))
        {   
            sndr.options[i].selected=true;
            selkeys += keychar;
            if (window.event) //IE
                window.event.returnValue = false;
            else //Firefox
                e.preventDefault();
            break;
        }
    }
    // prevent default browser behavior on miss
    //if (window.event) //IE
    //window.event.returnValue = false;
    //else //Firefox
    //e.preventDefault();
}
function clrSelKeys()
{
    selkeys = "";
}

// restrict text entry to specified length
// works with multi-line text inputs as well.
function isMaxLength(e, txtBox, maxLen)
{
    if(txtBox) {
        if( txtBox.value.length <= maxLen )
            return true;
        else
        {
            var keyID = (window.event) ? event.keyCode : e.keyCode;
            if ((keyID>=37 && keyID<=40) || (keyID==8) || (keyID==46))
            {
                if(window.event)
                    e.returnValue = true;
            }
            else
            {
                txtBox.value = txtBox.value.substring(0, maxLen);
                alert('Your text has been truncated to the maximum allowed length of ' + maxLen.toString() + ' characters.');
                txtBox.focus();
                
                if(window.event)
                    e.returnValue = false;
                else
                    e.preventDefault(); 
                    
            }
            
        }
    }
}

function statePostBack(stateListId, currStateId)
{
    var theform = getTheForm();
    
    var states = document.getElementById( stateListId );
    var curr_state_id = document.getElementById( currStateId ).value;
    
    // check for no selection
    if( states.selectedIndex == 0 )
        return;
        
    // check whether selection changed
    if( curr_state_id ==  states.options[states.selectedIndex].value )
        return;
        
    theform.__EVENTTARGET.value = "StateSelected";
    theform.__EVENTARGUMENT.value = null; 
    theform.submit();
}

function popUpSmallWindow(wnd_nm, url)
{
    tipsWnd = window.open(url, wnd_nm, "toolbar=no,resizable=yes,scrollbar=yes,height=300,width=700");
    tipsWnd.focus();
}

function popUpMediumWindow(wnd_nm, url)
{
    tipsWnd = window.open(url, wnd_nm, "toolbar=no,resizable=yes,scrollbars=yes,height=700,width=700");
    tipsWnd.focus();
}
