//inicjowanie akcji na polach formularza
$( function(){

  $('.tabtop').keyup(function(event){
                        if (event.keyCode == '13') SubmitForm('SearchForm');     
                      });



});//end init



// SPRAWDZANIE POLA FORMULARZA
function FormCheck( str, valitdtype, min, max ){
var error = false; 
switch( valitdtype )
{
  case 2: //V_ALPHANUMER
      if (! str.match(/^[a-zA-Z0-9 _\.]+$/)) error = true;
  break; //---------------------    
  
  case 3: //V_ALPHANUMERPL
      if (! str.match(/^[a-zA-Z0-9ąĄĆćĘęŁłŃńÓóŚśŹźŻż,\- _\.]+$/)) error = true;
  break; //---------------------

  case 4: //V_NUMBER
      if (! str.match(/^[0-9]+$/)) error = true;
  break; //---------------------
  
  case 5: //V_ALPHA
      if (! str.match(/^[a-zA-Z]+$/)) error = true;  
  break; //---------------------

  case 6: //V_ALPHAPL
      if (! str.match(/^[a-zA-ZąĄĆćĘęŁłŃńÓóŚśŹźŻż]+$/)) error = true;  
  break; //---------------------
  
  case 10: //V_MAIL
      if (! str.match(/^[a-zA-Z0-9\-@_\.]+$/)) error = true;  
  break; //---------------------
  
  case 11: //V_PHONE
      if (! str.match(/^[0-9 -]+$/)) error = true;  
  break; //---------------------
  
  case 12: //V_HOUSE
      if (! str.match(/^[0-9]+[a-zA-Z]?$/)) error = true;  
  break; //---------------------
  
  case 13: //V_NICK
      if (! str.match(/^[a-zA-Z0-9 _\.]+$/)) error = true;  
  break; //---------------------

  case 14: //V_NAME
      if (! str.match(/^[a-zA-ZąĄĆćĘęŁłŃńÓóŚśŹźŻż\-]+$/)) error = true;  
  break; //---------------------

  case 15: //V_HOUR_MIN
      if (! str.match(/(1[024]|[0-9]):[0-5][0-9]/)) error = true;  
  break; //---------------------  
  
  case 20: //V_PESEL
      if (! str.match(/^[0-9]+$/)) error = true;  
  break; //---------------------
 
   case 21: //V_CITY
      if (! str.match(/^[a-zA-Z0-9ąĄĆćĘęŁłŃńÓóŚśŹźŻż\- _\.]+$/)) error = true;
  break; //---------------------

   case 30: //V_LINK
      if (! str.match(/^[a-zA-Z0-9\-@\:%\/_\.]+$/)) error = true;
  break; //---------------------
  
  case 31: //V_PASS
      if (! str.match(/^[\Wa-zA-Z0-9\-@\:%\/_\.]+$/)) error = true;
  break; //---------------------

  case 51: //V_FLOAT
            if (! str.match(/^[0-9,.]+$/)) error = true;
            
  break; //---------------------
  
  case 52: //V_DATE
      if ( 1==1 )
      {  
          if (isDate(str) == false )
            error = true;
          /*
          MyDate =  str+ ' 00:00:00';
          
          for (var i = 0; i <= MyDate.length; i++)
          {
            MyDate = MyDate.replace('-',' ');
          }
          MyDateObj = new Date(MyDate);
          alert(MyDateObj);
          alert(MyDateObj.getDay());
          if (MyDateObj == "Invalid Date")
            error = true;
          */
      }
  break; //---------------------
  
  
  case 100: //SELECTY I CHECKBOXY
  case 101: //SELECTY I CHECKBOXY
  break; //---------------------
}

return error;

}//-----------------------------------------------------------------------------

// SPRAWDZANIE POLA FORMULARZA
function FormValidInput( sender, valitdtype, min, max ){

var str = sender.value;
var error = false;
var str_len = str.length; 
if ( str_len < min || str_len > max ) error = true;  

if (str_len == 0 ){
  //sprawdzanie czy to jest opcjonalne pole
  var params =sender.lang.split('^'); //typ, flagi, min, max, desc
  if ( !(params[1] & 1) ) error = true;
}
else{
  error = FormCheck( str, valitdtype, min, max );
}

if ( error ) sender.style.background = '#ffBBBB';
else sender.style.background = '';

}//-----------------------------------------------------------------------------

