/**
 * Funkcja tworzy okna potwierdzenia ( tak lub anuluj ).
 * Wykorzystywana jest wtedy, gdy formularz nie korzysta
 * z pager'a lub formularza.
 *
 * @access public
 * @param  string page - url strony
 * @param  string question - pytanie odnosnie czynnosci, ktora bedzie wykonana
 * @param  string information - dodatkowa informacja
 * @param  integer amount - liczba kluczy obcych kasowanego wiersza
 * @return void
 */
function confirm1(page,question,information,amount)
{
  var message;
  message = question;

  if (amount > 0)
    message = message + ' \n ' + information;

  var check = window.confirm(message);
  if (check == true) {
    document.location.href = page;
  }
}

/**
 * Funkcja tworzy okna potwierdzenia ( tak lub anuluj ).
 * Jest polaczona z funkcja pager'a.
 * Wykorzystywana jest wtedy, gdy formularz korzysta z
 * pager'a.
 *
 * @access public
 * @param  string page - nazwa formularza do odswierzenia
 * @param  string question - pytanie odnosnie czynnosci, ktora bedzie wykonana
 * @param  string information - dodatkowa informacja
 * @param  integer amount - liczba kluczy obcych kasowanego wiersza
 * @return void
 */
function confirm2(page,question,information,amount)
{
  var message;
  message = question;

  if (amount > 0)
    message = message + ' \n ' + information;

  var check = window.confirm(message);
  if (check == true) {
    eval ('document.' + page + '.submit()');
  }
  else {
    document.getElementById('czynnoscSep').value = '';
  }
}

function confirm3(formName, czynnoscSep, idRec, question, information, amount)
{
  if (czynnoscSep) {
    document.getElementById('czynnoscSep').value = czynnoscSep;
  }
  
  if(idRec != 'window' ){
    document.getElementById('id').value = idRec;
  }
  
  var message = question;

  if (amount > 0) {
    message = message + ' \n ' + information;
  }

  var check = window.confirm(message);
  if (check == true) {
    eval ('document.' + formName + '.submit()');
  }
}

/*
 * Funkcja przesyla pojedynczego 'selecta' z pominieciem form'sa.
 * Moze byc wykorzystana, kiedy np. nie trzeba zapamietywac pager'a
 * i wynikow filtrowania, ale trzeba przeslac dlugi url.
 */
function sendCombo1(form, url, nameSelect)
{
  if (url && nameSelect) {
    var valueSelect = form.options[form.selectedIndex].value;
    url1 = '&' + nameSelect + '=' + valueSelect;
    document.location.href = url + url1;
  } else {
    alert('Bad function parametr in sendCombo2');
  }
}

/*
 * Funkcja przesyla pojedynczego 'selecta' z wykorzystaniem form'sa,
 * kiedy wymagane jest zapamietanie form'sa lub pager'a
 */
function sendCombo2(form, formName, czynnoscSep, nameSelect, idCombo, show)
{
  if (formName && czynnoscSep && nameSelect && idCombo) {
    var valueSelect = form.options[form.selectedIndex].value;
    document.getElementById(nameSelect).value = valueSelect;
    document.getElementById('czynnoscSep').value = czynnoscSep;
	 document.getElementById('search').value = 'pager';
    document.getElementById('show').value = show;
    document.getElementById('idCombo').value = idCombo;
    document.getElementById('id').value = idCombo;
	 eval ('document.' + formName + '.submit()');
  } else {
    alert('Bad function parametr in sendCombo2');
  }
}

/**
 * Funkcje pomocnicze do obslugi formularzy
 *
 * @category   funkcje pomocnicze
 * @package
 * @author
 * @copyright  2006 The ITCG
 * @version
 */

/**
 * Funkcja wykorzystywana do czyszczenia pola tekstowego.
 * Po kliknieciu na pole tekstowe funkcja czysci jego zawartosc.
 *
 * @access public
 * @param  string inputName - id formularza
 * @return void
 */
function clearInput(inputName)
{
  inputName = document.getElementById(inputName);
  if (inputName.value == inputName.defaultValue)
    inputName.value='';
}

function clearField(id, ids)
{
  if (id) {
    var field = document.getElementById(id);
  }
  var fields = ids.split('|');
  
  if (id && field.checked == false) {
    _clearField(fields);
  }
  if (!id) {
    _clearField(fields);
  }
}

