<!--
/*
"osakana kisekae engine"
Version 3.01
for Internet Explorer, Mozilla, Opera.
It enables "kisekae" (cloth changing) operation on above WWW browsers.

Written by Mishiki Sakana <osakana@ofo.jp> .
Copyright 2004 Mishiki Sakana.

This script is released under the GPL.
http://www.gnu.org/licenses/gpl.html
*/

function browserCapable(){
	if (document.layers){
		return (false);
	}
	if (document.body.filters){
		ver = navigator.appVersion.substr(navigator.appVersion.indexOf('MSIE ')+5,3);
		if (navigator.appVersion.indexOf("Mac") > 0){
			if (ver >= 5){return (true);}
		}
		else if (ver >=5.5){
			return (true);
		}
	}
	else if (document.getElementById){
		 return (true);
	}
	return (false);
}



function garmentSnap(myEvent){
	if( !myEvent ){
		myEvent = window.event;
		myEvent.target = myEvent.srcElement ;
	}
	imgname = (myEvent.target.id);

	if (!Garments[imgname].realname){return (false);}
	if (Garments[imgname].sticky=='fixed'){return (false)}

	clicked = imgname;

	groupArr = makeGroupArr (imgname);

	for (i=0; i<groupArr.length;i++){
		each = groupArr[i];
		Garments[each].Xdiff = myEvent.clientX - parseInt(document.getElementById(each).style.left);
		Garments[each].Ydiff = myEvent.clientY - parseInt(document.getElementById(each).style.top);
	}

	return (false);
}


function garmentDrop (myEvent){
	if( !myEvent ){
		myEvent = window.event;
		myEvent.target = myEvent.srcElement ;
	}
//	imgname = (myEvent.target.id);
	if (!clicked){return false;}
	imgname = clicked;

	groupArr = makeGroupArr (imgname);

	for (i=0; i<groupArr.length;i++){
		each = groupArr[i];
		if ((Garments[each].sticky=='sticky') || (Math.abs(parseInt(document.getElementById(each).style.left)-Garments[each].xpos) < snapborder) || (Math.abs(parseInt(document.getElementById(each).style.top)-Garments[each].ypos) < snapborder)){
			putGarmentDefaultPos(each);
		}
	}
	clicked = null;
	return (false);
}

function makeGroupArr (imgname){
	curGroup = Garments[imgname].ggroup;
	groupArr = new Array();
	for (each in Garments){
		if (curGroup.length && Garments[each].ggroup==curGroup){
			groupArr.push(each);
		}
	}
	if (!groupArr.length){groupArr.push(imgname);}
	return (groupArr);
}

function garmentDrag (myEvent){
	if( !myEvent ){
		myEvent = window.event;
		myEvent.target = myEvent.srcElement ;
	}

	if (!clicked){return false;}
	imgname = clicked;

	groupArr = makeGroupArr (imgname);
	for (i=0; i<groupArr.length;i++){
		each = groupArr[i];
		document.getElementById(each).style.left		= (myEvent.clientX - Garments[each].Xdiff) + 'px';
		document.getElementById(each).style.top		= (myEvent.clientY - Garments[each].Ydiff) + 'px';
	}

	return (false);
}


function chgCloths(cloths){							// 洋服セットを変える
	hideAllCloths();
	putClothsDefaultPos(cloths);
	showCloths(cloths);
}

function hideAllCloths(){ 							// 全ての服を隠す
	for (imgname in Garments){
		if (Garments[imgname].sticky!='fixed'){
			hideGarment(imgname);
		}
	}
}

function putClothsDefaultPos(clothsname){		// 洋服セットをデフォルトの位置に戻す
	i=0;
	while (clothsArray[clothsname].garments[i]){
		putGarmentDefaultPos(clothsArray[clothsname].garments[i++]);
	}
}

function putGarmentDefaultPos(garment){		// 特定の服をデフォルトの位置に戻す
	document.getElementById(garment).style.left	= Garments[garment].xpos + 'px';
	document.getElementById(garment).style.top	= Garments[garment].ypos + 'px';
}

function showCloths(clothsname){		// 指定の洋服セットを表示する
	i=0;
	while(clothsArray[clothsname].garments[i]){
		showGarment(clothsArray[clothsname].garments[i++]);
	}
}

function arrangeGarment(garment){		// 特定の服の表示トグル
	groupArr = makeGroupArr (garment);
	for (i=0; i<groupArr.length;i++){
		each = groupArr[i];
		if (Garments[each].curShow){
			hideGarment(each);
		}
		else {
			showGarment(each);
			putGarmentDefaultPos(each);
		}
	}
}

function showGarment(garment){		// 特定の服を表示する
	Garments[garment].curShow = true;
	document.getElementById(garment).style.visibility = 'visible';
	drawURLFormString(formUrlString());
}

function hideGarment (garment){		// 特定の服を隠す
	Garments[garment].curShow = false;
	document.getElementById(garment).style.visibility = 'hidden';
	drawURLFormString(formUrlString());
}

