﻿/** jquery.color.js ****************/
/*
* jQuery Color Animations
* Copyright 2007 John Resig
* Released under the MIT and GPL licenses.
*/

(function ( jQuery )
{

     // We override the animation for all of these color styles
     jQuery.each( ['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function ( i, attr )
     {
          jQuery.fx.step[attr] = function ( fx )
          {
               if ( fx.state == 0 )
               {
                    fx.start = getColor( fx.elem, attr );
                    fx.end = getRGB( fx.end );
               }
               if ( fx.start )
                    fx.elem.style[attr] = "rgb(" + [
                    Math.max( Math.min( parseInt( ( fx.pos * ( fx.end[0] - fx.start[0] ) ) + fx.start[0] ), 255 ), 0 ),
                    Math.max( Math.min( parseInt( ( fx.pos * ( fx.end[1] - fx.start[1] ) ) + fx.start[1] ), 255 ), 0 ),
                    Math.max( Math.min( parseInt( ( fx.pos * ( fx.end[2] - fx.start[2] ) ) + fx.start[2] ), 255 ), 0 )
                ].join( "," ) + ")";
          }
     } );

     // Color Conversion functions from highlightFade
     // By Blair Mitchelmore
     // http://jquery.offput.ca/highlightFade/

     // Parse strings looking for color tuples [255,255,255]
     function getRGB( color )
     {
          var result;

          // Check if we're already dealing with an array of colors
          if ( color && color.constructor == Array && color.length == 3 )
               return color;

          // Look for rgb(num,num,num)
          if ( result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec( color ) )
               return [parseInt( result[1] ), parseInt( result[2] ), parseInt( result[3] )];

          // Look for rgb(num%,num%,num%)
          if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec( color ) )
               return [parseFloat( result[1] ) * 2.55, parseFloat( result[2] ) * 2.55, parseFloat( result[3] ) * 2.55];

          // Look for #a0b1c2
          if ( result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec( color ) )
               return [parseInt( result[1], 16 ), parseInt( result[2], 16 ), parseInt( result[3], 16 )];

          // Look for #fff
          if ( result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec( color ) )
               return [parseInt( result[1] + result[1], 16 ), parseInt( result[2] + result[2], 16 ), parseInt( result[3] + result[3], 16 )];

          // Otherwise, we're most likely dealing with a named color
          return colors[jQuery.trim( color ).toLowerCase()];
     }

     function getColor( elem, attr )
     {
          var color;

          do
          {
               color = jQuery.curCSS( elem, attr );

               // Keep going until we find an element that has color, or we hit the body
               if ( color != '' && color != 'transparent' || jQuery.nodeName( elem, "body" ) )
                    break;

               attr = "backgroundColor";
          } while ( elem = elem.parentNode );

          return getRGB( color );
     };

     // Some named colors to work with
     // From Interface by Stefan Petre
     // http://interface.eyecon.ro/

     var colors = {
          aqua: [0, 255, 255],
          azure: [240, 255, 255],
          beige: [245, 245, 220],
          black: [0, 0, 0],
          blue: [0, 0, 255],
          brown: [165, 42, 42],
          cyan: [0, 255, 255],
          darkblue: [0, 0, 139],
          darkcyan: [0, 139, 139],
          darkgrey: [169, 169, 169],
          darkgreen: [0, 100, 0],
          darkkhaki: [189, 183, 107],
          darkmagenta: [139, 0, 139],
          darkolivegreen: [85, 107, 47],
          darkorange: [255, 140, 0],
          darkorchid: [153, 50, 204],
          darkred: [139, 0, 0],
          darksalmon: [233, 150, 122],
          darkviolet: [148, 0, 211],
          fuchsia: [255, 0, 255],
          gold: [255, 215, 0],
          green: [0, 128, 0],
          indigo: [75, 0, 130],
          khaki: [240, 230, 140],
          lightblue: [173, 216, 230],
          lightcyan: [224, 255, 255],
          lightgreen: [144, 238, 144],
          lightgrey: [211, 211, 211],
          lightpink: [255, 182, 193],
          lightyellow: [255, 255, 224],
          lime: [0, 255, 0],
          magenta: [255, 0, 255],
          maroon: [128, 0, 0],
          navy: [0, 0, 128],
          olive: [128, 128, 0],
          orange: [255, 165, 0],
          pink: [255, 192, 203],
          purple: [128, 0, 128],
          violet: [128, 0, 128],
          red: [255, 0, 0],
          silver: [192, 192, 192],
          white: [255, 255, 255],
          yellow: [255, 255, 0]
     };

} )( jQuery );

