/*               __              _                                                 _____     __    
 *    ___   ____/ /___   ____   (_)_____   ____ _ ____ _ ____ ___   ___   _____   / ___/    / /    
 *   / _ \ / __  // _ \ / __ \ / // ___/  / __ `// __ `// __ `__ \ / _ \ / ___/   \__ \    / /     
 *  /  __// /_/ //  __// / / // // /__   / /_/ // /_/ // / / / / //  __/(__  )   ___/ /_  / /___ _ 
 *  \___/ \__,_/ \___//_/ /_//_/ \___/   \__, / \__,_//_/ /_/ /_/ \___//____/   /____/(_)/_____/(_)
 *                                      /____/                                                     
 * @2007 - Edenic Games S.L.
 */
var dirtyFormWarning=true;
var initialFormValues = [];
var errorStandard="<div class=\"tituloDialogo\" id=\"errors\" dojoType=\"ContentPane\">" + 
				  "<h3>" + titleErrorStandard + ":</h3><a href=\"#\" onclick=\"dojo.widget.getWidgetById('dialogErrorMessages').hide();\" >" +
				  "<img src=\"/themes/default/img/estructura/toperrordialogclose.gif\" border=\"0\" /></a></div>" +
				  "<ul><li class=\"value\">" + messageErrorStandard + "</li></ul><br/>";
 
function getSelectedRowValue(table,name) {
	var row = table.getRow(table.getSelectedData());
	var key = row.getAttribute("value");			
	var theForm = document.forms[table.widgetId + "_o_" + key];						
	return theForm[name].value;						
}

function abrirDialog(layerId) {
	dojo.widget.getWidgetById(layerId).show();			
}

function nothing() {
	return false;
}

function close(dialogName) {
	var dialog = dojo.widget.byId(dialogName);
	dialog.hide();
}

function showImage(url, id) {	
	document.getElementById(id).src=url;
}

function changeImageTitle(title, id){
	document.getElementById(id).title=title;
}
				  
function processStandardResponse(id,data) {

	var index = data.indexOf("\"errors\"");	
	if (index==-1) index = data.indexOf("id=errors");
	var errorCode = "success";
	if (index != -1) {
		dojo.byId("dialogErrorMessagesContent").innerHTML = data;
		var dialogErrorMessages = dojo.widget.byId("dialogErrorMessages");				
		dialogErrorMessages.show();
		errorCode = "errors";		
	}
	
	index = data.indexOf("\"success\"");
	if (index != -1) {
		if (id!=null) {	
			showImage("/themes/default/img/agt_action_success.png",id);
		}
		errorCode = "success";
	}
	
	index = data.indexOf("\"warning\"");
	if (index != -1) {
		dojo.byId("dialogWarningMessagesContent").innerHTML = data;
		var dialogWarningMessages = dojo.widget.byId("dialogWarningMessages");
		dialogWarningMessages.show();
		errorCode = "warning";	
	}
		
	return errorCode;
}

function navigateFilteringTableFiltered(contentPaneName,formName,url,sortSize,sortIndex) {		
		
	document.forms[formName].sortSize.value = sortSize;
	document.forms[formName].sortIndex.value = sortIndex;
	
	var kw = {
		url: url,
		load: function(type, data, evt) {
			//alert(data);
			var contentPane = dojo.widget.byId(contentPaneName);
			contentPane.setContent(data);				
		},
		error: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		timeoutSeconds: 5,
		timeout: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		sync:true,
	    formNode: document.forms[formName]
	};
	
	dojo.io.bind(kw);		
}

function navigateFilteringTable(contentPaneName,url) {
			
	var contentPane = dojo.widget.getWidgetById(contentPaneName);
	if (contentPane != null) {	
		contentPane.setUrl(url);
		contentPane.refresh();
	}
	
}

