var Validate = new Object;
Validate.showError = function(f,txt) {
	var field = $(f);
	$(f+'_inner').innerHTML = txt;
	field.show();	
	new Effect.Highlight(f,{startcolor:'#fec8c8',duration:3.0});
}

function prepFormFields() {
  var htmlElements = Array('select', 'input', 'textarea');
  var htmlTempArray;
  for (var i = 0; i < htmlElements.length; i++) {
   htmlTempArray = document.getElementsByTagName(htmlElements[i]);
   for (var j = 0; j < htmlTempArray.length; j++) {
    htmlTempArray[j].onmouseover = htmlTempArray[j].onfocus = function() {
     this.className = "selected";
     }
    htmlTempArray[j].onmouseout = htmlTempArray[j].onblur = function() {
     this.className = "";
    }
   }
  }
 }

function isNotEmpty(elem) {
  var str = elem.value;
  if(str == null || str.length == 0)
   return false;
  else
   return true;
 }
 
 function errorField(f,formFail) {
	var f = $(f.attributes.id.value);
	f.focus();
	/*f.addClassName('error');
	f.onmouseover = function() {
		this.removeClassName('error');
	}
	f.onkeypress = function() {
		this.removeClassName('error');
	}*/
	if(f.attributes.failure) {
		var attrFail = f.attributes.failure.value;
	} else {
		var attrFail = formFail;
	}
	if(!attrFail) { var attrFail = 'Proszę wypełnić wszystkie wymagane pola'; }
	
	Validate.showError('form_error',attrFail);	
 }

 // THIS FUNCTION PERFORMS VALIDATION BASED ON A SET OF CUSTOM HTML ATTRIBUTES
 function validate(form) {
  var attrVal, attrReg, attrEq, attrFail, strTemp;
  var formFail = form.getAttribute("failure");

  for (var i = 0; i < form.length; i++) {
   attrVal = form[i].getAttribute("validate");

   switch (attrVal) {
    case 'required' :
    if (!isNotEmpty(form[i])) {     
     errorField(form[i],formFail)
     return false;
    }
    break;

    case 'regex' :
    attrReg = form[i].getAttribute("regex");
    if (attrReg != null && attrReg.length != 0) {
     var regex = new RegExp(attrReg);
     strTemp = form[i].value;
     if (!strTemp.match(regex)) {  
      errorField(form[i],formFail);
      return false;
     }
    }
    break;

    case 'email' :

    	var str = form[i].value;
    	var chk = (str.indexOf(".") > 0) && (str.indexOf("@") > 0);

    	if(!chk) {	    
  		errorField(form[i],formFail);
     	return false;
		}

    break;

    case 'checked' :

    	if(form[i].checked == false) {
	    errorField(form[i],formFail);
     	return false;
		}

    break;


    case 'equals' :
    attrEq = form[i].getAttribute("equals");
    var objEq = document.getElementById(attrEq);
    if (objEq) {
     if (form[i].value != objEq.value) {
      errorField(form[i],formFail);
      return false;
     }
    }
    break;
   }

  }

  return true;
}

function month(fid) {
	if($(fid).value != '') {
		var dat = $(fid).value;
		var mnt = dat.substr(5,2) - 1;
		return mnt;
	} else {
		return null;
	}
}
