var dosubmit = false;
var is_onThessaloniki = 0;
var http = getHTTPObject(); // We create the HTTP Object
var statusDiv = null;
var FieldDiv=null;
var  HiddenField=null;
var ProcedureSubjectType=null;
var AvailableSubjectType=null;



function handleStatus() {
  if (http.readyState == 4) {
    if (http.responseText.indexOf('invalid') == -1) {
      var txtDocument = http.responseText;
      var dataArray = txtDocument.split( '$' );

      fillStatusSelect( StatusField, dataArray );
      document.body.style.cursor="";
      if(statusDiv){
        statusDiv.innerHTML='&nbsp;';
      }
      isWorking = false;
    }
  }
}

function handleEmploees() {


  if (http.readyState == 4) {
    if (http.responseText.indexOf('invalid') == -1) {
      var txtDocument = http.responseText;
      var dataArray = txtDocument.split( '$' );


      fillEmploeesSelect(EmploeeField, dataArray );
      document.body.style.cursor="";
      if(statusDiv){
        statusDiv.innerHTML='&nbsp;';
      }
      isWorking = false;
    }
  }
}


var isWorking = false;
var EmploeeField = null;
var noBlanks=null;
var SubjectField=null;
var TypeField=null;

function makeEmploeesCall( page,  Emploeefield_id ){

  if (!isWorking && http) {
    document.body.style.cursor="wait";
    if(page.indexOf("=")>0){
    page = page + "&";
    }else{
    page = page + "?";
    }
    var url = page ;
    statusDiv = document.getElementById("status");

    http.open("GET", url, true);
    http.onreadystatechange = handleEmploees;
    isWorking = true;

    EmploeeField = document.getElementById(Emploeefield_id);
          if(statusDiv){
            statusDiv.innerHTML='Παρακαλώ περιμένετε...';
          }
     http.send(null);
  }
}



function getHTTPObject() {

  var http_request = false;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
          http_request.overrideMimeType('text/xml');
          // See note below about this line
      }
  } else if (window.ActiveXObject) { // IE
      try {
          http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
          try {
              http_request = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) { alert('Error!'); }
      }
  }

  if (!http_request) {
      alert('Giving up :( Cannot create an XMLHTTP instance');
      return false;
  }

  return http_request;
}


function trim(inputString) {
  if (typeof inputString != "string") return inputString;
    return inputString
      //clear leading spaces and empty lines
      .replace(/^(\s|\n|\r)*((.|\n|\r)*?)(\s|\n|\r)*$/g,"$2")

      //take consecutive spaces down to one
      .replace(/(\s(?!(\n|\r))(?=\s))+/g,"")

      //take consecutive lines breaks down to one
      .replace(/(\n|\r)+/g,"\n\r")

      //remove spacing at the beginning of a line
      .replace(/(\n|\r)\s/g,"$1")

      //remove spacing at the end of a line
      .replace(/\s(\n|\r)/g,"$1");

}



function fillEmploeesSelect(aCell,dataArray){
  var op = document.createElement("option");
  var tmp = null;
  var temparray=null;


  aCell.options.length = 0;

  if(noBlanks==null){
    tmp = op.cloneNode(true);
    tmp.appendChild(document.createTextNode("****Όλoι****"));
    tmp.setAttribute("value", -1 );
    aCell.appendChild(tmp);
  }

  for(i = 0;i < dataArray.length;i++)
  {
      temparray=dataArray[i].split("_");
      if(temparray[1]==null){continue;}
      if(trim(temparray[1]).length == 0 ) {continue;}
      tmp = op.cloneNode(true);
      tmp.appendChild(document.createTextNode(temparray[1]));
      tmp.setAttribute("value",temparray[0]);
      aCell.appendChild(tmp);
  }

}

function makeProcedureCall( page ,  procedureID , type1 , type2){

  if (!isWorking && http) {
    document.body.style.cursor="wait";
    if(page.indexOf("=")>0){
    page = page + "&";
    }else{
    page = page + "?";
    }
     statusDiv = document.getElementById("status");
    var url = page + "procedureID=" + procedureID;
    http.open("GET", url, true);
    http.onreadystatechange = handleLegalDocumentFields;
    isWorking = true;

      HiddenField = document.getElementById(type1);
       FieldDiv =  document.getElementById(type2);
          if(statusDiv){
            statusDiv.innerHTML='Παρακαλώ περιμένετε...';
          }
 http.send(null);
  }
}

