checkBrowserWidth();

attachEventListener(window, "resize", checkBrowserWidth, false);


function checkBrowserWidth()
{
  var theWidth = getBrowserWidth();
  
  if (theWidth == 0)
  {
    var resolutionCookie = document.cookie.match(/(^|;)tmib_res_layout[^;]*(;|$)/);

    if (resolutionCookie != null)
    {
      setStylesheet(unescape(resolutionCookie[0].split("=")[1]));
    }
    
    addLoadListener(checkBrowserWidth);
    
    return false;
  }

  if (theWidth > 920)
  {
    setStylesheet("default-wide");
    document.cookie = "tmib_res_layout=" + escape("default-wide");
  }
  else
  {
    setStylesheet("");
    document.cookie = "tmib_res_layout=";
  }
  
  return true;
};


function getBrowserWidth()
{
  if (window.innerWidth)
  {
    return window.innerWidth;
  }
  else if (document.documentElement && document.documentElement.clientWidth != 0)
  {
    return document.documentElement.clientWidth;
  }
  else if (document.body)
  {
    return document.body.clientWidth;
  }
  
  return 0;
};


function setStylesheet(styleTitle)
{
  var currTag;

  if (document.getElementsByTagName)
  {
    for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++)
    {
      if (currTag.getAttribute("rel").indexOf("style") != -1 && currTag.getAttribute("title"))
      {
        currTag.disabled = true;

        if(currTag.getAttribute("title") == styleTitle)
        {
          currTag.disabled = false;
        }
      }
    }
  }
  
  return true;
};

/* Event listeners
--------------------------------------------------------- */

function addLoadListener(fn)
{
	if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener('load', fn, false);
	}
	else if (typeof document.addEventListener != 'undefined')
	{
		document.addEventListener('load', fn, false);
	}
	else if (typeof window.attachEvent != 'undefined')
	{
		window.attachEvent('onload', fn);
	}
	else
	{
		return false;
	}
	
	return true;
};


function attachEventListener(target, eventType, functionRef, capture)
{
    if (typeof target.addEventListener != "undefined")
    {
        target.addEventListener(eventType, functionRef, capture);
    }
    else if (typeof target.attachEvent != "undefined")
    {
        target.attachEvent("on" + eventType, functionRef);
    }
    else
    {
        return false;
    }

    return true;
};
