
// JavaScript Document

var DEFAULT_TEXT = "DEFAULT_TEXT";
var H600_TEXT = "H600_TEXT";
var H480_TEXT = "H480_TEXT";

function getPreferredText() 
{
	var screenHeight = screen.height;
	
	// 4 section of height: 480 ==> 600 ==> 768 ==> 1024
	//Load CSS rules of text for 1280x1024 resolution
    if ( screenHeight > 896 )
		return DEFAULT_TEXT;
	
	//Load CSS rules of text for 1024x768 resolution
    if ( screenHeight > 684 && screenHeight <= 896 )
		return DEFAULT_TEXT;

    //Load CSS rules of text for 800x600 resolution
    if ( screenHeight > 540 && screenHeight <= 684 )
		return H600_TEXT;

    //Load CSS rules of text for 640x480 resolution
    if ( screenHeight <= 540 )
		return H480_TEXT;

	return null;
}


function getCurrentText() 
{
	var css = document.getElementsByTagName( "link" );
	if ( !css )		return null;
	
	for( var i=0, temp; i < css.length; i++ )
	{
		temp = css[i];
		// some browser support "alternative stylesheet" 
		// default: "alternate stylesheet"
		if ( temp.getAttribute( "rel" ).indexOf( "stylesheet" ) != -1
			&& temp.getAttribute( "rel" ).indexOf( "alternat" ) != -1												
			&& temp.getAttribute( "title" ) )
		{
			if ( temp.getAttribute("title").indexOf( "TEXT" ) != -1 
				&& temp.disabled == false )
				return temp.getAttribute( "title" );
		}
	}
	return null;
}


function setActiveCSS( targetTitle, currentTitle ) 
{
	var css = document.getElementsByTagName( "link" );
	if ( !css )		return -1;
	
	for( var i=0, temp; i < css.length; i++ )
	{
		temp = css[i];
		if ( temp.getAttribute( "rel" ).indexOf( "stylesheet" ) != -1 
			&& temp.getAttribute( "rel" ).indexOf( "alternat" ) != -1 												
			&& temp.getAttribute( "title" ) )
		{	
			if ( temp.getAttribute( "title" ) == targetTitle ) 
			{	// set preferred alternative style sheet for screen resolution			
				temp.disabled = true;	// use for CSS problem of IE browser
				temp.disabled = false;
			}
			else if ( currentTitle ) 
			{	// clear current alternative style sheet
				if( temp.getAttribute( "title" ) == currentTitle )
					temp.disabled = true;
			}
		}
	}
}


function writeCookie( name, value, days ) 
{
	var expires = "";
	if (days) 
	{
    	var date = new Date();
    	date.setTime(date.getTime()+(days*24*60*60*1000));
    	expires = "; expires="+date.toGMTString();
  	}
  	document.cookie = name+"="+value+expires+"; path=/";
}


function readCookie( name ) 
{	
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');

  	for(var i=0;i < ca.length;i++) 
	{
    	var c = ca[i];
	    while (c.charAt(0)==' ') c = c.substring(1,c.length);
	    if (c.indexOf(nameEQ) == 0)
	      return c.substring(nameEQ.length,c.length);
  	}
	return null;
}


function dynamicText()
{
	var cookie_TextTitle = readCookie( "PreferredText" );
	var screen_TextTitle = getPreferredText();
	if ( !cookie_TextTitle )	cookie_TextTitle = "";	
	if ( !screen_TextTitle )	screen_TextTitle = DEFAULT_TEXT;		
	
	if ( cookie_TextTitle == screen_TextTitle )
		setActiveCSS( cookie_TextTitle, null );
	else
		setActiveCSS( screen_TextTitle, getCurrentText() );	
}


//addEvent() by John Resig
function addEvent( obj, type, fn )
{ 
	if (obj.addEventListener)
	{ 
		obj.addEventListener( type, fn, false );
	}
	else if (obj.attachEvent)
	{ 
		obj["e"+type+fn] = fn; 
		obj[type+fn] = function(){ obj["e"+type+fn]( window.event ); } 
		obj.attachEvent( "on"+type, obj[type+fn] ); 
	} 
} 


// Run dynamicLayout function when page loads and when it resizes.
addEvent(window, 'load', dynamicText);
addEvent(window, 'resize', dynamicText);

// save text style in cookie
window.onunload = function(e) 
{
	var title = getCurrentText();
	writeCookie( "PreferredText", title, 365 );
}
