var xmlHttp;
var current_offset=0;
var perPage = 10;

// GLASSFISH:
//REDIRECTION
var localPath = document.location.protocol+"//"+document.location.host+"";
//NORMAL
//var localPath = document.location.protocol+"//"+document.location.host+"/WebNKJPDemo";


function getNextPhraseResults(query,pPage){
    perPage=pPage;
    current_offset = current_offset + perPage;
    getPhraseResults(query,current_offset, perPage);
}
function getPreviousPhraseResults(query,pPage){
    perPage=pPage;
    if(current_offset-perPage<=0) {
      getPhraseResults(query,0, perPage);
    } else {
      current_offset = current_offset - perPage
      getPhraseResults(query,current_offset, perPage);
  }
}

function generateURL(_query,_offset,_limit) {

var styles = getStyles();
 var channels = getChannels();

  document.getElementById("status").innerHTML="";
  if(_query=="") {
     document.getElementById("status").innerHTML="<font color='red'>Wpisz zapytanie!</font>";
     return;
  }
  
  document.getElementById("tinyURL").innerHTML="";
  var url=localPath+"/index_meta.jsp";
  url=url+"?query="+_query;
  url=url+"&offset="+_offset;
  url=url+"&limit="+_limit;
  url=url+"&span="+document.search.span.value;
  url=url+"&sort="+document.search.sort.value;
  url=url+"&second_sort="+document.search.second_sort.value;
  url=url+"&groupBy="+document.search.groupBy.value;
  url=url+"&groupByLimit="+document.search.groupByLimit.value;  
  url=url+"&preserve_order="+document.search.preserve_order.checked;
  url=url+"&dummystring="+document.search.dummystring.value;
  url=url+"&m_date_from="+document.search.m_date_from.value;
  url=url+"&m_date_to="+document.search.m_date_to.value;
  url=url+"&m_nkjpSubcorpus="+document.search.m_nkjpSubcorpus.value;
  url=url+"&m_style="+document.search.m_style.value;
  url=url+"&m_channel="+document.search.m_channel.value;
   if(styles==null){
  } else {
    url=url+"&m_styles="+styles;
  }
  if(channels==null){
  } else {
    url=url+"&m_channels="+channels;
  }
  url=url+"&m_title_mono="+document.search.m_title_mono.value;
  url=url+"&m_title_mono_NOT="+document.search.m_title_mono_NOT.value;
  url=url+"&m_text_title="+document.search.m_text_title.value;
  url=url+"&m_paragraphKWs_MUST="+document.search.m_paragraphKWs_MUST.value;
  url=url+"&m_paragraphKWs_MUST_NOT="+document.search.m_paragraphKWs_MUST_NOT.value;



  //url=encodeURI(url);
  //document.write(encodeURI(url));

  
  var turl = localPath+"/TurlGetter?longUrl=" + url;
  //var turl = "http://www.tinyurl.com/api-create.php?url="+url;
  turl=encodeURI(turl);
  //document.getElementById("status").innerHTML=turl;
  
  
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
    {
    alert ("Your browser does not support AJAX!");
    return;
    }
  
  xmlHttp.onreadystatechange=tinyURLStateChanged;    
  xmlHttp.open("GET",turl,true);
 
  xmlHttp.send(null);
  
 
  //window.open(turl,'Getting TinyURL','width=350,height=50,scrollbars=yes,resizable=yes,menubar=no');
}

function validateForm (query) {
    document.getElementById("status").innerHTML="";


   if(document.search.m_date_to.value=="") {
    document.search.m_date_to.value="RRRR";
   }
   if(document.search.m_date_from.value=="") {
    document.search.m_date_from.value="RRRR";
   }

    if(query=="") {
     document.getElementById("status").innerHTML="<font color='red'>Wpisz zapytanie!</font>";
     return false;
  } else if(query.match("\\.")) {
    document.getElementById("status").innerHTML="<font color='red'>Wpisz zapytanie bez interpunkcji!</font>";
    return false;
  } else if(query.match("\\!")) {
    document.getElementById("status").innerHTML="<font color='red'>Wpisz zapytanie bez interpunkcji!</font>";
    return false;
  } else if(query.match(",")) {
    document.getElementById("status").innerHTML="<font color='red'>Wpisz zapytanie bez interpunkcji!</font>";
    return false;
  } else if(!document.search.span.value.match("^[0-9]$")) {
    document.getElementById("status").innerHTML="<font color='red'>Podaj numeryczną wartość odstępu!</font>";
    return false;
  }  else if(!document.search.m_date_from.value.match("^[0-9][0-9][0-9][0-9]$")) {
     
      if(!document.search.m_date_from.value.match("^RRRR$")) {
        document.getElementById("status").innerHTML="<font color='red'>Podaj datę w formacie RRRR!</font>";
        return false;
      }
  }  else if(!document.search.m_date_to.value.match("^[0-9][0-9][0-9][0-9]$")) {
     
      if(!document.search.m_date_to.value.match("^RRRR$")) {
        document.getElementById("status").innerHTML="<font color='red'>Podaj datę w formacie RRRR!</font>";
        return false;
      }
  }



    return true;
}

