/*
*/

if (typeof showcaseFX != 'function') {
	function showcaseFX(id, o){
	  
	  var dix = $(id);
	  if (dix) {
	  	
	    var showcase = dix.getElement('.showcase');
	    var frames = dix.getElements('.sframe');
	    
	    if(frames.length > 1) {/* For 2 frames or more */
	    	
	      var a = frames.length - 1;
	      var b = 0;
	      var fh = 0;
	      var fw = 0;
	      var f = {};
	      var fx;
	      var fxReady = (o.fxpause == -1) ? true : false;
	      var periodical;
      
	      
	      /*
	       * Initial Styles
	       */
	      showcase.setStyles({'position':'relative','display':'block','visibility':'visible','overflow':'hidden','z-index':o.fxlayer});
	      frames.each(function(f,i){
	      	fh = (f.getSize().size.y > fh) ? f.getSize().size.y : fh;
	    		fw = (f.getSize().size.x > fw) ? f.getSize().size.x : fw;	
	      })
	      frames.setStyles({'position':'absolute','display':'block','visibility':'visible'});
	  		showcase.setStyles({'width':fw,'height':fh});
	      frames.setStyles({'width':fw,'height':fh});
	      
	      /* Only for IE */
	    	if (window.ie){	
	    		/* Fix for png image */
	    		var fixyimg = showcase.getElements('img.imgpngfix');
	      		fixyimg.each(function(im){
	      			var imgName = im.src.toUpperCase();
	      		  if (imgName.substring(imgName.length-3, imgName.length) == "PNG"){
	      		  	var img = im;
	      				var w = img.width;
	      				var h = img.height;
	      				var imgURL = img.src;
	      		    var imgID = (img.id) ? "id='" + img.id + "' " : "";
	      		    var imgClass = (img.className) ? "class='" + img.className + "' " : "";
	      			  var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
	      			  var imgStyle = "display:inline-block;" + img.style.cssText;
	      			  if (img.align == "left") imgStyle = "float:left;" + imgStyle;
	      			  if (img.align == "right") imgStyle = "float:right;" + imgStyle;
	      			  if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
	      			  var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + w + "px; height:" + h + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"; 
	      			  img.outerHTML = strNewHTML;
	      		}
	    		});
	    	}
	    	
	
	     /*
	      * Control Triggers 
	      */
	      var prevs = dix.getElements('.prev');
	      var nexts = dix.getElements('.next');
	      var pags = dix.getElements('.pag');
	          
	     /*
	      * Animation options
	      */
	      switch (o.fxmode) {
	        case 'fade':
	          fx = new Fx.Elements(frames, {duration: o.fxspeed, wait: true, transition: o.fxtype, onComplete: function(){fxReady = true;}});
	          var start = 0;
	          var end = 1;
	          frames.setStyles({'opacity': start});
	          frames[0].setStyles({'opacity': end});
	          var fxIn = {'opacity': end};
	          var fxOut = {'opacity': start};
	          var fxInR = {'opacity': end};
	          var fxOutR = {'opacity': start};
	          break;
	          
	        case 'slideHor':
	          fx = new Fx.Elements(frames, {duration: o.fxspeed, wait: true, transition: o.fxtype, onComplete: function(){fxReady = true;}});
	          var dir = (o.fxflow == 'LR') ? 1 : -1;
	          var start = dir * fw;
	          var mid = 0;
	          var end = -start;
	          frames.setStyles({'left': start});
	          frames[0].setStyles({'left': mid});
	          var fxIn = {'left': [start, mid]};
	          var fxOut = {'left': [mid, end]};
	          var fxInR = {'left': [end, mid]};
	          var fxOutR = {'left': [mid, start]};
	          break;
	          
	        case 'slideVer':
	          fx = new Fx.Elements(frames, {duration: o.fxspeed, wait: true, transition: o.fxtype, onComplete: function(){fxReady = true;}});
	          var dir = (o.fxflow == 'TB') ? 1 : -1;
	          var start = -dir * fh;
	          var mid = 0;
	          var end = -start;
	          frames.setStyles({'top': start});
	          frames[0].setStyles({'top': mid});
	          var fxIn = {'top': [start, mid]};
	          var fxOut = {'top': [mid, end]};
	          var fxInR = {'top': [end, mid]};
	          var fxOutR = {'top': [mid, start]};
	          break;
	      }
	      
	      /*
	       * Z-Index reverse fix
	       */
	      frames.each(function(f, i){f.setStyles({'z-index': i});});
	      
	      /*
	       * Foward Method
	       */
	      function foward(){
	        a = (a == frames.length - 1) ? 0 : a + 1;
	        b = (b == frames.length - 1) ? 0 : b + 1;
	        f = {};
	        f[a] = fxOut;
	        f[b] = fxIn;
	        fx.start(f);
	      }
	      
	      /*
	       * Rewind Method
	       */
	      function rewind(){
	        f = {};
	        f[a] = fxInR;
	        f[b] = fxOutR;
	        fx.start(f);
	        a--;
	        b--;
	        a = (a < 0) ? frames.length - 1 : a;
	        b = (b < 0) ? frames.length - 1 : b;
	      }
	      
	      /*
	       * GoTo Method
	       */
	      function goTo(g){
	        f = {};
	        f[b] = fxOut;
	        f[g] = fxIn;
	        fx.start(f);
	        a = g - 1;
	        b = g;
	        a = (a < 0) ? frames.length - 1 : a;
	        b = (b < 0) ? frames.length - 1 : b;
	      }
	      
	      /*
	       * Animate Method
	       */
	      function animate(){
	        foward();
	        fxReady = false;
	      }
	      
	      /*
	       * Controls Actions: Previous
	       */
	      prevs.each(function(prev,i){
	        prev.addEvent('click', function(e){
	        	e = new Event(e).stop();
	          if (fxReady) {
	            rewind();
	            $clear(periodical);
	            if(o.fxpause != -1) periodical = animate.periodical(o.fxspeed + o.fxpause);
	            fxReady = false;
	          }
	        });
	      });
	      
	      /*
	       * Controls Actions: Next
	       */
	      nexts.each(function(next, i){
	        next.addEvent('click', function(e){
	        	e = new Event(e).stop();
	          if (fxReady) {
	            foward();
	            $clear(periodical);
	            if(o.fxpause > 0) periodical = animate.periodical(o.fxspeed + o.fxpause);
	            fxReady = false;
	          }
	        });
	      });
	      
	      /*
	       * Controls Actions: Paginations
	       */
	      pags.each(function(pag,i){
	        pag.addEvent('click', function(e){
	        	e = new Event(e).stop();
	          if(fxReady){
	            if (i != b) {
	              goTo(i);
	              $clear(periodical);
	              if(o.fxpause > 0) periodical = animate.periodical(o.fxspeed + o.fxpause);
	              fxReady = false;
	            }
	          }
	        });
	      });
	      
	      /*
	       * Init Method
	       */
	      function init(){
	      	if(o.fxpause > 0) periodical = animate.periodical(o.fxspeed + o.fxpause);
	      }
	      init();
	      
	    }else{/* For 1 single frame */
	    	showcase.setStyles({'position':'relative','display':'block','visibility':'visible','z-index':o.fxlayer});
	    }
	    
	  }/* End if(dix) */
	}/* End showcasefx */
}/* End  typeof showcasefx */


