//////////////////////////////////////////////////////////////
//
// http://www.quirksmode.org browser detection class
//
////////
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function normal()
{
	if((BrowserDetect.browser == "Firefox" && parseFloat(BrowserDetect.version) > 2) ||
	  (BrowserDetect.browser == "Safari" && parseFloat(BrowserDetect.version) > 3) ||
	  (BrowserDetect.browser == "Opera" && parseFloat(BrowserDetect.version) > 9) ||
	  (BrowserDetect.browser == "Chrome" && parseFloat(BrowserDetect.version) > 7) ||
	  (BrowserDetect.browser == "Explorer" && parseFloat(BrowserDetect.version) > 8))
	{
		return true;
	}
	else
	{
		return false;
	}
}
function IE8()
{
	if(BrowserDetect.browser == "Explorer" && parseFloat(BrowserDetect.version) == 8)
	{
		return true;
	}
	else
	{
		return false;
	}
}
function IE7()
{
	if(BrowserDetect.browser == "Explorer" && parseFloat(BrowserDetect.version) == 7)
	{
		return true;
	}
	else
	{
		return false;
	}
}

///////////////////////////////////////////////////////////////
//
// Some shorthand functions
//
////////////

function S(objID) {
	return document.getElementById(objID).style;
}
function O(objID) {
	return document.getElementById(objID);
}

function move(objID, x, y) {
	S(objID).left = x+'px';
	S(objID).top = y+'px';
}

//////////////////////////// VIEWPORT Size ////////////////////////





function cviewport()
{	
	this.width = function()
	{
		// mozilla/netscape/opera/IE7
		if (typeof window.innerWidth != 'undefined')
		{
			return window.innerWidth
		}
		// Standards compliant IE6
		else if (typeof document.documentElement != 'undefined'
		&& typeof document.documentElement.clientWidth !=
		'undefined' && document.documentElement.clientWidth != 0)
		{
			return document.documentElement.clientWidth
		}
		// less than IE6		
		else
		{
			return document.getElementsByTagName('body')[0].clientWidth	
		}
	}
	
	this.height = function()
	{
		// mozilla/netscape/opera/IE7
		if (typeof window.innerHeight != 'undefined')
		{
			return window.innerHeight
		}
		// Standards compliant IE6
		else if (typeof document.documentElement != 'undefined'
		&& typeof document.documentElement.clientHeight !=
		'undefined' && document.documentElement.clientHeight != 0)
		{
			return document.documentElement.clientHeight
		}
		// less than IE6
		else
		{
			return document.getElementsByTagName('body')[0].clientHeight
		}
	}
}
var viewport = new cviewport();  // create global viewport object
////////////////////////////////////////////////////////////////////

function hCenter(objID)
{
	S(objID).left = (viewport.width()/2 - O(objID).offsetWidth/2) + 'px';
}
function vCenter(objID)
{
	S(objID).top = (viewport.height()/2 - O(objID).offsetHeight/2) + 'px';
}

function f_addEventCallback(event, functionRef)
{
	if(normal())
	{
		this.addEventListener(event, functionRef, false)
	}
	if(IE8())
	{
		this.attachEvent('on'+event, functionRef);
	}
	if(IE7())
	{
		this.attachEvent('on'+event, functionRef);
	}
	return;
}


function attachBaseClass()
{
	var allObj = document.getElementsByTagName('*');
	var string = "";
	for(obj in allObj)
	{
		allObj[obj].addClass = _addClass;
	}
}

function _addClass(_class)
{
	eval("this."+_class+"="+_class);
}


/////////////////////////////////////////////////////////////////
//
// Start site specific functions, variables, etc...
//
/////////////
x = 0;
imagePaths = new Array();

window.addEventCallback = f_addEventCallback;
window.addEventCallback('load', main);


function main()
{
	setMouseOvers();
	setSearch();
	contactimage = new Image();
	contactimage.src = 'wp-content/themes/trivium2011/images/contacttrivium-on.png';
	blogimage = new Image();
	blogimage.src = 'wp-content/themes/trivium2011/images/blog-on.png';
	blogimage = new Image();
	blogimage.src = 'wp-content/themes/trivium2011/images/blog-on.png';
	galleriesimage = new Image();
	galleriesimage.src = 'wp-content/themes/trivium2011/images/galleries-on.png';
	aboutimage = new Image();
	aboutimage.src = 'wp-content/themes/trivium2011/images/whatsatrivium-on.png';
	


	if (document.URL.match(/wpcf7/i)) {
		setTimeout('showPopup("contactus", 920, 750)', 500);
	}
	
	init();
}

