﻿// JScript File


    var xmlHttp = null;
    var display = null;
    var char_count = null;
    var start_alp = null;
    var timeoutSet = false;
    var downloadOK = false;
    var wardXmlDoc = null;
    var timer;
    var count=0;
    


    //var loading=document.getElementById("loading");
    
    window.onload = function() {
      
        loadXMLDoc();
        load_ward();     
     
     
            var curr = window.location.pathname;
            if(curr.indexOf("CompanyList")>0){
                var retVal =getURLParam('sub_cat');
                if (retVal !=""){jsCategory(retVal.substr(retVal.indexOf("~")+1,1),'full',20);}
                else{jsCategory('a','full',20);}
                
            }else if(curr.indexOf("sub_category_full")>0){
                jsCategory(getURLParam('alp'),'full',35);
            }else{
                jsCategory('a','',35);
                
            }           
       
        start_fulltext_engine();
    }
    //=====================================
    function start_fulltext_engine(){

         Samples.AspNet.SimpleWebService.StartTimer(onFulltext,FailedCallback);
         
    }
    function onFulltext(){
 
    }
    
     function getURLParam(strParamName){
      var strReturn = "";
      var strHref = window.location.href;
      if ( strHref.indexOf("?") > -1 ){
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
          if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
            var aParam = aQueryString[iParam].split("=");
            strReturn = aParam[1];
            break;
          }
        }
      }
      return unescape(strReturn);
    } 

    //====================================================function for category
    function jsCategory(alp,disp,w_count){
        var t=setTimeout("ShowAlert('Category')",120000); //2 minutes time out
        
        document.getElementById("catLoading").style.display="block";
        display = disp;
        char_count = w_count;
        start_alp = alp;     
        try
        {         
            loadService('getCategory', alp,'onCategory()');
        }   
        catch(e){
                
                alert("Error Occurred! \n\n" + e.message);
                document.getElementById("curLoading").style.display="none";
            }
        
       
        
        
    }
   
    ///=====================================================function for load service
        function loadService(func,parm,call) { 
                if(call== 'onCategory()')
                    {
                        Samples.AspNet.SimpleWebService.getCategory(parm,onCategory,FailedCallback);
                    }
                else
                    {   
                        Samples.AspNet.SimpleWebService.currency_convert(parm,onCurrency,FailedCallback);
                    }
        }
//===============================function for category ====================
function onCategory(result) {
        
        var span=document.getElementById("span_category");
        var xmlDoc=result;

        var str="";                    
        var l=0;i=0;css=null;     
        
        var x=xmlDoc.getElementsByTagName("tbl_sub_category");
        if (display == 'full' && char_count==35) {l=x.length;css='col3'}else if (display == 'full') { l=x.length;css='col2'} else if (x.length > 15 ) {l=15;css='col3';} else{ l=x.length;css='col3';}                    
        str="<ul id=\""+ css +"\">";                    

            for (i=0;i<l;i++)//i<x.length
            {
               desp = "";
               var temp = x[i].getAttributeNode("sub_desc").value;
              if (temp.length > char_count ){
                    desp = temp.substring(0,char_count);
                    desp += "...";
              }else{
                    desp = temp;
              }

          str +="<li><a href='CompanyList.aspx?sub_cat="+x[i].getAttributeNode("sub_id").value+"' title='"+ x[i].getAttributeNode("sub_desc").value  +"'>"+ desp +"</a></li>";  //+"~"+x[i].getAttributeNode("sub_desc").value 
                                   
        }
        if (x.length>15 && display != 'full' ){                       
            str +="<li><a href='sub_category_full.aspx?alp="+start_alp+"' >More >>></a></li>";                        
        }  
        str +="</ul>";                                      

        var span = document.getElementById("span_category");  
        span.innerHTML = str;
        document.getElementById("catLoading").style.display="none"; 
                        
}


