/*********************************************************************************
jQuery Plugins
	- jqem.js
	- jquery.cookie.js
	- jquery.easing.1.3.js
	- jquery.imgUtil.js
	- jquery.anchorUtil.js
*********************************************************************************/


/*********************************************************************************
 * jQEm v0.2 - Interact with the base 'em' unit.
 *   * http://davecardwell.co.uk/javascript/jquery/plugins/jquery-em/0.2/
 * 
 * Dave Cardwell <http://davecardwell.co.uk/>
 *
 * Built on the shoulders of giants:
 *   * John Resig <http://jquery.com/>
 *
 *
 * Copyright (c) 2006 Dave Cardwell, dual licensed under the MIT and GPL
 * licenses:
 *   * http://www.opensource.org/licenses/mit-license.php
 *   * http://www.gnu.org/licenses/gpl.txt
*********************************************************************************/


/**
 * For the latest version of this plugin, and a discussion of its usage and
 * implementation, visit:
 *   * http://davecardwell.co.uk/javascript/jquery/plugins/jquery-em/
 */

new function($) {
    /**
     * The following functions and attributes form the Public interface of the
     * jQEm plugin, accessed externally through the $.jqem object.  See the
     * relevant function definition later in the source for further
     * information.
     *
     * $.jqem.auto()
     * $.jqem.auto( bool )
     * $.jqem.init()
     *
     * $.jqem.bind( callback )
     * $.jqem.bind( callback )
     * $.jqem.unbind()
     * $.jqem.unbind( callback )
     *
     * $.jqem.trigger()
     * $.jqem.trigger( force )
     * $.jqem.trigger( force, args )
     *
     * $.jqem.active()
     * $.jqem.delay()
     * $.jqem.delay( milliseconds )
     * $.jqem.start()
     * $.jqem.stop()
     *
     * $.jqem.current()
     * $.jqem.previous()
     */
    var Public = {
        // Given a boolean argument, auto() will turn initialisation at
        // $(document).ready() on or off accordingly.  Without, it simply
        // returns the current status.  init() performs the necessary steps to
        // start the jQEm plugin.
            'auto': function( bool ) {
                        return bool != undefined ? Private.auto = bool
                                                 : Private.auto;
                    },
            'init': function() {
                        return Private.init();
                    },

        // Bind functions to and unbind functions from the 'emchange' event.
            'bind': function( callback ) {
                        return Private.bind( callback );
                    },
          'unbind': function( callback ) {
                        return Private.unbind( callback );
                    },

        // Manually trigger a 'emchange' event.
         'trigger': function( force, args ) {
                        return Private.trigger( force, args );
                    },

        // The current state of the updater, get or set the delay between
        // updates when polling for changes, and methods to start and stop
        // updating.
          'active': function() {
                        return Private.active;
                    },
           'delay': function( milliseconds ) {
                        return milliseconds ? Private.delay = milliseconds
                                            : Private.delay;
                    },
           'start': function() {
                        return Private.start();
                    },
            'stop': function() {
                        return Private.stop();
                    },

        // The current and previous detected values of the base 'em' unit.
         'current': function() {
                        return Private.current;
                    },
        'previous': function() {
                        return Private.previous;
                    }
    };

    // Allow external access to the 'Public' interface through the $.jqem
    // object.
    $.jqem = Public;



    /**
     * The following functions and attributes form the internal methods and
     * state of the jQEm plugin.  See the relevant function definition later
     * in the source for further information.
     *
     * Private.$em
     *
     * Private.active
     * Private.canExp
     * Private.current
     * Private.delay
     * Private.iid
     * Private.previous
     *
     * Private.auto
     * Private.init()
     *
     * Private.bind( callback )
     * Private.bind( callback )
     * Private.unbind()
     * Private.unbind( callback )
     *
     * Private.trigger()
     * Private.trigger( force )
     * Private.trigger( force, args )
     * Private.update()
     *
     * Private.start()
     * Private.stop()
     *
     */
    var Private = {
        // The element used in detecting changes to the base 'em' unit.
            '$em': $( document.createElement('i') ),

        // The current state of the jQEm plugin: whether or not it is active,
        // whether or not the user agent understands Internet Explorer's
        // setExpression method, the current value of the base 'em' unit, the
        // delay between updates when polling for changes, the setInterval ID
        // if the plugin is currently polling for changes to the $em object,
        // the previous detected value of the base 'em' unit.
         'active': false,
         'canExp': undefined,
        'current': undefined,
          'delay': 100,  // milliseconds
            'iid': undefined,
       'previous': undefined,

        // When auto is true (default), the init() function will be called at
        // $(document).ready().  init() itself performs the necessary steps to
        // start the jQEm plugin.
           'auto': true,
           'init': init,

        // Bind functions to and unbind functions from the 'emchange' event.
           'bind': bind,
         'unbind': unbind,

        // Trigger a 'emchange' event or when auto-updating use the 'update'
        // wrapper function.
        'trigger': trigger,
         'update': function() {
                       Private.trigger( false );
                       return '1em';
                   },

        // Start and stop automatic update detection.
          'start': start,
           'stop': stop
    };



    /**
     * Unless disabled before $(document).ready() is triggered, execute the
     * init() function.
     */
    $(document).ready(function() {
        if( Private.auto ) init();
    });


    /**
     * Perform the necessary initialisation to use the jQEm plugin.
     */
    function init() {
        // Private.$em is an empty <i> element that we add to the document's
        // body, using CSS styling to make it effectively invisible to the
        // user.  We can detect changes in the computed value of its '1em'
        // width and use this information to trigger a 'emchange' event.
        $('body #wrapper').prepend(
            Private.$em.css({
                   'display': 'block',
                      'left': '-1em',
                  'position': 'absolute',
                'visibility': 'hidden',
                     'width': '1em'
            })
        );


        // Test to see whether or not we can use Internet Explorer's
        // setExpression() method and store the result for later use.
        Private.canExp = ( Private.$em.style != undefined
                        && Private.$em.style.setExpression != undefined );


        // Begin detecting changes in the base 'em' unit.
        Private.start();
    };



    /**
     * Bind the given callback function to be executed when a change is
     * detected in the size of the base 'em' unit.
     */
    function bind( callback ) {
        Private.$em.bind( 'emchange', callback );
    };


    /**
     * Unbind the given callback function from the 'emchange' event.  If no
     * callback is given, unbind all functions.
     */
    function unbind( callback ) {
        Private.$em.unbind( 'emchange', callback );
    };



    /**
     * Trigger the 'emchange' event globally.  If force is undefined or set to
     * false, explicitly make sure the value of the base 'em' unit has changed
     * since the last update.
     */
    function trigger( force, args ) {
        if( force == undefined ) force = false;

        if( force || Private.$em.width() != Private.current ) {
            Private.previous = Private.current;
            Private.current  = Private.$em.width();
            $.event.trigger( 'emchange', args );
        }
    };



    /**
     * Start detecting changes to the size of the base 'em' unit.
     */
    function start() {
        // Is detection already active?
        if( Private.active ) return;

        // Update the current and previous values of the base 'em' unit.
        Private.current = Private.previous = Private.$em.width();


        // Start detection.  If we can use Internet Explorer's setExpression
        // method do so for improved efficiency.  Otherwise, fall back on
        // polling the $em element for changes.
        if( Private.canExp ) {
            Private.$em.style.setExpression( 'width', '$.jqem.update();' );
        } else {
            Private.iid = window.setInterval( Private.update, Private.delay );
        }

        // Automatic updating is now active.
        Private.active = true;
    };


    /**
     * Stop detecting changes to the size of the base 'em' unit.
     */
    function stop() {
        // Is detection already stopped?
        if( !Private.active ) return;

        // Stop detection.  If we are using Internet Explorer's setExpression
        // remove them, otherwise halt the interval.
        if( Private.canExp ) {
            Private.$em.style.removeExpression('width');
        } else {
            window.removeInterval( Private.iid );
        }
    };
}($jq['1.3.2']);


