var buttonLevel = new Array()
buttonLevel[0] = null
buttonLevel[1] = null
buttonLevel[2] = null
buttonLevel[3] = null
buttonLevel[4] = null
buttonLevel[5] = null

function errorMessage(msg)
{

	document.getElementById("characterCreationMessage").innerHTML = msg;

}


function validateUsernameCB(valid){
	if (!valid){
		errorMessage ( getErrorMessage("usernameRequest", "usernameNotValid") );
	}else{
		errorMessage("");
	}
}		

function validatePasswordCB(valid){
	if (!valid){
		errorMessage ( getErrorMessage("usernameRequest", "passwordNotValid") );
	}else{
		errorMessage("");
	}
}		

function validateRetypePasswordCB(valid){
	if (!valid){
		errorMessage( getErrorMessage("usernameRequest", "retypedPasswordNotValid") ); 
	}else{
		errorMessage ( "" );
	}
}		



/** 
* 
*	the callback which is called when the username request has finished 
* 
**/ 
function usernameRequestCallback(response){ 

if (response != null && response.responseCode != null) {
	if (response.responseCode != 1){
		errorMessage( getErrorMessage("usernameRequest", response.responseCode) );
	}else{
		errorMessage("");
	}	
}else{		
	errorMessage( getErrorMessage("usernameRequest", "epicFail") ); 
}	
}


function loadLang(id){
document.getElementById(id).value=getBrowserLanguage();
}	

/**
*
*	the callback which is called when the create character request has finished
*
**/
function createCharacterCallback(response) { 
	if (response != null && response.responseCode != null) {
		if (response.responseCode != 1){
			document.getElementById("info").innerHTML=getErrorMessage("createCharacter", response.responseCode);
		}else{
			document.getElementById("info").innerHTML=getErrorMessage("createCharacter", response.responseCode);;
		}	
	}else{
		document.getElementById("info").innerHTML=getErrorMessage("createCharacter", "epicFail");
	}
}	 


//CHARACTER CREATION FUNCTIONALITY
//SETTINGS   
var path = "/files/share/default/charactercreation/parts/";
var ext = ".png";

var _GENDER = "gender";
var _CHARTYPE = "chartype";
var _SKIN = "skin";
var _DRESS = "dress";
var _HAIR = "hair";			
var _COLOR = "color";		

var _WHITE = "#ffffff";
var _GREEN = "#65cd00";
var _YELLOW = "#ffff9c";
var _MELANGE = "#deab6b";
var _ORANGE = "#db6340";
var _BROWN = "#874200";

var colors = new Array( _WHITE, _GREEN, _YELLOW, _MELANGE, _ORANGE, _BROWN );

var parts = new Array();
//Gender
parts[0] = new Array('f', 'm');
//CharacterType
parts[1] = new Array('pyk','ath','lept');
//Skin
parts[2] = new Array('hairy','scary');		  
//Dress
parts[3] = new Array('shirt','bikini','tiger');
//Hair
parts[4] = new Array('toni','struppie','snob','iro','brillocurl','shortie');
//Colors
parts[5] = new Array('#ffffff','#65cd00','#ffff9c','#deab6b','#db6340','#874200');

var formvalues = new Array();
//Gender
formvalues[0] = new Array('FEMALE', 'MALE');
//CharacterType
formvalues[1] = new Array('PYKNIC','ATHLETIC','LEPTOSOMIC');
//Skin
formvalues[2] = new Array('HAIRY','SCARS');		  
//Dress
formvalues[3] = new Array(0,1,2);
//Hair
formvalues[4] = new Array(0,1,2,3,4,5,6);
//Colors
formvalues[5] = new Array('WHITE','GREEN','YELLOW','MELANGE','ORANGE','BROWN');

var assetvalues = new Array();
assetvalues["f_pyk"] = new Array();
assetvalues["m_pyk"] = new Array();
assetvalues["f_ath"] = new Array();
assetvalues["m_ath"] = new Array();
assetvalues["f_lept"] = new Array();
assetvalues["m_lept"] = new Array();