///==============================================
function ward_change(){
   
        document.getElementById("ctl00_hidWard").value = document.getElementById("ctl00_ddlWards").value ;
        //alert(document.getElementById("ctl00$hidWard").value);
}
//===============================================
function load_ward(){   
        
        var x=wardXmlDoc.getElementsByTagName("tbl_Wards");
       
        var j=1;
        var ddllength;
      
        
        for (i=document.getElementById("ctl00_ddlWards").length;i>0;i--)
        {
            document.getElementById("ctl00_ddlWards").remove(i);
        }
        
        document.getElementById("ctl00_ddlWards").options[0]=new Option("--Select Ward--","");
        //for selected ward
        var form_ward;       
        form_ward=document.getElementById("ctl00_hidWard");
       
       var w;
        if(document.getElementById("ctl00_ddlTownship").value != "0")
        {
            for (w=0;w<x.length;w++)
            {          
                if(x[w].getAttributeNode("Township").value == document.getElementById("ctl00_ddlTownship").value)
                {       
                   // alert(x[w].getAttributeNode("Township").value);    
                   // alert(x[w].getAttributeNode("Name_of_Ward").value+","+x[w].getAttributeNode("ward_id").value);  
                    //document.getElementById("ctl00$document.getElementById("ctl00_ddlWards");s").options[j] = new Option(x[i].getAttributeNode("Name_of_Ward").value, x[i].getAttributeNode("ward_id").value);
                    document.getElementById("ctl00_ddlWards").options[j] = new Option(x[w].getAttributeNode("Name_of_Ward").value,x[w].getAttributeNode("Name_of_Ward").value);            
                    //set the selected value
                 
                    if (document.getElementById("ctl00_hidWard").value != ""){
                        if ( x[w].getAttributeNode("Name_of_Ward").value == form_ward.value){
                            document.getElementById("ctl00_ddlWards").selectedIndex=j;
                           
                        }//end if
                    }//end if
                    j=j+1; 
                   // alert(j);               
                }//end if
            }//end for 
        
         
        }//end if
        
    }//end function 
    //============================================function to load ward.xml
    function loadXMLDoc() 
    {
    try //Internet Explorer
      {
       wardXmlDoc=new ActiveXObject("Msxml2.DOMDocument.3.0");
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
        //wardXmlDoc=document.implementation.createDocument("","",null);
        
        var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET", "xml/wards.xml", false);
        xmlhttp.send(null);
        wardXmlDoc = xmlhttp.responseXML.documentElement;
        
        }
      catch(e) {alert(e.message)}
      }
    try 
      {
      //wardXmlDoc.async=false;

      //wardXmlDoc.load("xml/wards.xml");
      
      var xmlhttp = new window.XMLHttpRequest();
      xmlhttp.open("GET", "xml/wards.xml", false);
      xmlhttp.send(null);
      wardXmlDoc = xmlhttp.responseXML.documentElement;
        
      return(wardXmlDoc);
      }
    catch(e) {alert(e.message)}
    return(null);
    }
//============================================
function currConvert(){
    var t=setTimeout("ShowAlert('Currency')",120000); //5 minutes time out
    
    document.getElementById("curLoading").style.display="block";
    var fromCur=document.getElementById("ddlFrom");
    var toCur=document.getElementById("ddlTo");
    var amount=document.getElementById("txtAmount");
    if (fromCur.value==toCur.value){
        alert("From currency and To currency value must not be the same");
        toCur.value=0;
        return false;
    }
    if (fromCur.value==0 || toCur.value==0){
        alert("Please select both From and To currency type");
        return false;
    }
    //var parm="fromCur="+ fromCur.value +"&toCurr="+ toCur.value +"&amount="+ amount.value ;
    //loadService("currency_convert",parm,"onCurrency()");
    //alert(loading.style.display);
    //loading.style.display="block";
    
    Samples.AspNet.SimpleWebService.currency_convert(fromCur.value,toCur.value,amount.value,onCurrency,FailedCallback);
} 
//==========================
function onCurrency(result){
        
        
        var currency_result=result;
        
        
        document.getElementById("txtResult").value= currency_result;
        document.getElementById("curLoading").style.display="none";
}
function TimerTick()
{
    var catTimer= document.getElementById("catTimer");
    alert("Test");
    if(catTimer.Interval>0)
        {
            document.getElementById("catLoading").style.display="block";
            alert("Service call timed out.");
        }
}
function setInterval()
{
    
}
function OnTimeOut() {
    alert("Timed Out.");
    document.getElementById("catLoading").style.display="block";
    
}

function OnError(args) {
        var RsltElem = document.getElementById("span_category");
    RsltElem.innerHTML = "Service Error: " + error.get_message();
}
function FailedCallback(error)
{
    // Display the error.    
    var RsltElem = 
        document.getElementById("ResultId");
    RsltElem.innerHTML = 
    "Service Error: " + error.get_message();
}
function ShowAlert(parm)
{
    if (parm=="Category")
    {
        if (document.getElementById("catLoading").style.display=="block")
            alert("Connection Time Out");
    }
    else if (parm=="Currency")
    {
        if(document.getElementById("curLoading").style.display=="block")
            alert("Connection Time Out");
    }
    
}