/* JQuery plugins */
jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

/* Superfish loader */
// v2
//$(document).ready(function() { 
//	$('ul.sf-menu').superfish({
//    	dropShadows: false                 // disable drop shadows 
//	});
//	$('ul.sf-menu').hoverIntent(superfishMouseIn, superfishMouseOut);
//	showCurrentNav();
//});

var protocol = (("https:" == document.location.protocol) ? "https://" : "http://");
//var str_ImgDir = "http://www.coda2go.com/resources_app_v2/images/nav/";
var str_ImgDir = protocol + "www.financialforce.com/resources_app_v2/images/nav/";

$(document).ready(function(){ 
	// pre-load background images (Full URL used for blogs header)
	var image1_1 = $('<img />').attr('src', str_ImgDir + 'bg_level_1-1.gif');
	var image1_2 = $('<img />').attr('src', str_ImgDir + 'bg_level_1-2.gif');
	var image1_3 = $('<img />').attr('src', str_ImgDir + 'bg_level_1-3.gif');
	var image1_4 = $('<img />').attr('src', str_ImgDir + 'bg_level_1-4.gif');
	var image1_5 = $('<img />').attr('src', str_ImgDir + 'bg_level_1-5.gif');
	var image2_1 = $('<img />').attr('src', str_ImgDir + 'bg_level2_top_left.gif');
	var image2_2 = $('<img />').attr('src', str_ImgDir + 'bg_level2_mid_left.gif');
	var image2_3 = $('<img />').attr('src', str_ImgDir + 'bg_level2_btm_left.gif');
	var image2_4 = $('<img />').attr('src', str_ImgDir + 'bg_level2_onlychild_left.gif');
	var image2_5 = $('<img />').attr('src', str_ImgDir + 'bg_level2_top_right.gif');
	var image2_6 = $('<img />').attr('src', str_ImgDir + 'bg_level2_mid_right.gif');
	var image2_7 = $('<img />').attr('src', str_ImgDir + 'bg_level2_btm_right.gif');
	var image2_8 = $('<img />').attr('src', str_ImgDir + 'bg_level2_onlychild_right.gif');
	var image3_1 = $('<img />').attr('src', str_ImgDir + 'bg_level3_top_left.gif');
	var image3_2 = $('<img />').attr('src', str_ImgDir + 'bg_level3_mid_left.gif');
	var image3_3 = $('<img />').attr('src', str_ImgDir + 'bg_level3_btm_left.gif');
	
	$('ul.sf-menu').supersubs({ 
	    minWidth:    14,        // minimum width of sub-menus in em units 
	    maxWidth:    27,        // maximum width of sub-menus in em units 
	    extraWidth:  1         // extra width can ensure lines don't sometimes turn over 
                       	        // due to slight rounding differences and font-family 
	}).superfish({ 
			delay		: 200,
	       	animation	: {opacity:'show'},
	    	speed		: 1,
	    	autoArrows	: false,
	    	onShow		: function(){
				if($(this).attr("class") == "level_2"){
//					$(this).css("z-index", "1");
					var str_ImgBg = "bg_" + $(this).parent().attr("id") + ".gif";
	    			$(this).parent().css("background", "url('"+ str_ImgDir + str_ImgBg + "') no-repeat top left");	
	    			$(this).parent().css("background-position", "-2px 0");
	    			
	    			$(this).children("li:last").css("padding-bottom", "10px");
	    			$(this).children("li").css("background", "url('"+ str_ImgDir +"bg_level2_mid_left.gif') no-repeat top left");	
	    			$(this).children("li:first").css("background", "url('"+ str_ImgDir +"bg_level2_top_left.gif') no-repeat top left");
	    			$(this).children("li:last").css("background", "url('"+ str_ImgDir +"bg_level2_btm_left.gif') no-repeat top left");	    			
	    			$(this).children("li:only-child").css("background", "url('"+ str_ImgDir +"bg_level2_onlychild_left.gif') no-repeat top left");	   				    			
	    			$(this).children("li").css("background-position", "-7px 0");
	    			
	    			$(this).children("li:last").children("a").css("padding-bottom", "20px");
	    			$(this).children("li").children("a").css("background", "url('"+ str_ImgDir + "bg_level2_mid_right.gif') no-repeat top right");
	    			$(this).children("li:first").children("a").css("background", "url('"+ str_ImgDir + "bg_level2_top_right.gif') no-repeat top right");
	    			$(this).children("li:last").children("a").css("background", "url('"+ str_ImgDir + "bg_level2_btm_right.gif') no-repeat top right");
	    			// fix level 2 only children			
	    			$(this).children("li:only-child").children("a").css("background", "url('"+ str_ImgDir + "bg_level2_onlychild_right.gif') no-repeat top right");	   			
	    			// fix top level 3 children
	    			$(this).children("li:first").children("ul").children("li").css("margin-top", "-2px");
				}
				if($(this).attr("class") == "level_3"){
					$(this).css("margin-left", "-4px");
	    			$(this).children("li:last").css("padding-bottom", "10px");
	    			$(this).children("li").css("background", "url('"+ str_ImgDir + "bg_level3_mid_left.gif') no-repeat top left");	
	    			$(this).children("li:first").css("background", "url('"+ str_ImgDir + "bg_level3_top_left.gif') no-repeat top left");
	    			$(this).children("li:last").css("background", "url('"+ str_ImgDir + "bg_level3_btm_left.gif') no-repeat top left");
	    			$(this).children("li:only-child").css("background", "url('"+ str_ImgDir + "bg_level3_onlychild.gif') no-repeat top left");	
	    			// special case: any first level 3 item's level-2-li-anchestor's a needs different hover background - also needs special reset onHide
					$(this).children("li:first").parent().parent().children("a").css("background", "url('"+ str_ImgDir + "bg_level2_mid_right.gif') no-repeat top right");
	    			$(this).children("li").css("background-position", "-10px 0");	  	    			
	    			$(this).children("li:first").css("background-position", "-10px 2px");
	    			$(this).children("li:only-child").css("background-position", "-10px 0");	
					// fix IE6&7 a>img padding issue
	    			$(this).children("li").children("a").children("img").parent("a").css("padding-bottom", "0.5em");
				}
	    	},
	    	onHide		: function(){
	    		// special case: onHide for any level 3 item's first level-2  "li > a" anchestor special reset onHide
				if($(this).attr("class") == "level_3"){
					$(this).children().parent().parent("li.first").children("a").css("background", "url('"+ str_ImgDir + "bg_level2_top_right.gif') no-repeat top right");
				}
	    	}
	})
});

