function openWindow(name, qs){
   window.open(name+'.php?'+qs,'','width='+window.screen.width+',height='+window.screen.height+', scrollbars=yes');
}

function openWindow2(name, qs, w, h){
   window.open(name+'.php?'+qs,'','width='+w+',height='+h+', scrollbars=yes');
}

function isVisible(id){
   if (elemType(id) == 'button'){
      return visibletd(id.gsub('table_', ''));
   }else if (elemType(id) == 'fs'){
      return visiblefs(id.gsub('fs_', ''));
   }else{
      return visibletd(id.gsub('wrap_', '').gsub('td1_', ''));
   }
}

function showElem(id){
   if (elemType(id) == 'button'){
      showtd(id.gsub('table_', ''));
   }else if (elemType(id) == 'fs'){
      showfs(id.gsub('fs_', ''));
   }else{
      showtd(id.gsub('wrap_', '').gsub('td1_', ''));
   }
}

function hideElem(id){
   if (elemType(id) == 'button'){
      hidetd(id.gsub('table_', ''));
   }else if (elemType(id) == 'fs'){
      hidefs(id.gsub('fs_', ''));
   }else{
      hidetd(id.gsub('wrap_', '').gsub('td1_', ''));
   }
}

function elemType(id){
   if (id.indexOf('table_') > -1)
      return 'button';
   else if (id.indexOf('fs_') > -1)
      return 'fs';
   else
      return null;
}

function getButtonValue (id){
   return $(id+'_value').innerHTML.gsub(' »', '');
}

function setButtonValue (id, value){
   return $(id+'_value').update(value+' »');
}

function getButton (id){
   return $(id).value;
}

function setButtonClass (id, className){
   if($('tr_'+id)){
      $('tr_'+id).removeClassName('green-bg');
      $('tr_'+id).removeClassName('orange-bg');
      $('tr_'+id).removeClassName('grey4-bg');
      $('tr_'+id).addClassName(className);
   }
}

function setButton (id, value){
   if($(id))
      $(id).setValue(value);
}

function hideButton (id){
   if ($('table_'+id)){
      $('table_'+id).hide();
   }
}

function showButton (id){
   if ($('table_'+id)){
      $('table_'+id).show();
   }
}

function visibleButton(id){
   if ($('table_'+id)){
      return $('table_'+id).visible();
   }
}

function showMoreObjects (id, num) {
   for (i = 1; i < num; i++){
      if ($('div_'+id+'_'+i))
	 $('div_'+id+'_'+i).toggle();
   }
}

function hideMoreObjects (id, num) {
   for (i = 1; i < num; i++){
      if ($('div_'+id+'_'+i))
	 $('div_'+id+'_'+i).hide();
   }
}

function showMoreObjects2 (id) {
   if ($('div_'+id))
      $('div_'+id).show();
}

function hideMoreObjects2 (id) {
   if ($('div_'+id))
      $('div_'+id).hide();
}

function hidetd (id) {
   if ($('td1_'+id)) {
      $('td1_'+id).hide();
   }
   if ($('td2_'+id)) {
      $('td2_'+id).hide();
   }
}
function hidetd2 (id) {
   if ($('td1_'+id)) {
      $('td1_'+id).hide();
   }
   if ($('td2_'+id)) {
      $('td2_'+id).hide();
   }
}

function showtd (id) {
   if ($('td1_'+id)) {
      $('td1_'+id).show();
   }
   if ($('td2_'+id)) {
      $('td2_'+id).show();
   }
}
function showtd2 (id) {
   if ($('td1_'+id)) {
      $('td1_'+id).show();
   }
   if ($('td2_'+id)) {
      $('td2_'+id).show();
   }
}

function toggletd (id) {
   $('td1_'+id).toggle();
   $('td2_'+id).toggle();
}

function visibletd (id) {
   if($('td1_'+id))
      return $('td1_'+id).visible();
}

function visiblefs (id) {
   return $('fs_'+id).visible();
}