function SubmitForm(id){
  var strona = document.getElementById('pg');
  if ( strona ) strona.value=1; //poprawka na paginacje w momencie gdy zmienia sie warunki wyszukiwania

  var form = document.getElementById(id);
  if (FormValidateSend( form, 1 ) ) form.submit();
  return false;
} //----------------------------------------------------------------------------


// SPRAWDZANIE FORMULARZA
function FormValidateSend( sender, disable_empty ){

  
  if (disable_empty == undefined) disable_empty = 1; //defaultowa
  var errors = '';

  $('select.selectall option' ).attr("selected","selected");//zaznaczenie wszystkich pol multiselect     
  
  var sprawdzic = $(sender).find('.cform');
  
  sprawdzic.each( function(i, obj ){
    var lang = obj.lang;
    if (lang == '') return true;
    var params = lang.split('^'); //typ, flagi, min, max, desc     
    
    //odsianie selektow i checkboxow
    if ( params[0] == 100 ){
      if ( ( obj.value == 0 || obj.value == '' || obj.value == undefined ) && !( params[1] & 1 ) ) errors = errors + 'Musisz wybrać ' + params[4] + " \n" ;
      return true;
    }

    //odsianie selektow i checkboxow
    if ( params[0] == 101 ){
      if ( !(params[1] & 1) &&  $(obj).attr('checked') == false ) errors = errors + 'Musisz zaznaczyć ' + params[4] + " \n" ;
      return true;
    }

    
    var str = $(obj).val();
    var str_len = str.length;
    if ( str_len == 0) {
          if( (params[1] & 1) ) {
             return true;
          }
          else {
              errors = errors + 'Pole ' + params[4] + " jest wymagane \n" ;
             return true;
          }                       
    } 
    
    if ( str_len < params[2] ){
                               errors = errors + 'Pole ' + params[4] + " musi mieć co najmniej " + params[2] + " znaków \n" ;
                               return true;  
    } 
    if ( str_len > params[3] ) {
                                errors = errors + 'Pole ' + params[4] + " może mieć maksymalnie " + params[3] + " znaków \n" ;
                                return true;
    } 
    
    if ( FormCheck( str , parseInt(params[0]), parseInt(params[2]), parseInt(params[3]) ) ){
      errors = errors + 'Nieprawidłowe znaki w polu ' + params[4] + "\n";
    }
    
	});

	if ( errors == '' ) {
                        if ( sender.tag == '7' ) return false; //zabezpieczenie przes multikliknieciem
                        sender.tag = '7';
                        
                        if ( disable_empty == 1){
                        sprawdzic.each( function(i, obj ){
                              obj = $(obj);
                              if (obj.val() == '') obj.attr('disabled', true);
                            });
                        }
                        return true;
  }  
	else {
        alert (errors);
        return false;
       } 
       

  
  return false;

}//-----------------------------------------------------------------------------





  function datetime_showmask(sender){
    var myDate=new Date();
    alert(formatDate( myDate, "yyyy-mm-dd HH-MM" ));
    if (sender.value == '') {
      
      }
    //else datetime_validate(sender); 
  }//---------------------------------------------------
  
  function datetime_mask(sender,evt){
    
    if(window.event) // IE
      {
      keynum = evt.keyCode;
      }
    else if(evt.which) // Netscape/Firefox/Opera
      {
      keynum = evt.which;
      }
    keychar = String.fromCharCode(keynum);
    
  }


  function hour_check( sender ){
   sender.style.background = '#FFFFFF'
   var value = sender.value;
   if ( value.length > 2 ){
    var dwukr = value.substr(2,1);
    if (dwukr != ':'){
      var str1 = value.substr(0,2);
      var str2 = value.substr(2);
      sender.value = str1 + ':' + str2;
    }  
   }
   if ( sender.value.length > 5 ) sender.value=sender.value.substr(0,5);
  }//---------------------------------------------------------------------------
  
  function hour_fix(sender){
    if ( sender.value.length < 3 ){
      var godz = parseInt(sender.value);
      if ( isNaN(godz)) godz = 0;
      if ( godz < 10 ) godz = '0' + godz; 
      sender.value = godz + ':00';
    }
    else {
      var aGodz = sender.value.split(':')
      var godz = parseInt('1'+ aGodz[0]); 
      if ( isNaN(godz)) godz = 0;
      else godz = godz -100; //ten numer z setka po to, by nie parsowalo jako liczby osemkowej
      var min = parseInt('1'+ aGodz[1]);
      if ( isNaN(min)) min = 0;
      else min = min - 100;
      if (godz > 23) godz = 23;
      if (min > 60) min = 59;
      if ( godz < 10 ) godz = '0' + godz;
      if ( min < 10 ) min = '0' + min; 
      sender.value = godz + ':' + min;
    }
    
  
  }  