//$(document).ready(function(){ 
//	$("ul.level_1 > li#level_1-4").hover(
//	    function () {	      	
//	    	$(this).css("background", "url('"+ str_ImgDir + "bg_level1-4.gif') no-repeat top left");
//		}, 
//	    function () {
//		}
//	);
//});

$(document).ready(function(){ 
	$("ul.level_1 > li").hover(
	    function () {	      	
		}, 
	    function () {
	    	var $obj_li_level1 = $(this);
	    	window.setTimeout(function (timer) {
	    		$obj_li_level1.css("background", "none");
	    		$("ul.level_1 > li > a").css("background", "none");
			},225);
		}
	);
	if($.browser.msie && $.browser.version=="6.0"){
		$("span.hr").remove();
	}
});


/* Custom JScript rollovers */
$(document).ready(function(){
	/* Any image with class = "button" will switch src="/dir/image-name_on.png" to/from src="/dir/image-name_off.png" */
	if(!(jQuery.browser.msie && jQuery.browser.version < 7)){
		$('img.button').hover(
	        function(){
				var imgSrc = ($(this).attr("src"));
				var imgSrcOn = imgSrc.replace("_off.png", "_on.png");
	            $(this).attr({ src : imgSrcOn});
	        },
	        function(){
				var imgSrc = ($(this).attr("src"));
				imgSrc = imgSrc.replace("_on.png", "_off.png");
	            $(this).attr({ src : imgSrc});					            	
			}
		);
		$('input.button').hover(
	        function(){
				var imgSrc = ($(this).attr("src"));
				var imgSrcOn = imgSrc.replace("_off.png", "_on.png");
	            $(this).attr({ src : imgSrcOn});
	        },
	        function(){
				var imgSrc = ($(this).attr("src"));
				imgSrc = imgSrc.replace("_on.png", "_off.png");
	            $(this).attr({ src : imgSrc});					            	
			}
		);
	}
	/* front page panel hovers */
	$('div.red_box').hover(
        function(){
			// IE bug prevents use of .attr to set class...
        	$(this).removeClass("red_box");
        	$(this).addClass("red_box_over");
        },
        function(){
        	$(this).removeClass("red_box_over");
        	$(this).addClass("red_box");
		}
	);
	$('div.red_box').click(
        function(){
        	if ($(this).children('h2').children('a').attr("href") != "#"){
	        	location.href=$(this).children('h2').children('a').attr("href");
        	} else {
        		if (func = $(this).children('h2').children('a').attr("onClick"))
	        		if ($.browser.msie){
		        		func();
	        		} else {
		       			eval(func);
	        		}
        	}
        }
	);
	$('div.grey_box').hover(
        function(){
			// IE bug prevents use of .attr to set class...
        	$(this).removeClass("grey_box");
        	$(this).addClass("grey_box_over");
        },
        function(){
        	$(this).removeClass("grey_box_over");
        	$(this).addClass("grey_box");
		}
	);
	$('div.grey_box').click(
        function(){
        	location.href=$(this).children('h2').children('a').attr("href");
        }
	);

	/* news & events page panel hovers */
	$('div.off').hover(
        function(){
			// IE bug prevents use of .attr to set class...
        	$(this).removeClass("off");
        	$(this).addClass("on");
        },
        function(){
        	$(this).removeClass("on");
        	$(this).addClass("off");
		}
	);
	$('div.off').click(
        function(){
        	location.href=$(this).children('h3').children('a').attr("href");
        }
	);
});

