/**
* SoftCOM Spółka jawna - http://www.softcom.wroc.pl
* @author SoftCOM Spółka jawna <biuro@softcom.wroc.pl>
* @copyright Copyright (c) 2007-2008, SoftCOM Spółka jawna
* $LastChangedDate$
* $Rev$
*/

/**
* Funkcje
*/
function createDate(df, str) {
    var y4 = df.search(/yyyy/i), y = str.substring(y4, y4 + 4) - 0;
    var m2 = df.search(/mm/i), m = str.substring(m2, m2 + 2) - 1;
    var d2 = df.search(/dd/i), d = str.substring(d2, d2 + 2) - 0;
    return new Date(y, m, d);
}

/**
* Reguły validacji
*/
jQuery.validator.addMethod("dateForm2", function(value, element, format) {
	//wyrażenie regularne na podstawie formatu daty
	var reg = new RegExp('^' + format.replace(/dd/gi, '\\d\\d').replace(/mm/gi, '\\d\\d').replace(/yyyy/gi, '\\d\\d\\d\\d') + '$');
	
	if (this.optional(element)) return true;
	else if (reg.test(value)) {
    	var y4 = format.search(/yyyy/i), y = value.substring(y4, y4 + 4) - 0;
    	var m2 = format.search(/mm/i), m = value.substring(m2, m2 + 2) - 1;
    	var d2 = format.search(/dd/i), d = value.substring(d2, d2 + 2) - 0;
    	var dd = new Date(y, m, d);
    	return (y == dd.getFullYear() && m == dd.getMonth() && d == dd.getDate());
	}
	else return false;
	}, "Nieprawidłowy format daty"
);

jQuery.validator.addMethod("datePastForm2", function(value, element, format) {
	if (this.optional(element)) return true;
	else {
     var field_date = createDate(format, value);
	  var curr_date = new Date();
	  return (field_date<curr_date);
	}
	}, "Błędna data"
);

jQuery.validator.addMethod("dateRangeForm2", function(value, element, params) {
	if (this.optional(element)) return true;
	else {
		if ($(params[1]).val()) {
		 return (createDate(params[0], value) >= createDate(params[0], $(params[1]).val()));
		}
		else return true;
	}
	}, "Błędny zakres dat"
);

jQuery.validator.addMethod("regexForm2", function(value, element, reg) {
	var regex = new RegExp(reg);
	return (this.optional(element)) || (regex.test(value));
	}, "Nieprawidłowy format pola"
);

jQuery.validator.addMethod("requireTinyMCEForm2", function(value, element) {
	var reg = /[\S]/;
	return (reg.test(tinyMCE.get(element.id).getContent()));
	}, "Nie podano treści"
);