//
// MGS4 BLOG PARTS - SUNNY CAMERA -
//

SNYCAM = {};
SNYCAM.ver        = 8;
SNYCAM.checkTime  = 0;
SNYCAM.lang       = "jp";
SNYCAM.path       = "http://www.konami.jp/mgs4/blog-parts/"
SNYCAM.swf1       = SNYCAM.path + "sunnycamera.swf";
SNYCAM.swf2       = SNYCAM.path + "sunnycamera_view.swf";


SNYCAM.getPageScroll = function (){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {
		yScroll = document.body.scrollTop;
	}

	return new Array('',yScroll) ;
}


SNYCAM.getPageSize = function (){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { 
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { 
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	return new Array(pageWidth,pageHeight,windowWidth,windowHeight,yScroll) ;
}




SNYCAM.getStyleValue = function (tElementId, aCssProperty){


	if(tElementId.currentStyle){
		return tElementId.currentStyle[aCssProperty]; 
	}
	else{
		var style =  document.defaultView.getComputedStyle(tElementId, null);
		return style.getPropertyValue(aCssProperty);
	}

}

SNYCAM.addEvent = function  ( elem, event, func ) {
	if ( elem.addEventListener ) {
		elem.addEventListener( event, func, false );
	} else {
		elem.attachEvent( 'on'+event, func );
	}
}

SNYCAM.makeFlash = function (swffile, w, h, pramObj) {

	var objectParam = embedParam = "";
	var tag = "";
	
	// option attributes
	if (pramObj){
		for (var item in pramObj){
			objectParam += '<PARAM NAME="' + item + '" VALUE="' + pramObj[item] + '">';
			embedParam  += ' ' + item + '=' + '"' + pramObj[item] + '" ';
		}
	}
	// default attributes
	var defObj = {
		allowScriptAccess : "always",
		swLiveConnect     : "true",
		menu              : "false",
		quality           : "high",
		bgcolor           : "#000000",
		scale             : "noscale",
		salign            : "CM",
		wmode             : "transparent"
	}
	
	for (var item in defObj){
		objectParam += '<PARAM NAME="' + item + '" VALUE="' + defObj[item] + '">';
		embedParam  += ' ' + item + '=' + '"' + defObj[item] + '" ';
	}
	
	tag += '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
	tag += ' WIDTH="' +w+ '" HEIGHT="' +h+ '" id="' +pramObj.id+ '" >';
	tag += objectParam;
	tag += '<PARAM NAME=movie VALUE="' +swffile+ '">'; 
	tag += '<EMBED src="' +swffile+ '" ';
	tag += embedParam;
	tag += 'WIDTH="' +w+ '" HEIGHT="' +h+ '" ';
	tag += 'TYPE="application/x-shockwave-flash" >';
	tag += '<\/EMBED>';
	tag += '<\/OBJECT>';
	return tag;
}

SNYCAM.doView = function (movieID){
	
	var isIE = navigator.userAgent.indexOf("MSIE") >= 0 ? true : false;
	
	//Hack <select> for IE
	SNYCAM.selects = [];
	SNYCAM.selects = document.getElementsByTagName("select");
	for (var i=0; i< SNYCAM.selects.length; i++){
		SNYCAM.selects[i].style.display = "none";
	}
	
	//Hack overflow for Firefox
	SNYCAM.overflows = [];
	var tmp = [];
	tmp = document.getElementsByTagName("div");
	for (var i=0; i< tmp.length; i++){
		var overf = SNYCAM.getStyleValue(tmp[i], "overflow");
		if (overf == "auto" || overf == "scroll") {
			SNYCAM.overflows.push(tmp[i]);
			tmp[i].style.overflow = "hidden"
		}
	}
	
	//Hack iframes
	SNYCAM.iframes = [];
	var tmp = [];
	tmp = document.getElementsByTagName("iframe");
	for (var i=0; i< tmp.length; i++){
		SNYCAM.iframes.push(tmp[i]);
		tmp[i].style.visibility = "hidden"
	}
	
	//hide other Flash
	SNYCAM.flashs = [];
	
	var flashObjects = document.getElementsByTagName("object");
	for (var i = 0; i < flashObjects.length; i++) {
		
		var val = flashObjects[i].innerHTML.toLowerCase();
		
		if (!(val.indexOf("opaque")>-1 || val.indexOf("transparent")>-1)){
			flashObjects[i].style.visibility = "hidden";
			SNYCAM.flashs.push(flashObjects[i]);
		}
	}
	

	var flashEmbeds = document.getElementsByTagName("embed");
	for (var i = 0; i < flashEmbeds.length; i++) {
		var wmode = flashEmbeds[i].getAttribute("wmode");
		wmode = wmode ? wmode.toLowerCase() : "";
		if (!(wmode == "opaque" || wmode == "transparent")){
			flashEmbeds[i].style.visibility = "hidden";
			SNYCAM.flashs.push(flashEmbeds[i]);
		}
	}
	
	
	//Make Overray Flash
	var arrayPageSize = SNYCAM.getPageSize();
	var arrayPageScroll = SNYCAM.getPageScroll();
	
	var objBody = document.body;
	var objOverlay = document.createElement("div");

	var myTag = SNYCAM.makeFlash( SNYCAM.swf2 , '100%','100%', { id : "snycam_view" , base : SNYCAM.path , Flashvars:'lang=' + SNYCAM.lang + '&movieID=' + movieID  } );
	objOverlay.setAttribute('id','SUNNY_VIEW');
	objOverlay.style.display = 'block';
	objOverlay.style.position = 'absolute';
	objOverlay.style.zIndex = 99999;
	
	if (isIE){
		objOverlay.style.width = arrayPageSize[2];
		objOverlay.style.height = arrayPageSize[3];
	} else {
		objOverlay.style.width = '100%';
		objOverlay.style.height = '100%';
	}

	objOverlay.style.top = arrayPageScroll[1]+'px';
	objOverlay.style.left = '0px';
	
	objOverlay.innerHTML = myTag;
	objBody.insertBefore(objOverlay, objBody.firstChild);
	objOverlay.style.display = 'block';
	
	SNYCAM.addEvent(
		window,
		'scroll',
		function () {
			document.body.firstChild.style.top = SNYCAM.getPageScroll()[1]+'px';
		}
	);
	
	if (isIE){
		SNYCAM.addEvent(
			window,
			'resize',
			function () {
				document.body.firstChild.style.width  = SNYCAM.getPageSize()[2]+'px';
				document.body.firstChild.style.height = SNYCAM.getPageSize()[3]+'px';
			}
		);
	}
	
}


SNYCAM.doClose = function (){
	
	//restore <select>
	if (SNYCAM.selects){
		for (var i=0; i< SNYCAM.selects.length; i++){
			SNYCAM.selects[i].style.display = "";
		}
	}
	//restore overflow
	if (SNYCAM.overflows){
		for (var i=0; i< SNYCAM.overflows.length; i++){
			SNYCAM.overflows[i].style.overflow = "auto"
		}
	}
	
	//restore iframe
	if (SNYCAM.iframes){
		for (var i=0; i< SNYCAM.iframes.length; i++){
			SNYCAM.iframes[i].style.visibility = "visible"
		}
	}
	
	//restore flash objects
	if (SNYCAM.flashs){
		for (var i=0; i< SNYCAM.flashs.length; i++){
			SNYCAM.flashs[i].style.visibility = "visible"
		}
	}
	
	var objBody = document.body;
	objBody.firstChild.style.visibility = "hidden";
	objBody.removeChild(objBody.firstChild);
	
	
}



//Flash version check
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
	var words = navigator.plugins["Shockwave Flash"].description.split(" ");
	for (var i = 0; i < words.length; ++i){
		if (isNaN(parseInt(words[i])))
		continue;
		var MM_PluginVersion = words[i]; 
	}
	var MGS4_FlashCanPlay = MM_PluginVersion >= SNYCAM.ver;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 
   && (navigator.appVersion.indexOf("Win") != -1)) {
	document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
	document.write('on error resume next \n');
	document.write('MGS4_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & SNYCAM.ver)))\n');
	document.write('</SCR' + 'IPT\> \n');
}

if (MGS4_FlashCanPlay) {

	document.write('<div id="SUNNYCAMERA" style="width:158px;height:298px;margin:0px auto;clear:both">');
	document.write( SNYCAM.makeFlash( SNYCAM.swf1, '158','298', {   base : SNYCAM.path , Flashvars:'lang=' + SNYCAM.lang } ) )
	document.write('</div>');
	

}