function clothsChangerHTML(){
	clothsArray.all = {'realname':'全部出す', 'garments' : new Array()};
	for (imgname in Garments){
		if (Garments[imgname].sticky!='fixed'){
			clothsArray.all.garments.push(imgname);
		}
	}
	for (each in clothsArray){
		document.write ('<tr><td><span style="padding:0 0.5em 0 0.5em;">・</span><a href="#" onClick="chgCloths(\''+ each + '\');" class="headerlink" style="color:#000000;" title="' + clothsArray[each].realname + '">' + clothsArray[each].realname +'</a></td></tr>');
	}
	document.write ('<tr><td><span style="padding:0 0.5em 0 0.5em; color:#cccccc;">・</span><a href="#" onClick="hideAllCloths();" class="headerlink" style="color:#000000;" title="全部脱いで欲しいな"><font color="#cccccc">全部脱いで</font></a></td></tr>');
}

function garmentsTogglerHTML(){
	document.write('<table border="0" cellpadding="2" cellspacing="0"><tr><th colspan="' + divider +'" style="background-color:#444444; color:#FFFFFF; text-align:center; font-size:0.6em; font-weight:normal;"> 個別の表示／非表示切り替え</small></small></th></tr>');
	i=0;
	curGroupArr = new Array();
	document.write('<tr>');
	for (each in Garments){
		if (Garments[each].sticky == 'fixed'){continue;}
		if (Garments[each].ggroup){
			groupname = Garments[each].ggroup;
			if (curGroupArr[groupname]) { continue;}
			curGroupArr[groupname] = true;
		}
		document.write ('<td nowrap><a href="#" onclick="arrangeGarment(\'' + each + '\');" class="headerlink"	style="color:#000000;" title="' + Garments[each].realname + '"><small><small>' + Garments[each].realname + '</small></small></a></td>');
		if (i%divider==(divider-1)){document.write ('</tr><tr>');}
		i++;
	}
	document.write ('</tr></table>');
	return (true);
}

function eventNull(myEvent){
	if( !myEvent ){
		myEvent = window.event;
		myEvent.target = myEvent.srcElement ;
	}
	if (clicked){return (false);}
	return (true);
}
function getIeVersion(){
	sPtr = navigator.userAgent.indexOf("MSIE");
	ePtr = navigator.userAgent.indexOf(";",sPtr);
	ver =  navigator.userAgent.substring(sPtr+5,ePtr);

	return (parseInt(ver));
}

function makeImageObjandSetHandler(){

	for (imgname in Garments){
		document[imgname] = new Image ();
		imgfilename =  imgname + '.png';
		document[imgname].src = imgfilename
		visibility='hidden';
		Garments[imgname].curShow = false;
		if (Garments[imgname].initon){
			visibility = 'visible';
			Garments[imgname].curShow = true;
		}
		if(( getIeVersion() != 7)&&(document.body.filters)&&(navigator.appVersion.indexOf("Mac") == -1)){

			document.write ('<div id="'+imgname+'" title="' + Garments[imgname].realname +'" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src= '+ imgfilename +' ); position:absolute; left:'+ Garments[imgname].xpos + 'px ; top : ' + Garments[imgname].ypos + 'px ; visibility : ' + visibility + '; z-index: '+ Garments[imgname].order +'; height:480px;width=300px;"></div>');
		}
		else {
			document.write ('<img src="' +imgfilename+ '" alt="' + Garments[imgname].realname +'" title="' + Garments[imgname].realname +'" id="'+imgname+'" style="position:absolute; left: '+ Garments[imgname].xpos + 'px ; top : ' + Garments[imgname].ypos + 'px; visibility : ' + visibility + '; z-index: '+ Garments[imgname].order +'; ">');
		}
		document.getElementById(imgname).onmousedown	= garmentSnap;
		document.getElementById(imgname).onmouseup		= garmentDrop;
		document.getElementById(imgname).onmousemove	= garmentDrag;
		document.getElementById('canvas').onmousedown= eventNull;
		document.getElementById('canvas').onmousemove	= eventNull;
		document.getElementById('canvas').onmouseup		= eventNull;
	}
}

function drawURLForm(){
	document.write('<form name="urlform" onfocus="this.select();" style="margin : 0px 0px 0px 5px;"><table style="background-color: #ffffff; width:495px; text-align:left;"><tr><th style="background-color: #dddddd; color:#000000;font-size:0.8em;font-weight:normal;text-align:center;">共有用URL(<u>U</u>)</th></tr><tr><td style="text-align:center;"><input accesskey="u" type="text" name="url" style="width:490px;"></td></tr><tr><td style="font-size:0.7em; text-indent:0.5em; text-align:left;">この URL で現在の服のコンビネーションを共有できます。萌える組み合わせを探してみて下さい。</td></tr></table></form>');
}

function formUrlString(){
	if (!document.urlform){return (null);}
	string = baseurl + '?customize=1&';
	for (imgname in Garments){
		if (Garments[imgname].sticky!='fixed' && document.getElementById(imgname).style.visibility=='visible'){
			string += imgname + '=1&';
		}
	}
	return (string);
}
function drawURLFormString(valuestring){
	if (document.urlform){document.urlform.url.value = valuestring;}
}

function showUncapableMessage(){
	document.write('<h1>Sorry, your web browser is not supported.</h1><p>Internet Explorer 5.5 , Mozilla 1.0, or Opera 7.0 is required.</p>');
}
//-->
