l_responseText = "";
ajaxDoneFunction = false;
var fitByFunWinObj = null;

function clickStartWorkout(type, isWinOpen, winOpenCounter){
	var str = "";
	if(type && type != null)
		str = type;
	googlePageView("Click_Start_Workout", "?source="+str+"&isClientOpen="+isWinOpen);
	var ajUrl = serverUrl+"clientLogs/clickDownload?clickType="+str+"&isOpenWin="+isWinOpen+"&openCounter="+winOpenCounter+"&"+getUserRequestParamsWeb();
	//alert("ajUrl ="  +ajUrl);
	ajaxFunction(ajUrl, null,null);
	return true;
}

function changeImg(imgName, newImgSrc){
	document.getElementById(imgName).src = newImgSrc;
} 

//################### AJAX FUNCTIONS ############################

function ajaxFunction(ajUrl, containerToUpdate, loadingFunc, disableGoogleLog) {
	var xmlHttp;
	try{  
		// Firefox, Opera 8.0+, Safari  
		xmlHttp=new XMLHttpRequest();  
	}catch (e){  // Internet Explorer 
		try{
        	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
    	}catch (e){   
	    	try{      
	        	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
	        } catch (e){      
	        	alert("Your browser does not support AJAX!");      
	        	return false;      
	        } 
	    }   
    }  
        
  	xmlHttp.onreadystatechange=function(){
	    if(xmlHttp.readyState==4){	    		    	    	
	  
	    	l_responseText = xmlHttp.responseText;
	    	//alert("response:"+l_responseText);	
	    	
	    	if(containerToUpdate != null){	    	
	    		updateContainer(l_responseText, containerToUpdate);
	    	}
	
	    	if(ajaxDoneFunction){  		
	    		x = ajaxDoneFunction(containerToUpdate, loadingFunc);
	    	}
	    	
	    	if(sendGoogleLogs == "true"){
		    	updateGoogleCustomVars(); 		    	
		    	if(disableGoogleLog == null || disableGoogleLog == "false"){		    	
		    		googlePageView();
		    	}
		    }
	    	
	    }
	}
	
	try{
		//alert("ajUrl = " +ajUrl);
	    xmlHttp.open("GET",ajUrl,true);    
	    xmlHttp.send(null);  
	  }catch(e){
	  //alert(e.description);
	  }
  }
  
  function initAdditionalGoogleParam(){
  	additionalGoogleAlertPage = "";
  	da = document.getElementById("d_additionalGoogleAlertPage");
	if(da)
		da.innerHTML = "";
  }
  
  function googlePageView(tmpPageName, queryStr){
	if(additionalGoogleAlertPage != null && additionalGoogleAlertPage != "" && additionalGoogleAlertPage != "0"){
		var agap = additionalGoogleAlertPage;
		updateGoogleCustomVars();
		initAdditionalGoogleParam();
		if(agap == "backToPage"){
			pageTracker._trackPageview(googlePrefix+"Reg-"+backToPage);
			sendBeforeRegistrationSessionLog();
		}else{
			pageTracker._trackPageview(googlePrefix+agap);
		}			
	}
  
  	if(!queryStr || queryStr == null){
  		queryStr = "";
  	}
  	if(tmpPageName == null)
  		tmpPageName = pageName;
  	if(tmpPageName != "na" && tmpPageName != "0"){
	  	if(userFirstTime == 'true')
			tmpPageName += "-1";
		//alert("googlePageView, tmpPageName = "+tmpPageName);
		if(pageTracker && tmpPageName.indexOf("-1") != 0){
    		//alert("googlePageView functions send pageView: "+googlePrefix+tmpPageName+".html"+queryStr);
    		pageTracker._trackPageview(googlePrefix+tmpPageName+".html"+queryStr);
	    }
		//alert("googlePageView analytics");
	}
  }  
  
  function updateContainer(l_responseText, containerToUpdate){  
  	if(l_responseText.indexOf("***false***") != -1){
  		d_pageGeneralMessage.style.display = "block";
  	}else if(l_responseText.indexOf("***login***") != -1){
  		clickRedirect(obj_login_btn);
  	}else{  	
  		//alert("containerToUpdate = "  +containerToUpdate.id);
  		if(containerToUpdate.id == "d_innerUpperFrameSmall" || containerToUpdate.id == "d_innerUpperFrameBig"){
  			cleanConfigDiv();
			showUpperFrame(containerToUpdate.id);
		}else{
			hideUpperFrame();
		}
  		
  		containerToUpdate.innerHTML = l_responseText;
  	}
  } 
  
  