function setMouseOvers()
{
	O('bigContact').onmouseover = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/contacttrivium-on.png)';
	}
	O('bigContact').onmouseout = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/contacttrivium.png)';
	}
	O('bigContact').onclick = function () {
		location.href = "javascript:showPopup('contactus',950, 750)";
	}
	O('bigContact').onmouseup = function () {
		document.getElementById('contactiframe').src='contact-us'
		showPopup('contactus');
	}
	
	O('bigBlog').onmouseover = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/blog-on.png)';
	}
	O('bigBlog').onmouseout = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/blog.png)';
	}
	O('bigBlog').onclick = function () {
		location.href = 'http://www.triviumstudio.com/';
	}
	
	O('bigGallery').onmouseover = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/galleries-on.png)';
	}
	O('bigGallery').onmouseout = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/galleries.png)';
	}
	O('bigGallery').onmouseup = function () {
		document.getElementById('galleriaframe').src='http://www.triviumstudio.com/TriviumStudio/index.html'
		showPopup('galleria');
	}
	
	O('bigAbout').onmouseover = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/whatsatrivium-on.png)';
	}
	O('bigAbout').onmouseout = function () {
		this.style.backgroundImage = 'url(wp-content/themes/trivium2011/images/whatsatrivium.png)';
	}
	O('bigAbout').onclick = function () {
		location.href = "javascript:showPopup('aboutus',920)";
	}
	
	registerMouseOver('facebooksmall', 'wp-content/themes/trivium2011/images/facebook-on.png', 'wp-content/themes/trivium2011/images/facebook.png');
	registerMouseOver('twittersmall', 'wp-content/themes/trivium2011/images/twitter-on.png', 'wp-content/themes/trivium2011/images/twitter.png');
	registerMouseOver('rsssmall', 'wp-content/themes/trivium2011/images/rss-on.png', 'wp-content/themes/trivium2011/images/rss.png');
	registerMouseOver('searchsubmit', 'wp-content/themes/trivium2011/images/search-on.png', 'wp-content/themes/trivium2011/images/search.png');
	
	registerMouseOver('facebooksmall2', 'wp-content/themes/trivium2011/images/facebook-on.png', 'wp-content/themes/trivium2011/images/facebook.png');
	registerMouseOver('twittersmall2', 'wp-content/themes/trivium2011/images/twitter-on.png', 'wp-content/themes/trivium2011/images/twitter.png');
	registerMouseOver('rsssmall2', 'wp-content/themes/trivium2011/images/rss-on.png', 'wp-content/themes/trivium2011/images/rss.png');
}


function registerMouseOver(imgID, imgpathon, imgpathoff)
{
	if(O(imgID) != undefined)
	{
		O(imgID).onImage = new Image();
		O(imgID).offImage = new Image();
		O(imgID).onImage.src = imgpathon;
		O(imgID).offImage.src = imgpathoff;
		O(imgID).onmouseover = function () {
			this.src = this.onImage.src;
		}
		O(imgID).onmouseout = function () {
			this.src = this.offImage.src;
		}
	}
}


function setSearch() {
	O('s').value = "...search";
	O('s').onclick = function () {
		if(this.value == "...search")
		{
			this.value = "";
		}
	}
	O('s').onblur = function () {
		if(this.value == "")
		{
			this.value = "...search";
		}
	}
}


function init()
{
	O('fuzz').changeOpacity = f_changeOpacity;
	O('fuzz').opacity = f_opacity;
	O('menubar').opacity = f_opacity;
	O('menubar').changeOpacity = f_changeOpacity;
	
	if(normal())
	{
		S('menubar').opacity = 0;
		S('fuzz').opacity = 0;
	}
	if(IE8())
	{
		O('fuzz').filters.item("DXImageTransform.Microsoft.Alpha").opacity = 0;
		
	}
	if(IE7())
	{
		//S('menubar').filter = "alpha(opacity = 0)";
		S('fuzz').filter = "alpha(opacity = 0)";
		S('aboutus').filter = "alpha(opacity=0)";
		S('contactus').filter = "alpha(opacity=0)";
		S('popupimage').filter = "alpha(opacity=0)";
		
		
	}
	if(O('slideshow') != undefined)
	{
		createSlides();
		fadeInSlideLoop();
	}
	
	if(normal())
	{
		fadeInMenuBar();
	}
}

