var Ajax;
var paramArray={};
var page=1;
var pWhat;
var pConstraint;
var pIs;
var order="";
var orderType="DESC";
var filter;

function nextPage(){
    if(!(isNaN(page))){
            page=page*1+1;
            loadData();
        }
}
function previousPage(){
    if(page!=1){
        if(!(isNaN(page))){
            page=page*1-1;
            loadData();
        }
    }
}
function toPage(e){
    var keynum;
    if(window.event){keynum = e.keyCode; }
    else if(e.which){keynum = e.which;}
    if(keynum==13){
        page=document.getElementById('page').value;
        if(!(isNaN(page))){
            loadData();
        }
    }
}

function setOrder(ob){
    if(ob==order){
        if(orderType=="ASC"){
            orderType="DESC";
        }
        else{
            orderType="ASC";
        }
    }
    else{
        orderType="DESC";
        order=ob;
    }
    page=1;
    loadData();

}
function addParam(){
    pWhat=document.getElementById('pWhat').value;
    pConstraint=document.getElementById('pConstraint').value;
    pIs=document.getElementById('pIs').value;
        
        var newParam=document.createElement('p');
	var newPWhat=document.createTextNode(pWhat);
        newParam.appendChild(newPWhat);
        
        var newPconstraint=document.createTextNode(pConstraint);
        newParam.appendChild(newPconstraint);
        
        var newPIs=document.createTextNode(pIs);
        newParam.appendChild(newPIs);
        
        var newX=document.createElement('span');
        var newXtext=document.createTextNode('____');
        newX.appendChild(newXtext);
      
        newX.onclick=function(){removeParams(this);};      
        
        newParam.appendChild(newX);
        
        var paramBox=document.getElementById('paramBox');
        paramBox.appendChild(newParam);
        
        document.getElementById('go').style.display="block";
}
function removeParams(ob){
    var paramBox=document.getElementById('paramBox');
    obR=ob.parentNode;
    paramBox.removeChild(obR);
}

function loadData(){ 
    
    //------------- Filters --------------------
    var paramBox=document.getElementById('paramBox');
    var paramString=new Array();
    var serializedString;
   var isIE=0;
   if(paramBox.hasChildNodes()){
     if(paramBox.childNodes[0].nodeType==3){isIE=1;}
   }
    for(i=isIE;i<paramBox.childNodes.length;i++){
        var pWhat=paramBox.childNodes[i].childNodes[0].nodeValue;
        var pConstraint=paramBox.childNodes[i].childNodes[1].nodeValue;
        var pIs=paramBox.childNodes[i].childNodes[2].nodeValue;
        if(pConstraint==">"){ pConstraint="&gt;";};
        serializedString=pWhat+'|'+pConstraint+'|'+pIs+'^|';
        
        paramString.push(serializedString);
    }
    var k="";
    for(i=0;i<paramString.length;i++){
        k+=paramString[i];
    }
    if(k!=filter){page=1;}
    filter=k;
    
     // --------- Order ------------
    

    var r=order+'|'+orderType+'^^^';
    
    //--------- Page ----------------
    r+=page+'^^';    
    r=r+k;
    //alert(r);
    r=Base64.encode(r);
    
    getData(r);
    
}

function loadPrint(){ 
    
    //------------- Filters --------------------
    var area=document.getElementById('print_area');
    area.style.display='block';
    var paramBox=document.getElementById('paramBox');
    var paramString=new Array();
    var serializedString;
   var isIE=0;
   if(paramBox.hasChildNodes()){
     if(paramBox.childNodes[0].nodeType==3){isIE=1;}
   }
    for(i=isIE;i<paramBox.childNodes.length;i++){
        var pWhat=paramBox.childNodes[i].childNodes[0].nodeValue;
        var pConstraint=paramBox.childNodes[i].childNodes[1].nodeValue;
        var pIs=paramBox.childNodes[i].childNodes[2].nodeValue;
        if(pConstraint==">"){ pConstraint="&gt;";};
        serializedString=pWhat+'|'+pConstraint+'|'+pIs+'^|';
        
        paramString.push(serializedString);
    }
    var k="";
    for(i=0;i<paramString.length;i++){
        k+=paramString[i];
    }
    if(k!=filter){page=1;}
    filter=k;
    
     // --------- Order ------------
    

    var r=order+'|'+orderType+'^^^';
    
    //--------- Page ----------------
    r+=page+'^^';    
    r=r+k;
    //alert(r);
    r=Base64.encode(r);
    
    getPrint(r);
    
}
function isLoading(){
    if(document.getElementById('grid').innerHTML!=""){
        document.getElementById('ajax').style.display="none";
        clearInterval(aInterval);
    } 
}
function whileLoad(){
    document.getElementById('ajax').style.display="block";
   aInterval = setInterval ("isLoading()",100);
}

function getData(params){
        obDiv='grid';
        document.getElementById(obDiv).innerHTML="";
        whileLoad();
         var rand=Math.floor(Math.random()*111);
        act="grid/getData.php?params="+params+"&r="+rand;
        var ajax =  new Ajax.Updater(
                 obDiv,        
                 act,        
                 {                
                 method:'GET',
                 onLoading:function(){document.getElementById('ajax').style.display="block";},
                 onSuccess: function(){ document.getElementById('ajax').style.display="none";}
                 });
     
     
}

