/************************************************************************* 
	Justin Schroeder Copyright 2008. No Rights Reserved.
	Requires: Panic's and Cabel Sasser FancyZoom.js
	
	
	Thanks for reading my js, it shows you care. Like what you see?
	Lets Talk. Shoot me a line, you've earned the right:
	justin (at) jpschroeder (dot) com

**************************************************************************/

//GLOBAL VARIABLES
var keypressed = 0;
var ajaxUrl = 'form.php';
var returnNodes = new Array();
var selectedContact = "email_me";
var throb = false;

function changeTab(container,tab){
	if(getCurrentTab() != tab){
		new Effect.toggle($(container), 'blind', {duration:0.5});
		$(tab+"_tab").className = "selected_" + tab;
		
		if(tab == "portfolio"){
			$('blog_tab').className = "";
			ScrollSection(currentPortfolio,"action_container","missouri-pane");
		}else{
			$('portfolio_tab').className = "";
			ScrollSection(currentBlog,"action_container","missouri-pane");
		}
		
	}
	return false;
}

function goTo(container){
	new Effect.ScrollTo($(container));
	return false;
}

function getCurrentTab(){
	if($("portfolio_tab").className == ""){
		return "blog";
	}else{
		return "portfolio";
	}
}

function initialActions(type,scrollTo){
	if(type == "blog"){
		changeTab("blog_container","blog");
		ScrollSection(scrollTo,"action_container","missouri-pane");
	}else if(type == "portfolio"){
		ScrollSection(scrollTo,"action_container","missouri-pane");
	}
}

function focusElement(id){
	$(id).select();
}

function showSubmit(){
	if(keypressed == 0){
		Effect.Appear("notice");
		keypressed++;
	}else{
		keypressed++;
	}
}

function checkTag(){
	if($("tag_field").value == "" || $("tag_field").value == "add another..."){
		new Effect.Highlight($("add_tag"),{startcolor:'#a24242', endcolor:'#4c4c4c', duration: '2.0'});
	}else{
		runAjax('add_tag_form','tag_result');
		setTimeout("new Effect.Highlight($('first'),{startcolor:'#E4D715', endcolor:'#2d2d2d', duration: '2.0'})",700);
	}
	return false;
}

function getSite(){
	new Effect.ScrollTo($("contact"));
	$("subject").value = "I want a website";
	setTimeout("new Effect.Highlight($('your_email'),{startcolor:'#E4D715', endcolor:'#737373', duration: '2.0'})",1000);
	setTimeout("$('your_email').focus();",1000);
	return false;
}

function contactForm(to){
	if(to == "write_me"){
		$('write_content').innerHTML = "";
		$('send_message_link').innerHTML = "WRITE EMAIL &raquo;";
		$('contact_form').style.backgroundPosition = 'top center';
		new Effect.BlindDown($(to));
		selectedContact = "write_me";
	}else{
		if(selectedContact == "email_me"){
			checkContact();
		}else{
			$('send_message_link').innerHTML = "SEND EMAIL &raquo;";
			$('write_content').innerHTML = "<a href=\"#contact\" onclick=\"return contactForm('write_me');\">VIEW ADDRESS &raquo;</a>";
			$('contact_form').style.backgroundPosition = 'bottom center';
			new Effect.BlindUp($('write_me'));
			selectedContact = "email_me";
		}
	}
	return false;
}

function theBox(content,title,size){
	if(size == "big"){
		height = 270;
		width = 700;
	}else if(size == "normal"){
		height = 200;
		width = 500;
	}
	new LITBox(content,{
				title:title,
				type:'window',
				overlay:true,
				height:height,
				width:width,
				resizable:false,
				opacity:1.0
			});
	
	return false;
}

function checkContact(){
	email = $('your_email');
	errors = 0;
	if(email.value.indexOf("@") <= 1 || email.value.indexOf(" ") >= 1 || email.value.indexOf(".") <= 1 || email.value == ""){
		new Effect.Highlight(email,{startcolor:'#a24242', endcolor:'#737373', duration: '2.0'});
		email.focus();
		errors++;
	}
	if($('subject').value == ""){
		new Effect.Highlight($('subject'),{startcolor:'#a24242', endcolor:'#666666', duration: '2.0'});
		errors++;
	}
	if($('message').value == ""){
		new Effect.Highlight($('message'),{startcolor:'#a24242', endcolor:'#666666', duration: '2.0'});
		errors++;
	}
	
	if(errors == 0){
		runAjax('email_form','contact_results');
		new Effect.BlindUp($('form'));
	}

	return false;
}

function highlight_send(time,toggle){
	throb = true;
	setTimeout(function(){
		if(toggle){
			startcolor = "#F3E00A";
			endcolor = "#3d3d3d";
		}else{
			startcolor = "#3d3d3d";
			endcolor = "#F3E00A";
		}
		new Effect.Highlight($("send_message_link"),{startcolor:startcolor, endcolor:endcolor, restorecolor:endcolor, duration: '2.0'});
		if(toggle){
			highlight_send(3000,false);
		}else{
			highlight_send(3000,true)
		}
		
	},time);
}




/***********************************************************
SOME MASTER AJAX SCRIPTS TO RUN WHEN SUBMITING FORMS
THESE FUNCTION ARE EXCLUSIVE COPYRIGHT OF JUSTIN SCHROEDER
PLEASE DO NOT REDISTRIBUTE THIS CODE WITHOUT FIRST CONTACTING
ME FOR PERMISSION.
************************************************************/

function runAjax(formID,target){	
	query = "";
	formElement = document.getElementById(formID);
	formNode = grabNodes(formElement);
	if(formNode){
		for(var i=0;i < formNode.length; i++){
			query += formNode[i].name + "=" + escape(formNode[i].value);
			if(i+1 < formNode.length) query += "&"
		}
	}
	var myAjax = new Ajax.Updater(target, ajaxUrl, {method: 'post', postBody: query});
	returnNodes.length = 0;
	return false;
}

function grabNodes(parentElement){
	if(parentElement.hasChildNodes()){
		var children = parentElement.childNodes;
		for (var i = 0; i < children.length; i++){
			type = parentElement.childNodes[i].tagName;
			if(type == "DIV" || type == "TABLE" || type == "SPAN"){
				grabNodes(parentElement.childNodes[i]);
			}else if(type == "INPUT" || type == "TEXTAREA" || type == "CHECKBOX" || type == "SELECT"){
				returnNodes.push(parentElement.childNodes[i]);
			}
		}
		return returnNodes;
	}else{
		return false;
	}
}


/*****************************************************
BROWSER DETECTION
******************************************************/


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: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			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.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