function f_opacity()
{
	if(normal())
	{
		return parseFloat(this.style.opacity);
	}
	if(IE8())
	{
		return parseFloat(this.filters.item("DXImageTransform.Microsoft.Alpha").opacity/100);
	}
	if(IE7())
	{
		str = this.style.filter.replace(/opacity=(\d+)/, "$1");
		
		return parseFloat(RegExp.$1)/100;
	}
}
function f_changeOpacity(amount, direction)
{
	if(direction == undefined)
	{
		if(normal())
		{
			this.style.opacity = amount;
		}
		if(IE8())
		{
			this.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity="+amount*100+")";
		}
		if(IE7())
		{
			this.style.filter = "alpha(opacity=" + amount*100 + ")";	
		}
		return;
	}
	if(direction.toUpperCase() == 'UP')
	{
		if(normal())
		{
			this.style.opacity = parseFloat(this.style.opacity) + amount;
		}
		if(IE8())
		{
			this.filters.item("DXImageTransform.Microsoft.Alpha").opacity += amount*100;
		}
		if(IE7())
		{
			this.style.filter = "alpha(opacity=" + (this.opacity()+amount)*100 + ")";
		}
	}
	else if(direction.toUpperCase() == 'DOWN')
	{
		if(normal())
		{
			this.style.opacity = parseFloat(this.style.opacity) - amount;
		}
		if(IE8())
		{
			this.filters.item("DXImageTransform.Microsoft.Alpha").opacity -= amount*100;
		}
		if(IE7())
		{
			this.style.filter = "alpha(opacity=" + (this.opacity()-amount)*100 + ")";
		}
	}
}


var slidetimer;
var currentSlide = 0;
function fadeInSlideLoop()
{
	if(imagePaths.length == 1)
	{
		O('slideshow').getElementsByTagName('DIV')[currentSlide].changeOpacity(1.0);
		return;
	}
	if(currentSlide > imagePaths.length-1)
	{
		currentSlide = 0;
	}
	if(currentSlide == 0)
	{
		previousSlide = imagePaths.length-1;
	}
	else
	{
		previousSlide = currentSlide - 1;
	}
	
	O('slideshow').getElementsByTagName('DIV')[currentSlide].changeOpacity(0.1, 'up');
	O('slideshow').getElementsByTagName('DIV')[previousSlide].changeOpacity(0.1, 'down');
	
	if(O('slideshow').getElementsByTagName('DIV')[currentSlide].opacity() >= 1.0)
	{
		O('slideshow').getElementsByTagName('DIV')[previousSlide].changeOpacity(0.0);
		O('slideshow').getElementsByTagName('DIV')[currentSlide].changeOpacity(1.0);
		clearTimeout(slidetimer);
		
		currentSlide++;
		slidetimer = setTimeout('fadeInSlideLoop()', 4000);
		return;
	}
	slidetimer = setTimeout('fadeInSlideLoop()', 60);
}
function createSlides()
{
	for(var i=0; i<imagePaths.length; i++)
	{
		O('slideshow').innerHTML = O('slideshow').innerHTML + '<div class="slide" style="filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); opacity: 0; position: relative; top: ' + (-320*i) +'px; height: 320px; overflow: hidden; line-height: 320px; vertical-align: middle"><img src="' + imagePaths[i] + '" style="line-height: 320px; vertical-align: middle"/></div>';
	}
	for(var i=0; i<imagePaths.length; i++)
	{
		O('slideshow').getElementsByTagName('DIV')[i].opacity = f_opacity;
		O('slideshow').getElementsByTagName('DIV')[i].changeOpacity = f_changeOpacity;
	}
}

var menufadetimer;
function fadeInMenuBar()
{
	O('menubar').changeOpacity(0.1, 'up');
	
	if(O('menubar').opacity() >= 1.0)
	{
		O('menubar').changeOpacity(1.0);
		S('menubar').filter = "progid:DXImageTransform.Microsoft.Alpha(enabled=false)";
		S('menu').filter = "progid:DXImageTransform.Microsoft.Alpha(enabled=false)";
		
		clearTimeout(menufadetimer);
		
		return;
	}
	menufadetimer = setTimeout('fadeInMenuBar()', 100);
}


