/*
Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for ( var x = 0 ; x <= len ; x++ ) {
		if ( this[x] == obj ) return true;
	}
	return false;
}
*/
if (!Number.toFixed){
  Number.prototype.toFixed=function(x){
    var temp=this;
    temp=Math.round(temp*Math.pow(10,x))/Math.pow(10,x);
    return temp;
}}
function deactiveMenu(bool)
{
  if(bool){
    $('menu_modal').style.display='block'
  }
  else{
    $('menu_modal').style.display='none';
  }
}
function isNumberKey(evt,sign)
{
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  //var charCode = (evt.which) ? evt.which : event.keyCode
  if(evt.type=='keypress')
    var minus = evt.which == 45;
  else
    var minus = charCode == 109;
    
  if(minus){
    if(!sign) return false;
	var targ;
    if (evt.target) targ = evt.target;
    else if (evt.srcElement) targ = evt.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
	  targ = targ.parentNode;
    if(targ.value.indexOf('-')!==-1) return false;
    if(targ.selectionStart>1) return false;
    return true;
  }
  
  if(evt.type=='keypress')
  {  
    if(evt.keyCode!=45 && (charCode < 48 || charCode > 57) &&
       evt.keyCode!=35 && evt.keyCode!=36 && evt.keyCode!=37 && evt.keyCode!=38 &&
       evt.keyCode!=39 &&  evt.keyCode!=40 &&
       evt.keyCode!=46 && charCode!=13 && charCode!=8 && charCode!=9)
     return false;
  } 
  else  
  { 
    if (charCode!=45 && (charCode < 96 || charCode > 105) &&
        charCode!=35 && charCode!=36 && (charCode < 37 || charCode > 40) &&
        charCode!=46 && charCode!=13 && charCode!=8 && charCode!=9)
     return false;
  } 
  return true;
}
function isFloatKey(evt,sign)
{
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  //var charCode = (evt.which) ? evt.which : event.keyCode
  if(evt.type=='keypress')
  {  
    var minus = evt.which == 45;
    var dot = evt.which == 46;
  }  
  else
  {  
    var minus = charCode == 109;
    var dot = charCode == 190;
  }  
  if(minus){
    if(!sign) return false;
	var targ;
    if (evt.target) targ = evt.target;
    else if (evt.srcElement) targ = evt.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
	  targ = targ.parentNode;
    if(targ.value.indexOf('-')!==-1) return false;
    if(targ.selectionStart>1) return false;
    return true;
  }
  if(dot){
	var targ;
    if (evt.target) targ = evt.target;
    else if (evt.srcElement) targ = evt.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
	  targ = targ.parentNode;
    if(targ.value.indexOf('.')!==-1) return false;
    return true;
  }
  
  if(evt.type=='keypress')
  {  
    if(evt.keyCode!=45 && (charCode < 48 || charCode > 57) &&
       evt.keyCode!=35 && evt.keyCode!=36 && evt.keyCode!=37 && evt.keyCode!=38 &&
       evt.keyCode!=39 && evt.keyCode!=40 &&
       evt.keyCode!=46 && charCode!=13 && charCode!=8 && charCode!=9)
     return false;
  } 
  else  
  { 
    if (charCode!=45 && (charCode < 96 || charCode > 105) &&
        charCode!=35 && charCode!=36 && (charCode < 37 || charCode > 40) &&
        charCode!=46 && charCode!=13 && charCode!=8 && charCode!=9)
     return false;
  } 
  return true;
}
function closeOnEscape(evt,wnd)
{
  var charCode = (evt.which) ? evt.which : event.keyCode;
  if(charCode==27)
    $(wnd).innerHTML='';
  return true;
}
function checkMaxQnt(obj,max)
{
  if(parseInt(obj.value)>max)
    obj.value = max;
}
function checkMinQnt(obj,min)
{
  if(parseInt(obj.value)<min)
    obj.value = min;
}
function checkString(evt,max)
{
  var targ;
  if (evt.target) targ = evt.target;
  else if (evt.srcElement) targ = evt.srcElement;
  if (targ.nodeType == 3) // defeat Safari bug
	targ = targ.parentNode;
  if(max && targ.value.length>max) return false;
  return true;
}
var selected;
var selected_class = '';
function unselect(){
  if(selected!=undefined)
    $(selected).className = selected_class;
  selected = undefined;
  selected_class = '';
}
function selectRow(row)
{
  unselect();
  selected = row;
  selected_class = $(row).className;
  $(row).className = 'marked';
}
// new version
var selected_a = new Object();
var selected_class_a = new Object();
function unselect_a(tbl){
  if(selected_a[tbl]!=undefined)
    $(selected_a[tbl]).className = selected_class_a[tbl];
  selected_a[tbl] = undefined;
  selected_class_a[tbl] = undefined;
}
function selectRow_a(tbl,row)
{
  unselect_a(tbl);
  selected_a[tbl] = row;
  selected_class_a[tbl] = $(row).className;
  $(row).className = 'marked';
}
// new version
function SetGrip(wnd)
{
  box = mint.gui.RegisterDragObject(wnd);
  box.moveOnTop = true;
  box.AddGrip('drag_panel_'+wnd, true);
}
function modal(bool)
{
  if(bool)
   $('modal').style.display='block'
  else
   $('modal').style.display='none';
}
function setInvalid(obj,msg)
{
  $('label_'+obj).setStyle({'color':'red'});
  $('invalid_'+obj).insert('<img src="/images/common/invalid.png" alt="Błąd" title="'+msg+'"/>');
  if($(obj+'_hidden_value'))
    $(obj).value = $(obj+'_hidden_value').value;
  return false;
}
function validateString(obj,req,max,min)
{
  var val = $(obj).value;
  $('label_'+obj).setStyle({'color':'black'});
  $('invalid_'+obj).innerHTML='';
  if(req && val.strip()=='')
	return setInvalid(obj,"Pole jest wymagane");
  if(max && val.length>max)
	return setInvalid(obj,'Pole musi zawierać conajwyżej '+max+' znaków.');
  if(min && val.length<min)
	return setInvalid(obj,'Pole musi zawierać conajmniej '+min+' znaków.');
  return true;
}
function validateInteger(obj,req,max,min,sign)
{
  var val = parseInt($(obj).value);
  $('label_'+obj).setStyle({'color':'black'});
  $('invalid_'+obj).innerHTML='';
  if(req && val==NaN)
	return setInvalid(obj,"Pole jest wymagane");
  if(sign){
    if(/^-?\d+$/.test(val)===false)
  	  return setInvalid(obj,'Nieprawidłowa wartość.');
  }else{
    if(/^\d+$/.test(val)===false)
	  return setInvalid(obj,'Nieprawidłowa wartość.');
  }
  if(min && val<min)
	return setInvalid(obj,'Liczba musi być większa lub równe '+min+'.');
  if(max && val>max)
	return setInvalid(obj,'Liczba musi być mniejsza lub równa '+max+'.');
  return true;
}
function validateFloat(obj,req,max,min,sign)
{
  var val = parseFloat($(obj).value);
  $('label_'+obj).setStyle({'color':'black'});
  $('invalid_'+obj).innerHTML='';
  if(req && val==NaN)
	return setInvalid(obj,"Pole jest wymagane");
  if(sign){
    if(/^-?\d+\.{0,1}\d{0,}$/.test(val)===false)
  	  return setInvalid(obj,"Nieprawidłowa wartość.");
  }else{
    if(/^\d+\.{0,1}\d{0,}$/.test(val)===false)
	  return setInvalid(obj,"Nieprawidłowa wartość.");
  }
  if(min && val<min)
	return setInvalid(obj,'Liczba musi być większa lub równe '+min+'.');
  if(max && val>max)
	return setInvalid(obj,'Liczba musi być mniejsza lub równa '+max+'.');
  return true;
}
function validateRegex(obj,req,regex)
{
  var val = $(obj).value;
  $('label_'+obj).setStyle({'color':'black'});
  $('invalid_'+obj).innerHTML='';
  if(req && val.strip()=='')
	return setInvalid(obj,'Pole jest wymagane');
  var reg = new RegExp(regex);
  if(reg.test(val)===false && val.strip()!='')
	return setInvalid(obj,"Nieprawidłowa wartość.");
  return true;
}
function validateEmail(obj,req)
{
  return validateRegex(obj,req,'^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$');
}
function show_actions()
{
  var s = $('actions_button').positionedOffset();
  //$('actions_menu').style.left=s[0];
  //$('actions_menu').style.top=s[1]+$('actions_button').getHeight();
  $('actions_menu').innerHTML='<img src="/images/common/loading.gif" alt="loading..."/>';
  $('actions_menu').show();
}
function triggerEvent(element, eventName) {
    // safari, webkit, gecko
    if (document.createEvent)
    {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent(eventName, true, true);

        return element.dispatchEvent(evt);
    }

    // Internet Explorer
    if (element.fireEvent) {
        return element.fireEvent('on' + eventName);
    }
}

function prepareUrl(url)
{
  if(url.indexOf('http://', 0)==-1)
    return 'http://'+url;
  return url;
}