/*********************************************************************************
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
*********************************************************************************/

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
$jq['1.3.2'].cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // NOTE Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = $jq['1.3.2'].trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};


/*********************************************************************************
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
*********************************************************************************/
(function(jQuery){
// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: 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;
	},
	easeOutElastic: 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;
	},
	easeInOutElastic: 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;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) 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;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: 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;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});
})($jq['1.3.2']);

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
 */


/*********************************************************************************
 * jquery.imgUtil.js
 * Copyright (c) 2008 Naoki Ueno
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Date: 7/11/2008
 * @howto
 *   jQuery('selectors').imgHover({ suffix : '_o' });
 * @howto
 *   jQuery('selectors').imgHover({ suffix : '_o' }).imgStay({ bodyClass : 'gStay_' , suffixStay : '_s' });
*********************************************************************************/
(function($){
$.extend({
	combineSuffix: function(imgpath, suffix) {
		var dot = imgpath.lastIndexOf('.');
		var suffixDot = imgpath.search(new RegExp(suffix+'\\.'));
		if(suffixDot != -1){
			return imgpath.substr(0, suffixDot) + suffix + imgpath.substr(dot);
		} else {
			return imgpath.substr(0, dot) + suffix + imgpath.substr(dot);
		}
	}
});
})($jq['1.3.2']);

