﻿function doSearch(searchQuery) {
    window.location = baseUrl + "slides-list.aspx?search=" + encodeURIComponent(searchQuery);
}   

function GetFCKContentPlainText(fckEditorID, plainTextFieldID, divPlainTextID)
{
	var editor = FCKeditorAPI.GetInstance(fckEditorID) ;
		
	$('#' + divPlainTextID).html(editor.GetXHTML(false));	
	$('#' + plainTextFieldID).val($('#' + divPlainTextID).text());	
	return true;
}

function EnableValidatorById(validatorId, enable) {
    var validator = $('#' + validatorId);

    validator.get(0).enabled = enable;

    var asterix = $('#' + validatorId + '_asterix');

    if (enable) { asterix.show(); }
    else { asterix.hide(); }
}

function ShowINAMap(url) {
	//resize accourding the window size
	var fancyBoxWidth = $(window).width() - 90;
	var fancyBoxHeight = $(window).height() - 90;
	
	if (fancyBoxWidth<700) { fancyBoxWidth = 700; }
	if (fancyBoxHeight<500) { fancyBoxHeight = 500; }
	
	if ($.browser.msie) {
                fancyBoxWidth += 30;
                fancyBoxHeight += 30;
            }
		
	$("#aShowINAMap").fancybox({                                
                                'frameWidth': fancyBoxWidth,
                                'frameHeight': fancyBoxHeight
                            });                                    
    	
	//load the xbap url and show the fancyBox
    $('#iframeINAMap').attr("src", url);
    //$('#iframeINAMap').width(fancyBoxWidth - 10);
    $('#iframeINAMap').height(fancyBoxHeight - 0);
	$("#aShowINAMap").click();
	
	//reposition the box because IE does not display it centered
	$.fn.fancybox.scrollBox();
}

function ShowFlashPopup(url, width, height, title) {
    
    flashembed("divFlashPopup",
                        {
                            src: url,
                            width: width+1 + 'px',
                            height: height + 'px',
                            wmode: 'opaque',
                            bgcolor: '#ffffff'
                        }
                    );

    $("#aShowFlashPopup").attr('title', title);
        
    $("#aShowFlashPopup").fancybox({
                            'frameWidth': width,
                            'frameHeight': height, 
                            'centerOnScroll': true,
                            'hideOnContentClick': false
                        });
                        
    $("#aShowFlashPopup").click();
    
    //reposition the box because IE does not display it centered
    $.fn.fancybox.scrollBox();
}

function InitFlashPopup(url, width, height, descriptionHtml) {

    if ($.fn.fancybox.executingChangeItem != true) { return; }

    flashembed("divFlashMovie",
                        {
                            src: url,
                            width: width + 1 + 'px',
                            height: height + 'px',
                            wmode: 'opaque',
                            bgcolor: '#ffffff'
                        }
                    );

    var frameWidth = width;
    if (descriptionHtml.length > 0) {
        $("#divFlashDescription").css("width", "230px");
        $("#divFlashDescription").css("padding-left", "10px");
        $("#divFlashDescription").html(descriptionHtml);
        frameWidth = frameWidth + 240;
    }

    if ($.fn.fancybox.getOpts() && $.fn.fancybox.getOpts().frameWidth) {
        $.fn.fancybox.getOpts().frameWidth = frameWidth;
        $.fn.fancybox.getOpts().frameHeight = height;
    } else {
        $.fn.fancybox.defaults.frameWidth = frameWidth;
        $.fn.fancybox.defaults.frameHeight = height;
    }
}

function ShowEmbedHtmlPopup(sender, embed_html, width, height, descriptionHtml) {

    if ($.fn.fancybox.executingChangeItem != true) { return; }

    $("#divEmbedHtml").html(embed_html);
    //$("#divEmbedHtmlDescription").html(descriptionHtml);

    if ($.fn.fancybox.getOpts() && $.fn.fancybox.getOpts().frameWidth) {
        $.fn.fancybox.getOpts().frameWidth = width;
        $.fn.fancybox.getOpts().frameHeight = height;
    } else {
        $.fn.fancybox.defaults.frameWidth = width;
        $.fn.fancybox.defaults.frameHeight = height;
    }

    try {
        var opts = $(sender).fancybox.getOpts();

        opts.callbackOnClose = function() {
            $("#divEmbedHtml").html('');
            $("#fancy_div").html('');
        }
        if (height > $(window).height() - 90) { opts.centerOnScroll = false; }
    }
    catch (err) { }

    $.fn.fancybox.scrollBox();
}

function InitGoogleMotionChartPopup(dataUrl, width, height, descriptionHtml) {

    if ($.fn.fancybox.executingChangeItem != true) { return; }

    $('#btnSaveState').hide();
    $('img.gmc-product-logo').hide();
    $('td.td-copyright').hide();

    $("#divMotionChartDescription").html(descriptionHtml);

    $("#divMotionChartDescription").parent().show();
    var descriptionTDWidth = 240;

    if (descriptionHtml == '') {
        $("#divMotionChartDescription").parent().hide();
        descriptionTDWidth = 0;
    }

    //To make it work in IE we have to first show the fancybox popup and then load the chart in function LoadGoogleMotionChartData
    $('#divMotionChart').html("Loading chart data. Please wait ...");

    //set multimediaId to be used later in save state
    multimediaId = dataUrl.substring(dataUrl.lastIndexOf("/") + 1, dataUrl.lastIndexOf("."));

    //Increase height beacuse of the product logo
    var frameHeight = height + 30;

    //If the client is H&K and the product is EP
//    if (clientId == 1 && businessActivityTheme == 'yellow') {
        frameHeight = frameHeight + 24;
//    }

    if ($.fn.fancybox.getOpts() && $.fn.fancybox.getOpts().frameWidth) {
        $.fn.fancybox.getOpts().frameWidth = width + descriptionTDWidth;
        $.fn.fancybox.getOpts().frameHeight = frameHeight;
        $.fn.fancybox.getOpts().callbackOnShow = function() { LoadGoogleMotionChartData(dataUrl, width, height); }
    } else {
        $.fn.fancybox.defaults.frameWidth = width + descriptionTDWidth;
        $.fn.fancybox.defaults.frameHeight = frameHeight;
        $.fn.fancybox.defaults.callbackOnShow = function() { LoadGoogleMotionChartData(dataUrl, width, height); }
    }
}

