String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };




function submitenter(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   {
   myfield.form.submit();
   return false;
   }
else
   return true;
}


function postRegisterData(){
	//var powerValue = parseInt( document.getElementById( "powerSelect" ).value );
	//var speedValue = parseInt( document.getElementById( "speedSelect" ).value );
	//var skillValue = parseInt( document.getElementById( "skillSelect" ).value );

	var username = document.getElementById( "username" ).value.trim();
	var passOne = document.getElementById( "pass1" ).value.trim();
	var passTwo = document.getElementById( "pass2" ).value.trim();
	var email = document.getElementById( "email" ).value.trim();

	var errorDiv = document.getElementById( "divErrors" );

	var registerErrors = "";

	if( username.length == 0 ){
		registerErrors += "empty username<br/>";
	}
	else if( !validateString( username ) ){
		registerErrors += "invalid username format(only letters and digits)<br/>";
	}

	if( passOne.length == 0 ){
		registerErrors += "empty password<br/>";
	}
	else if( !validateString( passOne ) ){
		registerErrors += "invalid password format(only letters and digits)<br/>";
	}
	
	if( passTwo.length == 0 ){
		registerErrors += "empty confirm password<br/>";
	}
	else if( !validateString( passTwo ) ){
		registerErrors += "invalid confirm password format(only letters and digits)<br/>";
	}

	if( passOne != passTwo ){
		registerErrors += "passwords mismatch<br/>";
	}

	if( email.length == 0 ){
		registerErrors += "empty email<br/>";
	}
	else if( !validateEmail( email ) ){
		registerErrors += "invalid email<br/>";
	}
	
	//if( powerValue == 0 ){
	//	registerErrors += "please choose credit power score<br/>";
	//}

	//if( speedValue == 0 ){
	//	registerErrors += "please choose credit speed score<br/>";
	//}

	//if( skillValue == 0 ) {
	//	registerErrors += "please choose credit skill score<br/>";
	//}

	if( registerErrors.length != 0 ){
		errorDiv.style.display = "block";
		errorDiv.style.visibility = "visible";
		errorDiv.innerHTML= registerErrors;
	}
	else{
		document.registerUser.submit();
	}
}

function postLoginData(){

	var username = document.getElementById( "username" ).value.trim();
	var passOne = document.getElementById( "password" ).value.trim();

	var errorDiv = document.getElementById( "divErrors" );

	var registerErrors = "";

	if( username.length == 0 ){
		registerErrors += "empty username<br/>";
	}
	else if( !validateString( username ) ){
		registerErrors += "invalid username format(only letters and digits)<br/>";
	}

	if( passOne.length == 0 ){
		registerErrors += "empty password<br/>";
	}
	else if( !validateString( passOne ) ){
		registerErrors += "invalid password format(only letters and digits)<br/>";
	}

	if( registerErrors.length != 0 ){
		var successDiv = document.getElementById( "divSuccess" );
		successDiv.innerHTML = "";
		successDiv.style.display = "none";
		successDiv.style.visibility = "hidden";
		errorDiv.style.display = "block";
		errorDiv.style.visibility = "visible";
		errorDiv.innerHTML= registerErrors;
	}
	else{
		document.loginUser.submit();
	}
}



function postMailData(){

	var username = document.getElementById( "name" ).value.trim();
	var email= document.getElementById( "email" ).value.trim();

	var errorDiv = document.getElementById( "divErrors" );

	var registerErrors = "";

	if( username.length == 0 ){
		registerErrors += "empty name<br/>";
	}
	else if( !validateString( username ) ){
		registerErrors += "invalid name format(only letters and digits)<br/>";
	}

	if( email.length == 0 ){
		registerErrors += "empty e-mail<br/>";
	}
	else if( !validateEmail( email ) ){
		registerErrors += "invalid email<br/>";
	}

	if( registerErrors.length != 0 ){
		var successDiv = document.getElementById( "divSuccess" );
		successDiv.innerHTML = "";
		successDiv.style.display = "none";
		successDiv.style.visibility = "hidden";
		errorDiv.style.display = "block";
		errorDiv.style.visibility = "visible";
		errorDiv.innerHTML= registerErrors;
	}
	else{
		document.UserMail.submit();
	}
}
function clearMailForm(){
	var errorDiv = document.getElementById( "divErrors" );
	errorDiv.innerHTML = "";
	errorDiv.style.display = "none";
	errorDiv.style.visibility = "hidden";
	var successDiv = document.getElementById( "divSuccess" );
	successDiv.innerHTML = "";
	successDiv.style.display = "none";
	successDiv.style.visibility = "hidden";
	document.UserMail.reset();
}





