var xmlHttp;
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5") != -1) ? 1 : 0;
var is_opera = ((navigator.userAgent.indexOf("Opera6") != -1) || (navigator.userAgent.indexOf("Opera/6") != -1)) ? 1 : 0;
//netscape, safari, mozilla behave the same???
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;
var divToSet = 'DivMain';
var pageToredirectAfterResp = '';
var HasCentralAreaAlreadyFilled = false;

function Display_Data(reqUrl) {
    if (reqUrl.length > 0) {
        //Append the name to search for to the requestURL
        var url = reqUrl;


        //Create the xmlHttp object to use in the request //stateChangeHandler will fire when the state has changed, i.e. data is received back
        // This is non-blocking (asynchronous)
        xmlHttp = GetXmlHttpObject(stateChangeHandler);
        //Send the xmlHttp get to the specified url
        // setBusyCursor();
        xmlHttp_Get(xmlHttp, url);
    }
}
//stateChangeHandler will fire when the state has changed, i.e. data is received back, This is non-blocking (asynchronous)
function stateChangeHandler() {
    //readyState of 4 or 'complete' represents that data has been returned
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
        //Gather the results from the callback
        var str;
        str = xmlHttp.responseText;
       
        if (pageToredirectAfterResp != '') {
            window.location = pageToredirectAfterResp;
            return;
        }
         
        //Populate the innerHTML of the div with the results
        if (divToSet != '') {
            if (document.getElementById) {
                //This indirecting writing into the panel require for IE
                // var t = document.createElement('div');
                // t.innerHTML = str;
               // alert(str);
                document.getElementById(divToSet).innerHTML = str;
               
                //document.getElementById(divToSet).appendChild(t);

            }
            else if (document.all) {
                document.all[divToSet].innerHTML = xmlHttp.responseText;
            }
            else if (document.layers) {
                document.layers[divToSet].innerHTML = xmlHttp.responseText;
            }
        }
        resetBusyCursor();
        if (typeof (AjaxOnLoad) != 'undefined') { AjaxOnLoad() };
        //var countries=new ddtabcontent("countrytabs")
        //countries.setpersist(true)
        //countries.setselectedClassTarget("link") //"link" or "linkparent"
        //countries.init()
    }
}


// XMLHttp send GET request
function xmlHttp_Get(xmlhttp, url) {
    xmlhttp.open('GET', url, true);
    xmlhttp.send(null);
}

function GetXmlHttpObject(handler) {
    var objXmlHttp = null;
    //Holds the local xmlHTTP object instance
    //Depending on the browser, try to create the xmlHttp object
    if (is_ie) {

        //The object to create depends on version of IE
        //If it isn't ie5, then default to the Msxml2.XMLHTTP object
        var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
        // create the object
        try {
            objXmlHttp = new ActiveXObject(strObjName);
            objXmlHttp.onreadystatechange = handler;
        }
        catch (e) {
            //Object creation errored
            alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
            return;
        }
    }

    else if (is_opera) {
        //Opera has some issues with xmlHttp object functionality
        alert('Opera detected. The page may not behave as expected.');
        return;
    }
    else {
        // Mozilla Netscape Safari
        objXmlHttp = new XMLHttpRequest();
        objXmlHttp.onload = handler;
        objXmlHttp.onerror = handler;
    }
    //Return the instantiated object
    return objXmlHttp;
}
var currentPageNumber = 1;
var requestUrl = '';
function FillProductListGrid(mType, sender, orderby, currentPageNumber) {
    var pagenum = Number(currentPageNumber);
    if (pagenum == 0)
        pagenum = 1;
    if (mType == 'N')
        pagenum = pagenum + 1
    else if (mType == 'O')
        pagenum = sender.innerHTML;
    else pagenum = pagenum - 1;
    divToSet = 'DivProductList';
    if (mType == '') {
        FillProductList("&orderby=" + orderby);
    }
    else if (orderby != '') {
        FillProductList("&PageNumber=" + pagenum + "&orderby=" + orderby);
    }
    else {
        FillProductList("&PageNumber=" + pagenum);
    }
    return false;
}
function FillProductList(querystring) {
    divToSet = "DivProductList";
    //  window.location = "ProductListNew.aspx?" + querystring;
    var randomnumber = Math.floor(Math.random() * 1000000)
   
    var urlRequest = querystring + "&Action=FillProductList" + "&no=" + randomnumber;
    Display_Data(urlRequest);
   // return false;
    // return ProcessRequest("FillProductList", querystring);
}

function FillGridOrCentral(querystring) {
    if (HasCentralAreaAlreadyFilled) {
        return FillProductList(querystring);
    }
    else {
        divToSet = 'DivMain';
        HasCentralAreaAlreadyFilled = true;
        return ProcessRequest("ProductListMain", querystring);

    }
}
function FillCentralArea(action, querytring) {
    divToSet = 'DivMain';
    ProcessRequest(action, querytring);
}
function FillProductDetails(productNo) {
    window.location = "ProductDetails.aspx?productid=" + productNo;
    return false;
    //   return FillCentralArea("ProductDetail", "&productid=" + productNo);
}
function AddCartItem(productid) {
    divToSet = 'DivMain';
    pageToredirectAfterResp = "ShoppingCart.aspx";
    return ProcessRequest("CartUpdate", "&ProductId=" + productid);
}
function Notify(divnotify, productid, email) {
    return ProcessRequest("Notify", "&ProductId=" + productid + "&email=" + email);


}

function AddCartItemOnPD(productid, txtQty, page) {
    alert(page);
    var qty;

    if (txtQty)
        qty = txtQty.value
    else if (txtQty == 'undefined')
        qty = 1
    else
        qty = txtQty;
    divToSet = 'rightcart';
    var pageparam;

    if (page)
        pageparam = '&page=SC';
    else
        pageparam = '';

    var randomnumber = Math.floor(Math.random() * 1000000)
    return ProcessRequest("AddCartItemOnPD", "&id=" + productid + "&isFromAjax=true&qty=" + qty + "&no=" + randomnumber + pageparam);
}

function ProcessRequest(action, queryString) {
    var params = queryString;
    if (params.substring(0, 1) != '&')
        params = "&" + params;

    var urlRequest = "HandleAsyncCall.aspx?Action=" + action + params;
    Display_Data(urlRequest);
    return false;
}