function defaultAction(evt, defaultButton) {

   var KeyID = (window.event) ? window.event.keyCode : evt.keyCode;

   switch(KeyID) {
      case 13:
	      var buttonWidget = dojo.widget.byId(defaultButton);
	      buttonWidget.onClick();
      break; 
   }
}


var helpLocale= "es";
var helpUrl="intro.html";

function openHelp(locale,windowTitle, helpPage) {
			
	//var helpPage = "register.html";		
	//var helpPane = dojo.widget.byId("helpPane");
	//helpPane.style.visibility = "visible";
	//helpPane.show();
	// Open DOJO FloatingPane
	//dojo.debug("Testing DOJO FloatingPane");
	if (document.getElementById("helpPane") == null) {
		var properties = {
			hasShadow: false,
			displayMinimizeAction: false,
			displayMaximizeAction: false,
			resizable: false,
			displayCloseAction: true,
			href: "/help/" + locale + "/index.html",
			executeScripts: true,		
			title: windowTitle,
			titleHeight: "20",
			id: "helpPane"			
		};
	
		//properties.id = "testing";
		node = document.createElement(properties.id);
		node.style.width = "740px";
		node.style.height = "440px";
		node.style.left = "50%";
		node.style.top = "0px";
		node.style.margin = "0px 0px 0px -370px";
		//node.style="";
		
		helpLocale=locale;
		
		var canvas = document.getElementById("canvas");
		canvas.appendChild(node);					
		
		var fig = dojo.widget.createWidget("FloatingPane",properties,node);
		helpUrl = helpPage;
	}
	
	
		
}

function loadPage(page) {
	if (page == null) page = helpUrl;	
	var helpContentPane = dojo.widget.getWidgetById("helpContentCanvas");
	helpContentPane.setUrl("/help/" + helpLocale + "/" + page);
}

function loadHelp(page) {
	if (page == null) page = helpUrl;	
	var helpContentPane = dojo.widget.getWidgetById("helpPane");
	helpContentPane.setUrl("/help/" + helpLocale + "/" + page);
}

function submitSurvey() {
	var kw = {
		url: "surveyresult",
		load: function(type, data, evt) {
			var dialog = dojo.widget.byId("dialogSurveySended");
			dialog.show();
		},
		error: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		timeoutSeconds: 5,
		timeout: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
	    formNode: document.forms["surveysForm"]
	};			
	
	dojo.io.bind(kw);	
}

/************  Funciones de reloj ********************************/

/* Numbers < 10 should be presented with a zero in front*/
function fixNumber(number){
    var result;
    if (number < 10){
     	result = "0" + number;
    }else{ 
    	result = number;
    }
 	return result;
}

/* Calculates a time difference between client and server, to make js clock to run correctly*/
function timeDiff(year,month,day,hour,minute,second) {
	var timeDifferense;
	var serverClock = new Date(year,month,day,hour,minute,second);	
	var clientClock = new Date();
	
	timeDiff = clientClock.getTime() - serverClock.getTime() - 3000;
	runClock(timeDiff);
}

/* Show online users and clock*/
function runClock(timeDiff){
	var now = new Date();
	var newTime;
	newTime = now.getTime() - timeDiff;
	now.setTime(newTime);

    document.getElementById('time').innerHTML = fixNumber(now.getHours()) + ':' + fixNumber(now.getMinutes()) + ':' + fixNumber(now.getSeconds());
	setTimeout('runClock(timeDiff)',1000);
}

/* Calculates a time difference between client and server, to make js countdownClock to run correctly*/
function countdownDiff(actualYear,actualMonth,actualDay,actualHour,actualMinute,actualSecond,
		               finalYear,finalMonth,finalDay,finalHour,finalMinute,finalSecond) {
	var timeDifferense;
	var serverClock = new Date(actualYear,actualMonth,actualDay,actualHour,actualMinute,actualSecond);	
	var clientClock = new Date();
	
	year = finalYear;
	month = finalMonth;
	day = finalDay;
    hour = finalHour;
    minute = finalMinute;
    second = finalSecond;
	timeDiff = clientClock.getTime() - serverClock.getTime() - 3000;
	
	runCountdownClock(finalYear,finalMonth,finalDay,finalHour,finalMinute,finalSecond,timeDiff);
}

