
function check_ga_login(){
    $('#check_result').html('<img src="'+base_url+'/img/ajax-loader.gif"> Checking login and password...');
    $('#check_result').load(site_url+"ajax/check_ga_login", { ga_login: $('#ga_login').val(), ga_password: $('#ga_password').val() } );
}

function load_ga_sites(){
    $(document).unbind('ready', load_ga_sites);
    $.ajaxSetup({async: false});
    $('#sites_list').html('<img src="'+base_url+'/img/ajax-loader.gif"> Please wait, loading sites list...');
    $('#sites_list').load(site_url+"ajax/load_accounts", { ga_login_id: $('#ga_account').val(), 'ga_site': $('#url_hidden').html() } );
    $.ajaxSetup({async: true});
    $('#sites').unbind('click', load_ga_sites);
    /*    if (7 == parseInt($('#type').val())){
    load_campaigns();
    }*/
}

function load_campaigns(){
    if ($('#ga_account').val() && $('#url').val() && renew) {
        $('#camp_filter > tr > td').html(' ');
        $('.camp_sel0').html('<img src="'+base_url+'/img/ajax-loader.gif"> Loading campaigns...');
        $('.camp_sel1').html('<img src="'+base_url+'/img/ajax-loader.gif"> Loading campaigns...');
        $('.camp_sel2').html('<img src="'+base_url+'/img/ajax-loader.gif"> Loading campaigns...');
        $('.camp_sel3').html('<img src="'+base_url+'/img/ajax-loader.gif"> Loading campaigns...');
        $.ajax({
            url: site_url+"ajax/load_campaigns/",
            dataType: 'html',
            type: 'POST',
            data: { 'ga_login_id': $('#ga_account').val(), date_start: $('#date_start').val(), date_end: $('#date_end').val(), site: $('#url').val() },
            success: function(data){
                campaigns = data;
                $('#hidden').html(campaigns);
                renew = 0;
            }
        });
    }
}

function delete_all_groups(){
    $('#camps_groups > tr').remove();
    $('#add_group_btn').show();
    $('#select_camp > option[value!=-1]').remove();
    mark_camp_to_group();
    id = -1;
}

function delete_one_group(id){
    $('#g'+id).remove();
    $('#cag-'+id).remove();
    $(':checkbox[rel]').each(function(){
        var rel = $(this).attr('rel');
        if (id == ids[rel]){
            $(this).replaceWith('<input type="checkbox" name="" value="'+$(this).val()+'" rel="'+rel+'">');
            $('#ag-'+rel).css('background-color', '#FFFFFF');
        }
    }
    );
}

function load_campaign_list(){
    if ($('#ga_account').val() && $('#url').val()) {
        // $('#url').unbind('change', load_campaign_list);
        $('#camp_filter > tr > td').html(' ');
        $('#load-campaigns-msg').show();
        $.ajax({
            url: site_url+"ajax/load_campaign_list/",
            dataType: 'json',
            type: 'POST',
            data: { 'ga_login_id': $('#ga_account').val(), date_start: $('#date_start').val(), date_end: $('#date_end').val(), site: $('#url').val() },
            async: true,
            success: function(data){
                $('#camps_list > tr').remove();
                for(var i=0;i<data.camp.length;i++){
                    $('#camps_list').append('<tr><td>'+data.camp[i]+'</td>'+
                    '<td class="a-center" id="ag-'+i+'" width="100"><input type="checkbox" name="" value="'+data.camp[i]+'" rel="'+i+'"></td></tr>');
                }
                ids = Array();
                $('#load-campaigns-msg').hide();
                $('#match_list').show();
            }
        });
    }
}

function create_dropdown(el){
    var id = $(this).attr('rel');
    var row = '<option id="cag-'+id+'" value="'+id+'">'+$(this).val()+'</option>';
    if (!$('#cag-'+id).size()){
        $('#select_camp').append(row);
    } else {
        $('#cag-'+id).replaceWith(row);
    }
}

function mark_selected(){
    $(':checkbox[rel]').each(function(){
        var rel = $(this).attr('rel');
        if ((-1 != ids[rel]) && !isNaN(ids[rel])){
            $(this).click();
        }
    });
}

