function page() {
}
page.prototype = {
	init : function() {
		trace('func: init');
		this.loadingElmt = new loadingElmt();
		this.coverElmt = new coverElmt();
		miz$('header').appendChild(this.loadingElmt);
		this.addCSS();
		this.applyNaviEffect();
		this.loadComplete();
	},

	loadComplete : function() {
		trace('func: loadComplete');
		this.loadingElmt.complete();
		this.coverElmt.flag_scrollEnabled = true;
		document.body.appendChild(this.coverElmt);
		mizuyari.addClass(miz$('cover'), 'active');
		_page.coverElmt.mcObj.start();
		mizuyari.addClass(miz$('globalnav'), 'activated');
	},

	addCSS : function() {
		mizuyari.addCSS('/shared/styles/page_main.css');
		if (this.is_iTouch) {
			mizuyari.addCSS('/shared/styles/itouch.css');
		}
	},

	applyNaviEffect : function() {
		mizuyari.addEvent(miz$('nav-works'), 'click', function(){
			location.href = this.getElementsByTagName('A')[0].href;
		});
		mizuyari.addEvent(miz$('nav-companyinfo'), 'click', function(){
			location.href = this.getElementsByTagName('A')[0].href;
		});
		if (miz$('nav-newtopic')) {
			mizuyari.addEvent(miz$('nav-newtopic'), 'click', function(){
				location.href = this.getElementsByTagName('A')[0].href;
			});
		}
	}
}

function coverElmt() {
	var elmt = mizuyari.elementFactory('DIV', {
		'id' : 'cover'
	});

	var coverImageElmt = mizuyari.elementFactory('DIV', {
		'id' : 'cover-image'
	});
	
	var pLogoElmt =  mizuyari.elementFactory('DIV', {
		'id' : 'picslogo'
	});
	var pLogoBodyElmt =  mizuyari.elementFactory('DIV', {
		'id' : 'picslogo-body'
	});
	pLogoElmt.appendChild(pLogoBodyElmt);
	elmt.mcObj = new flipFlash('picslogo-body', '/shared/swf/p.swf?2', "70", "75", "10", {
		menu		: 'false',
		devicefont	: 'false',
		quality	: 'high',
		allowFullScreen : 'true',
		wmode : 'transparent'
	});

	elmt.flag_scrollEnabled = false;
	elmt.historyScreenHeight = null;
	elmt.sizeAdjusterTimer = null;

	elmt.sizeAdjuster_play = function() {
		elmt.sizeAdjusterTimer =  setInterval(this.sizeAdjuster, 128);
		var currentPosY = coverImageElmt.clientTop;
		currentPosY--;
		coverImageElmt.style.top = currentPosY + 'px';
	}
	elmt.sizeAdjuster_stop = function() {
		clearInterval(elmt.timer);
		elmt.sizeAdjusterTimer = null;
	}	
	elmt.sizeAdjuster = function() {
		if (elmt.flag_scrollEnabled) {
			var currentPosY = coverImageElmt.offsetTop;
			currentPosY -= 2;
			if (currentPosY <= -(coverImageElmt.offsetHeight / 2)) {
				currentPosY = 0;
				// trace('loop');
			}
			coverImageElmt.style.top = currentPosY + 'px';
		}

		var currentScreenHeight = mizuyari.screen.getScreenHeight();
		if (elmt.historyScreenHeight != currentScreenHeight) {
			elmt.style.height = currentScreenHeight + 'px';
			if (pLogoBodyElmt) {
				pLogoBodyElmt.style.top = Math.floor((currentScreenHeight - 75) / 2) + 'px';
			}
			elmt.historyScreenHeight = currentScreenHeight;
		}
	}

	elmt.duplicateImages = function() {
		var imageElmts = coverImageElmt.getElementsByTagName("IMG");
		for (var i=0, j=imageElmts.length; i<j; i++) {
			var cloneElmt = imageElmts[i].cloneNode(true);
			coverImageElmt.appendChild(cloneElmt);
		}
	}
	
	elmt.appendChild(pLogoElmt);
	elmt.appendChild(coverImageElmt);

	elmt.sizeAdjuster_play();
	
	return elmt;
}

function loadingElmt() {
	var elmt = mizuyari.elementFactory('DIV', {
		'id' : 'loading'
	});
	elmt.innerHTML = '<img src="/shared/images/loading-label.gif" alt="Loading" />';
	elmt.timer = null;
	elmt.flag  = false;

	elmt.start = function() {
		var self = elmt; 
		// mizuyari.removeClass(elmt, 'complete');
		elmt.timer = setInterval(function(){
			var imgElmt = self.getElementsByTagName('IMG')[0];
			if (self.flag) {
				mizuyari.addClass(imgElmt, 'hidden');
				self.flag = false;
			} else {
				mizuyari.removeClass(imgElmt, 'hidden');
				self.flag = true;
			}
		}, 32);
	}

	elmt.stop = function () {
		clearInterval(this.timer);
		elmt.timer = null;
	}

	elmt.complete = function () {
		elmt.stop();
		mizuyari.addClass(elmt, 'complete');
	}

	// elmt.start();
	return elmt;
}

function worksElmt() {
	var elmt = mizuyari.elementFactory('DIV',{
	});
	elmt.startScroll = function() {
		_page.worksViewer.startScroll();
	}
	elmt.stopScroll = function() {
		_page.worksViewer.stopScroll();
	}
	return elmt;
}

function contentGuardElmt() {
	var elmt = mizuyari.elementFactory('DIV',{
		'class' : 'guard'
	});
	elmt.innerHTML = '<img src="/shared/styles/clear.gif" alt="" />';
	return elmt;
}

var _page;
mizuyari.addEvent(window, 'load', function(){
	setTimeout(function(){
		_page.init();
	}, 500);
});

mizuyari.addOnLoadEvent(function(){
	_page = new page();
});
