(function (){
	var $, global_name = 'ko_xmas_blogparts';
	startKoXmas().write();
	
	
	function startKoXmas() {
		var blogPartsFQDN = "http://www.cocacola.co.jp/";
		var blogPartsDir = "blogparts/ko/xmas/";
		
		//var blogPartsFQDN = "";
		//var blogPartsDir = "";
		
		var bodyGC = document['CSS1Compat' == document.compatMode ? 'documentElement' : 'body'];
		var baseName = global_name + new Date().getTime();
		//ブログパーツ
		var blogPartsUrl = blogPartsFQDN + blogPartsDir + 'blogparts.swf';
		var blogPartsWidth = '150';
		var blogPartsHeight = '323';
		var blogPartsId = 'small_' + baseName;
		var blogPartsDivId = "small_div_" + baseName;
		//フルフラッシュ
		var fullUrl = blogPartsFQDN + blogPartsDir + 'full.swf';
		var fullWidth = '100%';
		var fullHeight = '100%';
		var fullPartsId = 'full_' + baseName;
		var fullPartsDivId = "full_div_" + baseName;
		
		var flashPlayerVersion = 9
		var browser = checkBrowser();
		
		var resizeFlg = false;
		var flashvars = 'swfName=' + baseName
		
		var settings = {}
		var self = {'settings' : settings};
		
		self.write = function(){
			var flg = self.playerCheck();
			if(flg == true){
				var smallhtml = "";	
				smallhtml += '<div id="' + blogPartsDivId + '">';
				smallhtml += '</div>';
				document.write(smallhtml);
				//self.smallSwfWrite();
				self.loadCheck();
			}
		};
		
		self.loadCheck = function(){
			if(document.addEventListener){ // Mozilla/Opera9
				document.addEventListener("DOMKOCHContentLoaded", self.complete, false);
			}
			if(navigator.userAgent.match(/webkit|safari|khtml/i)){// Safari
				var _timer = setInterval(function(){
					if(document.readyState.match(/loaded|complete/)){
						self.complete();
						if(typeof _timer != 'undefined'){
							clearInterval(_timer);
							_timer = null;
						}
					}
				}, 50);
			}
			self.addEvent(window, "load", self.complete);
			//ロードチェック
		}
		
		self.complete = function(){
			if(arguments.callee.done) return;
			arguments.callee.done = true;
			self.onload();
		}
		
		//
		self.onload = function(){
			self.smallSwfWrite();
			self.fullSwfWrite();
		}
		
		self.getZIndex = function(){
			var elems = document.getElementsByTagName("*");
			var largeZ = 0;
			for(var i=0; i<elems.length; i++){
				var elem = elems[i];
				var zIndex = self.getStyle(elem, "z-index");
				if(zIndex != "auto"){
					zIndex = Number(zIndex);
					if(zIndex > largeZ){
						largeZ = zIndex;
					}
				}
			}
			return largeZ
		}
		
		self.getStyle = function( ele, property, pseudo ) {  
		    if( ele.currentStyle ) { //IE or Opera  
		        if( property.indexOf( '-' ) != -1 ) property = property.camelize();  
		            return ele.currentStyle[ property ];  
		    } else if ( getComputedStyle ) { //Mozilla or Opera  
		        if( property.indexOf( '-' ) == -1 ) property = property.deCamelize();  
		        return document.defaultView.getComputedStyle( ele, pseudo ).getPropertyValue( property );  
		    }  
		    return '';  
		}
		
		String.prototype.camelize = function() {  
		    return this.replace( /-([a-z])/g,  
		    function( $0, $1 ) { return $1.toUpperCase() } );  
		}  
		  
		String.prototype.deCamelize = function( ) {  
		    return this.replace( /[A-Z]/g,  
		    function( $0 ) { return "-" + $0.toLowerCase( ) } );  
		}
		
		self.setPos = function() {
			var swfID = document.getElementById(fullPartsDivId);
			var xx;
			var yy;
			
			if(browser == "MSIE"){
				xx = 0;
				yy = bodyGC.scrollTop;
			}else{
				yy = pageYOffset;
			}
			swfID.style.left = 0 + 'px';
			swfID.style.top = yy + 'px';
		}
		
		self.setResize = function() {
			var swfID = document.getElementById(fullPartsDivId);
			var ww;
			var hh;
			
			if((browser == "MSIE") || (browser == "FIREFOX")){
				hh = bodyGC.clientHeight;
				ww = bodyGC.clientWidth;
			}else {
				hh = window.innerHeight;
				ww = window.innerWidth;
			}
			
			swfID.style.height = hh + 'px';
			swfID.style.width = ww + 'px';
		}
		
		self.startJack = function(str){
			self.setResize();
			resizeFlg = true;
			setTimeout(self.startComplete,1000);
			return '';
		}
		
		self.startComplete = function(){
			self.swfName(fullPartsId).openComplete();
		}
		
		self.endJack = function(){
			var swfID = document.getElementById(fullPartsDivId);
			swfID.style.height = "0px";
			swfID.style.width = "0px";
			resizeFlg = false;
			self.swfName(blogPartsId).closeComplete();
		}
		
		self.smallSwfWrite = function(){
			var smallhtml = "";	
			//smallhtml += '<div id="' + blogPartsDivId + '">';
			smallhtml += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' +blogPartsWidth + '" height="' + blogPartsHeight + '" id="' + blogPartsId + '" align="middle">'
			smallhtml += '<param name="wmode" value="transparent">'
			smallhtml += '<param name="movie" value="'+ blogPartsUrl +'" />'
			smallhtml += '<param name="quality" value="high" />'
			smallhtml += '<param name="allowScriptAccess" value="always" />'
			smallhtml += '<param name="FlashVars" value="'+flashvars+'">'
			smallhtml += '<embed src="'+ blogPartsUrl+ '" FlashVars="' + flashvars + '" quality="high" bgcolor="#ffffff" width="' +blogPartsWidth + '" height="' + blogPartsHeight + '" name="' + blogPartsId + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" FlashVars="'+flashvars+'"/>'
			smallhtml += '</object>'
			//smallhtml += '</div>';
			//document.write(smallhtml);
			document.getElementById(blogPartsDivId).innerHTML = smallhtml;
		}
		
		self.fullSwfWrite = function(){
			var oLayer = document.createElement('div');
			oLayer.setAttribute('id', fullPartsDivId);
			oLayer.style.position = 'absolute';
			oLayer.style.zIndex = self.getZIndex() + 1000;
			oLayer.style.width = '0px';
			oLayer.style.height = '0px';
			document.body.appendChild(oLayer);
			
			var fullhtml = '';
			fullhtml += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' +fullWidth + '" height="' + fullHeight + '" id="' + fullPartsId + '" align="middle">'
			fullhtml += '<param name="wmode" value="transparent">'
			fullhtml += '<param name="movie" value="'+ fullUrl +'" />'
			fullhtml += '<param name="quality" value="high" />'
			fullhtml += '<param name="allowScriptAccess" value="always" />'
			fullhtml += '<param name="FlashVars" value="'+flashvars+'">'
			fullhtml += '<embed src="'+ fullUrl+'" FlashVars="' + flashvars + '" quality="high" bgcolor="#ffffff" width="' +fullWidth + '" height="' + fullHeight + '" name="' + fullPartsId + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" FlashVars="'+flashvars+'"/>'
			fullhtml += '</object>'
			document.getElementById(fullPartsDivId).innerHTML = fullhtml;
			
			
			window.onresize = function(){
				if(resizeFlg == true){
					self.setResize();
				}
			}
			window.onscroll = function(){
				self.setPos();
			}
			self.setPos();
		}
		
		self.swfName = function(str){
			
			if (navigator.appName.indexOf("Microsoft") != -1) {
				return window[str];
			}else {
				return document[str];
				
			}
		}
		
		self.addEvent= function(elm, evType, fn, useCapture) {
			if (elm.addEventListener) {
				elm.addEventListener(evType, fn, useCapture);
				return true;
			}
			else if (elm.attachEvent) {
				var r = elm.attachEvent('on' + evType, fn);
				return r;
			}
			else {
				elm['on' + evType] = fn;
			}
		}
		
		self.playerCheck = function(){
			var flg = false;
			
			if(navigator.plugins &&navigator.mimeTypes['application/x-shockwave-flash']){
				var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin
				var flashplayer_ver = parseInt(plugin.description.match(/\d+\.\d+/));
			}else{
				var flashOCX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").match(/([0-9]+)/);
				var flashplayer_ver = parseInt(flashOCX[0]);
			}
			if(flashplayer_ver >= flashPlayerVersion){
				flg = true;
			}
			return flg
		}
		
		return window[baseName] = self;
	}
	
	function checkBrowser(){
		var uName = navigator.userAgent;
		if (uName.indexOf("Safari") > -1) return "Safari";
		if (uName.indexOf("MSIE") > -1) return "MSIE";
		if (uName.indexOf("Firefox") > -1) return "FIREFOX";
		if (uName.indexOf("Opera") > -1) return "OPERA";
		return "Netscape";
	}
	
	
})();

