// Mobile specific Javascript.
// This file needs to be coordinated with the iPhone.js file
var currentWidth = 0;
var maxBarWidth = 130; // may be reset later
var maxBarHeight = 20; // may be reset later
var rectangleContentLabelWidth = 70;
var rectangleContentLabelPadding = 50;
var rectangleLabeledContentClassName = "rectangleLabeledContent";

function pageLoaded()
{
    //if there is a function on a page called pageOnLoad, it'll fire here
    if ( typeof pageOnLoad == 'function' )
    {
        pageOnLoad();
    }
    
    // Display form now that the page has loaded.
    var frmMobile = document.getElementById("aspnetForm");
    if (frmMobile)
    {
        frmMobile.className = "";
    }

    // Pretend that page was resized.
    //pageResized();  commenting this out for now since the CSS is using a fixed width for the body.
}

function pageResized()
{
    if (getFrameWidth() != currentWidth)
    {
        currentWidth = getFrameWidth();
        
        // Adjust fixed size elements to fit within the current width.
        setWidths();
    }
}

function setWidths()
{
    // First set body width.
    document.body.style.width = currentWidth;
    
    // Adjust any div widths.
    var divElements = document.getElementsByTagName("div");
    if (divElements)
    {
        for (var index = 0; index < divElements.length; index++)
        {
            if (divElements[index].className != null)
            {
                if (divElements[index].className == rectangleLabeledContentClassName)
                {
                    divElements[index].style.width = (currentWidth - rectangleContentLabelPadding - rectangleContentLabelWidth - 2).toString() + "px";
                }
            }
        }
    }
}

function getFrameWidth()
{
    var frameWidth = 320;  // default value if cannnot determine
    
    if (window.innerWidth)
    {
        frameWidth = window.innerWidth;
    }
    else if (document.documentElement && document.documentElement.clientWidth)
    {
        frameWidth = document.documentElement.clientWidth;
    }
    else if (document.body && document.body.clientWidth)
    {
        frameWidth = document.body.clientWidth;
    }
    else if (screen && screen.width)
    {
        frameWidth = screen.width;
    }

    return frameWidth;
}

function setMobileRating(rating)
{
    for (index = 1; index <= 5; index++)
    {
        var starId = "imgStar" + index.toString();
        var starElement = getElementByPartialName(starId);
        if (starElement)
        {
            if (index <= rating)
            {
                starElement.src = "../Images/Mobile/star_orange_25x25.gif";
            }
            else
            {
                starElement.src = "../Images/Mobile/star_gray_25x25.gif";
            }
        }
    }
    
    var hiddenElement = getElementByPartialName("hidRating");
    if (hiddenElement)
    {
        hiddenElement.value = rating.toString();
    }
}

function getElementByPartialName(partialName)
{
    var element = null;
    var allElements = document.all;
    if (allElements == null)
    {
        allElements = document.getElementsByTagName('*');
    }
    if (allElements)
    {
        for (var i = 0; i < allElements.length; i++)
        {
            if (allElements[i].id.indexOf(partialName) >= 0)
            {
                element = allElements[i];
                break;
            }
        }
    }

	return element;
}
