﻿var TheTab = new Array('model', 'prix', 'lieu', 'avance');
var ActivTab = jQuery.cookie("ActivTab");
if (ActivTab == null) {
    ActivTab = 0;
    jQuery.cookie("ActivTab", 0);
}

//alert(jQuery.cookie("ActivTab"));
function SaveChanges(tabType, tabPart, datas) {
    var queryDatas;

    queryDatas = "tabtype=" + tabType + "&tabpart=" + tabPart;

    if (datas != null && datas != "")
        queryDatas += datas;
    jQuery.ajax({
        type: "POST",
        url: "SearchEngine.aspx",
        data: queryDatas,
        success: function(msg) {
            switch (tabType) {
                case 'Models':
                    ManageModel(msg, tabPart, queryDatas);
                    break;
                case 'Price':
                    ManagePrice(msg);
                    break;
                case 'Locality':
                    ManagePlace(msg);
                    break;
                case 'Advanced':
                    ManageAdvanced(msg, tabPart, queryDatas)
                    break;
                case 'Matrix':
                    ManageMatrix(msg, tabPart);
                    break;
                case 'LeftPanel':
                    ManageLeftPanel(msg, tabPart);
                    break;
            }
        },
        error: function(xhr) {
            alert('une erreur s\'est produite, merci de bien vouloir rafraichir votre navigateur');
        }
    });
    
}

function ManageLeftPanel(msg, tabpart) {
    if (tabpart == 'ResultAccess') {
        var oResultData = eval('(' + msg + ')');
        if (oResultData != null) {
            if (oResultData.success) {
                document.location.href = 'ResultPage.aspx';
            }
        }
    }
}

function ManagePlace(msg) {
    if (msg == "" || msg == null) {
        msg = '{"success" : false}';
    }

    var oResultData = eval('(' + msg + ')');
    if (oResultData != null) {
        if (oResultData.success && oResultData.LeftPanelRender != null && oResultData.MatrixRender != null) {
            //affichage des données de la matrice + du left panel
            jQuery("#LeftPanelContent").html(oResultData.LeftPanelRender);
            jQuery("#MatrixContent").html(oResultData.MatrixRender);
        }
    }
}

function ManageModel(msg, tabPart, datas) {
    if (msg == "" || msg == null) {
        msg = '{"success" : false}';
    }

    var oResultData = eval('(' + msg + ')');
    if (oResultData != null) {
        switch (tabPart) {
            case "Model":
                if (oResultData.success && oResultData.LeftPanelRender != null && oResultData.MatrixRender != null) {
                    var controlid = getParamValue('controlid', datas);
                    var ischecked = getParamValue('ischecked', datas);

                    if (controlid != null && jQuery('#' + controlid).length > 0) {
                        if (ischecked == 'true') {
                            jQuery('#' + controlid).removeClass("Chkbx" + tabPart + "Unselected");
                            jQuery('#' + controlid).addClass("Chkbx" + tabPart);

                        }
                        else {
                            jQuery('#' + controlid).removeClass("Chkbx" + tabPart);
                            jQuery('#' + controlid).addClass("Chkbx" + tabPart + "Unselected");
                        }
                        //affichage des données de la matrice + du left panel
                        jQuery("#LeftPanelContent").html(oResultData.LeftPanelRender);
                        jQuery("#MatrixContent").html(oResultData.MatrixRender);
                    }
                }
                break;
            case "BodyType":
                if (oResultData.BodyType != null && oResultData.LeftPanelRender != null && oResultData.MatrixRender != null) {
                    jQuery("#model").html(oResultData.BodyType);
                    jQuery("#LeftPanelContent").html(oResultData.LeftPanelRender);
                    jQuery("#MatrixContent").html(oResultData.MatrixRender);
                }
                break;
        }
    } 
}