/* Custom feature panel loader */
$(document).ready(function(){
	$('.show-panel').click(function(){
		var showTarget = "#preview-" + $(this).attr("id");
		$('#preview_panel_wrapper').children().not('showTarget').hide();
		$(showTarget).show('fast');
	});
});

/* Custom buzzword panel loader */
$(document).ready(function(){
	$('a.word').click(function(){
		var showTarget = "#defn-" + $(this).attr("id");
		$('#defn_panel_wrapper').children().not('showTarget').hide();
		$(showTarget).show('fast');
	});
});

/* Browser version check & hide */
$(document).ready(function(){
	if(jQuery.browser.safari){
		$(".safari-hide").hide();
	}
	if(jQuery.browser.msie){
		$(".iebug").addClass("ieonly");
		$(".iebug").removeClass("iebug");
	}	
});


/* Solutions multi-level panel loader */

$(document).ready(function(){
	if ($("div#solutions_triggers_wrapper").attr("id") == "solutions_triggers_wrapper"){
		$('#solutions_wrapper1 .show-panel').click(function(){
			showPreviewPanel($(this).attr("id"), "preview_panel_wrapper1");
		});
		// Preselect panel 1
		showPreviewPanel("panel-01", "preview_panel_wrapper1");
		
		$('#solutions_wrapper2 .show-panel').click(function(){
			showPreviewPanel($(this).attr("id"), "preview_panel_wrapper2");
		});
		// Preselect panel 2
		showPreviewPanel("panel-04", "preview_panel_wrapper2");
	}
});

//Marketing opt out dependant on country selected
$(document).ready(function(){
	$('#Country').change(function() {
		if ($('#Country').val() && $('#Country').val() != 'US' && $('#Country').val() != '80'){
			$('#FutureContact').parent().show('fast');
		} else {
			$('input#FutureContact').parent().hide('fast', function(){
					$('input#FutureContact').attr('checked', true);
				});
		}
	});
});