function _clearField(fields)
{
  for (var i = 0; i < fields.length; i++) {
    var field2 = document.getElementById(fields[i]);
    if (field2.checked == true) {
      field2.checked = false;
    } else {
      field2.value = '';
    }
  }
}

function enableDisableField(id, ids)
{
  var field  = document.getElementById(id);
  var fields = ids.split('|');
  
  if (field.checked == true) {
    for (var i = 0; i < fields.length; i++) {
      var field = document.getElementById(fields[i]);
      field.disabled = false;
    }
  } else {
    clearField(id, ids);
    for (var i = 0; i < fields.length; i++) {
      var field = document.getElementById(fields[i]);
      field.disabled = true;
    }
  }
}

function setDefaultValue(form, obj_name, type)
{
  if (type == 'select') {
    obj = form.elements[obj_name];
    obj.options[0].selected = true;
  } 
  if (type == 'text') {
    obj = form.elements[obj_name];
    obj.value = '';
  }
}

function redirect(url)
{
  window.location.href = url;
}

var active_keys = new Array('start');
var link_state = '[Rozwiń wszystkie]';
function activeNotActive(all_keys, key)
{
	var search_index    = 0;
	var not_active_keys       = '';
	var not_active_keys_array = '';
 	var keys = all_keys.split('_');
	
	if (key) {
	  key_temp = key.substr(0, key.lastIndexOf(','));	  
    for (var i = 0; i < active_keys.length; i++) {
      if (key_temp == active_keys[i]) {
        search_index = i;
        break;
      }
    }
  
    if (search_index > 0) {
      active_keys.splice(search_index, 1);
      
      var main_key = key.substring(0, key.indexOf(',,'));
		  var main_key_flag = 0;
	    
	    for (var i = 0; i < keys.length; i++) {
		    if (keys[i].match(main_key)) {
		      not_active_keys += keys[i].substring(keys[i].lastIndexOf(',,') + 2) + ',';
		    }		    
			  if (main_key_flag == 0) {
			    for (var j = 0; j < active_keys.length; j++) {
            if (active_keys[j].match(main_key)) {
              active_keys.splice(j, 1)
              if (main_key.indexOf(',') > 1) {
                main_key_flag = 1;
                break;
              }
            }
          }
        }
	    }
	    
		  not_active_keys       = not_active_keys.substring(0, not_active_keys.length - 1);
		  not_active_keys_array = not_active_keys.split(',');
		  
      for (var i = 0; i < not_active_keys_array.length; i++) {
				if (document.getElementById(not_active_keys_array[i]).className == 'trVisible') {
		  	  notActive(not_active_keys_array[i]);
		    }   
      }
    } else {
		  var splited_key  = key.split(',');
      var last_index   = splited_key.length - 1;
      var quantity_cat = splited_key[last_index];
		   
		  active_keys.push(key.substr(0, key.lastIndexOf(',')));
		
		  for (var i = last_index - quantity_cat; i < last_index; i++) {
        active(splited_key[i]);   
      }
	  }
  } else {
  	for (var i = 0; i < keys.length; i++) {
	    search_index = 0;
		  for (var j = 0; j < active_keys.length; j++) {
        if (keys[i] == active_keys[j]) {
          search_index = j;
          break;
        }
      }
		  if (link_state == '[Rozwiń wszystkie]') {
		    if (!search_index) {
		  	  active_keys.push(keys[i])
		    }
		  } else {
	  		if (search_index > 0) {
  			  active_keys.splice(search_index, 1);
				}	
			}		    
			last_occurrence = keys[i].lastIndexOf(',,');
			if (last_occurrence > 0) {
			  not_active_keys += keys[i].substring(last_occurrence + 2) + ',';
			} else {
			  not_active_keys += keys[i];
			}
		}
		if (not_active_keys.substring(not_active_keys.length - 1, not_active_keys.length) == ',') {
		  not_active_keys = not_active_keys.substring(0, not_active_keys.length - 1);
		}
		
		if (not_active_keys) {
 		  var not_active_keys_array = not_active_keys.split(',');
	 
      for (var i = 0; i < not_active_keys_array.length; i++) {
        if (link_state == '[Rozwiń wszystkie]') {
		      if (document.getElementById(not_active_keys_array[i]).className == 'trHidden') {
		  	    active(not_active_keys_array[i]);
		      }
			  } else {
			    if (document.getElementById(not_active_keys_array[i]).className == 'trVisible') {
		  	    notActive(not_active_keys_array[i]);
		      }
		    }
      }
    }
  }
  
  if (active_keys.length == 1) {
    link_state = '[Rozwiń wszystkie]';
    document.getElementById('link').innerHTML = link_state;
  }
  if (active_keys.length == keys.length + 1) {
    link_state = '[Zwiń wszystkie]';
    document.getElementById('link').innerHTML = link_state;
  }
}

