/*
 
 AMAITORTE
 hotcake.js
 
 Version 2.2.8 (2009-10-30 > 2012-01-19)
 
 (c) Nekobungi Sumire 2009-2012
 
 */






/*
 変数 ----------------------------------------------- 

 DocRoot					ドキュメントのルート要素
 userAgentString			ユーザエージェント文字列
 hasUAString(thestring)		文字列がユーザエージェント文字列に含まれるか
 
 */

var DocRoot = document.documentElement;
var userAgentString = navigator.userAgent;

function hasUAString(thestring){
	if(userAgentString.indexOf(thestring) != -1){
		return true;
	}else{
		return false;
	}
}





/*
 クッキー関連 -----------------------------------------------
 
 ReverseCookie(CookieName)								読み込み。CookieNameは必須。
 FeedCookie(CookieName, CookieValue, path, maxage)		書き込み。CookieNameは必須。
 
 */

var CookieData = new Array();
var WholeCookie = new Array();
if(document.cookie.indexOf("; ") != -1){
	WholeCookie = document.cookie.split("; ");
}else{
	WholeCookie = document.cookie.split(";");
}
for(i = 0; WholeCookie.length > i; i++){
	var TempCookie = new Array();
	TempCookie = WholeCookie[i].split("=");
	var TempCookieName = TempCookie.shift();
	var TempCookieValue = TempCookie.join("=");
	CookieData[TempCookieName] = TempCookieValue;
}

function ReverseCookie(CookieName){
	if(CookieData[CookieName]){
		return CookieData[CookieName];
	}else{
		return false;
	}
}
function FeedCookie(CookieName, CookieValue, path, maxage){
	if(!path){
		path = '/';
	}
	if(!maxage){
		maxage = 63072000;
	}
	if(!CookieName){
		return false;
	}
	cookiedate = new Date();
	cookiedate.setTime(cookiedate.getTime() + maxage * 1000);
	
	CookieData[CookieName] = CookieValue;
	
	document.cookie = CookieName + '=' + CookieValue + '; path=' + path + '; expires=' + cookiedate.toGMTString() + '; max-age=' + maxage + ';';
}

/* デバッグモード */
var isDebugMode = false;
if(ReverseCookie('amaitorteDebug')){
	isDebugMode = true;
	userAgentString = 'Mozilla/9.0 (Amaitorte) AmaitorteDebug/999';
}





/*
 OS判定 -----------------------------------------------

 isIOS              iOSなら真
 isAndroid          Androidなら真
 isWindowsPhone     Windows Phoneなら真
 
 isMacintosh        Macintoshなら真
 isWindows          Windowsなら真
 isLinux            Linuxなら真
 isOSUnknown        OSが不明なら真
 
 */

var OperatingSystem = '';
var isIOS = false;
var isAndroid = false;
var isWindowsPhone = false;
var isMacintosh = false;
var isWindows = false;
var isLinux = false;
var isOSUnknown = false;

if(userAgentString.indexOf('Android') != -1){
	isAndroid = true;
}else if(userAgentString.indexOf('iPad') != -1 || userAgentString.indexOf('iPhone') != -1 || userAgentString.indexOf('iPod') != -1){
	isIOS = true;
}else if(userAgentString.indexOf('Windows Phone') != -1 || userAgentString.indexOf('IEMobile') != -1){
	isWindowsPhone = true;
}else if(userAgentString.indexOf('Macintosh') != -1){
	isMacintosh = true;
}else if(userAgentString.indexOf('Windows') != -1){
	isWindows = true;
}else if(userAgentString.indexOf('Linux') != -1){
	isLinux = true;
}else{
	isOSUnknown = true;
}





/*
 ポインティングデバイスとスクリーンモード -----------------------------------------------
 
 PointingDevice		'mouse'		= マウス
                	'touch'		= タッチパネル
 
 DeviceScreen   	'desktop'	= 卓上コンピュータ
					'tablet'	= タブレット
					'mobile'	= モバイル

 DevicePixelRatio	1			= 普通のスクリーン
 					2			= Retinaディスプレイ
 
 */

var PointingDevice = 'mouse';
var DeviceScreen = 'desktop';
var DevicePixelRatio = 1;

if(window.devicePixelRatio){
	DevicePixelRatio = window.devicePixelRatio;
}