assetvalues["f_pyk"]['_HAIR'] = new Array('393682','509662','393678','424936','498286','414802');
assetvalues["f_pyk"]['_DRESS'] = new Array('440868 518110','435486','464694 472092');

assetvalues["m_pyk"]['_HAIR'] = new Array('393722','454902','393714','424412','505538','468664');
assetvalues["m_pyk"]['_DRESS'] = new Array('412566 442740','438942','480788 501394');

assetvalues["f_ath"]['_HAIR'] = new Array('393624','431556','393620','511386','419448','404782');
assetvalues["f_ath"]['_DRESS'] = new Array('465820 399288','508870','409574 488840');

assetvalues["m_ath"]['_HAIR'] = new Array('393702','421262','393692','519690','502574','479960');
assetvalues["m_ath"]['_DRESS'] = new Array('420152 472710','498614','405944 463432');

assetvalues["f_lept"]['_HAIR'] = new Array('393642','431886','393634','457022','483466','439670');
assetvalues["f_lept"]['_DRESS'] = new Array('419878 398412','515394','398162 447170');

assetvalues["m_lept"]['_HAIR'] = new Array('393662','396366','393652','432616','467092','474264');
assetvalues["m_lept"]['_DRESS'] = new Array('482264 455604','515394','406372 519834');



//


var pathToImages = "/files/share/default/charactercreation/web_buttons/";

var buttonStates = new Array( );

buttonStates['m'] = new buttonStatesImages( "m.jpg", 0);
buttonStates['f'] = new buttonStatesImages( "f.jpg", 0);

buttonStates['pyk'] = new buttonStatesImages("p_chubby.jpg",1);
buttonStates['lept'] = new buttonStatesImages("p_slim.jpg",1);
buttonStates['ath'] = new buttonStatesImages("p_athlet.jpg",1);

buttonStates['bikini'] = new buttonStatesImages("underwear.jpg",2);
buttonStates['shirt'] = new buttonStatesImages("shirt.jpg",2);
buttonStates['tiger'] = new buttonStatesImages("superdress.jpg",2);


buttonStates['#ffffff'] = new buttonStatesImages("c_paper.jpg",3);
buttonStates['#65cd00'] = new buttonStatesImages("c_alien.jpg",3);
buttonStates['#ffff9c'] = new buttonStatesImages("c_vanilla.jpg",3);
buttonStates['#deab6b'] = new buttonStatesImages("c_melange.jpg",3);
buttonStates['#db6340'] = new buttonStatesImages("c_chili.jpg",3);
buttonStates['#874200'] = new buttonStatesImages("c_choco.jpg",3);


buttonStates['shortie'] = new buttonStatesImages("hair01.jpg",4);
buttonStates['toni'] = new buttonStatesImages("hair02.jpg",4);
buttonStates['struppie'] = new buttonStatesImages("hair03.jpg",4);
buttonStates['snob'] = new buttonStatesImages("hair04.jpg",4);
buttonStates['iro'] = new buttonStatesImages("hair06.jpg",4);
buttonStates['brillocurl'] = new buttonStatesImages("hair05.jpg",4);

buttonStates['random'] = new buttonStatesImages("random.jpg",5);

function showPressed(name)
{

	document.getElementById(name).src = buttonStates['random'].selectedImage.src
 
}

function showUnpressed(name)
{

	document.getElementById(name).src = buttonStates['random'].img.src
 
}



//alert ( buttonStates['m'].img.src+" : "+ buttonStates['m'].selectedImage.src ) 
/*
							new Array ( "hair02.jpg", "hair03.jpg"," hair04.jpg", "hair05.jpg", "hair06.jpg"),
							new Array ( "random.jpg")
							);
*/


							
var buttonsState = new Array(); 							
			

//alert (pathToImages)
			
function buttonStatesImages(url,row)
{

	this.img = new Image();
	
	this.img.src = pathToImages + "om_"+url;
	
	
	this.selectedImage = new Image();
	
	this.selectedImage.src = pathToImages + "act_"+url
	
	this.moImage = new Image();
	
	this.moImage.src = pathToImages + "button_"+url;  
	
	this.isSelected = false;
	
    this.row = row;
	
}