function postChangeData(){

	var oldpass = document.getElementById( "oldpass" ).value.trim();
	var passOne = document.getElementById( "newpass" ).value.trim();
	var passTwo = document.getElementById( "repass" ).value.trim();

	var errorDiv = document.getElementById( "divErrors" );

	var registerErrors = "";

	if( oldpass.length == 0 ){
		registerErrors += "empty old password field<br/>";
	}
	else if( !validateString( oldpass) ){
		registerErrors += "invalid old password format(only letters and digits)<br/>";
	}

	if( passOne.length == 0 ){
		registerErrors += "empty password<br/>";
	}
	else if( !validateString( passOne ) ){
		registerErrors += "invalid password format(only letters and digits)<br/>";
	}

	if( passTwo.length == 0 ){
		registerErrors += "empty re-type password<br/>";
	}
	else if( !validateString( passTwo ) ){
		registerErrors += "invalid re-type password format(only letters and digits)<br/>";
	}

	if( passOne != passTwo ){
		registerErrors += "passwords mismatch<br/>";
	}

	if( registerErrors.length != 0 ){
		var successDiv = document.getElementById( "divSuccess" );
		successDiv.innerHTML = "";
		successDiv.style.display = "none";
		successDiv.style.visibility = "hidden";
		errorDiv.style.display = "block";
		errorDiv.style.visibility = "visible";
		errorDiv.innerHTML= registerErrors;
	}
	else{
		document.changePassword.submit();
	}
}

function postForgottenData(){

	var username = document.getElementById( "username" ).value.trim();
	var email = document.getElementById( "email" ).value.trim();

	var errorDiv = document.getElementById( "divErrors" );

	var registerErrors = "";

	if( username.length == 0 ){
		registerErrors += "empty username<br/>";
	}
	else if( !validateString( username ) ){
		registerErrors += "invalid username format(only letters and digits)<br/>";
	}

	if( email.length == 0 ){
		registerErrors += "empty email<br/>";
	}
	else if( !validateEmail( email ) ){
		registerErrors += "invalid email<br/>";
	}

	if( registerErrors.length != 0 ){
		var successDiv = document.getElementById( "divSuccess" );
		successDiv.innerHTML = "";
		successDiv.style.display = "none";
		successDiv.style.visibility = "hidden";
		errorDiv.style.display = "block";
		errorDiv.style.visibility = "visible";
		errorDiv.innerHTML= registerErrors;
	}
	else{
		document.forgottenPassword.submit();
	}
}

function clearRegistrationForm(){
	var errorDiv = document.getElementById( "divErrors" );
	errorDiv.innerHTML = "";
	errorDiv.style.display = "none";
	errorDiv.style.visibility = "hidden";
	document.registerUser.reset();
}

function clearLoginForm(){
	var errorDiv = document.getElementById( "divErrors" );
	errorDiv.innerHTML = "";
	errorDiv.style.display = "none";
	errorDiv.style.visibility = "hidden";
	var successDiv = document.getElementById( "divSuccess" );
	successDiv.innerHTML = "";
	successDiv.style.display = "none";
	successDiv.style.visibility = "hidden";
	document.loginUser.reset();
}

function clearForgottenForm(){
	var errorDiv = document.getElementById( "divErrors" );
	errorDiv.innerHTML = "";
	errorDiv.style.display = "none";
	errorDiv.style.visibility = "hidden";
	var successDiv = document.getElementById( "divSuccess" );
	successDiv.innerHTML = "";
	successDiv.style.display = "none";
	successDiv.style.visibility = "hidden";
	document.getElementById( "username" ).value = "";
	document.getElementById( "email" ).value = "";
}

function clearChangeForm(){
	var errorDiv = document.getElementById( "divErrors" );
	errorDiv.innerHTML = "";
	errorDiv.style.display = "none";
	errorDiv.style.visibility = "hidden";
	var successDiv = document.getElementById( "divSuccess" );
	successDiv.innerHTML = "";
	successDiv.style.display = "none";
	successDiv.style.visibility = "hidden";
	document.changePassword.reset();
}

function Errors( strValue ){
	var errorDiv = document.getElementById( "divErrors" );
	errorDiv.innerHTML = strValue;
	errorDiv.style.display = "block";
	errorDiv.style.visibility = "visible";
}

function Success( strValue ){
	var successDiv = document.getElementById( "divSuccess" );
	successDiv.innerHTML = strValue;
	successDiv.style.display = "block";
	successDiv.style.visibility = "visible";
}

function dataChange(){
	var powerValue = parseInt( document.getElementById( "powerSelect" ).value );
	var speedValue = parseInt( document.getElementById( "speedSelect" ).value );
	var skillValue = parseInt( document.getElementById( "skillSelect" ).value );
	var total = powerValue + speedValue + skillValue;

	if( total > 100 ){
		alert( "Error, Power, Speed and Skill credits total must be less or equal to 100!" );
		document.getElementById( "register" ).disabled = true;
	}
	else{
		document.getElementById( "register" ).disabled = false;
	}
}

function validateEmail( strValue ) {
	emailpat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
	return emailpat.test(strValue);
}

function validateString( strValue ) {
	emailpat = /^([a-zA-Z0-9])+$/;
	return emailpat.test(strValue);
}