function getStyles(){
     var style_array = document.search.m_style;
     var styles = "";
     if(style_array==null){
     } else {
         for(var i=0; i<style_array.length; i++) {
            if(style_array[i].selected){
                var style = style_array[i].value;
                styles = styles + ","+style;
            }
         }
     }
     return styles;
}

function getChannels(){

     var channel_array = document.search.m_channel;
     var channels = "";
     if(channel_array==null){
     } else {
         for(var j=0; j<channel_array.length; j++) {
            if(channel_array[j].selected){
                var channel = channel_array[j].value;
                channels = channels + ","+channel;
            }
         }
     }
     return channels;

}

function getPhraseResults(query,offset,limit)
{

 
 document.getElementById("status").innerHTML="";

  valid = validateForm(query);
  if(valid != true) return;

  //Usuwamy link:
  document.getElementById("tinyURL").innerHTML="";
  
  document.getElementById("status").innerHTML="Pobieranie danych... <img src='images/ajax-loader.gif' width='16' height='16' alt='ajax-loader'/>";

  //Start();
  try {
    document.getElementById("frontPageBlurb").innerHTML="";
  } catch(err) {
      

  }
  perPage=limit;
  current_offset = offset;

  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
    {
    alert ("Your browser does not support AJAX!");
    return;
    }
 
var styles = getStyles();
 var channels = getChannels();


  var url=localPath+"/NKJPSpanSearch";
  url=url+"?query="+query;
  url=url+"&offset="+offset;
  //url=url+"&ip="+ip;
  url=url+"&limit="+limit;
  url=url+"&span="+document.search.span.value;
  url=url+"&sort="+document.search.sort.value;
  url=url+"&second_sort="+document.search.second_sort.value;
  url=url+"&groupBy="+document.search.groupBy.value;
  url=url+"&groupByLimit="+document.search.groupByLimit.value;
  
  url=url+"&preserve_order="+document.search.preserve_order.checked;
  url=url+"&dummystring="+document.search.dummystring.value;

  url=url+"&m_date_from="+document.search.m_date_from.value;
  url=url+"&m_date_to="+document.search.m_date_to.value;
  url=url+"&m_nkjpSubcorpus="+document.search.m_nkjpSubcorpus.value;
  url=url+"&m_style="+document.search.m_style.value;
  if(styles==null){
  } else {
    url=url+"&m_styles="+styles;
  }
  if(channels==null){
  } else {
    url=url+"&m_channels="+channels;
  }
  url=url+"&m_channel="+document.search.m_channel.value;
  url=url+"&m_title_mono="+document.search.m_title_mono.value;
  url=url+"&m_title_mono_NOT="+document.search.m_title_mono_NOT.value;

  url=url+"&m_text_title="+document.search.m_text_title.value;

  url=url+"&m_paragraphKWs_MUST="+document.search.m_paragraphKWs_MUST.value;
  url=url+"&m_paragraphKWs_MUST_NOT="+document.search.m_paragraphKWs_MUST_NOT.value;


  url=url+"&sid="+Math.random();
  url=url+"#wyniki";
  url=encodeURI(url);
// document.write(url);
 // document.getElementById("results").innerHTML=url;  
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open("GET",url,true);  
  xmlHttp.send(null);

}