/*
 Apple WebKit -----------------------------------------------
 
 isAppleWebkit		WebKitなら真
 
 WebkitVariant		ブラウザ種別
 					'safari'		= Safari(MacまたはWindows)
 					'safarimobile'	= Safari(iPhoneまたはiPod touch)
 					'safaritablet'	= Safari(iPhoneまたはiPod touch)
					
 					'androidmobile'	= Androidモバイル
 					'androidtablet'	= Androidタブレット
					
 					'chrome'		= Google Chrome
					
					'netfrontnx'	= NetFront NX
 
 WebkitVersion		WebKitのバージョン
					参考:
                      532     = Chrome 3   = ruby要素に対応
                      525     = Safari 3.1 = webkit-transform/transition等、最新のCSSに対応
                      412     = Safari 2   = Mac OS X 10.4の最低バージョン
                      0       = WebKitではない
 */

var VersionPoints = new Array(')', 'a', 'b', 'p', ';', ' ', '+');

var WebkitVersion = 0;
var WebkitVariant = '';

var isAppleWebkit = (userAgentString.indexOf('AppleWebKit/') != -1);

if(isAppleWebkit){
	WebkitVersion = (userAgentString.split('AppleWebKit/'))[1];
	WebkitVersion = (WebkitVersion.split(' '))[0];
	for(i = 0; VersionPoints[i]; i++){
		if(WebkitVersion.indexOf(VersionPoints[i]) != -1){
			WebkitVersion = (WebkitVersion.split(VersionPoints[i]))[0];
		}
	}
	WebkitVersion1 = parseInt( (WebkitVersion.split('.'))[0] );
	WebkitVersion2 = parseInt( (WebkitVersion.split('.'))[1] ) / 1000;
	if(WebkitVersion2 > 999){
		WebkitVersion2 = 999;
	}
	WebkitVersion = WebkitVersion1 + WebkitVersion2;
	
	if(isAndroid){
		if(userAgentString.indexOf('Mobile') != -1){
			WebkitVariant = 'androidmobile';
		}else{
			WebkitVariant = 'androidtablet';
		}
	}else if(isIOS){
		if(userAgentString.indexOf('iPad') != -1){
			WebkitVariant = 'safaritablet';
		}else{
			WebkitVariant = 'safarimobile';
		}
	}else if(userAgentString.indexOf('Chrome/') != -1){
		WebkitVariant = 'chrome';
	}else{
		WebkitVariant = 'safari';
	}
}else if(userAgentString.indexOf('Nintendo 3DS') != -1){
	isAppleWebkit = true;
	WebkitVersion = 532;
	WebkitVariant = 'netfrontnx';
}

// 整理
if(WebkitVariant == 'androidmobile' || WebkitVariant == 'safarimobile' || WebkitVariant == 'netfrontnx'){
	PointingDevice = 'touch';
	DeviceScreen = 'mobile';
}else if(WebkitVariant == 'androidtablet' || WebkitVariant == 'safaritablet'){
	PointingDevice = 'touch';
	DeviceScreen = 'tablet';
}


/*
 Gecko -----------------------------------------------
 
 isGecko        	 Geckoなら真
 
 GeckoVariant		ブラウザ種別
 					'firefox'		= FirefoxまたはGecko系のブラウザ
 					'firefoxmobile'	= Firefox for Androidモバイルなど
 					'firefoxtablet'	= Firefox for Androidタブレットなど
					
 GeckoVersion   	 Geckoのバージョン
                	 参考:
                     	1.090300 = 1.9.3.0 = moz-transitionに対応
                     	1.090100 = 1.9.1.0 = moz-transformに対応
 */

var isGecko = false;
var GeckoVersion = 0;
var GeckoVariant = '';

var GeckoVerArry = new Array();