function showPreviewPanel(triggerId, previewPanelWrapperId){
	$('#' + triggerId).parent().parent().parent().children().removeClass("selected");
	$('#' + triggerId).parent().parent().addClass("selected");
	var showTarget = "#preview-" + triggerId;
	$('#' + previewPanelWrapperId).children().not('showTarget').hide();
	$(showTarget).show('fast');
	$('#' + triggerId).parent().addClass("selected");
}

function showSolutionsWrapper(strTriggerId){
	var strTargetId = strTriggerId.replace("trigger", "wrapper");
	$("#solutions_options").children().hide();
	$("#" + strTargetId).show();
}

function solutionsTrigger_click(e) {
	var strTriggerId = $(this).attr("id");
	showSolutionsWrapper(strTriggerId);
	resetTriggerWrapperStates(strTriggerId);
}
function solutionsTriggerWrapper_click(e) {
	// add mask click
	var strTriggerId = $(this).parent().children(".solutions_trigger").attr("id");
	showSolutionsWrapper(strTriggerId);
	resetTriggerWrapperStates(strTriggerId);
	//remove the mask
	$(this).remove();
}
function solutionsTriggerChildWrapper_click(e) {
	// add mask click
	var strTriggerId = $(this).parent().parent().children(".solutions_trigger").attr("id");
	showSolutionsWrapper(strTriggerId);
	resetTriggerWrapperStates(strTriggerId);
	//remove the mask, which is the triggers sibling
	$(this).parent().parent().children(".solutions_trigger_mask").remove();
}
function resetTriggerWrapperStates(strTriggerId){
	var strTriggerWrapperId = $("#"+strTriggerId).parent().attr("id");
	$("div.solutions_trigger_wrapper").each(function() {
		var id = $(this).attr("id");
		if ($(this).attr("id") != strTriggerWrapperId){
//			alert($(this).attr("id"));
			// non-trigger node - add mask (with hover & click) & unselect
			$(this).createAppend('div', {className:'solutions_trigger_mask'});
			$(this).children().removeClass("selected");
			// add mask hover
			$("div.solutions_trigger_mask").hover(
				function () {
					$(this).addClass("hover");
					$(this).siblings().addClass("hover");
				},
				function () {
					$(this).removeClass("hover");
					$(this).siblings().removeClass("hover");
				}
			).click(solutionsTriggerWrapper_click);
			//IE also needs hover and click on the trigger's children aswell (i.e. the mask's sibling's children)
			$(this).children("div.solutions_trigger").children().each(function(){
				$(this).hover(ieChildHover, ieChildHoverOut);
				$(this).click(solutionsTriggerChildWrapper_click);
			});	
		} else {
			//trigger node - remove click & hover & select it
			$("#"+strTriggerId).unbind("click", solutionsTrigger_click).removeClass("hover").addClass("selected");
			//remove trigger's the child hovers (that IE needed)
			$("#"+strTriggerId).children().each(function(){
				$(this).unbind('mouseover', ieChildHover).unbind('mouseout', ieChildHoverOut);
				$(this).unbind('click', solutionsTriggerChildWrapper_click);
			});
		}
	});	
	function ieChildHover() {
		$(this).parent().siblings().addClass("hover");
	}
	function ieChildHoverOut() {
		$(this).parent().siblings().removeClass("hover");
	}
	//set the triggers wrapper background
	$("#solutions_triggers_wrapper").css("height", "170px");
	var strBg = "url(/resources_app_v2/images/general/bg_" + strTriggerWrapperId + ".gif)";
	$("#solutions_triggers_wrapper").css("background-image", strBg);
	//adjust position for IE6
	if(($.browser.msie && $.browser.version=="6.0")){
		$("#solutions_triggers_wrapper").css("background-position", "115 120");
	}
}

/* Section-specific side strips */
var objSideStips = new Object();
var strImagesDir = "/resources_app_v2/images/general/"; 
objSideStips["spotlights"] = "side_strip_spotlight.gif";

