/* jScrolltouch by EMVI Develop (http://www.emvi.de/develop.html)  * $Id: jScrolltouch */ (function(jQuery){jQuery.fn.preventOnMove=function(settings){return this.each(function(){var $this=jQuery(this);var s={X1:0,Y1:0,X2:0,Y2:0,w:false,i:0,E:new Array()};var mC=function(e){e.preventDefault();};var mD=function(e){jQuery('html').bind('mousemove',mM).bind('mouseup',mU);s.X1=e.pageX;s.Y1=e.pageY;s.E.push(this);e.preventDefault();};var tD=function(e){jQuery('html').bind('touchmove',tM).bind('touchend',tU).bind('touchcancel',tU);s.X1=e.pageX;s.Y1=e.pageY;s.E.push(this);e.preventDefault();};var mM=function(e){s.X2=e.pageX;s.Y2=e.pageY;e.preventDefault();};var tM=function(e){s.X2=e.pageX;s.Y2=e.pageY;};var mU=function(e){jQuery('html').unbind('mousemove',mM).unbind('mouseup',mU);if((Math.abs(s.X1-s.X2)<5&&Math.abs(s.Y1-s.Y2)<5)||(s.X2==0&&s.Y2==0)){}else{for(i in s.E){jQuery(s.E[i]).listHandlers('click',function(E,n,h,r){jQuery(E).unbind('click',h);window.setTimeout(function(){jQuery(E).bind('click',h)},10);});var E=s.E[i];jQuery(E).bind('click',mC);window.setTimeout(function(){jQuery(E).unbind('click',mC)},10);}};s.X2=0;s.Y2=0;s.E=new Array();e.preventDefault();};var tU=function(e){jQuery('html').unbind('touchmove',tM).unbind('touchend',tU).unbind('touchcancel',tU);if((Math.abs(s.X1-s.X2)<5&&Math.abs(s.Y1-s.Y2)<5)||(s.X2==0&&s.Y2==0)){for(i in s.E){jQuery(s.E[i]).trigger('click');if($(s.E[i]).attr('href')){window.location=jQuery(s.E[i]).attr('href');}}};s.X2=0;s.Y2=0;s.E=new Array();e.preventDefault();};$this.contents().find('*').unbind('mousedown',mD).unbind('touchstart',tD);$this.contents().find('*').listHandlers('click',function(E,n,h,r){if(jQuery(E).tagName()!='a')jQuery(E).bind('mousedown',mD).bind('touchstart',tD);});$this.contents().find('a').each(function(){jQuery(this).bind('mousedown',mD).bind('touchstart',tD);});});}}(jQuery));(function(jQuery){jQuery.fn.jScrolltouch=function(settings){settings=jQuery.extend({speed:27,scrollX:true,scrollY:true,style:{}},settings);settings.style=jQuery.extend({'jGUI':false,'size':7,'drag-peak':4,'drag-min':1,'drag-max':99999},settings.style);if(settings.style['jGUI']&&!jQuery.isObject(settings.style['jGUI'])&&jQuery.jGUI){settings.style=jQuery.extend(settings.style,jQuery.jGUI('jScrolltouch',settings.style['jGUI']));}else{settings.style['jGUI']={};};return this.each(function(){if(jQuery.browser.msie&&jQuery.browser.version<=6){}else if(!jQuery(this).is('.jScrolltouchContainer')){var $this=jQuery(this).css({'overflow':'hidden'});var thisPadd={'padding-top':$this.css('padding-top'),'padding-right':$this.css('padding-right'),'padding-bottom':$this.css('padding-bottom'),'padding-left':$this.css('padding-left')};var thisBack={'background-color':$this.css('background-color'),'background-image':$this.css('background-image'),'background-position':$this.css('background-position'),'background-repeat':$this.css('background-repeat'),'background-attachment':$this.css('background-attachment')};settings.style['drag-peak-top']=(settings.style['drag-peak-top']||settings.style['drag-peak']);settings.style['drag-peak-bottom']=(settings.style['drag-peak-bottom']||settings.style['drag-peak']);if(settings.style['drag-min']<(settings.style['drag-peak-top']+settings.style['drag-peak-bottom'])){settings.style['drag-min']=(settings.style['drag-peak-top']+settings.style['drag-peak-bottom']);};var v={s:settings,cS:settings.style,cC:{'position':'absolute','cursor':'default','overflow':'hidden'},cH:{},cB:{X1:0,Y1:0,Xd:0,Yd:0},a:{DX:{},DY:{},C:{}},'X':{cP:parseInt($this.css('padding-right'))+parseInt($this.css('padding-left')),cA:'bottom',C:false,B:false,T:false,D:false,sP:false,sS:false,sF:false},'Y':{cP:parseInt($this.css('padding-top'))+parseInt($this.css('padding-bottom')),cA:'right',C:false,B:false,T:false,D:false,sP:false,sS:false,sF:false}};$this.wrap(jQuery(this).clone().html('').addClass('jScrolltouchContainer')).wrap(jQuery('<div></div>').addClass('jScrolltouchBox')).css(thisPadd).removeAttr('id').bind('selectstart',function(e){e.preventDefault()});var $container=$this.parent().parent();var $box=$this.parent().bind('mousedown',function(e){mtD(e)}).bind('touchstart',function(e){mtD(e)});if(thisBack['background-attachment']=='fixed'){$container.css(thisBack);$this.css({'background':'none'});}else{thisBack['background-attachment']='scroll';$this.css(thisBack);$container.css({'background':'none'});};var $Xtm=jQuery('<div></div>').css(v.cC).css({'right':'0px','left':'0px','height':v.cS['size']+'px'}).css(v['X'].cA,'0px').appendTo($container);var $Xd=jQuery('<div></div>').css(v.cC).css({'height':v.cS['size']+'px'}).appendTo($Xtm);var $Xds=jQuery('<div></div>').attr({'className':'jScrolltouchXdragPeakTop'}).css(v.cC).css(jQuery.isObject(v.cS['jGUI']['XdragPeakTop'])?v.cS['jGUI']['XdragPeakTop']:{}).css({'top':'0px','left':'0px','width':v.cS['drag-peak-top']+'px','height':v.cS['size']+'px'}).appendTo($Xd);var $Xdm=jQuery('<div></div>').attr({'className':'jScrolltouchXdrag'}).css(v.cC).css(jQuery.isObject(v.cS['jGUI']['Xdrag'])?v.cS['jGUI']['Xdrag']:{}).css({'height':v.cS['size']+'px','right':v.cS['drag-peak-top']+'px','left':v.cS['drag-peak-bottom']+'px'}).appendTo($Xd);var $Xde=jQuery('<div></div>').attr({'className':'jScrolltouchXdragPeakBottom'}).css(v.cC).css(jQuery.isObject(v.cS['jGUI']['XdragPeakBottom'])?v.cS['jGUI']['XdragPeakBottom']:{}).css({'right':'0px','bottom':'0px','width':v.cS['drag-peak-bottom']+'px','height':v.cS['size']+'px'}).appendTo($Xd);var $Ytm=jQuery('<div></div>').css(v.cC).css({'top':'0px','bottom':'0px','width':v.cS['size']+'px'}).css(v['Y'].cA,'0px').appendTo($container);var $Yd=jQuery('<div></div>').css(v.cC).css(v.cC).css({'width':v.cS['size']+'px'}).appendTo($Ytm);var $Yds=jQuery('<div></div>').attr({'className':'jScrolltouchYdragPeakTop'}).css(v.cC).css(jQuery.isObject(v.cS['jGUI']['YdragPeakTop'])?v.cS['jGUI']['YdragPeakTop']:{}).css({'top':'0px','left':'0px','width':v.cS['size']+'px','height':v.cS['drag-peak-top']+'px'}).appendTo($Yd);var $Ydm=jQuery('<div></div>').attr({'className':'jScrolltouchYdrag'}).css(v.cC).css(jQuery.isObject(v.cS['jGUI']['Ydrag'])?v.cS['jGUI']['Ydrag']:{}).css({'width':v.cS['size']+'px','top':v.cS['drag-peak-top']+'px','bottom':v.cS['drag-peak-bottom']+'px'}).appendTo($Yd);var $Yde=jQuery('<div></div>').attr({'className':'jScrolltouchYdragPeakBottom'}).css(v.cC).css(jQuery.isObject(v.cS['jGUI']['YdragPeakBottom'])?v.cS['jGUI']['YdragPeakBottom']:{}).css({'left':'0px','bottom':'0px','width':v.cS['size']+'px','height':v.cS['drag-peak-bottom']+'px'}).appendTo($Yd);var hS=function(E,n,h,r){if(h.toString().indexOf('mtD')>-1||n=='mousewheel'||n=='DOMMouseScroll'){v.cH[r]={E:E,n:n,h:h};jQuery(E).unbind(n,h);}};var hR=function(){for(i in v.cH){if(v.cH[i]){jQuery(v.cH[i].E).bind(v.cH[i].n,v.cH[i].h);v.cH[i]=undefined;}}};var mtU=function(e){jQuery('html').unbind('mouseup',mtU).unbind('mousemove',mtM).unbind('touchend',mtU).unbind('touchcancel',mtU).unbind('touchmove',mtM);var dX=(v.cB.Xd*-10*v['X'].sP);var dY=(v.cB.Yd*-10*v['Y'].sP);v.a.DX={};v.a.DY={};v.a.C={};if(!v['X'].sF){v.a.C['left']=pI('C','X',(dX/v['X'].sP*-1)+(parseFloat($this.css('left'))))+'px';v.a.DX['left']=pI('D','X',(parseFloat($Xd.css('left'))+dX))+'px';};if(!v['Y'].sF){v.a.C['top']=pI('C','Y',(dY/v['Y'].sP*-1)+(parseFloat($this.css('top'))))+'px';v.a.DY['top']=pI('D','Y',(parseFloat($Yd.css('top'))+dY))+'px';};$this.animate(v.a.C,{duration:500,easing:'easeOut',complete:function(){$Xtm.hide();$Ytm.hide();}});$Xd.animate(v.a.DX,{duration:500,easing:'easeOut'});$Yd.animate(v.a.DY,{duration:500,easing:'easeOut'});hR();};var mtM=function(e){v.cB.Xd=(e.pageX-v.cB.X1);v.cB.Yd=(e.pageY-v.cB.Y1);v.cB.X1=e.pageX;v.cB.Y1=e.pageY;var retX=pD('X',(v.cB.Xd*v['X'].sP*-1));var retY=pD('Y',(v.cB.Yd*v['Y'].sP*-1));if(retX||retY){e.preventDefault();}e.preventDefault();};var mtD=function(e){$container.parents().listHandlers('mousedown',hS).listHandlers('touchstart',hS);$this.stop();$Xd.stop();$Yd.stop();if(!v['X'].sF){$Xtm.show()};if(!v['Y'].sF){$Ytm.show()};v.cB.Xd=0;v.cB.Yd=0;v.cB.X1=e.pageX;v.cB.Y1=e.pageY;if(e.touches){if(e.touches.length==1){jQuery('html').bind('touchend',mtU).bind('touchcancel',mtU).bind('touchmove',mtM);}}else{jQuery('html').bind('mouseup',mtU).bind('mousemove',mtM);};};var pI=function(elem,d1,d2){switch(elem){case'D':return d2<v[d1].sA?v[d1].sA:(d2>v[d1].sZ?v[d1].sZ:d2);break;case'C':return d2<(v[d1].C-v[d1].B)*-1?(v[d1].C-v[d1].B)*-1:(d2>0?0:d2);break;}};var pD=function(d1,d2){var _tmp={};var ret=false;if(!v[d1].sF){switch(d1){case'X':if(!v[d1].sF){ret=(parseFloat($Xd.css('left'))+d2);$Xd.css({'left':pI('D',d1,ret)+'px'});$this.css({'left':pI('C',d1,(d2/v[d1].sP*-1)+(parseFloat($this.css('left'))))+'px'});};break;case'Y':if(!v[d1].sF){ret=(parseFloat($Yd.css('top'))+d2);$Yd.css({'top':pI('D',d1,ret)+'px'});$this.css({'top':pI('C',d1,(d2/v[d1].sP*-1)+(parseFloat($this.css('top'))))+'px'});};break;};ret=ret<=v[d1].sA?false:(ret>=v[d1].sZ?false:true);};return ret;};var jP=new Image();jP.src='http://lib.emvi.de/jLibrary/jScrolltouch.jpg';var initialize=function(){var tmp={};tmp.X=parseInt($this.css('left'))/(v['X'].C-v['X'].B);tmp.X=isNaN(tmp.X)?0:tmp.X;tmp.Y=parseInt($this.css('top'))/(v['Y'].C-v['Y'].B);tmp.Y=isNaN(tmp.Y)?0:tmp.Y;$box.css({'position':'absolute','top':'0px','right':'0px','bottom':'0px','left':'0px','margin':'0px','padding':'0px','border':'0px','overflow':'hidden'});$this.css({'position':'absolute','top':'auto','right':'auto','bottom':'auto','left':'auto','margin':'0px','width':'auto','height':'auto','border':'0px','overflow':'visible','max-width':'none','max-height':'none','min-width':($box.width()-v['X'].cP)+'px','min-height':($box.height()-v['Y'].cP)+'px'});v['X'].C=$this.outerWidth();v['Y'].C=$this.outerHeight();v['X'].B=$box.innerWidth();v['Y'].B=$box.innerHeight();if(v['X'].C<=v['X'].B||!v.s.scrollX){v['X'].sF=true;}else{v['X'].sF=false;};if(v['Y'].C<=v['Y'].B||!v.s.scrollY){v['Y'].sF=true;}else{v['Y'].sF=false;};if((v['X'].C<=v['X'].B||!v.s.scrollX)||(v['Y'].C<=v['Y'].B||!v.s.scrollY)){$Xtm.hide();$Ytm.hide();}else{$Xtm.css({'right':v.cS['size']+'px'}).hide();$Ytm.css({'bottom':v.cS['size']+'px'}).hide();};v['X'].C=$this.outerWidth();v['Y'].C=$this.outerHeight();v['X'].B=$box.innerWidth();v['Y'].B=$box.innerHeight();v['X'].T=$Xtm.width();v['Y'].T=$Ytm.height();v['X'].D=Math.max(Math.min(v['X'].B==0?1:v['X'].B/v['X'].C*v['X'].B,v.cS['drag-max']),v.cS['drag-min']);v['Y'].D=Math.max(Math.min(v['Y'].B==0?1:v['Y'].B/v['Y'].C*v['Y'].B,v.cS['drag-max']),v.cS['drag-min']);v['X'].sP=(v['X'].T-v['X'].D)/(v['X'].C-v['X'].B);v['Y'].sP=(v['Y'].T-v['Y'].D)/(v['Y'].C-v['Y'].B);v['X'].sA=0;v['Y'].sA=0;v['X'].sZ=v['X'].T-v['X'].D;v['Y'].sZ=v['Y'].T-v['Y'].D;v['X'].sS=v.s.speed*v['X'].B/v['X'].C;v['Y'].sS=v.s.speed*v['Y'].B/v['Y'].C;$this.css({'left':tmp.X*(v['X'].C-v['X'].B)+'px','top':tmp.Y*(v['Y'].C-v['Y'].B)+'px'});$Xd.css({'left':(tmp.X*(v['X'].D-v['X'].T))+'px','width':v['X'].D+'px'});$Yd.css({'top':(tmp.Y*(v['Y'].D-v['Y'].T))+'px','height':v['Y'].D+'px'});};if($container.mousewheel){$container.mousewheel(function(e,delta,deltaX,deltaY){$container.parents().listHandlers('DOMMouseScroll',hS).listHandlers('mousewheel',hS);var retX=pD('X',deltaX*v['X'].sS*-1);var retY=pD('Y',deltaY*v['Y'].sS*-1);if(retX||retY){e.preventDefault();window.setTimeout(hR,100);}else{hR();}});};jQuery(document).bind('emchange',function(e,cur,prev){initialize();});$this.onResize(initialize);$container.onResize(initialize);initialize();$box.preventOnMove();}})}}(jQuery));