isOverlayVisible = false;
currentTarget = null;
function showPopup(target, width, height)
{
	isOverlayVisible = true;
	currentTarget = target;
	if(!width) { width = document.body.clientWidth - 20; }
	if(!height || height > document.body.clientHeight -20) { height = document.body.clientHeight -20; }
	
	var userAgent = window.navigator.userAgent;
	if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
		document.addEventListener('touchmove', preventBodyScroll);
		document.getElementById('closeAbout').addEventListener('touchstart', allowClose);
		document.getElementById('closeContact').addEventListener('touchstart', allowClose);
		document.getElementById('closePopupimage').addEventListener('touchstart', allowClose);
		document.getElementById('closeGalleria').addEventListener('touchstart', allowClose);
	}
	dimback(target, width, height);
}
function preventBodyScroll(e)
{
	e.preventDefault();	
}
function allowClose(e)
{
	document.removeEventListener('touchmove', preventBodyScroll);
	resetPopup('aboutus');
	resetPopup('contactus');
	this.removeEventListener('touchstart', allowClose);
}
function popupimageold(pimage, height)
{
	pimg = document.getElementById('popimage');
	pimg.style.height = height + 'px';
	pimg.style.backgroundImage = "url("+pimage+")";	
	
	pmain = document.getElementById('popupimagemain');
	
	if(document.body.clientHeight-20 < height)
	{
		pmain.style.height = (document.body.clientHeight - 52) + 'px';
		pmain.style.overflow = 'auto';
		showAbout('popupimage', 920);
	}
	else
	{
		pmain.style.height = (height) + 'px';
		pmain.style.overflow = 'auto';
		showAbout('popupimage', 900, height+30);
	}
}
function popupimage(pimage, height)
{
	pimg = document.getElementById('popimage');
	S('popimage').height = height + 'px';
	S('popimage').textAlign = 'center';
	
	imageHeight = viewport.height() - 72;
	pimg.innerHTML = '<img id="viewerimage" src="' + pimage + '" height="' + imageHeight + '">';
	
	pmain = document.getElementById('popupimagemain');
	
	if(document.body.clientHeight-20 < height)
	{
		pmain.style.position = 'relative';
		pmain.style.top = '42px';
		pmain.style.height = (document.body.clientHeight - 72) + 'px';
		pmain.style.overflow = 'auto';
		showPopup('popupimage');
	}
	else
	{
		pmain.style.position = 'relative';
		pmain.style.top = '42px';
		pmain.style.height = (document.body.clientHeight - 72) + 'px';
		pmain.style.overflow = 'auto';
		showPopup('popupimage');
	}
	if(BrowserDetect.browser == "Explorer")
	{
		S('slidercontrol').visibility = 'hidden';
	}
	else
	{
		initViewer();
	}
}
function returnScrollTop()
{
	if(normal())
	{
		return window.pageYOffset;
	}
	if(IE8() || IE7())
	{
		return document.documentElement.scrollTop;
	}	
}
function dimback(target, width, height)
{
	document.getElementsByTagName('body')[0].style.overflow = "hidden";
	fuzzstyle = document.getElementById('fuzz').style;
	_fuzz = document.getElementById('fuzz');
	fuzzstyle.visibility = 'visible';
	fuzzstyle.left = '0px';
	fuzzstyle.top = returnScrollTop() + 'px';
	fuzzstyle.width = document.body.clientWidth + 'px';
	fuzzstyle.height = viewport.height() + 'px';
	var userAgent = window.navigator.userAgent;

	if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
	   fuzzstyle.opacity = .85;
	}
	

	if(IE8())
	{
		O('fuzz').changeOpacity(.4, 'up');
		if(_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity >= 85)
		{
			_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 85; 
			setTimeout('fadePopup("'+target+'", "'+width+'", "'+height+'")', 300);
		}
		if(_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity < 85)
		{
			timer = setTimeout('dimback("'+target+'", "'+width+'", "'+height+'")', 30);
		}
	}
	if(IE7())
	{
		O('fuzz').changeOpacity(.4, 'up');
		if(_fuzz.filters.alpha.opacity >= 85)
		{
			_fuzz.filters.alpha.opacity = 85;
			setTimeout('fadePopup("'+target+'", "'+width+'", "'+height+'")', 300);
		}
		if(_fuzz.filters.alpha.opacity < 85)
		{
			timer = setTimeout('dimback("'+target+'", "'+width+'", "'+height+'")', 30);
		}
	}
	else if(normal())
	{
		fuzzstyle.opacity = parseFloat(fuzzstyle.opacity) + .4;
		if(parseFloat(fuzzstyle.opacity) >= 0.85)
		{
			fuzzstyle.opacity = '0.85';
			setTimeout('fadePopup("'+target+'", "'+width+'", "'+height+'")', 300);
		}
		if(parseFloat(fuzzstyle.opacity) < 0.85)
		{
			timer = setTimeout('dimback("'+target+'", "'+width+'", "'+height+'")', 40);
		}
	}
}
function resetPopup(target)
{
	O(target).changeOpacity = f_changeOpacity;
	O(target).opacity = f_opacity;
	
	isOverlayVisible = false;
	currentTarget = null;
	fuzzstyle = document.getElementById('fuzz').style;
	aboutstyle = document.getElementById(target).style;
	_fuzz = document.getElementById('fuzz');
	_aboutus = document.getElementById(target);
	
	
	
	if(IE8())
	{
		O(target).changeOpacity(0.2, 'down');
		if(O(target).opacity() <= 0)
		{
			O(target).changeOpacity(0);	
			S(target).visibility = 'hidden';
			S(target).top = '-100px';
			S(target).left = '-100px';
			S(target).width = '0px';
			S(target).height = '0px';
			S(target).opacity = 0;
			if(_aboutus.getElementsByTagName('IFRAME')[0])
			{
				_aboutus.getElementsByTagName('IFRAME')[0].src = "";
			}
			setTimeout('resetback()', 300);
		}
		if(O(target).opacity() > 0)
		{
			resetabouttimer = setTimeout('resetPopup("'+target+'")', 30);
		}
	}
	else if(IE7())
	{
		O(target).changeOpacity(0.2, 'down');
		if(O(target).opacity() <= 0)
		{
			O(target).changeOpacity(0);	
			S(target).visibility = 'hidden';
			S(target).top = '-100px';
			S(target).left = '-100px';
			S(target).width = '0px';
			S(target).height = '0px';
			if(_aboutus.getElementsByTagName('IFRAME')[0])
			{
				_aboutus.getElementsByTagName('IFRAME')[0].src = "";
			}
			setTimeout('resetback()', 300);
		}
		if(O(target).opacity() > 0)
		{
			
			resetabouttimer = setTimeout('resetPopup("'+target+'")', 30);
		}
	}
	else if(normal())
	{
		if((parseFloat(aboutstyle.opacity)).toFixed(1) <= 0.0)
		{
			aboutstyle.opacity = '0';
						
			aboutstyle.visibility = 'hidden';
			aboutstyle.top = '-100px';
			aboutstyle.left = '-100px';
			aboutstyle.width = '0px';
			aboutstyle.height = '0px';
			aboutstyle.opacity = 0;
			if(_aboutus.getElementsByTagName('IFRAME')[0])
			{
				_aboutus.getElementsByTagName('IFRAME')[0].src = "";
			}
			
			setTimeout('resetback()', 300);
		}
		if((parseFloat(aboutstyle.opacity)).toFixed(1) > 0.0)
		{
			aboutstyle.opacity = (parseFloat(aboutstyle.opacity)).toFixed(1) - 0.2;
			resetAboutTimer = setTimeout('resetPopup("'+target+'")', 40);
		}
	}
}
function fadePopup(target, width, height)
{
	O(target).opacity = f_opacity;
	O(target).changeOpacity = f_changeOpacity;
	
	_aboutus = document.getElementById(target);
	aboutstyle = document.getElementById(target).style;
	aboutstyle.visibility = 'visible';
	aboutstyle.width = width + 'px';
	aboutstyle.height = height + 'px';
	
	aboutstyle.left = document.documentElement.clientWidth/2 - parseInt(aboutstyle.width)/2 + 'px';
	
	
	if(height < document.documentElement.clientHeight - 20)
	{
		if(normal())
		{
			aboutstyle.top = document.documentElement.clientHeight/2 - height/2 + window.pageYOffset + 'px';
		}
		if(IE8() || IE7())
		{
			aboutstyle.top = document.documentElement.clientHeight/2 - height/2 + document.documentElement.scrollTop + 'px';
		}
		
	}
	else
	{
		if(normal())
		{
			aboutstyle.top = window.pageYOffset + 10 + 'px';
		}
		if(IE8() || IE7())
		{
			aboutstyle.top = document.documentElement.scrollTop + 10 + 'px';
		}
		
	}
	
	if(IE8())
	{
		_aboutus.filters.item("DXImageTransform.Microsoft.Alpha").opacity += 20; 
		if(_aboutus.filters.item("DXImageTransform.Microsoft.Alpha").opacity >= 100)
		{
			_aboutus.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100; 
		}
		if(_aboutus.filters.item("DXImageTransform.Microsoft.Alpha").opacity < 100)
		{
			abouttimer = setTimeout('fadePopup("'+target+'", "'+width+'", "'+height+'")', 30);
		}
	}
	else if(IE7())
	{
		S(target).filter = "alpha(opacity="+(O(target).opacity()*100+20)+")";
		if(O(target).opacity() >= 1)
		{
			S(target).filter = "alpha(opacity=100)";
		}
		
		if(O(target).opacity() < 1)
		{
			abouttimer = setTimeout('fadePopup("'+target+'", "'+width+'", "'+height+'")', 30);
		}
	}
	else if(normal())
	{
		aboutstyle.opacity = parseFloat(aboutstyle.opacity) + .2;
		if(parseFloat(aboutstyle.opacity) >= 1)
		{
			aboutstyle.opacity = '1';
		}
		if(parseFloat(aboutstyle.opacity) < 1)
		{
			abouttimer = setTimeout('fadePopup("'+target+'", "'+width+'", "'+height+'")', 40);
		}
	}
}
function resetback()
{
	fuzzstyle = document.getElementById('fuzz').style;
	_fuzz = document.getElementById('fuzz');
	
	var userAgent = window.navigator.userAgent;

	if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
	   fuzzstyle.opacity = 0;
	}
	if(IE8())
	{
		_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity -= 40; 
		if(_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity <= 0)
		{
			_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 0;
			fuzzstyle.visibility = 'hidden';
			fuzzstyle.left = '-100px';
			fuzzstyle.top = '-100px';
			fuzzstyle.width = '0px';
			fuzzstyle.height = '0px';
			document.getElementsByTagName('body')[0].style.overflow = "";
		}
		if(_fuzz.filters.item("DXImageTransform.Microsoft.Alpha").opacity > 0)
		{
			resetDimTimer = setTimeout('resetback()', 30);
		}
	}
	else if(IE7())
	{
		_fuzz.filters.alpha.opacity -= 40; 
		if(_fuzz.filters.alpha.opacity <= 0)
		{
			_fuzz.filters.alpha.opacity = 0;
			fuzzstyle.visibility = 'hidden';
			fuzzstyle.left = '-100px';
			fuzzstyle.top = '-100px';
			fuzzstyle.width = '0px';
			fuzzstyle.height = '0px';
			document.getElementsByTagName('body')[0].style.overflow = "";
		}
		if(_fuzz.filters.alpha.opacity > 0)
		{
			resetDimTimer = setTimeout('resetback()', 30);
		}
	}
	else if(normal())
	{
		if(parseFloat(fuzzstyle.opacity) <= 0)
		{
			fuzzstyle.opacity = '0';
			fuzzstyle.visibility = 'hidden';
			fuzzstyle.left = '-100px';
			fuzzstyle.top = '-100px';
			fuzzstyle.width = '0px';
			fuzzstyle.height = '0px';
			document.getElementsByTagName('body')[0].style.overflow = "";
		}
		if(parseFloat(fuzzstyle.opacity) > 0)
		{
			fuzzstyle.opacity = parseFloat(fuzzstyle.opacity) - .2;
			resetDimTimer = setTimeout('resetback()', 40);
		}
	}
	
	
}