function activeNotActive2(all_keys, key)
{
	var search_index    = 0;
	var not_active_keys = '';	
  var keys = all_keys.split('_');
  
	if (key) {
    for (var i = 0; i < active_keys.length; i++) {
      if (key == active_keys[i]) {
        search_index = i;
        break;
      }
    }
      
    if (search_index > 0) {
      active_keys.splice(search_index, 1);
      notActive(key);
    } else {
		  active_keys.push(key);
		  active(key);
	  }
  } else {   		
    for (var i = 0; i < keys.length; i++) {
	    search_index = 0;
		  for (var j = 0; j < active_keys.length; j++) {
        if (keys[i] == active_keys[j]) {
          search_index = j;
          break;
        }
      }
      
		  if (link_state == '[Rozwiń wszystkie]') {
		    if (!search_index) {
		  	  active_keys.push(keys[i])
		  	}
		  } else {
	      if (search_index > 0) {
  			  active_keys.splice(search_index, 1);
				}	
			}
			
			not_active_keys += keys[i] + ',';
    }
		
		not_active_keys = not_active_keys.substring(0, not_active_keys.length - 1);
		var not_active_keys_array = not_active_keys.split(',');
			 
    for (var i = 0; i < not_active_keys_array.length; i++) {
      if (link_state == '[Rozwiń wszystkie]') {
			  if (document.getElementById(not_active_keys_array[i]).className == 'trHidden') {
		  	  active(not_active_keys_array[i]);
		    }
			} else {
			  if (document.getElementById(not_active_keys_array[i]).className == 'trVisible') {
		  	  notActive(not_active_keys_array[i]);
		    }
		  }
    }
  }
  
  if (active_keys.length == 1) {
    link_state = '[Rozwiń wszystkie]';
    document.getElementById('link').innerHTML = link_state;
  }
  if (active_keys.length == keys.length + 1) {
    link_state = '[Zwiń wszystkie]';
    document.getElementById('link').innerHTML = link_state;
  }
}

function active(key)
{
  document.getElementById(key).className = 'trVisible';
}

function notActive(key)
{
	document.getElementById(key).className = 'trHidden';
}

var parent_id;
var child_id;
function showHide(id, flag)
{
  element = document.getElementById(id);
  
  //alert ('showHide => ' + ' id = ' + id + ' element = ' + element + ' flag = ' + flag);
  
  if (element.style.display == 'none') {
    _show(id, flag);
  } else {
    _hide(id, flag);
  }
}

function _show(id, flag)
{
  if (flag) {
    _hide(id, flag);
    element = document.getElementById(id);
    element.style.display = 'block';
    if (flag == 'parent') {
      parent_id = id;
    } else {
      child_id = id;
    }
    //alert ('_show => ' + ' id = ' + id + ' element = ' + element + ' flag = ' + flag);
  } else {  
    element = document.getElementById(id);
    //alert ('_show => ' + ' id = ' + id + ' element = ' + element + ' flag = ' + flag);
    if (element != null && element.style.display == 'none') {
      element.style.display = 'block';
    }
  }
}

function _hide(id, flag)
{
  if (flag) {
    //alert('parent_id = ' + parent_id);
    if (parent_id && flag == 'parent') {
      element = document.getElementById(parent_id);
      element.style.display = 'none';
    }
    if (child_id && flag == 'child') {
      element = document.getElementById(child_id);
      element.style.display = 'none';
    }
    //alert ('_hide => ' + ' id = ' + id + ' element = ' + element + ' flag = ' + flag);
  } else {
    element = document.getElementById(id);
    if (element != null && element.style.display == 'block') {
      element.style.display = 'none';
    }
    //alert ('_hide => ' + ' id = ' + id + ' element = ' + element + ' flag = ' + flag);
  }
}

var id_ShowHideWindow;
function showHideWindow(id, id2, value, idRec)
{
  //alert(id);
  if (idRec) {
    id_ShowHideWindow = idRec;
  }

  document.getElementById(id).innerHTML = value;
  element = document.getElementById(id2);

  if (element.style.display =='block') {
    element.style.display='none';
  } else {
    element.style.display='block';
  }
}