if(!isAppleWebkit){
	isGecko = (userAgentString.indexOf('Gecko/') != -1);
}
if(isGecko){
	GeckoVersion = (userAgentString.split(' rv:'))[1];
	
	for(i = 0; VersionPoints[i]; i++){
		if(GeckoVersion.indexOf(VersionPoints[i]) != -1){
			GeckoVersion = (GeckoVersion.split(VersionPoints[i]))[0];
		}
	}
	GeckoVerArry = GeckoVersion.split('.');
	if(GeckoVerArry.length == 1){
		GeckoVerArry[1] = 0;
	}
	if(GeckoVerArry.length == 2){
		GeckoVerArry[2] = 0;
	}
	if(GeckoVerArry.length == 3){
		GeckoVerArry[3] = 0;
	}
	for(i = 0; i <= 3; i++){
		GeckoVerArry[i] = parseInt(GeckoVerArry[i]);
	}
	GeckoVersion = GeckoVerArry[0] + GeckoVerArry[1] / 100 + GeckoVerArry[2] / 10000 + GeckoVerArry[3] / 1000000;
	
	if(isAndroid){
		if(userAgentString.indexOf('Mobile') != -1){
			GeckoVariant = 'firefoxmobile';
		}else{
			GeckoVariant = 'firefoxtablet';
		}
	}else if(userAgentString.indexOf('Mobile') != -1){
		GeckoVariant = 'firefoxmobile';
	}else{
		GeckoVariant = 'firefox';
	}
}

// 整理
if(GeckoVariant == 'firefoxmobile'){
	PointingDevice = 'touch';
	DeviceScreen = 'mobile';
}else if(GeckoVariant == 'firefoxtablet'){
	PointingDevice = 'touch';
	DeviceScreen = 'tablet';
}





/*
 Presto -----------------------------------------------
 
 isPresto			Prestoなら真
 PrestoVersion		Prestoのバージョン
					参考:
					2.0522 = 2.5.22 = Opera 10.50
 
 */

var isPresto = false;
var PrestoVersion = 0;
var PrestoVerArry = new Array();
if(!isAppleWebkit && !isGecko){
	isPresto = (userAgentString.indexOf('Presto/') != -1);
}

if(isPresto){
	PrestoVersion = (userAgentString.split('Presto/'))[1];
	
	for(i = 0; VersionPoints[i]; i++){
		if(PrestoVersion.indexOf(VersionPoints[i]) != -1){
			PrestoVersion = (PrestoVersion.split(VersionPoints[i]))[0];
		}
	}
	PrestoVerArry = PrestoVersion.split('.');
	if(PrestoVerArry.length == 1){
		PrestoVerArry[1] = 0;
	}
	if(PrestoVerArry.length == 2){
		PrestoVerArry[2] = 0;
	}
	if(PrestoVerArry.length == 3){
		PrestoVerArry[3] = 0;
	}
	for(i = 0; i <= 3; i++){
		PrestoVerArry[i] = parseInt(PrestoVerArry[i]);
	}
	PrestoVersion = PrestoVerArry[0] * 1 + PrestoVerArry[1] / 100 + PrestoVerArry[2] / 10000;
	
	if(userAgentString.indexOf('Opera Mini') != -1){
		PointingDevice = 'touch';
		DeviceScreen = 'mobile';
	}
}





/*
 Trident -----------------------------------------------
 
 isTrident          Tridentなら真
 MsieVersion        IEのバージョン
 
 */

var isTrident = false;
var MsieVersion = 0;
var isTridentMobile = false;

if(!isAppleWebkit && !isGecko && !isPresto){
	isTrident = (userAgentString.indexOf('MSIE') != -1);
}
if(isTrident){
	MsieVersion = (userAgentString.split('MSIE '))[1];
	MsieVersion = (MsieVersion.split(';'))[0];
	MsieVersion = parseFloat(MsieVersion);
	
	if(isWindowsPhone || userAgentString.indexOf('IEMobile') != -1){
		isTridentMobile = true;
		PointingDevice = 'touch';
		DeviceScreen = 'mobile';
	}
}





/*
 その他のUA -----------------------------------------------
 
 isRobot         ロボットなら真
 isUAUnknown     ブラウザが不明なら真
 
 */

var isRobot = false;
var isUAUnknown = false;

if(userAgentString.indexOf('HatenaScreenshot') != -1){
	isTrident = true;
	MsieVersion = 6;
}else if(userAgentString.indexOf('Googlebot') != -1 || userAgentString.indexOf('Google Web Preview') != -1  || userAgentString.indexOf('Yahoo! Slurp') != -1 || userAgentString.indexOf('bingbot') != -1){
	isRobot = true;
}else if(!isAppleWebkit && !isGecko && !isPresto && !isTrident){
	isUAUnknown = true;
}