function windowYOffset()
{
	if(normal())
	{
		return window.pageYOffset;
	}
	if(IE8() || IE7())
	{
		return document.documentElement.scrollTop;
	}
}

var moveTimer;
function movePopup()
{
	if(currentTarget == null)
	{
		clearTimeout(moveTimer);
		return;
	}
	
	aboutstyle = document.getElementById(currentTarget).style;
	
	moveDelta = 10;
	if(((viewport.width()/2 - parseInt(aboutstyle.width)/2) !=  parseInt(aboutstyle.left)) || ((viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset()) !=  parseInt(aboutstyle.top)))
	{
		if((viewport.width()/2 - parseInt(aboutstyle.width)/2) >  parseInt(aboutstyle.left))
		{
			aboutstyle.left = (parseInt(aboutstyle.left) + moveDelta) + 'px';
			if(parseInt(aboutstyle.left) >= viewport.width()/2 - parseInt(aboutstyle.width)/2)
			{
				aboutstyle.left = (viewport.width()/2 - parseInt(aboutstyle.width)/2) + 'px';
				clearTimeout(moveTimer);
				return;
			}
		}
		else if((viewport.width()/2 - parseInt(aboutstyle.width)/2) <  parseInt(aboutstyle.left))
		{
			aboutstyle.left = (parseInt(aboutstyle.left) - moveDelta) + 'px';
			if(parseInt(aboutstyle.left) <= viewport.width()/2 - parseInt(aboutstyle.width)/2)
			{
				aboutstyle.left = (viewport.width()/2 - parseInt(aboutstyle.width)/2) + 'px';
				clearTimeout(moveTimer);
				return;
			}
		}
		
		
		
		if((viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset()) >  parseInt(aboutstyle.top))
		{
			aboutstyle.top = (parseInt(aboutstyle.top) + moveDelta) + 'px';
			if(viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset() <=  parseInt(aboutstyle.top))
			{
				aboutstyle.top = (viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset()) + 'px';
				clearTimeout(moveTimer);
				return;
			}
		}
		else if((viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset()) <  parseInt(aboutstyle.top))
		{
			aboutstyle.top = (parseInt(aboutstyle.top) - moveDelta) + 'px';
			if(viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset() >=  parseInt(aboutstyle.top))
			{
				aboutstyle.top = (viewport.height()/2 - parseInt(aboutstyle.height)/2 + windowYOffset()) + 'px';
				clearTimeout(moveTimer);
				return;
			}
		}
		
		moveTimer = setTimeout('movePopup()', 20);
	}
}

