/*@cc_on _d=document;eval('var document=_d')@*/

var contentsRoot = 'http://www.relish-style.net/campaign/blogparts/';
var DEBUG = false;
document.write('<script type="text/javascript" src="' + contentsRoot + 'js/JavaScriptFlashGateway.js"></script>');
document.write('<script type="text/javascript" src="' + contentsRoot + 'js/swfobject.js"></script>');
document.write('<script type="text/javascript" src="' + contentsRoot + 'js/ColorChange.js"></script>');
document.write('<script type="text/javascript" src="' + contentsRoot + 'js/Inspect.js"></script>');



relishCcInit = function(_w, _h, _quickstart){
	//	--------------------------------------------------------------------------------------//
	//		* Setup
	//	--------------------------------------------------------------------------------------//
	var projectName = 'relish';
	//	--------------------------------------------------------------------------------------//
	//		Options
	//	--------------------------------------------------------------------------------------//
	//	Global options
	var bHideScrollBar = true;
	var bHideScrollBar_excludeFirefox = false;

	//	Blogparts options
	var blogpartsName = 'blogparts';
	var blogpartsAfterName = 'blogparts_after';
	var bSingleSWF = true;
	var bTransparentBlogparts = false;
	var blogpartsBackgroundColor = '#FFFFFF';

	//	Fullscreen options
	var fullscreenSWFName = 'fullscreen';
	var fullscreenContainerDepth = '10001';
	//	--------------------------------------------------------------------------------------//
	//		UNIQUE
	//	--------------------------------------------------------------------------------------//
	var uniqe = new Date().getTime();

	this[projectName + '_' + _w] = new Object();
	var relish_prop = this[projectName + '_' + _w];
	relish_prop.objectName = projectName + '_' + _w;
	relish_prop.DEBUG = DEBUG;
	
	relish_prop.contentsRoot = contentsRoot;
	relish_prop.bHideScrollBar = bHideScrollBar;
	relish_prop.bHideScrollBar_excludeFirefox = bHideScrollBar_excludeFirefox;
	relish_prop.blogpartsBackgroundColor = blogpartsBackgroundColor;
	relish_prop.bTransparent = bTransparentBlogparts;
	relish_prop.bSingleSWF = bSingleSWF;
	relish_prop.fullscreenContainerDepth = fullscreenContainerDepth;
	//	--------------------------------------------------------------------------------------//
	//		PROXY
	//	--------------------------------------------------------------------------------------//	
	//	Project name
	relish_prop.projectName = projectName;

	//	BlogParts swf name
	relish_prop.blogpartsName = blogpartsName;
	relish_prop.blogpartsAfterName = blogpartsAfterName;
	
	//	Blogparts id
	relish_prop.blogpartsID = relish_prop.projectName + '_' + relish_prop.blogpartsName + '_' + _w;
	var blogpartsContianer = document.getElementById( relish_prop.blogpartsID );
	blogpartsContianer.style.width = _w + "px";
	blogpartsContianer.style.height = _h + "px";

	//	Blogparts name full (blogparts_suffix.swf)
	if (relish_prop.bSingleSWF) {
		relish_prop.blogpartsNameFull = relish_prop.blogpartsName + '.swf';
	}
	else {
		relish_prop.blogpartsNameFull = relish_prop.blogpartsName + '_' + _w + '.swf';
	}
	//	Blogparts unique
	relish_prop.blogpartsUnique = relish_prop.blogpartsName + '_' + _w + '_' + uniqe;
	//	Blogparts proxy
	relish_prop.pxyBlogparts = new FlashProxy(relish_prop.blogpartsUnique, relish_prop.contentsRoot + 'swf/JavaScriptFlashGateway.swf');

	//	Fullscreen name
	relish_prop.fullscreenName = 'fullscreen';
	//	Fullscreen id
	relish_prop.fullscreenID = relish_prop.projectName + '_' + relish_prop.fullscreenName;
	//	Fullscreen name full (fullscreen.swf)
	relish_prop.fullscreenNameFull = fullscreenSWFName + '.swf';
	//	Fullscreen unique
	relish_prop.fullscreenUnique = relish_prop.fullscreenName + '_' + uniqe;
	//	Fullscreen proxy
	relish_prop.pxyFullscreen = new FlashProxy(relish_prop.fullscreenUnique, relish_prop.contentsRoot + 'swf/JavaScriptFlashGateway.swf');

	relish_prop.otherSwfContainerList = new Array();
	relish_prop.bNotResize = false;
	relish_prop.movieWidth = _w;
	relish_prop.movieHeight = _h;
	relish_prop.bIE = /*@cc_on!@*/ false;
	relish_prop.ua = navigator.userAgent;
	relish_prop.bSafari = (relish_prop.ua.indexOf('Safari') != -1);
	if (relish_prop.ua.indexOf('Windows') > -1) {
		relish_prop.bWin = true;
	}
	if (relish_prop.ua.match(/Gecko/)) {
		if (relish_prop.ua.match(/(Firebird|Firefox)\/([\.\d]+)/)) {
			relish_prop.bFoxy = true;
		}
	}
	if (window.opera) {
		relish_prop.bOpera = true;
	}
	if (relish_prop.bIE && typeof document.body.style.maxHeight != 'undefined') {
		relish_prop.bIE7 = true;
	}
	relish_prop.body = document['CSS1Compat' == document.compatMode ? 'documentElement' : 'body'];
	//	--------------------------------------------------------------------------------------//
	//		ATTACH BLOG PARTS
	//	--------------------------------------------------------------------------------------//
	relish_prop.attachBlogparts = function( isAfter ) {
		this.bBlogpartsAppended = true;
		var htmlBuffer = this.blogpartsID;
		var path = !isAfter ? this.contentsRoot + 'swf/' + this.blogpartsNameFull : this.contentsRoot + 'swf/' + this.blogpartsAfterName;
//		alert( path );
		var so = new SWFObject( path, this.blogpartsID, this.movieWidth, this.movieHeight, '8', this.blogpartsBackgroundColor);
		so.addParam('allowScriptAccess', 'always');
		so.addVariable('lcId', relish_prop.blogpartsUnique);
		so.addVariable('objectName', relish_prop.objectName);
		so.addVariable('jsFullScreenOpenFunctionName', 'f2jsOpenFullscreen');
		so.addVariable('jsScrollFunctionName', 'f2jsScroll')
//		so.addVariable( 'isAfter', isAfter );
		so.addVariable( 'DEBUG', relish_prop.DEBUG );

		so.addVariable('movieWidth', relish_prop.movieWidth);
		if (this.bTransparent) {
			so.addParam('wmode', 'transparent');
		}
		so.addParam('menu', 'false');
		so.write(htmlBuffer);
	}
	//	--------------------------------------------------------------------------------------//
	//		ATTACH FULLSCREEN
	//	--------------------------------------------------------------------------------------//
	relish_prop.attachFullscreen = function(){
		var fullscreenContainer = document.createElement('div');
		fullscreenContainer.setAttribute('id', this.projectName + '_fullscreen');
		fullscreenContainer.style.zIndex = this.fullscreenContainerDepth;
		fullscreenContainer.style.position = 'absolute';
		fullscreenContainer.style.width = this.getWidth() + 'px';
		fullscreenContainer.style.height = this.getHeight() + 'px';
		document.body.appendChild(fullscreenContainer);
		var soMain = new SWFObject(this.contentsRoot + 'swf/' + this.fullscreenNameFull, this.fullscreenName, '100%', '100%', '8', '#000000');
		soMain.addParam('allowScriptAccess', 'always');
		soMain.addParam('wmode', 'transparent');
		soMain.addParam('menu', 'false');
		soMain.addVariable('lcId', relish_prop.fullscreenUnique);
		soMain.addVariable('objectName', relish_prop.objectName);
		soMain.addVariable('jsFullScreenCloseFunctionName', 'f2jsCloseFullscreen');
		soMain.addVariable( 'jsBlogpartsAfterContainerStart', 'jsBlogpartsAfterContainerStart' );
		soMain.addVariable( 'DEBUG', relish_prop.DEBUG );


		fullscreenContainer.innerHTML = soMain.getSWFHTML();
		this.replaceResize();
		if (window.addEventListener) {
			window.addEventListener('resize', this.replaceResize, false);
			window.addEventListener('scroll', this.replaceResize, false);
		}
		if (window.attachEvent) {
			window.attachEvent('onresize', this.replaceResize);
			window.attachEvent('onscroll', this.replaceResize);
		}
	}
	//	--------------------------------------------------------------------------------------//
	//		REMOVE BLOGPARTS
	//	--------------------------------------------------------------------------------------//
	relish_prop.removeBlogparts = function(){
		var blogpartsContainer = document.getElementById( this.blogpartsID );
		if( blogpartsContainer.parentNode.id == this.blogpartsID )
			blogpartsContainer = blogpartsContainer.parentNode;
		while ( blogpartsContainer.firstChild ) {
			blogpartsContainer.removeChild( blogpartsContainer.firstChild );
		}
	}
	//	--------------------------------------------------------------------------------------//
	//		REMOVE FULLSCREEN
	//	--------------------------------------------------------------------------------------//
	relish_prop.removeFullscreen = function(){
		var fullscreenContainer = document.getElementById(this.projectName + '_fullscreen');
		while (fullscreenContainer.firstChild) {
			fullscreenContainer.removeChild(fullscreenContainer.firstChild);
		}
		document.body.removeChild(fullscreenContainer);
	}
	//	--------------------------------------------------------------------------------------//
	//		IN/VISIBLE OTHER OBJECT
	//	--------------------------------------------------------------------------------------//
	relish_prop.hideOther = function(){
		this.hideOtherObject(document.getElementsByTagName('object'));
		this.hideOtherObject(document.getElementsByTagName('embed'));
		this.hideOtherObject(document.getElementsByTagName('select'));
		this.hideOtherObject(document.getElementsByTagName('iframe'));
	}
	//	--------------------------------------------------------------------------------------//
	//		INVISIBLE OTHER OBJECT
	//	--------------------------------------------------------------------------------------//
	relish_prop.hideOtherObject = function(_arg){
		var tmpList = _arg.length;
		for (var i = 0; i < tmpList; i++) {
			if (_arg[i].style.visibility != 'hidden') {
				relish_prop.otherSwfContainerList.push(_arg[i]);
				_arg[i].style.visibility = 'hidden';

			}
		}
	}
	//	--------------------------------------------------------------------------------------//
	//		INVISIBLE OTHER OBJECT
	//	--------------------------------------------------------------------------------------//
	relish_prop.respawnOtherObject = function(){
		for (var i = 0; i < relish_prop.otherSwfContainerList.length; i++) {
			relish_prop.otherSwfContainerList[i].style.visibility = 'visible';
		}
	}
	//	--------------------------------------------------------------------------------------//
	//		blogparts.swf -> JS	( fullscreen.swf Open )
	//	--------------------------------------------------------------------------------------//
	relish_prop.f2jsOpenFullscreen = function(){
//		alert( "here" );
		if (relish_prop.bHideScrollBar) {
			if (!relish_prop.bHideScrollBar_excludeFirefox || !relish_prop.bFoxy) {
				relish_prop.orginalOverHidden = relish_prop.body.style.overflow;
				relish_prop.body.style.overflow = 'hidden';
			}
		}
		relish_prop.hideOther();
		relish_prop.attachFullscreen();

		document.getElementById( relish_prop.blogpartsID ).style.visibility = 'hidden';
		relish_prop.colorful_coordinate( relish_prop.closeFullscreen );
	}

	//	--------------------------------------------------------------------------------------//
	//		JS -> fullscreen.swf	( readyForClose )
	//	--------------------------------------------------------------------------------------//
	relish_prop.closeFullscreen = function() {
//		alert( "relish here" );
		relish_prop.pxyFullscreen.call( 'funcJStoSWFforEnd' );
	}
	//	--------------------------------------------------------------------------------------//
	//		HTML -> JS -> SWF	(Open)
	//	--------------------------------------------------------------------------------------//
//	relish_prop.openFullscreenFromA = function(){
//		relish_prop.pxyBlogparts.call('funcJStoSWF');
//	}
//	--------------------------------------------------------------------------------------//
	//		blogparts.swf -> JS	(scroll)
	//	--------------------------------------------------------------------------------------//
	relish_prop.f2jsScroll = function(){
		if( !relish_prop.ua.match( /.*Firefox\/2.*/ ) )
			relish_prop.scroll( getY( document.getElementsByTagName( "body" )[ 0 ] ), 1500 );
	}
	//	--------------------------------------------------------------------------------------//
	//		fullscreen.swf -> JS	(Close)
	//	--------------------------------------------------------------------------------------//
	relish_prop.f2jsCloseFullscreen = function(){
		if (relish_prop.bHideScrollBar) {
			if (!relish_prop.bHideScrollBar_excludeFirefox || !relish_prop.bFoxy) {
				relish_prop.body.style.overflow = relish_prop.orginalOverHidden;
			}
		}

		relish_prop.respawnOtherObject();
		relish_prop.removeFullscreen();
		relish_prop.removeBlogparts();
		document.getElementById(relish_prop.blogpartsID).style.visibility = 'visible';
		relish_prop.attachBlogparts( true );



		if (window.addEventListener) {
			window.removeEventListener('resize', relish_prop.replaceResize, false);
			window.removeEventListener('resize', relish_prop.replaceResize, false);
		} else if (window.attachEvent) {
			window.detachEvent('onresize', relish_prop.replaceResize);
			window.detachEvent('onscroll', relish_prop.replaceResize);
		}


		if(!relish_prop.bBlogpartsAppended){
			relish_prop.attachBlogparts( true );
		}

//		window.setTimeout( function() {
//			relish_prop.pxyBlogparts.call( 'funcJStoSWFforAfterContainer' );
//		}, 600 );
	}
	//	--------------------------------------------------------------------------------------//
	//		GET SCROLL X
	//	--------------------------------------------------------------------------------------//
	relish_prop.getScrollX = function(){
		var returnVal;
		if (this.bOpera) {
			returnVal = window.pageXOffset;
		}
		else
			if (document.all && document.getElementById && (document.compatMode == 'CSS1Compat')) {
				returnVal = document.documentElement.scrollLeft;
			}
			else
				if (document.all) {
					returnVal = document.body.scrollLeft;
				}
				else
					if (!document.all && (document.layers || document.getElementById)) {
						returnVal = window.pageXOffset;
					}
		return returnVal;
	}
	//	--------------------------------------------------------------------------------------//
	//		GET SCROLL Y
	//	--------------------------------------------------------------------------------------//
	relish_prop.getScrollY = function(){
		var returnVal;
		if (this.bOpera) {
			returnVal = window.pageYOffset;
		}
		else
			if (document.all && document.getElementById && (document.compatMode == 'CSS1Compat')) {
				returnVal = document.documentElement.scrollTop;
			}
			else
				if (document.all) {
					returnVal = document.body.scrollTop;
				}
				else
					if (!document.all && (document.layers || document.getElementById)) {
						returnVal = window.pageYOffset;
					}
		return returnVal;
	}
	//	--------------------------------------------------------------------------------------//
	//		GET WIDTH
	//	--------------------------------------------------------------------------------------//
	relish_prop.getWidth = function(){
		var returnVal;
		if (this.bOpera) {
			returnVal = document.body.clientWidth;
		}
		else
			if (this.bSafari) {
				returnVal = document.body.clientWidth;
			}
			else
				if (document.all && document.getElementById && (document.compatMode == 'CSS1Compat')) {
					returnVal = document.documentElement.clientWidth;
				}
				else
					if (document.all) {
						returnVal = document.body.clientWidth;
					}
					else
						if (!document.all && (document.layers || document.getElementById)) {
							//	後で検証
							//	Foxy用分岐は必要か?
							returnVal = document.body.clientWidth;
						}
		return returnVal;
	}
	//	--------------------------------------------------------------------------------------//
	//		GET HEIGHT
	//	--------------------------------------------------------------------------------------//
	relish_prop.getHeight = function(){
		var returnVal;
		if (this.bOpera) {
			returnVal = document.body.clientHeight;
		}
		else
			if (document.all && document.getElementById && (document.compatMode == 'CSS1Compat')) {
				returnVal = document.documentElement.clientHeight;
			}
			else
				if (document.all) {
					returnVal = document.body.clientHeight;
				}
				else
					if (!document.all && (document.layers || document.getElementById)) {
						returnVal = window.innerHeight;
					}
		return returnVal;
	}
	//	--------------------------------------------------------------------------------------//
	//		RESIZE REPLACE
	//	--------------------------------------------------------------------------------------//
	relish_prop.replaceResize = function(){
		var fullscreenContainer = document.getElementById(relish_prop.projectName + '_fullscreen');
		//		if(fullscreenContainer && !this.bNotResize){
		if (fullscreenContainer) {
			fullscreenContainer.style.top = relish_prop.getScrollY() + 'px';
			fullscreenContainer.style.left = relish_prop.getScrollX() + 'px';
			fullscreenContainer.style.width = relish_prop.getWidth() + 'px';
			fullscreenContainer.style.height = relish_prop.getHeight() + 'px';
		}
	}
	//	--------------------------------------------------------------------------------------//
	//		START
	//	--------------------------------------------------------------------------------------//
	if (_quickstart) {
		QuickstartEvent.domReady.add(function() {
			relish_prop.f2jsOpenFullscreen();
		});

	} else {
		relish_prop.attachBlogparts( false );
	}











	relish_prop.colorful_coordinate = function( callback ){
		var tagNameArray = [ 'SPAN', 'P', 'FONT', 'B', 'BOLD', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'LI', 'TD', 'A' ];
		var inspect = new Inspect();
		inspect.init( document );
		inspect.start( tagNameArray, callback );
	}


	relish_prop.scroll = function( to, duration, callback ) {
		duration = !duration ? 800 : duration;

		var startTime;
		var isIE = /*@cc_on!@*/ false;
		var distance;
		var currentScroll;

		var p = {};
		p.init = function()
		{
			startTime = ( new Date ).valueOf();

			var returnVal;
			if ( window.opera ) {
				from = window.pageYOffset;
			}
			else
				if (document.all && document.getElementById && (document.compatMode == 'CSS1Compat')) {
					from = document.documentElement.scrollTop;
				}
				else
					if (document.all) {
						from = document.body.scrollTop;
					}
					else
						if (!document.all && (document.layers || document.getElementById)) {
							from = window.pageYOffset;
						}

			distance = to - from;
			p.execute();
		};
		p.execute = function()
		{
			var t = p.easeOut( Math.min( 1, ( new Date - startTime )/ duration ) );
			currentScroll = from + distance * t;
			window.scrollTo( 0, currentScroll );

			if(t < 1) {
				window.setTimeout( function(){ p.execute(); }, 10);
			} else {
				if( callback )
					callback();
			}
		};
		p.easeOut = function( t )
		{
			t = -(t-1)*(t-1) + 1;
			return t;
		};
		p.init();
	};

	function getY( e ) {
		var y= 0;
		while( e ) {
			y += e.offsetTop;
			e = e.offsetParent;
		}
		return y;
	};

















}