/*
 言語とローカライズ -----------------------------------------------
 
 currentLanguage        現在の言語を二文字の言語コードで収録
 defaultPageLanguage    HTMLファイルのデフォルトの言語コード。
 supportLanguages       ページがサポートする言語コードの一覧。配列。
 
 HTMLファイルのデフォルトの言語コードを、html要素のlang属性に記入した方がいい。
 さもなければ、defaultPageLanguageは空白になる。
 
 ページがサポートする言語コードの一覧を、html要素のdata-suplang属性に空白区切りで記入すべきである。
 
 訪問者の設定言語がサポートされていない場合のための言語コードを、html要素のdata-fallBackLang属性に一つだけ記入するべきである。
 さもなければ、data-fallBackLangは「en」と見做される。
 記入する言語コードは、サポートされている言語の中から一つだけ選ばなければならない。
 
 */

var currentLanguage = 'ja';
var defaultPageLanguage = '';
var supportLanguages = new Array('ja');

if(DocRoot.getAttribute('lang')){
	defaultPageLanguage = DocRoot.getAttribute('lang');
}

function SetCurrentLanguage(){
	if(DocRoot.getAttribute('data-suplang')){
		supportLanguages = DocRoot.getAttribute('data-suplang').split(" ");
	}
	
	if(location.search.substr(3, 4) == 'lang'){
		currentLanguage = location.search.substr(1, 2);
	}else if(navigator.language){
		currentLanguage = navigator.language.substr(0, 2);
	}else if(navigator.userLanguage){
		currentLanguage = navigator.userLanguage.substr(0, 2);
	}else if(navigator.browserLanguage){
		currentLanguage = navigator.browserLanguage.substr(0, 2);
	}
	
	// 非サポート言語の扱い
	var tempSupportLanguageCheck = false;
	for(i = 0; i < supportLanguages.length; i++){
		if(currentLanguage == supportLanguages[i]){
			tempSupportLanguageCheck = true;
			break;
		}
	}
	if(!tempSupportLanguageCheck){
		if(DocRoot.getAttribute('data-fallbacklang')){
			currentLanguage = DocRoot.getAttribute('data-fallbacklang');
		}else if(DocRoot.getAttribute('data-fallBackLang')){
			currentLanguage = DocRoot.getAttribute('data-fallBackLang');
		}else{
			currentLanguage = supportLanguages[supportLanguages.length - 1];
		}
	}
}

function LocalizeText(){	
	var tempAllElements = new Array();
	tempAllElements = document.getElementsByTagName("*");
	
	for(i = 0; i < tempAllElements.length; i++){
		if(tempAllElements[i].getAttribute('data-lang' + currentLanguage)){
			tempAllElements[i].innerHTML = tempAllElements[i].getAttribute('data-lang' + currentLanguage);
			tempAllElements[i].setAttribute('lang', currentLanguage);
		}
		if(tempAllElements[i].getAttribute('data-ui' + PointingDevice)){
			tempAllElements[i].innerHTML = tempAllElements[i].getAttribute('data-ui' + PointingDevice);
		}
	}
}





/*
 CSS3対応状況 -----------------------------------------------
 
 hasCssTransform	trueならtransform対応
 hasCssTransform3d	trueなら3d transform対応
 hasCssTransition	trueならtransition対応
 hasCssAnimation	trueならanimation対応
 hasHtmlRuby		trueならruby対応
 hasSvg				trueならSVG対応
 
 */

var hasCssTransform = false;
var hasCssTransform3d = false;
var hasCssTransition = false;
var hasCssAnimation = false;
var hasHtmlRuby = false;
var hasSvg = false;

