var mt = 0;

var req;
function doAjax(url, callMethod){
    if(typeof XMLHttpRequest != "undefined"){
        req = new XMLHttpRequest();
        try {
            req.open("GET", url, true);
        } catch (e) {
            alert(e);
        }
        req.onreadystatechange = callMethod;
        req.send(null);
    }else if(window.ActiveXObject){
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if(req){
            req.open("GET", url, true);
            req.onreadystatechange = callMethod;
            req.send();
        }
    }
}

function doAjaxNP(url){
    if(typeof XMLHttpRequest != "undefined"){
        req = new XMLHttpRequest();
        try {
            req.open("GET", url, true);
        } catch (e) {
            alert(e);
        }
        req.send(null);
    }else if(window.ActiveXObject){
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if(req){
            req.open("GET", url, true);
            req.send();
        }
    }
}

function getHTTPObjectUser() {
var xmlhttp;
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;}
}

if(!xmlhttp && typeof ActiveXObject != "undefined"){
   try{ xmlhttp=new ActiveXObject("MSXML2.XMLHTTP"); }catch(e){xmlhttp=false;}
   if(!xmlhttp)try{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){xmlhttp=false;}
  }

return xmlhttp;
}

function recalcBasket(){
    doAjax("/Basket.do?method=recalc&uid=" + new Date().getTime(), setBasket);
}

function removeBasketItem(i){
    doAjax("/Basket.do?method=remove&i=" + i + "&uid=" + new Date().getTime(), setBasket);
}

function setBasket(){
    if(req.readyState == 4){
        if(req.status == 200){
            var split = req.responseText.split("@@ebusiness@@");

            if(document.getElementById("basketDtl"))
                document.getElementById("basketDtl").innerHTML = split[0];

            if(document.getElementById("basketTotal"))
                document.getElementById("basketTotal").innerHTML = "Total " + split[1];
        }
    }
}

function keySearch(e){

    var characterCode;
    if(e && e.which){
        e = e;
        characterCode = e.which;
    }else{
        e = event;
        characterCode = e.keyCode;
    }

    if(characterCode == 13)
        search();
}

function search(){
    if(validateSearch()){
        document.SearchForm.action = document.SearchForm.action + "?method=view&s=" + escape(document.SearchForm.search.value);
        document.SearchForm.submit();
    }
}

function validateSearch(){
    var s = document.SearchForm.search.value;
    if(s.trim().length == 0 || s == 'Keyword / Product Code')
        return false;

    document.body.style.cursor = 'wait';

    return true;
}

