var isIE = (navigator.appName.indexOf("Microsoft") > -1);
var isIE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
var isIE8 = false /*@cc_on || @_jscript_version == 5.8 @*/;
//var isIE9 = false /*@cc_on || @_jscript_version == 5.9 @*/;
var isIE9 = (document.documentMode == 9);
var screenHReady = true;//(screen.height > 768);
var d = document;
var portfolioClass;

/*if (navigator.userAgent.test(/Opera[\/\s](\d+\.\d+)/))
{
	var oprversion = new Number(RegExp.$1)
}*/

function init()
{
	genTwitterFeed();
	//alert(!checkPocketIE() + ' :  ' + !isIE6 + ' :  ' + screenHReady);
	if (!checkPocketIE() && !isIE6 && screenHReady)	portfolioClass = new setPortfolio();
	checkAddress();
	//if (!checkPocketIE() && !isIE6 && screenHReady)	setShowReel();
}

function checkPocketIE()
{
	var pda_user_agent_list = new Array("2.0 MMP", "240320", "AvantGo","BlackBerry", "Blazer",
			"Cellphone", "Danger", "DoCoMo", "Elaine/3.0", "EudoraWeb", "hiptop", "IEMobile", "KYOCERA/WX310K", "LG/U990",
			"MIDP-2.0", "MMEF20", "MOT-V", "NetFront", "Newt", "Nintendo Wii", "Nitro", "Nokia",
			"Opera Mini", "Opera Mobi",
			"Palm", "Playstation Portable", "portalmmm", "Proxinet", "ProxiNet",
			"SHARP-TQ-GX10", "Small", "SonyEricsson", "Symbian OS", "SymbianOS", "TS21i-10", "UP.Browser", "UP.Link",
			"Windows CE", "WinWAP", "Android", "iPhone", "iPod", "iPad", "Windows Phone");
	var pda_app_name_list = new Array("Microsoft Pocket Internet Explorer");

	var user_agent = navigator.userAgent.toString();
	for (var i=0; i<pda_user_agent_list.length; i++) {
		if (user_agent.indexOf(pda_user_agent_list[i]) >= 0) {
			return true;
		}
	}
	var appName = navigator.appName.toString();
	for (var i=0; i<pda_app_name_list.length; i++) {
		if (user_agent.indexOf(pda_app_name_list[i]) >= 0) {
			return true;
		}
	}
	
	return false;
}

