String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}


function showHideTable(id,sender){
  obj=document.getElementById(id);
  if (obj.style.display != "none" ){
   obj.style.display = "none"
   sender.value='+';
    }
  else {
	 obj.style.display = "";
   sender.value='-';
	 }
}

function wopen(url,w,h,refAdd){
  ref='Edycja';
  if (refAdd)
    ref=ref+refAdd;
  sx = (screen.width-w) / 2;
  sy= (screen.height-h) / 2;  
  WindowObjectReference = window.open(url,ref, "height="+h+",width="+w+",left="+sx+",top="+sy+"resizable,scrollbars");
}  

//otwiera okno w targecie, przydatne w kglista do submitu w okienko :)
function wopen2(id,w,h){
  sx=((screen.width-w)/2);
  sy=((screen.height-h)/2);
  WindowObjectReference =window.open("",id, "height="+h+",width="+w+",left="+sx+",top="+sy+",resizable,scrollbars,status");
}

function wopen_edit(url,w,h,refAdd){
  ref='Edycja';
  if (refAdd)
    ref=ref+refAdd;
  sx = (screen.width-w) / 2;
  sy= (screen.height-h) / 2;  
  WindowObjectReference = window.open(url,ref, "height="+h+",width="+w+",left="+sx+",top="+sy+"resizable");
}  


function selectText(obj){
  var options = obj.getElementsByTagName("option"); 
  for(var i = 0; i < options.length; i++)
    if (options[i].value==obj.value){
      return options[i].innerHTML;
    }  
return false;
}

var ClickColor="#ffcc99";
var ClickClass="selected";

function listMouseOver(obj){
  if (!obj.getAttribute('classbak')){
    var attr = document.createAttribute('classbak');
    attr.value = obj.className;
    obj.setAttributeNode(attr);
  }
  if (obj.className!=ClickClass) 
    obj.className="mouseover";   
}

function listMouseOut(obj){
if (obj.className!=ClickClass)
  obj.className=obj.getAttribute('classbak');
}

function trSelect(obj,selected){
var inputs=obj.getElementsByTagName("input");

if (inputs[0]) {
  inputs[0].checked=selected;
}

  if (!obj.getAttribute('classbak')){
    var attr = document.createAttribute('classbak');
    attr.value = obj.className;
    obj.setAttributeNode(attr);
  }
  
  if (selected)
     obj.className=ClickClass;
  else
     obj.className=obj.getAttribute('classbak');
}

function listClick(obj){
  trSelect(obj,obj.className!=ClickClass);
}

function checksSelect(name,checked){
  if (document.getElementById(name)){
    obj=document.getElementById(name);
    var tab=obj.getElementsByTagName("input");
    for(i = 0; i < tab.length; i++)
      if (tab[i].type=='checkbox')
        tab[i].checked=checked;
    }
  else
  alert('Brak obiektu o id:'+name)
}

function checks(name,checked,fromRow){
  if (document.getElementById(name)){
    obj=document.getElementById(name);
    var tab=obj.getElementsByTagName("tr");
    var len=tab.length;
    if (fromRow==1)
      len=len-1;      
    for(i = fromRow; i < len; i++)
      trSelect(tab[i],checked);
    }
  else
  alert('Brak obiektu o id:'+name)
}


function selectedCheckboxes(obj){
  var ret=0;
  var tab=obj.getElementsByTagName("input");
  for(i = 0; i < tab.length; i++)
    if ((tab[i].type=='checkbox')&&(tab[i].checked==true))
    return true;
  return false; 
} 


function checkCheckboxes(obj){
  if (selectedCheckboxes(obj)<1){
    alert('Nie zaznaczono zadnej pozycji!');
    return false;
  } 
  return true;
}


function deleteChecks(form,action){
  if ((checkCheckboxes(form))&&(confirm('Czy napewno usunąć?'))){
    form.target='_self';
    form.action=action;
    form.submit();
  }
}

function submitChecks(form,action,target){
  if (checkCheckboxes(form)){  
    form.target=target;  
    form.action=action;
    form.submit();
  }
}

function submitChcekboxesOnClick(obj,width,height){
if (selectedCheckboxes(obj)){
  wopen2(obj.name,width,height);
  } 
}


function disableObj(name,state){
  if (!document.getElementById(name))
  return;
  var obj=document.getElementById(name);
  obj.disabled=state;
  
  var inputs = obj.getElementsByTagName("input");
  var selects = obj.getElementsByTagName("select");  
  for(i = 0; i < inputs.length; i++)
    inputs[i].disabled=state;
  for(i = 0; i < selects.length; i++)
    selects[i].disabled=state;
  if (state)
    obj.style.display='none';
  else
    obj.style.display='block';    
}

function focus(obj,yesno){
  var color='white';
  var border='solid 1px #cccccc';
  var t=obj.getAttribute('type');   
  if (yesno){
    color='red';
    border='solid 1px red';  
  }
  obj.style.color='black';  
  if ((t=='text')||(t=='password'))
    obj.style.border=border;
  else 
    obj.style.backgroundColor=color;

return yesno;    
}

function dateSelVal(name,y,m,d){
  if (document.getElementById(name+'_d'))
    document.getElementById(name+'_d').value=d;
  if (document.getElementById(name+'_m'))
    document.getElementById(name+'_m').value=m;
  if (document.getElementById(name+'_y'))
    document.getElementById(name+'_y').value=y;        
}

function dateSelEmpty(name){
  dateSelVal(name,'','','');     
}