function makeProcedureCallForSubjectType( page ,  procedureID , type1 , type2)
{

	if (!isWorking && http) {
		document.body.style.cursor="wait";
		if(page.indexOf("=")>0){
			page = page + "&";
		}else{
			page = page + "?";
		}
		statusDiv = document.getElementById("status");
		var url = page + "procedureID=" + procedureID;
		http.open("GET", url, true);

		http.onreadystatechange = handleSubjectTypeByProcedure;
		isWorking = true;

		AvailableSubjectType=document.getElementById(type1);
		ProcedureSubjectType=document.getElementById(type2);
		if(statusDiv){
            statusDiv.innerHTML="Παρακαλώ περιμένετε...";
          }
		http.send(null);
	}
}

function handleSubjectTypeByProcedure()
{

 if (http.readyState == 4) {
    if (http.responseText.indexOf('invalid') == -1) {
      var txtDocument = http.responseText;
      var dataArray1 = txtDocument.split( '|' );
      var dataArray2 = dataArray1[0];
	  var dataArray3=null;
	  if (dataArray1.length > 1)
	  {
	     dataArray3=dataArray1[1];
	  }

      noBlanks=false;
      fillSubjectsTypesSelect(AvailableSubjectType,dataArray2)
      fillSubjectsTypesSelect(ProcedureSubjectType,dataArray3)
      noBlanks=null;

      document.body.style.cursor="";
      if(statusDiv){
        statusDiv.innerHTML='&nbsp;';
      }
      isWorking = false;
    }
  }
}

function handleLegalDocumentFields() {
  if (http.readyState == 4) {
    if (http.responseText.indexOf('invalid') == -1) {
      var txtDocument = http.responseText;
      var dataArray1 = txtDocument.split( '|' );
      var dataArray2 = dataArray1[0];
   //   var dataArray3 = dataArray2.split( '$' );
   //   var dataArray4 = dataArray1[1];
    //  var dataArray = dataArray4.split( '$' );
    //  fillSubjectsSelect ( PossibleField,  dataArray3)
    // fillAppTypeFSelect ( ApptypeField1,  dataArray)
      HiddenField.value =dataArray2;

    var data2 = dataArray1[1];
   FieldDiv.innerHTML= data2;

      document.body.style.cursor="";
      if(statusDiv){
        statusDiv.innerHTML='&nbsp;';
      }
      isWorking = false;
    }
  }
}

function fillAppTypeFSelect(selobj,dataArray){
  var op = document.createElement("option");
  var tmp = null;
  var temparray=null;

  selobj.options.length = 0;

  if( dataArray.length==0 ){
    tmp = op.cloneNode(true);
    tmp.appendChild(document.createTextNode("****Δεν έχουν οριστεί πεδία****"));
    tmp.setAttribute("value", -1 );
    selobj.appendChild(tmp);
  }else {
    tmp = op.cloneNode(true);
    tmp.appendChild(document.createTextNode("========================="));
    tmp.setAttribute("value", -1 );
    selobj.appendChild(tmp);
  }

  for(i = 0;i < dataArray.length;i++)
  {

      temparray=dataArray[i].split("_");
      if(temparray[1]==null){continue;}
      if(trim(temparray[1]).length == 0 ) {continue;}
      tmp = op.cloneNode(true);
      tmp.appendChild(document.createTextNode(temparray[1]));
      tmp.setAttribute("value",temparray[0]);
      selobj.appendChild(tmp);
  }
}






//*****************************************************************************************
function makeSubjectTypeCall(legalprocedure, subjectfield_id , typefield_id ){
  makeSubjectTypeCall(legalprocedure, subjectfield_id , typefield_id,0 );
}

function makeSubjectTypeCall(legalprocedure, subjectfield_id , typefield_id, onThessaloniki ){
  is_onThessaloniki = onThessaloniki;
  if (!isWorking && http) {
    document.body.style.cursor="wait";
    statusDiv = document.getElementById("status");
    var url = "getSubjectAndTypeByProcedure.jsp?"+"legalprocedureID=" + legalprocedure;
    http.open("GET", url, true);
    http.onreadystatechange = handleSubjectsTypes;
    isWorking = true;

    SubjectField = document.getElementById(subjectfield_id);
    TypeField = document.getElementById(typefield_id);
          if(statusDiv){
            statusDiv.innerHTML='Παρακαλώ περιμένετε...';
          }
     http.send(null);
  }
}