/*
 * Showcase Complements: JXTC HOVER
 */
if (typeof jxtchover != 'function'){
  function jxtchover(id,hi,ho){
  	var ghover = $(id).getElements('.js_hover');
  	ghover.each(function(el) {
  		el.setStyles({'background-color':'#' + ho});
  		var fx = new Fx.Styles(el, {duration:300, wait:false});
  		el.addEvent('mouseenter', function(){
  			fx.start({
  				'background-color': '#' + hi
  			});
  		});
  		el.addEvent('mouseleave', function(){
  			fx.start({
  				'background-color': '#' + ho
  			});
  		});
  	});
  }
}


/*
 * Showcase Complements: JXTC POPS
 */
if (typeof jxtcpops != 'function') {
  function jxtcpops(id, o){
    var dix = $(id);
    var popsh = dix.getElements('.popuphover');
    
		var vo = 0;
		var vi = 0;
		var ho = 0;
		var hi = 0;
    
    var box = new Element('div',{
      styles:{'opacity':0,'display':'none'}
    });
    box.injectInside(document.body);
    box.addClass('jxtcpopup');
    
    var inner = new Element('div');
    inner.addClass('jxtcinner');
    
    var x = new Element('div');
    x.addClass('jxtcpopupclose');
    x.innerHTML = 'KAPAT';
    
    var d = new Element('div');
    d.addClass('jxtcpopupdrag');
    d.innerHTML = 'TASI';
    
    x.injectInside(box);
    d.injectInside(box);
    inner.injectInside(box);
    
    var fx = new Fx.Styles(box,{duration:o.durationin,transition:o.fxtype,wait:false});
    
    x.addEvent('click',function(){
      fx.start({
        'top':window.getScrollTop() + vo,
        'left':window.getScrollLeft() + ho,
        'opacity':o.opacityout
      }).chain(function(){
        box.setStyles({'display':'none'});
      });
    });
    
    popsh.each(function(p,i){
      var pop = p.getElement('.pop');
      pop.setStyles({'display':'none'});

			x.addEvent('click',function(){
				pop.setStyles({'display':'none'});
				p.adopt(pop);
			});
      
      p.addEvent('click',function(){
         
        box.setStyles({
          'position':'absolute',
          'display':'block'
        });
        box.makeDraggable();
				inner.adopt(pop);
				
				pop.setStyles({'display':'block'});

        box.setStyles({
          'height':'auto',
          'top': window.getScrollTop() + o.verticalout + 'px',
          'left': window.getScrollLeft() + o.horizontalout + 'px'
        });

				if(o.centered=='1'){
					var bw = box.getSize().size.x;
					var bh = box.getSize().size.y;

	        box.setStyles({
						'top': (window.getScrollTop()) + (window.getHeight() - box.getSize().size.y)/2 + 'px',
	          'left': (window.getScrollLeft() + window.getWidth() - bw)/2 + 'px'
	        });

					vo = vi = (window.getHeight() - box.getSize().size.y)/2;
					ho = hi = (window.getScrollLeft() + window.getWidth() - bw)/2;

				}
        
        fx.start({
          'top':window.getScrollTop() + vi,
          'left':window.getScrollLeft() + hi,
          'opacity':o.opacityin
        });

      });
      
    });
    
  }
}


