// require jQuery 1.6 //
/*!
 * jQuery UI 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */
(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
c.ui.isOverAxis(b,e,i)}})}})(jQuery);
;/*
 * jQuery UI Effects 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={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],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})};
f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=
0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement;
if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});
return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,
arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/
2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,
d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,
a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,
d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=
0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,
a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
;
/**
 * jquery.scrollFollow.js
 * Copyright (c) 2008 Net Perspective (http://kitchen.net-perspective.com/)
 * Licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php)
 * 
 * @author R.A. Ray
 *
 * customize by aquaring
 *
 * @projectDescription	jQuery plugin for allowing an element to animate down as the user scrolls the page.
 * 
 * @version 0.4.0
 * 
 * @requires jquery.js (tested with 1.2.6)
 * @requires ui.core.js (tested with 1.5.2)
 * 
 * @optional jquery.cookie.js (http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/)
 * @optional jquery.easing.js (http://gsgd.co.uk/sandbox/jquery/easing/ - tested with 1.3)
 * 
 * @param speed		int - Duration of animation (in milliseconds)
 * 								default: 500
 * @param offset			int - Number of pixels box should remain from top of viewport
 * 								default: 0
 * @param easing		string - Any one of the easing options from the easing plugin - Requires jQuery Easing Plugin < http://gsgd.co.uk/sandbox/jquery/easing/ >
 * 								default: 'linear'
 * @param container	string - ID of the containing div
 * 								default: box's immediate parent
 * @param killSwitch	string - ID of the On/Off toggle element
 * 								default: 'killSwitch'
 * @param onText		string - killSwitch text to be displayed if sliding is enabled
 * 								default: 'Turn Slide Off'
 * @param offText		string - killSwitch text to be displayed if sliding is disabled
 * 								default: 'Turn Slide On'
 * @param relativeTo	string - Scroll animation can be relative to either the 'top' or 'bottom' of the viewport
 * 								default: 'top'
 * @param delay			int - Time between the end of the scroll and the beginning of the animation in milliseconds
 * 								default: 0
 */
(function (b) {
		var initPos = 0;
		var currentPos = 0;
		var limitPos = 0;
    b.scrollFollow = function (a, c) {
        function d() {
            a.queue([]);
						if (initPos <= 0) {
							initPos = a.offset().top;
						}
						currentPos = a.offset().top;
						limitPos = $("#pagefoot").offset().top;
            var d = parseInt(b(window).height()),
                f = parseInt(b(document).scrollTop()),
                j = parseInt(a.cont.offset().top),
                i = parseInt(a.cont.css("padding-top")) + parseInt(a.cont.css("height")),
                g = parseInt(parseInt(a.css("padding-top")) + parseInt(a.css("height")) + (parseInt(a.css("marginTop")) || 0) + (parseInt(a.css("marginBottom")) || 0)),
                h;
            e && (c.relativeTo == "top" ? h = a.initialOffsetTop >= f + c.offset ? a.initialTop : Math.min(Math.max(-j, f - a.initialOffsetTop + a.initialTop) + c.offset, i - g - a.paddingAdjustment) : c.relativeTo == "bottom" && (h = a.initialOffsetTop + g >= f + c.offset + d ? a.initialTop : Math.min(f + d - g - c.offset, i - g)), (new Date).getTime() - a.lastScroll >= c.delay - 20 && a.animate({
                top: (limitPos - a.height() > currentPos) ? (h < (limitPos - a.height() - initPos) ? h : (limitPos - a.height() - initPos)) : (limitPos - a.height() - initPos - 3)
            }, c.speed, c.easing))
        }
        a = b(a);
        a.css("position");
        var e = !0;
        b.cookie != void 0 && (b.cookie("scrollFollowSetting" + a.attr("id")) == "false" ? (e = !1, b("#" + c.killSwitch).text(c.offText).toggle(function () {
            e = !0;
            b(this).text(c.onText);
            b.cookie("scrollFollowSetting" + a.attr("id"), !0, {
                expires: 365,
                path: "/"
            });
            d()
        }, function () {
            e = !1;
            b(this).text(c.offText);
            a.animate({
                top: a.initialTop
            }, c.speed, c.easing);
            b.cookie("scrollFollowSetting" + a.attr("id"), !1, {
                expires: 365,
                path: "/"
            })
        })) : b("#" + c.killSwitch).text(c.onText).toggle(function () {
            e = !1;
            b(this).text(c.offText);
            a.animate({
                top: a.initialTop
            }, 0);
            b.cookie("scrollFollowSetting" + a.attr("id"), !1, {
                expires: 365,
                path: "/"
            })
        }, function () {
            e = !0;
            b(this).text(c.onText);
            b.cookie("scrollFollowSetting" + a.attr("id"), !0, {
                expires: 365,
                path: "/"
            });
            d()
        }));
        a.cont = c.container == "" ? a.parent() : b("#" + c.container);
        a.initialOffsetTop = parseInt(a.offset().top);
        a.initialTop = parseInt(a.css("top")) || 0;
        a.paddingAdjustment = a.css("position") == "relative" ? parseInt(a.cont.css("paddingTop")) + parseInt(a.cont.css("paddingBottom")) : 0;
        b(window).scroll(function () {
            b.fn.scrollFollow.interval = setTimeout(function () {
                d()
            }, c.delay);
            a.lastScroll = (new Date).getTime()
        });
        b(window).resize(function () {
            b.fn.scrollFollow.interval = setTimeout(function () {
                d()
            }, c.delay);
            a.lastScroll = (new Date).getTime()
        });
        a.lastScroll = 0;
        d()
    };
    b.fn.scrollFollow = function (a) {
        a = a || {};
        a.relativeTo = a.relativeTo || "top";
        a.speed = a.speed || 500;
        a.offset = a.offset || 0;
        a.easing = a.easing || "swing";
        a.container = a.container || this.parent().attr("id");
        a.killSwitch = a.killSwitch || "killSwitch";
        a.onText = a.onText || "Turn Slide Off";
        a.offText = a.offText || "Turn Slide On";
        a.delay = a.delay || 0;
        this.each(function () {
            new b.scrollFollow(this, a)
        });
        return this
    }
})(jQuery);


