function getDefaultLanguage()
{
	var to = readCookie('language');
	if (to == null)
		to = 'chinese';
	return to;
}

function setToDefaultLanguage()
{
	var to = getDefaultLanguage();
	var from;
	
	if (to == 'chinese') 
		from = 'english';
	else
		from = 'chinese';
	changeLanguage(from, to);
}

function changeContent(to)
{
	hideAll('project-data');
	hideAll('project-description');
	hideAll('project-awards');
	if (!document.getElementsByClassName(to)) return false;	// Checks to make sure this function exists. Halts execution of script if not

    var $hidden_content_boxes = document.getElementsByClassName(to);	// Gets list of all elements with class of 'hidden_content'
    for (var $i=0; $i<$hidden_content_boxes.length; $i++) {	// loops through the whole list...
	var $hidden_content_box = $hidden_content_boxes[$i];	// allocates each element to a variable (for easier reading)
	    $hidden_content_box.style.display = 'block';	// give this element a CSS declaration of display:block; to display it
	}
	setToDefaultLanguage();
}

function changeLanguage(from, to)
{
if (!document.getElementsByClassName(from)) return false;	// Checks to make sure this function exists. Halts execution of script if not

    var $hidden_content_boxes = document.getElementsByClassName(from);	// Gets list of all elements with class of 'hidden_content'
    for (var $i=0; $i<$hidden_content_boxes.length; $i++) {	// loops through the whole list...
	var $hidden_content_box = $hidden_content_boxes[$i];	// allocates each element to a variable (for easier reading)
	    $hidden_content_box.style.display = 'none';	// give this element a CSS declaration of display:none; to hide it
	}

	if (!document.getElementsByClassName(to)) return false;	// Checks to make sure this function exists. Halts execution of script if not

    var $hidden_content_boxes = document.getElementsByClassName(to);	// Gets list of all elements with class of 'hidden_content'
    for (var $i=0; $i<$hidden_content_boxes.length; $i++) {	// loops through the whole list...
	var $hidden_content_box = $hidden_content_boxes[$i];	// allocates each element to a variable (for easier reading)
	    $hidden_content_box.style.display = 'block';	// give this element a CSS declaration of display:block; to display it
	}
	eraseCookie('language');
	createCookie('language', to, 1);
  }


// Function to return a list of elements with a specific class attribute
document.getElementsByClassName = function($class) {
    var $results = Array();
    var $elements = document.getElementsByTagName("*");
    for (var $i=0; $i<$elements.length; $i++) {
	    var $classes = $elements[$i].className.split(" ");
	    for (var $j=0; $j<$classes.length; $j++) {
		    if ($classes[$j] == $class) {
			    $results[$results.length] = $elements[$i];
		    }
	    }
    }
    return $results;
}

function hideAll(classname)
{
	if (!document.getElementsByClassName(classname)) return false;	// Checks to make sure this function exists. Halts execution of script if not
    var $hidden_content_boxes = document.getElementsByClassName(classname);	// Gets list of all elements with class of 'hidden_content'
    for (var $i=0; $i<$hidden_content_boxes.length; $i++)	// loops through the whole list...
	{	
		var $hidden_content_box = $hidden_content_boxes[$i];	// allocates each element to a variable (for easier reading)
	    $hidden_content_box.style.display = 'none';	// give this element a CSS declaration of display:none; to hide it
	}
}

function displayContent(contentid)
{
	if (!document.getElementById(contentid)) return false;	// Checks to make sure this function exists. Halts execution of script if not
	hideAll("newslettercontent");
	var $hidden_content_box = document.getElementById(contentid);	// Gets list of all elements with class of 'hidden_content'
	$hidden_content_box.style.display = 'block';	// give this element a CSS declaration of display:block; to display it
}


// Functions to highlight navigation items: changeNav, gothroughMenu, getFirstElement
 
function changeNav()
{
	var url =""+document.location;
	url = url.substring(url.lastIndexOf("/"));
	gothroughMenu("primary-nav", url, "highlight");
	gothroughMenu("wireframemenu2", url, "wireframemenu2-highlight");
}

function gothroughMenu(id, url, highlightclass)
{
	var menu1 = document.getElementById(id);
	var list = getFirstElement(menu1);
	var length = list.childNodes.length;
	var href, link;
	
	for(var i=0;i<length;i++) //skip the first line (line #0)
	{		
		if (list.childNodes[i].nodeName != "#text")
		{
			link = list.childNodes[i].childNodes[0];
			if (link.nodeName == "#text") continue;
			href = link.getAttribute("href");
			if (href.indexOf(url) >= 0)
			{			
				link.className =  highlightclass;
				break;
			}
		}
	}
}

function getFirstElement(obj)
{
	var j;
	var length = obj.childNodes.length;
	for(j=0;j<length;j++)
		if (obj.childNodes[j].nodeName != "#text")
			break;	
	return obj.childNodes[j];
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	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 eraseCookie(name) {
	createCookie(name,"",-1);
}


// Image Swap for Primary Navigation

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
