//checking input field value
function compareFieldValue(txtfield, compare_value, errmsg, errdiv){
	if(compare_value == trim($(txtfield).value)){
		$(errdiv).style.display="block";
		$(errdiv).innerHTML=errmsg;
		$(txtfield).value='';
		$(txtfield).focus();
		return false;
	}else{
		$(errdiv).innerHTML="";
		$(errdiv).style.display="none";
	}
}
function trim (str) {
	return ltrim (rtrim (str));
}
function ltrim (str) {
	for (var k = 0; k < str.length && isWhitespace (str.charAt(k)); k++);
	return str.substring(k, str.length);
}
function rtrim (str) {
	for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
	return str.substring(0,j+1);
}
function isWhitespace(charToCheck) {
		var whitespaceChars = " \t\n\r\f";
		return (whitespaceChars.indexOf(charToCheck) != -1);
}
function errorRrequest (){
	alert ('Failed to complete your Request');
}
//checking for empty fields
function isFieldEmpty(txtfield, errmsg, errdiv){
	if("" == trim($(txtfield).value)){
		$(errdiv).style.display="block";
		$(errdiv).innerHTML=errmsg;
		$(txtfield).value='';
		$(txtfield).focus();
		//Effect.Fade('show_error', { duration: 5.0 });
		return false;
	}else{
		$(errdiv).innerHTML="";
		$(errdiv).style.display="none";
	}
}

//function isFieldEmptyNew(txtfield, errmsg, errdiv){
//	if("" == trim($(txtfield).value)){
//		$('show_error').style.display="block";
//		$('show_error_text').innerHTML=errmsg;
//		$(txtfield).value='';
//		$(txtfield).focus();
//		return false;
//	}else{
//		$(errdiv).innerHTML="";
//		$(errdiv).style.display="none";
//	}
//}



// alerts a message if a field is empty
function isFieldEmptyAlert(txtfield, errmsg){
	if("" == trim($(txtfield).value)){
		alert(errmsg);
		return true;
	}else{
		return false;
	}
}
// checks if a field is empty
function isFieldEmptyCheck(txtfield, errmsg){
	if("" == trim($(txtfield).value)){
		return true;
	}else{
		return false;
	}
}

function isMinLength (field, min_length, errmsg, errdiv){
	var str	=	$(field).value;
	if(str.length < min_length){
		$(errdiv).style.display   = "block";
        $(errdiv).innerHTML       = errmsg;
        $(field).focus();
        return false;
	}
	else{
		$(errdiv).style.display   = "none";
        $(errdiv).innerHTML       = "";
        return true;
	}
}
function isValidEmail (field, errmsg, errdiv){
	if(!checkEmail ($(field).value)){
        $(errdiv).style.display   = "block";
        $(errdiv).innerHTML       = errmsg;
        $(field).focus();
        return false;
	}else{
        $(errdiv).style.display   = "none";
        $(errdiv).innerHTML       = "";
        return true;
	}
}
function checkEmail(email) {
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(email)){
		return true;
	}else{
		return false;
    }
}
function goToPage(page){
	window.location = base_url+page;
}
function goToUrl(url){
	window.location = url;
}

function disappearDiv(divObj){

	Effect.Fade(divObj.id, { duration: 2.5});
}
//submit the login form on pressing enter key.
function loginOnEnter(Obj){

	$(Obj.id).observe('keypress', function(e){
    if (e.keyCode == '13'){
		userLogin();
      Event.stop(e);
    }
  });
}

function commonConfirmRedirect(url, msg){

	if(confirm(msg_lang[msg])){
		window.location = url;
	}
}

/**
placed in the game-play page, this function will check every second, to see if a badge was alloted to the game
*/
function checkForBadges(game_id){


//alert('test');
	var params  	= "game_id="+game_id;
	var url			=  base_url+'ajax/user_ajax/checkBadgeAllotment';



	new Ajax.Request (url,
	                        {
	                            method      :   "post",
	                            parameters  :   params,
	                            onSuccess   :   showAcquiredBadge,
	                            onFailure   :   errorRrequest
	                        }
	                     );
}

function showAcquiredBadge(reqObj){

	var obj = reqObj.responseText.evalJSON();

	if(obj.image != ""){

		var new_badge = decodeURIComponent(obj.image);
		var badge_id = obj.badge_id;

		/*if($('carousel-container').style.display == 'none'){
		//allocating the 1st badge
			$('carousel-container').style.display = 'block';
			//$('badge-description').style.display = 'block';
			$('items-div').innerHTML = new_badge;

		}else{
		//allocating the other badges
			$('items-div').innerHTML = new_badge + $('items-div').innerHTML;
			//if($('badge-description').style.display == 'none'){
				//$('badge-description').style.display = 'block';
			//}
		}*/


		//make the unallocated badge visible
		$('grayscaled_' + badge_id).innerHTML = $('original_' + badge_id).innerHTML;
		//$('unallocated_badge_image_' + badge_id).className = 'border_img';


//		$('badge-description').innerHTML = obj.description;
//		$('badge-description').fade({ duration: 10.0, from: 1, to: 0});
	}

	//allocate new rank image if present




	if(obj.new_rank_image != ""){
		$('user_rank_image').innerHTML = obj.new_rank_image;
	}


}