function hidefs (id) {
   if ($('fs_'+id).visible()) {
      $('fs_'+id).hide();
   }
}
function hidefs2 (id) {
   if ($('fs_'+id).visible()) {
      $('fs_'+id).hide();
   }
}

function togglefs (id) {
   $('fs_'+id).toggle();
}

function showfs (id) {
   if (!$('fs_'+id).visible()) {
      $('fs_'+id).show();
   }
}
function showfs2 (id) {
   if (!$('fs_'+id).visible()) {
      $('fs_'+id).show();
   }
}

function eventHandler (field_name, action) {
   if (action == 'hide') {
      if ($('td1_' + field_name).visible() == true) {
	 $('td1_' + field_name).hide();
	 $('td2_' + field_name).hide();
      }
   }else if (action == 'show') {
      if ($('td1_' + field_name).visible() == false) {
	 $('td1_' + field_name).show();
	 $('td2_' + field_name).show();
      }
   }
}

function hasError(id){
   if ($('wrap_'+id))
      if ($('wrap_'+id).className == 'section-error')
	 return true;
   return false;
}

function setError(id){
   if ($('wrap_'+id)){
      $('wrap_'+id).addClassName('section-error');
      if ($('error_'+id)){
	 $('error_'+id).show();
      }
   }
}

function setErrorFree(id){
   if ($('wrap_'+id)){
      $('wrap_'+id).removeClassName('section-error');
      if ($('error_'+id)){
	 $('error_'+id).hide();
      }
   }
}

tabbedItems = $H();
function addTab (tabGroup, tabGroupName) {
   tabs = $(tabGroup).childElements();

   last = tabs.size() + 1;

   Element.insert (tabGroup, "<li id='" + tabGroup + "_" + last + "'><a href='#' onclick='tabSwitch(\"" + tabGroup + "\", " + last + "); return false;'><span id='" + tabGroup + "_" + last + "_span'>" + tabGroupName + " " + last + "</span></a></li>");

   //tabs = $(tabGroup).childElements();

   tabSwitch(tabGroup, last);
   return;
   /*selected = 0;
   for (i = 0; i < tabs.size(); i++) {
      if (tabs[i].className == 'selected'){
	 selected = i + 1;
      }
      Element.removeClassName (tabs[i].identify(), 'selected');
   }
   Element.addClassName (tabs[last - 1].identify(), 'selected');

   group = tabGroup+"#"+selected;
   newgroup = tabGroup+"#"+last;
   
   if (!tabbedItems.get(newgroup)){
      tabbedItems.set(newgroup, $H());
   }
   
   if (!tabbedItems.get(group)){
      tabbedItems.set(group, $H());
   }

   table = 'table_' + tabGroup;

   telems = $(table).select('input', 'select');

   for (j = 0; j < telems.size(); j++) {
      telem = telems[j];
      elem = telem.identify();
      if(elem.indexOf('anonymous') == -1 && $(elem)){
	 if (!tabbedItems.get(group).get(elem))
	    tabbedItems.get(group).set(elem, $H());
	 tabbedItems.get(group).get(elem).set('value', $(elem).getValue());
	 if (!isButton(elem))
	    tabbedItems.get(group).get(elem).set('visible', visibletdbyfs(elem));
	 tabbedItems.get(group).get(elem).set('hidden', '');
	 tabbedItems.get(group).get(elem).set('hasError', hasError(elem));
	 if ($(elem+'_hidden')){
	    tabbedItems.get(group).get(elem).set('hidden', $(elem+'_hidden').value);
	    $(elem+'_hidden').value = '';
	 }
      }
   }

   for (j = 0; j < telems.size(); j++) {
      telem = telems[j];
      elem = telem.identify();
      
      if(elem.indexOf('anonymous') == -1 && $(elem)){
	 if (!tabbedItems.get(newgroup).get(elem))
	    tabbedItems.get(newgroup).set(elem, $H());

	 if (!tabbedItems.get(newgroup).get(elem).get('value'))
	    tabbedItems.get(newgroup).get(elem).set('value', '');

	 visible = 1;
	 if (!isButton(elem)){
	    //if(tabbedItems.get('default').get(elem))
	       //visible = tabbedItems.get('default').get(elem).get('visible');
	    if (!tabbedItems.get(newgroup).get(elem).get('visible'))
	       tabbedItems.get(newgroup).get(elem).set('visible', visible);
	 }
	 if (!tabbedItems.get(newgroup).get(elem).get('hidden'))
	    tabbedItems.get(newgroup).get(elem).set('hidden', '');
	 if (!tabbedItems.get(newgroup).get(elem).get('hasError'))
	    tabbedItems.get(newgroup).get(elem).set('hasError', false);
	 
	 setErrorFree(elem);
	 
	 if ($(elem).type == 'select-one'){
	    $(elem).options[0].selected = true;
	    $(elem).fire(elem+':change');
	 }else if (isButton(elem)){//Type = button
	    if ($(elem).value != '')
	       $(elem).fire(elem+':click');
	 }else if ($(elem).type == 'text'){
	    $(elem).setValue('');
	 }
	 setErrorFree(elem);
	 if (!isButton(elem)){
	    //if (tabbedItems.get(newgroup).get(elem).get('visible')){
	       //showtd(elem);
	    //}else{
	       //hidetd(elem);
	    //}
	    showtd(elem);
	 }
      }
   }
*/
}

