// JavaScript Document
// Copyright 2008 Arvind Thyagarajan 
// All Rights Reserved

// ******************************************************************
// SLIDE TOGGLE CONTROLS
// ******************************************************************

function doSlideOffDown(id,url){
	timeToSlide = 120; // in milliseconds
	obj = document.getElementById(id);
	height = document.body.clientHeight;
	pxPerLoop = height/timeToSlide;
	slideoffdown(obj,0,height,pxPerLoop,url);
}
function slideoffdown(obj,offset,full,px,url){
	if(full > 0){
		obj.style.bottom = offset+"px";
		offset=offset-px;
		full=full-px
		setTimeout((function(){slideoffdown(obj,offset,full,px,url);}),1);
	} else {
		obj.style.display = "none";
		if(url) {
			document.location=url;
		}
	}
}

function doSlideOffUp(id,url){
	timeToSlide = 120; // in milliseconds
	obj = document.getElementById(id);
	height = document.body.clientHeight;
	pxPerLoop = height/timeToSlide;
	slideoffup(obj,0,height,pxPerLoop,url);
}
function slideoffup(obj,offset,full,px,url){
	if(offset < full){
		obj.style.bottom = offset+"px";
		offset=offset+px;
		setTimeout((function(){slideoffup(obj,offset,full,px,url);}),1);
	} else {
		obj.style.display = "none";
		if(url) {
			document.location=url;
		}
	}
}

function doSlideDownHome(id,url){
	timeToSlide = 120; // in milliseconds
	obj = document.getElementById(id);
	height = document.body.clientHeight;
	pxPerLoop = height/timeToSlide;
	slidedown(obj,height,pxPerLoop,url);
}
function slidedown(obj,full,px,url){
	if(full > 0){
		obj.style.bottom = full+"px";
		full=full-px;
		setTimeout((function(){slidedown(obj,full,px,url);}),1);
	} else {
		obj.style.bottom = "0px";
		if(url) {
			document.location=url;
		}
	}
}

function doSlideUpHome(id,url){
	timeToSlide = 120; // in milliseconds
	obj = document.getElementById(id);
	height = document.body.clientHeight;
	pxPerLoop = height/timeToSlide;
	slideup(obj,0,height,pxPerLoop,url);
}
function slideup(obj,offset,full,px,url){
	if(offset < full){
		obj.style.bottom = offset+"px";
		offset=offset+px;
		setTimeout((function(){slideup(obj,offset,full,px,url);}),1);
	} else {
		obj.style.bottom = full+"px";
		if(url) {
			document.location=url;
		}
	}
}

function doSlideDownDesign(id,url){
	timeToSlide = 120; // in milliseconds
	obj = document.getElementById(id);
	height = document.body.clientHeight;
	pxPerLoop = height/timeToSlide;
	slidedowndesign(obj,0,height,pxPerLoop,url);
}
function slidedowndesign(obj,offset,full,px,url){
	if(full > 0){
		obj.style.bottom = offset+"px";
		offset=offset-px;
		full=full-px;
		setTimeout((function(){slidedowndesign(obj,offset,full,px,url);}),1);
	} else {
		obj.style.display = "none";
		if(url) {
			document.location=url;
		}
	}
}

function doSlideUpDesign(id,url){
	timeToSlide = 120; // in milliseconds
	obj = document.getElementById(id);
	height = document.body.clientHeight;
	pxPerLoop = height/timeToSlide;
	height=-height;
	slideupdesign(obj,height,pxPerLoop,url);
}
function slideupdesign(obj,full,px,url){
	if(full < 0){
		obj.style.bottom = full+"px";
		full=full+px;
		setTimeout((function(){slideupdesign(obj,full,px,url);}),1);
	} else {
		obj.style.bottom = 0+"px";
		if(url) {
			document.location=url;
		}
	}
}

// ******************************************************************
// OPACITY TOGGLE CONTROLS
// ******************************************************************

function toggleDiv(elt,bShow,endOp) {
	if ((endOp==null) || (endOp=="undefined") || (endOp=="")) {
		var endOp = 100;
	}
	if (bShow) {
		document.getElementById(elt).style.display="block";
		opacity(elt, 0, endOp, 150);
	} else {
		opacity(elt, endOp, 0, 300);
		//document.getElementById(elt).style.display="none";
	}
}

function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}

// ******************************************************************
// END OPACITY TOGGLE CONTROLS
// ******************************************************************

// ******************************************************************
// IMAGE GALLERY CONTROLS
// ******************************************************************

