
/*
FILE CONCAT ADD FILE
PATH: /ft/resources/client/modules/glossary/FailedSearches.js
*/
var FailedSearches_class = function() {}

FailedSearches_class.prototype.init = function(){
	Events.add(Element.parseSelector("div.deleteTerm", Element.get("termsListTable")), "click", this.deleteTerm, this);
}

FailedSearches_class.prototype.deleteTerm = function(e, el){
	e.cancel();

	var deleteConfirm = confirm("Are you sure you want to delete this term?");

	if (deleteConfirm ){
		var cb = new ContentBuffer();
		
		var conn = cb.load({
			debug: true,
			url: "/ft/resources/buffer/glossaryDeleteTerm.asp",
			method: "post",
			contentType: "text/javascript",
			preventEval: false,
			data: {
				term: el.getAttribute("term")
			},
			onload: function() {
				alert("Term has been deleted.");
				location.href = location.href;
			}
		});

	}else {
		alert("Term was not deleted.")
	}
}
/*
FILE CONCAT ADD FILE
PATH: /ft/resources/client/modules/tearsheets/directorDealings/directorsAndDealings.js
*/
var DirectorsAndDealings = function() {
}

DirectorsAndDealings.prototype.MODULE_BUFFER_URL = SiteRules.isFinancialTimes() ? "/ft/resources/buffer/directorDealings/getDirectorDealingsBuffer.asp" : "/investorschronicle/resources/buffer/tearsheets/DirectorDealings/getDirectorDealingsBuffer.asp";
DirectorsAndDealings.prototype.SORT_BUFFER_URL = SiteRules.isFinancialTimes() ? "/ft/resources/buffer/directorDealings/getCompanyTransactionsBuffer.asp" : "/investorschronicle/resources/buffer/tearsheets/DirectorDealings/getCompanyTransactionsBuffer.asp";
DirectorsAndDealings.prototype.DEALS_BY_DIRECTOR_BUFFER_URL = SiteRules.isFinancialTimes() ? "/ft/resources/buffer/directorDealings/getDealsByDirectorBuffer.asp" : "/investorschronicle/resources/buffer/tearsheets/DirectorDealings/getDealsByDirectorBuffer.asp";

DirectorsAndDealings.prototype.init = function() {
    var self = this;
    var nameLinks = $ws(".directorsAndOfficersModule a.name");
    var firstTarget = nameLinks[0];
    var firstChild = $ws(".child-0");
    
    this.initPaging();
    this.openDesc(firstChild);

    $ws(nameLinks).live("click", function() {
        var targetEl = $ws(this);
        var childEl = $ws(".child-" + targetEl.attr("order"))

        if ($ws(childEl).hasClass("hidden")) {
            self.closeOpenDesc();
            self.openDesc(childEl);
        } else {
            self.closeDesc(childEl);
        }

    });

    $ws(".directorsAndOfficersModule .viewAll").live("click", function() {
        self.showAllToggle($ws(this));
    });

    $ws(".DirectorDealingsModule").bind('change', function(e) {
        if (e.target.tagName == "SELECT") {
            if ($ws(e.target).parents(".allTransactionsContainer").size()) {
                self.initSortBuffer();
            } else if ($ws(e.target).parents(".dealsByDirectorContainer").size()) {
                self.initDealsByDirector(e.target);
            }
        }
    });

    $ws(".DirectorDealingsModule .directorsTableHolder thead th.sortable").live('click', function() {
        self.initSortBuffer($ws(this));
    });

    $ws(".DirectorDealingsModule .dealsByDirectorContainer .dealsTableHolder tr.hoverable").live('mouseover', function() {
        self.initChartHover($ws(this));
    });
}

DirectorsAndDealings.prototype.initPaging = function() {
    this.paging = new Paging();
    this.paging.setContentContainer($ws("#wsod .directorsTableHolder")[0]);
    this.paging.init(true);
    var oScreenObj = this.getScreenerCriteria();

    var s = Common.getSerializer();

    this.paging.setBufferLoadFunction({
        contentType: 'text/javascript'
            , context: this
            , url: this.SORT_BUFFER_URL
            , preventEval: true
            , method: 'post'
            , data: { screenobj: s.serialize(oScreenObj) }
            , onload: this.drawPagingResults
    });
}

DirectorsAndDealings.prototype.drawPagingResults = function(cb) {
    var result = cb.getResult();

    $ws("#wsod .directorsTableHolder").html(result);

    this.initPaging();
}

DirectorsAndDealings.prototype.initChartHover = function(target) {
    $ws(".DirectorDealingsModule .dealsByDirectorContainer .dealsTableHolder tr.hoverable.hover").removeClass('hover');
    $ws(".dealsByDirectorContainer .chartHolder .overlay").addClass('hidden');

    var rowIndex = $ws(target)[0].rowIndex;
    var currLine = $ws(".dealsByDirectorContainer .chartHolder .line" + rowIndex);

    target.addClass('hover');
    currLine.removeClass('hidden');
}

DirectorsAndDealings.prototype.showAllToggle = function(target) {
    $ws(".directorsAndOfficersModule tr.parent").removeClass("wsodHidden");
    $ws(target).remove();
}

DirectorsAndDealings.prototype.closeOpenDesc = function() {
    var childEl = $ws('tr.show');

    this.closeDesc(childEl);
};