function showBadgeDesc(item){

	//alert(item.down('.description').innerHTML);
	if($('badge-description').style.display == 'none'){

	$('badge-description').style.display = 'block';

	//Effect.Fade('badge-description', {duration:10.0});
	}else{
		//this means a possible fade-effect is in progress.
	}

	$('badge-description').innerHTML = item.down('.description').innerHTML;
	$('badge-description').fade({ duration: 10.0, from: 1, to: 0});


}

function commonSubmitForm(form){
	$(form).submit();
}
function limitTextField(limitField, limitCount, limitNum) {
	//alert(limitField.value.length);
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		var char_count = limitNum - limitField.value.length;
		$(limitCount).innerHTML = 'You have '+char_count+' characters left.';
	}

}

function showLoginError(){

	if($('login_error').innerHTML != ''){
		alert($('login_error').innerHTML);
	}
}

function checkAll (){
        $$('input.check_all').each (function (element){element.checked = true;});
}
function checkNone(){
        $$('input.check_all').each (function (element){element.checked = false;});
}

function approveSelected(form_id, msg){

	//if nothing was selected, alert message | Else , submit the form
	id_list = '';
	$$('input.check_all').each (function (element){
		   id_list += (element.checked == true) ? element.value+':' : '';
    });


	if ('' == trim (id_list)){
	    alert (msg_lang[msg]);
	    return false;
	}else{
	    $('action').value = 'active';
		$(form_id).submit();
	}

}

function deleteSelected(form_id, msg){

	//if nothing was selected, alert message | Else , submit the form
	id_list = '';
	$$('input.check_all').each (function (element){
		   id_list += (element.checked == true) ? element.value+':' : '';
    });

	if ('' == trim (id_list)){
	    alert (msg_lang[msg]);
	    return false;
	}else{
	    $('action').value = 'deleted';
		$(form_id).submit();
	}

}


//function clearMessage(){
//
//	if($('show_error') != 'undefined'){
//		if($('show_error').style.display == 'block'){
////alert('test');
//				//if('1' == $('psk_clear_status').innerHTML)
//				Effect.Fade('show_error', {duration:5.0});
//		}
//	}
//}

function siteSearch(){
	$('cse-search-box').submit();
}

function searchOnEnter(Obj){
	$(Obj.id).observe('keypress', function(e){
    if (e.keyCode == '13'){
		$('cse-search-box').submit();
      Event.stop(e);
    }
  });
}
function requestPassword(){
	if(false == isFieldEmpty('username_forgot', msg_lang['username_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}
	if(false == isFieldEmpty('captcha_code',msg_lang['captcha_code_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}
	$('submit_button').style.display = 'none';
	$('loading_div').style.display = 'block';

	$('forgot_password').submit();
}

function validateResetPassword(){
//alert('tert');
	if(false == isFieldEmpty('new_password', msg_lang['new_password_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}

	if(false == isMinLength('new_password', 6, msg_lang['new_password_min_length_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}

	if(false == isFieldEmpty('confirm_password', msg_lang['confirm_new_password_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}
	//alert('tert 2 ');
	if($('new_password').value != $('confirm_password').value){
		$('confirm_password').focus();
		$('show_error').style.display	= "block";
		$('show_error').innerHTML		= msg_lang['mismatch_password_error'];
		Effect.ScrollTo('show_error');
		return false;
	}
	if(false == isFieldEmpty('captcha_code',msg_lang['captcha_code_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}

	$('reset_password').submit();
}
function validateChangePassword(){
//alert('tert');
	if(false == isFieldEmpty('old_password', msg_lang['old_password_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}
	if(false == isFieldEmpty('new_password', msg_lang['new_password_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}
	if(false == isMinLength('new_password', 6, msg_lang['new_password_min_length_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}

	if(false == isFieldEmpty('confirm_password', msg_lang['confirm_new_password_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}
	//alert('tert 2 ');
	if($('new_password').value != $('confirm_password').value){
		$('confirm_password').focus();
		$('show_error').style.display	= "block";
		$('show_error').innerHTML		= msg_lang['mismatch_password_error'];
		Effect.ScrollTo('show_error');
		return false;
	}
	if(false == isFieldEmpty('captcha_code',msg_lang['captcha_code_empty_error'], 'show_error')){Effect.ScrollTo('show_error');return false;}

	$('change_password').submit();
}


//FADE ERROR - START
	var fade_timer = 0;
	/**
	* fade the error message after a delay
	*/
	function delay_fade_error(){

		if($('show_error')){

			if($('show_error').style.display == 'block'){

				if(fade_timer){
					clearTimeout(fade_timer);
				}
				fade_timer = setTimeout("delay_fade_error_2()",5000);
			}
		}
	}

	/**
	* TO be used with delay_fade_error
	*/
	function delay_fade_error_2(){
		$('show_error').fade({duration:5.0});
		clearTimeout(fade_timer);
	}
//FADE ERROR - END






	function fade_error(){
		//alert('test');

		if($('show_error')){

			if($('show_error').style.display == 'block'){
				Effect.Fade('show_error', {duration:5.0});
			}
		}
		//window.clearInterval(interval);
	}
