﻿var news_current_record = 0;
var blncompleted = false;
var news_last_record;
var creditals = "&vsUser=amsd&vsPwd=amsd";
var record_delim = "#";
var field_delim = "|";
var url = "wsSearch.asmx/sGetResults?vsSearchTerms=";  //sGetResults?vsSearchTerms=";
var urlquery = "wsSearch.asmx/sGetResultsBySQL?vsSQLQuery=";
var urlquerysearches = "wsSearch.asmx/sReturnHTMLSearchResultsBySQL?vsSQLQuery=";
var urlnews = "wsSearch.asmx/sGetNewsRecordsBySQL";
var urlsourcespeciesselect = "wsSearch.asmx/sGetSourceSpeciesSelectHTMLBySql?vsSQLQuery=";
var urlspeciesreactivityselect = "wsSearch.asmx/sGetSpeciesReactivitySelectHTMLBySql?vsSQLQuery=";
var urlantibodytypeselect = "wsSearch.asmx/sGetAntibodyTypeSelectHTMLBySql?vsSQLQuery=";
var http = null;
var http1 = null;
var httpnews = null;
var httpsearchresults = null;
var news_records = new Array();
var news_fields = new Array();
var news_link_text = new Array();
var news_link_href = new Array();
var news_img_src = new Array();
var productcounthttp = true;
var response = '';
var keyvalue = '';
var keytype = 0;
var _httpsync = false;
var _featureareashttp = null;
var thisSelect = null;
var _localsearchterms = null;
var _pagerender = 0;
var _topofpagelink = "<a style='font-weight:bold;float:right;padding:20px;' href='#topofpage'>Top of page>></a>";
var _recorddisplaylimit = 500;
var _options = '';
var _myhttp = null;
var selectedfields ='SELECT P.LEVEL_2_ID,P.CODE,P.DESCRIPTION,P.QUANTITY,P.PROMOTIONAL_FLAG,P.presedence,p.species_reactivity,p.applications,p.level_1_id,p.cloneno FROM ';
var selectfields = null;
var selectedtabledefault = ' MEM_PRODUCTS AS P ';
var selectedtablememory = ' MEM_PRODUCTS AS p ';
var orderby = ' ORDER BY P.LEVEL_2_ID,P.presedence DESC,P.CODE;'
var searchinghtml = '<center><img src="images/pagelayout/ajax-loader_pik.gif"'
                     + ' style="width:24px;vertical-align:middle;" />'
                     + 'Searching, please wait....'
                     + '</center>';
var searcherrorhtml="<div><font style='color:red;'>Sorry, there has been a SEARCH ERROR:</font><br/><br/><b>If you would like further assistance please contact our Customer Service Team. Thank you.</b>"; 
var _GLOBALSEARCHPAGE = 1;
var _PAGESEARCH = 2;
var browser = navigator.appName;
var _IE = 'Microsoft Internet Explorer';

function _getselectedtabledefault(nlevel1) {
//    if (nlevel1 > 100 && nlevel1<110) {
//       return " MEM_PRODUCTS_" + nlevel1 + " AS P ";
//    } else {
        return " MEM_PRODUCTS AS P ";
//    }
}

function processmenu(vsId) {
    var _state = document.getElementById(vsId).style.display;
    if (_state == '' || _state == null) {
        document.getElementById(vsId).style.display = 'block';
        document.getElementById('btn' + vsId).innerHTML = '[-]';
    } else {
        document.getElementById(vsId).style.display = 'none';
        document.getElementById('btn' + vsId).innerHTML = '[+]';
    }
}

function _getformsearchtermsquery() {
    var formsearchtermsquery = '';
    formsearchtermsquery = formsearchtermsquery + "&keywords=";
    if (document.getElementById("inputKeywords")) {
        formsearchtermsquery = formsearchtermsquery + document.getElementById("inputKeywords").value;
    };
    formsearchtermsquery = formsearchtermsquery + "&cloneno=";
    if (document.getElementById("inputCloneNumber")) {
        formsearchtermsquery = formsearchtermsquery + document.getElementById("inputCloneNumber").value;
    };
    formsearchtermsquery = formsearchtermsquery + "&abtype=";
    if (document.getElementById("selectAntibodyType")) {
        formsearchtermsquery = formsearchtermsquery + document.getElementById("selectAntibodyType").value;
    };
    formsearchtermsquery = formsearchtermsquery + "&speciesreactivity=";
    if (document.getElementById("selectSpeciesReactivity")) {
        formsearchtermsquery = formsearchtermsquery + document.getElementById("selectSpeciesReactivity").value;
    };
    formsearchtermsquery = formsearchtermsquery + "&sourcespecies=";
    if (document.getElementById("selectSourceSpecies")) {
        formsearchtermsquery = formsearchtermsquery + document.getElementById("selectSourceSpecies").value;
    };

    formsearchtermsquery = formsearchtermsquery + "&accessionnumber=";
    if (document.getElementById("inputaccessionnumber")) {
        formsearchtermsquery = formsearchtermsquery + document.getElementById("inputaccessionnumber").value;
    };     
    return formsearchtermsquery;
}