/** jquery.easing.js ****************/
/*
* jQuery Easing v1.1 - http://gsgd.co.uk/sandbox/jquery.easing.php
*
* Uses the built in easing capabilities added in jQuery 1.1
* to offer multiple easing options
*
* Copyright (c) 2007 George Smith
* Licensed under the MIT License:
*   http://www.opensource.org/licenses/mit-license.php
*/
jQuery.easing = { easein: function ( x, t, b, c, d ) { return c * ( t /= d ) * t + b }, easeinout: function ( x, t, b, c, d ) { if ( t < d / 2 ) return 2 * c * t * t / ( d * d ) + b; var a = t - d / 2; return -2 * c * a * a / ( d * d ) + 2 * c * a / d + c / 2 + b }, easeout: function ( x, t, b, c, d ) { return -c * t * t / ( d * d ) + 2 * c * t / d + b }, expoin: function ( x, t, b, c, d ) { var a = 1; if ( c < 0 ) { a *= -1; c *= -1 } return a * ( Math.exp( Math.log( c ) / d * t ) ) + b }, expoout: function ( x, t, b, c, d ) { var a = 1; if ( c < 0 ) { a *= -1; c *= -1 } return a * ( -Math.exp( -Math.log( c ) / d * ( t - d ) ) + c + 1 ) + b }, expoinout: function ( x, t, b, c, d ) { var a = 1; if ( c < 0 ) { a *= -1; c *= -1 } if ( t < d / 2 ) return a * ( Math.exp( Math.log( c / 2 ) / ( d / 2 ) * t ) ) + b; return a * ( -Math.exp( -2 * Math.log( c / 2 ) / d * ( t - d ) ) + c + 1 ) + b }, bouncein: function ( x, t, b, c, d ) { return c - jQuery.easing['bounceout']( x, d - t, 0, c, d ) + b }, bounceout: function ( x, t, b, c, d ) { if ( ( t /= d ) < ( 1 / 2.75 ) ) { return c * ( 7.5625 * t * t ) + b } else if ( t < ( 2 / 2.75 ) ) { return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b } else if ( t < ( 2.5 / 2.75 ) ) { return c * ( 7.5625 * ( t -= ( 2.25 / 2.75 ) ) * t + .9375 ) + b } else { return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b } }, bounceinout: function ( x, t, b, c, d ) { if ( t < d / 2 ) return jQuery.easing['bouncein']( x, t * 2, 0, c, d ) * .5 + b; return jQuery.easing['bounceout']( x, t * 2 - d, 0, c, d ) * .5 + c * .5 + b }, elasin: function ( x, t, b, c, d ) { var s = 1.70158; var p = 0; var a = c; if ( t == 0 ) return b; if ( ( t /= d ) == 1 ) return b + c; if ( !p ) p = d * .3; if ( a < Math.abs( c ) ) { a = c; var s = p / 4 } else var s = p / ( 2 * Math.PI ) * Math.asin( c / a ); return -( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b }, elasout: function ( x, t, b, c, d ) { var s = 1.70158; var p = 0; var a = c; if ( t == 0 ) return b; if ( ( t /= d ) == 1 ) return b + c; if ( !p ) p = d * .3; if ( a < Math.abs( c ) ) { a = c; var s = p / 4 } else var s = p / ( 2 * Math.PI ) * Math.asin( c / a ); return a * Math.pow( 2, -10 * t ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b }, elasinout: function ( x, t, b, c, d ) { var s = 1.70158; var p = 0; var a = c; if ( t == 0 ) return b; if ( ( t /= d / 2 ) == 2 ) return b + c; if ( !p ) p = d * ( .3 * 1.5 ); if ( a < Math.abs( c ) ) { a = c; var s = p / 4 } else var s = p / ( 2 * Math.PI ) * Math.asin( c / a ); if ( t < 1 ) return -.5 * ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b; return a * Math.pow( 2, -10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) * .5 + c + b }, backin: function ( x, t, b, c, d ) { var s = 1.70158; return c * ( t /= d ) * t * ( ( s + 1 ) * t - s ) + b }, backout: function ( x, t, b, c, d ) { var s = 1.70158; return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s ) + 1 ) + b }, backinout: function ( x, t, b, c, d ) { var s = 1.70158; if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= ( 1.525 ) ) + 1 ) * t - s ) ) + b; return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= ( 1.525 ) ) + 1 ) * t + s ) + 2 ) + b }, linear: function ( x, t, b, c, d ) { return c * t / d + b } };