function mark_camp_to_group(){
    var id = parseInt($('#select_camp').val());
    var colors = Array('#B3D7F5', '#DBFFC1', '#9FEAFF', '#F7BBF1', '#FFCFCF', '#DAC6FC', '#FDD65E', '#FFFD7B', '#BFE7E4', '#9FE7C0');

    $(':checked[rel]').each(function(){
        var rel = $(this).attr('rel');
        var name = '';
        if (-1 != id){
            ids[rel] = id;
            $('#ag-'+rel).css('background-color', colors[id]);
            name = 'camps['+id+'][]';
        } else {
            ids[rel] = -1;
            $('#ag-'+rel).css('background-color', '#FFFFFF');
            name = '';
        }
        $(this).replaceWith('<input type="checkbox" name="'+name+'" value="'+$(this).val()+'" rel="'+rel+'" />');
    });
}

function add_group(){
    var colors = Array('#B3D7F5', '#DBFFC1', '#9FEAFF', '#F7BBF1', '#FFCFCF', '#DAC6FC', '#FDD65E', '#FFFD7B', '#BFE7E4', '#9FE7C0');
    if (++id < colors.length){
        var tr = '<tr id="g'+id+'"><td><input type="text" name="groups[]" value="" size="40" rel="'+id+'"></td><td class="a-center" id="mcg'+id+'">' +
        '<a href="#camps" onclick="delete_one_group('+id+')"><img src="'+base_url+'/img/icons/b_minus.png" rel='+id+'></a></td></tr>';
        $('#camps_groups').append(tr);
        $('#mcg'+id).css('background-color', colors[id]);
        $('#camps_groups > tr > td > input').change( create_dropdown );
    }
    if (colors.length <= id+1) {
        $('#add_group_btn').hide();
    }
}

function change_type(){
    var sel_type = $('#type').val();
    $('#url').unbind('change', load_campaigns );
    $('#url').unbind('change', load_campaign_list );
    $('#form').unbind('submit', mark_selected );

    switch (parseInt(sel_type)){
        case 1:
        $('#url').unbind('change', load_campaign_list);
        $('#goals').hide();
        $('#campaigns_list').hide();
        $('#hint').html('Enter organic visibity values. Each one from new line (baseline, previous, current)');
        $('#options2').show();
        $('#campaigns').hide();
        $('#baseline').show();
        $('#previous').show();
        $('#filter').show();
        $('#filter_ctrl').show();
        $('#match_list').hide();
        break;

        case 2:
        $('#url').unbind('change', load_campaign_list);
        $('#goals').hide();
        $('#campaigns_list').hide();
        $('#hint').html('');
        $('#options2').hide();
        $('#campaigns').hide();
        $('#baseline').show();
        $('#previous').show();
        $('#filter').hide();
        $('#filter_ctrl').hide();
        $('#match_list').hide();
        break;

        case 3:
        $('#goals').show();
        $('#campaigns_list').show();
        $('#hint').html('');
        $('#options2').hide();
        $('#campaigns').hide();
        $('#baseline').show();
        $('#previous').show();
        $('#filter').hide();
        $('#filter_ctrl').hide();
        $('#url').change( load_campaign_list ).change();
        $('#form').submit( mark_selected );
        $('#match_list').show();
        break;

        case 4:
        $('#url').unbind('change', load_campaign_list);
        $('#goals').hide();
        $('#campaigns_list').hide();
        $('#hint').html('');
        $('#options2').hide();
        $('#baseline').show();
        $('#previous').show();
        $('#campaigns').hide();
        $('#filter').hide();
        $('#filter_ctrl').hide();
        $('#match_list').hide();
        break;

        case 5:
        $('#url').unbind('change', load_campaign_list);
        $('#goals').hide();
        $('#campaigns_list').hide();
        $('#hint').html('');
        $('#options2').hide();
        $('#baseline').show();
        $('#previous').show();
        $('#campaigns').hide();
        $('#filter').hide();
        $('#filter_ctrl').hide();
        $('#match_list').hide();
        break;

        case 6:
        $('#url').unbind('change', load_campaign_list);
        $('#goals').show();
        $('#campaigns_list').hide();
        $('#hint').html('');
        $('#options2').hide();
        $('#baseline').show();
        $('#previous').show();
        $('#campaigns').hide();
        $('#filter').hide();
        $('#filter_ctrl').hide();
        $('#match_list').hide();
        break;

        case 7:
        $('#url').unbind('change', load_campaign_list);
        $('#goals').hide();
        $('#campaigns_list').hide();
        $('#hint').html('');
        $('#options2').hide();
        $('#baseline').hide();
        $('#previous').hide();
        $('#campaigns').show();
        $('#filter').hide();
        $('#filter_ctrl').hide();
        $('#url').change( load_campaigns ).change();
        $('#match_list').hide();
        break;
    }
}