/* ################# JQUERY COMBO BOX #############*/

  function ShowSmartSelect(sender_js, name){
    var box = $('#sselect_box_' + name); //znalezienie go przez jquery
    var sender = $(sender_js); //konwersja przeslanego sendera na obiekt jquery
    
    
    //POZYCJONOWANIE OKIENKA
    var pos =  sender.position(); //pobranie pozycji (obiekt)
    var boxw = 120;
    var boxh = 200;
    if (pos.left + boxw < $(document).width() ){
      box.css('top',pos.top);  //ustawienie pozycji
      box.css('left',pos.left);
    }
    else{
      //obsługa wychodzenia elementu poza stronę
      box.css('top',pos.top + sender.height());  //ustawienie pozycji
      box.css('left',pos.left - boxw);
    }

    //przetrawienie listy glownej i wyswietlenie jej
    var mainlist = $('#sselect_mainlist_' + name) 
    mailist.hide(); // ta lista jest naszym magazynkiem, nie powinna byc widoczna
    
    //iteracja po elementach listy    
    
    
    
    box.show(300);
  }








/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr)
{
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	
//	var strMonth=dtStr.substring(0,pos1)
//	var strDay=dtStr.substring(pos1+1,pos2)
//	var strYear=dtStr.substring(pos2+1)

	var strYear=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strDay=dtStr.substring(pos2+1)
  	
  strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) 
  {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("Poprawny format :  rrrr-mm-dd")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Wpisz poprawny miesiąc")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Wpisz poprawny dzien")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Wpisz cztery liczby w pole: rok ")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Wpisz poprwaną date w formacie rrrr-mm-dd")
		return false
	}
  return true
}



$(function() {
		$(".FormJqDateInput").datepicker( { 
                                        clearText: 'Wyczyść', clearStatus: 'Wyczyść obecną datę',
                      	                closeText: 'Zamknij', closeStatus: 'Zamknij bez zapisywania',
                      	                prevText: '&#x3c;Poprzedni', prevStatus: 'Pokaż poprzedni miesiąc',
                      	                prevBigText: '&#x3c;&#x3c;', prevBigStatus: '',
                      	                nextText: 'Następny&#x3e;', nextStatus: 'Pokaż następny miesiąc',
                      	                nextBigText: '&#x3e;&#x3e;', nextBigStatus: '',
                      	                currentText: 'Dziś', currentStatus: 'Pokaż aktualny miesiąc',
                      	                monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
                      	                'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
                      	                monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', 'Lip','Sie','Wrz','Pa','Lis','Gru'],
                      	                monthStatus: 'Pokaż inny miesiąc', yearStatus: 'Pokaż inny rok',
                      	                weekHeader: 'Tydz', weekStatus: 'Tydzień roku',
                      	                dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
                      	                dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
                      	                dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
                      	                dayStatus: 'Ustaw DD jako pierwszy dzień tygodnia', dateStatus: '\'Wybierz\' D, M d',
                      	                dateFormat: 'yy-mm-dd', firstDay: 1,
                      	                initStatus: 'Wybierz datę', isRTL: false
                                        } );
	
	});



