//Αποκλειστικά για αντικείμενα
function makeSubjectCall(legalprocedure, subjectfield_id ){

  if (!isWorking && http) {
    document.body.style.cursor="wait";
    statusDiv = document.getElementById("status");
    var url = "getSubjectByProcedure.jsp?"+"legalprocedureID=" + legalprocedure;
    http.open("GET", url, true);
    http.onreadystatechange = handleSubjects;
    isWorking = true;

    SubjectField = document.getElementById(subjectfield_id);

          if(statusDiv){
            statusDiv.innerHTML='Παρακαλώ περιμένετε...';
          }
     http.send(null);
  }
}


function handleSubjectsTypes() {
  if (http.readyState == 4) {
    if (http.responseText.indexOf('invalid') == -1) {
      var txtDocument = http.responseText;
      var dataArray = txtDocument.split( '|' );
      var dataArray1 = dataArray[0];
      var dataArray2=null;
      if(dataArray.length>1){
        dataArray2= dataArray[1];
      }
      fillSubjectsSelect( SubjectField, dataArray1 );
      if(is_onThessaloniki==null || is_onThessaloniki==0){
        fillTypesSelect( TypeField, dataArray2 );
      }
      document.body.style.cursor="";
          if(statusDiv){
            statusDiv.innerHTML='&nbsp;';
          }
      isWorking = false;
    }
  }
}

//Αποκλειστικά για αντικείμενα
function handleSubjects() {
  if (http.readyState == 4) {
    if (http.responseText.indexOf('invalid') == -1) {
      var txtDocument = http.responseText;

      fillSubjectsSelect( SubjectField, txtDocument );

      document.body.style.cursor="";
          if(statusDiv){
            statusDiv.innerHTML='&nbsp;';
          }
      isWorking = false;
    }
  }
}
//********************************************************************************
function fillSubjectsTypesSelect(selobj,dataArray){
  if (dataArray) {

  var op = document.createElement("option");
  var tmp = null;
  var temparray=null;

  selobj.options.length = 0;

  if(noBlanks==null){
  tmp = op.cloneNode(true);
  tmp.appendChild(document.createTextNode(""));
  tmp.setAttribute("value", -1 );
  selobj.appendChild(tmp);
  }
  var dataArray1 = dataArray.split('$');
  if (dataArray1 == null ){
    } else {
  for(i = 0;i < dataArray1.length;i++)
  {
  temparray=dataArray1[i].split("#");
  if(temparray[1]==null){continue;}
  if(trim(temparray[1]).length == 0 ) {continue;}
  tmp = op.cloneNode(true);
  tmp.appendChild(document.createTextNode(temparray[1]));
  tmp.setAttribute("value",temparray[0]);
  selobj.appendChild(tmp);
  }
 }
}
}
//***********************************************************************************************************

function fillSubjectsSelect(selobj,dataArray){
  var op = document.createElement("option");
  var tmp = null;
  var temparray=null;

  selobj.options.length = 0;

  if(noBlanks==null){
    tmp = op.cloneNode(true);
    tmp.appendChild(document.createTextNode("**Διαθέσιμα αντικείμενα**"));
    tmp.setAttribute("value", -1 );
    selobj.appendChild(tmp);
  }
  var dataArray1 = dataArray.split('$');
  if (dataArray1 == null ){
  } else {
  for(i = 0;i < dataArray1.length;i++)
  {
      temparray=dataArray1[i].split("_");
      if(temparray[1]==null){continue;}
      if(trim(temparray[1]).length == 0 ) {continue;}
      tmp = op.cloneNode(true);
      tmp.appendChild(document.createTextNode(temparray[1]));

      tmp.setAttribute("value",temparray[0]);
      selobj.appendChild(tmp);
  }
  }
}

function fillTypesSelect(selobj,dataArray){
  var op = document.createElement("option");
  var tmp = null;
  var temparray=null;


  selobj.options.length = 0;

  if(noBlanks==null){
    tmp = op.cloneNode(true);
    tmp.appendChild(document.createTextNode("**Διαθέσιμοι Τύποι**"));
    tmp.setAttribute("value", -1 );
    selobj.appendChild(tmp);
  }

  if(dataArray!=null){
 var dataArray1 = dataArray.split('$');

  for(i = 0;i < dataArray1.length;i++)
  {
      temparray=dataArray1[i].split("_");
      if(temparray[1]==null){continue;}
      if(trim(temparray[1]).length == 0 ) {continue;}
      tmp = op.cloneNode(true);
      tmp.appendChild(document.createTextNode(temparray[1]));
      tmp.setAttribute("value",temparray[0]);
      selobj.appendChild(tmp);
  }
  }
}