/*
 * Showcase Complements: JXTC TIPS
 */
if (typeof jxtctips != 'function') {
  function jxtctips(id,options){
    var dix = $(id);
    var triggers = dix.getElements('.jxtctooltip');
    triggers.each(function(t,i){
      
      var tip = t.getElement('.tip');
      t.setStyles({'position':'relative'});
      tip.setStyles({'opacity':0,'display':'block','position':'absolute','z-index':9999,'top':options.verticalout,'left':options.horizontalout});

      var tfxi = new Fx.Styles(tip, {duration: options.durationin, transtion: options.fxtype, wait: false});
      var tfxo = new Fx.Styles(tip, {duration: options.durationout, transtion: options.fxtype, wait: false});
      var tfxp = new Fx.Styles(tip, {duration: options.pause,wait: true});
      
      t.addEvent('mouseenter', function(){
        tfxi.start({
          'opacity': options.opacityin,
          'top': options.verticalin + 'px',
          'left': options.horizontalin + 'px'          
        });
      });
      t.addEvent('mouseleave', function(){
        tfxp.start({}).chain(function(){
          tfxo.start({
            'opacity': options.opacityout,
            'top' : options.verticalout + 'px',
  					'left' : options.horizontalout + 'px'

          });
        });
      });

      tip.addEvent('mouseenter', function(){
			  tfxp.stop();
			  tfxi.start({
          'opacity': options.opacityin,
          'top': options.verticalin + 'px',
          'left': options.horizontalin + 'px'          
        });
      });
   
    });
  }
}


/*
 * Showcase Complements: SLIDEBOX
 */