/* Show countdown clock*/
function runCountdownClock(year,month,day,hour,minute,second,timeDiff){
	var countdown = new Date(year,month,day,hour,minute,second);	
	var now = new Date();
	var newTime= Math.floor((countdown.getTime() - now.getTime() + timeDiff)/1000);	
    
	if (newTime<0) newTime = 0;
	var secs = newTime % 60;
	newTime = (newTime - secs) / 60;
	var mins = newTime % 60; 
	newTime = (newTime - mins) / 60;
	var hours = newTime % 24;
	
    document.getElementById('time').innerHTML = fixNumber(hours) + ':' + fixNumber(mins) + ':' + fixNumber(secs);
	setTimeout('runCountdownClock(year,month,day,hour,minute,second,timeDiff)',1000);
}

/************* Funciones para DirtyForm ******************************/
function registerDirtyForms() {
	for (x in dirtyForms) {
		var form = document.forms[dirtyForms[x]];
		if (form !=null){
		  if (initialFormValues[x] == null){		 
		   initialFormValues[x] = dojo.io.encodeForm(form);		   
		  } 
		} 
	}	
}

function clearDirtyFormsValues(){
    if (initialFormValues != null) {
     for (var i=0; i<initialFormValues.length; i++){
       initialFormValues[i] = null;
     }
    }
}

function calculateDirtyForm(idForm) {
	var form = document.forms[idForm];	
	initialFormValues[dirtyForms.indexOf(idForm)] = dojo.io.encodeForm(form);	
}

function checkActivateButton(formId, buttonId) {
	if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
	}

	var form = dojo.byId(formId);
 	var currentFormValue = dojo.io.encodeForm(form);
 	var initialFormValue = initialFormValues[dirtyForms.indexOf(formId)]; 	
 	var button = dojo.widget.byId(buttonId);
 	
	if (initialFormValue != currentFormValue){
	  if ((button != null) && (button.disabled)){
	   	button.setDisabled(false);
	  } 
    }else{
      if ((button != null) && (!button.disabled)) {
        button.setDisabled(true);    
      }
    }  
}

function checkActivateButtonYUI(formId, button) {
		
	if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
	}

	var form = dojo.byId(formId);	
 	var currentFormValue = dojo.io.encodeForm(form);
 	var initialFormValue = initialFormValues[dirtyForms.indexOf(formId)]; 	 	
 	 	
	if (initialFormValue != currentFormValue){
	  if ((button != null) && (button.get("disabled") == true)){
	   	button.set("disabled",false);
	  } 
    }else{
      if ((button != null) && (button.get("disabled") == false)) {
      	button.set("disabled",true);           
      }
    }  
}

   
function disableButton(formId, buttonId) {
	// var form = dojo.byId(formId); 	
 	var button = dojo.widget.byId(buttonId);
 	if ((button != null) && (!button.disabled)) {
    	button.setDisabled(true);
    }
}

function disableButtonYUI(formId, buttonId) {
	// var form = dojo.byId(formId); 	
 	// var button = dojo.widget.byId(buttonId);
 	button = new YAHOO.widget.Button(buttonId);
    if ((button != null) && (button.get("disabled") == false)) {
    	button.set("disabled",true);           
    }
}

function enableButton(formId, buttonId){
	// var form = dojo.byId(formId); 	
 	var button = dojo.widget.byId(buttonId);
 	if ((button != null) && (button.disabled)) {
    	button.setDisabled(false);
    } 	
}

function enableButtonYUI(formId, buttonId){
	// var form = dojo.byId(formId); 	
 	// var button = dojo.widget.byId(buttonId);
 	button = new YAHOO.widget.Button(buttonId);
	if ((button != null) && (button.get("disabled") == true)){
		button.set("disabled",false);
	} 	
}

