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 = xmlHttp.responseText;
        if(pageToredirectAfterResp !='')
        {
            window.location = pageToredirectAfterResp;
            return;
        }
        //Populate the innerHTML of the div with the results
        if (document.getElementById)
        {
            //This indirecting writing into the panel require for IE
            var t = document.createElement('div');
            t.innerHTML = str;
            document.getElementById(divToSet).innerHTML = "";
            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";
   
   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 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;
}


function ShowMProductList(keyword){
window.location='ProductList.aspx?type=chooseaproduct&gender=Men&choosetype=product&keyword=' + keyword;
}
function ShowFProductList(keyword){
window.location='ProductList.aspx?type=chooseaproduct&gender=Women&choosetype=product&keyword='  + keyword;
}
function ShowBrandList(keyword){
window.location='ProductList.aspx?type=chooseaproduct&choosetype=Brand&keyword=' + keyword;
}

 function SearchRedirect(searchFeild)
        {
            
            var searchtext=document.getElementById(searchFeild).value;
            if(trim(searchtext) ==''){ alert("Please enter text in search field and try again."); return false;}

	        if(!checkForSpecialChars(document.getElementById(searchFeild),'NS','','')) 
            {
                return false;
            }
            else
            {
	            window.location = "ProductList.aspx?"+"&type=search&text=&name=&manufacturer=&category=&pricefrom=&priceto=&gender=&keyword="+searchtext;      
            }    
            return false;
        }
       var __defaultFired = false; 
    function Custom_FireDefaultButton(event, target) { if (!__defaultFired && event.keyCode == 13 && !(event.srcElement && (event.srcElement.tagName.toLowerCase() == 'textarea'))) {
        var __nonMSDOMBrowser =   (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);        
        var defaultButton;
        if (__nonMSDOMBrowser)
         {
            defaultButton = document.getElementById(target);  }  else {defaultButton = document.all[target];} if (defaultButton && typeof(defaultButton.click) != 'undefined')  { defaultButton.click();event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false;  } else{ if(target === 'searchgo') SearchRedirect('searchproduct');return false; event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false;}  }
            return true;
         }
    
function AdvancedSearch(txtSCriteria, chkSProdDesc,cmbManufacturers, cmbCategories, curPFrom, curPTo, ddlGender, txtnotes)
        {
            var criteria = document.getElementById(txtSCriteria);
            var mfg = document.getElementById(cmbManufacturers);
            var category = document.getElementById(cmbCategories);
            var priceFrom  = document.getElementById(curPFrom);
            var priceTo = document.getElementById(curPTo);
            var gender = document.getElementById(ddlGender);
            var notes = document.getElementById(txtnotes);
            var chkDesc = document.getElementById(chkSProdDesc);
            var queryparameter = "&type=advancesearch";
            var text = "";
            if(criteria.value != "Keyword here")
                queryparameter = queryparameter + "&name=" + criteria.value;
                queryparameter=queryparameter + "&keyword=" + document.getElementById(txtSCriteria).value;
            queryparameter = queryparameter + "&description=" + chkDesc.checked;
            var mfgVal = mfg.options[mfg.selectedIndex].value;
            var mfgTxt = mfg.options[mfg.selectedIndex].text;
            if(mfgVal>0)
            {
                queryparameter = queryparameter + "&manufacturer=" + mfgVal;
                text = text + mfgTxt;
            }
            else
            {
                queryparameter = queryparameter + "&manufacturer="
            }
            var catVal = category.options[category.selectedIndex].value;
            var catTxt = category.options[category.selectedIndex].text;
            if(catVal>0)
            {
                queryparameter = queryparameter + "&category=" + catVal;
                if(text.length >0)
                   text = text + "/" + catTxt;
                else
                   text = catTxt;
            }
            else
            {
                   queryparameter = queryparameter + "&category=";
            }
            queryparameter = queryparameter + "&pricefrom=" + priceFrom.value ;//curPFrom.Text;
            queryparameter = queryparameter + "&priceto=" + priceTo.value ;//curPTo.Text;
            queryparameter = queryparameter + "&gender=" + gender.options[gender.selectedIndex].value;
           if(notes)
            queryparameter = queryparameter + "&notes=" + notes.value;
            queryparameter = queryparameter + "&text=" + text;
            //DivMouseOut();
            
            window.location = "ProductList.aspx?"  +   queryparameter;      
            //FillCentralArea('Search',queryparameter);
            //Display_Data(queryparameter);
            return false;            
        }
