var windows = new Array();
function openWindow(location, name, features) 
{
	if(windows[name] && ! windows[name].closed)
	{	// If the windows isn't already open, open it.
		windows[name].location = location;
	}
	else 
	{
		windows[name] = window.open(location, name, features);
	}
	windows[name].focus();
}

function viewBlueprint(spaceID, order)
{
	var location = "/blueprint.php?id=" + spaceID + "&order=" + order;
	var name = 'blueprint';
	var features = "width=640,height=480,resizable=yes,status=no,scrollbars=yes"
	openWindow( location, name, features );
}

function viewPicture(id, width, height)
{
	var location = '/picture.php?id=' + id;
	var name = 'picture';
	var features = 'width=' + width + ',height=' + height + ',resizable=no,status=no,scrollbar=no';
	openWindow( location, name, features );
}

function viewFlier(quicklink)
{
    var viewerHeight = window.screen.height - 100;
    var viewerWidth = viewerHeight * .72;
    
    var location = 'fliers/' + quicklink + '.pdf';
    var name = 'pdf';
    var features = 'width=' + viewerWidth + ',height=' + viewerHeight + ',resizable=yes,status=no,scrollbars=yes,menubar=false';
    openWindow( location, name, features );
}

var last_request = [ ];

function ShowRequestMoreInformation(elementIDToShow, requestFormID)
{
    var requestForm = document.getElementById(requestFormID);
    ToggleButtons(requestForm, false);
    Modalbox.show($(elementIDToShow), {title: 'Request More Information', width: 450, slideDownDuration: 0.1,
                                       slideUpDuration: 0.1, resizeDuration: 0.1, autoFocusing: true });
                                       
                                       
    // fill in the form
    for( field in last_request )
    {
        for( var i = 0; i < requestForm.length; ++i )
        {
            var element = requestForm[i];
            if( element.id == field )
            {
                var value = last_request[field];
                if( element.type == "textarea" )
                {
                    element.innerHTML = value;
                }
                else
                {
                    element.value = value;
                }
            }
        }
    }
    return false;
    
}  


function RequestMoreInformation(requestForm, spacesFormID, resultDivID, closeDivID)
{
    ToggleButtons(requestForm, true);
    var spacesForm = document.getElementById(spacesFormID);
    if( ! spacesForm )
    {
        alert("Unable to find form '" + spacesFormID + "'.");
        return false;
    }
    
    var resultDiv = document.getElementById(resultDivID);
    if( ! resultDiv )
    {
        alert( "Unable to find place to put result ('" + resultDivID + "');" );
        return false;
    }
    
    var closeDiv = document.getElementById(closeDivID);
    if( ! closeDiv )
    {
        alert("Unable to find the close button container ('" + closeDivID + "').");
        return false;
    }
    
    requestForm.style.display = 'block';
    closeDiv.style.display = 'none';
    
    // Modalbox makes a clone of the form each time it is shown, so we need to save off the form state so it can be
    // reconstituted.  Granted, this probably won't happen much, but it adds some spit and polish.
    for( var i = 0; i < requestForm.length; ++i )
    {
        var element = requestForm[i];
        if( element.id && (element.type == "text" || element.type == "textarea") )
        {
            last_request[element.id] = element.value;
        }
    }

    // grab the units the user has selected
    for( var i = 0; i < spacesForm.length; ++i )
    {
        var element = spacesForm[i];
        if( element.type == "checkbox" && element.checked )
        {
            var hidden = document.createElement("input");
            hidden.type= "hidden";
            hidden.name = "units[]";
            hidden.value = element.value;
            requestForm.appendChild( hidden );
        }
    }
    
	var formData = requestForm.serialize(true);
    new Ajax.Request(requestForm.action, {
        method: 'post',
        parameters: formData,
        onSuccess: function(transport)
        {
            resultDiv.innerHTML = transport.responseText;
            if( transport.responseText.indexOf("<p class=\"Success\">") >= 0 )
            {
                closeDiv.style.display = 'block';
                requestForm.style.display = 'none';
            }
            Modalbox.resizeToContent();
            ToggleButtons(requestForm, false);
        },
        onFailure: function(transport)
        {
            resultDiv.innerHTML = '<p class="Error">An error occurred communicating with the server.  Please try ' +
                                  'again.  If the problem persists, please send an e-mail to ' + 
                                  '<a href="mailto:webmaster@apmportland.com">webmaster@apmportland.com</a>.</p>';
            ToggleButtons(requestForm, false);
            Modalbox.resizeToContent();
        }
    }); 

    return false;
}

function ToggleButtons(form, disabled)
{
    for( var i = 0; i < form.length; ++i )
    {
        var element = form.elements[i];
        if( element.type == "button" || element.type == "submit" )
        {
            element.disabled = disabled;
        }
    }
}