$(function() {
	setupAccord();
	setupRollovers();
	check4DemoReelVisit();
	setupProjectLinks();
	setupForms();
	if($("body").hasClass("traditional")){
		tryToLoadProjectStuff();
	}
});

function tryToLoadProjectStuff(){
	//this function is for non-hijax style visitors who may have flash.
	//find aProjects index
	var projectIndex = -1;
	var currentLocationFull = document.location.href;
	var removeLocationString1 = String(location.protocol) + "//" + String(location.host) + "/";
	var currentLocationPage = currentLocationFull.replace(removeLocationString1,"");
	var currentLocationPageNoHash = currentLocationPage.replace(location.hash,"");
	var currentLocationPageClean = currentLocationPageNoHash.replace(location.search,"");
	for(i=0; i<aProjects.length;i++){
		if(aProjects[i][0].indexOf(currentLocationPageClean)==0){
			projectIndex = i;
		}
	}
	if(projectIndex != -1){
		if(document.title){document.title = "FutureMedia Interactive - " + aProjects[projectIndex][1]};
		if($.flash.hasVersion(8)){$("#swfdiv").empty()}
			$("#swfdiv").flash({
				swf:aProjects[projectIndex][2],
				width:462,
				height:283,
				params:{
					bgcolor:"#1c3764"
				}
			});
	}
	if(window.console)console.log("projectIndex:",projectIndex)
}

//aProjects [ [stringInfoFile, stringPageTitle, stringProjectHash]... ];
var aProjects =[
		["info-pocketcampus.asp","Pocket Campus","projectviewer_host.swf?prjID=pocketcampus","pocketcampus"],
		["info-dsriphoneapp.asp","Discover Saint Rose iPhone App","projectviewer_host.swf?prjID=DSRiPhoneApp","dsriphoneapp"],
		["info-snowbrawlin.asp","Snow Brawlin' iPhone Game","projectviewer_host.swf?prjID=snowbrawlin","snowbrawlin"],
		["info-nutchuckin.asp","Nut Chuckin' iPhone Game","projectviewer_host.swf?prjID=nutchuckin","nutchuckin"],
		["info-FMIGlyph.asp","Glyph - Distributed Content Managment System","projectviewer_host.swf?prjID=FMIGlyph","fmiglyph"],
		["info-regza.asp","Toshiba Regza Virtual Showroom","projectviewer_host.swf?prjID=regza","regza"],
		["info-lcd.asp","Toshiba LCD Microsite","projectviewer_host.swf?prjID=lcd","lcd"],
		["info-tacp.asp","Toshiba Consumer Electronics","projectviewer_host.swf?prjID=tacp","toshiba"],
		["info-ToshibaSSR.asp","Toshiba America Consumer Products Service Site Redesign","projectviewer_host.swf?prjID=ToshibaSSR","toshibaservice"],
		["info-hddvd.asp","Toshiba HD DVD Microsite","projectviewer_host.swf?prjID=hddvd","hddvd"],
		["info-gigabeat.asp","Gigabeat","projectviewer_host.swf?prjID=gigabeat","gigabeat"],
		["info-ge.asp","GE Energy Sales Presentation","projectviewer_host.swf?prjID=ge","ge"],
		["info-GirlScoutsNLE.asp","Girl Scouts of the USA Leadership Website","projectviewer_host.swf?prjID=GirlScoutsNLE","girlscoutsnle"],
		["info-GirlScoutsKiosks.asp","Girl Scouts of the USA 51st Convention Kiosks","projectviewer_host.swf?prjID=GirlScoutsKiosks","girlscoutkiosks"],
		["info-StRoseRedesign.asp","College of Saint Rose Website Redesign","projectviewer_host.swf?prjID=SaintRoseWebRedesign","stroseredesign"],
		["info-StRoseDSR.asp","College of Saint Rose Interactive Tour","projectviewer_host.swf?prjID=DiscoverSaintRose","discoverstrose"],
		["info-StRoseEmail.asp","College of Saint Rose Email Campaign","projectviewer_host.swf?prjID=StRoseEmail","stroseemail"],
		["info-StRoseVideo.asp","College of Saint Rose Acceptance Video","projectviewer_host.swf?prjID=CSR-video","stroseacceptancevideo"],
		["info-milady.asp","Milady CDROM Series","projectviewer_host.swf?prjID=milady","milady"],
		["info-firefighters.asp","Delmar Cengage Firefighters DCROM","projectviewer_host.swf?prjID=firefighters","firefighterscourseware"],
		["info-ssat.asp","SSAT School Finder","projectviewer_host.swf?prjID=ssat","ssat"],
		["info-ThinkBreakfast08.asp","Think Breakfast 2008","projectviewer_host.swf?prjID=ThinkBreakfast2008","thinkbreakfast08"],
		["info-thinkbreakfast.asp","Think Breakfast 2007","projectviewer_host.swf?prjID=thinkbreakfast","thinkbreakfast07"],
		["info-fmiholidaycards.asp","FMI Holiday Cards","projectviewer_host.swf?prjID=fmholiday","fmiholiday"]
]

var oProjectPresentations = new Object();

