


$.fn.formError = function (elements)
{
	var errors = $.parseJSON(getTextFull(elements));
	for(var e in errors)
	{
		if (e != "Global")
		{
			this.find("#" + e + ":input").markControl();
		}
		else
		{
			for(var i = 0, max = errors[e].length; i < max; i++)
			{
				this.addGlobalError(errors[e][i]);
			}
		}
	}
}

$.fn.ajaxRedirect = function (elements)
{
	var curl = $.url(true);
	var nurl = $.url(getTextFull(elements), true);

	$.fancybox.close();

	if(curl.attr("file") == nurl.attr("file") && (nurl.attr("query") == "" || nurl.attr("query") == curl.attr("query")))
	{
		$("form[jqreset = 'true']").each(function(){ this.reset() });

		$.ajax({
			url: document.location,
			cache: false,
		});
	}
	else
	{
		document.location = getTextFull(elements);
	}
}


$.fn.dialogError = function (elements)
{
	var text = getTextFull(elements);
	$.fancybox.close();

	$.fancybox("<div class=\"fancybox-error\">" + text + "</div>", {});
}

$.fn.dialogMessage = function (elements)
{
	var text = getTextFull(elements);
	$.fancybox.close();

	$.fancybox("<div class=\"fancybox-message\">" + text + "</div>", {});
}





function getText(element)
{
	if (typeof element == "string")
		return element;
	var val = element.innerText;
	if (val == null)
		val = element.textContent;
	return val;
}

function getTextFull(elements)
{
	var str = "";
	for (var i = 0; i < elements.length; i++)
	{
		if (typeof elements[i] == "string")
		{
			str += elements[i];
		}
		else
		{
			str += getText(elements[i]);
		}
	}
	return str;
}



//Example how to add custom teg for taconite processing
$.fn.modalForm = function (elements){
    // this - list of selected elements, but we no need it.
    // elemets - content from server.
//    $.fancybox.close();
    $.fancybox("<div class=\"fancybox-form\">" + elements[0].innerHTML + "</div>", {        
        onComplete : function(ev){
            $(".fancybox-form form :input:visible:enabled:first").focus();
            $(".fancybox-form form").ajaxForm({
                success: function (responseText, statusText, xhr, $form){
                    $.fancybox.hideActivity();
                    $.taconite("" + responseText.xml);
                },
                beforeSubmit: function(){
                    $.fancybox.showActivity();
                }
            });
        }
    });
    $.validator.unobtrusive.parse(document);
};