function getProfile(query,offset,limit)
{

  document.getElementById("status").innerHTML="";

  valid = validateForm(query);
  if(valid != true) return;

  //Usuwamy link:
  document.getElementById("tinyURL").innerHTML="";

  document.getElementById("status").innerHTML="Pobieranie danych... <img src='images/ajax-loader.gif' width='16' height='16' alt='ajax-loader'/>";

  //Start();
  try {
    document.getElementById("frontPageBlurb").innerHTML="";
  } catch(err) {


  }
  perPage=limit;
  current_offset = offset;

  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
    {
    alert ("Your browser does not support AJAX!");
    return;
    }
  //var ip = new java.net.InetAddress.getLocalHost();
  //var ipStr = new java.lang.String(ip);

  var url=localPath+"/NKJPProfiler";
  url=url+"?query="+query;
  url=url+"&offset="+offset;
  //url=url+"&ip="+ip;
  url=url+"&limit="+limit;
  url=url+"&span="+document.search.span.value;
  url=url+"&sort="+document.search.sort.value;
  url=url+"&second_sort="+document.search.second_sort.value;
  url=url+"&groupBy="+document.search.groupBy.value;
  url=url+"&groupByLimit="+document.search.groupByLimit.value;

  url=url+"&preserve_order="+document.search.preserve_order.checked;
  url=url+"&dummystring="+document.search.dummystring.value;


  url=url+"&m_date_from="+document.search.m_date_from.value;
  url=url+"&m_date_to="+document.search.m_date_to.value;
  url=url+"&m_nkjpSubcorpus="+document.search.m_nkjpSubcorpus.value;
  url=url+"&m_style=---";//+document.search.m_style.value;
  url=url+"&m_channel=---"//+document.search.m_channel.value;
  url=url+"&m_title_mono="+document.search.m_title_mono.value;
  url=url+"&m_title_mono_NOT="+document.search.m_title_mono_NOT.value;
  
  url=url+"&m_text_title="+document.search.m_text_title.value;

  url=url+"&m_paragraphKWs_MUST="+document.search.m_paragraphKWs_MUST.value;
  url=url+"&m_paragraphKWs_MUST_NOT="+document.search.m_paragraphKWs_MUST_NOT.value;


  url=url+"&sid="+Math.random();
  url=url+"#wyniki";
  url=encodeURI(url);
// document.write(url);
 // document.getElementById("results").innerHTML=url;
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);

}



function getTimeProfile(query,offset,limit)
{

var styles = getStyles();
 var channels = getChannels();

  document.getElementById("status").innerHTML="";

  valid = validateForm(query);
  if(valid != true) return;

  //Usuwamy link:
  document.getElementById("tinyURL").innerHTML="";

  document.getElementById("status").innerHTML="Pobieranie danych... <img src='images/ajax-loader.gif' width='16' height='16' alt='ajax-loader'/>";

  //Start();
  try {
    document.getElementById("frontPageBlurb").innerHTML="";
  } catch(err) {


  }
  perPage=limit;
  current_offset = offset;

  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
    {
    alert ("Your browser does not support AJAX!");
    return;
    }
  //var ip = new java.net.InetAddress.getLocalHost();
  //var ipStr = new java.lang.String(ip);

  var url=localPath+"/NKJPTimeProfiler";
  url=url+"?query="+query;
  url=url+"&offset="+offset;
  //url=url+"&ip="+ip;
  url=url+"&limit="+limit;
  url=url+"&span="+document.search.span.value;
  url=url+"&sort="+document.search.sort.value;
  url=url+"&second_sort="+document.search.second_sort.value;
  url=url+"&groupBy="+document.search.groupBy.value;
  url=url+"&groupByLimit="+document.search.groupByLimit.value;

  url=url+"&preserve_order="+document.search.preserve_order.checked;
  url=url+"&dummystring="+document.search.dummystring.value;


  url=url+"&m_date_from="+document.search.m_date_from.value;
  url=url+"&m_date_to="+document.search.m_date_to.value;
  url=url+"&m_nkjpSubcorpus="+document.search.m_nkjpSubcorpus.value;
  url=url+"&m_style="+document.search.m_style.value;
  url=url+"&m_channel="+document.search.m_channel.value;
 if(styles==null){
  } else {
    url=url+"&m_styles="+styles;
  }
  if(channels==null){
  } else {
    url=url+"&m_channels="+channels;
  }
  url=url+"&m_title_mono="+document.search.m_title_mono.value;
  url=url+"&m_title_mono_NOT="+document.search.m_title_mono_NOT.value;
  
  url=url+"&m_text_title="+document.search.m_text_title.value;

  url=url+"&m_paragraphKWs_MUST="+document.search.m_paragraphKWs_MUST.value;
  url=url+"&m_paragraphKWs_MUST_NOT="+document.search.m_paragraphKWs_MUST_NOT.value;


  url=url+"&sid="+Math.random();
  url=url+"#wyniki";
  url=encodeURI(url);
// document.write(url);
 // document.getElementById("results").innerHTML=url;
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);

}