var flag_display_error;
function displayError(d_type, c_type)
{
  if (d_type == 'hide') {
    _hide('', '', 'display_error');
  } else {
    _show('', '', 'display_error'); 
  }
  setFlagDisplayError(c_type);
}

function setFlagDisplayError(c_type)
{
  flag_display_error = c_type;
}

function getFlagDisplayError()
{
  return flag_display_error;
}

function submitForms(form_name, desc)
{
  //alert(form_name)
  if (desc) {
    document.getElementById('desc_flag').value = desc;
  }
  eval ('document.' + form_name + '.submit()');
}

function replace_pc(str)
{	
  var str_pc = str;

  // Arrays
  var search_char  = new Array('+',     '/', '\'', '&',   '%',       'ć', 'Ć', 'ś', 'Ś', 'ą', 'ż', 'Ż', 'ó', 'ł', 'Ł', 'ź', 'Ź', 'ń', 'ę');
  var replace_char = new Array('_plus', '-', '-',  'and', 'procent', 'c', 'C', 's', 'S', 'a', 'z', 'Z', 'o', 'l', 'Ł', 'z', 'Z', 'n', 'e');

  for (i = 0; i < search_char.length; i++) {
    str_pc = str_pc.replace(search_char[i],replace_char[i]);
  }
  
  return str_pc;
}

function checkSelectList(field)
{
  var selected_index = field.selectedIndex;
  var field_value    = field.options[selected_index].value;
  var subcat_flag  = field_value.indexOf(',,');
  var all_cat_flag = field_value.indexOf('_');
  
  if (subcat_flag > 0 && all_cat_flag < 0) {
    var values = field_value.substring(0, subcat_flag);
    var quantity_el = values.split(',');
    if (quantity_el.length == 1) {
      field.options[selected_index].selected = false;
      field.options[selected_index + 1].selected = true;
    }
  }
}

function operationsOnCheckboxes(id1, id2, id3, empty)
{
  element1 = document.getElementById(id1);
  element2 = document.getElementById(id2);
  if (id3) {
    element3 = document.getElementById(id3);
  }
  
  if (element1.checked == true) {
    element2.checked = false;
    if (id3) {
      element3.value = '';
    }
  } else {
    if (empty == 'no') {
      if (element2.checked == true) {
        element1.checked = false;
      } else {
        element1.checked = true;
      }
    } else {
      element1.checked = false;
    } 
  }
}

//function setCheckboxes(form, c_object, p_object, s_objects, banned_objects)
function setCheckboxes(form, c_object, p_object, s_objects)
{
  var s_objects_splited = s_objects.split('_');
  var set_p_object   = true;
  var set_s_objects  = false;
  var s_objects_flag = 0; 
  var object = '';
  
  //alert(p_object + ' - ' + s_objects);
  
  if (c_object.name.indexOf('_') < 0 && c_object.name.indexOf('p') < 0) {
    object = eval('form.' + c_object.name);
    if (object.checked) {
      set_s_objects  = true;
    }
    s_objects_flag = 1;
  }
  
  for (var i = 0; i < s_objects_splited.length; i++) {
    //if (banned_objects.indexOf(s_objects_splited[i]) < 0) {
      if (c_object.name.indexOf('c') >= 0) {
        object = eval('form.' + p_object + '_' + s_objects_splited[i]);
      } else {
        object = eval('form.' + s_objects_splited[i]);
      }
      if (s_objects_flag) {
        if (set_s_objects) {
          if (!object.checked) {
            object.checked = true;
          }
        } else {
          if (object.checked) {
            object.checked = false;
          }
        }
      } else {
        if (!object.checked) {
          set_p_object = false;
          break;
        }
      }
    //}
  }
  
  if (s_objects_flag == 1 && !set_s_objects) {
    set_p_object = false;
  }
  
  object = eval('form.' + p_object);
  if (set_p_object) {
    if (!object.checked) {
      object.checked = true;
    }
  } else {
    if (object.checked) {
      object.checked = false;
    }  
  }
}

function setCheckboxes2(id1, id2)
{
  object1 = document.getElementById(id1);
  object2 = document.getElementById(id2);
  
  if (object1.checked == false) {
    if (object2) {
      object2.checked = false;
    }
  } else {
    if (object2) {
      object2.checked = true;
    }
  }
}

function allowReset()
{
  return window.confirm("Dane wpisane do formularza zostaną usunietę. Kontynuować?");
}