function changeButtonState(buttonId) {
	var button = dojo.widget.byId(buttonId);
 	if ((button != null) && (button.disabled)) {
    	button.setDisabled(false);
    } else if ((button != null) && (!button.disabled)) {
    	button.setDisabled(true);
    }
}

function openMotorChart (pieceSpecId) {	
	//alert(pieceSpecId);
	var dialog = dojo.widget.byId("motorChartDialog");
	var url="/control/motorChart?pieceSpecId=" + pieceSpecId;
	var contentPane = dojo.widget.getWidgetById("motorChartDialog-content");	
	dialog.show();	
	contentPane.setUrl(url);
}

var TR = YAHOO.namespace("tr");  

(function() {  

    // private member variables
    var Dom = YAHOO.util.Dom;
    var Connect = YAHOO.util.Connect;  

    // private functions (methods)
    var handleSuccess = function(response) {
        var element = Dom.get(response.argument.id);
        element.innerHTML = response.responseText;        
    }  

    var handleFailure = function(response) {
        var element = Dom.get(response.argument.id);
        element.innerHTML = response.status;
    }  

    // Class constructor
    TR.AsyncLoader = function() {
        // empty constructor
    };  

    // Public methods of class
    TR.AsyncLoader.prototype = {
        load: function(divId, url) {  
            var callback = {
                success: handleSuccess,
                failure: handleFailure,
                argument: { id: divId }
            };  

            var transaction = Connect.asyncRequest(
                "GET", url, callback, null);
        },
        
        loadPost: function(divId, url, parameters) {  
            var callback = {
                success: handleSuccess,
                failure: handleFailure,
                argument: { id: divId }
            };  

            var transaction = Connect.asyncRequest("POST", url, callback, parameters);
        }
    };    

})();

function loadGlobalClassification(teamId) {
	document.forms["globalClass"].teamId.value=teamId;
	document.forms["globalClass"].action="/control/teamContact";
	document.forms["globalClass"].submit();
}

function loadManagerClassification(teamId) {
	document.forms["managerClass"].teamId.value=teamId;
	document.forms["managerClass"].action="/control/teamContact";
	document.forms["managerClass"].submit();
}

var tutorial;
var tutorialCurrentStep = 0;

function openTutorial(windowTitle,step) {				
	
	//alert("openTutorial: step["+step+"]-tutorialCurrentStep["+tutorialCurrentStep+"]");	
	if (tutorial == null) {
		var properties = {
			hasShadow: false,
			displayMinimizeAction: false,
			displayMaximizeAction: false,
			resizable: false,
			displayCloseAction: true,
			href: "navigateTutorial",
			executeScripts: true,		
			title: windowTitle,
			titleHeight: "20",
			cacheContent: false,
			refreshOnShow: true,
			id: "tutorialPane"			
		};
	
		
		node = document.createElement(properties.id);
		node.style.width = "300px";
		node.style.height = "200px";
		node.style.left = "50%";
		node.style.top = "100px";
		node.style.margin = "0px 0px 0px -150px";
		
		
		var canvas = document.getElementById("canvas");
		canvas.appendChild(node);					
		
		tutorial = dojo.widget.createWidget("FloatingPane",properties,node);
		dojo.event.connect(tutorial, "closeWindow", "closeTutorial"); 
		tutorialCurrentStep = step;
	}else {
		//Refrescamos el tutoralPane
		//alert("Refrescando");
	}		
					
}

function closeTutorial() {
	
	var params = new Array();
	
	var kw = {
			url: "closeTutorial",
			load: function(type, data, evt) {			
								
			},
			error: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			timeoutSeconds: 5,
			timeout: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			content: params
		};
		
		dojo.io.bind(kw);
		
		
		tutorial = null;
}