function dateSelNow(name){
  n = new Date();
  dateSelVal(name,n.getFullYear(),n.getMonth()+1,n.getDate());  
}


function check_wymagane(form){
  var msg='';
  var invalid=true;
  var errors=0;
  var i=0;
  now = new Date();
  for(i = 0; i < form.elements.length; i++){
      if (form.elements[i].getAttribute('wymagane')&&(!form.elements[i].disabled)){
        var a=form.elements[i].getAttribute('wymagane');   
           if((a=='1')&&(form.elements[i].value=='')){                         
             invalid=true;             
           } 
           else 
            invalid=is_invalid(form.elements[i],form.elements[i].getAttribute('name'))
            if (invalid)
          errors++;                                      
        focus(form.elements[i],invalid);           
       }
  }
  
  if ((form.haslo1)&&(form.haslo2)&&(form.haslo1.value!=form.haslo2.value)){
    alert('Wpisane hasła s± niezgodne!');
    return false;
  }
   
  if (errors>0){
    alert('Uzupełnij wymagane pola!');
    return false;    
  }
  return true;            
}

function is_azAZ09(s){
  var i=0;
  for (i=0;i<s.length;i++){
      if (!(
      (s.charAt(i)>='0' && s.charAt(i)<='9')
      ||(s.charAt(i)>='a' && s.charAt(i)<='z')
      ||(s.charAt(i)>='A' && s.charAt(i)<='Z')
      ||(s.charAt(i)=='_')
      ||(s.charAt(i)=='@')      
      ))
        return false;        
    }        
  return true;   
}

function is_decimal(s){
  var i=0;
  for (i=0;i<s.length;i++){
      if ((s.charAt(i)>'9') || (s.charAt(i)<'0'))
        return false;
    }        
  return true;        
}

function is_invalid(obj,type){
  if (obj.value=='')
    return false;
  var s=obj.value;  
  var invalid=false;
  var msg='ok';
      
  if (type=='email'){
    msg='Nieprawidłowy e-mail!';
    invalid=!is_email(s);
  }
  else if (type=='nip'){
    msg='Nieprawidłowy NIP!';
    invalid=!is_nip(s);
  }  
  else if (type=='kod'){
    msg='Nieprawidłowy kod pocztowy!';
    invalid=!is_postcode(s);
  }  
  else if (type=='tel'){
    msg='Wymagany sumer w formacie "0XX XXXXXX"!';
    invalid=!is_phone(s);
  }   
  else if ((type=='haslo1')||(type=='haslo2')||(type=='login')){
    if (s.length<6){
      msg=type+' powinno zawierać conajmniej 6 znaków!';
      invalid=true;
      }
    if (!is_azAZ09(s)){  
      msg=type+' może zawierać tylko litery, cyfry, małpkę i podkre¶lnik!';
      invalid=true;
    }
  } 
  
  if (invalid)
    alert(msg);        
  focus(obj,invalid); 
  return invalid;
} 


function is_nip(s){
  return ((s.length==10)||(is_decimal(s)));
}  

function is_postcode(s){
  s2=s.replace('-','');
  return ((s.charAt(2)=='-')&&(s2.length==5)&&(is_decimal(s2)));   
}

function is_phone(s){
  s2=s.replace(' ','');
  return ((s.charAt(3)==' ')&&(s2.length==10)&&(is_decimal(s2)));   
}

function onCompareSubmit(){
  //document.getElementById("porownaj").submit();
  inputs=document.getElementsByTagName('input');
  tab=new Array();
  tabi=0;
  for (var i = 0; i < inputs.length; i++) { 
    id = inputs[i].getAttribute("id");
    if (id)
        if ((id.substr(0,8)=='compare_')&&(inputs[i].checked)){
            tab[tabi]=id.substr(8,id.length-8);
            tabi++;        
        }
  }
  if (tabi<2){
    alert('Wybierz co najmniej dwa produkty');
    return;
  }
  s='';
  for (var i = 0; i < tab.length; i++)
   s=s+tab[i]+',';
  s=s.substr(0,s.length-1);
  document.location='/go/_porownaj/index.php?id='+s;
}

function is_email(str) {      
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1)
	   return false
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	   return false
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	    return false
	 if (str.indexOf(at,(lat+1))!=-1)
	    return false
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	    return false
	 if (str.indexOf(dot,(lat+2))==-1)
	    return false
	 if (str.indexOf(" ")!=-1)
	    return false
return true;					
}

function registerSubmit(form){
  //if (check_wymagane(form)){
    sendurl3('register_submit','|',form.login.value,form.nip.value);
    return false;
  //}
  return  false;
} 


function GeneratePassword(obj) {
    if (parseInt(navigator.appVersion) <= 3) {
        alert("Sorry this only works in 4.0+ browsers");
        return true;
    }
    var length=8;
    var sPassword = "";
    var noPunction = true;
    var randomLength = false;

    if (randomLength) {
        length = Math.random();
        length = parseInt(length * 100);
        length = (length % 7) + 6
    }
    for (i=0; i < length; i++) {
        numI = getRandomNum();
        if (noPunction) { while (checkPunc(numI)) { numI = getRandomNum(); } }
        sPassword = sPassword + String.fromCharCode(numI);
    }
    obj.value = sPassword
    return false;
}

function getRandomNum() {
    var rndNum = Math.random()
    rndNum = parseInt(rndNum * 1000);
    rndNum = (rndNum % 94) + 33;
    return rndNum;
}

function checkPunc(num) {
    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }
    return false;
}

