var Fse; if( ! Fse ) { Fse = {}; }
if( ! Fse.WRK ) { Fse.WRK = {}; }

Fse.WRK.getHandlerURL = function() {
	return document.getElementById( "wrkHandlerLink" ).getAttribute( "href" );
};


Fse.WRK.editTask = function( iTaskId, iTaskTk ) {


	var sHandlerURL = Fse.WRK.getHandlerURL();

	/*
	var oDialog = document.getElementById( "taskDialog" );
	var sHandlerURL = oDialog.getAttribute( "fse:handlerURL" );
	*/
	
	var oOptions = {
		src : sHandlerURL + "?view=taskDialog&mode=edit&taskId=" + iTaskId + "&taskTk=" + iTaskTk,
		title : "Edit Task", width : "550px", 
		onSuccess : Fse.WRK.taskSaved,
		beforeRenderEvent : Fse.WRK.initTaskDialog
	};
	
	Fse.DialogManager.show( "taskDialog$", oOptions );
	
};

Fse.WRK.initTaskDialog = function() {
	var oTabElement = document.getElementById( "taskDialogTabSet" );
	if( oTabElement ) {
		var tabView = new YAHOO.widget.TabView( oTabElement );
	}
};

Fse.WRK.reloadTaskList = function( sSocketId ) {

	var sHandlerURL = Fse.WRK.getHandlerURL();
	
	var oSocket = document.getElementById( sSocketId );
	if( oSocket ) {
		
		var sQueryString = oSocket.getAttribute( "fse:queryString" );
		
		var oView = document.getElementById( "taskDisposition" );
		
		var sURL = sHandlerURL + "?" + sQueryString.replace( /^\?/, "" );;
		sURL = Fse.Util.updateURL( sURL, { disposition : oView.value } );
		
		Fse.Ajax.updateContent( sURL, sSocketId );
	}	
	
	
};

Fse.WRK.reloadTaskPortlet = function() {

	var sHandlerURL = Fse.WRK.getHandlerURL();
	
	var sSocketId = "task-portlet-view-socket";
	var oSocket = document.getElementById( sSocketId );
	if( oSocket ) {
		// var sHandlerURL = oSocket.getAttribute( "fse:handlerURL" );
		
		var oView = document.getElementById( "taskDisposition" );
		
		var sParams = oSocket.getAttribute( "fse:parameters" );
		if( sParams ) {
			Fse.Ajax.updateContent( sHandlerURL + "?" + sParams + "&disposition=" + encodeURIComponent( oView.value ), sSocketId );
		} else {
			Fse.Ajax.updateContent( sHandlerURL + "?view=taskList&disposition=" + encodeURIComponent( oView.value ), sSocketId );
		}
	}	
	
};

Fse.WRK.deleteTaskChanged = function( oCheckbox ) {
	if( oCheckbox.checked ) {
		alert( "This task WILL BE DELETED when the 'Submit' button is pressed!" );
	} else {
		alert( "This task will NOT be deleted when the 'Submit' button is pressed." );
	}
};

Fse.WRK.addTask = function( sSubjectId, sSubjectType ) {

	var sHandlerURL = Fse.WRK.getHandlerURL();
	
	// var oDialog = document.getElementById( "taskDialog" );
	// var sHandlerURL = oDialog.getAttribute( "fse:handlerURL" );

	var sQueryString = "?view=taskDialog&mode=add";
	if( sSubjectId ) {
		sQueryString = sQueryString + "&subjectId=" + sSubjectId + "&subjectType=" + sSubjectType;
	}

	var oOptions = {
		src : sHandlerURL + sQueryString,
		title : "New Task", width : "550px", 
		onSuccess : Fse.WRK.taskSaved,
		beforeRenderEvent : Fse.WRK.initTaskDialog
	};
	Fse.DialogManager.show( "taskDialog$", oOptions );
	
};

Fse.WRK.taskSaved = function() {
	Fse.WRK.reloadTaskPortlet();
};


Fse.WRK._partnerNameSearchTimeout = null;