function _onsearchtermspage(blnmemory, level1, level2, level3, searchterms) {
    var keyname = null;
    var keyvalue = null;
    var _found = false;
    var keypairs = new Array();
    var keyitem = new Array();
    var _querylevels = ' (p.level_1_id=' + level1;
    var _query = null;
    var _pagerender = _PAGESEARCH;
    if (searchterms != '') {
        _localsearchterms = searchterms;      
        if (blnmemory == false) {
            _query = selectedfields + _getselectedtabledefault(level1) + ' WHERE ';
        } // if (blnmemory == false)
        if (blnmemory == true) {
            _query = selectedfields + selectedtablememory + ' WHERE ';
            _query = _query.replace('PP.', 'P.');
        } // if (blnmemory == false)   
        if (level1 == 999) {
            _querylevels = " (p.promotional_flag>0 ";
        }
        if (level1 == 998) {
            _querylevels = " p.level_1_id=101 and (p.is_stemcell=1 ";
        }
        if (level2) { _querylevels = _querylevels + " AND p.LEVEL_2_ID='" + level2 + "'"; }
        if (level3) { _querylevels = _querylevels + " AND p.LEVEL_3_ID='" + level3 + "'"; }
        keypairs = searchterms.split("&");
        for (var i = 1; i < (keypairs.length); i++) {
            keyitem = keypairs[i].split('=');
            keyname = keyitem[0];
            keyvalue = keyitem[1].replace('%20', ' ');
            if (keyvalue) {
                if (keyname == 'keywords') {
                    if (_found == true) { _query = _query + ' AND '; }
                    _query = _query + ' ('+  _returnsearchtermquery("P.DESCRIPTION", keyvalue, blnmemory);
                    _query = _query + ' OR ' + _returnsearchtermquery("P.CODE", keyvalue, blnmemory)+') ';
                    _found = true;
                } // if (keyname='keywords') {
                if (keyname == 'cloneno') {
                    if (_found == false) { _query = _query + ' '; }
                    if (_found == true) { _query = _query + ' AND '; }
                    _query = _query + _returnsearchtermquery("P.CLONENO", keyvalue, blnmemory) ;
                    _found = true;
                } // (keyname == 'cloneno')
                if (keyname == 'abtype' && keyvalue != 'Show All')
                 { _querylevels = _querylevels + " AND p.LEVEL_2_ID='" + keyvalue + "' "; }

                if (keyname == 'speciesreactivity' && keyvalue != 'Show All') {
                    if (_found == false) { _query = _query + ' '; }
                    if (_found == true) { _query = _query + ' AND '; }
                    _query = _query + _returnsearchtermquery("P.SPECIES_REACTIVITY", keyvalue, blnmemory);
                    _found = true;
                } // keyname == 'speciesreactivity

                if (keyname == 'sourcespecies' && keyvalue != 'Show All') {
                    if (_found == false) { _query = _query + ' '; }
                    if (_found == true) { _query = _query + ' AND '; }
                    _query = _query + _returnsearchtermquery("P.source_species", keyvalue, blnmemory);
                    _found = true;
                } // keyname == 'sourcespecies'
            } // if(keyvalue)           
        } // for (var i = 0; i < (keypairs.length - 1); i++) {
        if (_found == true) {
            //_query = _query + " and ";
            _query = _query + " and p.dat_id<>41 and ";
            }
        _querylevels = _querylevels + " ) ";
        _query = _query + _querylevels + orderby;
        cleardropdowns();
        document.getElementById("subcatdiv").innerHTML = '';
        document.getElementById("fulllistdiv").innerHTML = '';
        getServerMessage1(urlquery + _query, null);
    } // if (searchterms != '') {
}

function pausecomp(millis) {
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); }
    while (curDate - date < millis);
} 

// ******** related feature areas ************
function _CreateRelatedAreasList(blnmemory, level1, level2, level3) {
    var _query = 'SELECT DISTINCT(wf.title),wf.page_url,wf.image_url FROM web_feature_areas as wf' + ' inner join web_feature_areas_cross_ref as wxf on wxf.feature_id=wf.id where level_1_id=' + level1;
    if (level2) { _query = _query + ' AND LEVEL_2_ID="' + level2 + '"'; }
    if (level3) { _query = _query + ' AND LEVEL_3_ID="' + level3 + '"'; }
    _query = _query + ' ORDER BY wf.title;';
    var url = urlquery + _query;
    _featureareahtml = '<div style="height:auto;width:180px;vertical-align:top;font-size:8pt;">';
    if (!_featureareashttp) {
        _featureareashttp = getXMLHTTPRequest();
    } // if (!_featureareashttp) {
    if (_featureareashttp) {
        if (browser == _IE) { _httpsync = true; } else { _httpsync = true; }
        _featureareashttp.open('GET', url, _httpsync);
        _featureareashttp.onreadystatechange = _GetFeatures;
        _featureareashttp.send(null);
    } // if (_featureareashttp) {
} // function _CreateRelatedAreasList(blnmemory, level1, level2, level3) {