if (typeof QuickstartEvent == 'undefined') QuickstartEvent = new Object();

QuickstartEvent.domReady = {
  add: function(fn) {
    //-----------------------------------------------------------
    // Already loaded?
    //-----------------------------------------------------------
    if (QuickstartEvent.domReady.loaded) return fn();

    //-----------------------------------------------------------
    // Observers
    //-----------------------------------------------------------
    var observers = QuickstartEvent.domReady.observers;
    if (!observers) observers = QuickstartEvent.domReady.observers = [];
    // Array#push is not supported by Mac IE 5
    observers[observers.length] = fn;

    //-----------------------------------------------------------
    // domReady function
    //-----------------------------------------------------------
    if (QuickstartEvent.domReady.callback) return;
    QuickstartEvent.domReady.callback = function() {
      if (QuickstartEvent.domReady.loaded) return;

      QuickstartEvent.domReady.loaded = true;
      if (QuickstartEvent.domReady.timer) {
        clearInterval(QuickstartEvent.domReady.timer);
        QuickstartEvent.domReady.timer = null;
      }
      var observers = QuickstartEvent.domReady.observers;
      for (var i = 0, length = observers.length; i < length; i++) {
        var fn = observers[i];
        observers[i] = null;
        fn(); // make 'this' as window
      }
      QuickstartEvent.domReady.callback = QuickstartEvent.domReady.observers = null;
    };
    //-----------------------------------------------------------
    // Emulates 'onDOMContentLoaded'
    //-----------------------------------------------------------
    var ie = !!(window.QuickstartEvent && !window.opera);
    var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1;
	if (document.readyState && webkit) {
	  // Safari
		QuickstartEvent.domReady.timer = setInterval(function() {
		    var state = document.readyState;
		    if (state == 'loaded' || state == 'complete') {
		      QuickstartEvent.domReady.callback();
		    }
		  }, 50);
		} else if (document.readyState && ie) {
			// Windows IE
			var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)';
			document.write(
			'<script type="text/javascript" defer="defer" src="' + src + '" ' + 'onreadystatechange="if (this.readyState == \'complete\') QuickstartEvent.domReady.callback();"' + '><\/script>');
		} else {
			if (window.addEventListener) {
				// for Mozilla browsers, Opera 9
				document.addEventListener("DOMContentLoaded", QuickstartEvent.domReady.callback, false);
				// Fail safe
				window.addEventListener("load", QuickstartEvent.domReady.callback, false);
			} else if (window.attachEvent) {
				window.attachEvent('onload', QuickstartEvent.domReady.callback);
			} else {
			// Legacy browsers (e.g. Mac IE 5)
			var fn = window.onload;
				window.onload = function() {
					QuickstartEvent.domReady.callback();
					if (fn) fn();
				}
			}
		}
	}
}