function loadProject(sHref){
	if(window.console)console.log("loadProject('",sHref,"')");
	var sProjectHref=String(sHref);
	var sLinkOnePage=sProjectHref+"?onepage=true";
	
	$.get(sLinkOnePage, function(data){
		var nLoadedProjIndex = projectIndexByHref(sProjectHref);
		$("#projectdetails").empty().append(data).css("display","block").fadeIn("fast",function(){
			if($.flash.hasVersion(8)){$("#swfdiv").empty()}
			$("#swfdiv").flash({
				swf:aProjects[nLoadedProjIndex][2],
				width:462,
				height:283,
				params:{
					bgcolor:"#1c3764"
				}
			});
		});
		oProjectPresentations.currentProjIndex = nLoadedProjIndex;
		if(document.title){document.title = "FutureMedia Interactive - " + aProjects[oProjectPresentations.currentProjIndex][1]};
		var sNewHash = "#" + aProjects[oProjectPresentations.currentProjIndex][3];
		if(document.location.hash != sNewHash){document.location.hash = sNewHash};//avoid Safari bug
		if(window.console){
			console.log("oProjectPresentations:",oProjectPresentations)
		}
	});
}

function loadProjectByHref(sHref){
	loadProject(sHref);
}
function loadProjectByIndex(nIndex){
	nProjIndex = parseInt(nIndex);
	var sHref = aProjects[nProjIndex][0];
	loadProject(sHref);
}
function loadPrevProject(){	
	if(!isdefinedOV("oProjectPresentations", "currentProjIndex")){
		if(window.console)console.log("oProjectPresentations.currentProjIndex doesnt exist");
	} else {
		nLoadedProjIndex = oProjectPresentations.currentProjIndex;
		oProjectPresentations.prevProjIndex = (nLoadedProjIndex==0) ? aProjects.length-1 : nLoadedProjIndex-1;
		//if(window.console){console.log("oProjectPresentations:",oProjectPresentations)};
		loadProjectByIndex(oProjectPresentations.prevProjIndex);
	}				
}
function loadNextProject(){
	if(!isdefinedOV("oProjectPresentations", "currentProjIndex")){
		if(window.console)console.log("oProjectPresentations.currentProjIndex doesnt exist");
	} else {
		nLoadedProjIndex = oProjectPresentations.currentProjIndex;
		oProjectPresentations.nextProjIndex = (nLoadedProjIndex <(aProjects.length-1) ) ? nLoadedProjIndex+1 : 0;
		loadProjectByIndex(oProjectPresentations.nextProjIndex);
		//if(window.console){console.log("oProjectPresentations:",oProjectPresentations)};
	}
}
function loadProjectMenu(){
	$("#projectdetails").fadeOut("slow",function(){
		$(".pnav").slideUp("fast",function(){
			$("#projectmenu").fadeIn("fast");
		});		
	}).empty().show();
	document.location.hash = "";
	if(document.title){document.title = "FutureMedia Interactive"};
}

function setupProjectLinks(){
	$(".pbutt,.featured").click(function(){
			//find the link and get its href
			var oLink=$(this).find(".mLnk");
			var sLinkHref=oLink.attr("href");
			
			if(bUnsupportedBrowser){
				document.location.href = sLinkHref;
			} else {
				$("#projectmenu").fadeOut("slow",function(){
					$(".pnav").slideDown();
					if(window.console){console.log("sLinkHref:",sLinkHref)}
					loadProjectByHref(sLinkHref);
				});
			}
			return false;
	});
	$("#prevProjLink").click(function(){
		loadPrevProject();
		return false;
	});
	$("#nextProjLink").click(function(){
		loadNextProject();
		return false;
	});
	$("#projMenuLink").click(function(){
		loadProjectMenu();
		return false;
	});
}

function projectIndexByHref(sHref){
	for (i=0; i< aProjects.length; i++){
		if(aProjects[i][0]==sHref){
			return i;
		}
	}
	return -1;
}

function projectIndexByHash(sHash){
	for (i=0; i< aProjects.length; i++){
		if(aProjects[i][3]==sHash){
			return i;
		}
	}
	return -1;
}

function check4DemoReelVisit(){
	if (window.location.search.indexOf("ref01")!=-1){		
		$("#ref01info").slideDown("fast");
	}
}

function setupRollovers(){
	$(".igroup").hover(
		function(){
			$(".color img",$(this)).fadeTo("slow",1);
		},
		function(){
			$(".color img",$(this)).fadeTo("fast",0);
		}
	);
}

function setupAccord(){
	$("#nav").accordion({
		header:"h3",
		autoHeight: false,
		active:false,
		collapsible: true,
		animated:"easeOutQuad"
	});
}

function pauseMovie(moviename){
	var flashmovie=thisMovie(moviename);
	if(flashmovie){
		if(flashmovie.pause){
			flashmovie.pause();
			if(window.console)console.log("called pause method of movie:",moviename);
		}else{
			if(window.console)console.log("could not find pause method of movie:",moviename);
		}
	}else{
		if(window.console)console.log("could not find movie:",moviename);
	}
}
function thisMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