function downloadXML(query,limit) {

  valid = validateForm(query);
  if(valid != true) return;

var styles = getStyles();
 var channels = getChannels();

  var url=localPath+"/NKJPSpanSearchXML";
  url=url+"?query="+query;  
  url=url+"&offset="+current_offset;
  url=url+"&limit="+limit;
  url=url+"&span="+document.search.span.value;
  url=url+"&sort="+document.search.sort.value;
  url=url+"&second_sort="+document.search.second_sort.value;
  url=url+"&groupBy="+document.search.groupBy.value;
  url=url+"&groupByLimit="+document.search.groupByLimit.value;  
  url=url+"&preserve_order="+document.search.preserve_order.checked;
  url=url+"&dummystring="+document.search.dummystring.value;

  url=url+"&m_date_from="+document.search.m_date_from.value;
  url=url+"&m_date_to="+document.search.m_date_to.value;
  url=url+"&m_nkjpSubcorpus="+document.search.m_nkjpSubcorpus.value;
  url=url+"&m_style="+document.search.m_style.value;
  url=url+"&m_channel="+document.search.m_channel.value;

 if(styles==null){
  } else {
    url=url+"&m_styles="+styles;
  }
  if(channels==null){
  } else {
    url=url+"&m_channels="+channels;
  }

  url=url+"&m_title_mono="+document.search.m_title_mono.value;
  url=url+"&m_title_mono_NOT="+document.search.m_title_mono_NOT.value;

  url=url+"&m_text_title="+document.search.m_text_title.value;

    url=url+"&m_paragraphKWs_MUST="+document.search.m_paragraphKWs_MUST.value;
  url=url+"&m_paragraphKWs_MUST_NOT="+document.search.m_paragraphKWs_MUST_NOT.value;



  url=url+"&sid="+Math.random();
  url=encodeURI(url);
  //document.write(url);
  window.open(url,'Downloading XML','width=800,height=600,scrollbars=yes,resizable=yes,menubar=yes')
}
function downloadXLS(query,limit) {

  valid = validateForm(query);
  if(valid != true) return;
  var styles = getStyles();
  var channels = getChannels();


  var url=localPath+"/NKJPSpanSearchExcelXML";
  url=url+"?query="+query;  
  url=url+"&offset="+current_offset;
  url=url+"&limit="+limit;
  url=url+"&span="+document.search.span.value;
  url=url+"&sort="+document.search.sort.value;
  url=url+"&second_sort="+document.search.second_sort.value;
  url=url+"&groupBy="+document.search.groupBy.value;
  url=url+"&groupByLimit="+document.search.groupByLimit.value;  
  url=url+"&preserve_order="+document.search.preserve_order.checked;
  url=url+"&dummystring="+document.search.dummystring.value;

  url=url+"&m_date_from="+document.search.m_date_from.value;
  url=url+"&m_date_to="+document.search.m_date_to.value;
  url=url+"&m_nkjpSubcorpus="+document.search.m_nkjpSubcorpus.value;
  url=url+"&m_style="+document.search.m_style.value;
  url=url+"&m_channel="+document.search.m_channel.value;

  if(styles==null){
  } else {
    url=url+"&m_styles="+styles;
  }
  if(channels==null){
  } else {
    url=url+"&m_channels="+channels;
  }

  url=url+"&m_title_mono="+document.search.m_title_mono.value;
  url=url+"&m_title_mono_NOT="+document.search.m_title_mono_NOT.value;
  
  url=url+"&m_text_title="+document.search.m_text_title.value;

    url=url+"&m_paragraphKWs_MUST="+document.search.m_paragraphKWs_MUST.value;
  url=url+"&m_paragraphKWs_MUST_NOT="+document.search.m_paragraphKWs_MUST_NOT.value;




  url=url+"&sid="+Math.random();
  url=encodeURI(url);
  window.open(url,'Downloading XLS','width=100,height=100,scrollbars=yes,resizable=no,menubar=no')
}
function tinyURLStateChanged()
{
  
  //document.getElementById("status").innerHTML=(xmlHttp.readyState);
  if (xmlHttp.readyState==4)
  {
    //document.getElementById("status").innerHTML="PIPKA";
      if (xmlHttp.status == 200 || xmlHttp.status == 304) {
         var innerHTM="<form name=\"linkform\"><input type=\"text\" name=\"directlink\" size=\"45%\" value=\""+xmlHttp.responseText+"\" /></form>";
         
        document.getElementById("tinyURL").innerHTML=innerHTM;
        document.linkform.directlink.select();
      }
  } 
  //document.write(xmlHttp.responseText);
}

function stateChanged()
{
  if (xmlHttp.readyState==4)
  {
    document.getElementById("status").innerHTML="&nbsp;";
    document.getElementById("results").innerHTML=xmlHttp.responseText;
  }
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
function doWhenEnterPressed(evn) {
  var enterWasPressed = false;
  if (window.event && window.event.keyCode == 13) { // IE
    enterWasPressed = true;
  } else if (evn && (evn.keyCode == 13 || evn.which == 13 )) { // FF
    enterWasPressed = true;
  } else if (evn.which == 13) {
    enterWasPressed = true;
  }
  if (enterWasPressed) {
  getPhraseResults(document.search.query.value,0,parseInt(document.search.perpage.value));
  }
}

document.onkeydown = function(evn) {
doWhenEnterPressed(evn);
}

