
function re_scroll(sLeft,sTop,rawDelay,steps){var i=0;var doScroll=function(dLeft,dTop,fLeft,fTop){var clog='';clog=clog+'i: '+i+', dLeft: '+dLeft+', dTop: '+dTop+', fLeft: '+fLeft+', fTop: '+fTop+'.';i++;var wLeft=$(window).scrollLeft();var wTop=$(window).scrollTop();var nLeft=wLeft+dLeft;var nTop=wTop+dTop;clog=clog+' nLeft: '+nLeft+', nTop: '+nTop+', wLeft: '+wLeft+', wTop: '+wTop+'.';if((dLeft>0&&nLeft>fLeft)||(dLeft<=0&&nLeft<=fLeft)){nLeft=fLeft;}
if((dTop>0&&nTop>fTop)||(dTop<=0&&nTop<=fTop)){nTop=fTop;}
clog=clog+' nLeft: '+nLeft+', nTop: '+nTop+'.';window.scrollTo(nLeft,nTop);if(nLeft!=fLeft||nTop!=fTop){window.setTimeout(function(){if(i<steps){doScroll(dLeft,dTop,fLeft,fTop);}},rawDelay);}}
var cLeft=$(window).scrollLeft();var cTop=$(window).scrollTop();var cdLeft=parseInt((sLeft-cLeft)/steps);var cdTop=parseInt((sTop-cTop)/steps);doScroll(cdLeft,cdTop,sLeft,sTop);}
function ajaxform(form){var defaultTimeout=5000;if($('form#'+form).hasClass('ajaxform')){return;}
$('form#'+form).addClass('ajaxform');$('form#'+form).submit(function(e){e.preventDefault();$('form#'+form+' input:submit').fadeOut("slow");$('.error').addClass('errdel');$('.errdel').slideUp("slow",function(){$('.errdel').remove();});var f=this;var action=f.getAttribute('action');var inputs=new Array();$(':input',f).each(function(){if(this.type!='file'){if(this.type=='checkbox'){if(this.checked){inputs.push(this.name+'='+escape(this.value));}}else if(this.type=='radio'){if(this.checked){inputs.push(this.name+'='+escape(this.value));}}else if(this.type.toLowerCase()=='textarea'){if($(this).hasClass('tinymce')){var tmpMCE=tinyMCE.get(this.getAttribute('id'));if(tmpMCE!='undefined'){inputs.push(this.name+'='+escape(tmpMCE.getContent()));}else{inputs.push(this.name+'='+escape(this.value));}}else{inputs.push(this.name+'='+escape(this.value));}}else{inputs.push(this.name+'='+escape(this.value));}}});var serForm=inputs.join('&');$('form').removeClass('ajaxform');$('form#'+form).addClass('ajaxform');try{$.ajax({type:'POST',url:action,dataType:'html',cache:false,data:serForm,timeout:5000,success:function(rval){var errors=false;var frm=$('form.ajaxform');rval=rval.replace(/^\s+/,'');if(rval.substring(0,6)=='error:'){eval('var errors='+rval.substring(6));if(!errors){}else{var firsterror=true;for(var x in errors){var j=$(':input',frm);var efound=false;for(var k=0;k<j.length;k++){if(j[k]&&j[k].name==x){efound=true;var pNode=$(j[k]).parent('div');if(pNode.hasClass('resizeme')){pNode=$(pNode).parent('div');}
pNode.append('<span class="error" style="display:none;">'+errors[x]+'</span>');if(firsterror){firsterror=false;j[k].focus();var jkoffset=$(j[k]).offset();re_scroll(jkoffset.left,jkoffset.top-40,1,10);}}}
if(!efound){$('div#content').prepend('<span class="error" style="display:none;">'+errors[x]+'</span>');}}
if(firsterror){var errspans=$('span.error');if(errspans.length>0){errspans[0].focus();var esoffset=errspans.offset();re_scroll(esoffset.left,esoffset.top-20,1,10);}}}}
if(rval.substring(0,9)=='redirect:'){var rdir=rval.substring(9);window.setTimeout(function(){window.location.replace(rdir);},5);}else if(rval.substring(0,8)=='content:'){var rdir=rval.substring(8);$('div#content').prepend('<a id="formreload" href="'+rdir+'" style="display:none">Content</a>');ajaxlinks('div#content a#formreload');$('div#content a#formreload').click();}else if(rval.substring(0,11)=='addcontent:'){var newcontent=rval.substring(11);$('div#content div.addcontent').slideUp('fast',function(){$(this).remove();});$('div#content').append('<div class="addcontent" style="display: none">'+newcontent+'</div>');$('div#content div.addcontent').slideDown('slow',function(){$('form.ajaxform input:submit').fadeIn('slow');});}else if(rval.substring(0,1)=='{'){shownewcontent(rval);}else if(rval.substring(0,6)!='error:'){$('div#content').prepend('<div class="error" style="display:none;">An unspecified error occurred submitting this form.</div>');$('div#content div.error').slideDown("slow",function(){$('form.ajaxform input:submit').fadeIn("slow");});return;}
$('div#content .error').slideDown("slow",function(){$('form.ajaxform input:submit').fadeIn("slow");});},error:function(XMLHttpRequest,textStatus,errorThrown){var errtxt='<h5 style="margin: 0 ;">Unable to send form.</h5>';if(XMLHttpRequest){if(XMLHttpRequest.responseText.length>0){errtxt='<p>'+XMLHttpRequest.responseText+'</p>';}else{if(!errorThrown){if(textStatus=="timeout"&&form!=undefined){if(confirm('Sorry, the web server is taking too long to respond.\n\nPlease click \'OK\' to try again.')){defaultTimeout=defaultTimeout*1.5;window.setTimeout(function(){$('form#'+form).trigger('submit');},250);}else{errtxt='<p>'+textStatus+'</p>';}}else if(textStatus!='error'){errtxt='<p>'+textStatus+'</p>';}else{errtxt='<p>Sorry, we couldn\'t connect to the web server to process your selection. Please check your connection to the internet and try again in a few seconds.</p>';}}else{errtxt='<p>'+errorThrown+'</p>';}}}
$('div#content').prepend('<div class="error" style="display:none;">'+errtxt+'</div>');$('div#content div.error').slideDown("slow",function(){$('form.ajaxform input:submit').fadeIn("slow");});}});}catch(e){var errtxt='<p>An unknown error occurred processing the form.</p>';$('div#content').prepend('<div class="error" style="display:none;">'+errtxt+'</div>');$('div#content div.error').slideDown("slow",function(){$('form.ajaxform input:submit').fadeIn("slow");});}
return false;});}