if (typeof slidebox != 'function') {
  function slidebox(id,sbfx,p,a){
    var dix = $(id);
    var boxslides = dix.getElements('.slidebox');
    var pos = p;
    
    boxslides.each(function(b, i){
      b.setStyles({'overflow': 'hidden','position':'relative'});
      var slide = b.getElement('.slidepanel');
      slide.setStyles({'position': 'relative'});
      
      (function(){
        var s = b.getSize().size;
        switch(sbfx) {
        	case 'RSO':
            pos.xi = s.x; pos.xo = 0; pos.yi = 0; pos.yo = 0;
        	  break;
          case 'RSI':
            pos.xo = s.x; pos.xi = 0; pos.yi = 0; pos.yo = 0;
        	  break;
        	case 'LSO':
            pos.xi = -s.x; pos.xo = 0; pos.yi = 0; pos.yo = 0;
        		break;
          case 'LSI':
            pos.xo = -s.x; pos,xi = 0; pos.yi = 0; pos.yo = 0;
        		break;
          case 'BSO':
            pos.yi = s.y; pos.yo = 0; pos.xi = 0; pos.xo = 0;
        		break;
          case 'BSI':
            pos.yo = s.y; pos.yi = 0; pos.xi = 0; pos.xo = 0;
        		break;
          case 'TSO':
            pos.yo = s.y; pos.yi = 0; pos.xi = 0; pos.xo = 0;
        		break;
          case 'TSI':
            pos.yo = -s.y; pos.yi = 0; pos.xi = 0; pos.xo = 0;
        		break;
          case 'TRSO':
            pos.xi = s.x; pos.xo = 0; pos.yi = -s.y; pos.yo = 0;
        		break;
          case 'TRSI':
            pos.xo = s.x; pos.xi = 0; pos.yo = -s.y; pos.yi = 0;
        		break;
          case 'TLSO':
            pos.xi = -s.x; pos.xo = 0; pos.yi = -s.y; pos.yo = 0;
        		break;
          case 'TLSI':
            pos.xo = -s.x; pos.xi = 0; pos.yo = -s.y; pos.yi = 0;
        		break;
          case 'BRSO':
            pos.xi = s.x; pos.xo = 0; pos.yi = s.y; pos.yo = 0;
        		break;
          case 'BRSI':
            pos.xo = s.x; pos.xi = 0; pos.yo = s.y; pos.yi = 0;
            break;
          case 'BLSO':
            pos.xi = -s.x; pos.xo = 0; pos.yi = s.y; pos.yo = 0;
        		break;
          case 'BLSI':
            pos.xo = -s.x; pos.xi = 0; pos.yo = s.y; pos.yi = 0;
        		break;
        }
        
        slide.setStyles({
          'top': pos.yo,
          'left': pos.xo
        });
      }).delay(100);
      
      var sfx = new Fx.Styles(slide,{duration:a.dura,fps:a.frames,transition:a.fxtype,wait:false});
      
      b.addEvent('mouseenter', function(){
        sfx.start({
          'top': pos.yi,
          'left':pos.xi
        });
      });
      b.addEvent('mouseleave', function(){
        sfx.start({
          'top': pos.yo,
          'left':pos.xo
        });
      });
      
    });
  }
}


/*
 * WallFX
 */
if (typeof wallfx != 'function') {
	function wallfx(id, w, h, mode){
		var mode = (typeof mode != 'undefined') ? mode : 0;
	  var con = $(id);
	  if (con) {
	    var conSize = con.getSize();
	    var inside = con.getElement('.showcase');
	    if (inside) {
		    inside.setStyles({
					'position': 'relative',
					'display':'block',
					'visibility':'visible',
					'top':0,
					'left':0,
					'width': w + 'px',
					'height': h + 'px'
		    });
		    var inSize = inside.getSize();
				var divShow = inside.getElement('.sframe');
				if(divShow){
		      divShow.setStyles({
						'position':'absolute',
						'display':'block'
					});
					switch(mode)	{
					case 0:
			    inside.setStyles({
						'overflow': 'hidden'
			    });
					var table = divShow.getElement('.table');
					var tSize = table.getSize().size;
		      table.setStyles({
						'position':'relative',
						'width':tSize.x,
						'height':tSize.y,
						'top':tSize.y - h,
						'left':tSize.x - w
					});
		      divShow.setStyles({
						'left': -(tSize.x - w),
						'top': -(tSize.y - h),
						'width': (tSize.x - w) + tSize.x,
						'height': (tSize.y - h) + tSize.y
					});
					table.makeDraggable({container:divShow});
					break;
					case 1:
					var table = divShow.getElement('table');
					var tSize = table.getSize().size;
		      table.setStyles({
						'position':'relative',
						'top':0,
						'left':0
					});
		      divShow.setStyles({
						'overflow': 'hidden',
						'position':'relative',
						'width': w,
						'height': h
					});
					var margenx = inSize.size.x * .05;
					var margeny = inSize.size.y * .05;
			    var dimDiffsx = tSize.x - inSize.size.x;
			    var dimDiffsy = tSize.y - inSize.size.y;
			    var dimPropsx = dimDiffsx / (inSize.size.x - (margenx * 2));
			    var dimPropsy = dimDiffsy / (inSize.size.y - (margeny * 2));

					inside.addEvent('mousemove', function(event){
				    var event = new Event(event);
						var mposx = event.page.x - inside.offsetLeft;
						var mposy = event.page.y - inside.offsetTop;
						var newx = parseInt(dimPropsx * (mposx - margenx));
						if (newx < 0) {newx = 0};
						if (newx > tSize.x - inSize.size.x) {newx = tSize.x - inSize.size.x};
						var newy = parseInt(dimPropsy * (mposy - margeny));
						if (newy < 0) {newy = 0};
						if (newy > tSize.y - inSize.size.y) {newy = tSize.y - inSize.size.y};
			    	table.style.left  = -newx + 'px';
			    	table.style.top  = -newy + 'px';
					});
					break;
	        }
	      }
	    }
	  }
	}
}

