function externallinks() { 
 if (!document.getElementsByTagName) return
  var anchors = document.getElementsByTagName("a"); 
 for (var i=0; i<anchors.length; i++) { 
   var anchor = anchors[i]; 
   if (anchor.getAttribute("href") && 
       anchor.getAttribute("rel") == "external") 
     anchor.target = "_blank"; 
 }
} 

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function AC_AX_RunContent(){
  var ret = AC_AX_GetArgs(arguments);
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_AX_GetArgs(args){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "pluginspage":
      case "type":
      case "src":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "data":
      case "codebase":
      case "classid":
      case "id":
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  return ret;
}

function loadData(projectID,imageID) {
	document.getElementById("mainImg").src = imageSet[projectID][imageID];
	
	var descImgHTML = new Array();
	for(var i=0;i<imageSet[projectID].length;i++) {
		descImgHTML[i] = '<a href="javascript:loadData('+ projectID +','+ i +');">'+ (i+1) +'</a>';
	}
	document.getElementById('portfolioIndex').innerHTML = descImgHTML.join(' <span style="color:#CCCCCC;">|</span> ');
	document.getElementById('portfolioDesc').innerHTML = descSet[projectID];
}



function slideMenu(id,numLines) {
	slideMenu.Registry[id] = [];
	slideMenu.Registry[id]['height']       = 1;
	slideMenu.Registry[id]['containerObj'] = document.getElementById(id+"Container");
	slideMenu.Registry[id]['contentObj']   = document.getElementById(id+"Content");
	//slideMenu.Registry[id]['maxHeight']    = new Number((numLines * slideMenu.lineHeight) + 2);
	slideMenu.Registry[id]['maxHeight']    = (slideMenu.Registry[id]['containerObj'].scrollHeight * numLines) - (numLines - 1);
	slideMenu.Registry[id]['interval']     = null;
	slideMenu.Registry[id]['timeout']      = null;
	
	slideMenu.Registry[id]['contentObj'].style.height  = '1px';
	
	// slide down events
	slideMenu.Registry[id]['containerObj'].onmouseover = function() { slideMenu.showMenu(id); }
	slideMenu.Registry[id]['containerObj'].onfocus     = function() { slideMenu.showMenu(id); }
	
	// slide up events
	slideMenu.Registry[id]['containerObj'].onmouseout  = function() { slideMenu.hideMenu(id); }
	slideMenu.Registry[id]['containerObj'].onblur      = function() { slideMenu.hideMenu(id); }
}

slideMenu.showMenu = function(id) {
	clearInterval(slideMenu.Registry[id]['interval']);
		
	slideMenu.Registry[id]['contentObj'].style.display = 'block';
	slideMenu.Registry[id]['contentObj'].style.zIndex += 10;
	
	slideMenu.Registry[id]['interval'] = window.setInterval("slideMenu.slideDown('"+id+"')",1);
}

slideMenu.hideMenu = function(id) {
	clearInterval(slideMenu.Registry[id]['interval']);
	
	slideMenu.Registry[id]['contentObj'].style.zIndex = 10;
	slideMenu.Registry[id]['interval'] = window.setInterval("slideMenu.slideUp('"+id+"')",1);
}

slideMenu.slideDown = function(id) {
	for(var i=0;i<8;i++) {
		if(slideMenu.Registry[id]['height'] >= slideMenu.Registry[id]['maxHeight']) {
			clearInterval(slideMenu.Registry[id]['interval']);
		} else {
			slideMenu.Registry[id]['contentObj'].style.height = slideMenu.Registry[id]['height']+'px';
			slideMenu.Registry[id]['height'] ++;
		}
	}
}

slideMenu.slideUp = function(id) {
	for(var i=0;i<8;i++) {
		if(slideMenu.Registry[id]['height'] <= 1) {
			clearInterval(slideMenu.Registry[id]['interval']);
			slideMenu.Registry[id]['contentObj'].style.display = 'none';
		} else {
			slideMenu.Registry[id]['contentObj'].style.height = slideMenu.Registry[id]['height']+'px';
			slideMenu.Registry[id]['height'] --;
		}
	}
}
function externalLink() {
	for(i=0;i<document.links.length;i++) {
		var thisLink = document.links[i];
		
		if(thisLink.href.indexOf(document.domain) == -1) {
			thisLink.title += " (Opens in new window)";
			
			thisLink.onclick = function() {
				if(window.open(this.href,"newWindow")) 	return false;
				else return false;
				}
			thisLink.onkeypress = function() {
				if(window.open(this.href,"newWindow")) 	return false;
				else return false;
			}
		}
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() { 
			oldonload();
			func();
		}
	}
}
function loadMenu() {
	var menu3 = new slideMenu("menu3",3);
	var menu5 = new slideMenu("menu5",6);
}

function changeLanguage(C_language) {
	switch (C_language)
	{
	case "TraditionalChinese":
		parts=location.pathname.split("/");
	    language_href="TraditionalChinese/"+parts[parts.length-1];
	    break;
	case"SimplifiedChinese":
		parts=location.pathname.split("/");
		language_href="SimplifiedChinese/"+parts[parts.length-1];
	    break;
	}
	window.location.href=language_href;
}

/*------------------------------------------------------*/

function init()
{   
	var pics = document.getElementById("pictures").childNodes;
	var length = pics.length;
	ScrollPic.prototype.flag = 0;
	for(var i = 0 ; i < length ; i++)
	{
		if(pics[i].tagName == "TD")
		{
			var td = document.createElement("TD");
			td.innerHTML = pics[i].innerHTML;
			document.getElementById("pictures").appendChild(td);
		}
	}
	document.getElementById("pictures").onmouseover = function ()
	{
		//alert('over');
		ScrollPic.prototype.flag = 1;
	}
	document.getElementById("pictures").onmouseout = function ()
	{
		//alert('out');
		if(ScrollPic.prototype.flag == 1)
		{
			ScrollPic.prototype.flag = 0;
			//ScrollPic();
		}
	}
	ScrollPic();
}

function ScrollPic()
{
	
	var layer = document.getElementById('MarqueePictues').getElementsByTagName("DIV")[0];
//	alert(layer.scrollLeft);
	
	if(ScrollPic.prototype.flag == 0)
	{
		if(layer.scrollLeft++ == layer.scrollLeft)
		{
			layer.scrollLeft = layer.clientWidth/2 + 105;
		}
			
	}
	setTimeout("ScrollPic()",10);
}

slideMenu.Registry = [];
window.onload=externallinks;
addLoadEvent(loadMenu);