function navigateTutorial(step,direction,href) {	
	
	//alert("navigateTutorial: step["+step+"]-tutorialCurrentStep["+tutorialCurrentStep+"]");								
	var params = new Array();
	params['step'] = step;
	if (direction == null) direction ="UP";
	params['direction']= direction;
	
    if (tutorial != null) {
		var kw = {
			url: "setTutorialStep",
			load: function(type, data, evt) {						
				if (href!=undefined) {			    			    
					tutorial.hide();
					window.location.href = href;
				}else {
					//Mostrando el siguiente tip
					if ((direction == "UP" && (step - tutorialCurrentStep == 1 )) || (direction == "DOWN" && (step - tutorialCurrentStep == -1))){ //Controlamos la navegacion sino el tutorial avanza/retrocede sin quererlo
						var tutorialPane = dojo.widget.getWidgetById("tutorialPane");							
						tutorialPane.setUrl("navigateTutorial?step=" + step);					
					}				
				}
				tutorialCurrentStep = step;					
			},
			error: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			timeoutSeconds: 5,
			timeout: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},	
			content: params
		};
		
		dojo.io.bind(kw);        
    }
}

function setTutorialStep(step,href) {
		
	//alert("setTutorialStep: step["+step+"]-tutorialCurrentStep["+tutorialCurrentStep+"]");						
	var params = new Array();
	params['step'] = step;
	params['direction'] = "UP";
	
	if (tutorial != null) {
		var kw = {
			url: "setTutorialStep",
			load: function(type, data, evt) {						
				//alert(data);
				if (href!=undefined) window.location.href = href;		
				tutorialCurrentStep = step;						
			},
			error: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			timeoutSeconds: 5,
			timeout: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			content: params
		};
		
		dojo.io.bind(kw);
	}else {
		window.location.href = href;
	}
	
}

function finishTutorial() {
	closeTutorial();
	var tutorialPane = dojo.widget.getWidgetById("tutorialPane");
	tutorialPane.hide();
}

function openBuyItemDialog(productId, callback, productStoreId) {
	abrirDialog("buyItemDialog");
	
	var contentPane = dojo.widget.getWidgetById("buyItemDialog-content");
	url = "confirmItemBuy?productId=" + productId + "&callback=" + callback;
	if (productStoreId != null) url = url + "&productStoreId=" + productStoreId;
	contentPane.setUrl(url);
	
}

function calcRemaingTRC() {
	
	var params = new Array();
	
	var kw = {	
		url: "calcRemainingTRC",
		load: function(type, data, evt){ 				
			dojo.byId("userTRC").innerHTML = data;
			abrirDialog("buyItemMessageDialog");
		},
		error: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		timeoutSeconds: 5,
		timeout: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
	    content: params
	};
	    
	dojo.io.bind(kw);	
}

function buyItem(buyTarget, callback) {		
		
	disableButton('null','buyItemButton');
	var kw = {
		url: buyTarget,
		load: function(type, data, evt){
													 				
			var errorCode = processStandardResponse(null,data);
			if (errorCode == "success") {			
				
				close('buyItemDialog');				
				if (callback!="undefined") {					
					eval(callback);
				}else {					
					calcRemaingTRC();
				}												

			}else if (errorCode == "errors") {
				close('buyItemDialog');
			}
		},
		error: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		timeoutSeconds: 20,
		timeout: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
	    formNode: document.forms["BuyItemForm"]
	};			
	
	dojo.io.bind(kw);
		
}

function openSendCommunicationDialog(partyIdTo) {
	
	var sendCommunicationDialog = dojo.widget.getWidgetById("sendCommunication");
	if (partyIdTo) {
		sendCommunicationDialog.setUrl("sendCommunicationForm?partyIdTo=" + partyIdTo);
	}else {
		sendCommunicationDialog.setUrl("sendCommunicationForm");
	}
	sendCommunicationDialog.refresh();
	
	abrirDialog('dialogSendCommunication');
	
}