function build_seo_report(uniqid){
    // getting all traffic
    var error = false;
    var types = Array('current', 'previous', 'baseline');
    $('#img-ajax').show();

    var msg = 'Site URL';
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }
    // return false;
    for (i=0;i<types.length;i++){
        type = types[i];
        msg = 'All '+type+' traffic';
        $('#ajax-msg').html(msg+'...');
        if (!error){
            $.ajax({
                url: site_url+"ajax/seo_report/all_traffic",
                async: false,
                dataType: 'html',
                type: 'POST',
                data: {id: uniqid, query_type: type},
                success: function(data){
                    $('#ajax-log').append(image_ok(msg));
                },
                error: function(XMLHttpRequest, textStatus, errorThrown){
                    $('#ajax-log').append(image_err(msg));
                    error = true;
                }
            });
        } else {
            break;
        }
        // if not error?
        if (!error){
            msg = 'Total organic '+type+' traffic';
            $('#ajax-msg').html(msg+'...');
            $.ajax({
                url: site_url+"ajax/seo_report/total_organic",
                async: false,
                dataType: 'html',
                type: 'POST',
                data: {id: uniqid, query_type: type},
                success: function(data){
                    $('#ajax-log').append(image_ok(msg));
                },
                error: function(XMLHttpRequest, textStatus, errorThrown){
                    $('#ajax-log').append(image_err(msg));
                    error = true;
                }
            });
        }
        // if not error
        if (!error){
            msg = 'Total non-branded organic traffic';
            $('#ajax-msg').html(msg+'...');
            $.ajax({
                url: site_url+"ajax/seo_report/total_not_organic",
                async: false,
                dataType: 'html',
                type: 'POST',
                data: {id: uniqid, query_type: type},
                success: function(data){
                    $('#ajax-log').append(image_ok(msg));
                },
                error: function(XMLHttpRequest, textStatus, errorThrown){
                    $('#ajax-log').append(image_err(msg));
                    error = true;
                }
            });
        }
    }
    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