function _GetFeatures() {
    var _myresponse;
    var root;
    var records = new Array();
    var fields = new Array();
    if (_featureareashttp.readyState == 4 && _featureareashttp.status == 200) {
        _myresponse = _featureareashttp.responseXML;
        var _rootstring = _myresponse.getElementsByTagName("string")[0].firstChild.nodeValue;
        if (_rootstring != null) {
            var _searchterms = keyvalue;
            var featureareahtml='';
            records = _rootstring.split('#');
            for (var i = 1; i < records.length; i++) {
                if (records[i]) {
                    fields = records[i].split('|');
                    featureareahtml = featureareahtml + '<div style="width:175px;text-indent:16px;float:left;display:block;><center>';
                    featureareahtml = featureareahtml + '<div style="width:100%;overflow:flow;"><img style="width:64px;" src="' + fields[2] + '"/></div>';
                    featureareahtml = featureareahtml + '<div style="width:100%px;overflow:flow;"><a href="' + fields[1] + '">' + fields[0] + '</a></div>';
                    featureareahtml = featureareahtml + '</center></div>';
                } // if (records[i] != null) {
            } // for (var i = 0; i < records.length; i++) {
            featureareahtml = featureareahtml + "</div>";
            document.getElementById("relatedareas").innerHTML = featureareahtml;
            
        } // if (_rootstring != null) {
    } //if (myhttp1.readyState == 4 && myhttp1.status == 200) {        
} // function _GetFeatures()

// ******************************************

function _CreateSearchInputBox(_title) {
    var _returnHTML = '<div style="height:26px;width:490px;float:left;">';
    _returnHTML = _returnHTML + '<div class="products_sub_block_blue" style="text-indent:8px;height:26px;width:150px;float:left;vertical-align:middle;padding:4px;">' + _title + '</div>';
    _returnHTML = _returnHTML + '<div class="products_sub_block_gray" style="height:100%;width:270px;float:left;vertical-align:middle;text-align:center;padding:4px;">';
    _returnHTML = _returnHTML + '<input id="input' + _title.replace(' ','') + '" type="text" size="36"/></div></div>';
    return _returnHTML;   
}

function _CreateNamedSelect(title, _query) {
    _myhttp = getXMLHTTPRequest();
    var url = null;
    if (title == 'Source Species') { url = urlsourcespeciesselect + _query; }
    if (title == 'Species Reactivity') { url = urlspeciesreactivityselect + _query; }
    if (title == 'Antibody Type') { url = urlantibodytypeselect + _query; }
    if (_myhttp) {
        _myhttp.open('GET', url, false);
        _myhttp.onreadystatechange = _processGetOptions;
        _myhttp.send(null);
    }
    var _returnHTML = _myhttp.responseXML.getElementsByTagName('string').item(0).firstChild.data;
    return _returnHTML;  
}

function _processGetOptions() {
    if (_myhttp.readyState == 4 && _myhttp.status == 200) {
        return _myhttp.responseText;       
    } //if (myhttp1.readyState == 4 && myhttp1.status == 200) {        
} // function _GetOptions()

function geturlkeys() {
    var _keys = new Array();
    var _eachkey = new Array();
    _keys = window.location.search.split('&');
    if (_keys != '') {
        _eachkey = _keys[0].split('=');
        keyvalue = _eachkey[1].replace('%20', ' ');
        _eachkey = _keys[1].split('=');
        keytype = _eachkey[1];
    }
    return keyvalue + '|' + keytype;
}

function load_complete() {page_init();}

function initbrowser() {
    // detect browser
    browser = navigator.appName;
    if (browser == _IE) {
        _httpsync = false;
    } else {
        _httpsync = true;
    }
}

function homepage_init() {
    initbrowser();
    homebanner_flip();
    if (browser == _IE) {
        getServerMessageNews(urlnews);
    }    
}

function page_init() {
    initbrowser();
    banner_flip();
}

function homebanner_flip() {
    var _img = new Array();
    var _imgimgid = "imgbanner";
    _img[0] = "images/syndicut/home_banner1.jpg";
    _img[1] = "images/syndicut/home_banner2.jpg";
    _img[2] = "images/syndicut/home_banner3.jpg";
    _img[3] = "images/syndicut/home_banner4.jpg";
    _img[4] = "images/syndicut/home_banner5.jpg";
    // load adrotator
    _imgindex = (Math.floor(Math.random() * 5));
    document.getElementById(_imgimgid).src = _img[_imgindex];
}  // end of function load_complete()