DirectorsAndDealings.prototype.openDesc = function(childEl) {	
	$ws(childEl).removeClass('hidden');
	var descHolderDiv = $ws(childEl).find("div.closed");
	
	$ws(descHolderDiv).stop().animate({
		height: $ws(descHolderDiv).find("div.description").height(),
		opacity: "1"
	}, "fast", function(){
		$ws(this).removeClass('closed')
		$ws(this).addClass('open')
		
		$ws(childEl).addClass('show');
	})
	
}

DirectorsAndDealings.prototype.closeDesc = function(childEl) {	
	$ws(childEl).removeClass('show');
	var descHolderDiv = $ws(childEl).find("div.open");
	
	$ws(descHolderDiv).stop().animate({
		height: "0px",
		opacity: "0"
	}, "fast", function(){
		$ws(this).removeClass('open')
		$ws(this).addClass('closed')
		
		$ws(childEl).addClass('hidden');
	})

}

DirectorsAndDealings.prototype.initModuleBuffer = function(target) {
    var self = this;
    var wsodIssue = $ws(target).attr("wsodIssue");
    var type = $ws(target).attr("type");
    
    this.loadingOverlay = new LoadingOverlay($ws(".DirectorDealingsModule .content")[0]);
    this.loadingOverlay.showLoading();

    $ws.ajax({
        "url": self.MODULE_BUFFER_URL
        ,"data": {
            "type": type,
            "wsodIssue": wsodIssue
        }
        ,"success": self.drawResults
        ,"context": self
    })

    $ws(".DirectorDealingsModule a.dealingsLink").removeClass("selected");

    if (type == "dealsByDirector") {
        $ws(".DirectorDealingsModule a[type='dealsByDirector']").addClass("selected");
    } else if (type == "allTransactions") {
        $ws(".DirectorDealingsModule a[type='allTransactions']").addClass("selected");    
    }
}

DirectorsAndDealings.prototype.drawResults = function(data) {
    var data = data || {};

    $ws(".DirectorDealingsModule .content").html(data);
    this.initPaging();
    this.loadingOverlay.hideLoading();
}

DirectorsAndDealings.prototype.initSortBuffer = function(sortEl) {
    var self = this;
    var s = Common.getSerializer();
    var oScreenObj = this.getScreenerCriteria();
    var sortEl = sortEl || null;
    
    this.loadingOverlay = new LoadingOverlay($ws(".DirectorDealingsModule .content")[0]);
    this.loadingOverlay.showLoading();

    if (sortEl) {
        var sType = $ws(sortEl).attr("type");
        var sDirection = $ws(sortEl).attr("direction");

        if (sDirection == "D") {
            sDirection = "A";
        } else if (sDirection == "A") {
            sDirection = "D";
        }

        oScreenObj.oSort = {
            "sType": sType,
            "sDirection": sDirection
        };
    }

    $ws.ajax({
        "url": self.SORT_BUFFER_URL
        , "data": { screenObj: s.serialize(oScreenObj) }
        , "success": self.drawTransactions
        , "context": self
    })

}

DirectorsAndDealings.prototype.initDealsByDirector = function(target) {
    var self = this;
    var s = Common.getSerializer();
    var dealsByDirectorObj = this.getDealsByDirectorCriteria();
    var officerID = $ws(target).hasClass("officer") ? $ws(target).val() : "";
    var bReset = $ws(target).hasClass("officer") ? "false" : "true";

    this.loadingOverlay = new LoadingOverlay($ws(".DirectorDealingsModule .content")[0]);
    this.loadingOverlay.showLoading();

    $ws.ajax({
        "url": self.DEALS_BY_DIRECTOR_BUFFER_URL
        , "data": {
            "type": dealsByDirectorObj.type,
            "officer": officerID,
            "name": dealsByDirectorObj.name,
            "wsodIssue": $ws(target).attr("wsodIssue"),
            "bReset": bReset
        }
        , "success": self.drawDealsByDirector
        , "context": self
    })

}

DirectorsAndDealings.prototype.drawDealsByDirector = function(data) {
    var data = data || {};

    $ws(".DirectorDealingsModule .dealsByDirectorContainer .contentHolder").html(data);
    
    this.initPaging();
    this.loadingOverlay.hideLoading();
}

DirectorsAndDealings.prototype.drawTransactions = function(data) {
    var data = data || {};

    $ws(".DirectorDealingsModule .directorsTableHolder").html(data);
    
    this.initPaging();
    this.loadingOverlay.hideLoading();
}

DirectorsAndDealings.prototype.getDealsByDirectorCriteria = function() {    
    var dealsByDirectorObj = {
        "type": $ws("select.type").val(),
        "name": $ws("select.officer option:selected").text()
    };

    return dealsByDirectorObj;
}

DirectorsAndDealings.prototype.getScreenerCriteria = function() {
    var sType = $ws(".DirectorDealingsModule table th.selected").attr("type");
    var sDirection = $ws(".DirectorDealingsModule table th.selected").attr("direction");

    var oScreenObj = {
        "timePeriod": $ws("select.timePeriod").val(),
        "jobTitle": $ws("select.jobTitle").val(),
        "wsodIssue": $ws(".DirectorDealingsModule .allTransactionsContainer").attr("wsodIssue"),
        "oSort": {
            "sType": sType,
            "sDirection": sDirection
        }
    };

    return oScreenObj;
}