function ManageAdvanced(msg, tabPart, datas) {

    if (msg == "" || msg == null) {
        msg = '{"success" : false}';
    }

    var oResultData = eval('(' + msg + ')');

    if (oResultData != null) {
        if (tabPart == 'Mileage' || tabPart == 'Year') {
            if (!oResultData.success) {
                // Posback error
                RestoreSliderPosition(tabPart);
            }
            else if (oResultData.success && oResultData.LeftPanelRender != null && oResultData.MatrixRender != null) {
                // Posback success
                SaveSliderPosition(tabPart);
                jQuery("#LeftPanelContent").html(oResultData.LeftPanelRender);
                jQuery("#MatrixContent").html(oResultData.MatrixRender);
            }
        }
        else {
            if (!oResultData.success) {
                var controlid = getParamValue('controlid', datas);
                var ischecked = getParamValue('ischecked', datas);

                if (controlid != null && jQuery('#' + controlid).length > 0 && (tabPart == 'Fuel' || tabPart == 'Option')) {
                    if (ischecked == 'true') {
                        jQuery('#' + controlid).removeClass("Chkbx" + tabPart);
                        jQuery('#' + controlid).addClass("Chkbx" + tabPart + "Unselected");
                    }
                    else {
                        jQuery('#' + controlid).removeClass("Chkbx" + tabPart + "Unselected");
                        jQuery('#' + controlid).addClass("Chkbx" + tabPart);
                    }
                }
            }
            else if (oResultData.success && oResultData.LeftPanelRender != null && oResultData.MatrixRender != null) {
                jQuery("#LeftPanelContent").html(oResultData.LeftPanelRender);
                jQuery("#MatrixContent").html(oResultData.MatrixRender);
            }
        }
    }
}

function ManagePrice(msg) {

    if (msg == "" || msg == null) {
        msg = '{"success" : false}';
    }

    var oResultData = eval('(' + msg + ')');
    if (oResultData != null) {
        if (oResultData.success && oResultData.LeftPanelRender != null && oResultData.MatrixRender != null) {
            // Posback success
            SaveSliderPosition('Price');
            jQuery("#LeftPanelContent").html(oResultData.LeftPanelRender);
            jQuery("#MatrixContent").html(oResultData.MatrixRender);
        }
        else {
            // Posback error
            RestoreSliderPosition('Price');
        }
    }
}

// Manage Matrix result
function ManageMatrix(msg, tabpart) {

    if (msg == "" || msg == null) {
        msg = '{"success" : false}';
    }
    var oResultData = eval('(' + msg + ')');
    if (oResultData != null) {
        switch (tabpart) {
            case "Item":
                if (oResultData.success) {
                    document.location.href = 'ResultPage.aspx';
                }
                break;
            case "SelectedItem":
                if (oResultData.MatrixRender != null) {
                    jQuery("#MatrixContent").html(oResultData.MatrixRender);
                }
                break;
        }
    }
}

function ManagePriceError(xhr) {
    // Transport or server error
    RestoreSliderPosition('Price');
}

function getParamValue(name, uri) {
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(uri);
    return results[1] || 0;
}

function SelectAllChkbx() {
    jQuery('span[class=ChkbxModelUnselected]').each(
            function(index, elt) {
                jQuery(elt).removeClass("ChkbxModelUnselected");
                jQuery(elt).addClass("ChkbxModel");
            });
}

function UnselectAllChkbx() {
    jQuery('span[class=ChkbxModel]').each(
            function(index, elt) {
                jQuery(elt).removeClass("ChkbxModel");
                jQuery(elt).addClass("ChkbxModelUnselected");
            });
}

jQuery(document).ready(function() {
    // enable tabs
    if (0 != jQuery("#container").length) {
        jQuery("#container").tabs({
            select: function(event, ui) {
                jQuery('.subcontent_on').addClass("subcontent_off");
                jQuery('.subcontent_on').removeClass("subcontent_on");
                jQuery('#lnktab' + ui.index).removeClass("subcontent_off");
                jQuery('#lnktab' + ui.index).addClass("subcontent_on");
                ActivTab = ui.index;
                jQuery.cookie("ActivTab", ActivTab);
            }
        });
        jQuery('#container').bind('tabsshow', function(event, ui) {
            if (ui.panel.id == "lieu") {
                initialize_localityTab();
            }
        });
        var selected = jQuery('#container').tabs('option', 'selected');
        if (selected == 2) {
            initialize_localityTab();
        }
    }   
});

