
/**
 *  Konstansok
 */
var EREG_WORD  = '^[\\w]+$';
var EREG_NUM   = '^[-]?[0-9]+$';
var EREG_EMAIL = '^[\\w]+@([\\w]+\\.)+([\\w]+)$';


/**
 * Felhasznalo altal kitoltendoek
 */

// A tabok azonositoi
var tab_ids     = new Array();

// Az alapertelmezett tab indexe a tombben (nem az azonositoja!)
var tab_default = 0;


// Ellenorzo utasitasok a mezokrol
var fields = new Array();

/*** Beallitasok vege ***/

/**
 *  Betolteskor aktivizalja a megfelelo tabot
 */
function tab_onLoad() {
   if (!tab_ids || tab_ids.length ==0) return;
   for (i=0; i<tab_ids.length; i++) {
      tmp = document.getElementById('tab_'+tab_ids[i]);
      tmp.className='tab_inactive';
   }
   
   tmp = document.getElementById('tabpanel_'+tab_ids[tab_default]);
   tmp.style.display='block';
   
   tmp = document.getElementById('tab_'+tab_ids[tab_default]);
   tmp.className='tab_active';
}


/**
 *  Megadott azonositoju tabot valasztja ki, a tobbit
 *  inaktivra allitja
 */
function tab_select(id) {
   sel = document.getElementById('tabpanel_'+id);
   if (sel != null) {
      for (i=0; i<tab_ids.length; i++) {
         tmp = document.getElementById('tabpanel_'+tab_ids[i]);
         tmp.style.display='none';
         
         tmp = document.getElementById('tab_'+tab_ids[i]);
         tmp.className='tab_inactive';
      }
      
      sel.style.display='block';
      sel = document.getElementById('tab_'+id);
      sel.className = 'tab_active';
   }
   
   return false;
}

/**
 *  Ellenorzi a node idjet
 */
function getId(node) {
   if (node.id == undefined) return undefined;
   else if (node.id == '') return undefined;
   else return node.id;
}

/**
 *  Megadott noderol megallapitja, hogy melyik tabon van
 */
function getParentTab(node) {
   if (node.name == undefined && node.length != undefined && node.length>0) {
      node=node[0];
   }
   while (node.parentNode != null) {
      id = getId(node);
      if ( (id != undefined) && (id.substr(0,9) == 'tabpanel_') ) {
         id = id.substr(9,id.length-9);
         for (pos=0; pos<tab_ids.length; pos++) {
            if (tab_ids[pos] == id) return pos;
         }
         return null;
      }
      node = node.parentNode;
   }
   return null;
}

function checksubmit() {
   myform = document.getElementById('form');
//   output = document.getElementById('jsoutput');
//   output.value='';
   
   tabpassed = new Array();
   for (i=0; i<tab_ids.length; i++) {
      tabpassed[i] = true;
   }
   
   allpassed=true;
   for (i=0; i<fields.length; i++) {
      if (myform.elements[fields[i][0]]!=undefined) {
         elem=myform.elements[fields[i][0]];
//         output.value+=elem.name+" found, type: "+elem.type;
         
         panel = getParentTab(elem);
//         output.value+=" panel: "+panel;
         
         passed=true;
         
         /** Szamok ellenorzese **/
         if (elem.type == 'text' &&
             fields[i][1] == 'number' &&
             elem.value != undefined)
         {
//             output.value+=" checking";
             
             passed = elem.value.match('^[-]?[0-9]+$') ? true : false;
             if (fields[i][3] != undefined) {
                passed = passed && 
                         (elem.value>=fields[i][2]) &&
                         (elem.value<=fields[i][3]);
             } else {
                passed = passed &&
                         (elem.value<=fields[i][2]);
             }
         }
         /** Szoveg mezo ellenorzese **/
         else if (elem.type == 'text' && 
                  fields[i][1] != undefined && 
                  elem.value != undefined) 
         {
//            output.value+=" checking";
            
            passed = elem.value.match(fields[i][1]) ? true : false;
         }
         /** 
          *  Radiogombok ellenorzese 
          *  (legalabb egynek kivalasztva kell lennie)
          **/
         else if (elem.length != undefined &&
                  elem.length > 0)
         {
            passed=false;
            for (index=0; index<elem.length; index++) {
               passed = passed || elem[index].checked;
            }
         }
         
         /** Kitoltes ellenorzese **/
         else if (elem.type == 'text') 
         {
            passed = elem.value.match('^$') ? false : true;
         }
         
//         output.value+=passed ? ' passed' : ' failed';
         
         warnspan = document.getElementById("w_"+fields[i][0]);
         if (warnspan != null) {
            warnspan.style.visibility= passed ? 'hidden' : 'visible';
         }
         
//         output.value+="\n";
         
         allpassed = allpassed & passed;
         tabpassed[panel] = tabpassed[panel] && passed;
      }
//      else {
//         output.value+=fields[i][0]+" not found\n";
//      }
   }
   
   for (i=0; i<tabpassed.length; i++) {
      elem = document.getElementById('tabw_'+tab_ids[i]);
      if (elem != null) {
          elem.style.visibility = tabpassed[i] ? 'hidden' : 'visible';
      }
   }
//   output.value += allpassed ? "All passed\n" : "Check failed\n";
   if (!allpassed) {
      alert('Hibasan toltotte ki a formanyomtatvanyt! Kerem ellenorizze!');
   }
   return false;
}