window.onresize = runWindowResizeFunctions;
window.onscroll = runWindowResizeFunctions;


var oldaboutleft;
var oldabouttop;

var startmovetimer = null;

function runWindowResizeFunctions()
{
	if(isOverlayVisible == true)
	{
		_aboutus = document.getElementById(currentTarget);
		aboutstyle = _aboutus.style;
		
		if(_aboutus.id != "popupimage")
		{
			if(parseInt(aboutstyle.height) > document.body.clientHeight - 10)
			{
				aboutstyle.height = (document.body.clientHeight - 20) + 'px';
			}
			if(parseInt(aboutstyle.height) < document.body.clientHeight - 10)
			{
				aboutstyle.height = (document.body.clientHeight - 20) + 'px';
			}
		}
		oldaboutleft = parseInt(aboutstyle.left);
		oldabouttop = parseInt(aboutstyle.top);
		
		clearTimeout(startmovetimer);
		
		startmovetimer = setTimeout('movePopup()', 1000);
	
	
		fuzzstyle = document.getElementById('fuzz').style;
		fuzzstyle.width = document.body.clientWidth + 'px';
		fuzzstyle.height = document.documentElement.scrollHeight + 'px';
		
	}
}





//////////////////////////////////
// Image sizer
//////
function getLeft(target) 
{
	var currentleft = O(target).offsetLeft;
	var currentNode = O(target);
		while(currentNode.offsetParent.tagName != 'BODY')
		{
			currentNode = currentNode.offsetParent;
			currentleft = currentleft + currentNode.offsetLeft;
			if(currentNode.offsetParent == null) break;
		}
	return currentleft;
}