function writeMailTo(u,d,txt,subject){
	if(!d)d="futuremediainteractive.com";
	if(subject)d=d+"?subject="+subject;
	if(!txt)txt=u+"@"+d;
	document.write("<a href='mailto:"+u+"@"+d+"'>"+txt+"</a>");
}

function setupForms(){
	$("textarea,:text").each(function(){
		var $thisfield = $(this);
		var sTitleText = $thisfield.attr("title");
		if($thisfield.val()==""){
			$thisfield.val(sTitleText);
		}
	});
	$("textarea,:text").bind("focus",function(){
		var $thisfield = $(this);
		var sTitleText = $thisfield.attr("title");
		if($thisfield.val()==sTitleText){
			$thisfield.val("");
		}
	});
	$("textarea,:text").bind("blur",function(){
		var $thisfield = $(this);
		var sTitleText = $thisfield.attr("title");
		if(isEmptyOrWhitespace($thisfield.val())){
			$thisfield.val(sTitleText);
		}
		validateField($thisfield);
	});
	$("textarea,:text").bind("keyup",function(){
		var $thisfield = $(this);
		validateField($thisfield);
	});
}

function validateField(oFieldJQ){
	if(oFieldJQ.hasClass("required")){
		if (isEmptyOrWhitespace(oFieldJQ.val()) || oFieldJQ.val()==oFieldJQ.attr("title")){
			oFieldJQ.addClass("badvalue");
		} else {
			if(oFieldJQ.hasClass("email")){
				if(!(isValidEmailAddress(oFieldJQ.val()))){
					oFieldJQ.addClass("badvalue");
				} else {
					oFieldJQ.removeClass("badvalue");
				}
			} else {
				oFieldJQ.removeClass("badvalue");
			}
		}
	}
}

function clearFormValidation(oForm){
	$("textarea,:text",oForm).removeClass("badvalue");
}

function submitNewsletterSubscribeForm(){
	var f=$("#newsletterSubscribeForm");
	$(":text",f).trigger("blur");
	if($(":text",f).hasClass("badvalue")){
		f.effect("shake", { times:4,distance:10 }, 50);
	} else {
		//send data
		$.ajax({
			type: "GET",
			url: f.attr("action"),
			cache: false,
			data: f.serialize(),
			error: function(xhr, textStatus, errorThrown){
				var sErr = "There was a problem.<br />";
				if(textStatus != "" ){sErr += (textStatus + "<br />") };
				if(errorThrown != "" && isdefined(errorThrown)){sErr += errorThrown };
				$('#subscribeResponse').addClass("badvalue").html("").html(sErr);
			},
			success: function(response){
				$('#subscribeResponse').removeClass("badvalue").html("").html(response);
			}
		});
	}
}

function submitContactForm(){
	var f=$("#contactform");
	$("textarea,:text",f).trigger("blur");
	if($("textarea,:text",f).hasClass("badvalue")){
		f.effect("shake", { times:4,distance:10 }, 50);
	} else {
		//remove helper values (optional fields may retain otherwise)
		$("textarea,:text",f).each(function(){
			var thisField = $(this);
			if(thisField.val() == thisField.attr("title")){
				thisField.val("");
			}
		});
		//send data
		$.ajax({
			type: "GET",
			url: f.attr("action"),
			cache: false,
			data: f.serialize(),
			error: function(xhr, textStatus, errorThrown){
				var sErr = "There was a problem.<br />";
				if(textStatus != "" ){sErr += (textStatus + "<br />") };
				if(errorThrown != "" && isdefined(errorThrown)){sErr += errorThrown };
				$('#contactResponse').addClass("badvalue").html("").html(sErr);
			},
			success: function(response){
				$('#contactResponse').removeClass("badvalue").html("").html(response);
			}
		});
	}
}

var whitespace = " \t\n\r";
var digits = "0123456789";
function isEmpty(s) {   
	return ((s == null) || (s.length == 0))
}
function isEmptyOrWhitespace(s) {   
	var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++) {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}
function isValidEmailAddress(s) {
	var temp = s.replace(/\s/g, "")
	return (temp.match(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)) && temp.charAt(0) != "." && !(temp.match(/\.\./))
}

function openJobListing(url){
	var winFeatures="width=760,height=560,resizable=1,scrollbars=1,menubar=1";
	generalOpenWin(url,'jobWin',winFeatures);
}
function openHolidayCard(){
	var winW = screen.width;
	var winH = screen.height;
	var scrollbars = (document.all)?"auto":"1";
	generalOpenWin('holiday2007/holidaycard.html','fmHolidayCardWin','width='+winW+',height='+winH+',top=1,left=1,resizable=1,fullscreen=yes,scrollbars='+scrollbars);
}
function generalOpenWin(url,winName,winFeatures){
	winName=window.open(url,winName,winFeatures);
	if(window.focus)winName.focus();
}
function truthiness(oVar){
	if(oVar){
		return true;
	} else {
		return false;
	}
}
function isdefinedOV(object, variable){
	return (typeof(eval(object)[variable]) != "undefined");
}
function isdefined(variable){
	return (typeof(eval(variable)) != "undefined");
}
