﻿/* Fashion Quick Search Javascript Functions [Fashion/Shopping] */

var _WAIT_TIME = 500;
var _timeoutFunction;
var _executor = null;
var _pageIndex = "1";
var _pageSize = "6";
//var _initionalState = true;

//Members
var _textBoxSearchId = "";
var _divSearchOutputContainerId = "divOutput";
var _PortalId = 0;
var _SupplierLanguageId = 0;
var _DealerLanguageId = 0;
var _IsShopping = false;
var _ShopInShopId = 0;

var _IsPortalFrontEnd = 0;

//when document has been fully loaded
$(document).ready(function () {
    Sys.Net.WebRequestManager.add_invokingRequest(onInvokingRequest);
});

function initialQuickSearchMembersShopInShop(objectTextBoxSearch, PortalId, SupplierLanguageId, DealerLanguageId, ShopInShopId, IsShopping) {
    _ShopInShopId = ShopInShopId;
    initialQuickSearchMembers(objectTextBoxSearch, PortalId, SupplierLanguageId, DealerLanguageId, IsShopping);
}

function initialQuickSearchMembers(objectTextBoxSearch, PortalId, SupplierLanguageId, DealerLanguageId, IsShopping) {
    if (objectTextBoxSearch != null) {
        _textBoxSearchId = objectTextBoxSearch.id;

        _PortalId = PortalId;
        _SupplierLanguageId = SupplierLanguageId;
        _DealerLanguageId = DealerLanguageId;
        _IsShopping = IsShopping;
    }
}

function initialQuickSearchMembersPortalFrontEnd(objectTextBoxSearch, PortalId, SupplierLanguageId, DealerLanguageId, IsShopping, IsPortalFrontEnd) 
{
    if (objectTextBoxSearch != null) 
    {
        _textBoxSearchId = objectTextBoxSearch.id;

        _PortalId = PortalId;
        _SupplierLanguageId = SupplierLanguageId;
        _DealerLanguageId = DealerLanguageId;
        _IsShopping = IsShopping;
        _IsPortalFrontEnd = IsPortalFrontEnd;
    }
}

function onTxtClick(objectTextBoxSearch) {
    if (objectTextBoxSearch != null) {
        objectTextBoxSearch.value = '';
    }
}

function onTxtKeyDown() {
    //initialize with default values 
    _pageIndex = "1";
    _pageSize = "6"
    //_initionalState = false;

    if (_timeoutFunction)
        clearTimeout(_timeoutFunction);
}

function onTxtKeyUp(objectTextBoxSearch) {
    if (objectTextBoxSearch.value == '') {
        var divOutput = document.getElementById(_divSearchOutputContainerId);
        if (divOutput != null)
            divOutput.innerHTML = '';

        return;
    }

    _timeoutFunction = setTimeout(performSearch, 300);
}

function performSearch() {
    if (_executor) {
        _executor.abort();
        _executor = null;
    }
    var searchField = document.getElementById(_textBoxSearchId);

    /*var PortalId = "<%=PortalId %>";
    var SupplierLanguageId = "<%=SupplierLanguageId %>";
    var DealerLanguageId = "<%=DealerLanguageId %>";
    var IsShopping = "<%=IsShopping %>";*/

    if (_IsShopping == 'True') {
        QuickSearchSuggestionService.OutputHtmlResultForWebShop(searchField.value.trim(), _PortalId, _DealerLanguageId, _pageIndex, _pageSize, onComplete_search, onError_search);
    }
    else 
    {
        if(_IsPortalFrontEnd == 0)
            QuickSearchSuggestionService.OutputHtmlResult(searchField.value.trim(), _PortalId, _SupplierLanguageId, _DealerLanguageId, _ShopInShopId, _pageIndex, _pageSize, onComplete_search, onError_search);
        else
            QuickSearchSuggestionService.OutputHtmlResultForPortalFrontEnd(searchField.value.trim(), _PortalId, _SupplierLanguageId, _DealerLanguageId, _ShopInShopId, _pageIndex, _pageSize, onComplete_search, onError_search);
    }
}

function onInvokingRequest(sender, args) {
    _executor = args.get_webRequest().get_executor();
}
function onComplete_search(result) {
    // do whatever you want with result from web server
    $get(_divSearchOutputContainerId).innerHTML = result;
    _executor = null;
}
function onError_search() {
    // place error handling code here
    _executor = null;
}

function clickNextResults(pageIndex, pageSize) {
    var searchField = document.getElementById(_textBoxSearchId);
    if (searchField.value == '') {
        var divOutput = document.getElementById(_divSearchOutputContainerId);
        if (divOutput != null)
            divOutput.innerHTML = '';

        return;
    }

    _pageIndex = pageIndex;
    _pageSize = pageSize;
    _timeoutFunction = setTimeout(performSearch, 300);
}



String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g, "");
}

document.onmousedown = function () { aHide() };

function aHide() {

    var zxcevt = window.event || arguments.callee.caller.arguments[0];
    var divOutput = document.getElementById(_divSearchOutputContainerId);

    if (divOutput == null)
        return;

    var OffSetLef = 0;
    var obj = divOutput;


    while (obj != null) {

        OffSetLef += obj.offsetLeft;
        obj = obj.offsetParent;
    }

    if (zxcevt.screenX < OffSetLef || zxcevt.screenX > OffSetLef + divOutput.offsetWidth)
        divOutput.innerHTML = '';
}