var validator_form={init:function(aSettings){var aDefaults={showPrompt:true,spanMode:false,errorInfo:"Proszę wypełnić pola oznaczone '*'",errorEmail:'Podany adres email jest nieprawidłowy',errorSelCheck:'Proszę wybrać odpowiednią opcję',errorPassword:'Podane hasła się różnią!',errorText:'Proszę wypełnić pole'}
var aSettings=$.extend(aDefaults,aSettings);$("form#"+aSettings["formId"]).submit(function(){var sErrorInfo=$('#errorInfoTxt span');sErrorInfo.html('');aError=[];aErrorTxt=[];aValidationTypes=["isRequired","isEmail","isNumeric","isSelectRequire","isMultiSelect","wysiwyg","isCheckPasswd","isChecked","isStars","isCheckedCheckbox"];for(var n=0;n<aValidationTypes.length;n++)
{var aPola=aSettings[aValidationTypes[n]];if(aPola!=null)
{if(aValidationTypes[n]=='isCheckPasswd')
{sInputField1=$("#"+aPola[0]);sInputField2=$("#"+aPola[1]);bValid=(sInputField1.val()==sInputField2.val())?true:false;if(!bValid)
{aError.push(aPola[0]);sInputField1.addClass("error_colors");sInputField2.addClass("error_colors");aErrorTxt.push(aSettings.errorPassword);}}
else if(aValidationTypes[n]=='isStars')
{if(typeof aSettings['isStars'][0]!=undefined)
{if(aSettings['isStars'][0]==aPola[0])
{bValid=!isRequired(sInputField.val());sInputField=$("#"+aSettings['isStars'][1]);if(!bValid)
{aError.push(aPola[0]);sInputField.addClass("error_colors");}
else
sInputField.removeClass("error_colors");}}}
else
{for(i=0;i<aPola.length;i++)
{sInputField=$("#"+aPola[i]);switch(aValidationTypes[n])
{case"isRequired":bValid=!isRequired(sInputField.val());if(!bValid)
aErrorTxt.push(aSettings.errorText);break;case"isEmail":bValid=isEmail(sInputField.val());if(!bValid)
aErrorTxt.push(aSettings.errorEmail);break;case"isNumeric":bValid=isNumeric(sInputField.val());if(!bValid)
aErrorTxt.push(aSettings.errorText);break;case"isSelectRequire":bValid=!isSelectRequire(sInputField.val());if(!bValid)
aErrorTxt.push(aSettings.errorSelCheck);break;case"isMultiSelect":bValid=!hasSelected((sInputField.val()||[]));if(!bValid)
aErrorTxt.push(aSettings.errorSelCheck);break;case'isChecked':bValid=$("input[@name='"+aPola[i]+"']:checked").val();if(!bValid)
aErrorTxt.push(aSettings.errorSelCheck);break;case'isCheckedCheckbox':var sDiv=$('div#'+aPola[i]);var iCnt=$("input[@type=checkbox][@checked]",sDiv).size();bValid=(iCnt==0)?false:true;if(!bValid)
aErrorTxt.push(aSettings.errorSelCheck);break;case"wysiwyg":if(in_array(aPola[i],aSettings["wysiwyg"],false))
{sInputField=$("#"+aPola[i]+"___Frame");var oEditor=FCKeditorAPI.GetInstance(aPola[i]);if(oEditor.GetXHTML()==""||oEditor.GetXHTML()==null)
bValid=false;else
bValid=true;}
if(!bValid)
aErrorTxt.push(aSettings.errorText);break}
if(!bValid)
{aError.push(aPola[i]);sInputField.addClass("error_colors");}
else
{$('#put_error_'+aPola[i]).html('').removeClass("span_error_colors").hide();sInputField.removeClass("error_colors");}}}}}
if(aError.length>0)
{if(aSettings.showPrompt)
$.prompt(VALID_ALL_EMPTY_FIELDS,{buttons:{ZAMKNIJ:true}});else
{if(aSettings.spanMode)
{for(var iK=0;iK<aError.length;iK++)
{$('#put_error_'+aError[iK]).html(aErrorTxt[iK]).addClass("span_error_colors").show();}}
else
{$('#errorInfoTxt span').append('<div>'+aSettings.errorInfo+'</div>');$('#errorInfoTxt').show();}}}
else if(aSettings.showPrompt)
{if(aSettings.spanMode)
{for(var iK=0;iK<aError.length;iK++)
{$('#put_error_'+aError[iK]).html(aErrorTxt[iK]).addClass("span_error_colors").show();}}
else
{$('#errorInfoTxt span').html('');$('#errorInfoTxt').hide();}}
return(aError.length>0)?false:true;});}};function hasSelected(oSel)
{return(oSel.length>0)?false:true;}
function in_array(needle,haystack,strict)
{if(strict)
function equals(a,b){return a===b}
else
function equals(a,b){return a==b}
for(var i in haystack)
{if(equals(haystack[i],needle))
return true;}
return false;}
function isRequired(str)
{return(str==null)||(str.length==0);}
function isSelectRequire(int)
{return(int=="")||(int==0);}
function isEmail(str)
{if(isRequired(str))return false;var re=/^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
return re.test(str);}
function isNumeric(str)
{if(isRequired(str))return false;var re=/[\D]/g
if(re.test(str))return false;return true;}