function isButton(id){
   if ($(id+'_value'))
      return true;
   else
      return false;
}

function tabSwitch (tabGroup, tabId) {
   if ($(tabGroup)) {
      tabs = $(tabGroup).childElements();

      selected = 0;
      for (i = 0; i < tabs.size(); i++) {
	 if (tabs[i].className == 'selected'){
	    selected = i + 1;
	    Element.removeClassName (tabs[i].identify(), 'selected');
	 }
      }
      Element.addClassName (tabs[tabId - 1].identify(), 'selected');

      if (selected == tabId)
	 return;
      else

      table = 'table_' + tabGroup;

      oldgroup = tabGroup+"#"+selected;
      newgroup = tabGroup+"#"+tabId;

      if (!tabbedItems.get(oldgroup))
	 tabbedItems.set(oldgroup, $H());
      if (!tabbedItems.get(newgroup))
	 tabbedItems.set(newgroup, $H());

      telems = $(table).select('input', 'select');
      for (j = 0; j < telems.size(); j++) {
	 telem = telems[j];
	 elem = telem.identify();

	 if (elem.indexOf('anonymous') == -1 && $(elem)){
	    if (!tabbedItems.get(oldgroup).get(elem)){
	       tabbedItems.get(oldgroup).set(elem, $H());
	    }

	    tabbedItems.get(oldgroup).get(elem).set('value', $(elem).value);
	    if (!isButton(elem))
	       tabbedItems.get(oldgroup).get(elem).set('visible', visibletdbyfs(elem));
	    tabbedItems.get(oldgroup).get(elem).set('hasError', hasError(elem));
	    tabbedItems.get(oldgroup).get(elem).set('hidden', '');
	    if ($(elem+'_hidden')){
	       tabbedItems.get(oldgroup).get(elem).set('hidden', $(elem+'_hidden').value);
	    }
	 }
      }

      telems2 = $(table).select('table[eType="button"]');
      for (j = 0; j < telems2.size(); j++) {
	 telem = telems2[j];
	 elem = telem.identify().gsub('table_', '');

	 if (elem.indexOf('anonymous') == -1 && $(elem)) {
	    if ($(elem).value != ''){
	       $(elem).fire(elem+':click');
	       setButton(elem, '');
	    }
	 }
      }

      for (j = 0; j < telems.size(); j++) {
	 telem = telems[j];
	 elem = telem.identify();

	 if (elem.indexOf('anonymous') == -1 && $(elem)) {
	    if (!tabbedItems.get(newgroup).get(elem)){
	       tabbedItems.get(newgroup).set(elem, $H());
	       tabbedItems.get(newgroup).get(elem).set('value', '');
	       //if (!isButton(elem))
		  //tabbedItems.get(newgroup).get(elem).set('visible', tabbedItems.get('default').get(elem).get('visible'));
	       tabbedItems.get(newgroup).get(elem).set('hidden', '');
	       tabbedItems.get(newgroup).get(elem).set('hasError', false);
	    }

	    if(!isButton(elem)){
	       if (tabbedItems.get(newgroup).get(elem).get('visible')){
		  showtd(elem);
	       }else{
		  hidetd(elem);
	       }
	       showtd(elem);
	    }
	    if ($(elem).type == 'select-one'){
	       if (tabbedItems.get(newgroup).get(elem).get('value').blank())
		  $(elem).options[0].selected = true;
	       else
		  $(elem).setValue(tabbedItems.get(newgroup).get(elem).get('value'));
	       $(elem).fire(elem+':change');
	    }else if (isButton(elem)){//Type = button
	       if (tabbedItems.get(newgroup).get(elem).get('value') != $(elem).value)
		  $(elem).fire(elem+':click');
	    }else if ($(elem).type == 'text'){
	       $(elem).setValue(tabbedItems.get(newgroup).get(elem).get('value'));
	    }
	    if(tabbedItems.get(newgroup).get(elem).get('hasError')){
	       setError(elem);
	    }else{
	       setErrorFree(elem);
	    }
	    if(tabbedItems.get(newgroup).get(elem).get('hidden')){
	       addHiddenField(elem+'_hidden', tabbedItems.get(newgroup).get(elem).get('hidden'));
	    }else{
	       removeHiddenField(elem+'_hidden');
	    }
	 }
      }
   }
   checkDik();
}

