/* 2009 - 2010 Adam Theriault for Austin Chronicle. http://en.wikipedia.org/wiki/MIT_License */
(function($){$.fn.ajaxToggle=function(options){var defaults={pageName:'',dataString:'',targetObj:'',count:1,indicatorClosed:{style:"background-image:url('/scripts/jQuery/ajaxToggle/collapse.gif'); background-repeat:no-repeat; width:10px; height:10px; float:left; margin-right:2px;margin-top:2px;"},indicatorOpen:{style:"background-image:url('/scripts/jQuery/ajaxToggle/expand.gif'); background-repeat:no-repeat; width:10px; height:10px; float:left; margin-right:2px; margin-top:2px;"},indicatorPreload:'/scripts/jQuery/ajaxToggle/collapse.gif',loadHTML:'<img src="/scripts/jQuery/ajaxToggle/ajax-loader.gif" border="0" style="float:left; margin-right:5px;" /> Loading...',effectOut:'slide',easingOut:'easeOutBounce',effectOutDuration:800,effectIn:'slide',easingIn:'easeInQuint',effectInDuration:100,onToggleHide:function(){},onToggleAfterHide:function(){},onToggleShow:function(){},onToggleAfterShow:function(){},ajaxBefore:function(){},ajaxSuccess:function(){},ajaxMethod:'POST',mimeType:'text/html; charset=iso-8859-1',start:'closed',noToggler:false,fluidSlider:false,relativeMenus:false};var opts=$.extend(defaults,options);var $preload=$('<img />').css('display','none').attr('src',opts.indicatorPreload).load(function(){$('BODY').prepend($($preload));});var i=1;return this.each(function(){var $this=$(this);var targetString;var getTargetObj;targetString=$($this).attr('href');getTargetObj=$($this).attr('rel');$this.preventDefault;if(targetString!=undefined){var targetArray=targetString.split('?s');var targetSrc=targetArray[0];var targetData=targetArray[1];};if(targetSrc!=''){opts.pageName=targetSrc;opts.dataString=targetData;opts.targetObj=getTargetObj;};if(getTargetObj!=''){opts.targetObj=getTargetObj;};var thisIndex=i;var parentID=$($this).attr("id");var toggleID=parentID+'_ajaxToggleHelper_'+thisIndex;var toggleHelperID='#'+toggleID;if(opts.noToggler!=true){var $wrapper=$('<div id="'+toggleID+'" name="'+toggleID+'" />').attr(opts.indicatorClosed);$($this).prepend($wrapper);};if(opts.relativeMenus==true){var menuOffset='-'+$($this).css('width');if(menuOffset!='-auto'){$(opts.targetObj).css('margin-left',menuOffset);};};i++;bindClick($this,opts.pageName,opts.dataString,opts.targetObj,toggleHelperID);});function bindClick(thisClickObj,pageName,dataString,targetObj,toggleHelperID){opts.count++;var targetHTML=$(targetObj).html();$(thisClickObj).unbind().toggle(function(e){if(opts.start!='closed'){hideTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID);}else{if(targetHTML!=''&&targetHTML!=null){showTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID);}else{sendRec(thisClickObj,pageName,dataString,targetObj,toggleHelperID);};};return false;},function(e){if(opts.start!='closed'){if(targetHTML!=''&&targetHTML!=null){showTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID);}else{sendRec(thisClickObj,pageName,dataString,targetObj,toggleHelperID);};}else{hideTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID);};return false;});};function hideShow(thisClickObj,pageName,dataString,targetObj,toggleHelperID,thisAction,returnAction,objListArr){if(thisAction=='show'){if(returnAction!='none'){var effectIn=returnAction;}else{var effectIn=opts.effectIn;};if(opts.fluidSlider==true&&returnAction=='none'){$(targetObj).slideDown(opts.effectInDuration,function(){$(toggleHelperID).attr(opts.indicatorOpen);bindClick(thisClickObj,pageName,dataString,targetObj,toggleHelperID);opts.onToggleAfterShow.call(objListArr);});}else{$(targetObj).show(effectIn,{direction:"up",easing:opts.easingIn,duration:opts.effectOutDuration},function(){$(toggleHelperID).attr(opts.indicatorOpen);bindClick(thisClickObj,pageName,dataString,targetObj,toggleHelperID);opts.onToggleAfterShow.call(objListArr);});};}else if(thisAction=='hide'){if(returnAction!='none'){var effectOut=returnAction;}else{var effectOut=opts.effectOut;};if(opts.fluidSlider==true&&returnAction=='none'){$(targetObj).slideUp(opts.effectOutDuration,function(){$(toggleHelperID).attr(opts.indicatorClosed);bindClick(thisClickObj,pageName,dataString,targetObj,toggleHelperID);opts.onToggleAfterHide.call(objListArr);});}else{$(targetObj).hide(effectOut,{direction:"up",easing:opts.easingOut,duration:opts.effectOutDuration},function(){$(toggleHelperID).attr(opts.indicatorClosed);bindClick(thisClickObj,pageName,dataString,targetObj,toggleHelperID);opts.onToggleAfterHide.call(objListArr);});};}else{}};function showTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID){var objectList=new Array(thisClickObj,pageName,dataString,targetObj,toggleHelperID);var returnAction=opts.onToggleShow.call(objectList);if(returnAction==null){returnAction='none';};hideShow(thisClickObj,pageName,dataString,targetObj,toggleHelperID,'show',returnAction,objectList);};function hideTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID){var objectList=new Array(thisClickObj,pageName,dataString,targetObj,toggleHelperID);var returnAction=opts.onToggleHide.call(objectList);if(returnAction==null){returnAction='none';};hideShow(thisClickObj,pageName,dataString,targetObj,toggleHelperID,'hide',returnAction,objectList);};function sendRec(thisClickObj,pageName,dataString,targetObj,toggleHelperID){var theHTML=$(thisClickObj).html();$(thisClickObj).html(opts.loadHTML);$.ajax({type:opts.ajaxMethod,url:pageName,data:dataString,beforeSend:function(xhr){opts.ajaxBefore.call(this);},success:function(c){$(targetObj).html(c);opts.ajaxSuccess.call(this);showTarget(thisClickObj,pageName,dataString,targetObj,toggleHelperID);$(thisClickObj).html(theHTML);},error:function(XMLHttpRequest,textStatus,errorThrown){this;}});};};})(jQuery);