//###################END AJAX FUNCTIONS ############################
  
  function updateGoogleCustomVars(){  
  	pageId = getValFromElement("d_pageId");
  	fbfCID = getValFromElement("d_CpuId");
  	fbfSID = getValFromElement("d_SessionId");
	fbfUID = getValFromElement("d_UserId2");
  	userStatus = getValFromElement("d_UserStatus");
  	pageName = getValFromElement("d_PageName");
  	userFirstTime = getValFromElement("d_userFirstTime");
  	additionalGoogleAlertPage = getValFromElement("d_additionalGoogleAlertPage");
    	
	//alert("updateGoogleCustomVars pageName = " + pageName);		
	if(pageId != -1 && pageTracker){
		//alert("Updating custom vars");
		pageTracker._setCustomVar(1, "CpuId", fbfCID, 1); 
		pageTracker._setCustomVar(2, "UserId",	fbfUID, 1); 
		pageTracker._setCustomVar(3, "SessionId",fbfSID, 2); 
		pageTracker._setCustomVar(4, "UserStatus",	userStatus, 2); 
		pageTracker._setCustomVar(5, "PageId",	pageId, 3);
	} 
  }
  
  function getValFromElement(elementName){
  	var val = "0";
  	elementObj = document.getElementById(elementName);  	
  	if(elementObj && elementObj.innerHTML != 'null'){
		val = elementObj.innerHTML;
	}
  	//alert("getValFromElement "+elementName + " = "+elementObj+", val = "+val);
	return val;
  }
  
function getUserRequestParamsWeb(){
	var params = "userId="+fbfUID_WEB+"&sessionId="+fbfSID_WEB+"&cpuId="+fbfCID_WEB;
	//alert("getUserRequestParamsWeb params = "  +params);
	return params;
}

function getUserRequestParams(){
	var params = "userId="+fbfUID+"&sessionId="+fbfSID+"&cpuId="+fbfCPUID;
	//alert("getUserRequestParams params = "  +params);
	return params;
}

