// Global
function getStyle(id, prop)
{
	var d = document;
	var id = d.getElementById(id);
	var style = null;
	
	if(id.currentStyle)
	{
		style = id.currentStyle[prop];
	}
	else if(window.getComputedStyle)
	{
		style = d.defaultView.getComputedStyle(id, null).getPropertyValue(prop);
	}
	return style;
}
//
function setStyle(id, style, value)
{
	document.getElementById(id).style[style] = value;
}
//
function setInnerHTML(id, value)
{
	document.getElementById(id).innerHTML = value;
}

/* Flash */
function thisMovie(movieName)
{
    if (navigator.appName.indexOf("Microsoft") != -1)
	{
		return window[movieName];
    }
    else
	{
        return document[movieName];
    }
}
//
//function sendToFlash(id)
function sendToFlash(id)
{
	if(id != 'page1') thisMovie('movie').unloadVideo();
	//return false;
}

function nav(id)
{
	var el = document.getElementById('nav');
	el.a = el.getElementsByTagName('a');
	//
	for(var i = 0; i < el.a.length; i++)
	{
		var tar = 'nav' + i;
		(tar != id) ? el.a[i].className = 'n' + i : el.a[i].className = 'n' + i + 'selected';
	}
}


/* Sections */
var loop = false;


function fade(id)
{
	/**/
	var el = {};
	el.tar = id;
	el.id = 'page';
	el.vis = true;
	el.speed = 1;
	el.angle = 0;
	el.incr = 0.2;
	el.range = 100;
	el.interval = null;
	el.li = document.getElementById(el.id).getElementsByTagName('li');
	
	el.showDiv = function()
	{
		for(var i = 0; i < el.li.length; i++)
		{
			var tar = el.id + i;
			(tar != el.tar) ? setStyle(tar, 'display', 'none') : setStyle(el.tar, 'display', 'block');
		}
	};
	
	el.fade = function()
	{
		var value = Math.abs(Math.cos(el.angle) * (100));
		el.angle += el.incr;
		value = Math.ceil(value);
		setStyle(el.id, 'opacity', value/100);
		setStyle(el.id, 'filter', 'alpha(opacity="' + value + '")');
		
		
		//document.getElementById('output').innerHTML = 'OPACITY: ' + getStyle(el.id, 'opacity');
		
		if(value < 5)
		{
			setStyle(el.id, 'opacity', 0);
			setStyle(el.id, 'filter', 'alpha(opacity="' + 0 + '")');
			
			loop = false;
			el.vis = false;
			el.showDiv();

			//document.getElementById('output').innerHTML = getStyle(el.id, 'opacity') + ' / ' + el.vis;
		}
		//
		if((!el.vis) && value > 95)
		{
			setStyle(el.id, 'opacity', 1);
			setStyle(el.id, 'filter', 'alpha(opacity="' + 100 + '")');
			clearInterval(el.interval);
			el.interval = null;
			//func.loop = true;
			
			//document.getElementById('output').innerHTML = getStyle(el.id, 'opacity') + ' / ' + el.vis;
			return;
		}
	};
	//
	loop = true;
	el.interval = setInterval(el.fade, el.speed);
}


/* Form */
function removeNode(id)
{
	var node = document.getElementById(id);
	node.parentNode.removeChild(node);
	
	if(getStyle('loading-bg', 'display') != 'none') setStyle('loading-bg', 'display', 'none');
}

function showLoading()
{
	if(document.getElementById('loading')) removeNode('loading');
	
	var loading = document.createElement('span');
	loading.id = 'loading';
	
	var loading_img = document.createElement('img');
	loading_img.setAttribute('src', 'media/i_loading.gif');
	loading_img.setAttribute('alt', 'loading');
	
	var loading_p = document.createElement('p');
	var text = document.createTextNode('Sending...');
	loading_p.appendChild(text);
	
	loading.appendChild(loading_img);
	loading.appendChild(loading_p);
	
	var page = document.getElementById('loading-bg');
	page.insertBefore(loading, page.firstChild);
	
	setStyle('loading-bg', 'display', 'inline');
}

function setForm()
{
	// toggle display of contact and confirmation divs instead of overwriting with innerHTML
	var form = document.getElementById('f0');
	// Returned ajax values overwrites form
	if(!form) return;
	
	form.onsubmit = function()
	{	
		var data = '';
		var elm = this.elements;
		
		for(i = 0; i < elm.length; i++)
		{
			data += elm[i].name;
			data += '=';
			data += escape(elm[i].value);
			data += '&';
			
			//alert(elm[i].name)
		}
		
		// Show loading
		showLoading();
		//setInnerHTML('output2', '<img id="loading" src="media/i_loading.gif" alt="loading" />');
		return !getFile(data);
		
	};
}

//
function setNavs()
{
	var navMain = document.getElementById('nav');
	navMain.a = navMain.getElementsByTagName('a');
	
	for(var i = 0; i < navMain.a.length; i++)
	{
		// Set main nav
		navMain.a[i].idx = i;
		navMain.a[i].onclick = setPage;
		
		// Set sub nav
		var navSub = document.getElementById('page' + i + '-subnav');
		navSub.a = navSub.getElementsByTagName('a');
		
		for(j = 0; j < navSub.a.length; j++)
		{
			var snav = navSub.a[j];
			snav.idx = navMain.a[i].idx;
			snav.onclick = setPage;
		}
	}
}

//
function setPage(pg)
{
	if(loop) return;
	
	var pages = ['home', 'demos', 'specs', 'contact'];
	var page;
	
	//var page = (!this.hash) ? 'home' : this.hash.substring(1);
	//alert('hash: ' + this.hash + ' | pg: ' + pg + ' | page: ' + page)
	
	if(this.hash)
	{
		page = this.hash.substring(1);
	}
	else if(pg)
	{
		page = pg;
	}
	else
	{
		page = 'home';
	}
	
	//
	for(var prop in pages)
	{
		if(pages[prop] == page)
		{
			fade('page' + prop);
			nav('nav' + prop);
			if(('page' + prop) != 'page1') sendToFlash();
		}
	}
}

//
function browseDetect()
{
	var msg = document.getElementById('browser-msg');
	var btn = document.getElementById('browser-close');
	var ua = navigator.userAgent.toLowerCase();
	var oldBrowser = 'Hello. Just to let you know, some things may look weird in Internet Explorer 6 and under, please consider upgrading your browser.';
	
	var isIE = ua.match('msie');
	var isFF = ua.match('firefox');
	if(isIE)
	{
		//alert('IE: ' + isIE);
		var msie = ua.indexOf('msie');
		var ie = ua.substr(msie, 6);
		var version = ie.substring(5);
		if(version < 7)
		{
			msg.innerHTML = oldBrowser;
			setStyle('browser-bg', 'display', 'block');
		}
		btn.onclick = function()
		{
			setStyle('browser-bg', 'display', 'none');	
		};
		//
	}
	else if(isFF)
	{
		//alert('FF: ' + isFF);
	}
}

//
function getPage()
{
	var page = 'home';
	
	if(location.href.match(/#/i) != null)
	{
		var loc = location.href.split('#');
		page = loc[1];
	}
	return page;
	//alert('page: ' + location.href.split('#'))
}
//
function init()
{
	browseDetect();
	//
	setNavs();
	setForm();
	
	// Run once - sets first page to 'tag'
	//nav('nav0');
	
	setPage(getPage());
	//setPage();
}



//
window.onload = init;