/** apycom menu ****************/
$( document ).ready( function ()
{

     if ( $.browser.msie && parseInt( $.browser.version ) < 7 )
     {
          $( '#menu ul.menu li' ).hover( 
            function () { $( this ).addClass( 'sfhover' ); },
            function () { $( this ).removeClass( 'sfhover' ); }
        );
//          $( '#menu ul.menu li.disabledForMe' ).hover( 
//            function () { $( this ).addClass( 'disabled' ); },
//            function () { $(this).removeClass('disabled'); }
//        );

     }

     $( '#menu ul.menu > li' ).children( 'a' ).children( 'span' ).after( "<span class=\"bg\">&nbsp;</span>" );
     //---bouncing bg
     $( '#menu ul.menu > li' ).hover( 
		function ()
		{
		     //---IE7 width bugfix
		     $( this ).find( 'span.bg' ).css( "width", $( this ).width() );
		     //---end of IE7 width bugfix
		     $( this ).find( 'span.bg' ).stop( true, true ).animate( {
		          "marginTop": "-30px"
		     }, 125, "bounceout" );

		},
		function ()
		{
		     $( this ).find( 'span.bg' ).stop( true, true ).animate( {
		          "marginTop": "0"
		     }, 125, "bounceout" );

		}
	);

//     $( '#menu ul.menu > li.disabledForMe' ).hover( 
//		function ()
//		{
//		     //---IE7 width bugfix
//		     $( this ).find( 'span.bg' ).css(  { "display": "none",
//		          "pointer-events": "none", "cursor": "text"
//		     } );
//		     //---end of IE7 width bugfix

//		},
//		function ()
//		{
//		     $( this ).find( 'span.bg' ).stop( true, true );

//		}
//	);

     //---submenu animation

     $( '#menu li > div' ).parent( "li" ).hover( 
		function ()
		{
		     if ( !$( this ).children( 'div' )[0].hei )
		          $( this ).children( 'div' )[0].hei = $( this ).children( 'div' ).children( 'ul' ).height();
		     var hei = $( this ).children( 'div' )[0].hei;

		     $( this ).children( 'div' ).children( 'ul' ).css( {
		          "width": "0",
		          "height": "0"
		     } )
            .animate( {
                 "width": "165px",
                 "height": hei
            }, 125 );

		},
		function ()
		{
		     $( this ).children( 'div' ).children( 'ul' ).animate( {
		          "width": "165px",
		          "height": $( this ).children( 'div' )[0].hei
		     }, 300 );

		}
	);

     //---submenu animation

//     $( '#menu li.disabledForMe > div' ).parent( "li" ).hover( 
//		function ()
//		{
//		     if ( !$( this ).children( 'div' )[0].hei )
//		          $( this ).children( 'div' )[0].hei = $( this ).children( 'div' ).children( 'ul' ).height();
//		     var hei = $( this ).children( 'div' )[0].hei;

//		     $( this ).children( 'div' ).children( 'ul' ).css( {
//		          "display": "none",
//		          "pointer-events": "none", "cursor": "text"
//		     } );


//		},
//		function ()
//		{
//		     $( this ).children( 'div' ).children( 'ul' ).css( {
//		          "display": "none",
//		          "pointer-events": "none", "cursor": "text"
//		     } );
//		}
//	);


     $( '#menu li li a, #menu' ).css( { backgroundColor: 'rgb(255,255,255)' } ).hover( 
        function () { $( this ).css( { backgroundColor: 'rgb(255,255,255)' } ).animate( { backgroundColor: 'rgb(255,200,55)' }, 500 ); },
        function ()
        {
             $( this ).animate( { backgroundColor: 'rgb(255,255,255)' },
         	{ duration: 200, complete: function () { $( this ).css( 'backgroundColor', 'rgb(255,255,255)' ); } } );

        }
    );
//     $( '#menu li.disabledForMe li a' ).css(  {
//                  "display": "none",
//                  "pointer-events": "none", "cursor": "text"
//             }),
//        function ()
//        {
//             $( this ).css( {
//                  "display": "none",
//                  "pointer-events": "none", "cursor": "text"
//             } );
//             

//        }


} );