$(document).ready(function(){
	var strNavPath = "";
	strNavPath = $("body").attr("class");
	if (strNavPath.match("NAVPATH_online-accounting-solutions_spotlights")){
		var strImgSrc = objSideStips["spotlights"];
		$("div#content").addClass("spotlights_side_strip");
	}
});

/* CODA 2go general JS functions */

function sendCODA2goSignupForm(host_server) 
{
	var frm			  		=	document.frmCODA2goSignup;
	var SiteRequest_ID 		=   frm.SiteRequest_ID.value;
	var FirstName     		=	frm.FirstName.value;
	var LastName	    	=	frm.LastName.value;
	var Title	     		=	frm.Title.value;
	var Email	     		=	frm.Email.value;
	var Phone	     		=	frm.Phone.value;
	var Company	     		=	frm.Company.value;
	var NumberOfEmployees   =	frm.NumberOfEmployees.value;
	var SF_Edition   		=	frm.SF_Edition.value;
	var Country	     		=	frm.Country.value;
	var formName	     	=	frm.formName.value; // formName === product version
	var SpamGotcha    		=   frm.SpamGotcha.value;
	var form_registration_submitted = 1;
	
	var bool_formOK = false;
	
	bool_formOK 	 =	checkCODA2goSignupForm();
	
//	Company = Company.replace(/TRIALFORCE-/g, "");
	
	if (bool_formOK){
		// Custom function to make sure emails aren't duplicated
		setUsername();
		
		var url					= host_server + '/scripts/c2g_registration.php?SiteRequest_ID=' + SiteRequest_ID + '&FirstName=' + FirstName +'&LastName=' + LastName +'&Title=' + Title + '&Email=' + Email + '&Phone=' + Phone + '&Company=' + Company + '&NumberOfEmployees=' +  NumberOfEmployees + '&SF_Edition=' +  SF_Edition + '&Country=' + Country + '&formName=' + formName + '&form_registration_submitted=' + form_registration_submitted + '&SpamGotcha=' + SpamGotcha;
		// Submit the form via AJAX
		//alert(url);
		AJAXPage(url);
		return bool_formOK;
	}
	return bool_formOK;
}

/* CODA 2go TRIAL SIGN UP FORM VALIDATION */
function checkCODA2goSignupForm() 
{
	var frm				= document.frmCODA2goSignup;
	var frm			  		=	document.frmCODA2goSignup;
	var FirstName     		=	frm.FirstName.value;
	var LastName	    	=	frm.LastName.value;
	var Title	     		=	frm.Title.value;
	var Email	     		=	frm.Email.value;
	var Phone	     		=	frm.Phone.value;
	var Company	     		=	frm.Company.value;
	var NumberOfEmployees   =	frm.NumberOfEmployees.value;
	var SF_Edition   		=	frm.SF_Edition.value;
	var Country	     		=	frm.Country.value;
	var formName	     	=	frm.formName.value; // formName === product version
	var bool_formOK 	= true;
	
	if (FirstName=='' 
		|| LastName ==''
		|| Title == ''
		|| Email == ''
		|| Phone == ''
		|| Company == ''
		|| NumberOfEmployees == ''
		|| Country == ''
		|| formName == ''){
			alert('Please enter valid information into ALL fields to request the 30 day free trial');
			bool_formOK = false;
			return bool_formOK;
	} else {	
		return bool_formOK;
	}
}


function setUsername()
{
	try {
		var appName = "FinancialForce";  
		var at="@";
		var frm=document.frmCODA2goSignup;
		var emailAddr = frm.Email.value;
        
		var lat=emailAddr.indexOf(at);
		
		if (lat == -1) 
		{
			return false;
		}
        
		var userFront = emailAddr.substring(0, lat);
        
		frm.UserUsername.value = userFront + "@" + rand(50) + appName + ".com";
				
      } catch(e) {
//			alert("E: " + e.description);
			return false;
      }
      return true;

}