function prepareTabsSave(){
   unqTabs = new Array();
   fields = new Array();
   tabbedItems.keys().each(function(s){
      if (s != 'default'){
	 unqTabs.push(s.gsub(/#[0-9]{1,3}/, ''));
      }
   });
   unqTabs = unqTabs.uniq();

   unqTabs.each(function(s){
      tabSwitch(s, 1);
   });
   tabbedItems.keys().each(function(tab){
      if (tab != 'default'){
	 parts = tab.split('#');
	 num = parts[1];
	 tabGroup = parts[0];
	 table = 'table_'+tabGroup;

	 if (num > 1){//Ignore first tabs, they are submitted by form, no need to add hidden fields
	    hTab = tabbedItems.get(tab);

	    if ($(table)){//If table tab is real and exists
	       elems = $(table).select('input', 'select');
	       elems.each(function(relem){
		  elem = relem.identify();
		  visible = false;
		  if(!isButton(elem))
		     visible = hTab.get(elem).get('visible');
		  if ((!isButton(elem) && visible) || isButton(elem)) {
		     value = hTab.get(elem).get('value');
		     if (!value)
			value = '';
		     addStatusField(elem+'#'+num, value);
		     fields.push($(elem+'#'+num));

		     if (hTab.get(elem).get('hidden'))
			addHiddenField(elem+'#'+num+'_hidden', hTab.get(elem).get('hidden'));
		  }
	       });
	    }
	 }
      }
   });
   return fields;
}

function deleteLastTab(tabGroup, addButtonId){//Deletes current selected tab
   tabs = $(tabGroup).childElements();

   selected = 0;
   for (i = 0; i < tabs.size(); i++) {
      if (tabs[i].className == 'selected'){
	 selected = i + 1;
      }
   }

   last = tabs.size();
   
   if (last > 1){
      if (selected == 1){
	 tabSwitch(tabGroup, 2);
	 tabs[0].addClassName('selected');
	 tabs[1].removeClassName('selected');
      }else
	 tabSwitch(tabGroup, 1);

      tabbedItems.unset(tabGroup+'#'+selected);

      if($(tabGroup+'_'+last)){
	 Element.remove(tabGroup+'_'+last);
      }

      for(i = selected; i < last; i++){
	 j = i + 1;
	 tabbedItems.set(tabGroup+'#'+i, tabbedItems.get(tabGroup+'#'+j));
      }

      tabbedItems.unset(tabGroup+'#'+last);

   }else{
      fs = tabGroup.gsub('tab_', '');
      if ($('fs_'+fs)) {
	 hidefs(fs);
	 hidetd(addButtonId);
      }
      telems = $('table_'+tabGroup).select('input', 'select');

      telems.each(function(relem){
	    elem = relem.identify();
	    if ($(elem).type == 'select-one'){
	       $(elem).options[0].selected = true;
	       $(elem).fire(elem+':change');
	    }else if (isButton(elem)){//Type = button
	       if ($(elem).value != '')
		  $(elem).fire(elem+':click');
	    }else if ($(elem).type == 'text'){
	       $(elem).setValue('');
	    }
      });
   }
   return last-1;
}

function deleteLastTabOld(tabGroup, addButtonId){
   tabs = $(tabGroup).childElements();

   last = tabs.size();
   
   if (last > 1){
      tabbedItems.unset(tabGroup+'#'+last);

      if($(tabGroup+'_'+last)){
	 Element.remove(tabGroup+'_'+last);
      }

      tabSwitch(tabGroup, last-1);
   }else{
      fs = tabGroup.gsub('tab_', '');
      hidefs(fs);
      hidetd(addButtonId);
      telems = $('table_'+tabGroup).select('tr[status="get"]');

      telems.each(function(s){
	 elems = s.select('input', 'select');
	 elems.each(function(f){
	    f.setValue('');
	 });
      });
   }
   return last-1;
}

function visibletdbyfs (id) {
   if ($(id)){
      s = $(id);
      parents = s.ancestors();
      parentfs = null;
      parents.each(function(p){
	 if (p.identify().indexOf('fs_') != -1){
	    parentfs = p;
	    throw $break;
	 }
      });
      if (parentfs != null && parentfs.visible())
	 return true;
   }
   return false;
}

function findVisibleFields (retField) {
   addfields = prepareTabsSave();

   elems = $('main_form_div').select ('td', 'div', 'table[status="get"]');
   elems = elems.concat(addfields);
   
   fields = [];

   elems.each ( function (s) { 
      parents = s.ancestors();
      parentfs = null;
      parents.each(function(p){
	 if (p.identify().indexOf('fs_') != -1){
	    parentfs = p;
	    throw $break;
	 }
      });
      if (s.identify().indexOf('anonymous') == -1 && (s.visible() || s.type == 'hidden')) {
	 f = s.identify().gsub ('td1_', '').gsub ('td2_', '').gsub ('div_', '').gsub ('table_', '').gsub ('tdt_', '');
	 if (f.indexOf('td_') == -1) {
	    if (parentfs != null && parentfs.visible())
	       fields.push (f); 
	    else if (parentfs == null)
	       fields.push (f); 
	 }
      }
   });
   fields = fields.uniq();

   $(retField).setValue (fields.join ('-'));
   return true;
}

function addHiddenField (name, value) {
   if ($(name)) {
      $(name).setValue (value);
   } else {
      html = '<input type="hidden" name="' + name + '" id="' + name + '" value="' + value + '" />';
      Element.insert ($('form_gen'), {top: html});
   }
}

function removeHiddenField (name) {
   if ($(name)) {
      Element.remove(name);
   }
}

function addStatusField (name, value) {
   if ($(name)) {
      $(name).setValue (value);
   } else {
      html = '<td id="td2_'+name+'"><input type="hidden" name="' + name + '" id="' + name + '" value="' + value + '" /></td>';
      Element.insert ($('main_form_div'), {top: html});
   }
}

function appendHiddenField (name, value) {
   if ($(name)) {
      $(name).setValue ($(name).value+'&'+value);
   } else {
      html = '<input type="hidden" name="' + name + '" id="' + name + '" value="' + value + '" />';
      Element.insert ($('form_gen'), {top: html});
   }
}

function popupLink(Link, width, height) {
   popup=window.open(Link, "newwin", "width=" + width + ",height=" + height + ",scrollbars=no,resizable=no");
}

function ValidateLogin(form) {
   var startErrorMsg = "Παρουσιάστηκαν προβλήματα κατά την είσοδο στο σύστημα:\n";
   var errors = "";

   if(form.user.value == "") {
      errors += "Δεν έχετε ορίσει Όνομα Εισόδου.\n";
	}

   if(form.pass.value == "") {
      errors += "Δεν έχετε ορίσει το Συνθηματικό.\n";
   }

   if(errors == ""){
      return true;
   }

   alert(startErrorMsg + errors);
   return false;
}

function CheckNewDeclaration(form) {
   var startErrorMsg = "Παρουσιάστηκαν προβλήματα κατά την δημιουργία νέας Δήλωσης:\n";
   var errors = "";

   if(form.name.value == "") {
      errors += "Δεν έχετε ορίσει Όνομα Δήλωσης.\n";
   }

   if(errors == "") {
      return true;
   }

   alert(startErrorMsg + errors);
   return false;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function onMOut(id){
   elem = 'tr_'+id;
   if ($(elem)){
      cStyle = $(elem).className;
      className = cStyle.gsub('-light-bg', '').gsub('-bg', '');
      $(elem).classNames().each(function(s){
	 $(elem).removeClassName(s);
      });
      className = className+'-bg';
      $(elem).addClassName(className);
   }
}

function onMOver(id){
   elem = 'tr_'+id;
   if ($(elem)){
      cStyle = $(elem).className;
      className = cStyle.gsub('-light-bg', '').gsub('-bg', '');
      $(elem).classNames().each(function(s){
	 $(elem).removeClassName(s);
      });
      className = className+'-light-bg';
      $(elem).addClassName(className);
   }
}

function checkDik (){
   if ($('pkdikperc')) {
      val11 = $('pkdikperc');
      val12 = $('pkdikklasma');
      val21 = $('pskdikperc');
      val22 = $('pskdikklasma');
      val31 = $('epdikperc');
      val32 = $('epdikklasma');
      val41 = $('dodikperc');
      val42 = $('dodikklasma');

      if (!val11.getValue().blank()){
	 val12.setValue('');
	 val11.disabled = false;
	 val12.disabled = true;
      }else if (!val12.getValue().blank()){
	 val11.setValue('');
	 val12.disabled = false;
	 val11.disabled = true;
      }else if (val11.getValue().blank() && val12.getValue().blank()){
	 val12.disabled = false;
	 val11.disabled = false;
      }

      if (!val21.getValue().blank()){
	 val22.setValue('');
	 val21.disabled = false;
	 val22.disabled = true;
      }else if (!val22.getValue().blank()){
	 val21.setValue('');
	 val22.disabled = false;
	 val21.disabled = true;
      }else if (val21.getValue().blank() && val22.getValue().blank()){
	 val22.disabled = false;
	 val21.disabled = false;
      }

      if (!val31.getValue().blank()){
	 val32.setValue('');
	 val31.disabled = false;
	 val32.disabled = true;
      }else if (!val32.getValue().blank()){
	 val31.setValue('');
	 val32.disabled = false;
	 val31.disabled = true;
      }else if (val31.getValue().blank() && val32.getValue().blank()){
	 val32.disabled = false;
	 val31.disabled = false;
      }

      if (!val41.getValue().blank()){
	 val42.setValue('');
	 val41.disabled = false;
	 val42.disabled = true;
      }else if (!val42.getValue().blank()){
	 val41.setValue('');
	 val42.disabled = false;
	 val41.disabled = true;
      }else if (val41.getValue().blank() && val42.getValue().blank()){
	 val42.disabled = false;
	 val41.disabled = false;
      }
   }
}