function allowSend(operation)
{
  return window.confirm("Wybrane operacje zostaną wykonane. Kontynuować?");
}

var new_wind;
function openWindow(URL, replace, id)
{
  if (!new_wind || new_wind.closed) {
    
    name = '_blank';
    //name = 'subwindow';
    
    specs  = 'toolbar       = no'; 
    specs += ', location    = no'; 
    specs += ', directories = no'; 
    specs += ', status      = no'; 
    specs += ', menubar     = no'; 
    specs += ', scrollbars  = yes'; 
    specs += ', resizable   = yes'; 
    specs += ', copyhistory = no';
    
    if (id == 0) {
      specs += ', width  = 550'; 
      specs += ', height = 115';
    }
    if (id == 1 || id == 2) {
      specs += ', width  = 550'; 
      specs += ', height = 150';
    } else {
      specs += ', width  = 700'; 
      specs += ', height = 500';
    }
    
    var output = '<HTML><HEAD>';
    
    if (id == 'company_rules') {
      output += '<TITLE>Regulamin YoYoPartner.pl</TITLE>';
      output += '<STYLE type="text/css">';
      output += 'h3 {font-size: 15px; font-family: Arial, Helvetica, sans-serif; font-weight: bold; margin-bottom: 1em}';
      output += 'p {margin-top: 1em; margin-bottom: 1em}';
      output += 'ul.rules {margin-left: 25px}';
      output += 'ul.rules li {padding-left: 6px; list-style: square; margin-bottom: 0.5em}';
      output += 'ol.rules {margin-left: 30px}';
      output += 'ol.rules li {padding-left: 1px; list-style: lower-alpha; margin-bottom: 0.5em}';
      output += 'ol.rules li ul {margin-left: 12px}';
      output += 'ol.rules li ul li{padding-left: 1px; list-style: square; margin-bottom: 0.5em}';
      output += '</STYLE>';
    } else {
      output += '<TITLE>Przykład</TITLE>'; 
      if (id == 0 || id == 1) {
        output += '<STYLE type="text/css">';
        output += 'body {font-family: /* Arial,Helvetica, */Tahoma,"Trebuchet MS",Verdana,sans-serif; color: #555; font-size: 0.75em; line-height: 140%; background: url(../img/bg.png)/* ; behavior: url(csshover2.htc); */; font-size: 0.7em}';
        output += '.inputBtn {background: #a8c451; background: #63BCFA; border: none; color: #fff; font-size: 1em; font-weight: bold; cursor: pointer}';
        output += '.inputBtn:hover {background: #296e9f}';
        output += '.explanation {background: #f5f7f8 8px 8px no-repeat; padding: 0em 0.4em 0.4em 0.8em; margin-bottom: 1em; border: 1px solid #d9e7ee; height: auto !important; height: 36px; min-height: 36px }';
        output += '.explanation p {margin-bottom: 0.4em}';
        output += '.explanation a {/* color: #1877c8;  */font-weight: bold;}';
        output += '</STYLE>';
      }
    }
    
    output += '</HEAD><BODY>';
    
    new_wind = window.open(URL, name, specs);
    
    if (id == 'company_rules') {
      output += '<h3>REGULAMIN YoYoPartner.pl<h3>';
      output += document.getElementById(id).value;
    } else {
      if (id == 0 || id == 1 || id == 2) {
        output += '<div class="explanation">';
        output += '<p>' + document.getElementById(id).value + '</p>';
        output += '</div>';
      } else {
        output += '<img src="/examples/id' + id + '_redi.png">';
      }
    }
    output += '<FORM><INPUT TYPE="button" VALUE="Zamknij" onClick="self.close()" class="inputBtn"></FORM>';
    output += '</BODY></HTML>';
    
    new_wind.document.write(output);
    new_wind.document.close();
  
  } else {
    new_wind.focus();
  }
}

function closeWindow()
{
  if (new_wind && !new_wind.closed) {
    new_wind.close();
  }
}

function prep_url(str)
{
	if (str == 'http://' || str == '')
	{
		return '';
	}
	
	if (str.substring(0,7) != 'http://' && str.substring(0, 8) != 'https://')
	{
		str = 'http://' + str;
	}
	
	return str;
}

// global timer ID for the delayOnChange function.
var soc_id = null;
function delayOnChange( code, delay ) {
  delay = delay || 750;
  window.clearTimeout( soc_id );
  soc_id = window.setTimeout( code, delay );
}

function isNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }
   
function preview(form){
	form.onsubmit = null;
}