var bGalleryOn = false;
var imgTitleStored = null;

function showImg(elt) {
	var num = (elt.innerHTML-1);
	var imgSrc = "../images/gallery/"+galleryImages[num][0];
	var imgTitle = galleryImages[num][1];
	var ww = galleryImages[num][2];
	var hh = galleryImages[num][3];
	var btm = galleryImages[num][4];
	var lft = galleryImages[num][5];

	var imgDiv; var imgImg;
	var divId = "imageDiv"+num+"";
	var theBody = document.body;

	document.getElementById("full-mask").style.display="block";
	document.getElementById("clearmess").className="";
	bGalleryOn = true;
	
	if (!document.getElementById(divId)) {
		imgDiv = document.createElement("div");
		imgDiv.id = divId;
		imgDiv.className = "image-div";
		theBody.appendChild(imgDiv);
		
		imgImg = document.createElement("img");
		imgImg.id = "imageImg"+num+"";
		imgImg.src = imgSrc;
		imgImg.className = "image-img";
		imgImg.width = ww;
		imgImg.height = hh;
		
		if (document.getElementById(divId)) {
			document.getElementById(divId).appendChild(imgImg);
			document.getElementById(divId).style.zIndex = 60;
			document.getElementById(divId).style.bottom = btm+"px";
			document.getElementById(divId).style.left = lft+"px";
		}
	}

	if (document.getElementById(divId)) {
		for (var i=0;i<galleryImages.length;i++) {
			var pushBackDivId = "imageDiv"+i+"";
			if (document.getElementById(pushBackDivId)) {
				document.getElementById(pushBackDivId).style.zIndex = 60;
				document.getElementById(pushBackDivId).style.opacity = 0.35;
				document.getElementById(pushBackDivId).style.filter = "alpha(opacity=" + 35 + ")";
			}
		}
		document.getElementById(divId).style.zIndex = 80;
		document.getElementById(divId).style.opacity = 1;
		document.getElementById(divId).style.filter = "alpha(opacity=" + 100 + ")";
		document.getElementById(divId).style.display = "block";
		document.getElementById("title-text").innerHTML="&quot;"+imgTitle+"&quot;";
		imgTitleStored="&quot;"+imgTitle+"&quot;";
	}
}

function resetImages() {
	for (var i=0;i<galleryImages.length;i++) {
		var hideDivId = "imageDiv"+i+"";
		if (document.getElementById(hideDivId)) {
			document.getElementById(hideDivId).style.display = "none";
		}
	}
	document.getElementById("title-text").innerHTML="&nbsp;";
	document.getElementById("full-mask").style.display="none";
	document.getElementById("clearmess").className="notyet";
	bGalleryOn = false;
	imgTitleStored = "";
}

function showTitle(elt) {
	if (elt) {
		var num = (elt.innerHTML-1);
		var imgTitle = galleryImages[num][1];
		document.getElementById("title-text").innerHTML="&quot;"+imgTitle+"&quot;";
	} else if ((!elt) && (bGalleryOn)) {
		document.getElementById("title-text").innerHTML="clear away this mess!";
	}
}

function hideTitle() {
	if (!bGalleryOn) {
		document.getElementById("title-text").innerHTML="&nbsp;";
	} else if (bGalleryOn) {
		document.getElementById("title-text").innerHTML=imgTitleStored;
	}
}

// ******************************************************************
// END IMAGE GALLERY CONTROLS
// ******************************************************************

// ******************************************************************
// WEBSITE GALLERY CONTROLS
// ******************************************************************

var siteTitleStored = null;
var thumbIdStored = null;

