Search = {
    searchedText: '',
    offset: 0,
    counter: 0,
    id: null,
    lnkObj: null,
    fromDate: null,
    toDate: null,
    partitions: null,
    allPartitions: null,
    currentDate: null,
    getAdvanced: function(){
        if(Search.allPartitions == null) ajaxRequest("/jsp/AGetParts.jsp",'type=static&lang='+Settings.lang,Search.drawForm);  
        else Search.drawForm(null);
    },
    submit: function(){
    	    
       Search.searchedText = '';
       Search.offset = 0;
       Search.counter = 0;
       Search.id = null;
       Search.fromDate = null;
       Search.toDate = null;  
       Search.partitions = null;
       document.getElementById('news_search').innerHTML = '';
       document.getElementById('news_search').style.display = 'none'
       document.getElementById('slinks').innerHTML = '';
       document.getElementById('slinks').style.display = 'none';
       
       var sett = Settings.searchElements;
       var words = document.getElementById('searchFld').value.replace(/^\s*(.*?)\s*$/, "$1").split(/\s+/);
       for(i=0; i<words.length; i++){
           if(words[i].length < 3){
               document.getElementById('metaSearch').innerHTML='<div class="errorSearch">'+sett.error01+'</div>';
               document.getElementById('searchNav').style.display = 'block';
               return;
           }
       }
       
       var fromDate = document.getElementById('frYear').value+'-'+((document.getElementById('frMonth').value>9)?document.getElementById('frMonth').value:'0'+document.getElementById('frMonth').value)+'-'+((document.getElementById('frDay').value>9)?document.getElementById('frDay').value:'0'+document.getElementById('frDay').value);
       

       var toDate = document.getElementById('toYear').value+'-'+((document.getElementById('toMonth').value>9)?document.getElementById('toMonth').value:'0'+document.getElementById('toMonth').value)+'-'+((document.getElementById('toDay').value>9)?document.getElementById('toDay').value:'0'+document.getElementById('toDay').value);
       
       if(fromDate>toDate){
           document.getElementById('metaSearch').innerHTML='<div class="errorSearch">'+sett.error02+'</div>';
           document.getElementById('searchNav').style.display = 'block';
           return;
       }
       var partitions=[];
       var strparts = '';
       
       for(i = 0; i < Search.allPartitions.length-1; i++){
           if(document.getElementById('pn_'+Search.allPartitions[i].id).checked){
              partitions[partitions.length] = Search.allPartitions[i].id
              if(i!= Search.allPartitions.length-1) strparts +='&';
              strparts+='part='+Search.allPartitions[i].id; 
           } 
       }
       if(partitions.length == 0){
           document.getElementById('metaSearch').innerHTML='<div class="errorSearch">'+sett.error03+'</div>';
           document.getElementById('searchNav').style.display = 'block';
           return;
       }
       if(partitions.length == Search.allPartitions.length-1) strparts = '';
       Search.searchedText = document.getElementById('searchFld').value;
       Search.fromDate = fromDate;
       Search.toDate = toDate;
       Search.partitions = partitions;
       var params = "lang="+Settings.lang+"&text="+Search.searchedText+"&fromDate="+Search.fromDate+"&toDate="+Search.toDate+strparts; 
       document.getElementById('metaSearch').innerHTML='<div class="processSearch">'+Settings.searchElements.processCap+'</div>';
       document.getElementById('searchNav').style.display = 'block';
       
       ajaxRequest("/jsp/AGetSearched.jsp",params,Search.afterGetMeta); 
    },
    drawForm: function(originalRequest){
    	    //alert(originalRequest.responseText);
        var sett = Settings.searchElements;
        if(originalRequest != null){
            var doc = originalRequest.responseXML;
            if(doc != null){
               var partitions = doc.getElementsByTagName('partition');
               if(partitions.length>0){ 
                  Search.allPartitions=[];
                  for(i=0; i<partitions.length; i++){
			  var partNameId = partitions[i].getAttribute("id");
			  var partName = partitions[i].getAttribute("name");
                  	  if(partNameId != "g"){
                  	  	  if(partName.split("/").length > 1){
                  	  	  	  partName = partName.split("/")[1];
                  	  	  }
			      Search.allPartitions[Search.allPartitions.length] = {caption: partName, id: partNameId, actual: false};
                      	  }
                  }
                  Search.allPartitions[Search.allPartitions.length] = {caption: sett.capAll, id: 'chAllNews', actual: false};
               }
            }
        }
        if(Search.allPartitions != null){
            
            var outHtml =  '<div class="art-Block"><div class="art-Block-body"><div class="art-BlockHeader4"><div class="l"></div><div class="r"></div><div class="t" >'+sett.searchCap+'</div></div>'+
            '<div class="art-BlockContent4"><div class="art-BlockContent4-tl"></div><div class="art-BlockContent4-tr"></div><div class="art-BlockContent4-bl"></div><div class="art-BlockContent4-br"></div><div class="art-BlockContent4-tc"></div><div class="art-BlockContent4-bc"></div><div class="art-BlockContent4-cl"></div><div class="art-BlockContent4-cr"></div><div class="art-BlockContent4-cc"></div><div class="art-BlockContent4-body">'+
            '<div style="width:540px;">'+
            //'<div class="mainBorder"><div class="m_sectionHead"><div style="padding-top:3px; padding-left:10px;">'+sett.searchCap+'</div></div></div>'+
            '<div class="searchSpace"></div>'+
            '<div class="mainBorder"><div class="searchHead"><table border="0" cellspacing="1"><tr><td align="center" valign="middle" width="20"><div class="searchImgOpen" onclick="Search.openSet(this);" posit="0" blk="diapBlock"></div></td><td valign="middle">'+sett.diapCap+'</td></tr></table></div>'+
            '<div style="background: #F3F3F3;display:none" id="diapBlock">'+
            '<table border="0" cellspacing="6" cellpadding="0">'+
            '<tr><td width="10">&nbsp;</td><td class="searchDiapCap">'+sett.fromCap+'</td><td><select id="frDay" class="searchSelect"></select></td><td><select id="frMonth" class="searchSelect" onchange="Search.correctDay(this);"></select></td><td><select id="frYear" class="searchSelect" onchange="Search.correctDay(this);"></select></td></tr>'+
            '<tr><td width="10">&nbsp;</td><td class="searchDiapCap">'+sett.toCap+'</td><td><select id="toDay" class="searchSelect"></select></td><td><select id="toMonth" class="searchSelect" onchange="Search.correctDay(this);"></select></td><td><select id="toYear" class="searchSelect" onchange="Search.correctDay(this);"></select></td></tr>'+
            '</table>'+
            '</div><div class="searchUnder"></div></div>'+
            '<div class="searchSpace"></div>'+
            '<div class="mainBorder"><div class="searchHead"><table border="0" cellspacing="1"><tr><td align="center" valign="middle" width="20"><div class="searchImgOpen" onclick="Search.openSet(this);" posit="0" blk="partBlock"></div></td><td valign="middle">'+sett.partCap+'</td></tr></table></div>'+
            '<div style="background: #F3F3F3;display:none" id="partBlock"><table border="0" cellpadding="0" cellspacing="6">';

            var nbm = 3;
            for(i = 0; i < Search.allPartitions.length; i++){
                var input = '<input type="checkbox" id="pn_'+Search.allPartitions[i].id+'" onclick="Search.onCheck(this)" checked>';
                var label = '<label for="pn_'+Search.allPartitions[i].id+'" class="searchLabel">'+Search.allPartitions[i].caption+'</label>';
                var tds = '<td width="10"></td><td>'+input+'</td><td>'+label+'</td>';
                if(i==0){
                    outHtml +='<tr>'+tds;
                }
                else if(i == Search.allPartitions.length-1){
                    if(i%nbm==0) outHtml += '</tr><tr>'; 
                    outHtml +=tds;
                    emptd = nbm-(Search.allPartitions.length%nbm);
                    if(emptd != nbm){
                        for(j=1; j<=emptd; j++){
                            outHtml +='<td colspan="3">&nbsp;</td>';
                        }
                    }    
                    outHtml +='</tr>';
                }
                else if(i%nbm!=0){
                    outHtml +=tds;
                }
                else if(i%nbm==0){
                    outHtml +='</tr><tr>'+tds;
                }
            }
            outHtml += '</table>'+
            '</div><div class="searchUnder"></div></div>'+
            '<div class="searchSpace"></div>'+
            '<div class="mainBorder" style="background: #F3F3F3;"><div style="margin: 3px;"><table border="0" cellpadding="0" cellspacing="2">'+
            '<tr><td width="10"></td><td colspan="3" class="fndCap">'+sett.fndCap+'</td></tr>'+
            '<tr><td width="10"></td><td><input type="text" value="" id="searchFld" size="40" style="font-size:11px;" valign="middle" onkeydown="Search.checkEnter(event);"></td><td width="10"></width><td class="searchBtn" valign="middle" align="center" onclick="Search.submit();">'+sett.fndButt+'</td></tr>'+
            '</table></div></div><div class="searchSpace"></div><div class="mainBorder" style="display: none"  id="searchNav"><div class="searchHead" id="metaSearch"></div><div class="searchUnder"></div><div id="slinks" class="slinkCont" style="display:none;" ></div></div><div id="news_search" style="display:none;"></div>'+
            '</div></div></div></div>';
            
            document.getElementById('contentNews').style.height = '100%';
	    document.getElementById('topContent').style.display = 'none';
	    document.getElementById('newsBlock').style.display = 'none';
	    document.getElementById('photoContent').style.display = 'none';
	    document.getElementById('newsContent').style.display = 'block';
            document.getElementById('newsContent').innerHTML = outHtml;
            if(Search.currentDate!=null){
                var dtar = Search.currentDate.split('-');
                Search.fillSelect('frDay',31,null,null);
                Search.fillSelect('frMonth',null,Settings.calendarMonths,null);
                Search.fillSelect('frYear',dtar[0],null,2003);
                Search.fillSelect('toDay',Search.getDays(dtar[0], dtar[1]),null,null);
                Search.fillSelect('toMonth',null,Settings.calendarMonths,null);
                Search.fillSelect('toYear',dtar[0],null,2003);
                document.getElementById('toYear').value = dtar[0];
                document.getElementById('toMonth').value = dtar[1]*1;
                document.getElementById('toDay').value = dtar[2]*1;
            }  
            
        }
    },
    checkEnter: function(evt){
        evt = (evt)?evt:event;
        if(evt.keyCode==13) Search.submit();
    },
    openSet: function(element){
        if(element.getAttribute('posit') == 1){
            element.className = 'searchImgOpen';
            document.getElementById(element.getAttribute('blk')).style.display="none";
            element.setAttribute('posit', '0');
        }
        else{
            element.className = 'searchImgClose';
            document.getElementById(element.getAttribute('blk')).style.display="block";
            element.setAttribute('posit', '1');
        }
    },
    correctDay: function(element){
        var pref = element.id.substr(0,2);
        var days = Search.getDays(document.getElementById(pref+'Year').value, document.getElementById(pref+'Month').value);
        var lnt = document.getElementById(pref+'Day').length;
        if(lnt>days){
            if(document.getElementById(pref+'Day').value == lnt) document.getElementById(pref+'Day').value = days;
            document.getElementById(pref+'Day').length = days;
        }
        else if(lnt<days){
           for(i=lnt+1; i<=days; i++){
               var oOption = document.createElement("OPTION");
               oOption.text=i;
               oOption.value=i;
               if(document.all){document.getElementById(pref+'Day').add(oOption);}
               else document.getElementById(pref+'Day').appendChild(oOption);                
           }
           document.getElementById(pref+'Day').length = days;
        }
    },
    getDays: function(year, month){
        var maxDays = [31,(year%4 == 0) ? 29 : 28,31,30,31,30,31,31,30,31,30,31];
        return maxDays[month*1-1];
    },
    fillSelect: function(id, number, arr, fr){
        var length = number, i=1;
        if(arr != null) length = arr.length;
        if(fr != null) i = fr*1;
        for(; i<=length; i++){
            var oOption = document.createElement("OPTION");
            if(arr != null) oOption.text=arr[i-1];
            else oOption.text=i;
            oOption.value=i;
            if(document.all){document.getElementById(id).add(oOption);}
            else document.getElementById(id).appendChild(oOption);
        }
    },
    onCheck: function(element){
        if(element.id == 'pn_chAllNews'){
            for(i = 0; i < Search.allPartitions.length-1; i++){
                if(element.checked) document.getElementById('pn_'+Search.allPartitions[i].id).checked = true;
                else document.getElementById('pn_'+Search.allPartitions[i].id).checked = false;
            }
        }
        else{
            var counter = 0;
            for(i = 0; i < Search.allPartitions.length-1; i++){
                if(document.getElementById('pn_'+Search.allPartitions[i].id).checked) counter++;
            }
            if(counter == Search.allPartitions.length-1)
                document.getElementById('pn_chAllNews').checked = true;
            else
                document.getElementById('pn_chAllNews').checked = false;
        }
    },
    afterGetMeta: function(originalRequest){
       var doc = originalRequest.responseXML;
       if(doc != null){
          var meta = (doc.getElementsByTagName('meta').length == 1)?doc.getElementsByTagName('meta')[0]: null;
          if(meta!=null){ 
              Search.counter = meta.getAttribute("counter"); 
              Search.id = meta.getAttribute("id"); 
              var outHtml = '<table border="0" margin="6" padding="0"><tr><td width="100%" align="left"><div class="metaSearch" id="pagesDiap" style="text-align: left;"></div></td><td valign="middle"><div class="metaSearch">'+Settings.searchElements.fndResults+Search.counter+'</div></td></tr></table>';
              document.getElementById('metaSearch').innerHTML = outHtml;
              document.getElementById('searchNav').style.display = 'block';
          }
       }
       if(Search.counter>0 && Search.id != null){
           if(Math.floor((Search.counter-1)/Settings.searchLimit)>0){
               Search.drawLinks();
               if(document.getElementById('slnk_'+Search.offset) != null) Search.linkClick(document.getElementById('slnk_'+Search.offset));
           }
           else{
               Search.getPage(0);
           }
       }   
    },
    getPage: function(offset){
        var partitions = '';
        if(Search.partitions !=null && Search.partitions.length >0){
            for(i=0; i<Search.partitions.length; i++){
                if(i!= Search.partitions.length-1 || Search.partitions.length==1) partitions +='&';
                partitions+='part='+Search.partitions[i];
             }
        }
        var fromDate = '';
        if(Search.fromDate != null && Search.fromDate != ''){
            fromDate = "&fromDate="+Search.fromDate;
        }
        var toDate = '';
        if(Search.toDate != null && Search.toDate != ''){
            toDate = "&toDate="+Search.toDate;
        }
        if(Search.id != null){
            var fromPage = offset*Settings.searchLimit;
            var toPage = 0;
            if(fromPage+Settings.searchLimit > Search.counter){
               toPage = Search.counter;
            }
            else{
                toPage = fromPage+Settings.searchLimit;
            }
            document.getElementById('pagesDiap').innerHTML = (fromPage+1)+'-'+toPage; 
            var params = "lang="+Settings.lang + "&text=" + Search.searchedText + "&id=" + Search.id + "&offset=" + offset + "&limit="+Settings.searchLimit+partitions+fromDate+toDate;
            
            ajaxRequest("/jsp/AGetSearched.jsp",params,Search.afterGetPage); 
        }
    },
    afterGetPage: function(originalRequest){
    	   // alert(originalRequest.responseText)
        var doc = originalRequest.responseXML;
        if(doc != null){
            document.getElementById('news_search').style.display = 'block';
            var news = News.getNewsHeadLines(doc);
            if(news.length >0){
                News.drawHeadLineNews(news);
            }
        }
    },
    drawLinks: function(){
        var pageCount = Math.floor((Search.counter-1)/Settings.searchLimit)+1;
        if(pageCount >1 && Search.offset<pageCount){
            var outHtml =  '<table cellpadding="0" cellspacing="2" ><tr>';
            if(Search.offset-Settings.pagesNumber>=0)
                outHtml += '<td align="center" valign="middle" width="15"  class="linkOut" style="text-decoration: none;" onmouseover="Search.linkOver(this);" onmouseout="Search.linkOut(this);" onclick="Search.linkClick(this);" lnk="left"><</td>';
            for(i=Search.offset; (i<pageCount)&&(i<Search.offset+Settings.pagesNumber); i++){
                outHtml += '<td align="right" valign="middle" width="20" id="slnk_'+i+'" class="linkOut" onmouseover="Search.linkOver(this);" onmouseout="Search.linkOut(this);" onclick="Search.linkClick(this);" lnk="'+i+'">'+(i+1)+'</td>';
            }
            if((Search.offset+Settings.pagesNumber)<pageCount) 
                outHtml += '<td align="center" valign="middle" width="15" class="linkOut" style="text-decoration: none;" onmouseover="Search.linkOver(this);" onmouseout="Search.linkOut(this);" onclick="Search.linkClick(this);" lnk="right">></td>';
            outHtml += '</tr></table>';
            document.getElementById('slinks').innerHTML = outHtml;
            document.getElementById('slinks').style.display = 'block';
        }
    },
    linkOver:function(elem){
       if(Search.lnkObj != elem){
          elem.className = "linkOver";
       } 
    },
    linkOut:function(elem){
       if(Search.lnkObj != elem){
          elem.className = "linkOut";
       } 
    },    
    linkClick:function(elem){
        var lnk = elem.getAttribute('lnk');
        if(lnk != 'left' && lnk != 'right'){
           if(Search.lnkObj != elem){
              elem.className = "linkClick";
              if(Search.lnkObj != null) Search.lnkObj.className = "linkOut"
              Search.lnkObj = elem;
              Search.getPage(lnk);
           } 
        }
        else{
            if(lnk == 'right') Search.offset += Settings.searchLimit;
            else if(lnk == 'left') Search.offset -= Settings.searchLimit;
            Search.drawLinks();
            Search.lnkObj = null;
            if(lnk == 'right'){ if(document.getElementById('slnk_'+Search.offset) != null) Search.linkClick(document.getElementById('slnk_'+Search.offset));}
            else if(lnk="left"){if(document.getElementById('slnk_'+(Search.offset+Settings.searchLimit-1)) != null) Search.linkClick(document.getElementById('slnk_'+(Search.offset+Settings.searchLimit-1)));}
        }
    }
} 