function startNewGame(){
	document.location.href = "postGame.php?start=new";
}

function challengeFighter( id ){
	document.location.href = "postGame.php?do=challenge&fighterid=" + id;
}

function myPopup( ID ) {
	window.open( "http://www.lights-out.org/gamePopUp.php?fight=" + ID, 'name', 'height=600,width=600' )
}

function myPopUpNew( ID ){
	if( ID > -1 )
		window.open( "http://www.lights-out.org/createdGamePopUp.php?fight=" + ID, 'name', 'height=600,width=600' )
}

function acceptChallenge( id ){
	if( id > -1 )
		 document.location.href = 'index.php?fightid=' + id;
}

function strike( id ){
	//alert("OK");
	var selectedStrikes = document.getElementById( "selectedStrikes" );
	if( selectedStrikes.length != 3 ){
		alert( "you must select 3 strikes" );
	}
	else{
		
		document.getElementById( "strikeid" ).value=document.getElementById( "strikeid" ).value;
		document.getElementById( "act" ).value="on";
		document.getElementById( "selectedStrikes" ).options.length=0;

	
	    for(var i=selectedStrikes.length-1; i>=0; i-- )
	    {
	          selectedStrikes.options[i] = null;
      	      
	    }






		//strs=document.getElementById( "strikeid" ).value;
		showHintFight(id);
	}
	
}

function checkChoice()
{
	var cnt = 0;
	var strikefrm = document.getElementById( "strikefrm" );

	for ( i=0; i < strikefrm.elements.length; ++i ){
	   if ( strikefrm.elements[i].type == "checkbox" ){
	     if ( strikefrm.elements[i].checked == true ){
			cnt++;
	     }
          }
      }

      return cnt;
}

function chooseStrike(){
	var strikeDiv= document.getElementById( "strikeDiv" );
	strikeDiv.style.display = "block";
	strikeDiv.style.visibility = "visible";
}

function pickSkill( fightid, userid ,sk ){
	if( fightid > -1 )
		 document.location.href = 'postGame.php?act=getskill&fightid=' + fightid + '&userid=' + userid + '&sk=' + sk;
}
function selectStrikeSWF( punch ){  // selectStrike( text )
	//var selectStrikes = document.getElementById( "selectStrikes" );
	var output="";
       var strikeid = document.getElementById( "strikeid" );

	//var index =punch ;// selectStrikes.selectedIndex;
	var value = punch ;//selectStrikes[index].value;
	
	strikeName = text[value];

	var selectedStrikes = document.getElementById( "selectedStrikes" );
	var newStrike = new Option( strikeName, value );


	if( selectedStrikes.length > 2 ){
		alert( "you can select only 3 strikes" );
	}
	else{
		selectedStrikes[selectedStrikes.length] = newStrike;
		//if( selectedStrikes.length == 0 )
		//	strikeid.value = value;
		//else
		//	strikeid.value = strikeid.value + "," + value;
		////////////////////////////////////////////////////////////////////// send strikes array

		
			for (var i=0;i < selectedStrikes.options.length;i++) {
 			        output += selectedStrikes.options[i].value + ', ';
 			    }
	 
			strikeid.value = output;
			
		////////////////////////////////////////////////////////////////////// send strikes array END
		
		
	}
}



function selectStrike(  ){  // selectStrike( text )
	var selectStrikes = document.getElementById( "selectStrikes" );
	var output="";
       var strikeid = document.getElementById( "strikeid" );

	var index = selectStrikes.selectedIndex;
	var value = selectStrikes[index].value;
	
	strikeName = text[value];

	var selectedStrikes = document.getElementById( "selectedStrikes" );
	var newStrike = new Option( strikeName, value );


	if( selectedStrikes.length > 2 ){
		alert( "you can select only 3 strikes" );
	}
	else{
		selectedStrikes[selectedStrikes.length] = newStrike;
		//if( selectedStrikes.length == 0 )
		//	strikeid.value = value;
		//else
		//	strikeid.value = strikeid.value + "," + value;
		////////////////////////////////////////////////////////////////////// send strikes array

		
			for (var i=0;i < selectedStrikes.options.length;i++) {
 			        output += selectedStrikes.options[i].value + ', ';
 			    }
	 
			strikeid.value = output;
			
		////////////////////////////////////////////////////////////////////// send strikes array END
		
		
	}
}

function removeStrike(){
	var selectedStrikes = document.getElementById( "selectedStrikes" );
	
	var selectStrike = selectedStrikes.selectedIndex;
	var i;

	if ( selectStrike != -1 ) {
	    for( i=selectedStrikes.length-1; i>=0; i-- )
	    {
	      if( selectedStrikes.options[i].selected )
      	      {
	        selectedStrikes.options[i] = null;
      	      }
	    }

	    if( selectedStrikes.length > 0 ) {
  	    	selectedStrikes.selectedIndex = selectStrike == 0 ? 0 : selectStrike - 1;
    	    }
  	}
}