function showSiteThumb(elt) {
	var num = (elt.innerHTML-1);
	var siteThumbId = "thumb-outline-"+gallerySites[num][0]
	var siteTitle = gallerySites[num][1];
	var siteDescription = gallerySites[num][2];
	var ww = gallerySites[num][3];
	var hh = gallerySites[num][4];
	var btm = gallerySites[num][5];
	var lft = gallerySites[num][6];

	var siteDiv;
	var divId = "siteDiv"+num+"";
	var theBody = document.body;

	document.getElementById("full-mask").style.display="block";
	document.getElementById("clearmess").className="";
	bGalleryOn = true;
	
	if (!document.getElementById(divId)) {
		siteDiv = document.createElement("div");
		siteDiv.id = divId;
		siteDiv.className = "site-div";
		theBody.appendChild(siteDiv);
		
		siteText = document.createElement("div");
		siteText.innerHTML = siteDescription;
		siteText.className = "description-text";
		siteText.style.left = lft+"px";
		
		if (document.getElementById(divId)) {
			document.getElementById(divId).appendChild(siteText);
			document.getElementById(divId).style.zIndex = 60;
			//document.getElementById(divId).style.width = ww+"px";
			document.getElementById(divId).style.height = 85+"px";
			document.getElementById(divId).style.bottom = btm+"px";
			//document.getElementById(divId).style.left = lft+"px";
		}
	}

	if (document.getElementById(divId)) {
		for (var i=0;i<gallerySites.length;i++) {
			var pushBackDivId = "siteDiv"+i+"";
			if (document.getElementById(pushBackDivId)) {
				document.getElementById(pushBackDivId).style.zIndex = 60;
				document.getElementById(pushBackDivId).style.opacity = 0.35;
				document.getElementById(pushBackDivId).style.filter = "alpha(opacity=" + 35 + ")";
			}
		}
		
		if (document.getElementById(thumbIdStored)) {
			document.getElementById(thumbIdStored).style.display = "none";
		}
		document.getElementById(divId).style.zIndex = 80;
		document.getElementById(divId).style.opacity = 0.75;
		document.getElementById(divId).style.filter = "alpha(opacity=" + 75 + ")";
		document.getElementById(divId).style.display = "block";
		document.getElementById("title-text").innerHTML="&quot;"+siteTitle+"&quot;";
		siteTitleStored="&quot;"+siteTitle+"&quot;";
		document.getElementById(siteThumbId).style.display="block";
		thumbIdStored=siteThumbId;
	}
}

function resetSites() {
	for (var i=0;i<gallerySites.length;i++) {
		var hideDivId = "siteDiv"+i+"";
		if (document.getElementById(hideDivId)) {
			document.getElementById(hideDivId).style.display = "none";
		}
	}

	if (document.getElementById(thumbIdStored)) {
		document.getElementById(thumbIdStored).style.display = "none";
	}
	
	document.getElementById("title-text").innerHTML="&nbsp;";
	document.getElementById("full-mask").style.display="none";
	document.getElementById("clearmess").className="notyet";
	bGalleryOn = false;
	siteTitleStored = null;
	thumbIdStored = null;
}

function showSite(elt) {
	if (elt) {
		var num = (parseInt(elt.innerHTML,10)-1);
		var siteThumbId = "thumb-outline-"+gallerySites[num][0]
		var siteTitle = gallerySites[num][1];
		document.getElementById("title-text").innerHTML="&quot;"+siteTitle+"&quot;";
		document.getElementById(siteThumbId).style.display="block";
	} else if ((!elt) && (bGalleryOn)) {
		document.getElementById("title-text").innerHTML="clear away this mess!";
	}
}

function hideSite() {
	for (var i=0;i<gallerySites.length;i++) {
		var hideDivId = "thumb-outline-"+gallerySites[i][0]+"";
		if (document.getElementById(hideDivId)) {
			document.getElementById(hideDivId).style.display = "none";
		}
	}
	if (!bGalleryOn) {
		document.getElementById("title-text").innerHTML="&nbsp;";
	} else if (bGalleryOn) {
		document.getElementById("title-text").innerHTML=siteTitleStored;
		document.getElementById(thumbIdStored).style.display = "block";
	}
}

// ******************************************************************
// END WEBSITE GALLERY CONTROLS
// ******************************************************************

// ******************************************************************
// GRAPHIC DESIGN GALLERY CONTROLS
// ******************************************************************

var designTitleStored = null;
var previewIdStored = null;