/*
for(var a = 0; a < buttonImageNames.length;a++){

	buttonsState[a] = new Array();

	for(var b = 0; b < buttonImageNames[a].length;b++) {

		buttonsState[a][b] = new buttonStatesImages(buttonImageNames[a][b]);
   
   }
   
}*/
							
							

var gender = "f";
var chartype = "lept";
var skin = "scary";
var dress = "shirt";
var hair = "brillocurl";

var outline = "outline";

//PRELOAD IMAGES
function preloadImages(){
	if (document.images){
	  var preload_image_object = new Array(100);
	  var idx = 0;
	  for ( j = 0; j < parts[0].length; j++ ){
	  	for ( k = 0; k < parts[1].length; k++ ){
	  		preload_image_object[idx] = new Image();
	  		preload_image_object[idx].src = path+parts[0][j]+"_"+parts[1][k]+"-"+outline+ext;
	  		idx++;
	  		for ( l = 0; l < parts[2].length; l++ ){
	  			preload_image_object[idx] = new Image();
	  			preload_image_object[idx].src  = path+parts[0][j]+"_"+parts[1][k]+"-"+_SKIN+"-"+parts[2][l]+ext;
	  			idx++;
	  		}
	  		for ( n = 0; n < parts[4].length; n++ ){
	  			preload_image_object[idx] = new Image();
	  			preload_image_object[idx].src  = path+parts[0][j]+"_"+parts[1][k]+"-"+_HAIR+"-"+parts[4][n]+ext;
	  			idx++;
	  		}
	  		for ( o = 0; o < parts[3].length; o++ ){
	  			preload_image_object[idx] = new Image();
	  			preload_image_object[idx].src = path+parts[0][j]+"_"+parts[1][k]+"-"+_DRESS+"-"+parts[3][o]+ext;
	  			idx++;
	  		}	  		
	  	}
	  }
	}
}


var part1="<img src='"+path;
var part2=".png'>";
var sep = "_";
var sep1 = "-";



var buttonLevel = new Array()
buttonLevel[0] = null
buttonLevel[1] = null
buttonLevel[2] = null
buttonLevel[3] = null
buttonLevel[4] = null
buttonLevel[5] = null
buttonLevel[6] = null




function buttonToggle(id,bl)
{
	/*
	// alert( "e.id "+e.id+" bl "+buttonLevel[bl] )
   var e= document.getElementById( id )
	
	if(e) e.style.border = "#bbbbbb inset 1px"
	//else alert("id "+id+" not found")
	
	if((buttonLevel[bl] != null)&&( buttonLevel[bl] !=  e  ))
		buttonLevel[bl].style.border="1px outset white"

	buttonLevel[bl]=e

	//change(a,b)
	*/
	
	//alert ("id is " + id)
	
	var e = document.getElementById(id);
	
	e.src = buttonStates[id].selectedImage.src; 
	buttonStates[id].isSelected = true;
	
	// swap other on same row back to norm
	for(var index in buttonStates) {
		
		if( (index != id) && ( buttonStates[index].row == buttonStates[id].row ) ){
			document.getElementById(index).src = buttonStates[index].img.src;
			buttonStates[index].isSelected = false;
			}

	}	
	
}

function buttonMouseOver(id)
{

	if(buttonStates[id].isSelected == false) {
		document.getElementById(id).src = buttonStates[id].moImage.src ; 
	//	buttonStates[id].isSelected = true
		}

}
 

function buttonMouseOut(id)
{

	if(buttonStates[id].isSelected == false) {
		document.getElementById(id).src = buttonStates[id].img.src ; 
		//buttonStates[id].isSelected = false
		}

}




