/**
* jQuery faScript plugin
* Version 1.1 (23:48 13.04.2011)
* Dual licensed under the MIT and GPL licenses
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* @copyright			Ivan Kosenko <ivan@foxart.org>
* @home				http://foxart.org
**/
(function($){$.faAjaxRequestDefaults={async:true,cache:false,contentType:'application/x-www-form-urlencoded',data:'',dataType:'html',global:true,timeout:10000,type:'get',url:'',beforeSend:function(a){},complete:function(a){},error:function(a){},success:function(a){}};$.faAjaxRequest=function(a){var b=$.extend({},$.faAjaxRequestDefaults,a);$.ajax({context:b.context,data:b.data,dataType:b.dataType,timeout:b.timeout,type:b.type,url:b.url,beforeSend:b.beforeSend,complete:b.complete,error:b.error,success:b.success})};$.faDOMElement=function(a){if($(a).length)return true;else return false};$.fn.faError=function(a,b){var c='faError';var d=$.faUniqueId('faError_');if(!b)b='html';if(b=='append')$(this).append($('<div>').attr('id',d).addClass(c));if(b=='html')$(this).html($('<div>').attr('id',d).addClass(c));$('#'+d).html(a).slideDown(100)};$.faUniqueId=function(a){return a+Math.floor(Math.random()*1000)+'_'+new Date().getTime()}})($);
/**
* jQuery faHover plugin
* Version 1.0 (20:58 07.05.2011)
* Dual licensed under the MIT and GPL licenses
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* @copyright			Ivan Kosenko <ivan@foxart.org>
* @home				http://foxart.org
* @priority			metadata->options
**/
(function($){var d={showEvent:'mouseenter',hideEvent:'mouseleave',theme:'theme_default'};$.fn.faHover=function(c){return this.each(function(){var a=$(this);var b=$.extend({},d,c);if(a.metadata)b=$.extend(b,a.metadata());if($.faDOMElement(b.source)){a.faHover_install(b);a.faHover_create(b);$('#'+b.hover).bind(b.showEvent,function(){$('.faHover_container','#'+b.hover).show();$('.faHover_overlay','#'+b.hover).show();$(b.source).show();a.css('opacity',.2)}).bind(b.hideEvent,function(){$('.faHover_container','#'+b.hover).hide();$('.faHover_overlay','#'+b.hover).hide();$(b.source).hide();a.css('opacity',1)})}else{a.faError('<b>Not Found</b>: DOM element <u>'+b.source+'</u>')}})};$.fn.faHover_install=function(a){a.hover=$.faUniqueId('faHover_');a.css={'top':$(this).position().top,'left':$(this).position().left,'width':$(this).outerWidth(),'height':$(this).outerHeight(),'position':'absolute','display':'none'}};$.fn.faHover_create=function(a){$(this).wrap($('<div>').addClass('faHover').attr('id',a.hover));$(this).after($('<div>').addClass('faHover_overlay'));$(this).after($('<div>').addClass('faHover_container'));$('.faHover_container','#'+a.hover).html($(a.source));$('.faHover_container','#'+a.hover).css(a.css);$('.faHover_overlay','#'+a.hover).css(a.css)}})(jQuery);
/**
* jQuery faNotice plugin
* Version 1.1 (00:41 16.04.2011)
* Dual licensed under the MIT and GPL licenses
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* @copyright			Ivan Kosenko <ivan@foxart.org>
* @home				http://foxart.org
* @priority			metadata->options
**/
(function($){var e={event:'click',method:'append',position:'tr',stay:false,stayTime:3000,text:'default notice',theme:'theme_default',width:'300px',inEffect:{opacity:'show'},inEffectDuration:300,outEffect:{opacity:'0'},outEffectDuration:300,animateEffect:{height:'0px'},animateEffectDuration:300};$.fn.faNotice=function(d){return this.each(function(){var b=$(this);var c=$.extend({},e,d);if(b.metadata)c=$.extend(c,b.metadata());if(c.event!='click'){b.bind('click',function(){return false})};b.bind(c.event,function(){var a=$.extend({},e,d);if(b.metadata)a=$.extend(a,b.metadata());$.faNotice_install(a);$.faNotice_create(a);$.faNotice_add(a);return false})})};$.faNoticeAdd=function(a){var b=$.extend({},e,a);$.faNotice_install(b);$.faNotice_create(b);$.faNotice_add(b)};$.faNotice_install=function(a){a.idName=$.faUniqueId('faNotice_');a.id='#'+a.idName;a.top='';a.bottom='';a.left='';a.right='';switch(a.position){case'tl':a.top=0;a.left=0;a.method='append';break;case'tr':a.top=0;a.right=0;a.method='append';break;case'bl':a.bottom=0;a.left=0;a.method='prepend';break;case'br':a.bottom=0;a.right=0;a.method='prepend';break;default:};a.css={'top':a.top,'right':a.right,'bottom':a.bottom,'left':a.left}};$.faNotice_create=function(a){var b,noticeWrap,noticeItem;b=(!$('#faNotice').length)?$('<div>').attr('id','faNotice').appendTo('body'):$('#faNotice');b.css(a.css);noticeItem=$('<div>').addClass('faNotice').css('display','none');noticeItem.append($('<div>').addClass('faNotice_title'));noticeItem.append($('<div>').addClass('faNotice_close'));noticeItem.append($('<div>').addClass('faNotice_body').html(a.text));noticeItem.append($('<div>').addClass('faNotice_footer'));noticeWrap=$('<div>').attr('id',a.idName).addClass(a.theme).css('width',a.width);noticeWrap.append(noticeItem);if(a.method=='append')b.append(noticeWrap);else b.prepend(noticeWrap)};$.faNotice_add=function(a){$(a.id+' .faNotice_close').bind('click',function(){$.faNotice_remove(a);return false});if(!a.stay){setTimeout(function(){if($.faDOMElement(a.id))$.faNotice_remove(a)},a.stayTime)};$('.faNotice',a.id).animate(a.inEffect,a.inEffectDuration)};$.faNotice_remove=function(a){var b=$(a.id);var c=$('.faNotice',a.id);c.animate(a.outEffect,a.outEffectDuration,function(){b.animate(a.animateEffect,a.animateEffectDuration,function(){b.empty();b.remove();$('#faNotice:empty').remove()})})}})(jQuery);
/**
* jQuery faAjax plugin
* Version 1.1 (23:31 13.04.2011)
* Dual licensed under the MIT and GPL licenses
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* @copyright			Ivan Kosenko <ivan@foxart.org>
* @home				http://foxart.org
* @priority			metadata->form attributes->attributes->options
**/
(function($){$.faAjaxDefaults={type:'reload',width:'400px',event:'click',executeUrl:false,reloadUrl:false,target:false,method:'get'};$.fn.faAjax=function(c){return $(this).each(function(){var a=$(this);var b=$.extend({},$.faAjaxDefaults,c);a.faAjax_attributes(b);if($.metadata)b=$.extend(b,a.metadata());if(b.event!='click'){a.bind('click',function(){return false})};if($.faDOMElement(b.target)){a.bind(b.event,function(){if(b.type=='execute')a.faAjaxExecute(b);if(b.type=='reload')a.faAjaxReload(b);return false})}else{a.faError('<b>Not Found</b>: DOM element <u>'+b.target+'</u>');a.bind(b.event,function(){return false})}})};$.fn.faAjax_attributes=function(a){var b=$(this);if(b.attr('href'))a.executeUrl=b.attr('href');if(b.attr('target'))a.target=b.attr('target');if(b.attr('title'))a.title=b.attr('title')};$.fn.faAjaxReload=function(d){if($.data(this,'running'))return false;$.faAjaxRequest({context:this,data:d.data,type:d.method,url:d.executeUrl,beforeSend:function(a,b){$.data(this,'running',true);$(d.target).block()},complete:function(a,b){$.data(this,'running',false);$(d.target).unblock()},error:function(a,b,c){$(d.target).faError('<b>'+c+'</b>: '+d.executeUrl+'<hr>'+a.responseText)},success:function(a,b,c){$(d.target).html(a)}})};$.fn.faAjaxExecute=function(g){if($.data(this,'running'))return false;$.faAjaxRequest({context:this,data:g.data,type:g.method,url:g.executeUrl,beforeSend:function(a,b){$.data(this,'running',true);$(g.target).block()},complete:function(a,b){},error:function(a,b,c){$.data(this,'running',false);$(g.target).faError('<b>'+c+'</b>: '+g.executeUrl+'<hr>'+a.responseText);$(g.target).unblock()},success:function(d,e,f){$.faNoticeAdd({text:d,width:'240px'});$.faAjaxRequest({data:g.data,type:g.method,context:this,url:g.reloadUrl,beforeSend:function(a,b){},complete:function(a,b){$.data(this,'running',false);$(g.target).unblock()},error:function(a,b,c){$(g.target).faError('<b>'+c+'</b>: '+g.reloadUrl+'<hr>'+a.responseText)},success:function(a,b,c){$(g.target).html(a)}})}})}})($);
/**
* jQuery faDialog plugin
* Version 1.2 (02:02 16.04.2011)
* Dual licensed under the MIT and GPL licenses
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* @copyright			Ivan Kosenko <ivan@foxart.org>
* @home				http://foxart.org
* @priority			metadata->form attributes->attributes->options
**/
(function($){$.faDialogDefaults={title:false,theme:'theme_default',width:'400px',event:'click',loadUrl:false,submitUrl:false,reloadUrl:false,target:false,method:'get',onOpen:null,beforeSubmit:null,beforeClose:null};$.fn.faDialog=function(c){return this.each(function(){var a=$(this);var b=$.extend({},$.faDialogDefaults,c);a.faDialog_attributes(b);if(a.metadata)b=$.extend(b,a.metadata());$.data(a,'options',b);if(b.event!='click'){a.bind('click',function(){return false})};if($.faDOMElement(b.target)){a.bind(b.event,function(){a.faDialog_load(b);return false})}else{a.faError('<b>Not Found</b>: DOM element <u>'+b.target+'</u>');a.bind(b.event,function(){return false})}})};$.fn.faDialogStylize=function(a){this.each(function(){a.idName=$.faUniqueId('faDialog_');a.id='#'+a.idName;$(this).wrap($('<div>').attr('id',a.idName));$(a.id).wrapInner($('<div>').addClass('faDialog'));$(this).faDialog_stylize(a)})};$.fn.faDialog_stylize=function(a){var b=$.extend($.faDialogDefaults,a);if($('form .dialog_title legend',b.id).text()&&!$(this).attr('title'))b.title=$('form .dialog_title legend',b.id).text();if($(this).metadata)b=$.extend(b,$(this).metadata());$(b.id).addClass(b.theme);$(b.id).css('width',b.width);$('.dialog_title',b.id).addClass('faDialog_title');$('.dialog_title',b.id).append($('<div>').addClass('faDialog_title_caption').text(b.title));$('.dialog_title input:[readonly]',b.id).hide();$('.dialog_body input:text',b.id).wrap($('<div>').addClass('input_wrap'));$('.dialog_body input:password',b.id).wrap($('<div>').addClass('input_wrap'));$('.dialog_body select',b.id).wrap($('<div>').addClass('select_wrap'));$('.dialog_body textarea',b.id).wrap($('<div>').addClass('input_wrap'));$('.dialog_footer input:button, .dialog_footer input:reset',b.id).wrap($('<div>').addClass('button_wrap').addClass('button_normal'));$('.dialog_footer input:submit',b.id).wrap($('<div>').addClass('button_wrap').addClass('button_selected'));$('.dialog_body',b.id).addClass('faDialog_body');$('.dialog_footer',b.id).addClass('faDialog_footer')};$.fn.faDialog_attributes=function(a){var b=$(this);if(b.attr('href'))a.loadUrl=b.attr('href');if(b.attr('target'))a.target=b.attr('target');if(b.attr('title'))a.title=b.attr('title');a.idName=$.faUniqueId('faDialog_');a.id='#'+a.idName};$.fn.faDialog_handle=function(a){var b=$(this).metadata();var c=$('form',a.id);if(c.attr('action')&&!b.submitUrl)a.submitUrl=c.attr('action');if(c.attr('method')&&!b.method)a.method=c.attr('method');c.bind('submit',function(){if(typeof a.beforeSubmit=='function')a.beforeSubmit(a);a.data=c.serialize();$(this).faDialog_submit(a);return false});$('.button_close',a.id).bind('click',function(){$(this).faDialog_close(a);return false})};$.fn.faDialog_load=function(d){var e=$(d.target);if($.data(this,'running'))return false;$.faAjaxRequest({context:this,data:d.data,type:d.method,url:d.loadUrl,beforeSend:function(a,b){$.data(this,'running',true);$(d.target).block()},complete:function(a,b){$.data(this,'running',false);$(d.target).unblock()},error:function(a,b,c){if(a.status==404)e.faError('<b>'+a.status+' '+c+'</b>: loadUrl <u>'+d.loadUrl+'</u>','html');if(a.status!=404)e.faError(a.responseText,'html')},success:function(a,b,c){$('html').append($('<div>').attr('id',d.idName));$(d.id).append($('<div>').addClass('faDialog').html(a));$('.dialog_title',d.id).append($('<div>').addClass('faDialog_title_close').addClass('button_close'));$('.dialog_body',d.id).append($('<div>').addClass('faDialog_error'));$('.dialog_body',d.id).append($('<div>').addClass('faDialog_highlight'));$('.dialog_footer',d.id).append($('<div>').addClass('faDialog_ajax'));$(this).faDialog_stylize(d);$(this).faDialog_handle(d);$.faDialog_open(d)}})};$.fn.faDialog_submit=function(d){var e=$('.faDialog_error',d.id);var f=$('.faDialog_ajax',d.id);var g=$('input:submit',d.id);var h=$('input:button.button_close',d.id);var i=$('.faDialog_title_close',d.id);$.faAjaxRequest({context:this,data:d.data,type:d.method,url:d.submitUrl,beforeSend:function(a,b){g.attr('disabled',true).parent().removeClass('button_selected').addClass('button_disabled');h.attr('disabled',true).parent().removeClass('button_normal').addClass('button_disabled');i.fadeOut(100);e.slideUp(100).empty();f.fadeIn(100)},complete:function(a,b){},error:function(a,b,c){f.fadeOut(100);if(a.status==404)e.html('<b>'+a.status+' '+c+'</b>: submitUrl <u>'+d.submitUrl+'</u>').slideDown(100);if(a.status!=404)e.html(a.responseText).slideDown(100);g.attr('disabled',false).parent().addClass('button_selected').removeClass('button_disabled');h.attr('disabled',false).parent().addClass('button_normal').removeClass('button_disabled');i.fadeIn(100)},success:function(a,b,c){$.faNoticeAdd({text:a});$(this).faDialog_reload(d)}})};$.fn.faDialog_reload=function(d){var e=$('.faDialog_error',d.id);var f=$('.faDialog_ajax',d.id);var g=$('input:submit',d.id);var h=$('input:button.button_close',d.id);var i=$('.faDialog_title_close',d.id);$.faAjaxRequest({data:d.data,type:d.method,context:this,url:d.reloadUrl,beforeSend:function(a,b){},complete:function(a,b){},error:function(a,b,c){f.fadeOut(100);if(a.status==404)e.html('<b>'+a.status+' '+c+'</b>: reloadUrl <u>'+d.reloadUrl+'</u>').slideDown(100);if(a.status!=404)e.html(a.responseText).slideDown(100);g.attr('disabled',false).parent().addClass('button_selected').removeClass('button_disabled');h.attr('disabled',false).parent().addClass('button_normal').removeClass('button_disabled');i.fadeIn(100)},success:function(a,b,c){$(d.target).html(a);$(this).faDialog_close(d)}})};$.faDialog_open=function(b){if(typeof b.onOpen=='function')b.onOpen(b);$(b.id).modal({onOpen:function(a){a.data.hide();a.overlay.fadeIn(100,function(){a.container.show(0,function(){a.data.show()})})},onClose:function(a){a.data.hide(0,function(){a.container.hide(0,function(){a.overlay.fadeOut(100,function(){$(this).faDialog_close(b);$(b.id).empty();$(b.id).remove()})})})}})};$.fn.faDialog_close=function(a){if(typeof a.beforeClose=='function')a.beforeClose(a);$.modal.close()}})($);