function showDesign(elt) {
	showDesignPreview(elt);
	var num = (elt.id-1);
	var previewIdStored = "designs-"+galleryDesigns[num][0]
	var designTitleStored = galleryDesigns[num][1];
//	var siteDescription = gallerySites[num][2];
//	var ww = gallerySites[num][3];
//	var hh = gallerySites[num][4];
//	var btm = gallerySites[num][5];
//	var lft = gallerySites[num][6];
//
//	var siteDiv;
//	var divId = "siteDiv"+num+"";
//	var theBody = document.body;
//
//	document.getElementById("full-mask").style.display="block";
//	document.getElementById("clearmess").className="";
	bGalleryOn = true;
//	
//	if (!document.getElementById(divId)) {
//		siteDiv = document.createElement("div");
//		siteDiv.id = divId;
//		siteDiv.className = "site-div";
//		theBody.appendChild(siteDiv);
//		
//		siteText = document.createElement("div");
//		siteText.innerHTML = siteDescription;
//		siteText.className = "description-text";
//		siteText.style.left = lft+"px";
//		
//		if (document.getElementById(divId)) {
//			document.getElementById(divId).appendChild(siteText);
//			document.getElementById(divId).style.zIndex = 60;
//			//document.getElementById(divId).style.width = ww+"px";
//			document.getElementById(divId).style.height = 85+"px";
//			document.getElementById(divId).style.bottom = btm+"px";
//			//document.getElementById(divId).style.left = lft+"px";
//		}
//	}
//
//	if (document.getElementById(divId)) {
//		for (var i=0;i<gallerySites.length;i++) {
//			var pushBackDivId = "siteDiv"+i+"";
//			if (document.getElementById(pushBackDivId)) {
//				document.getElementById(pushBackDivId).style.zIndex = 60;
//				document.getElementById(pushBackDivId).style.opacity = 0.35;
//				document.getElementById(pushBackDivId).style.filter = "alpha(opacity=" + 35 + ")";
//			}
//		}
//		
//		if (document.getElementById(thumbIdStored)) {
//			document.getElementById(thumbIdStored).style.display = "none";
//		}
//		document.getElementById(divId).style.zIndex = 80;
//		document.getElementById(divId).style.opacity = 0.75;
//		document.getElementById(divId).style.filter = "alpha(opacity=" + 75 + ")";
//		document.getElementById(divId).style.display = "block";
//		document.getElementById("title-text").innerHTML="&quot;"+siteTitle+"&quot;";
//		siteTitleStored="&quot;"+siteTitle+"&quot;";
//		document.getElementById(siteThumbId).style.display="block";
//		thumbIdStored=siteThumbId;
//	}
}

function resetDesigns() {
	for (var i=0;i<galleryDesigns.length;i++) {
		var hideDivId = "designs-"+galleryDesigns[i][0]+"";
		if (document.getElementById(hideDivId)) {
			document.getElementById(hideDivId).style.display = "none";
			toggleDiv(hideDivId,false,0);
		}
	}
	document.getElementById("title-text").innerHTML="&nbsp;";
	document.getElementById("full-mask").style.display="none";
	document.getElementById("clearmess").className="notyet";
	bGalleryOn = false;
	designTitleStored = null;
	previewIdStored = null;
}

function showDesignPreview(elt) {
	if (elt) {
		var num = (elt.id-1);
		var designPreviewId = "designs-"+galleryDesigns[num][0]
		var designTitle = galleryDesigns[num][1];
		document.getElementById("title-text").innerHTML="&quot;"+designTitle+"&quot;";
		document.getElementById(designPreviewId).style.display="block";
		toggleDiv(designPreviewId,true,100);
	} else if ((!elt) && (bGalleryOn)) {
		document.getElementById("title-text").innerHTML="clear away this mess!";
	}
}

function hideDesignPreview(elt) {
	if (!bGalleryOn) {
		document.getElementById("title-text").innerHTML="&nbsp;";
		if (elt) {
			var num = (elt.id-1);
			var hideDivId = "designs-"+galleryDesigns[num][0]
			//document.getElementById(hideDivId).style.display = "none";
			toggleDiv(hideDivId,false,0);
		}
	} else if (bGalleryOn) {
		document.getElementById("title-text").innerHTML=designTitleStored;
		//document.getElementById(previewIdStored).style.display = "block";
		if (elt) {
			var num = (elt.id-1);
			var hideDivId = "designs-"+galleryDesigns[num][0]
			if (hideDivId != previewIdStored) {
				toggleDiv(hideDivId,false,0);
			}
		}
	}
}

// ******************************************************************
// END GRAPHIC DESIGN GALLERY CONTROLS
// ******************************************************************


// ******************************************************************
// UTIL FUNCTIONS
// ******************************************************************

function getArgs(str)
{
	var query="";
	if ((str == "") || (str == null))
	{
		query = location.search.substring(1);
	}
	else
	{
		query = str;
	}
	var args = new Object();
	var pairs = query.split("&");
	
	for (var i = 0; i < pairs.length; i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos == -1) continue;
		var argname = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		var value_array = new Array();
		if (value.indexOf(',') != -1)
		{
			value_array = value.split(",");
		}
		else
		{
			value_array[0] = value;
		}
		args[argname] = value_array;
	}
	return args;
}

function parseURLFor(str)
{
	var expr = new RegExp("[?|&]" + str + "=([^&]*)", "gi");
	var arr = expr.exec( window.document.location.search );
	return( (arr==null)? null:arr[1]);
}
