﻿// Expected form field id convention:

// _asm_TR00XXXXXXXX
// T = Field type: S=subject, F=Field, T=Addressee
// R = Required: R=Required
// 00 = Order index
// XX = String replacing "_" for " "

function revealModal(divID)
{
    if(document.getElementById(divID))
    {
        window.onscroll = function () { document.getElementById(divID).style.top = document.body.scrollTop; };
        document.getElementById(divID).style.display = "block";
        document.getElementById(divID).style.top = document.body.scrollTop;
    }
}

function hideModal(divID)
{
    if(document.getElementById(divID))
    {
        document.getElementById(divID).style.display = "none";
    }
}

function submitform(sMessageID)
{
    var sQueryString = "";
    if(validatefields(sMessageID))
    {
    }
    else
    {
        return false;
    }


    var xhr;
    if (window.XMLHttpRequest)
    { // Mozilla, Safari, ...
        xhr = new XMLHttpRequest();
        if (xhr.overrideMimeType)
        {
            xhr.overrideMimeType('text/xml');
        }
    }
    else if (window.ActiveXObject)
    { // IE
        try
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
            
        }
    }
    xhr.onreadystatechange  = function()
    {
        if(xhr.readyState  == 4)
        {
            if(xhr.status  == 200)
            {   
                var doc = xhr.responseXML;
		        var element = doc.getElementsByTagName('returncode');
		        if(element != null)
		        {
	                if(element.item(0) != null)
	                {
	                    if(element.item(0).firstChild != null)
	                    {
    				        if(element.item(0).firstChild.data == "1")
    				        {
    				            showmessage(sMessageID,"Thank you for your interest.");
        				    }
        				    else
        				    {
        				        showmessage(sMessageID,"An error occurred. Please try again later.");
        				    }
    				    }
    				    else
    				    {
    				    }
		            }
		            else
		            {
				        
		            }
		        }
		        else
		        {
		        }
            }
            else
            {
            }
        }

    }
    sQueryString = createquerystring();
    if(sQueryString != "")
    {
        xhr.open("GET", sQueryString,  true);
        xhr.send(null);
    }
    return false;
}

function validatefields(sMessageID)
{
    var iLoop;
    var oElements;
    var oField;
    var sFieldName;
    for(iLoop = 0; iLoop < document.forms.length; iLoop++)
    {
        oElements = document.forms[iLoop].elements;
        for(iLoop2 = 0; iLoop2 < oElements.length; iLoop2++)
        {
            oField = oElements[iLoop2];
            // retrieve only intended form elements
            if(oField.id.substring(0,5) == "_asm_")
            {
                // Is element a required field?
                if(oField.id.substring(5,7) == "fr" && oField.value == "")
                {
                    sFieldName = oField.id.substring(9);
                    sFieldName = sFieldName.replace("_", " ");
                    //alert(sFieldName + ": Empty");
                    if(document.getElementById(sMessageID))
                    {
                        document.getElementById(sMessageID).innerHTML = "Please complete " + sFieldName;
    	                document.getElementById(sMessageID).style.display = 'inline';
    	            }
    	            return false;
                }
            }
        }
    }
    return true;
}

function showmessage(sMessageID, sMessageText)
{
    if(document.getElementById(sMessageID))
    {
        document.getElementById(sMessageID).innerHTML = sMessageText;
        document.getElementById(sMessageID).style.display = 'inline';
    }
}

function createquerystring()
{
    var sSubx = "";
    var sFinalQuery = "/util/ASModalForm01.aspx";
    var sFieldName;
    var sFieldValue;
    
    // get subject line
    if(document.getElementById("_asm_s"))
    {
        sSubx = document.getElementById("_asm_s").value;
        sFinalQuery += "?s_=" + escape(sSubx);
    }
    else
    {
        return "";
    }

    // get values
    for(iLoop = 0; iLoop < document.forms.length; iLoop++)
    {
        oElements = document.forms[iLoop].elements;
        for(iLoop2 = 0; iLoop2 < oElements.length; iLoop2++)
        {
            oField = oElements[iLoop2];
            if(oField.id.substring(0,5) == "_asm_")
            {
                switch(oField.id.substring(5,6))
                {
                    case "t":
                        sFieldName = escape("t" + oField.id.substring(6));
                        sFieldValue = escape(oField.value);
                        sFinalQuery += "&" + sFieldName + "=" + sFieldValue;
                        break;
                    case "f":
                        sFieldName = escape("f" + oField.id.substring(6));
                        sFieldValue = escape(oField.value);
                        sFinalQuery += "&" + sFieldName + "=" + sFieldValue;
                        break;
                }
            }
        }
    }

    return sFinalQuery;
}
//---------------------------------------
//
// Cookie functions from http://techpatterns.com/downloads/javascript_cookies.php
//
function Set_Cookie( name, value, expires, path, domain, secure )
{
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );

    /*
    if the expires variable is set, make the correct
    expires time, the current script below will set
    it for x number of days, to make it for hours,
    delete * 24, for minutes, delete * 60 * 24
    */
    if ( expires )
    {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
        ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
        ( ( path ) ? ";path=" + path : "" ) +
        ( ( domain ) ? ";domain=" + domain : "" ) +
        ( ( secure ) ? ";secure" : "" );
}
// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function Get_Cookie( check_name )
{
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );

		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}
// this deletes the cookie when called
function Delete_Cookie( name, path, domain )
{
    if ( Get_Cookie( name ) )
        document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

