var prev_sum    = 1;
var prev_group  = 1;
var prev_rep    = 1;
var prev_tog    = 0;
var prev_class  = '';
var prev_box    = 0;
var prev_men    = 1;
var graph_param = 0;
var export_url  = 0;

function cellHighlight(id,type){
    switch(type){
        case 1:
            prev_class = document.getElementById(id).className;
            document.getElementById(id).className = 'focus';
            break;
        case 2:
            document.getElementById(id).className = prev_class;
            break;
    }
}    

function fieldChange(type,id){
    switch(type){
        case 1: document.getElementById(id).style.border = '1px solid #CACACA'; break;
        case 2: document.getElementById(id).style.border = '1px solid #BABABA'; break;
    }
}

function hide(div){
    document.getElementById(div).style.display = 'none';
}

function toggle(obj) {
	var el = document.getElementById(obj);
	el.style.display = (el.style.display != 'none' ? 'none' : '' );
}

function loader(){
    dyn('sidemenulist', '?pid=11&id=' + prev_rep, 'Loading menu, please wait..');
}

function setReportTitle(){
    switch(report_id){ 
        case 1: var report_title = 'Visitors'; break;
        case 2: var report_title = 'Pageviews'; break;
        case 3: var report_title = 'Time on site'; break;
        case 4: var report_title = 'Phone models'; break;
        case 5: var report_title = 'Geographical details'; break;
        case 6: var report_title = 'Operators'; break;
        case 7: var report_title = 'Languages'; break;
        case 8: var report_title = 'Top documents'; break;
        default: var report_title = 'loading..'; break;
    }
    
    document.title = 'PiAnalytics - ' + report_title;
    document.getElementById('current_report').innerHTML = report_title;
}

function switchSideNav(id){
    // Make old prev
    if(!prev_box==0){
        document.getElementById('sidetitle' + prev_box).style.fontWeight = 'normal';
        document.getElementById('sidetitle' + prev_box).style.color = '#000000';
    }

    // Make new
    document.getElementById('sidetitle' + id).style.fontWeight = 'bold';
    document.getElementById('sidetitle' + id).style.color = '#303437';

    // Set old var
    prev_box = id;

    // Load content
    switch(id){
        case 1: loader(); break;
        case 2: dyn('sidemenulist', '?pid=8', 'Loading menu, please wait..'); break;
        case 3: dyn('sidemenulist', '?pid=9', 'Loading menu, please wait..'); break;
    }
}

function forceReport(id){
    if(document.getElementById('sidemenu' + prev_rep)){
        document.getElementById('sidemenu' + prev_rep).className = 'foo';
    }
    if(document.getElementById('sidemenu' + id)){
        document.getElementById('sidemenu' + id).className = 'set';
    }
    prev_rep  = id;
}

function changeReport(id){
    truncateItem();
    report_id = id;
    document.getElementById('sidemenu' + prev_rep).className = 'foo';
    document.getElementById('sidemenu' + id).className = 'set';
    prev_rep  = id;
    loadContent();
}

function changeSumType(type){
    document.getElementById('sumtype' + prev_sum).style.fontWeight = 'normal';
    document.getElementById('sumtype' + type).style.fontWeight = 'bold';
    prev_sum = type;
    report_sum_type = type;
    switch(prev_tog){
        case 0:  loadContent();                           break;
        default: 
            var old  = prev_tog;
            prev_tog = 0;
            toggleExtendingTable(old,report_item_id,report_item_type,report_item_add);
            break;
    }
}

function changeViewType(type){
    report_pager = 0;
    document.getElementById('viewtype' + prev_group).style.fontWeight = 'normal';
    document.getElementById('viewtype' + type).style.fontWeight = 'bold';
    prev_group = type;
    report_group_by = type;
    
    switch(prev_tog){
        case 0:  loadContent(); break;
        default: 
            var old  = prev_tog;
            prev_tog = 0;
            toggleExtendingTable(old,report_item_id,report_item_type,report_item_add);
            break;
    }
}

function generateUrl(){
    // Set grab content url
    var get_url = '?pid=7'
    + '&r='  + report_id
    + '&g='  + report_group_id
    + '&f='  + report_filter
    + '&s='  + report_start_date
    + '&e='  + report_end_date
    + '&ii=' + report_item_id
    + '&it=' + report_item_type
    + '&ia=' + report_item_add
    + '&gb=' + report_group_by
    + '&d='  + report_debug
    + '&st=' + report_sum_type
    + '&pn=' + report_pager
    + '&li=' + report_limit;
    return get_url;
}

function loadContent(){
    // Set report title
    setReportTitle();

    // Grab content
    dyn('ajaxcontent', generateUrl(), 'Loading statistics, please wait..');
}

function truncateFilterField(){
    var filter_data = document.getElementById("filter_field").value;
    switch(filter_data){
        case 'Apply filter':
            document.getElementById('filter_field').value = '';
            break;
        default:
            break;
    }
}

function applyDate(){
    var start = document.getElementById("report_start").value;
    var end   = document.getElementById("report_end").value;
    report_start_date = start;
    report_end_date   = end;
    document.getElementById('date_generate').value='Generating...';
    switch(prev_tog){
        case 0:  loadContent();                           break;
        default: 
            var old  = prev_tog;
            prev_tog = 0;
            toggleExtendingTable(old,report_item_id,report_item_type,report_item_add);
            break;
    }
}

function changeDateSubmit(){
    if(document.getElementById('date_generate')){
        document.getElementById("date_generate").value='Generate';
    }
}

function changeDateText(start,end){
    document.getElementById("display_datestart").innerHTML = start;
    document.getElementById("display_dateend").innerHTML = end;
}

function changeGroup(id){
    dyn('groupchanger', '?pid=12&id=' + id, '');
}