function sendCommunication() {

	var kw = {
		url: "sendCommunication",
		load: function(type, data, evt){ 	
			
			var dialog = dojo.widget.byId("dialogSendCommunication");
			dialog.hide();
			processStandardResponse(null,data);				
													
		},
		error: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		timeoutSeconds: 5,
		timeout: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
	    formNode: document.forms["sendCommunicationForm"]
	};			
	
	dojo.io.bind(kw);
}

function loadEventDriverLaps(tabPane, teamId, eventId, carId) {
	
	var tabContainer = dojo.widget.getWidgetById("mainTabContainer");	

	var url = "/control/viewEventDriverLaps?eventId=" + eventId + "&carId=" + carId + "&teamId=" + teamId;	
	var contentPane = dojo.widget.getWidgetById(tabPane);
	contentPane.setUrl(url);
	UnTip();
	
}

function loadSessionResults(eventTypeId, raceId) {
	
	var tabContainer = dojo.widget.getWidgetById("mainTabContainer");
	if (eventTypeId == "QUALIFY") {
		var url = "/control/qualifyResults?raceId=" + raceId;	
		var contentPane = dojo.widget.getWidgetById("qualifyTabPane");
	}else if (eventTypeId == "RACE") {
		var url = "/control/raceResults?raceId=" + raceId;	
		var contentPane = dojo.widget.getWidgetById("raceTabPane");
	}else {	
		var url = "/control/freeTrainingsResults?raceId=" + raceId + "&eventTypeId=" + eventTypeId;	
		var contentPane = dojo.widget.getWidgetById("freeTrainingsTabPane");
	}
	contentPane.setUrl(url);
		
}

function showLapIncidents(eventId,carId,lapNumber) {
	
	TagToTip('dammageTooltip');
	var url = "/control/viewEventDriverLapIncidents?eventId=" + eventId + "&carId=" + carId + "&lapNumber=" + lapNumber;	
	var contentPane = dojo.widget.getWidgetById("dammageTooltip");
	contentPane.setUrl(url);
}

function showBlockRace(secondIndex, raceId) {
if (secondIndex != null) {		
		secondIndexGlobal = secondIndex;
	}
	
	if (secondIndexGlobal == null) {
		secondIndexGlobal = "0";
	}
	
	//alert('cambiando');
	var tabContainer = dojo.widget.getWidgetById("mainTabContainer");	
	if (tabContainer.selectedChildWidget.widgetId == "raceTabPane") {	
		var url = "/control/raceResults?raceId=" + raceId + "&secondIndex=" + secondIndexGlobal;	
		var contentPane = dojo.widget.getWidgetById("raceTabPane");
		contentPane.setUrl(url);			
	}
}

function showBlock(secondIndex, raceId) {
if (secondIndex != null) {		
		secondIndexGlobal = secondIndex;
	}
	
	if (secondIndexGlobal == null) {
		secondIndexGlobal = "0";
	}
	
	//alert('cambiando');
	var tabContainer = dojo.widget.getWidgetById("mainTabContainer");	
	if (tabContainer.selectedChildWidget.widgetId == "qualifyTabPane") {	
		var url = "/control/qualifyResults?raceId=" + raceId + "&secondIndex=" + secondIndexGlobal;	
		var contentPane = dojo.widget.getWidgetById("qualifyTabPane");
		contentPane.setUrl(url);			
	}
}


function loadResults() {
	
	var tabContainer = dojo.widget.getWidgetById("mainTabContainer");	

	var url = "/control/raceResults?seasonId=" + document.raceForm.seasonId.value + "&weekEndEventId=" + document.raceForm.weekEndEventId.value + "&leagueId=" + document.searchLeagueForm.searchLeagueId.value + "&secondIndex=1&eventTypeId=RACE";	
	var contentPane = dojo.widget.getWidgetById("raceTabPane");
	contentPane.setUrl(url);			
	
	var url = "/control/qualifyResults?seasonId=" + document.raceForm.seasonId.value + "&weekEndEventId=" + document.raceForm.weekEndEventId.value + "&leagueId=" + document.searchLeagueForm.searchLeagueId.value + "&secondIndex=1&eventTypeId=QUALIFY";	
	var contentPane = dojo.widget.getWidgetById("qualifyTabPane");
	contentPane.setUrl(url);			

	var url = "/control/freeTrainingsResults?seasonId=" + document.raceForm.seasonId.value + "&weekEndEventId=" + document.raceForm.weekEndEventId.value + "&leagueId=" + document.searchLeagueForm.searchLeagueId.value + "&sortIndex=0&eventTypeId=FREE_TRAINING_T1";			
	var contentPane = dojo.widget.getWidgetById("freeTrainingsTabPane");
	contentPane.setUrl(url);						
	
}

