
var validating_field = "";
var validating_error = "";

function form_validate( element, validation, error) {

	var object = $(element);

	validating_field = element;
	validating_error = error;

	// if the element is a checkbox, we have to get the checked status, not the value
	if ($(element).attr('type') == "checkbox") {
		if ($(element).get(0).checked) {
			value = 1;
		} else {
			value = 0;
		}
	} else {
		value = object.val();
	}

	// For 'sameas' validation we also need to pass the value of the 'sameas' field.
	if (match = validation.match(/sameas=([a-z0-9_-])+/g)) {
		sameas = String(match).replace(/sameas=/, '');
		sameas = $('#'+sameas).val();
	} else {
		sameas = "";
	}

	$.get("includes/formclass_ajax.php", { value: value, validation: validation, sameas: sameas }, form_callback );

	// $('#output').val( "type: " + $(element).attr('type') + '\n'  );
	// $('#output').val( $('#output').val() + "valu: " + value + ", valida: " + validation + '\n'  );


}

function form_callback(result) {

	var error_field = '#error-' + validating_field.replace('#','');
	var current_state = $(validating_field).attr('rel');

	// $('#output').val( $('#output').val() + "result: " + result + "\n" );

	if (result==1) {

		//alert($(error_field).html().length);

		if ( (current_state != "noterror") && ( (current_state != null) || ($(error_field).html().length > 10) ) ) {
			$(validating_field ).removeClass('error');
			$(error_field).slideUp('slow');
			$(validating_field ).attr('rel', 'noterror');
		}

	} else {

		if ( ( current_state != "error" )   ) { // && ( $(validating_field).val() != "" )
			$(validating_field ).addClass('error');
			var error_message = "<div class='error-container'><label class='error'>" +
					"<img src='includes/img/icon_error.gif' width='14' height='12' alt='Error!' /> " +
					validating_error + "</label></div>";
			$(error_field).html(error_message);
			$(error_field).slideDown('slow');
			$(validating_field).attr('rel', 'error');
		}

	}

	// $('#output').val( $('#output').val() + validating_field + ": " + $(validating_field).attr('rel') + '\n'  );

}

/**
 * Small test function for bob's debugging.
 */
function klik() {

	alert( $('#check1').get(0).checked );

}




/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', '', {expires: -1});
 * @desc Delete a cookie by setting a date in the past.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toGMTString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toGMTString(); // use expires attribute, max-age is not supported by IE
        }
        var path = options.path ? '; path=' + options.path : '';
        var domain = options.domain ? '; domain=' + options.domain : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