function forceChangeGroup(id,name){
    report_group_id = id;
    document.getElementById("current_group").innerHTML = name;
    loadContent();
    switchSideNav(3)
}

function applyFilter(){
    var filter_data = document.getElementById("filter_field").value;
    switch(filter_data){
        case 'Apply filter':
            alert('Please specify a filter criteria.');
            break;
        default:
            report_filter = filter_data;
            loadContent();
            break;
    }
}

function filterWarning(){
    document.getElementById("filterwarning").innerHTML = '<div class="infobox"><p><img src="' + root_url + 'static/img/icons/asterisk_yellow.png" alt="icon" class="icon" /> <b>Please notice</b></p><p>You are currently using a filter.</p><p><a href="javascript:void(0);" onclick="clearFilter();">&raquo; Click here to remove filter</a></p></div>';
}

function clearFilter(){
    report_filter    = '';
    report_item_id   = 0;
    report_item_type = 0;
    report_item_add  = 0;
    document.getElementById("filterwarning").innerHTML = '';
    loadContent();
}

function loadHelp(id){
    dyn('helper', '?pid=13&id=' + id, 'Loading help section, please wait...');
}

function blankDiv(id){
    dyn(id, 'gui/misc/blank.php', '');
}

function switchBg(id,classname){
    var old = document.getElementById(id).className;
    if(classname=='return'){
        document.getElementById(id).className = old;
        return;
    }
    var old = document.getElementById(id).className;
    document.getElementById(id).className = old + ' ' + classname;
    var newed = document.getElementById(id).className;
}

function truncateItem(){
    report_item_id   = 0;
    report_item_type = 0;
    report_item_add  = 0;
}

function toggleExtendingTable(id,item_id,item_type,item_add){
    // Hide old layer
    switch(prev_tog){
        case 0:
            break;
        case id:
            blankDiv('extendcell_' + id);
            document.getElementById('icon_' + prev_tog).src = root_url + 'static/img/icons/bullet_toggle_plus.png';
            prev_tog         = 0;
            report_item_id   = 0;
            report_item_type = 0;
            report_item_add  = 0;
            reloadFlash(graph_param);
            return 0;
            break;
        default:
            blankDiv('extendcell_' + prev_tog);
            document.getElementById('icon_' + prev_tog).src = root_url + 'static/img/icons/bullet_toggle_plus.png';
            break;
    }

    // Set vals
    report_item_id   = item_id;
    report_item_type = item_type;
    report_item_add  = item_add;
    prev_tog = id;
    
    // Change current image
    if(document.getElementById('icon_' + id)){
        document.getElementById('icon_' + id).src = root_url + 'static/img/icons/bullet_toggle_minus.png';
    }

    // Reload content
    dyn('extendcell_' + id, generateUrl(), 'Loading statistics, please wait...');  
}

function pager(num){
    report_pager = num;
    switch(prev_tog){
        case 0:  loadContent(); break;
        default: 
            var old  = prev_tog;
            prev_tog = 0;
            toggleExtendingTable(old,report_item_id,report_item_type,report_item_add);
            break;
    }
}

function applyLimit(limit){
    report_limit = limit;
    switch(prev_tog){
        case 0:  loadContent(); break;
        default: 
            var old  = prev_tog;
            prev_tog = 0;
            toggleExtendingTable(old,report_item_id,report_item_type,report_item_add);
            break;
    }
}

function loadGraph(id){
    dyn('graphcontent', '?pid=15&id=' + id, 'Loading graphs, please wait...');
}

function loadGroupClientsInBox(){
    dyn('ajax_siteclients', 'gui/misc/sites.php', 'Loading, please wait...');
}

function addSiteToClientBox(id,name){
    if(document.getElementById('newsites_added').style.display=='none'){
        document.getElementById('newsites_added').style.display='block';
    }
    dyn('ajax_siteclients', 'gui/misc/sites.php?id=' + id + '&name=' + name, 'Adding, please wait...');
    document.getElementById('listalt_' + id).style.display = 'none';
}

function removeSiteFromClientBox(id){
    dyn('ajax_siteclients', 'gui/misc/sites.php?rem=' + id, 'Adding, please wait...');
}

function loadCodeExample(id){
    dyn('codeexample', 'gui/misc/code_php.php?id=' + id, 'Loading code, please wait...');
}

function reloadFlash(param){
    graph_param = param;
    if(report_id==5){
        var so = new SWFObject("gui/static/graph/world.swf", "chart", "100%", "250", "9", "#FFFFFF");
        var go = '?pid=27&id=' + param;
        so.addVariable("data_file", go);
        so.addParam("allowScriptAccess", "sameDomain");
        so.write("graphcontent");
    } else {
        tmp = findSWF("chart");
        x = tmp.reload('?pid=26&id=' + param);
    }
}

function findSWF(movieName) {
    if (navigator.appName.indexOf("Microsoft")!= -1) {
        return window["ie_" + movieName];
    } else {
        return document[movieName];
    }
}

function hideFlash(){
    document.getElementById('graphcontent').style.display = 'none';
}

function graphClick(string){
    var params = string.split('-');
    toggleExtendingTable(params[0],params[1],params[2],params[3]);
}

function selectSite(id){
    var classer = document.getElementById('siteselect_' + id).className;
    switch(classer){
        case 'foo':
            document.getElementById('siteselect_' + id).className = 'siteselected';
            break;
        case 'siteselected':
            document.getElementById('siteselect_' + id).className = 'foo';
            break;
    }
}

function changeExportLink(url){
    export_url = url;
}

function exportWindow(){
	window.open(export_url, '', 'scrollbars=no, menubar=no, height=655, width=800, resizeable=no, toolbar=no, location=no, status=no');
}
