/*
SimpleLib & plugins

accordion,
button,
scroll

*/

/*
 * SimpleLib with jQuery
 *
 * http://lab.starryworks.jp/js/simplelib/
 *
 * Copyright (c) 2009 STARRYWORKS inc.
 * http://www.starryworks.co.jp/
 *
 * Licensed under MIT lisence;
 *
 a.css({top:c.top+"px",left:c.left+"px"});
 */
 
 var SimpleLib=SimpleLib||{},SimpleLibSettings=SimpleLibSettings||{};
SimpleLib=$.extend(true,{debug:false,loaded:false,numPlubinsToLoad:0,numPluginsLoaded:0,numPluginsWaitingForInit:0,_pluginsLoadStarted:{},_eventListeners:{},_onceEventListeners:{},_eventsOnceTriggered:{},jsDir:$("script[src*='simplelib.js'],script[src*='simplelib.min.js']").attr("src").replace(/simplelib\.(min\.)?js.*?$/,""),containsInArray:function(a,b){for(var c in b)if(b.hasOwnProperty(c)&&b[c]===a)return true;return false},queryToArray:function(a){var b=[];a=String(a).split("?");if(!a||a.length<
2||!a[1])return b;a=String(a[1]).split(",");$.each(a,function(){this&&b.push(String(this))});return b},isIE:function(){return navigator.userAgent.indexOf("MSIE 6.0")!=-1},isIE6:function(){return false},loadCSS:function(a){SimpleLib.isIE()?document.createStyleSheet(a):$("head").append('<link rel="stylesheet" type="text/css" href="'+a+'" />')},loadJS:function(a){$.ajax({type:"GET",url:a,dataType:"script",success:SimpleLib._sccess,error:SimpleLib._loadError})},init:function(a,b){if(a){b=b||{};if(SimpleLib.jsDir==
"")SimpleLib.jsDir="./";var c,d,e=a.length;for(c=0;c<e;c++)if(!(a[c].substr(0,3)=="ie6"&&!SimpleLib.isIE6()&&!SimpleLib.debug)){d=b[a[c]]||{};SimpleLib[a[c]]=SimpleLib[a[c]]||{};if(SimpleLib[a[c]].settings)d=$.extend(SimpleLib[a[c]].settings,d);SimpleLib[a[c]].settings=d;if(!SimpleLib[a[c]]||!SimpleLib[a[c]].init)SimpleLib.load(a[c])}}},trigger:function(a){SimpleLib._eventsOnceTriggered[a]=true;if(SimpleLib._eventListeners[a])for(var b in SimpleLib._eventListeners[a])SimpleLib._eventListeners[a][b]();
if(SimpleLib._onceEventListeners[a]){for(b in SimpleLib._onceEventListeners[a])SimpleLib._onceEventListeners[a][b]();SimpleLib._onceEventListeners[a]=null}},bind:function(a,b,c){if(c)if(SimpleLib._eventsOnceTriggered[a])b();else{SimpleLib._onceEventListeners[a]||(SimpleLib._onceEventListeners[a]=[]);SimpleLib._onceEventListeners[a].push(b)}else{SimpleLib._eventListeners[a]||(SimpleLib._eventListeners[a]=[]);SimpleLib._eventListeners[a].push(b)}},unbind:function(a,b){if(SimpleLib._eventListeners[a])if(b==
null)SimpleLib._eventListeners[a]=null;else{var c=SimpleLib._eventListeners[a].length;for(i=c;i>=0;i--)SimpleLib._eventListeners[a][i]==b&&SimpleLib._eventListeners[a].splice(i,1);for(i=c=SimpleLib._onceEventListeners[a].length;i>=0;i--)SimpleLib._onceEventListeners[a][i]==b&&SimpleLib._onceEventListeners[a].splice(i,1)}},load:function(a){if(!SimpleLib._pluginsLoadStarted[a]){var b=SimpleLib.jsDir+"plugins/"+a+".js";SimpleLib.numPlubinsToLoad++;SimpleLib._pluginsLoadStarted[a]=true;SimpleLib.loadJS(b)}},
_sccess:function(){SimpleLib._loaded()},_loaded:function(){SimpleLib.numPluginsLoaded++;if(SimpleLib.numPluginsLoaded>=SimpleLib.numPlubinsToLoad){SimpleLib.loaded=true;SimpleLib.trigger("load");SimpleLib.numPluginsWaitingForInit<=0&&SimpleLib.trigger("init")}},_loadError:function(){SimpleLib.debug&&alert("Load error.");SimpleLib._loaded()},setup:function(){var a=SimpleLib.queryToArray($("script[src*='simplelib.js']").attr("src"));a.length&&SimpleLib.init(a,SimpleLibSettings)},extend:function(a,b){if(typeof SimpleLib[a]==
"undefined")SimpleLib[a]={};SimpleLib[a]=$.extend(true,b,SimpleLib[a]);SimpleLib.trigger("load_"+a);if(SimpleLib[a].dependsOn){SimpleLib.numPluginsWaitingForInit++;var c,d;for(d in SimpleLib[a].dependsOn){c=SimpleLib[a].dependsOn[d];SimpleLib.bind("init_"+c,function(){for(var e in SimpleLib[a].dependsOn)if(!SimpleLib[SimpleLib[a].dependsOn[e]].ready)return;SimpleLib.numPluginsWaitingForInit--;SimpleLib._initPlugin(a)},true);SimpleLib.load(c)}}else SimpleLib._initPlugin(a)},_initPlugin:function(a){typeof SimpleLib[a].init==
"function"&&SimpleLib[a].init();SimpleLib[a].ready=true;SimpleLib.trigger("init_"+a);SimpleLib.loaded&&SimpleLib.numPluginsWaitingForInit<=0&&SimpleLib.trigger("init")}},SimpleLib);

