﻿    var NotablePerpage = 3;
    var prevOrder = "";
    var strSortBy = "";
    var arrInputData ;
    var CurrTableNo = 0;
    var curPg = 1;
    
    arrInputData = new Array(NotablePerpage);
    
    var rowCnt=0;
        
    for(rowCnt=0; rowCnt<NotablePerpage; rowCnt++){
        arrInputData[rowCnt] = new Array(9);
    }
    
    String.prototype.replus = function(){ return this.replace(/\+/g, " ");}
    
    function fnGetTable(TableNo,query, DBColName, HeaderName, HyperlinkColNos, SortColNos,DefaultOrder,ColWidth,DefaultSortBy,ExtraColNo,ExtraColType){
      arrInputData[TableNo][0] = TableNo;
      arrInputData[TableNo][1] = query;
      arrInputData[TableNo][2] = DBColName;
      arrInputData[TableNo][3] = HeaderName;
      arrInputData[TableNo][4] = HyperlinkColNos;
      arrInputData[TableNo][5] = SortColNos;
      arrInputData[TableNo][6] = DefaultOrder;
      arrInputData[TableNo][7] = ColWidth;
      arrInputData[TableNo][8] = ExtraColNo;
      arrInputData[TableNo][9] = ExtraColType;
      arrInputData[TableNo][10] = DefaultSortBy;    
      curPg = 1;     
      CurrTableNo = TableNo;  
        
      fnPrevNextPg();
    }
    
	function ShowRec(val){
	    CurrTableNo = val;	    
	    fnPrevNextPg();	 		
	}
	
	function SortRec(sortBy,val){
	    CurrTableNo = val;
		arrInputData[CurrTableNo][10] = sortBy;		
				
		if(arrInputData[CurrTableNo][6] == "asc"){				
			arrInputData[CurrTableNo][6] = "desc";
		}
		else{		     
			arrInputData[CurrTableNo][6]= "asc";
		}		
		fnPrevNextPg();
	}

	function fnNext(val){
        CurrTableNo=val;
        document.getElementById("txtset"+CurrTableNo).value = eval(document.getElementById("txtset"+CurrTableNo).value) +  1;     
        curPg = document.getElementById("txtset"+CurrTableNo).value;
        fnPrevNextPg();
	}

	function fnPrev(val){
		document.getElementById("txtset"+CurrTableNo).value = eval(document.getElementById("txtset"+CurrTableNo).value) -  1; 
		curPg = document.getElementById("txtset"+CurrTableNo).value;
		fnPrevNextPg();
	}
	
	function fnPrevNextPg(){
	     
	    var response = csData.CreateTable(arrInputData[CurrTableNo][10],arrInputData[CurrTableNo][6],arrInputData[CurrTableNo][1]);
        var dt = response.value; 
        
        if(dt!=null && typeof(dt)=="object"){
            var tblId = document.getElementById("divChart"+CurrTableNo);    			
			tblId.innerHTML = ""; 
			
            if(dt.Rows.length<=0){
                tblId.innerHTML = "<Label id=\"lblMessage"+CurrTableNo+"\">Data er ikke tilgjengelig.</label>"
                
                document.getElementById("spRecPerPg"+CurrTableNo).style.display = "none";
                tblId.className = "mTx"
            }
            else
            {   
                tblId.className = "lTx"
                document.getElementById("spRecPerPg"+CurrTableNo).style.display = "block";                 
                var pageSize = document.getElementById("selRecPerPg"+CurrTableNo).value;           	       	
          	    var totPgs  = new String(dt.Rows.length / pageSize);
		        if(totPgs.indexOf(".",0)!=-1){
			        arrPage = totPgs.split(".");
			        totPgs = eval(arrPage[0]) +1 
		        }    		    
			    try{
			      if(typeof(document.getElementById("txtset"+CurrTableNo))=="object")			
			         curPg = eval(document.getElementById("txtset"+CurrTableNo).value);
			    }
			    catch(ex){}    			   
			      			
			    var arrHead = arrInputData[CurrTableNo][3].split(",");  			
			    var arrColName = arrInputData[CurrTableNo][2].split(",");										
	            var arrHColNo = arrInputData[CurrTableNo][5].split(",");
			    var arrColWidth = arrInputData[CurrTableNo][7].split(",");
	            var dCol = 0;
	            var hcnt=0;
	            var cntTotalCol=0
    	        
			    sHead = "<table id=\"tblSearch"+CurrTableNo+"\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" class=\"tblCls\" align=\"center\" width=\"645\">" + 
			    "<tr class=\"header\">";	
    			var hflg = "0"		    
		        for(hcnt=0; hcnt<arrHead.length; hcnt++){
		            hflg = "0"
		            for(hcol=0; hcol<arrHColNo.length; hcol++){ 
		                if(eval(arrHColNo[hcol])== eval(hcnt)){   
		                    sHead += "<td class=\""+arrColWidth[hcnt]+"\" id=\"th0\"><a href=\"#\" onclick=\"SortRec('"+trim(arrColName[hcnt+1])+"',"+CurrTableNo+")\">"+trim(arrHead[hcnt])+"</a></td>" ;
		                    hflg = "1"
		                    break;
		                }    
		            }
		            if(hflg == "0")
		                sHead += "<td class=\""+arrColWidth[hcnt]+"\" id=\"th0\">"+trim(arrHead[hcnt])+"</td>" ;
		                
		            cntTotalCol++;
		        }
    	      
			    sHead += "</tr>";
    			
			    var frm = eval(pageSize) * (eval(curPg)-1);
			    var to = eval(pageSize) * eval(curPg);			
			    var arrColName = arrInputData[CurrTableNo][2].split(",");
			    var arrHlinkCol = arrInputData[CurrTableNo][4].split(",");			        	
	            var arrExtraColType = arrInputData[CurrTableNo][9].split(",");	
	            var ExtraColNo = arrInputData[CurrTableNo][8];	
	            var dCol = 0;
	            var hlCol = 0;	        
	            var sStr = "<tbody>";
	            var exCol = 0;
    	            	        
	            for (i = frm; i < to; i++){
	                dCol = 0;
	                if(i<dt.Rows.length){	                
				        sStr += "<tr>";
				        for(dCol=1; dCol < arrColName.length; dCol++){
				            hflg = "0"
				            for(hlCol=0; hlCol<arrHlinkCol.length; hlCol++){
				                if(eval(arrHlinkCol[hlCol])==eval(dCol-1)){
				                    sStr +="<td><a href=\"#\" onClick=\"fnEdit"+CurrTableNo+"('"+eval("dt.Rows[i]."+ trim(arrColName[0]))+"')\">"+ eval("dt.Rows[i]."+ trim(arrColName[dCol])) +"</td>";
				                    hflg = "1"
		                            break;
		                        }    
		                    }
		                    if(hflg == "0")
				               sStr +="<td> "+ eval("dt.Rows[i]."+ trim(arrColName[dCol])) +"</td>";    
				            
				        }
				        if(ExtraColNo.length!=0)
				        {				       
				            for(exCol=0; exCol<ExtraColNo; exCol++){						            
    				            
				                if(arrExtraColType[exCol].length!=0){				                				                
				                    if(trim(arrExtraColType[exCol])=="Edit"){
				                        sStr +="<td class=\"mTx\"><a href=\"#\" onClick=\"fnEdit"+CurrTableNo+"("+ eval("dt.Rows[i]."+ arrColName[0]) +")\">";
				                        sStr +="<img src=\"../uix/edit.gif\"/>"    
				                    }
				                    if(trim(arrExtraColType[exCol])=="Delete"){
				                        sStr +="<td class=\"mTx\"><a href=\"#\" onClick=\"fnDelete"+CurrTableNo+"("+ eval("dt.Rows[i]."+ arrColName[0]) +")\">";
				                        sStr +="<img src=\"../uix/delete.gif\"/>"    
				                    }
				                    sStr +="</a></td>";				                
				                }
				            }
				        }				
				        sStr +="</tr>";
				    }
				    else
				        break;
			    }
			    sStr +="</tbody>";
			    sFoot = "<tfoot><tr class=\"header\"><td colspan=\""+cntTotalCol+"\" align=\"right\">"; 
			    if(curPg > 1){
				    sFoot += "<a href=\"javascript:fnPrev("+ CurrTableNo +");\"><< Prev</a>&nbsp; ";
			    }
    			
			    sFoot += "Page <input type=\"text\" name=\"txtset"+ CurrTableNo +"\" id=\"txtset"+ CurrTableNo +"\" maxlength=\"5\" class=\"w50 mtext txtPag\" value=\""+ curPg +"\" onBlur=\"javascript:SetPage("+CurrTableNo+","+totPgs+")\"> of " + totPgs;
			    if(eval(curPg) < eval(totPgs)) {
				    sFoot += "&nbsp;<a href=\"javascript:fnNext("+ CurrTableNo +");\">Next >></a>";
			    }
    			
			    sFoot += "</td></tr></tfoot>";
			    
			    tblId.innerHTML = sHead + sStr + sFoot + "</table>";  
			    fnStripes();  
			}                 
        }
        else{
            alert(response.request.responseText);
        }       
	}	
	
	function SetPage(val,totPgs){
	    CurrTableNo = val;
	   /*var frm = document.frmRaceList;*/	    
	    curPg  = document.getElementById("txtset"+CurrTableNo).value; 
	    if(isWhitespace(curPg)==true){
		    alert("- Invalid page number.");
		    document.getElementById("txtset"+CurrTableNo).focus();
	    }
	    else{
		    if(IsNumber(curPg)==false){
			    alert("- Invalid page number.");
			    document.getElementById("txtset"+CurrTableNo).focus();
		    }
		    else{
			    if( eval(curPg) <= 0 || eval(curPg) > eval(totPgs)){
				    alert("- Invalid page number.");
				    document.getElementById("txtset"+CurrTableNo).focus();
			    }
			    else{
				    fnPrevNextPg();
				    
				}    
		    }
	    }
	}