/*------------------------------------------------------------
	Image Hover 
------------------------------------------------------------*/
(function($){
$.fn.extend({
	imgHover : function() {
		var setting = $.extend({
			suffix : '_o'
		}, $.makeArray(arguments).shift());
		this.suffix = setting.suffix;
		return this.each(function() {
			var imgsrc = this.src;
			var imgsrc_on = $.combineSuffix(imgsrc, setting.suffix);
			new Image().src = imgsrc_on;
			$(this).hover(
				function() { this.src = imgsrc_on; },
				function() { this.src = imgsrc; }
			);
		});
	}
});
})($jq['1.3.2']);

/*------------------------------------------------------------
	Image Stay 
------------------------------------------------------------*/
(function($){
$.fn.extend({
	imgStay : function() {
		var setting = $.extend({
			bodyClass : 'gStay',
			prefixClass: 'gNav',
			suffixStay : '_o'
		}, $.makeArray(arguments).shift());
		this.bodyClass = setting.bodyClass;
		this.suffixStay = setting.suffixStay;

		var classArray = $('body').attr('class').split(' ');
		$.each(classArray, function(index, value){
			if(value.search('^'+setting.bodyClass) != -1){
				var targetClass = value.substr(setting.bodyClass.length);
				//var targetImg = $('img.' + setting.prefixClass + targetClass).unbind().get(0);
				var targetImg = $('li.' + setting.prefixClass + targetClass).find('img').unbind().get(0);
				targetImg.src = $.combineSuffix(targetImg.src, setting.suffixStay);
			}
		});
		return this;
	}
});
})($jq['1.3.2']);


/*********************************************************************************
 * jquery.anchorUtil.js
 * Copyright (c) 2009 Naoki Ueno
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Date: 7/11/2008
 * @howto
 *   jQuery.anchorStay({ bodyClass : 'pStay_' , stayClass : 'pNavStay' });
 * @howto
 *   jQuery.scrollFor
 *   jQuery.scrollFor('#pagetop');
 *   jQuery.scrollFor('#pagetop', { duration : 1000, offset : 50 });
 *   jQuery.scrollFor('#pagetop', {}, callbackFunc);
 * 
 *   jQuery.fn.scrollFor
 *   jQuery('.pageTopAnchor').scrollFor('#pagetop');
 *   jQuery('.pageTopAnchor').scrollFor('#pagetop', { event : 'mouseover', duration : 1000, offset : 50 });
 *   jQuery('.pageTopAnchor').scrollFor('#pagetop', {}, callbackFunc);
*********************************************************************************/
/*------------------------------------------------------------
	Anchor Stay
------------------------------------------------------------*/
(function($){
$.extend({
	anchorStay: function() {
		var setting = $.extend({
			bodyClass : 'pStay_',
			stayClass : 'pNavStay'
		}, $.makeArray(arguments).shift());

		var classArray = $('body').attr('class').split(' ');
		$.each(classArray, function(index, value){
			if(value.search('^'+setting.bodyClass) != -1){
				var targetId = value.substr(setting.bodyClass.length);
				return $('#'+targetId).addClass(setting.stayClass);
			}
		});
	}
});
})($jq['1.3.2']);


/*------------------------------------------------------------
	Anchor Scroll
------------------------------------------------------------*/
(function($){
$.extend({
	scrollFor : function(elem, settings, callback) {
		settings = $.extend({
			duration : 500,
			offset : 0
		}, settings);
		$('html, body').animate({ scrollTop : $(elem).offset().top - settings.offset }, settings.duration, 'easeOutQuart', function(){
			if((typeof elem).toLowerCase == 'string' && elem.indexOf('#') != -1){
				var hash = elem.substr(1);
				location.hash = hash;
			}
			if(callback){ callback(); }
		});
	}
});
$.fn.extend({
	scrollFor : function(elem, settings, callback) {
		return this.each(function() {
			settings = $.extend({
				event : 'click'
			}, settings);
			$(this).bind(settings.event, function(e){
				if(!elem || elem!='') {
					elem = this.href;
					var hash = elem.lastIndexOf('#');
					elem = elem.substr(hash);
				}
				$.scrollFor(elem, settings, callback);
				e.preventDefault();
			});
		});
	}
});
})($jq['1.3.2']);