function build_traffic_report(uniqid){
    var sources = Array('all', 'direct', 'refferal', 'organic', 'paid');
    var types = Array('current', 'previous', 'baseline');
    var error = false;

    $('#img-ajax').show();
    var msg = 'Site URL';
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    for (i=0;i<types.length;i++){
        for(j=0;j<sources.length;j++){
            type = types[i];
            source = sources[j];
            msg = type+' '+source+' traffic';
            if (error) break;
            $('#ajax-msg').html(msg+'...');
            if (!error){
                $.ajax({
                    url: site_url+"ajax/traffic_report/",
                    async: false,
                    dataType: 'html',
                    type: 'POST',
                    data: {id: uniqid, query_type: type, src: source},
                    success: function(data){
                        $('#ajax-log').append(image_ok(msg));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown){
                        $('#ajax-log').append(image_err(msg));
                        error = true;
                    }
                });
            } else {
                break;
            }
        }
    }
    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

function build_engagement_report(uniqid){
    var types = Array('stat by pages', 'stat by days', 'stat by urls');
    var error = false;
    var msg = 'Site URL';

    $('#img-ajax').show();
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    for (i=0;i<types.length;i++){
        type = types[i];
        msg = ' '+type+' data';
        if (error) break;
        $('#ajax-msg').html(msg+'...');
        if (!error){
            $.ajax({
                url: site_url+"ajax/engagement_report/",
                async: false,
                dataType: 'html',
                type: 'POST',
                data: {id: uniqid, query_type: type},
                success: function(data){
                    $('#ajax-log').append(image_ok(msg));
                },
                error: function(XMLHttpRequest, textStatus, errorThrown){
                    $('#ajax-log').append(image_err(msg));
                    error = true;
                }
            });
        }
    }
    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

// Building conversion report

function build_conversion_report(uniqid){
    var sources = Array('goals');
    var error = false;
    var types = Array('current', 'previous', 'baseline');
    var msg = 'Site URL';

    $('#img-ajax').show();
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }
    if (!error){
        msg = 'Best source goals current data';
        $('#ajax-msg').html(msg+'...');
        $.ajax({
            url: site_url+"ajax/conversion_report/",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid, query_type: 'current', src: 'source'},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    for (i=0;i<types.length;i++){
        for (j=0;j<sources.length;j++){
            source = sources[j];
            type = types[i];
            if (error) break;
            msg = ' ' + type + ' ' + source + ' data';
            $('#ajax-msg').html(msg+'...');
            if (!error){
                $.ajax({
                    url: site_url+"ajax/conversion_report/",
                    async: false,
                    dataType: 'html',
                    type: 'POST',
                    data: {id: uniqid, query_type: type, src: source},
                    success: function(data){
                        $('#ajax-log').append(image_ok(msg));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown){
                        $('#ajax-log').append(image_err(msg));
                        error = true;
                    }
                });
            }
        }
    }
    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

function build_ecommerce_report(uniqid){
    var error = false;
    var types = Array('current', 'previous', 'baseline');
    var traffic = Array('all', 'paid', 'search');
    var msg = 'Site URL';

    $('#img-ajax').show();
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }


    for(i=0;i<traffic.length;i++){
        for (j=0;j<types.length;j++){
            msg = types[j]+' data by date for '+traffic[i];
            if (!error){
                $('#ajax-msg').html(msg+'...');
                $.ajax({
                    url: site_url+"ajax/ecommerce_report/",
                    async: false,
                    dataType: 'html',
                    type: 'POST',
                    data: {id: uniqid, query_type: 'by_date_'+traffic[i], src: types[j]},
                    success: function(data){
                        $('#ajax-log').append(image_ok(msg));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown){
                        $('#ajax-log').append(image_err(msg));
                        error = true;
                    }
                });
            }
        }
    }

    if (!error){
        msg = 'Data divided by sources and mediums';
        $('#ajax-msg').html(msg+'...');
        $.ajax({
            url: site_url+"ajax/ecommerce_report",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid, query_type: 'by_source', src: 'current'},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

function build_campaign_report(uniqid){
    var error = false;
    var camps = Array();
    var traffic = Array('all', 'paid', 'search');
    var msg = 'Site URL';

    $('#img-ajax').show();
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    if (!error){
        msg = 'Campaigns to be reported'
        $('#ajax-msg').html(msg+'...');
        $.ajax({
            url: site_url+"ajax/campaign_report/",
            async: false,
            dataType: 'script',
            type: 'POST',
            data: {id: uniqid, query: 'get_camps'},
            success: function(data){
                eval(data);
                $('#ajax-log').append(image_ok(msg));
                if (camps.length == 0) error = true;
                var i = 0;
                var cmps = Array();
                while (camp = camps.pop()){
                    if (!error){
                        i++;
                        msg = 'Data for <b> '+i+' '+camp+'</b> campaign';
                        $('#ajax-msg').html(msg+'...');
                        $.ajax({
                            url: site_url+"ajax/campaign_report",
                            async: false,
                            dataType: 'html',
                            type: 'POST',
                            data: {id: uniqid, query: 'get_data', camp: i-1},
                            success: function(sdata){
                                $('#ajax-log').append(image_ok(msg));
                            },
                            error: function(XMLHttpRequest, textStatus, errorThrown){
                                $('#ajax-log').append(image_err(msg));
                                error = true;
                            }
                        });
                        cmps.push(camp);
                    }
                }
                //
                if (!error){
                    msg = 'Total data for selected campaigns';
                    $('#ajax-msg').html(msg+'...');
                    $.ajax({
                        url: site_url+"ajax/campaign_report",
                        async: false,
                        dataType: 'html',
                        type: 'POST',
                        data: {id: uniqid, query: 'get_by_date', 'ids[]': cmps},
                        success: function(sdata){
                            $('#ajax-log').append(image_ok(msg));
                        },
                        error: function(XMLHttpRequest, textStatus, errorThrown){
                            $('#ajax-log').append(image_err(msg));
                            error = true;
                        }
                    });
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

function build_adwords_report(uniqid){
    var error = false;
    var types   = Array('current', 'previous', 'baseline');
    var traffic = Array('campaign', 'total visits', 'total Adwords');

    $('#img-ajax').show();
    msg = 'Site URL';
    $('#ajax-msg').html(msg+'...');
    if (!error){
        $.ajax({
            url: site_url+"ajax/get_site_url",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    if (!error){
        msg = 'Keywords data for current period';
        $('#ajax-msg').html(msg+'...');
        $.ajax({
            url: site_url+"ajax/adwords_report/",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid, query_type: 'by_keywords', src: 'current'},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    for(j=0;j<traffic.length;j++){
        for(i=0;i<types.length;i++){
            if (!error){
                msg = 'Summary '+traffic[j]+' data for '+types[i]+' period';
                $('#ajax-msg').html(msg+'...');
                $.ajax({
                    url: site_url+"ajax/adwords_report/",
                    async: false,
                    dataType: 'html',
                    type: 'POST',
                    data: {id: uniqid, query_type: 'by_'+traffic[j], src: types[i]},
                    success: function(data){
                        $('#ajax-log').append(image_ok(msg));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown){
                        $('#ajax-log').append(image_err(msg));
                        error = true;
                    }
                });
            } else {
                break;
            }
        }
    }

    if (!error){
        msg = 'Summary all data by all campaigns for current period';
        $('#ajax-msg').html(msg+'...');
        $.ajax({
            url: site_url+"ajax/adwords_report/",
            async: false,
            dataType: 'html',
            type: 'POST',
            data: {id: uniqid, query_type: 'by_all', src: 'current'},
            success: function(data){
                $('#ajax-log').append(image_ok(msg));
            },
            error: function(XMLHttpRequest, textStatus, errorThrown){
                $('#ajax-log').append(image_err(msg));
                error = true;
            }
        });
    }

    if (!error){
        var traffic = Array('visits', 'Adwords');
        for(i=0;i<types.length;i++){
            for (j=0;j<traffic.length;j++){
                msg = 'Detailed selected campaign data by '+traffic[j]+' for '+types[i]+' period';
                $('#ajax-msg').html(msg+'...');
                $.ajax({
                    url: site_url+"ajax/adwords_report/",
                    async: false,
                    dataType: 'html',
                    type: 'POST',
                    data: {id: uniqid, query_type: 'by_detail_campaigns_'+traffic[j], src: types[i]},
                    success: function(data){
                        $('#ajax-log').append(image_ok(msg));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown){
                        $('#ajax-log').append(image_err(msg));
                        error = true;
                    }
                });
            }
        }
    }

    $('#img-ajax').hide();
    // hide image, proceed to results
    if (!error){
        $('#img-ajax').html('<br/><a href="'+site_url+'report/view/'+uniqid+'">Proceed to report results</a>');
        $('#ms_header').html('Done.');
        $('#img-ajax').show();
        // need to automate redirect
        setTimeout(function(){
            $(document).attr('location', site_url+'report/view/'+uniqid);
        }, 15000);
    } else {
        $('#msg_header').html('Was some error during execution.');
    }
}

function image_ok(msg){
    return '<img src="'+base_url+'/img/icons/s_okay.png" title="Ok" alt="Ok"> '+msg+'<br/>';
}

function image_err(msg){
    return '<img src="'+base_url+'/img/icons/s_cancel.png" title="Error" alt="Error"> '+msg+'<br/>'
}

function go_report(report_type, uniqid){
    switch (parseInt(report_type)){
        // SEO report
        case 1:
        build_seo_report(uniqid);
        break;

        // traffic report
        case 2:
        build_traffic_report(uniqid);
        break;

        // Adwords report
        case 3:
        build_adwords_report(uniqid);
        break;

        // engagement report
        case 4:
        build_engagement_report(uniqid);
        break;

        case 5:
        build_ecommerce_report(uniqid);
        break;

        // conversion report
        case 6:
        build_conversion_report(uniqid);
        break;

        case 7:
        build_campaign_report(uniqid);
        break;
    }
    return true;
}

var campaigns = '<select name="campaigns"><option></option></select>';
var renew = 1;

var index = count = 0;

function addfilter(){
    index++;
    var row = '<tr id="filter'+index+'" valign="baseline"><td><select name="filter_name[]"><option value="ga:keyword">Keyword</option><option value="ga:medium">Medium</option><option value="ga:campaign">Campaign</option></select></td><td><select name="filter_expression[]"><option value="!@">Does not contain</option><option value="==">Equals</option><option value="!=">Does not equal</option><option value=">">Greater than</option><option value="<">Less than</option><option value=">=">Greater than or equal to</option><option value="<=">Less than or equal to</option><option value="=~">Contains a match for the regular expression</option> <option value="!~">Does not match regular expression</option><option value="=@">Contains substring</option></select></td><td><input type="text" name="value[]" value="" size="40"/></td><td><select name="filter_oper[]"><option value=";">AND</option><option value=",">OR</option></select></td><td class="a-center"><a href="#" onclick="return deletefilter('+index+');"><img src="'+base_url+'/img/icons/b_minus.png"></a></td></tr>';

    $('#filters').prepend(row);
    return false;
}

function deletefilter(id){
    $('#filter'+id).css('display', 'none');
    $('#filter'+id).remove();

    return false;
}

function delete_all(){
    index = 0;
    $('#filters > tr').css('display', 'none');
    $('#filters > tr').remove();
    return false;
}

function load_ms(id){
    var val = $('.camp_sel'+id+' > select').val();
    val = (val+'').toLowerCase().replace(/\s/g, '_');
    $('#s'+id).html( $('#src_'+val).outerHTML() );
    $('#m'+id).html( $('#med_'+val).outerHTML() );
    $('#m'+id+' > select').attr('name', 'medium['+id+'][]');
    $('#s'+id+' > select').attr('name', 'source['+id+'][]');
}

jQuery.fn.outerHTML = function(s) {
    return (s)
    ? this.before(s).remove()
    : jQuery("<p>").append(this.eq(0).clone()).html();
}

function create_image_for_print(){
    setTimeout( function () {
        $('#chart').replaceWith( OFC.jquery.image('chart') );
        // $('#img_chart').show();
        $('#chart').unbind('ready', create_image_for_print);
    }, 5000);
}

function ajax_save_img(id){
    url = site_url + "ajax/save_image/";
    img = OFC.jquery.image('chart');
    $.ajax({
        url: site_url + 'ajax/save_image/'+id,
        type: 'POST',
        data: {file: img},
        async: false
    });
    return true;
}

function show_other_reports(){
    if (!visor){
        $('#other-reports').show();
        visor = true;
    }
}

function hide_other_reports(){
    if (visor){
        $('#other-reports').hide();
        visor = false;
    }
}

function save_img(){
    setTimeout( function () {
        url = site_url + "ajax/save_image/";
        img = OFC.jquery.image('chart');
        $.ajax({
            url: site_url + 'ajax/save_image/'+cur_id,
            type: 'POST',
            data: {file: img},
            async: true,
            success: function (data){
                $('#process_chart_img').hide();
                $('#export_pdf_label').show();
            }
        });
    }, 3000);
    return true;
}

function load_ga_domains(){
    $(document).unbind('ready', load_ga_sites);
    $('#dom_div').html('<img src="'+base_url+'/img/ajax-loader.gif"> Please wait, loading sites list...');
    $('#dom_div').load(site_url+"ajax/load_accounts", { ga_login_id: $('#id_ga_account').val(), 'ga_site': $('#ga_id').val() } );
    $('#id_ga_account').unbind('click', load_ga_domains);
}

OFC = {};

OFC.jquery = {
    name: "jQuery",
    version: function(src) { return $('#'+ src)[0].get_version() },
    rasterize: function (src, dst) { $('#'+ dst).replaceWith(OFC.jquery.image(src)) },
    image: function(src) { return "<img src='data:image/png;base64," + $('#'+src)[0].get_img_binary() + "' />"},
    popup: function(src) {
        var img_win = window.open('', 'Charts: Export as Image')
        with(img_win.document) {
            write('<html><head><title>Charts: Export as Image<\/title><\/head><body>' + OFC.jquery.image(src) + '<\/body><\/html>') }
            // stop the 'loading...' message
            img_win.document.close();
    }
}

// Using an object as namespaces is JS Best Practice. I like the Control.XXX style.
//if (!Control) {var Control = {}}
//if (typeof(Control == "undefined")) {var Control = {}}
if (typeof(Control == "undefined")) {var Control = {OFC: OFC.jquery}}


// By default, right-clicking on OFC and choosing "save image locally" calls this function.
// You are free to change the code in OFC and call my wrapper (Control.OFC.your_favorite_save_method)
// function save_image() { alert(1); Control.OFC.popup('my_chart') }
function save_image() { alert(1); OFC.jquery.popup('chart') }
function moo() { alert(99); };

var ids = Array();