//CHANGE CHARACTER ATTRIBUTES LOGIC			
function change( what, how ){

	//alert("WHAT: "+what+" HOW: "+how);
	
	if ( what == _GENDER ){
		gender = how;
	}else if ( what == _CHARTYPE ){
		chartype = how;
	}else if ( what == _SKIN ){
		skin = how;
	}else if ( what == _DRESS ){
		dress = how;
	}else if ( what == _HAIR ){
		hair = how;
	}
	
	if ( 	what == _GENDER || what == _CHARTYPE ){
		buttonToggle( gender ,0 );
	  buttonToggle ( chartype, 1 );
		imgname = gender+sep+chartype+sep1+outline;
		document.getElementById("outline").innerHTML=getPNGImageTag( path+imgname+".png", "char_outline" );
		changeSkin();
		changeDress();
		changeHair();
		updateForm( _GENDER, gender );
		updateForm( _CHARTYPE, chartype );
	}
	if ( what == 	_SKIN ){
		changeSkin();
	}
	if ( what == 	_DRESS ){
		changeDress();
	}
	if ( what == 	_HAIR ){
		changeHair();
	}
	
	
}
function changeSkin(){
	if ( skin != '' ){
			imgname = gender+sep+chartype+sep1+_SKIN+sep1+skin;
			//document.getElementById("skin").innerHTML=part1+imgname+part2;
			document.getElementById("skin").innerHTML=getPNGImageTag( path+imgname+".png", "char_skin" );
		}else{
			document.getElementById("skin").innerHTML="";
			//skin = 'PLAIN';
		}
		updateForm( _SKIN, skin );
}
function changeHair(){
	if ( hair != '' ){
			imgname = gender+sep+chartype+sep1+_HAIR+sep1+hair;
			document.getElementById("hair").innerHTML=getPNGImageTag( path+imgname+".png", "char_hair" );
		}else{
			document.getElementById("hair").innerHTML="";
		}
		
		buttonToggle( hair, 5 )
		
		updateForm( _HAIR, hair );
}
function changeDress(){
		if ( dress != '' ){
			imgname = gender+sep+chartype+sep1+_DRESS+sep1+dress;
			document.getElementById("dress").innerHTML=getPNGImageTag( path+imgname+".png", "char_dress" );
			
			buttonToggle(dress,3)
			
		}else{
			imgname = gender+sep+chartype+sep1+_DRESS;
			document.getElementById("dress").innerHTML=getPNGImageTag( path+imgname+".png", "char_dress" );
		}
				
		updateForm( _DRESS, dress );
}

function changeColor( color ){

	buttonToggle( color, 4 ) 

	document.getElementById("outline").style.background = color;
	updateForm( _COLOR, color );
}

function randomGenerator(){				
	change( _GENDER, parts[0][get_random(parts[0].length)] );
	change( _CHARTYPE , parts[1][get_random(parts[1].length)] );
	change( _SKIN, '' ); //get_random(parts[2].length)
	change( _DRESS, parts[3][get_random(parts[3].length)] );
	change( _HAIR, parts[4][get_random(parts[4].length)] );
	changeColor( parts[5][get_random(parts[5].length)] );
}

function get_random( num ){
  var ranNum= Math.floor(Math.random()*num);
	return ranNum;
}

function updateForm( attribute, newvalue ){				
	if ( attribute == _GENDER ){
		document.getElementById("Gender").value = getFormValue(newvalue,0);	
	}else if ( attribute == _SKIN ){
		//document.getElementById("SkinType").value = getFormValue(newvalue,2);			
	}else if ( attribute == _COLOR ){
		document.getElementById("Color").value = getFormValue(newvalue,5);	
	}else if ( attribute == _CHARTYPE ){
		document.getElementById("BodyType").value = getFormValue(newvalue,1);	
	}else if ( attribute == _HAIR ){
		var i = getFormValue(newvalue,4);
		if ( assetvalues[gender+"_"+chartype]["_HAIR"][i] != 'undefined' ){
			document.getElementById("assets_hair").value = assetvalues[gender+"_"+chartype]["_HAIR"][i];	
		}
	}else if ( attribute == _DRESS ){
		var i = getFormValue(newvalue,3);	
		if ( assetvalues[gender+"_"+chartype]["_DRESS"][i] != 'undefined' ){
			document.getElementById("assets_outfit").value = assetvalues[gender+"_"+chartype]["_DRESS"][i];	
		}
	}		
}

function getFormValue( newvalue, index ){
	for ( i = 0; i < parts[index].length; i++ ){
		if ( parts[index][i] == newvalue ){
			return formvalues[index][i];
		}
	}
}
			
