/*
 * jQuery 1.1 - New Wave Javascript
 *
 * Copyright (c) 2007 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * + form.js (plugins @ jQuery.com)
 * + ajaxCallback.js (www.spip.net)
 */
/* JavaScriptCompressor 0.8 [www.devpro.it], thanks to Dean Edwards for idea [dean.edwards.name] */
jQuery.fn.ajaxSubmit=function(options){if (typeof options==
'function'
)
options={success:options};options=jQuery.extend({url:this.attr(
'action'
)||
''
,method:this.attr(
'method'
)||
'GET'
},options||{});
options.success=options.success||options.after;options.beforeSubmit=options.beforeSubmit||options.before;options.type=options.type||options.method;var a=this.formToArray(options.semantic);
if (options.beforeSubmit&&options.beforeSubmit(a,this,options)===false) return;var q=jQuery.param(a);if (options.type.toUpperCase()==
'GET'
){
options.url+=(options.url.indexOf(
'?'
)>=0?
'&'
:
'?'
)+q;options.data=null;
}
else
options.data=q;
var $form=this,callbacks=[];if (options.resetForm) callbacks.push(function(){$form.resetForm();});if (options.clearForm) callbacks.push(function(){$form.clearForm();});
if (!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data,status){jQuery(options.target).html(data).evalScripts().each(oldSuccess,[data,status]);});}
else if (options.success)
 callbacks.push(options.success);options.success=function(data,status){for (var i=0,max=callbacks.length;i<max;i++)
callbacks[i](data,status);};jQuery.ajax(options);return this;};
jQuery.fn.ajaxForm=function(options){return this.each(function(){jQuery(
"input:submit,input:image,button:submit"
,this).click(function(ev){var $form=this.form;$form.clk=this;if (this.type==
'image'
){if (ev.offsetX !=undefined){$form.clk_x=ev.offsetX;$form.clk_y=ev.offsetY;} else if (typeof jQuery.fn.offset==
'function'
){
var offset=$(this).offset();$form.clk_x=ev.pageX-offset.left;$form.clk_y=ev.pageY-offset.top;} else {$form.clk_x=ev.pageX-this.offsetLeft;$form.clk_y=ev.pageY-this.offsetTop;}}
setTimeout(function(){$form.clk=$form.clk_x=$form.clk_y=null;},10);})}).submit(function(e){jQuery(this).ajaxSubmit(options);return false;});};
jQuery.fn.formToArray=function(semantic){var a=[];if (this.length==0) return a;var form=this[0];var els=semantic?form.getElementsByTagName(
'*'
):form.elements;if (!els) return a;for(var i=0,max=els.length;i<max;i++){var el=els[i];var n=el.name;if (!n) continue;if (semantic&&form.clk&&el.type==
"image"
){
if(!el.disabled&&form.clk==el)
a.push({name:n+
'.x'
,value:form.clk_x},{name:n+
'.y'
,value:form.clk_y});continue;}
var v=jQuery.fieldValue(el,true);if (v===null) continue;if (v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;j++)
a.push({name:n,value:v[j]});}
else
 a.push({name:n,value:v});}
if (!semantic&&form.clk){
var inputs=form.getElementsByTagName(
"input"
);for(var i=0,max=inputs.length;i<max;i++){var input=inputs[i];var n=input.name;if(n&&!input.disabled&&input.type==
"image"
&&form.clk==input)
a.push({name:n+
'.x'
,value:form.clk_x},{name:n+
'.y'
,value:form.clk_y});}}
return a;};
jQuery.fn.formSerialize=function(semantic){
return jQuery.param(this.formToArray(semantic));};
jQuery.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if (!n) return;var v=jQuery.fieldValue(this,successful);if (v&&v.constructor==Array){for (var i=0,max=v.length;i<max;i++)
a.push({name:n,value:v[i]});}
else if (v !==null&&typeof v !=
'undefined'
)
a.push({name:this.name,value:v});});
return jQuery.param(a);};
jQuery.fn.fieldValue=function(successful){var cbVal,cbName;
for (var i=0,max=this.length;i<max;i++){var el=this[i];var v=jQuery.fieldValue(el,successful);if (v===null||typeof v==
'undefined'
||(v.constructor==Array&&!v.length))
continue;
if (el.type !=
'checkbox'
) return v;cbName=cbName||el.name;if (cbName !=el.name)
return cbVal;cbVal=cbVal||[];cbVal.push(v);}
return cbVal;};
jQuery.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if (typeof successful==
'undefined'
) successful=true;if (successful&&(!n||el.disabled||t==
'reset'
||(t==
'checkbox'
||t==
'radio'
)&&!el.checked||(t==
'submit'
||t==
'image'
)&&el.form&&el.form.clk !=el||tag==
'select'
&&el.selectedIndex==-1))
return null;if (tag==
'select'
){var index=el.selectedIndex;if (index<0) return null;var a=[],ops=el.options;var one=(t==
'select-one'
);var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if (op.selected){
var v=jQuery.browser.msie&&!(op.attributes[
'value'
].specified)?op.text:op.value;if (one) return v;a.push(v);}}
return a;}
return el.value;};
jQuery.fn.clearForm=function(){return this.each(function(){jQuery(
'input,select,textarea'
,this).clearInputs();});}
jQuery.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if (t==
'text'
||t==
'password'
||tag==
'textarea'
)
this.value=
''
;else if (t==
'checkbox'
||t==
'radio'
)
this.checked=false;else if (tag==
'select'
)
this.selectedIndex=-1;});}
jQuery.fn.resetForm=function(){return this.each(function(){
if (typeof this.reset==
'function'
||(typeof this.reset==
'object'
&&!this.reset.nodeType))
 this.reset();});}
/* JavaScriptCompressor 0.8 [www.devpro.it], thanks to Dean Edwards for idea [dean.edwards.name] */
if(!jQuery.load_handlers){jQuery.load_handlers=new Array();
function onAjaxLoad(f){jQuery.load_handlers.push(f);};
function triggerAjaxLoad(root){for (var i=0;i<jQuery.load_handlers.length;i++)
jQuery.load_handlers[i].apply(root);};jQuery.fn._load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback,ifModified){callback=callback||function(){};
if (params){
if (params.constructor==Function){
callback=params;params=null;}}
var callback2=function(res,status){triggerAjaxLoad(this);callback(res,status);};return this._load(url,params,callback2,ifModified);};jQuery._ajax=jQuery.ajax;jQuery.ajax=function(type,url,data,ret,ifModified){
if (jQuery.ajax.caller==jQuery.fn._load) return jQuery._ajax(type,url,data,ret,ifModified);
if (!url){var orig_complete=type.complete||function(){};type.complete=function(res,status){triggerAjaxLoad(document);orig_complete(res,status);};} else {var orig_ret=ret||function(){};ret=function(res,status){triggerAjaxLoad(document);orig_ret(res,status);};}
return jQuery._ajax(type,url,data,ret,ifModified);};}