if(isAppleWebkit){
	if(WebkitVersion >= 525){
		hasCssTransform = true;
		hasSvg = true;
	}
	if(WebkitVersion >= 532){
		hasHtmlRuby = true;
	}
	
	if('matchMedia' in window){
		if(window.matchMedia("(-webkit-transform-3d)").matches){
			hasCssTransform3d = true;
		}
		if(window.matchMedia("(-webkit-transition)").matches){
			hasCssTransition = true;
		}
		if(window.matchMedia("(-webkit-animation)").matches){
			hasCssAnimation = true;
		}
	}else{
		if( (!isAndroid && WebkitVersion >= 525) || (WebkitVersion >= 534.013) ){
			hasCssTransition = true;
		}
		if(WebkitVersion >= 525){
			hasCssAnimation = true;
		}
	}
	
}else if(isGecko){
	if(GeckoVersion >= 1.0901){
		hasCssTransform = true;
	}
	if(GeckoVersion >= 1.090300){
		hasCssTransition = true;
	}
	if(GeckoVersion >= 5){
		hasCssAnimation = true;
	}
	if(GeckoVersion >= 1.08){
		hasSvg = false;
	}
	
	if('matchMedia' in window){
		if(window.matchMedia("(-moz-transform-3d)").matches){
			hasCssTransform3d = true;
		}
	}
	
}else if(isPresto){
	if(PrestoVersion >= 2.0522){
		hasCssTransform = true;
	}
	if(PrestoVersion >= 2.0522){
		hasCssTransition = true;
	}
	if(PrestoVersion >= 2){
		hasSvg = false;
	}
	
}else if(isTrident){
	if(MsieVersion >= 9){
		hasCssTransform = true;
	}
	/*if(MsieVersion >= 10){
		hasCssTransform3d = true;
	}*/
	if(MsieVersion >= 10){
		hasCssTransition = true;
	}
	if(MsieVersion >= 10){
		hasCssAnimation = true;
	}
	if(MsieVersion >= 9){
		hasSvg = false;
	}
	
	if('matchMedia' in window){
		if(window.matchMedia("(-ms-transform-3d)").matches){
			hasCssTransform3d = true;
		}
	}
	
}else if(isDebugMode){
	hasCssTransform = true;
	hasCssTransform3d = true;
	hasCssTransition = true;
	hasCssAnimation = true;
	hasHtmlRuby = true;
	hasSvg = true;
	
}











/*
 ブラウザ判別によるCSSクラスの設定 -----------------------------------------------
 
 html要素に各クラスが一つ、または複数付与される。以下に例を示す。
 
 webkit			WebKit系ブラウザ
 desktop		デスクトップコンピュータ (MacやPCなど)
 tablet			タブレットコンピュータ (iPadなど)
 mobile			モバイルコンピュータ (iPhone、iPod touchなど)
 mouseUI		ポインティングデバイスとしてマウスを使うコンピュータ
 touchUI		ポインティングデバイスとしてタッチパネルを使うコンピュータ
 jaLang			日本語を使用
 
 */


function SetRootClass(){
	var RootClasses = new Array();
	RootClasses = DocRoot.className.split(" ");
	
	SetCurrentLanguage();
	
	if(currentLanguage){
		// デフォルトの言語設定を削除して、
		for(i = 0; i < RootClasses.length; i++){
			if(RootClasses[i].substr(2, 4) == "Lang"){
				RootClasses.splice(i, 1);
				i --;
			}
		}
		// 取得した言語を挿入します
		RootClasses.push(currentLanguage + 'Lang');
	}
	
	if(DeviceScreen){
		RootClasses.push(DeviceScreen);
	}
	if(PointingDevice){
		RootClasses.push(PointingDevice + 'UI');
	}
	
	RootClasses.push('js');
	if(!isRobot){
		RootClasses.push('loading');
	}
	
	if(isMacintosh){
		RootClasses.push('macintosh');
	}else if(isWindows){
		RootClasses.push('windows');
	}else if(isLinux){
		RootClasses.push('linux');
	}
	
	if(isAppleWebkit){
		RootClasses.push('webkit');
		RootClasses.push(WebkitVariant);
	}else if(isGecko){
		RootClasses.push('gecko');
		RootClasses.push(GeckoVariant);
	}else if(isTrident){
		RootClasses.push('trident');
		RootClasses.push('msie' + MsieVersion);
		for(i = MsieVersion; i <= 10; i++){
			RootClasses.push('msie' + i + 'e');
		}
	}else if(isPresto){
		RootClasses.push('presto');
	}else if(isDebugMode){
		RootClasses.push('debugmode');
	}
	
	
	if(hasCssTransform){
		RootClasses.push('hasCssTransform');
	}else{
		RootClasses.push('noCssTransform');
	}
	
	if(hasCssTransform3d){
		RootClasses.push('hasCssTransform3d');
	}else{
		RootClasses.push('noCssTransform3d');
	}
	
	if(hasCssTransition){
		RootClasses.push('hasCssTransition');
	}else{
		RootClasses.push('noCssTransition');
	}
	
	if(hasCssAnimation){
		RootClasses.push('hasCssAnimation');
	}else{
		RootClasses.push('noCssAnimation');
	}
	
	if(hasHtmlRuby){
		RootClasses.push('hasHtmlRuby');
	}else{
		RootClasses.push('noHtmlRuby');
	}
	
	if(hasSvg){
		RootClasses.push('hasSvg');
	}else{
		RootClasses.push('noSvg');
	}
	
	
	if(!isRobot){
		if(document.referrer){
			if(document.referrer.indexOf(location.host) == -1 || document.referrer.indexOf(location.host) > 8){
				RootClasses.push('newVisit');
				RootClasses.push('fromOtherSite');
			}
		}else{
			RootClasses.push('newVisit');
			RootClasses.push('noReferrer');
		}
	}
	
	for(i = 0; i < RootClasses.length; i++){
		if(RootClasses[i] == ''){
			RootClasses.splice(i, 1);
			i --;
		}
	}
	
	DocRoot.className = RootClasses.join(" ");
	
	if(!isRobot){		
		if(document.webkitHidden){
			addEvent(document, 'webkitvisibilitychange', RemoveUnloadClassWindowVisible);
		}else{
			addEvent(window, 'load', RemoveUnloadClass);
		}
	}
}