function buyExtraFreeTraining() {
	var url = "currentRaceTrainingList"	
	var contentPane = dojo.widget.getWidgetById("currentRaceTrainingListPane");
	contentPane.setUrl(url);

}

function checkAndOpenBuyItemDialog(raceId) {
	
	var kw = {
		url: "canAddExtraFreeTraining",
		load: function(type, data, evt) {						
			var returnCode = processStandardResponse(null,data);
			if (returnCode=="success") {					
				openBuyItemDialog('TREFT','buyExtraFreeTraining()','TRSTORE');
			}
		},
		error: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},
		timeoutSeconds: 30,
		timeout: function(type, data, evt){
			processStandardResponse(null,errorStandard);
		},	
		content: params
	};

	dojo.io.bind(kw);
	
}

function openBuyFtDialog(productId, callback, productStoreId) {
	abrirDialog("buyItemDialog");
	
	var contentPane = dojo.widget.getWidgetById("buyItemDialog-content");
	url = "confirmFtBuy?productId=" + productId + "&callback=" + callback;
	if (productStoreId != null) url = url + "&productStoreId=" + productStoreId;
	contentPane.setUrl(url);
	
}

function openStartEventDialog(eventId) {
	
	abrirDialog("startEventDialog");
	var contentPane = dojo.widget.getWidgetById("startEventDialogContent");
	var url = "viewStartEvent?eventId=" +  eventId;	
	contentPane.setUrl(url);
}

function startEvent(eventId) {		
	disableButton(null,'startEventButton');
	var params = new Array();
	params['eventId'] = eventId;
	var kw = {
			url: "startEvent",
			load: function(type, data, evt) {						
				var returnCode = processStandardResponse(null,data);
				if (returnCode=="errors") {							
					dojo.widget.getWidgetById("startEventDialog").hide();
				}else if (returnCode=="success") {					
					var contentPane = dojo.widget.getWidgetById("startEventDialogContent");
					var url = "eventStarting";
					contentPane.setUrl(url);
					//dojo.byId("startEventDialogContent").innerHTML = data;
				}
			},
			error: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			timeoutSeconds: 30,
			timeout: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},	
			content: params
	};

	dojo.io.bind(kw);	
}

function gotoMassMedia() {
	
	dojo.widget.getWidgetById("startEventDialog").hide();
	window.location.href="liveTimingViewer";
	
}

function viewRebroadcast(formId, raceId, eventId){
	
	document.forms[formId].eventId.value=eventId;
	document.forms[formId].raceId.value=raceId;
	
	var kw = {
			url: "canViewRebroadcast",
			load: function(type, data, evt){
		
				var index = data.indexOf("\"warning\"");
				
				if (index != -1) {
					//abrimos el dialogo en cuestion
					abrirDialog("warningRebroadcastAccessDialog");
				}else {
					var returnCode = processStandardResponse(null,data);
					if (returnCode=="success") {	
						document.forms[formId].action="rebroadcast";
						document.forms[formId].submit();
					}
				}
													 				
			},
			error: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
			timeoutSeconds: 30,
			timeout: function(type, data, evt){
				processStandardResponse(null,errorStandard);
			},
		    formNode: document.forms[formId]
		};
	
	dojo.io.bind(kw);
}