function clearText(theText) {
	theText.value = ""
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

String.prototype.endsWith = function (s) { return this.length >= s.length && this.substr(this.length - s.length) == s; }

function showTab(id){
    mt = setTimeout("setTab('" + id + "')", 500);
}

function setTab(id){
    document.getElementById(id).style.backgroundImage = "url('/image/titlebarBack.jpg')";
    document.getElementById(id).style.backgroundRepeat = 'repeat-x';
    document.getElementById(id).style.textDecoration = 'underline';

    if(document.getElementById(id + 'Menu'))
        document.getElementById(id + 'Menu').style.display = 'block';
}

function hideTab(id){
    clearTimeout(mt);
    
    document.getElementById(id).style.backgroundImage = "url('/image/titlebar.jpg')";
    document.getElementById(id).style.backgroundRepeat = 'repeat-x';
    document.getElementById(id).style.textDecoration = 'none';

    if(document.getElementById(id + 'Menu'))
        document.getElementById(id + 'Menu').style.display = 'none';
}

function show(id){
    document.getElementById(id).style.display = 'block';
}

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

function showActiveTab(id){
    mt = setTimeout("setActiveTab('" + id + "')", 500);
}

function setActiveTab(id){
    if(document.getElementById(id + 'Menu'))
        document.getElementById(id + 'Menu').style.display = 'block';
}

function setMenu(){
    if(req.readyState == 4){
        if(req.status == 200){
            var split = req.responseText.split("@@ebusiness@@");
            document.getElementById(split[0] + "MenuLoad").innerHTML = split[1];
        }
    }
}

function hideActiveTab(id){
    clearTimeout(mt);

    if(document.getElementById(id + 'Menu'))
        document.getElementById(id + 'Menu').style.display = 'none';
}

function showBasket(id){
    document.getElementById(id + 'Menu').style.display = 'block';
}

function hideBasket(id){
    document.getElementById(id + 'Menu').style.display = 'none';
}

function selectSubMenu(id){
    var img = document.getElementById(id).src;
    if(img.endsWith('refineHidden.jpg')){
        document.getElementById(id).src = '/image/refineShow.jpg';
        document.getElementById('sub-' + id).style.display = '';

        var split = id.split("-");
        doAjax("/Menu.do?method=active&n=" + split[0] + "&id=" + split[2] + "&uid=" + new Date().getTime(), setSubMenu);
    }else{
        document.getElementById(id).src = '/image/refineHidden.jpg';
        document.getElementById('sub-' + id).style.display = 'none';
    }
    hideSubMenu(id);
}

function setSubMenu(){
    if(req.readyState == 4){
        if(req.status == 200){
            var split = req.responseText.split("@@ebusiness@@");
            document.getElementById(split[0]).innerHTML = split[1];
        }
    }
}

function hideSubMenu(id){
    var split = id.split("-");
    for(i = 0; i < 100; i++){
        var tid = split[0] + "-" + "menu" + "-" + i;
        if(document.getElementById(tid)){
            if(tid != id){
                document.getElementById(tid).src = '/image/refineHidden.jpg';

                if(document.getElementById("sub-" + tid)){
                    document.getElementById('sub-' + tid).style.display = 'none';
                }
            }
        }
    }
}


function selectSubMainMenu(id){
    var img = document.getElementById(id).src;
    if(img.endsWith('refineHidden.jpg')){
        document.getElementById(id).src = '/image/refineShow.jpg';
        document.getElementById('sub-' + id).style.display = '';
    }else{
        document.getElementById(id).src = '/image/refineHidden.jpg';
        document.getElementById('sub-' + id).style.display = 'none';
    }
}

function showExpand(id){
    var s = document.getElementById('expandCollapse').innerHTML;

    for(i = 0; i < 100; i++){
        var tid = id + "-" + "menu" + "-" + i;
        if(document.getElementById(tid)){
            if(document.getElementById("sub-" + tid)){
                if(s == 'Expand'){
                    document.getElementById(tid).src = '/image/refineShow.jpg';
                    document.getElementById('sub-' + tid).style.display = '';
                }else{
                    document.getElementById(tid).src = '/image/refineHidden.jpg';
                    document.getElementById('sub-' + tid).style.display = 'none';
                }
            }
        }
    }

    if(s == 'Expand'){
        document.getElementById('expandCollapse').innerHTML = 'Hide';
        doAjaxNP("/Menu.do?method=status&s=EXPANDED&uid=" + new Date().getTime());
    }else{
        document.getElementById('expandCollapse').innerHTML = 'Expand';
        doAjaxNP("/Menu.do?method=status&s=HIDDEN&uid=" + new Date().getTime());
    }
}

function signout(){
    doAjax("/SignOut.do?method=signout&uid=" + new Date().getTime(), setSignout);
}

function setSignout(){
    if(req.readyState == 4){
        if(req.status == 200){
            if(document.getElementById("welcomeFirstName"))
                document.getElementById("welcomeFirstName").innerHTML = "";
            if(document.getElementById("welcomeLastName"))
                document.getElementById("welcomeLastName").innerHTML = "";
            if(document.getElementById("welcome"))
                document.getElementById("welcome").style.display = "none";
            recalcBasket();
        }
    }
}

function showApplCat(){
    var s = document.getElementById('applCatMenuStatus').innerHTML;

    if(s == 'Show'){
        document.getElementById('applCatMenuSelect').style.display = '';
        document.getElementById('applCatMenuImage').src = '/image/refineShow.jpg';

        for(i = 0; i < 10; i++){
            if(document.getElementById('applCatMenuMain' + i))
                document.getElementById('applCatMenuMain' + i).style.display = '';
        }

        if(document.getElementById('applCatMenuButton'))
            document.getElementById('applCatMenuButton').style.display = '';

        if(document.getElementById('applCatMenuButton2'))
            document.getElementById('applCatMenuButton2').style.display = '';

        document.getElementById('applCatMenuListed').style.display = '';

        document.getElementById('applCatMenuStatus').innerHTML = 'Hide';
    }else{
        document.getElementById('applCatMenuSelect').style.display = 'none';
        document.getElementById('applCatMenuImage').src = '/image/refineHidden.jpg';

        for(i = 0; i < 10; i++){
            if(document.getElementById('applCatMenuMain' + i))
                document.getElementById('applCatMenuMain' + i).style.display = 'none';
        }

        if(document.getElementById('applCatMenuButton'))
            document.getElementById('applCatMenuButton').style.display = 'none';

        if(document.getElementById('applCatMenuButton2'))
            document.getElementById('applCatMenuButton2').style.display = 'none';

        document.getElementById('applCatMenuListed').style.display = 'none';

        document.getElementById('applCatMenuStatus').innerHTML = 'Show';
    }
}