function GererSaisieIn(x) {
    if (jQuery('#' + x)[0].defaultValue == jQuery('#' + x)[0].value) {
        jQuery('#' + x)[0].value = '';
    };
    
    
}
function GererSaisieOut(x) {
    var a = jQuery('#' + x)[0].value;
    var b = jQuery('#' + x)[0].defaultValue;
    if (jQuery('#' + x)[0].value == '') {
        jQuery('#' + x)[0].value = jQuery('#' + x)[0].defaultValue;
    };
}
function AfficherDetail(id) {
    var a = jQuery('#' + id)[0].value;
    var html = jQuery.ajax({ type: "POST",
    url: "Result/detail.aspx?Advertid="+a,
        async: false
    }).responseText;
    if (html.indexOf('CETTE REFERENCE') > 0) {
        jQuery.colorbox({ href: "Message.aspx?code=ADVERTDOESNTEXIST" });
    }
    else {
        document.location.href = "Result/detail.aspx?Advertid=" + a;
    }
    
}
function handleKeyPress(e, id) {
    var key = e.keyCode || e.which;
    if (key == 13) {
        AfficherDetail(id);
        if (e.preventDefault) {
            e.preventDefault();
        }
    }
}
function RedirectSearchTab(tab) {
    if (jQuery('#container').length > 0) {
        jQuery('#container').tabs('select', tab);
    }
    else {
        document.location.href = 'SearchEngine.aspx#' + TheTab[tab];
        jQuery('#lnktab' + tab).removeClass("subcontent_off");
        jQuery('#lnktab' + tab).addClass("subcontent_on");
    }
    ActivTab = tab;
    jQuery.cookie("ActivTab", ActivTab);
}
function Emphasize(tab) {
    jQuery('#lnktab' + tab).addClass('subcontent_emphasize');
}
function Anonymize(tab) {
    jQuery('#lnktab' + tab).removeClass('subcontent_emphasize');
}

function ShowDetailsAdvert(txt, e) {
    document.getElementById('divDetailsAdvert').innerHTML = "";
    document.getElementById('divDetailsAdvert').innerHTML = txt;
    var posX = 20; // pour positionner sur la largeur de la page
    var posY = jQuery('#divDetailsAdvert').height() / 2; // pour positionner sur la hauteur de la page
    
    // pos=20 : affichage à droite du curseur ; pos=-330 : affichage à gauche du curseur
    if (navigator.appName != "Microsoft Internet Explorer") {
        var scrollLeft = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
        if(document.documentElement.clientWidth - e.pageX + scrollLeft < 330) {
            posX = -330;
        }
        if (e.clientY > (window.innerHeight - jQuery('#divDetailsAdvert').height())) {  // Cas infobulle en bas de page
            var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
            posY = window.innerHeight - jQuery('#divDetailsAdvert').height() + scrollTop - 25;
        }
        else {
            if (e.clientY < posY) {  // Cas infobulle en haut de page
                posY = e.pageY - e.clientY;
            }
            else {  // Cas général
                posY = e.pageY - posY;
            }
        }
        
        document.getElementById('divDetailsAdvert').style.left = e.pageX + posX +"px";
        document.getElementById('divDetailsAdvert').style.top = posY + "px";
    }
    else { // le navigateur est Microsoft Internet Explorer
        if (document.documentElement.clientWidth > 0) {
            if ((document.documentElement.clientWidth - e.clientX) < 330) {
                posX = -330;
            }

            if (e.clientY > (document.documentElement.clientHeight - jQuery('#divDetailsAdvert').height())) {  // Cas infobulle en bas de page
                posY = document.documentElement.clientHeight - jQuery('#divDetailsAdvert').height() + document.documentElement.scrollTop - 25;
            }
            else {
                if (e.clientY < posY) { // Cas infobulle en haut de page
                    posY = document.documentElement.scrollTop;
                }
                else { // Cas général
                    posY = e.clientY + document.documentElement.scrollTop - posY;
                }
            }

            document.getElementById('divDetailsAdvert').style.left = posX + e.clientX + document.documentElement.scrollLeft + "px";
            document.getElementById('divDetailsAdvert').style.top = posY + "px";
            
        }
        else {
            if ((document.body.clientWidth - (e.clientX + document.body.scrollLeft)) < 330) {
                pos = -330;
            }
            document.getElementById('divDetailsAdvert').style.left = posX + e.clientX + document.body.scrollLeft + "px";
            document.getElementById('divDetailsAdvert').style.top = -posY + e.clientY + document.body.scrollTop + "px";
        }
    }
    document.getElementById('divDetailsAdvert').style.display = 'block';
    document.getElementById('divDetailsAdvert').style.position = 'absolute';
}

function HideDetailsAdvert() {
    //document.getElementById('divDetailsAdvert').innerHTML = "";
    document.getElementById('divDetailsAdvert').style.display = 'none';
}