var didRemoveUnloadClassWindowVisible = false;
function RemoveUnloadClassWindowVisible(){
	console.log("RemoveUnloadClassWindowVisible");
	if(!didRemoveUnloadClassWindowVisible){
		didRemoveUnloadClassWindowVisible = true;
		console.log("didRemoveUnloadClassWindowVisible");
		RemoveUnloadClass();
	}
}
function RemoveUnloadClass(){
	var RootClasses = new Array();
	RootClasses = DocRoot.className.split(" ");
	
	for(i = 0; i < RootClasses.length; i++){
		if(RootClasses[i] == "loading"){
			RootClasses.splice(i, 1);
			i --;
		}
	}
	
	DocRoot.className = RootClasses.join(" ");
}

function addEvent(element, type, func){
	if(element.attachEvent){
		element.attachEvent("on" + type, func);
	}else{
		element.addEventListener(type, func, false);
	}
}
function removeEvent(element, type, func){
	if(element.attachEvent){
		element.detachEvent("on" + type, func);
	}else{
		element.removeEventListener(type, func, false);
	}
}
function eventBubbleCancel(event){
	if(event.target){
		event.stopPropagation();
	}else{
		event.cancelBubble = true;
	}
}
function eventBubbleKill(event){
	if(event.target){
		event.preventDefault();
		event.stopPropagation();
	}else{
		event.returnValue = false;
		event.cancelBubble = true;
	}
}

function newXHR(){
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else if(window.ActiveXObject){
		return new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return null;
	}
}

function consoleLog(n){
	if(isAppleWebkit){
		console.log(n);
	}
}

var ViewportLeft = 0
var ViewportTop = 0
var ViewportWidth = 0;
var ViewportHeight = 0;

var DocumentWidth = 0;
var DocumentHeight = 0;

var ViewportRight = 0;
var ViewportBottom = 0;
var ViewportXCenter = 0;
var ViewportYCenter = 0;

function ViewportSize(){
	ViewportLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
	ViewportTop = document.body.scrollTop || document.documentElement.scrollTop;
	ViewportWidth = document.documentElement.clientWidth || window.innerWidth;
	ViewportHeight = document.documentElement.clientHeight || window.innerHeight;
	
	DocumentWidth = document.documentElement.scrollWidth || document.body.scrollWidth;
	DocumentHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
	
	if(WebkitVariant == 'safarimobile'){
		if(window.orientation == 0 || window.orientation == 180){
			if(ViewportHeight >= 356 / 320 * ViewportWidth && ViewportHeight <= 416 / 320 * ViewportWidth){
				ViewportHeight = 416 / 320 * ViewportWidth;
			}
		}else{
			if(ViewportHeight >= 196 / 480 * ViewportWidth && ViewportHeight <= 256 / 480 * ViewportWidth){
				ViewportHeight = 256 / 480 * ViewportWidth;
			}
		}
	}
	
	ViewportRight = ViewportLeft + ViewportWidth;
	ViewportBottom = ViewportTop + ViewportHeight;
	ViewportXCenter = ViewportLeft + ViewportWidth / 2;
	ViewportYCenter = ViewportTop + ViewportHeight / 2;
}




SetRootClass();