$.fn.simpleScroll=function(c){var d=$.extend(true,{time:600},c);$(this).click(function(){var a=$(this).attr("href"),b=0;if(a!="#")b=$(a).offset().top;$("html,body").animate({scrollTop:b},d.time);return false});return this};/* SimpleLib Plugin */SimpleLib&&SimpleLib.extend("scroll",{settings:{selector:".scroll"},init:function(){$(function(){$(SimpleLib.scroll.settings.selector).simpleScroll(SimpleLib.scroll.settings)})}});
(function(e){var x=navigator.userAgent.indexOf("MSIE 6.0")!=-1,p={over:function(){e(this).button("over")},out:function(){e(this).button("out")},down:function(){e(this).button("down")},up:function(){e(this).button("up")}},l;e.fn.button=function(){function q(a){var c=a.data("button_options"),d=a.hasClass("selected");r(a);if(!s(a))return false;var b;if(d&&c.enableMouseEventsSelected||!d&&c.enableMouseEvents)for(b in h)c[h[b]]&&t(a,h[b])&&a.bind(u[h[b]],p[h[b]])}function s(a){var c=a.data("button_options"),d=j(a);if(d.length<=0)return false;if(d.data("button_default")&&d.data("button_selected"))return true;var b=d.attr("src");b=b.replace(l,".$2").replace(l,".$2");var g=b.replace(/\.([a-zA-Z0-9]+)$/,c.postfix.selected+".$1"),f=b.match(/\.png$/)!="";d.data("isPNG",f);d.data("button_default",b);d.data("button_selected",g);f=a.hasClass("selected");d.attr("src",f?g:b);if(!c||c.selected){e("<img />").attr("src",b);e("<img />").attr("src",g)}if(c.fade&&a.is("a")&&!a.find("img.buttonFade").length){d.css("position");a=e('<img width="'+d.width()+'" height="'+d.height()+'" class="buttonFade" />');d.before(a);a.css({position:"absolute",display:"none"});d.data("$button_fade",a)}return true}function t(a,c){var d=a.hasClass("selected"),b=a.data("button_options");if(d&&!b.enableMouseEventsSelected||!d&&!b.enableMouseEvents)return false;if(!s(a))return false;b=a.data("button_options");if(!b||!b[c]||!b.postfix||!b.postfix.hasOwnProperty(c))return false;var g="button_"+c,f=j(a);if(!(f.length<=0)){if(f.data(g))return true;d=a.hasClass("selected");var m=f.data("button_default").replace(/\.([a-zA-Z0-9]+)$/,b.postfix[c]+".$1"),n=f.data("button_selected").replace(/\.([a-zA-Z0-9]+)$/,b.postfix[c]+".$1");f.data(g,d?n:m);m!=f.data("button_default")&&e("<img />").attr("src",m);b.selected&&b.enableMouseEventsSelected&&n!=f.data("button_selected")&&e("<img />").attr("src",n);return true}}function j(a){if(a.data("$button_img"))return a.data("$button_img");var c=a.children("img");if(!c.length&&a.attr("src"))c=a;a.data("$button_img",c);return c}function r(a){var c=j(a),d=c.data("button_default");d&&c.attr("src",d);for(var b in h){c.data("button_"+h[b],"");a.unbind(u[h[b]],p[h[b]])}c.data("button_selected","");c.data("button_default","");a.data("button_status","");a.find("img.buttonFade").remove()}var u={over:"mouseenter",out:"mouseleave",down:"mousedown",up:"mouseup"},h=["over","out","down","up"];if(arguments.length>0&&(typeof arguments[0]=="string"||arguments[0]instanceof String)){var i=arguments[0];if(i=="selected")if(arguments.length>1){var v=arguments[1];return e(this).each(function(){var a=e(this),c=v=="toggle"?!e(this).hasClass("selected"):v,d=a.hasClass("selected");if(d!=c){(d=c)?a.addClass("selected"):a.removeClass("selected");q(a)}})}else return e(this).hasClass("selected");else return i=="clear"?e(this).each(function(){r(e(this))}):e(this).each(function(){var a=e(this),c=a.data("button_status");if(c!=i){c&&a.removeClass(c);a.data("button_status",i);if(t(a,i)){var d="button_"+i,b=j(a),g=a.data("button_options"),f=b.data("isPNG");if(g.fade&&a.is("a")&&a.find("img.buttonFade").length&&(!x||!f))if(g.postfix[i]){b.attr("src",b.data("button_"+c));a=b.data("$button_fade");c=b.offset();a.attr("src",b.data(d));a.stop(true,true).fadeIn(g.fadeTime)}else{a=b.data("$button_fade");b.attr("src",b.data(d));a.stop(true,true).fadeOut(g.fadeTime)}else b.attr("src",b.data(d))}}})}i_options=arguments.length&&typeof arguments[0]!="String">0?arguments[0]:{};var k=e.extend(true,{over:true,out:true,down:false,up:false,selected:false,enableMouseEvents:true,enableMouseEventsSelected:true,postfix:{over:"-over",out:"",down:"-down",up:"",selected:"-selected"},fade:true,fadeTime:300},i_options),w=[],o;for(o in k.postfix)k.postfix[o]&&w.push(k.postfix[o]);l=RegExp("("+w.join("|")+").([a-zA-Z0-9]+)$","g");e(this).data("button_options",k);return e(this).each(function(){q(e(this))})}})(jQuery);/* SimpleLib Plugin */SimpleLib&&SimpleLib.extend("button",{settings:{buttonSelector:"a.button, input.button",rollOverSelector:"a.rollover, a.rollOver, input.rollover, input.rollOver"},init:function(){var a=SimpleLib.button.settings.fade,b=SimpleLib.button.settings.fadeTime;$(function(){$(SimpleLib.button.settings.buttonSelector).button({over:true,down:true,up:true,fade:a,fadeTime:b});$(SimpleLib.button.settings.rollOverSelector).button({over:true,down:false,up:false,fade:a,fadeTime:b})})}});
(function(a){a.fn.simpleAccordion=function(h){var b=a.extend(true,{selector:".accordion",handleSelector:".handle",selectedClass:"selected",time:600},h);a(this).each(function(){var d=a(this),e=[];d.find(b.handleSelector).each(function(){a(this).parents(b.selector).get(0)==d.get(0)&&e.push(this)});var f=a(e);f.each(function(){var c,g=a(this).attr("href");c=g=="#"?a(this).next():a(g);a(this).data("slave",c);a(this).hasClass(b.selectedClass)||c.hide();a(this).click(function(){if(a(this).hasClass(b.selectedClass)){c.css("height","auto").slideUp(b.time);a(this).removeClass(b.selectedClass)}else{c.show().css("height","auto").height(c.height()).hide().slideDown(b.time);f.each(function(){if(a(this).hasClass(b.selectedClass)){a(this).removeClass(b.selectedClass);a(this).data("slave").slideUp(b.time)}});a(this).addClass(b.selectedClass)}return false})})});return this}})(jQuery);/* SimpleLib Plugin */SimpleLib&&SimpleLib.extend("accordion",{settings:{selector:".accordion"},init:function(){$(function(){$(SimpleLib.accordion.settings.selector).simpleAccordion(SimpleLib.accordion.settings)})}});


/*SimpleLib SetUp*/
SimpleLib.setup();