var ratio;
var dragObject = null;

function closeViewer()
{
	dragObject = null;
	O('slider').onmousedown = null;
	O('slider').onmouseup = null;
}
function initViewer()
{
	windowLoadCallback();
	
	O('slider').onmousedown = function ()
	{
		dragObject = this;
		ratio = O('viewerimage').offsetHeight/O('viewerimage').offsetWidth;	
		return false;
	}
	O('slider').onmouseup = function ()
	{
		dragObject = null;
		return true;
	}
	window.onmouseup = function ()
	{
		if(dragObject != null)
			dragObject = null;
	}
	window.onmousemove = function (e)
	{	
		if(dragObject)
		{	
				
			var posx = 0;
			var posy = 0;
			if (!e) var e = window.event;
			if (e.pageX || e.pageY) 	{
				posx = e.pageX;
				posy = e.pageY;
			}
			else if (e.clientX || e.clientY) 	{
				posx = e.clientX + document.body.scrollLeft
					+ document.documentElement.scrollLeft;
				posy = e.clientY + document.body.scrollTop
					+ document.documentElement.scrollTop;
			}
			dragObject.style.left = posx - getLeft('slidercontrol') - dragObject.offsetWidth/2 + 'px';
		
			if(dragObject.offsetLeft <= 10) {
				dragObject.style.left = 10 + 'px'
			}
			if(dragObject.offsetLeft+dragObject.offsetWidth >= O('slidercontrol').offsetWidth-10) {
				dragObject.style.left = O('slidercontrol').offsetWidth - dragObject.offsetWidth - 2 - 10 + 'px'
			}
			
			var scale = O('slidercontrol').offsetWidth/(O('slidercontrol').offsetWidth - dragObject.offsetWidth);
			window.status = Math.round(((dragObject.offsetLeft)/(O('slidercontrol').offsetWidth - dragObject.offsetWidth))*100);
			percentage = Math.round(((dragObject.offsetLeft)/(O('slidercontrol').offsetWidth - dragObject.offsetWidth))*100);

			S('viewerimage').width = O('viewerimage').offsetParent.offsetWidth * percentage/100 + 'px';
			S('viewerimage').height = O('viewerimage').offsetParent.offsetWidth * (percentage/100) * ratio + 'px';
		}
	}
}