Fse.WRK.triggerPartnerNameSearch = function() {
	
	if( Fse.WRK._partnerNameSearchTimeout ) {
		clearTimeout( Fse.WRK._partnerNameSearchTimeout );
		Fse.WRK._partnerNameSearchTimeout = null;
	}
	
	Fse.WRK._partnerNameSearchTimeout = setTimeout( Fse.WRK.findPartners, 400 );
};


Fse.WRK.findPartners = function() {

	var sHandlerURL = Fse.WRK.getHandlerURL();

	var sFind = document.getElementById( "partnerFind" ).value;
	var sPartnerType = document.getElementById( "partnerType" ).value;

	// var oDialog = document.getElementById( "taskDialog" );
	// var sHandlerURL = oDialog.getAttribute( "fse:handlerURL" );
	
	var sURL = sHandlerURL + "?view=partnerSelect&partnerType=" + sPartnerType
	         + "&partnerName=" + encodeURIComponent( sFind );

	         
	Fse.Ajax.updateContent( sURL, "partnerSelectSocket" );
	
};




Fse.WRK.taskPartnerTypeChanged = function( oSelect ) {
	
	var oPartnerFind = document.getElementById( "partnerFind" );
	var oPartnerIdSelect = document.getElementById( "partnerSelect" );
	var oPartnerId = document.getElementById( "partnerId" );
	
	if( oSelect.value != "?" ) {	
		oPartnerFind.value = "";
		oPartnerFind.disabled = false;	
		oPartnerIdSelect.length = 0;
		oPartnerIdSelect.disabled = false;
		oPartnerFind.focus();
		oPartnerId.value = 0;
	} else {
		oPartnerFind.value = "";
		oPartnerFind.disabled = true;
		oPartnerIdSelect.length = 0;
		oPartnerIdSelect.disabled = true;
		oPartnerId.value = 0;
	}
	
	Fse.WRK.loadPartnerSummary();
	Fse.WRK.loadPartnerContactSelect();
	
	
};


Fse.WRK.taskPartnerSelectChanged = function( oSelect ) {
	var oPartnerId = document.getElementById( "partnerId" );
	oPartnerId.value = oSelect.value;
	Fse.WRK.loadPartnerSummary();
	Fse.WRK.loadPartnerContactSelect();
};

Fse.WRK.taskDialogPostValidate = function( oForm ) {
	var bValid = true;
	var oPartnerType = document.getElementById( "partnerType" );
	if( oPartnerType && oPartnerType.value != '?' ) {
		var oPartnerId = document.getElementById( "partnerId" );
		if( oPartnerId.value == 0 ) {
			var bValid = false;
			alert( "You must select a customer." );
		}
	}
	
	return bValid;
	
};


Fse.WRK.loadPartnerSummary = function() {

	var sPartnerId = document.getElementById( "partnerSelect" ).value;
	var sPartnerType = document.getElementById( "partnerType" ).value;

	var sHandlerURL = Fse.WRK.getHandlerURL();

	// var oDialog = document.getElementById( "taskDialog" );
	// var sHandlerURL = oDialog.getAttribute( "fse:handlerURL" );
	
	var sURL = sHandlerURL + "?view=partnerSummary&partnerType=" + sPartnerType
	         + "&partnerId=" + sPartnerId;
	         
	Fse.Ajax.updateContent( sURL, "partnerSummarySocket" );
	
};

Fse.WRK.loadPartnerContactSelect = function() {

	var sHandlerURL = Fse.WRK.getHandlerURL();

	var sPartnerId = document.getElementById( "partnerSelect" ).value;
	var sPartnerType = document.getElementById( "partnerType" ).value;

	// var oDialog = document.getElementById( "taskDialog" );
	// var sHandlerURL = oDialog.getAttribute( "fse:handlerURL" );
	
	var sURL = sHandlerURL + "?view=partnerContactSelect&partnerType=" + sPartnerType
	         + "&partnerId=" + sPartnerId;
	         
	Fse.Ajax.updateContent( sURL, "partnerContactSocket" );
	
};