//----------------- Cookies --------------
	function createCookie(name,value,days) {	
		//alert("createCookie name:"+name+", value="+value);
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; domain=fitbyfun.com; path=/";
	}
	
	function readCookie(name) {
		//alert("readCookie name = "+name);
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0){
			 //alert("value = "+c.substring(nameEQ.length,c.length));
			 return c.substring(nameEQ.length,c.length);
			}
		}
		return null;
	}
	
	function eraseCookie(name) {
		//alert("eraseCookie name = "+name);
		createCookie(name,"",-1);
	}	
	
	function createUserIdCookie(userId){
		createCookie("fbfPFUI",userId,3650);
		createCookie("fbfSUI",userId,-1);
	}
	
	function createOnlySessionUserIdCookie(userId){
		createCookie("fbfSUI",userId,-1);
	}
	
	function eraseUserIdCookie(){
		eraseCookie("fbfPFUI");
		eraseCookie("fbfSUI");
	}
	
	function createSessionIdCookie(sessionId){
		createCookie("fbfPSI",sessionId,365);
	}
	
	function saveAgreeEulaCookie(){
		createCookie("fbfPAE",1,365);
	}
	
	function getAgreeEulaCookieVal(){
		return readCookie("fbfPAE");
	}
	//----------------- end Cookies
	
	//-------------------- Google Analytics ------------------
	
	function writeGoogleEventWebsite(buttonAction){
		WriteGoogleEvent("Website User Event", buttonAction, "", 0);
	}
	
	function writeGoogleEventWebClient(buttonAction, subAction){
		WriteGoogleEvent("Web Client User Event", buttonAction, subAction, 0);
	}
	
	function WriteGoogleEvent(p1, p2, p3, p4){
		//alert(p1+", "+p2 +", " + p3 + ", "+p4);
		if(pageTracker)
			var success = pageTracker._trackEvent(p1, p2, p3, p4);
		//alert("success = " + success);
	}
	
	//-------------------- End Google Analytics ------------------
	
	function sendClientHomeSessionLog(actionId, actionDesc){
		sendSessionLog(actionId, actionDesc, selectedClassId, selectedClassFileName);
	}
	
	function sendBeforeRegistrationSessionLog(){
		sendClientHomeSessionLog("49","USER_BEFORE_REGISTER-"+backToPage);
	}
	
	function sendPaymentPopupSessionLog(){
		sendClientHomeSessionLog("53","ACTION_ID_CLIENT_HOME_PAYMENT_POPUP");
	}
	
	function sendFrameCloseSessionLog(){
		sendClientHomeSessionLog("60","ACTION_ID_CLIENT_HOME_FRAME_CLOSE");
	}
	
	function sendPaymentTeaserSessionLog(){
		sendClientHomeSessionLog("62","ACTION_ID_HOME_PAYMENT_TEASER");
	}
	
	function sendPaymentPopupInnerSessionLog(){
		sendClientHomeSessionLog("53","ACTION_ID_CLIENT_HOME_PAYMENT_POPUP_INNER");
	}
	
	function sendEulaAcceptedSessionLog(){
		sendClientHomeSessionLog("82","ACTION_ID_CLIENT_HOME_EULA_ACCEPTED");
	}
		
	function sendClientSessionLog(actionDesc, actionId, flashVars){
		//alert("sendClientSessionLog , actionDesc = " + actionDesc + " , actionId = " + actionId);
		sendSessionLogWithFlashVars(actionId, actionDesc, flashVars.classId, flashVars.classFileName, flashVars.userId, flashVars.sessionId, flashVars.cpuId);
	}		
	
	function sendReturnTrainingCntSessionLog(flashVars){
		sendClientSessionLog("ACTION_ID_CLIENT_RETURN_TRAINING_CENTER","54", flashVars);
	}
	
	function sendWarmupMsgSkipSessionLog(flashVars){
		sendClientSessionLog("ACTION_ID_CLIENT_WARMUP_MSG_SKIP","55", flashVars);
	}
	
	function sendWarmupMsgStartSessionLog(flashVars){
		sendClientSessionLog("ACTION_ID_CLIENT_WARMUP_MSG_START","56", flashVars);
	}
	
	function sendWarmupMsgTimeoutSessionLog(flashVars){
		sendClientSessionLog("ACTION_ID_CLIENT_WARMUP_MSG_TIMEOUT","57", flashVars);
	}
	
	function sendCooldownMsgSkipSessionLog(flashVars){
		sendClientSessionLog("ACTION_ID_CLIENT_COOLDOWN_MSG_SKIP","58", flashVars);
	}
	
	function sendCooldownMsgStartSessionLog(flashVars){
		sendClientSessionLog("ACTION_ID_CLIENT_COOLDOWN_MSG_START","59", flashVars);
	}
	
	function sendMovieEventSessionLog(eventId, eventName, flashVars){
		sendClientSessionLog(eventName,eventId, flashVars);
	}
	
	function sendSessionLog(lActionId, lAction, lClassId, lClassName){
		//http://local.fitbyfun.com:8080/fitByFun/clientLogs/sessionLog?userId=33237&sessionId=0&cpuId=30198&classId=133&className=Basic_5_Preview&actionId=130&action=ClientActions.CLASS_ENDED
		ajUrl = serverUrl+"clientLogs/sessionLog?classId="+lClassId+"&className="+lClassName+"&actionId="+lActionId+"&action="+lAction+"&"+getUserRequestParams();
		//alert("sendSessionLog ajUrl"+ajUrl);
		ajaxFunction(ajUrl, null,null, true);
	}
	
	function sendSessionLogWithFlashVars(lActionId, lAction, lClassId, lClassName, lUserId, lSessionId, lCpuId){
		//http://local.fitbyfun.com:8080/fitByFun/clientLogs/sessionLog?userId=33237&sessionId=0&cpuId=30198&classId=133&className=Basic_5_Preview&actionId=130&action=ClientActions.CLASS_ENDED
		ajUrl = serverUrl+"clientLogs/sessionLog?classId="+lClassId+"&className="+lClassName+"&actionId="+lActionId+"&action="+lAction+"&userId="+lUserId+"&sessionId="+lSessionId+"&cpuId="+lCpuId;
		//alert("sendSessionLog ajUrl"+ajUrl);
		ajaxFunction(ajUrl, null,null, true);
	}
	
	//-----------userClasses
	
	function sendUserClassesLog(lActionId, lAction, flashvars, lDuration){
		ajUrl = serverUrl+"clientLogs/userClass?userId="+flashvars.userId+"&sessionId="+flashvars.sessionId+"&cpuId="+flashvars.cpuId+"&classId="+flashvars.classId+"&className="+flashvars.classFileName+"&actionId="+lActionId+"&action="+lAction+"&checkPoint=&music="+flashvars.music+"&skin="+flashvars.skin+"&tempo="+flashvars.tempo+"&duration="+lDuration;
		//alert("sendUserClassesLog ajUrl"+ajUrl);
		ajaxFunction(ajUrl, null,null, true);
	}
	