function windowLoadCallback()
{
	var currentPercentage = O('viewerimage').offsetWidth/document.body.clientWidth;
	S('slider').left =  (currentPercentage * (O('slidercontrol').offsetWidth - O('slider').offsetWidth ))  + 'px';
}

window.addEventCallback('resize', movetwitter);
window.addEventCallback('load', setuptwitter);
window.addEventCallback('scroll', hidetwitter);
var twittertimer;
function setuptwitter()
{
	O('twitterpanel').onmouseout = function () 
	{
		twittertimer = setTimeout(function(){ S('twitterpanel').visibility = 'hidden' }, 400);
	}
	O('twitterpanel').onmouseover = function () 
	{
		clearTimeout(twittertimer);
	}
	movetwitter();
}
function hidetwitter()
{
	S('twitterpanel').visibility = 'hidden';
}
function movetwitter()
{
	S('twitterpanel').left = getLeft('twittersmall') - O('twitterpanel').offsetWidth + 210 + 'px';
}
function toggletwitter()
{
	movetwitter();
	S('twitterpanel').visibility = (S('twitterpanel').visibility=='hidden') ? 'visible' : 'hidden';
}

function twitterCallback2(obj) {
    var twitters = obj;
    var statusHTML = "";
    var today = new Date();
    for (var i=0; i<twitters.length; i++){
        statusHTML += ('<span style="font-family: Verdana, Arial; font-size: 9px; height: 8px">' + twitters[i].text + '</span><br /> - <a style="font-family: Verdana, Arial; font-size: 9px; color: #36C;" href="http://twitter.com/' + twitters[i].user.screen_name + '" title="' + today + '">' + twitters[i].user.name + ' (follow me!)</a>')
    	statusHTML = statusHTML.replace(/([\s>]+http:\/\/[\w\d\-_\.\/\=\?\&\%]+)([\s<]+)/i, "<a href='$1' target='_blank'>$1</a>$2");
		document.getElementById(twitters[i].user.screen_name).innerHTML = statusHTML;
	}
    
}

window.addEventCallback('load', calltwitter);
function calltwitter()
{
	var twitscript = document.createElement('script');
	twitscript.src = "http://api.twitter.com/1/statuses/user_timeline.json?callback=twitterCallback2&screen_name=jcPhotography&count=1";
	document.getElementsByTagName('head')[0].appendChild(twitscript);
	
	var twitscript2 = document.createElement('script');
	twitscript2.src = "http://api.twitter.com/1/statuses/user_timeline.json?callback=twitterCallback2&screen_name=treytesoro&count=1";
	document.getElementsByTagName('head')[0].appendChild(twitscript2);
	
	var twitscript3 = document.createElement('script');
	twitscript3.src = "http://api.twitter.com/1/statuses/user_timeline.json?callback=twitterCallback2&screen_name=mattmcclannan&count=1";
	document.getElementsByTagName('head')[0].appendChild(twitscript3);
}