function page_load(_id) {
    var msg = '';
    var _query = '';
    var keylist = geturlkeys();
    var searchterms = keyvalue;
    _pagerender = _id;
    // detect browser
    initbrowser();
    selectfields = selectedfields + selectedtabledefault;
    // global search page
    if ( _pagerender == _GLOBALSEARCHPAGE && keyvalue !='') {
        document.getElementById("searchterms").value = searchterms.replace('%20', ' ');       
        document.getElementById("messagediv").innerHTML = searchinghtml;
        _query = selectfields + " WHERE " + _returnsearchtermquery("P.DESCRIPTION", keyvalue)  + " OR " + _returnsearchtermquery("P.CODE", keyvalue);
        // level 1 grouping
        if (keytype >= 101 && keytype < 108) {
            _query = selectfields + "  WHERE " + _returnsearchtermquery("P.DESCRIPTION", keyvalue)+ " OR " + _returnsearchtermquery("P.CODE", keyvalue)  + " AND P.LEVEL_1_ID=" + keytype;
        }
        // product code
        if (keytype == 5) {
            _query = selectfields + _returnsearchtermquery("P.CODE", keyvalue);
        }
        // accn
        if (keytype == 2) {
            _query = selectfields + " WHERE " + _returnsearchtermquery("P.DESCRIPTION", keyvalue) + " OR " + _returnsearchtermquery("P.ACCESSION_NUMBER", keyvalue);
        }
        //cloneno
        if (keytype == 2) {
            _query = selectfields + " WHERE "+ _returnsearchtermquery("P.DESCRIPTION", keyvalue) + " OR " + _returnsearchtermquery("P.CLONENO", keyvalue);
        }
        _query = _query + " and p.dat_id<>41 ";
        _query = _query + orderby;
        _onsearchtermsClient(keyvalue, _query);        
    } //  if (_id == _GLOBALSEARCHPAGE) {
} // function page_load(_id)

function _returnsearchtermquery(vsColumn, vsSearchterms) {
    var sreturn = "";
    var sterms = new Array();
    var terms = vsSearchterms;
    // added to catch TUNEL for TACS.
    terms = terms.replace('tunel', 'TACS');
    terms = terms.replace('TUNEL', 'TACS');
    terms = terms.replace('%20', ' ');
    sterms = terms.split(' ');    
    for (var i = 0; i <= sterms.length; i++) {
        if (sterms[i] != null && sterms[i] != '') {
            if (i==0) {  sreturn = sreturn + " (";}
            if (i > 0) { sreturn = sreturn + " AND ("; }
            sreturn = sreturn + vsColumn + " LIKE('%" + sterms[i] + "') OR ";
            sreturn = sreturn + vsColumn + " LIKE('%" + sterms[i] + "%') OR ";
            sreturn = sreturn + vsColumn + " LIKE('" + sterms[i] + "%')) ";            
        }
    }
    return sreturn;
}

// part of main generic header inc. do not change
function getSearchResults(_searchterms) {
    var _results = new Array(_searchterms.split(" "));
    return _results;
}