function NewWindow(mypage, myname, w, h, scroll,resizable)
{
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable='+resizable+','
	win = window.open(mypage, myname, winprops)
	win.self.focus()
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function createImg(src, alt, w, h, link, t, className)
{
	var img = d.createElement('img');
	if (src)	img.setAttribute('src', src);
	if (alt)	img.setAttribute('alt', alt);
	if (w)	img.setAttribute('width', w);
	if (h)	img.setAttribute('height', h);
	if (className)	img.className = className;
	
	if (link)
	{
		img.setAttribute('border', 0);
		
		var a = d.createElement('a');
		a.setAttribute('href', link);
		if (t && typeof(t) != 'undefined')	a.setAttribute('target', t);
		a.appendChild(img);
		return a;
	}
	else
	{	
		return img;
	}
}

function createA(link, t, txt, id, className)
{		
	var a = d.createElement('a');
	if (link)	a.setAttribute('href', link);
	if (t && typeof(t) != 'undefined')	a.setAttribute('target', t);
	
	//if (txt)	a.appendChild(d.createTextNode(txt));
	if (txt)	a.innerHTML = txt;
	if (id)	a.setAttribute('id', id);
	if (className)	a.className = className;
	
	return a;
}

function createDiv(id, className, txt)
{		
	var div = d.createElement('div');
	if (id)	div.setAttribute('id', id);
	if (className)	div.className = className;
	//if (txt)	div.appendChild(d.createTextNode(txt));
	if (txt)	div.innerHTML = txt;
	return div;
}

function createTag(tag, id, className)
{		
	var div = d.createElement(tag);
	if (id)	div.setAttribute('id', id);
	if (className)	div.className = className;
	return div;
}

function createInput(name, type, value, className)
{		
	var input = d.createElement('input');
	if (name)	input.setAttribute('name', name);
	if (type)	input.setAttribute('type', type);
	if (value)	input.setAttribute('value', value);
	if (className)	input.className = className;
	return input;
}

function setChildNodes(obj, tagName)
{
	var array = new Array();
	
	for (var i=0; i<obj.childNodes.length; i++)
	{
		if (tagName)
		{
			//alert(obj.childNodes[i].tagName)
			if (obj.childNodes[i].tagName != tagName)	continue;
		}
		if (obj.childNodes[i].toString().toLowerCase().indexOf('text') >= 0)	continue;
		if (!obj.childNodes[i].tagName)	continue;
		array.push(obj.childNodes[i]);
	}
	
	return array;
}

function getElementsByClassName(p, c, selected)
{
	var array = new Array();
	var tags = p.getElementsByTagName('*');
	
	for (var i=0; i<tags.length; i++)
	{
		if (!tags[i].className)	continue;
		if (selected)
		{
			if (tags[i].className.indexOf(c) >= 0)	array.push(tags[i]);
		}
		else
		{
			if (tags[i].className == c)	array.push(tags[i]);
		}
	}
	
	return array;
}

function GetParam(name)
{
	var start=location.search.indexOf("?"+name+"=");
	if (start<0) start=location.search.indexOf("&"+name+"=");
 	if (start<0) return '';
 	start += name.length+2;
 	var end=location.search.indexOf("&",start)-1;
 	if (end<0) end=location.search.length;
 	var result=location.search.substring(start,end);
 	var result='';
 	for(var i=start;i<=end;i++)
 	{
 		var c=location.search.charAt(i);
 		result=result+(c=='+'?' ':c);
 	}
 	//alert(unescape(result));
 	return unescape(result);
}

function startFading(el)
{
//return;
  if (el.fadinTimeout)	clearTimeout(el.fadinTimeout);
  //el.style.visibility = 'visible';
  //el.style.zIndex = 2;
  setOpacity(el, 0);
  fadeImage(el, 0);
}

function fadeImage(el, currentOpacity)
{
  currentOpacity += 20;

  if (currentOpacity > 100)
  {
    setOpacity(el, 100);
    //el.style.zIndex = 1;
	if (el.fadinTimeout)	clearTimeout(el.fadinTimeout);
  }
  else
  {
    setOpacity(el, currentOpacity);
    el.fadinTimeout = setTimeout(function() { fadeImage(el, currentOpacity); }, 10);
  }
}

function startFadingOut(el)
{
  if (el.fadinTimeout)	clearTimeout(el.fadinTimeout);
  //el.style.visibility = 'visible';
  //el.style.zIndex = 2;
  setOpacity(el, 100);
  fadeImageOut(el, 100);
}

function fadeImageOut(el, currentOpacity)
{
  currentOpacity -= 25;

  if (currentOpacity <= 0)
  {
    setOpacity(el, 0);
    //el.style.zIndex = 1;
	el.style.display = 'none';
	if (el.fadinTimeout)	clearTimeout(el.fadinTimeout);
  }
  else
  {
    setOpacity(el, currentOpacity);
    el.fadinTimeout = setTimeout(function() { fadeImageOut(el, currentOpacity); }, 10);
  }
}

function setOpacity(el, opacity)
{
	opacity /= 100;
	el.style.opacity = opacity;
	el.style.MozOpacity = opacity;
	el.style.filter = "alpha(opacity=" + (opacity*100) + ")";
}

function addEvent (o, t, f)
{
	removeEvent (o, t, f);
	if (o.attachEvent) o.attachEvent('on'+ t, f);
	else o.addEventListener(t, f, false);
};

function removeEvent (o, t, f)
{
	if (o.detachEvent) o.detachEvent('on'+ t, f);
	else o.removeEventListener(t, f, false);
};

/*--------------
DOMParser for IE and Safari
---------------*/
if (typeof DOMParser == "undefined")
{
   DOMParser = function () {}

   DOMParser.prototype.parseFromString = function (str, contentType) {
      if (typeof ActiveXObject != "undefined") {
         var d = new ActiveXObject("MSXML.DomDocument");
         d.loadXML(str);
         return d;
      } else if (typeof XMLHttpRequest != "undefined") {
         var req = new XMLHttpRequest;
         req.open("GET", "data:" + (contentType || "application/xml") +
                         ";charset=utf-8," + encodeURIComponent(str), false);
         if (req.overrideMimeType) {
            req.overrideMimeType(contentType);
         }
         req.send(null);
         return req.responseXML;
      }
   }
}

function loadXML(url, isHTML)
{
	var x;
	var self = this;
	
	this.action = function()	{};

	if (typeof(XMLHttpRequest) == 'undefined')
	{
		XMLHttpRequest = function()
		{
		    try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
				catch(e) {}
		    try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
				catch(e) {}
		    try { return new ActiveXObject("Msxml2.XMLHTTP"); }
				catch(e) {}
		    try { return new ActiveXObject("Microsoft.XMLHTTP"); }
				catch(e) {}
		    throw new Error("This browser does not support XMLHttpRequest.");
		};
	}

	x = new XMLHttpRequest();
	if (x.overrideMimeType)	x.overrideMimeType((isHTML)?'text/html':'text/xml');
	
	if (x)
	{
		x.onreadystatechange = function()
		{
			if (x.readyState == 4 && x.status == 200)
			{
				self.action(x);
			}
		}
		x.open('GET', url, true);
		x.send(null);
	}
}

function getChildNodes(xml)
{
	var obj = new Object();
	for (var i=0; i<xml.length; i++)
	{
		if (!isIE)	if (xml[i].toString() == '[object Text]')	continue;
		var name = xml[i].nodeName.toString();
		var value = (xml[i].firstChild)	?	xml[i].firstChild.data.toString()	:	'';
		obj[name] = value;
	}
	return obj;
}

function getAttributes(xml)
{
	var obj = new Object();
	for (var i=0; i<xml.attributes.length; i++)
	{
		obj[xml.attributes[i].name.toString()] = xml.attributes[i].value.toString();
	}
	return obj;
}

function addZero(num)
{
	if (num < 10)	num = '0' + num;
	return	num;
}

function genTwitterFeed()
{
	var container = d.getElementById('twitterContent');
	var timeDiv = d.getElementById('twitterTime');
	
	var xml = new loadXML('php/twitterXML.php?version=' + Math.random());
	//var xml = new loadXML('php/twitterXML.php');
	xml.action = function(x)
	{
		var xml = x.responseXML;
		if (isIE)
		{
			var parser = new DOMParser();
			xml = parser.parseFromString(x.responseText, "text/xml");
		}
		/*
		var status = xml.getElementsByTagName('status')[0];
		var text = status.getElementsByTagName('text')[0].firstChild.data.toString();
		var time = status.getElementsByTagName('created_at')[0].firstChild.data.toString();
		
		container.getElementsByTagName('p')[0].innerHTML = checkLink(text);
		timeDiv.innerHTML = getTime(time);*/
		
		var item = xml.getElementsByTagName('item')[0];
		var title = item.getElementsByTagName('title')[0].firstChild.data.toString();
		var time = item.getElementsByTagName('pubDate')[0].firstChild.data.toString();
		
		container.getElementsByTagName('p')[0].innerHTML = checkLink(title.replace('designercity: ', ''));
		timeDiv.innerHTML = getTime(time);
	};
	
	/*function getTime(time)
	{
		var monthArray = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
		var array = time.split(' ');
		for (var i=0; i<monthArray.length; i++)
		{
			if (monthArray[i] == array[1])
			{
				var month = i;
				break;
			}
		}
		var date = array[2];
		var year = array[5];
		var timeArray = array[3].split(':');
		var hours = Number(timeArray[0]);
		var mins = Number(timeArray[1]);
		var seconds = Number(timeArray[2]);
		//var theDate = new Date(year, month, date, hours, mins, seconds);
		theDate = new Date(Date.UTC(year, month, date, hours, mins, seconds));
		
		var h = theDate.getHours();
		var time = (h > 12)?(h - 12 + ':' + theDate.getMinutes() + ' PM'):(h + ':' + theDate.getMinutes() + ' AM');
		var str = time + ', ' + theDate.getDate() + ' ' + monthArray[theDate.getMonth()] + ' ' + theDate.getFullYear();
		
		return str;
	};*/
	
	function getTime(time)
	{
		//<pubDate>Sat, 17 Apr 2010 09:40:24 +0000</pubDate>
		var monthArray = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
		var array = time.split(' ');
		for (var i=0; i<monthArray.length; i++)
		{
			if (monthArray[i] == array[2])
			{
				var month = i;
				break;
			}
		}
		var date = array[1];
		var year = array[3];
		var timeArray = array[4].split(':');
		var hours = Number(timeArray[0]);
		var mins = Number(timeArray[1]);
		var seconds = Number(timeArray[2]);
		//var theDate = new Date(year, month, date, hours, mins, seconds);
		theDate = new Date(Date.UTC(year, month, date, hours, mins, seconds));
		
		var h = theDate.getHours();
		var time = (h > 12)?(h - 12 + ':' + theDate.getMinutes() + ' PM'):(h + ':' + theDate.getMinutes() + ' AM');
		var str = time + ', ' + theDate.getDate() + ' ' + monthArray[theDate.getMonth()] + ' ' + theDate.getFullYear();
		
		return str;
	};
	
	/*function checkLink(txt)
	{
		if (txt.indexOf('http://') < 0)	return txt;
		var num = txt.indexOf('http://');
		var linkStr = txt.substring(num, txt.length);
		//var array = linkStr.split('/');
		//var str = array[array.length - 1].substring(0, (array[array.length - 1].indexOf('.') + 4));
		var linkStr1 = '<a href="' + linkStr + '" target="_blank">' + linkStr + '</a>';
		var str = txt.replace(linkStr, linkStr1);
		
		return str;
	};*/
	function checkLink(txt)
	{
		var array = txt.split('\n');
		var str = '';
		
		for (var i=0; i<array.length; i++)
		{
			if (array[i].indexOf('http://') < 0 && array[i].indexOf('www.') < 0)
			{
				str += array[i];
				if (i < array.length - 1)	str += '<br/>';
				continue;
			}
			
			if (array[i].indexOf('http://') == 0 || array[i].indexOf('www.') == 0)
			{
				var link = (array[i].indexOf('http://') >= 0)	?array[i]:'http://' + array[i];
				str +=  '<a href="' + link + '" target="_blank">' + array[i] + '</a>';
				if (i < array.length - 1)	str += '<br/>';
				continue;
			}
			
			var num = array[i].indexOf('http://');
			var linkStr = array[i].substring(num, array[i].length);
			var linkStr1 = '<a href="' + linkStr + '" target="_blank">' + linkStr + '</a>';
			str += array[i].replace(linkStr, linkStr1);
			if (i < array.length - 1)	str += '<br/>';
		}
		
		return str;
	};
}

function clipMotion(obj, start, sp)
{
	var LReady = true;
	var HReady = true;
	var selfMotion = this;
	
	if (start)
	{
		if (obj.L != null)	obj.style.left = obj.L + 'px';
		if (obj.H != null)	obj.style.height = obj.H + 'px';
		if (obj.action)	obj.action();
		return;
	}
	
	if (obj.L != null)
	{
		obj.objL = obj.offsetLeft;
		obj.goStepL = (obj.L - obj.objL)/sp;
		if (obj.goStepL > 0)	obj.goStepL = Math.ceil(obj.goStepL);
		if (obj.goStepL < 0)	obj.goStepL = Math.floor(obj.goStepL);
		
		if (!(Math.abs(obj.objL - obj.L) < 1))
		{
			obj.objL += obj.goStepL;
			LReady = false;
		}
		else
		{
			obj.objL = obj.L;
			LReady = true;
		}
		
		obj.style.left = obj.objL + 'px';
	}
	
	if (obj.H != null)
	{
		obj.objH = obj.offsetHeight;
		obj.goStepH = (obj.H - obj.objH)/sp;
		if (obj.goStepH > 0)	obj.goStepH = Math.ceil(obj.goStepH);
		if (obj.goStepH < 0)	obj.goStepH = Math.floor(obj.goStepH);
		
		if (!(Math.abs(obj.objH - obj.H) < 1))
		{
			obj.objH += obj.goStepH;
			HReady = false;
		}
		else
		{
			obj.objH = obj.H;
			HReady = true;
		}
		
		obj.style.height = obj.objH + 'px';
	}
	
	if (LReady && HReady)
	{
		clearTimeout(obj.timeOut);
		if (obj.action)	obj.action();
	}
	else
	{
		obj.timeOut = setTimeout(function(){self.motion(obj, start, sp);}, 10);
	}
}

function setPortfolio()
{
	var container = d.getElementById('portfolio');
	var a = container.getElementsByTagName('a');
	var overlay = d.getElementById('overlay');
	var portfolioPopup = d.getElementById('portfolioPopup');
	var htmlContainer = d.getElementById('htmlContainer');
	var btnPrev = getElementsByClassName(portfolioPopup, 'btn_prev')[0];
	var btnNext = getElementsByClassName(portfolioPopup, 'btn_next')[0];
	var btnClose = getElementsByClassName(portfolioPopup, 'btn_close')[0];
	var mask = getElementsByClassName(portfolioPopup, 'mask')[0];
	var portfolioArray = new Array();
	var section;
	var curIndex;
	var total = a.length;
	var setPhotosClass;
	var clearPortfolioTimeout;
	var timeout;
	var minH = 620;
	var self = this;
	
	this.init = function()
	{
		for (var i=0; i<total; i++)
		{
			var url = a[i].href;
			
			//Skip Old Site Link
			if (url.indexOf('old_index.html') >= 0)
			{
				total -= 1;
				continue;
			}
			
			var array = url.split('/');
			array.shift();
			array.shift();
			array.shift();
			//array.shift();
			array[array.length-1] = array[array.length-1].replace('.html', '');
			str = array.join('/');
			portfolioArray.push(str);
			
			a[i].num = i;
			a[i].address = str;
			a[i].href = 'javascript:;';
			a[i].onclick = function()
			{
				self.openPortfolio(this.address);
			};
		};
		
		self.setNav();
		self.setMaskScroll();
		window.onresize = function() {self.setMaskScroll();};
	};
	
	this.setMaskScroll = function()
	{
		var h = d.documentElement.offsetHeight;
		mask.style.overflowY = (h > minH)?	'hidden':'auto';
	};

	this.setBtnRollOver = function(btn)
	{
		btn.onmouseover = function()
		{
			if (this.className.indexOf('over') >= 0)	return;
			this.className += ' over';
		};
		btn.onmouseout = function()
		{
			this.className = this.className.replace(/over/, '');
		};
	};

	this.setNav = function()
	{	
		btnPrev.onclick = function()
		{
			self.changePortfolio(-1);
		};
		btnNext.onclick = function()
		{
			self.changePortfolio(1);
		};
		btnClose.onclick = function()
		{
			self.closePortfolio();
		};
		this.setBtnRollOver(btnPrev);
		this.setBtnRollOver(btnNext);
		this.setBtnRollOver(btnClose);
	};

	this.changePortfolio = function(index)
	{
		curIndex += index;
		if (curIndex >= total)	curIndex = 0;
		if (curIndex < 0)		curIndex = total - 1;
		
		var address = portfolioArray[curIndex];
		this.genPortfolio(address);
	};

	this.openPortfolio = function(address)
	{
		for (var i=0; i<portfolioArray.length; i++)
		{
			if (address == portfolioArray[i])
			{
				curIndex = i;
				break;
			}
		}
		
		overlay.style.display = 'block';
		startFading(overlay);
		clearTimeout(clearPortfolioTimeout);
		
		setTimeout(function()
		{
			self.showHideScrollbar(false);
		}, 10);
		
		setTimeout(function()
		{
			self.genPortfolio(address);
		}, 800);
	};

	this.closePortfolio = function()
	{
		startFadingOut(portfolioPopup);
		setTimeout(function()
		{
			startFadingOut(overlay);
		}, 600);
		clearPortfolioTimeout = setTimeout(function()
		{
			 self.clearPortfolio();
		}, 2000);
		
		changeTopHash('');
		this.showHideScrollbar(true);
		if (setPhotosClass)	setPhotosClass.hiddenSwf();
		clearInterval(timeout);
	};

	this.clearPortfolio = function()
	{
		var portfolioTitle = d.getElementById('portfolioTitle');
		var info = getElementsByClassName(portfolioPopup, 'info')[0];
		var content = d.getElementById('content');
		var imgItem = d.getElementById('imgItem');
		var imgTab = d.getElementById('imgTab');
		var awards = getElementsByClassName(portfolioPopup, 'awards')[0];
		var titleImg = portfolioPopup.getElementsByTagName('h2')[0].getElementsByTagName('img')[0];
		portfolioTitle.innerHTML = '';
		info.innerHTML = '';
		content.innerHTML = '';
		imgItem.innerHTML = '';
		imgTab.innerHTML = '';
		awards.innerHTML = '';
		titleImg.src = 'images/spacer.gif';
	};

	this.genPortfolio = function(address)
	{
		var array = address.split('/');
		section = array[array.length - 1];
		
		btnPrev.style.visibility = (curIndex == 0)			?'hidden':'visible';
		btnNext.style.visibility = (curIndex == total - 1)	?'hidden':'visible';
		htmlContainer.innerHTML = 'loading...';
		
		var url = address + '.html';
		var xml = new loadXML(url + '?version=' + Math.random());
		xml.action = function(x)
		{
			var html = x.responseText;
			htmlContainer.innerHTML = html;
			
			self.clearPortfolio();
			
			//var h1 = htmlContainer.getElementsByTagName('h1')[0].firstChild.data.toString();
			var h1 = htmlContainer.getElementsByTagName('h1')[0].innerHTML;
			var portfolioTitle = d.getElementById('portfolioTitle');
			portfolioTitle.innerHTML = h1;
			//portfolioTitle.className = 'typeface-js largerTypeface';
			portfolioTitle.style.display = (h1 == '')?	'none':'block';
			if (h1 != '')	_typeface_js.replaceText(portfolioTitle);
			
			var div = htmlContainer.getElementsByTagName('div');
			for (var i=0; i<div.length; i++)
			{
				if (!div[i].attributes.getNamedItem('id'))	continue;
				var id = div[i].attributes.getNamedItem('id');
				
				if (id.value == 'info')
				{
					var info = getElementsByClassName(portfolioPopup, 'info')[0];
					info.innerHTML = div[i].innerHTML;
					if (info.innerHTML == '')
					{
						if (info.parentNode.className.indexOf('noInfo') < 0)	info.parentNode.className += ' noInfo';
					}
					else
					{
						info.parentNode.className = info.parentNode.className.replace(/noInfo/, '');
					}
				}
				if (id.value == 'content')
				{
					var content = d.getElementById('content');
					content.innerHTML = div[i].innerHTML;
				}
				if (id.value == 'photos')
				{
					var imgItem = d.getElementById('imgItem');
					imgItem.innerHTML = div[i].innerHTML;
					setPhotosClass = new self.setPhotos();
				}
				if (id.value == 'awards')
				{
					var awards = getElementsByClassName(portfolioPopup, 'awards')[0];
					awards.innerHTML = div[i].innerHTML;
				}
			}
			
			//Set Show Reel
			var titleImg = portfolioPopup.getElementsByTagName('h2')[0].getElementsByTagName('img')[0];
			var targetTitle = getElementsByClassName(htmlContainer, 'btnContainer')[0].getElementsByTagName('h2')[0].getElementsByTagName('img')[0];
			titleImg.src = targetTitle.src;
			titleImg.alt = targetTitle.alt;
			
			if (address == 'showreel')
			{
				btnPrev.style.visibility = 'hidden';
				btnNext.style.visibility = 'hidden';
			}
			
			portfolioPopup.style.display = 'block';
			if (!isIE || isIE9)
			{
				startFading(portfolioPopup);
			}
			else
			{
				//setOpacity(portfolioPopup, 100);
				portfolioPopup.style.filter = null;
			}
			htmlContainer.innerHTML = '';
			
			changeTopHash(address);
		};
	};

	this.setPhotos = function()
	{
		var photos = d.getElementById('imgItem');
		var nav = d.getElementById('imgTab');
		//var imgs = photos.getElementsByTagName('img');
		var imgs = setChildNodes(photos);
		var total = imgs.length;
		var highlightA;
		var highlightImg;
		var index = 1;
		var time = 5000;
		var curIndex;
		var navList = new Array();
		var flashNum = 0;
		var awardTitleDiv;
		var isAutoChange = true;
		var selfPhotos = this;
		
		//Gen Flash Player
		for (var i=0; i<total; i++)
		{
			var id = imgs[i].id;
			if (imgs[i].tagName == 'DIV')	isAutoChange = false;
			if (id.indexOf('video') < 0)	continue;
			
			var div = createTag('span', 'videoSWF_' + flashNum);
			var videoHTML = imgs[i].innerHTML;
			div.innerHTML = videoHTML;
			imgs[i].innerHTML = '';
			imgs[i].appendChild(div);
			
			if (imgs[i].getElementsByTagName('video').length)
			{
				var videoPath = imgs[i].getElementsByTagName('source')[0].src.replace('.mp4', '.flv');
				var posterPath = imgs[i].getElementsByTagName('video')[0].poster;
			}
			else
			{
				var str = videoHTML.indexOf('/videos/');
				var str1 = videoHTML.indexOf('.mp4');
				var videoPath = videoHTML.substring(str, str1) + '.flv';
				var posterPath = '/images/videos/' + section + '.jpg';
			}
			
			var flashvars = {};
			flashvars.swfPath = '/swf/SkinOverAllNoCaption.swf';
			flashvars.preview = posterPath;
			flashvars.flv = videoPath;
			
			var params = {};
			params.allowscriptaccess = 'always';
			params.allowfullscreen = 'true';
			params.wmode = 'opaque';
			
			var attributes = {};
			
			swfobject.embedSWF('/swf/flvplayer.swf', ('videoSWF_' + flashNum), 710, 423, '10.0.0', '', flashvars, params, attributes);
			flashNum ++;
		}
		photos.style.background = (flashNum)?'#F4F4F4':'';
		
		//Gen Nav
		nav.innerHTML = '';
		
		if (total > 1)
		{
			for (var i=0; i<total; i++)
			{
				var a = createA('javascript:;');
				a.img = imgs[i];
				a.num = i;
				
				a.onclick = function()
				{
					if (this.className.indexOf('active') >= 0)	return;
					changeImg(this);
					clearInterval(timeout);
					setTimeout(function(){autoChange();}, 50);
				};
				self.setBtnRollOver(a);
				
				nav.appendChild(a);
				navList.push(a);
			}
			
			changeImg(navList[0], true);
			autoChange();
			
			if (flashNum)	setTimeout(function(){navList[0].img.style.display = 'block';}, 1500);
		}
		else
		{
			imgs[0].style.display = 'block';
		}
		
		selfPhotos.hiddenSwf = function()
		{
			for (var i=0; i<flashNum; i++)
			{
				var swf = d.getElementById('videoSWF_' + i);
				swf.parentNode.style.display = 'none';
			}
		};
		
		function changeImg(btn, start)
		{	
			//Hidden SWF
			//var isSWF = (btn.img.tagName == 'DIV');
			var isSWF = (btn.img.id.indexOf('video') >= 0);
			
			setTimeout(function(){if (highlightImg)	highlightImg.style.display = 'none'; highlightImg = btn.img;}, 400);
			btn.img.style.display = 'block';
			//if (highlightImg)	highlightImg.style.zIndex = index;
			//index ++;
			//btn.img.style.zIndex = index;
			if (btn.img.parentNode)	btn.img.parentNode.appendChild(btn.img);
			if (!isSWF)	startFading(btn.img);
			
			//Set Image Map
			if (btn.img.alt || btn.awardAlt)
			{
				if (!btn.awardAlt)	btn.awardAlt = btn.img.alt;
				btn.img.alt = '';
				/*btn.img.setAttribute('usemap', '#Map' + btn.num);
				htmlContainer.innerHTML += '<map name="Map' + btn.num + '" id="Map' + btn.num + '"><area shape="rect" coords="0,412,130,466" href="javascript:;" title="' + alt + '" /></map>';*/
				if (awardTitleDiv)	photos.removeChild(awardTitleDiv);
				awardTitleDiv = createTag('span', 'awardTitleDiv');
				awardTitleDiv.innerHTML = '';
				var array = btn.awardAlt.split('|');
				for (var i=0; i<array.length; i++)
				{
					var w = (array.length > 1)?((i == 0)?30:100):130;
					var img = createImg('images/spacer.gif', '', w, 54);
					img.style.display = 'block';
					awardTitleDiv.appendChild(img);
					img.title = array[i];
				}
				photos.appendChild(awardTitleDiv);
			}
			else
			{
				if (awardTitleDiv)	photos.removeChild(awardTitleDiv);
				awardTitleDiv = null;
			}
			
			//Hidden Swf
			for (var i=0; i<flashNum; i++)
			{
				var swf = d.getElementById('videoSWF_' + i);
				swf.parentNode.style.display = 'none';
			}
			if (isSWF && !start)	btn.img.style.display = 'block';
			
			//Set Scroll
			if (btn.img.getElementsByTagName('div').length > 0)
			{
				if (btn.img.getElementsByTagName('div')[0].id == 'awardTable' == !btn.img.setScroll)
				{
					setTimeout(function()
					{
						var mask = d.getElementById('awardTable');
						var container = mask.parentNode;
						var track = getElementsByClassName(container, 'Scrollbar-Track')[0];
						var scroll = d.getElementById('Scrollbar-Container');
						var scroller  = new Scrolling.Scroller(mask, scroll.offsetWidth, scroll.offsetHeight + 3);
						var scrollbar = new Scrolling.Scrollbar(scroll, scroller, new Scrolling.ScrollTween());
						
						genContentTableStyle('awardTable');
						btn.img.setScroll = true;
					}, 200);
				}
			}
			
			btn.className += ' active';
			if (highlightA)	highlightA.className = highlightA.className.replace(/active/, '');
			highlightA = btn;
			
			curIndex = btn.num;
		};
		
		function autoChange()
		{
			if (!isAutoChange)	return;
			clearInterval(timeout);
			
			timeout = setInterval(function()
			{
				curIndex ++;
				if (curIndex >= total)	curIndex = 0;
				
				changeImg(navList[curIndex]);
			}, time);
		};
	};

	this.showHideScrollbar = function(show)
	{
		if (isIE)
		{
			d.getElementsByTagName('html')[0].style.overflow = (show)?'auto':'hidden';
		}
		else
		{
			d.body.style.overflow = (show)?'auto':'hidden';
		}
	};
	
	this.init();
}

function checkAddress()
{
	var hash = location.hash;
	if (hash == '')	return;
	
	var id = hash.replace('#/', '');
	if (id == '')	return;
	
	if (checkPocketIE() || isIE6 || !screenHReady)
	{
		location.replace(id + '.html');
	}
	else
	{
		portfolioClass.openPortfolio(id);
	}
}

function changeTopHash(address)
{
	var topUrl = top.location.href.replace(top.location.hash, '');
	//top.location.href = topUrl + ((address)?('#/' + address):'');
	top.location.href = topUrl + '#/' + address;
};

function setShowReel()
{
	var nav = d.getElementById('showReel');
	var url = nav.href;
	var array = url.split('/');
	array.shift();
	array.shift();
	array.shift();
	//array.shift();
	array[array.length-1] = array[array.length-1].replace('.html', '');
	var str = array.join('/');
	nav.address = str;
	nav.href = 'javascript:;';
	nav.onclick = function()
	{
		portfolioClass.openPortfolio(this.address);
	}
}

function genContentTableStyle(id)
{
	var container = d.getElementById(id);
	var table = container.getElementsByTagName('table');
	//alert(table);
	//clearTableStyle(table);
	
	
	for (var j=0; j<table.length; j++)
	{
		//if (!(table[j].className == 'contentTable' || table[j].className == 'linkTable'))	continue;
		
		var rows = table[j].rows;
		
		for (var i=0; i<rows.length; i++)
		{
			if (rows[i].className == 'total')	continue;
			if (i%2 == 0)			rows[i].className = 'odd';
			//if (i == rows.length-1)	rows[i].className += ' last';
			
			/*if (table[j].className == 'linkTable')
			{
				rows[i].onmouseover	= function() {this.className += ' highlight';}
				rows[i].onmouseout	= function() {this.className = this.className.replace('highlight', '');}
			}*/
		}
	}
}