function getPrint(params){
        obDiv='print_area';
        document.getElementById(obDiv).innerHTML="";
        whileLoad();
        act="grid/getPrint.php?params="+params;
        var ajax =  new Ajax.Updater(
                 obDiv,        
                 act,        
                 {                
                 method:'GET'             
                 });
}
function closeDiv(ob){
    //document.getElementById(ob).innerHTML="";
     document.getElementById(ob).style.display="none";
}

function openDiv(ob){
    //document.getElementById(ob).innerHTML="";
     document.getElementById(ob).style.display="block";
}
function position(ob,ob_to){
    a=document.getElementById(ob_to);
    b=document.getElementById(ob);
    oX=a.offsetLeft;
    oY=a.offsetTop;
    b.style.left=oX+'px';
    b.style.top=oY+'px';

    
}

function getFilters(){ 
    
    //------------- Filters --------------------
    var paramBox=document.getElementById('paramBox');
    var paramString=new Array();
    var serializedString;
   var isIE=0;
   if(paramBox.hasChildNodes()){
     if(paramBox.childNodes[0].nodeType==3){isIE=1;}
   }
    for(i=isIE;i<paramBox.childNodes.length;i++){
        var pWhat=paramBox.childNodes[i].childNodes[0].nodeValue;
        var pConstraint=paramBox.childNodes[i].childNodes[1].nodeValue;
        var pIs=paramBox.childNodes[i].childNodes[2].nodeValue;
        if(pConstraint==">"){ pConstraint="&gt;";};
        serializedString=pWhat+'|'+pConstraint+'|'+pIs+'^|';
        
        paramString.push(serializedString);
    }
    var k="";
    for(i=0;i<paramString.length;i++){
        k+=paramString[i];
    }
    if(k!=filter){page=1;}
    filter=k;
    
     // --------- Order ------------
    

    var r=order+'|'+orderType+'^^^';
    
    //--------- Page ----------------
    r+=page+'^^';    
    r=r+k;
    //alert(r);
    r=Base64.encode(r);
    return(r);
    
}

// ============== Edit ================
function edit(params){
        obDiv='edit_area';
        
        position(obDiv,params);
        document.getElementById(obDiv).innerHTML="";
        openDiv(obDiv);
        //whileLoad();
         var rand=Math.floor(Math.random()*111)
        act="grid/getRow.php?id="+params+"&r="+rand;
        var ajax =  new Ajax.Updater(
                 obDiv,        
                 act,        
                 {                
                 method:'GET'             
                 });
}
function editData(params,params2){
     obDiv='edit_area';
        document.getElementById(obDiv).innerHTML="<img src=\"grid/img/ajax_load.gif\">";
         var rand=Math.floor(Math.random()*111);
        act="grid/includes/edit_data.php?params="+params+"&params2="+params2+"&r="+rand;
        var ajax =  new Ajax.Updater(
                 obDiv,        
                 act,        
                 {                
                 method:'GET',
                 onSuccess: function(){closeDiv(obDiv); loadData();},
                 onLoading:function(){}
                 });
}


function getEditValues(ob){
    box=document.getElementById(ob);
    id=document.getElementById('row_id').value;
    //colls=6;
   // alert(colls);
    params=id+'||';
    for(i=0;i<colls;i++){
        var input_el='edit_'+i;
        
        params+=document.getElementById(input_el).value+'||';
    }
    params=Base64.encode(params);
    params2=getFilters();
    editData(params,params2); 
    
}
//=========== REG ================= //
function reg(ob){
    obj=document.getElementById(ob);
    authBox=document.getElementById('auth');
    //obj.appendChild(authBox);
    openDiv('auth');
    
}
function hideDiv(ob){
        //obj=document.getElementById('edit_mode');
        objR=document.getElementById('auth');
        objR.style.display='none';
        //obj.removeChild(objR);
}
function auth(){
      obDiv='auth';
        
        pwd=document.getElementById('password2').value;
        document.getElementById(obDiv).innerHTML="<img src=\"grid/img/ajax_load.gif\">";
        var rand=Math.floor(Math.random()*111);
        act="grid/includes/auth.php?pwd="+pwd+"&r="+rand;
        var ajax =  new Ajax.Updater(
                 obDiv,        
                 act,        
                 {                
                 method:'GET',
                 onSuccess: function(){loadData();}                 
                 }); 
}
function auth_out(){
      obDiv='auth';        
        document.getElementById(obDiv).innerHTML="<img src=\"grid/img/ajax_load.gif\">";
         var rand=Math.floor(Math.random()*111);
        act="grid/includes/auth_out.php?r="+rand;
        var ajax =  new Ajax.Updater(
                 obDiv,        
                 act,        
                 {                
                 method:'GET',
                 onSuccess: function(){loadData();}                 
                 }); 
}
function swapImg(ob,to){
    document.getElementById(ob).src="grid/img/"+to;
}
function btn(ob){
    b=document.getElementById(ob);
   // btn.style.border="solid 1px red";
    b.style.top="3px";
}