function getXMLHTTPRequest() {
    try {        
            req = new XMLHttpRequest();
        } catch (err1) {
        try {
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (err2) {
        try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (err3) {

       req = false; }
        }
    } // try {
    return req;
} //getXMLHTTPRequest() {

function _onsearchtermsClient(searchterms, _query) {
    if (searchterms != '') {
        cleardropdowns();
        getServerMessage1(urlquery + _query, null);
    } // if (searchterms != '') {
} // _onsearchtermsClient(searchterms, _query) {

function getServerMessage(url, parameters) {
    http = getXMLHTTPRequest();
    if (http) {
        if (browser == _IE) { _httpsync = false; } else { _httpsync = true; }
        http.open('GET', url, _httpsync);
        http.onreadystatechange = process_response;
        http.send(null);
    } //if (http) {
} // getServerMessage(url, parameters) {

function getServerMessage1(url, parameters) {

    if (http1) { http1.abort(); }    
    http1 = getXMLHTTPRequest();
    if (http1) {
        if (browser == _IE) { _httpsync = true; } else { _httpsync = true; }
        http1.open('GET', url, _httpsync);
        http1.onreadystatechange = process_response_page_render;
        http1.send(null);
    } // if (http1) {
} // getServerMessage1(url, parameters) {

function _ReturnProductLink(vsFlag, vsCode, vsQty, vsName,vsSpeciesReactivity,vsApplications,vllevel1,vscloneno) {
    var sReturn = '<div class="js_record_div">';
    sReturn = sReturn + "<a class='grayHyperlink_style1a' href='productpage.aspx?code=" + vsCode + "' title='click to order'>";
    sReturn = sReturn + "<div>";
    sReturn = sReturn + "<div class='js_record_catcode'>" + vsCode + "</div>";
    sReturn = sReturn + "<div class='js_record_packsize'>" + vsQty + "</div>";
    sReturn = sReturn + "<div class='js_record_description'>" + vsName + "</div>";
    sReturn = sReturn + "<div class='js_record_basketimg_div'>";
    sReturn = sReturn + "<img style='border:0px;' src='images/pagelayout/basket.png'/></div>";
    sReturn = sReturn + "</div></a>";
    sReturn = sReturn + "<div class='js_record_offerimage_div'>";
    if (vsFlag == 0) {
        sReturn = sReturn + "<img class='js_record_offerimage' src='images/pagelayout/0.png'/>";
    }        
    if (vsFlag > 0) {
      sReturn = sReturn + "<a href='promotions.aspx' target='_blank' ";
      sReturn = sReturn + " title='click to view all products on promotion'>";
      sReturn = sReturn + " <img style='border:0px;' src='images/pagelayout/" + vsFlag + ".png'/></a>";
    }
    sReturn = sReturn + "</div>";
    sReturn = sReturn + "</div>";
    if (vllevel1 == 101) {
        sReturn = sReturn + "<div class='js_record_extrainfo_div'>";
        if (vsApplications) { sReturn = sReturn + "<span> <b>Applications</b>: " + vsApplications +"</span>"; }
        if (vsSpeciesReactivity) { sReturn = sReturn + "<span> <b>Reactivity</b>: " + vsSpeciesReactivity + "</span>"; }
        if (vscloneno) { sReturn = sReturn + "<span> <b>Clone No.</b>: " + vscloneno + "</span>"; }
        sReturn = sReturn + "</div>";        
    }
    sReturn = sReturn + "</div>";
    return sReturn;
}


// main search bar to not change.
function _onsearchterms(searchterms) {    
    cleardropdowns();
    if (searchterms != '') {
        searchterms = searchterms.replace("%20", " ");
        searchterms = searchterms.replace(" ", "%");
        var _query = "SELECT distinct(DESCRIPTION) FROM mem_products WHERE DESCRIPTION LIKE('" + searchterms + "') OR CODE LIKE('" + searchterms + "') OR DESCRIPTION LIKE('" + searchterms + "') OR CODE LIKE('" + searchterms + "') ORDER BY DESCRIPTION;";
        getServerMessage(urlquery + _query, null);
    }    
}

// main search bar to not change.
function process_response() {
    // only if req shows "complete"
    var _display;
    var _displaycosmetic;
    if (http) {
        if (http.readyState == 4 && http.status == 200) {
            response = http.responseXML;
            if (document.getElementById("searchreturns")) {
                if (response != null || response != '') {
                    var _searchterms = document.getElementById("searchreturns").value;
                    var root = response.getElementsByTagName('string')[0].firstChild.data;
                    var records = new Array();
                    records = root.split('#');
                    //document.getElementById("totalrecords").innerHTML = " (records found: " + records.length + ")";
                    var displayHTML = '';
                    if (_searchterms != null) {
                        for (n = 0; n < 6; n++) {
                            _displaycosmetic = _searchterms;
                            _display = records[n].replace(_searchterms, _displaycosmetic);
                            _mouseover = "onclick='onmouseover_main_returns(this.innerHTML)'";
                            displayHTML = displayHTML + "<div " + _mouseover + ">" + _display + "</div>";
                        } //for (n = 0; n < 6; n++) {
                        document.getElementById("searchreturns").innerHTML = displayHTML;
                        document.getElementById("searchreturns").style.visiblilty = 'visible';
                    } //if (_searchterms != null) {                
                } //if (response.text != null || response.text !='' ) {
            } //if (document.getElementById("searchreturns")) {
        } //if (http.readyState == 4 && http.status == 200) {
    } //if (http) {
} //function process_response() {


// ******** utilities processing **********

function banner_flip() {
    var _img = new Array();
    var _imgimgid = "imgbanner";
    _img[0] = "images/syndicut/products_banner1.jpg";
    _img[1] = "images/syndicut/products_banner2.jpg";
    _img[2] = "images/syndicut/products_banner3.jpg";
    _img[3] = "images/syndicut/products_banner4.jpg";
    _img[4] = "images/syndicut/products_banner5.jpg";
    _img[5] = "images/syndicut/products_banner6.jpg";
    _img[6] = "images/syndicut/products_banner7.jpg";
    _img[7] = "images/syndicut/products_banner8.jpg";
    _img[8] = "images/syndicut/products_banner9.jpg";
    _img[9] = "images/syndicut/products_banner10.jpg";
    // load adrotator
    _imgindex = (Math.floor(Math.random() * 10));
    document.getElementById(_imgimgid).src = _img[_imgindex];
}

function cleardropdowns() {
    document.getElementById("searchreturns").innerHTML = '';
    document.getElementById("totalrecords").innerHTML = '';
    document.getElementById("totalrecords").innerHTML = '';
}

function process_menu_over(sElementId) {
    process_menu_out();
    document.getElementById(sElementId).style.visibility = 'visible';
}

function process_menu_out() {
    //document.getElementById('').style.visibility = 'hidden';
    document.getElementById('div_home_menu').style.visibility = 'hidden';
    document.getElementById('div_products_menu').style.visibility = 'hidden';
    document.getElementById('div_customservices_menu').style.visibility = 'hidden';
    document.getElementById('div_presentations_menu').style.visibility = 'hidden';
    document.getElementById('div_news_menu').style.visibility = 'hidden';
    document.getElementById('div_partners_menu').style.visibility = 'hidden';
    document.getElementById('div_basket_menu').style.visibility = 'hidden';
    document.getElementById('div_contactus_menu').style.visibility = 'hidden';
}

function mainsearchbutton_onclick() {
    var _searchterms = document.getElementById("searchterms").value;
    _searchterms = _searchterms.replace('%20', ' ');
    document.getElementById("searchterms").value = _searchterms;
    var _url = "search-results.aspx?value=" + _searchterms + "&type=" + keytype;
    window.location = _url;
}

// ******* product count **********
function _GetProductCount(blnmemory, level1id, level2id, level3id) {
    var _table = " MEM_PRODUCTS " // MEM_PRODUCTS_" + level1id;
    var _query = null;
    _query = "SELECT COUNT(CODE) FROM " + _table + " WHERE LEVEL_1_ID=" + level1id;
    if (level2id != '') { _query = _query + " AND LEVEL_2_ID='" + level2id + "' "; }
    if (level3id != '') { _query = _query + " AND LEVEL_3_ID='" + level3id + "' "; }
    if (level1id == 999) {
        _query = "SELECT COUNT(CODE) FROM MEM_PRODUCTS WHERE promotional_flag>0";
    } //(level1id == 999)
    if (level1id == 998) {
        _query = "SELECT COUNT(CODE) FROM MEM_PRODUCTS WHERE IS_STEMCELL=1 and level_1_id=101 ";
    } //(level1id == 999)   
    _query = _query + ";";
    getServerMessageProductCount(urlquery + _query);
}

function getServerMessageProductCount(_url) {
    productcounthttp = getXMLHTTPRequest();
    if (productcounthttp) {
        productcounthttp.open('GET', _url, true);
        productcounthttp.onreadystatechange = process_response_productcount;
        productcounthttp.send(null);
    }
}

function process_response_productcount() {
    if (productcounthttp.readyState == 4 && productcounthttp.status == 200) {
        response = productcounthttp.responseXML;
            if (response.text != '') {
                var _searchterms = document.getElementById("searchreturns").value;
                var root = response.getElementsByTagName('string')[0].firstChild.data;
                var records = new Array();
                records = root.split('#');
                var count = records[1];
                if (count < 0) { count = 0; }                
                document.getElementById("totalproductsforthispage").innerHTML = "<span style='text-indent:8px;padding:8px;'> (" + count + " products)</span>";
                if (count <= 151) {
                    var searchbutton = document.getElementById("pagesearchbutton");
                    var func = searchbutton.onclick;
                    func();
                } // if (records[0] <= 151) {               
            } // if (response.text != '') {
        } // if (http.readyState == 4 && http.status == 200) {
} // function process_response_productcount() {

// ******** home page news list *********
function news_scroll_up() {
    news_current_record--;
    news_populate_container();
    access_newscontrols();
}

function news_scroll_down() {
    news_current_record++;
    news_populate_container();
    access_newscontrols();
}

function access_newscontrols() {
    document.getElementById("newscontainer_control_up").style.visibility = 'visible';
    document.getElementById("newscontainer_control_down").style.visibility = 'visible';
}

function getServerMessageNews(_url) {
    httpnews = getXMLHTTPRequest();
    if (httpnews) {
        httpnews.open('GET', _url, true);
        httpnews.onreadystatechange = process_response_news;
        httpnews.send(null);
    }
}

function process_response_news() {
    if (httpnews) {
        if (httpnews.readyState == 4 && httpnews.status == 200) {
            response = httpnews.responseXML;
            if (response.text != '') {
                var root = response.getElementsByTagName('string')[0].firstChild.data;
                // split out string into records
                news_records = root.split(record_delim);
                news_last_record = (news_records.length - 2);
                // cycle through records and add to field arrays
                for (var record = 0; record <= news_last_record; record++) {
                    news_fields = news_records[record].split(field_delim);
                    news_img_src[record] = news_fields[3];
                    news_link_text[record] = news_fields[2];
                    news_link_href[record] = news_fields[5];
                }  // end of for (var record; record++; record<=news_records.length)
                // set random start point for home page
                news_current_record = Math.floor(Math.random() * news_last_record + 1);
                news_populate_container();
                access_newscontrols();  
            }//if (response.text != '') {
        }//if (http.readyState == 4 && http.status == 200) {
    } // if (httpnews)
} //function process_response_news() {

function news_populate_container() {
    var news_id_1 = news_current_record;
    if (news_id_1 > news_last_record) { news_id_1 = 0; }
    if (news_id_1 < 0) { news_id_1 = news_last_record; }
    var news_id_2 = news_id_1 + 1;
    if (news_id_2 > news_last_record || news_id_2 < 0) { news_id_2 = 0; }
    if (news_id_2 < 0) { news_id_2 = news_last_record; }
    var news_id_3 = news_id_2 + 1;
    if (news_id_3 > news_last_record || news_id_3 < 0) { news_id_3 = 0; }
    if (news_id_3 < 0) { news_id_3 = news_last_record; }

    var news_id_4 = news_id_3 + 1;
    if (news_id_4 > news_last_record || news_id_4 < 0) { news_id_4 = 0; }
    if (news_id_4 < 0) { news_id_4 = news_last_record; }

    var news_id_5 = news_id_4 + 1;
    if (news_id_5 > news_last_record || news_id_5 < 0) { news_id_5 = 0; }
    if (news_id_5 < 0) { news_id_5 = news_last_record; }
        
    var img_1 = document.getElementById("news_item_img_1");
    var link_1 = document.getElementById("news_item_link_1");
    img_1.setAttribute("src", news_img_src[news_id_1]);
    link_1.setAttribute("innerHTML", news_link_text[news_id_1]);
    link_1.setAttribute("href", news_link_href[news_id_1]);
    var img_2 = document.getElementById("news_item_img_2");
    var link_2 = document.getElementById("news_item_link_2");
    img_2.setAttribute("src", news_img_src[news_id_2]);
    link_2.setAttribute("innerHTML", news_link_text[news_id_2]);
    link_2.setAttribute("href", news_link_href[news_id_2]);
    
    var img_3 = document.getElementById("news_item_img_3");
    var link_3 = document.getElementById("news_item_link_3");
    img_3.setAttribute("src", news_img_src[news_id_3]);
    link_3.setAttribute("innerHTML", news_link_text[news_id_3]);
    link_3.setAttribute("href", news_link_href[news_id_3]);
    
    var img_4 = document.getElementById("news_item_img_4");
    var link_4 = document.getElementById("news_item_link_4");
    img_4.setAttribute("src", news_img_src[news_id_4]);
    link_4.setAttribute("innerHTML", news_link_text[news_id_4]);
    link_4.setAttribute("href", news_link_href[news_id_4]);
    
    var img_5 = document.getElementById("news_item_img_5");
    var link_5 = document.getElementById("news_item_link_5");
    img_5.setAttribute("src", news_img_src[news_id_5]);
    link_5.setAttribute("innerHTML", news_link_text[news_id_5]);
    link_5.setAttribute("href", news_link_href[news_id_5]);
    
}

function process_response_page_render() {
    // only if req shows "complete"
    var _display;
    var _levelcount = 0;
    var _displaycosmetic;
    var _displayfound = '';
    var _displaySubDivide = '';
    var _displayFullList = '<a name="#allrecordslist"/><div class="js_record_fullrecords_div" >'
                           + '<span style="font-weight:bold;">All Products (_totalrecords)</span></div>';
    var _headerbar = '<div class="js_record_tableheader">'
    + '<div class="js_record_catcode">Cat Code.</div>'
    + '<div class="js_record_packsize">Pack Size</div>'
    + '<div class="js_record_description">Description</div>'
    + '<div class="js_record_basketimg_div"></div>'
    + '<div class="js_record_offerimage_div"><img class="js_record_offerimage" src="images/pagelayout/0.png"/></div>'
    + '</div>';

    var _altrow = 0;
    var _divstyle;
    var _level_2_ids_name = new Array();
    var root;
    var records = new Array();
    var _lastone;
    var _totalrecords = 0;
    var _subgrpid = 0;
    var _response_text = null;
    var messagediv = document.getElementById("messagediv");
    var _displaysummarylinks = '<div style="width:100%"><table><tr><td><ul><li class="custom_list_bullet"><a href="#allrecordslist">All Records (_totalrecords)</a></li>';
    var _rootcount = new Array();
    if (http1) {
        if (messagediv.innerHTML != searchinghtml) { messagediv.innerHTML = searchinghtml; }
        
        if (http1.readyState == 4 && http1.status == 200) {
            response = http1.responseXML;
            var _rootstring = response.getElementsByTagName("string")[0].firstChild.nodeValue;
            if (_rootstring != null) {
                //if (_pagerender == _GLOBALSEARCHPAGE || _pagerender ==_PAGESEARCH ) {
                var _searchterms = keyvalue;
                _searchterms = _searchterms.replace('%20', ' ');
                root = response.getElementsByTagName('string').item(0).firstChild.data;
                records = new Array();
                records = root.split('#');
                if (parseInt(records[0]) > 0 && parseInt(records[0]) < _recorddisplaylimit) {

                    messagediv.innerHTML = "<div style='width:100%;height:auto;float:left;'>Your search found <b>" + (records.length - 1) + "</b> records.<br/></div>";

                    if (http1) { http1.abort(); }

                    _displayFullList = _displayFullList.replace("_totalrecords", parseInt(records[0])) + _headerbar;
                    _displaysummarylinks = _displaysummarylinks.replace("_totalrecords", parseInt(records[0]));
                    var displayHTML = '';
                    var _displayrecord = '';
                    for (n = 1; n < (records.length); n++) {
                        fields = records[n].split('|');
                        if (_altrow == 0) {
                            _divstyle = "<div class='js_record_row_style0'>";
                            _altrow = 1;
                        }
                        else {
                            _divstyle = "<div class='js_record_row_style1'>";
                            _altrow = 0;
                        } //  if (_altrow == 0)
                        // vsFlag, vsCode, vsQty, vsName,vsSpeciesReactivity,vsApplications,vllevel1,vscloneno
                        if (fields[1] != null) {
                            _displayrecord = _divstyle + _ReturnProductLink(fields[4], fields[1], fields[3], fields[2], fields[6], fields[7], fields[8], fields[9]);
                            if (fields[1] != null && fields[1] != null && fields[2] != null) {
                                _displayFullList = _displayFullList + _displayrecord;
                            }

                            if (_lastone != fields[0] && fields[1] != null) {
                                // if (n > 1) { _displaySubDivide = _displaySubDivide + "</div>"; }
                                if (n > 1) { _displaySubDivide = _displaySubDivide + "</tr>"; }
                                if (fields[0] != null) {
                                    if (_subgrpid > 0) {
                                        _displaySubDivide = _displaySubDivide.replace("_totalrecords", _totalrecords);
                                        _displaysummarylinks = _displaysummarylinks.replace("_totalrecords", _totalrecords);
                                        _displaySubDivide = _displaySubDivide + _topofpagelink
                                    }

                                    _displaySubDivide = _displaySubDivide + "<a name='#" + n + "' id='#" + n + "'/>"
                                                                      + "<div class='js_record_subdivide'>"
                                                                      + "<span>" + fields[0] + " (_totalrecords)</span></div>" + _headerbar;

                                    if (fields[0]) {
                                        _displaysummarylinks = _displaysummarylinks + '<li class="custom_list_bullet"><a href="#' +
                                        n + '">' + fields[0] + ' (_totalrecords)</a></li>';
                                    }
                                    
                                    _displaySubDivide = _displaySubDivide + "<div id='subgrpcontent" + _subgrpid + "' class='js_record_subgrpcontent'>";
                                    _subgrpid++;
                                    _totalrecords = 0;
                                }

                            } // if (_lastone !=_level_2_ids_name[n] )

                            if (fields[0] != null) {
                                _displaySubDivide = _displaySubDivide + _displayrecord;
                                _totalrecords++;
                            }
                            _lastone = fields[0];
                        }
                    } // for (n = 0; n < (records.length - 1); n++)
                    
                    _displaysummarylinks = _displaysummarylinks.replace("_totalrecords", _totalrecords) + "</td></tr></table></div>";

                    _displaySubDivide = _displaySubDivide.replace("_totalrecords", _totalrecords);
                    _displaySubDivide = _displaySubDivide + _topofpagelink;

                    var resultstext = "</br><div style='width:100%;float:left;'>Your search for <b>" + _searchterms + "</b> found " + parseInt(records[0]) + " records.<br/></div>";

                    if (_totalrecords <= _recorddisplaylimit) {

                        if (_subgrpid > 1) {
                            messagediv.innerHTML =
                            resultstext + _displaysummarylinks + _displaySubDivide + _displayFullList + _topofpagelink;
                           } else {
                            messagediv.innerHTML =
                            resultstext + _displayFullList + _topofpagelink;
                          }
                      }
                    
                   /* 
                    'IN PR_PAGE_URL VARCHAR(1024),
                    'IN PR_ROWS INTEGER,
                    'IN PR_OBJECT_VALUE
                   */
                    _localsearchterms =escape( _localsearchterms);
                    var _urllocal = "wsSearch.asmx/sRecordSearchAction?vsSearchTerms=PR_PAGE_URL#" + location.href + "|PR_ROWS INTEGER#" + parseInt(records[0]) + "|PR_OBJECT_VALUE#" + _localsearchterms;
                    sRecordInPageSearch(_urllocal );
                }
            }

            //  } // if (_id == _GLOBALSEARCHPAGE)
        }

        if (_rootstring) {
            if (parseInt(_rootstring) == 0) {
                messagediv.innerHTML = " Your search found 0 records. Please adjust your search terms."
                  + " If you would like further assistance please contact our Customer Service Team. Thank you.";
            }

            if (parseInt(_rootstring) >= _recorddisplaylimit) {
                messagediv.innerHTML = "Your Search found " + parseInt(_rootstring) + " records. Please refine your search terms further as Thank you.";
            }


            if (_rootstring == searcherrorhtml) {
                messagediv.innerHTML = searcherrorhtml;
            }
        }

    }

}

function sRecordInPageSearch(_url) {

    if (httpsearchresults) { httpsearchresults.abort(); }
    httpsearchresults = getXMLHTTPRequest();
    if (httpsearchresults) {
    httpsearchresults.open('GET', _url, true);
    httpsearchresults.onreadystatechange = process_response_recordsearchresults;
    httpsearchresults.send(null);
    }
}

function process_response_recordsearchresults() {
    if (httpsearchresults) {
        if (httpsearchresults.readyState == 4 && httpsearchresults.readyState.status == 200) {
            httpsearchresults.abort();
        } //if (httpsearchresults.readyState == 4 && httpsearchresults.readyState.status == 200) {
    } //if (httpsearchresults) {
} //function process_response_recordsearchresults() {