// ===== basic settings ===== //
jQuery.extend( jQuery.easing, {
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	}
});

(function() {
	jQuery.fn.initRollOverImages = function(config){
		// define class="rollover"
		var image_cache = new Object();
		jQuery("a.rollover img, img.rollover, input.rollover").each(function(i) {
			var imgsrc = this.src;
			var dot = this.src.lastIndexOf('.');
			var imgsrc_on = this.src.substr(0, dot) + '-on' + this.src.substr(dot, 4);
			image_cache[this.src] = new Image();
			image_cache[this.src].src = imgsrc_on;
			jQuery(this).hover(
				function() { this.src = imgsrc_on; },
				function() { this.src = imgsrc; }
			);
		});
	}

	jQuery.fn.initBrightOverImages = function(config){
		// define class="brightover"
		jQuery("a.brightover img, img.brightover, input.brightover").each(function(i) {
			jQuery(this).hover(
				function() {
					jQuery(this).stop();
					jQuery(this).animate({ opacity: 0.70 }, 100);
				},
				function() {
					jQuery(this).stop();
					jQuery(this).animate({ opacity: 1.0 }, 100);
				}
			);
		});
	}

	jQuery.fn.initGlobalNavi = function(config) {
		var globalNaviPositions = {
			"/service/": "#gnav-about_service a",
			"/case_study/": "#gnav-case_studies a"
		};
		var gnaviList = $("#grandnav");

		var url = location.href;
		if (url.match(/^http/)) {
			url = url.replace(/https?\:\/\/[^\/]+/,"");
		}
		for (var gnavi in globalNaviPositions) {
			var re = new RegExp("^" + gnavi);
			if (url.match(re)) {
				var target = $("img", globalNaviPositions[gnavi]);
				gnaviList.addClass("open-" + gnavi);
				var dot = target.attr("src").lastIndexOf('.');
				var imgsrc_act = target.attr("src").substr(0, dot) + '-act' + target.attr("src").substr(dot, 4);
				target.attr("src", imgsrc_act);
				target.unbind('mouseenter mouseleave');
			}
		}
	}

	jQuery.fn.initServiceNavi = function(config) {
		var faqBlocks = {
			"/service/network/": "#subnav-faq-network",
			"/service/internet/": "#subnav-faq-internet",
			"/service/solution/": "#subnav-faq-solution",
			"/service/datacenter/": "#subnav-faq-datacenter",
			"/service/cloud/": "#subnav-faq-cloud"
		};

		var url = location.href;
		var urlAlt;
		if (url.match(/^http/)) {
			url = url.replace(/https?\:\/\/[^\/]+/,"");
		}
		if (url.match(/[\?#]/)) {
			url = url.split(/[\?#]/)[0];
		}
		if (url.match(/\.html$/)) {
			if (url.match(/index\.html$/)) {
				url = url.replace(/index\.html$/,"");
			} else {
				urlAlt = url.replace(/\/[^\.\/]+?\.html$/,"/");
			}
		}
		var breadcrumbList = $(".breadcrumb").children();

		var accordionGroup = $(".subnav-service .accordionGroup");
		accordionGroup.each(function() {
			var flagShowingGroup = false;
			var links = $(this).find("a");
			var linkTarget;
			links.each(function() {
				var linkText = this.href;
				if (linkText.match(/^http/)) {
					linkText = linkText.replace(/https?\:\/\/[^\/]+/,"");
				}
				if (linkText.match(/[\?#].+/)) {
					linkText = linkText.split(/[\?#]/)[0];
				}
				if (url ===linkText) {
					flagShowingGroup = true;
					linkTarget = $(this);
					linkTarget.addClass("current");
					var linkTargetImage = linkTarget.find("img");
					if (linkTargetImage.length) {
						var dot = linkTargetImage.attr("src").lastIndexOf('.');
						var imgsrc_on = linkTargetImage.attr("src").substr(0, dot) + '-on' + linkTargetImage.attr("src").substr(dot, 4);
						linkTargetImage.unbind("mouseenter mouseleave");
						linkTargetImage.attr("src", imgsrc_on);
					}
				}
			});
			if (!flagShowingGroup) {
				links.each(function() {
					var linkText = this.href;
					if (linkText.match(/^http/)) {
						linkText = linkText.replace(/https?\:\/\/[^\/]+/,"");
					}
					if (linkText.match(/[\?#].+/)) {
						linkText = linkText.split(/[\?#]/)[0];
					}
					if (linkText.split("/").length >= 5 && url.match(linkText)) {
						flagShowingGroup = true;
						linkTarget = $(this);
						linkTarget.addClass("current");
						var linkTargetImage = linkTarget.find("img");
						if (linkTargetImage.length) {
							var dot = linkTargetImage.attr("src").lastIndexOf('.');
							var imgsrc_on = linkTargetImage.attr("src").substr(0, dot) + '-on' + linkTargetImage.attr("src").substr(dot, 4);
							linkTargetImage.unbind("mouseenter mouseleave");
							linkTargetImage.attr("src", imgsrc_on);
						}
					}
				});
			}
			if (3 <= breadcrumbList.length && breadcrumbList.length <= 6) {
				$(".text-list", this).hide();
				if (flagShowingGroup) {
					linkTarget.parents(".text-list").show();
				}
				if (!flagShowingGroup) {
					$(".accordionBlock", this).hide();
				}
				if (flagShowingGroup && breadcrumbList.length === 3) {
					linkTarget.parents(".category-list").find(".text-list").show();
				}
			}
		});

		// subnav faq block
		for (var i in faqBlocks) {
			var re = new RegExp("^" + i);
			if (url.match(re)) {
				$(faqBlocks[i]).show();
			} else {
				$(faqBlocks[i]).hide();
			}
		}
	}

	jQuery.fn.initOtherNavi = function(config) {
		var naviOther = $(".subnav .subnav-other");
		var url = location.href;
		if (url.match(/^http/)) {
			url = url.replace(/https?\:\/\/[^\/]+/,"");
		}
		if (url.match(/[\?#]/)) {
			url = url.split(/[\?#]/)[0];
		}
		if (url.match(/\.html$/)) {
			if (url.match(/index\.html$/)) {
				url = url.replace(/index\.html$/,"");
			}
		}

		var links = naviOther.find("a");
		var linkTarget;
		links.each(function() {
			var linkText = this.href;
			if (linkText.match(/^http/)) {
				linkText = linkText.replace(/https?\:\/\/[^\/]+/,"");
			}
			if (linkText.match(/[\?#].+/)) {
				linkText = linkText.split(/[\?#]/)[0];
			}
			if (url ===linkText) {
				$(this).addClass("current");
				var linkTargetImage = $(this).find("img");
				if (linkTargetImage.length) {
					var dot = linkTargetImage.attr("src").lastIndexOf('.');
					var imgsrc_on = linkTargetImage.attr("src").substr(0, dot) + '-on' + linkTargetImage.attr("src").substr(dot, 4);
					linkTargetImage.unbind("mouseenter mouseleave");
					linkTargetImage.attr("src", imgsrc_on);
				}
			}
		});
	}

//検索BOX
	jQuery.fn.initSearch = function(config){
		jQuery("#search_input").blur( function() {
			if($(this).val() == '') {
				$(this).css("background-image","url('/common/images/bg-search.gif')");
			}else{
				$(this).css("background-image","none");
			}
		});
		jQuery("#search_input").focus( function() {
			$(this).css({
				"background-image":"none",
				"background-color":"#fff"
			})
		});
	}

//開閉
	jQuery.fn.initAccordion = function(config){
		var image_cache = new Object();
		jQuery(".accordionGroup").each(function(){
			var accordionBtn = $(this).children(".accordionBtn");
			var accordionBtnImage = accordionBtn.find("img");
			var imgsrc = accordionBtn.find("img").attr("src");
			var dot = imgsrc.lastIndexOf('.');
			var imgsrc_on = imgsrc.substr(0, dot) + '-on' + imgsrc.substr(dot, 4);
			var imgsrc_act = imgsrc.substr(0, dot) + '-act' + imgsrc.substr(dot, 4);
			var imgsrc_act_on = imgsrc.substr(0, dot) + '-act-on' + imgsrc.substr(dot, 4);
			image_cache[imgsrc_on] = new Image();
			image_cache[imgsrc_on].src = imgsrc_on;
			image_cache[imgsrc_act] = new Image();
			image_cache[imgsrc_act].src = imgsrc_act;
			image_cache[imgsrc_act_on] = new Image();
			image_cache[imgsrc_act_on].src = imgsrc_act_on;
			var accordionBlock = $(this).children(".accordionBlock");
			var flag = false;
			if (accordionBtn.hasClass("open")) {
				jQuery(accordionBlock).slideToggle();
				flag = true;
			}
			if (accordionBlock.css("display") === "block") {
				flag = true;
			}
			if (flag) {
				accordionBtnImage.attr("src", imgsrc_act);
			}
			jQuery(accordionBtn).click(function () {
				jQuery(accordionBlock).slideToggle();
				if (flag) {
					$(this).removeClass("open");
					accordionBtnImage.attr("src", imgsrc_on);
					flag = false;
				} else {
					$(this).addClass("open");
					accordionBtnImage.attr("src", imgsrc_act_on);
					flag = true;
				}
				return false;
			});
			jQuery(accordionBtn).hover(function() {
				if (flag) {
					accordionBtnImage.attr("src", imgsrc_act_on);
				} else {
					accordionBtnImage.attr("src", imgsrc_on);
				}
			}, function() {
				if (flag) {
					accordionBtnImage.attr("src", imgsrc_act);
				} else {
					accordionBtnImage.attr("src", imgsrc);
				}
			});
		});
	}

//追従
	jQuery.fn.initFixed = function(config){
		$(".subnav-contact").scrollFollow({
			container: 'pagebody',
			easing: "easeOutQuad",
			speed: 800
		});
	}

	jQuery.fn.initSmoothScroll = function(config){
		$('a[href^=#]').not(".subnav a").click(function() {
			if (!$(this).hasClass("no-smoothscroll")) {
				var speed = 600;
				var href= $(this).attr("href");
				var target = $(href == "#" || href == "" ? 'html' : href);
				var position = target.offset().top;
				$($.browser.safari ? 'body' : 'html').animate({scrollTop:position}, speed, 'easeOutExpo');
				return false;
			}
		});
	}
})(jQuery);




jQuery(document).ready(function() {
	jQuery(document).initRollOverImages();
	jQuery(document).initBrightOverImages();
	jQuery(document).initGlobalNavi();
	jQuery(document).initServiceNavi();
	jQuery(document).initOtherNavi();
	jQuery(document).initSearch();
	jQuery(document).initAccordion();
	jQuery(document).initFixed();
	jQuery(document).initSmoothScroll();
});