function LoadGoogleMotionChartData(dataUrl, width, height) {

    if ($.fn.fancybox.getOpts() && $.fn.fancybox.getOpts().frameWidth) {
        $.fn.fancybox.getOpts().callbackOnShow = null;
    } else {
        $.fn.fancybox.defaults.callbackOnShow = null;
    }

    //To make it work in IE we use this little hack. We add a new div divTmpMotionChart that will be used to draw the chart in it
    $('#fancy_div .motion-chart').html('<div id="divTmpMotionChart">Loading chart data. Please wait ...</div>')


    $.ajax({
        url: dataUrl,
        type: 'GET',
        dataType: 'xml',
        cache: false,
        error: function() {
            $('#fancy_div .motion-chart').html('An error occured while retrieving data');
        },
        success: function(xml) {
            var data = new google.visualization.DataTable();

            //parse the response
            var cols = $(xml).find('ColumnDefinitions');

            $(cols).find('ColumnDefinition').each(function(index) {
                var columnDataType = $(this).attr("Type");

                switch (columnDataType) {
                    case 'System.DateTime':
                        columnDataType = 'date';
                        break;

                    case 'System.Decimal':
                    case 'System.Int32':
                        columnDataType = 'number';
                        break;

                    default:
                        columnDataType = 'string';
                        break;
                }

                data.addColumn(columnDataType, $(this).attr("Name"));
            });

            var rows = $(xml).find('Row');

            var issue = new String();
            var date = new Date();
            var dateString = new String();
            var dateStringParts;
            var priceChange = 0;
            var absPriceChange = 0;
            var observations = 0;
            var atricles = 0;

            var tt = new String();

            $(rows).each(function(index) {
                var colValues = $(this).find('Column');

                issue = $(colValues[0]).attr("Value");
                dateString = $(colValues[1]).attr("Value");

                dateStringParts = dateString.split('/');

                date = new Date(dateStringParts[2], parseInt(dateStringParts[1], 10) - 1, parseInt(dateStringParts[0], 10));

                //add the row cells 
                var rowCells = new Array();

                rowCells.push(issue);
                rowCells.push(date);

                for (i = 2; i < $(colValues).length; i++) {
                    var val = $(colValues[i]).attr("Value");

                    switch (data.getColumnType(i)) {
                        case "number":
                            val = parseFloat(val);
                            break;
                    }

                    rowCells.push(val);
                }

                data.addRow(rowCells);
            });

            //Show the chart
            if (document.getElementById('divTmpMotionChart') != null) {
                chart = new google.visualization.MotionChart(document.getElementById('divTmpMotionChart'));

                var options = {};
                options['width'] = width;
                options['height'] = height;

                var state = $(xml).find('State');
                if (state != null && state.length > 0) {
                    options['state'] = state.text();
                }

                chart.draw(data, options);

                $('#fancy_div .btn-save-state').show();
                $('#fancy_div .gmc-product-logo').show();

//                if (clientId == 1 && businessActivityTheme == 'yellow') {
                    $('#fancy_div .td-copyright').show();
//                }
            }
        },

        complete: function() {
        }
    });
}

function GoogleMotionChart_OnStateChange(e) {
    //$.fn.fancybox.getOpts().callbackOnShow = null;
    alert(e);
    $.fn.fancybox.refreshContent();
}

//This script is used to fix the problem with DefaultButtons (ASP.NET hack)
//todo: test is this bug still valid
function defaultButtonFix() {
    __defaultFired = false;
}


function addSidebarMenuBG() {

    var titleToSelect = null;
    var subItemsToSelect = null;

    $('#divHierarchyBrowse td.project:visible').closest('div').find('td.report:visible').closest('div').find('td.report-items:visible')
        .each(function(i) {

            //get divs
            var reportItemsDiv = $(this).closest('div');
            var reportTitleTable = $('#' + reportItemsDiv.attr('id')).prev('table');

            if (reportItemsDiv.length > 0 || reportTitleTable.length > 0) {
                
                titleToSelect = reportTitleTable;
                subItemsToSelect = reportItemsDiv;
            }                        
        });

     if (titleToSelect == null || subItemsToSelect == null) {
            $('#divHierarchyBrowse td.project:visible').closest('div').find('td.report:visible')
                .each(function(i) {

                    //get divs
                    var projectItemsDiv = $(this).closest('div');
                    var projectTitleTable = $('#' + projectItemsDiv.attr('id')).prev('table');

                    if (projectItemsDiv.length > 0 && projectTitleTable.length > 0) {
                    
                        titleToSelect = projectTitleTable;
                        subItemsToSelect = projectItemsDiv;
                    }                    
                });
     }


     if (titleToSelect != null && subItemsToSelect != null) {
            //select
            titleToSelect.wrap('<div style="background-color:#ffffff; padding-top:2px;"></div>');

            switch (businessActivityTheme) {
                case 'yellow': subItemsToSelect.css('background-color', '#FFF8DB'); break;
                case 'blue': subItemsToSelect.css('background-color', '#CFEFFC'); break;
                case 'green': subItemsToSelect.css('background-color', '#C4EBEA'); break;
            }
     }        
}