function rand ( n )
{
	return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

function callwin(url,w,h,scroll,res,type)
{
	width=w; 
	height=h;

	if(type=="video")
	{
		width=width+20;
		height=height+20
	}

	if(scroll){}else
	{
		scroll=0;
	}

	if(res){}else
	{
		res=0;
	}

	LeftPosition = (screen.width) ? (screen.width-width)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-height)/2 : 0;
	win = window.open(url, "codapopup", "height="+height+", width="+width+", left="+LeftPosition+",top="+TopPosition+",toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars="+scroll+",resizable=" + res);
	win.focus();
}


/***********************************************
#
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
#
* This notice MUST stay intact for legal use
#
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
#
***********************************************/
 
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
 
function AJAXPage(url, containerid, isValue){
	
	var page_request = false
    if (window.XMLHttpRequest){ // if Mozilla, Safari etc
        page_request = new XMLHttpRequest()
    }

  	else if (window.ActiveXObject){ // if IE
        try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP")
        }
        catch (e){
          try{
                page_request = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){
            }
		}
    }
    else{
        return false
    }
   
    if (isValue)
    {
		page_request.onreadystatechange=function()	{setContentForID(page_request, containerid)}
    } else {
    	page_request.onreadystatechange=function()	{setContentForHTML(page_request, containerid)}
    }
	   
	page_request.open('GET', url, true)
	page_request.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT");
	page_request.setRequestHeader("Cache-Control", "no-cache");	
	page_request.send(null)
	return null;
}
 
function setContentForHTML(page_request, containerid){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    {
	  	document.getElementById(containerid).innerHTML=page_request.responseText
	}
}
 
function setContentForID(page_request, containerid){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    {
	    document.getElementById(containerid).value=page_request.responseText
	}
}

/***********************************************/
/* Salesforce solution picker
/***********************************************/

function drawSalesforce_Links()
{
 strURLGo = "http://www.coda2go.com/applications";
 strURLInt = "http://www.coda.com/integrator";
 strFile = "/resources_app_v2/library/flash/pub/solution_picker/SalesForce_Links.swf?";
 strURLs = "URL1="+ strURLInt +"&URL2="+ strURLGo +"&URL3="+ strURLInt +"&URL4="+ strURLGo;

 document.write("<center><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0' width='500' height='250' id='map' align='middle'><param name='allowScriptAccess' value='sameDomain' /><param name='movie' value='"+ strFile + strURLs +"' /><param name='quality' value='best' /><param name='wmode' value='transparent' /><embed src='"+ strFile + strURLs +"' quality='best' width='500' height='250' name='map' align='middle' wmode='transparent' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object></center>");
} 

/***********************************************/
/* Search
/***********************************************/

function clickClear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}
function clickRecall(thisfield, defaulttext) {
	if (thisfield.value == "") {
		thisfield.value = defaulttext;
	}
}

/***********************************************/
/* JWPlayer
/***********************************************/
function deletePlayer(theWrapper, thePlaceholder, thePlayerId) { 
	swfobject.removeSWF(thePlayerId);
	var tmp=document.getElementById(theWrapper);
	if (tmp) { tmp.innerHTML = "<div id=" + thePlaceholder + "></div>"; }
}

function createPlayer(thePlaceholder, thePlayerId, theFile, autoStart, playerWidth, playerHeight) {
	var flashvars = {
			file:theFile, 
			autostart: autoStart
	}
	var params = {
			allowfullscreen:"true", 
			allowscriptaccess:"always"
	}
	var attributes = {
			id:thePlayerId,  
			name:thePlayerId
	}
	swfobject.embedSWF("/resources_app_v2/library/flash/pub/jwplayer/player-licensed.swf", thePlaceholder, playerWidth, playerHeight, "9", true, flashvars, params, attributes);
}

function initPlayer(theFile, autoStart, playerWidth, playerHeight) { 
	deletePlayer("wrapper", "placeholder1", "player1"); 
	createPlayer("placeholder1", "player1", theFile, autoStart, playerWidth, playerHeight);
}