// JavaScripts source code

jQuery(document).ready(function(){
	jQuery("#newsItems tr, .forecastsTable tr, #forumMessages tr, .betsTable tr, #competitions-by-race tr, #all-members tbody tr, #all-bets tbody tr, #bets-by-race tr, #results tr, #all-results tr").live("mouseenter", function() {	
		jQuery(this).addClass("hover");
	}).live("mouseleave", function() {
		jQuery(this).removeClass("hover");
	});

	
	jQuery("#newsItems tr.odd, .forecastsTable tr.odd, #forumMessages tr.odd, .betsTable tr.odd, #competitions-by-race tr.odd, #bets-by-race tr.odd").live("mouseenter", function() {	
		jQuery(this).addClass("hover");
	}).live("mouseleave", function() {
		jQuery(this).removeClass("hover");
	});
	
	
	jQuery('#login-btn').live('mouseenter', function(){ 
		jQuery(this).addClass("hover");
	}).live('mouseleave', function() {
		jQuery(this).removeClass("hover");
	});
	
	
	jQuery("#loginForm:not(.main-form)").live("submit", function () {
		return login_validate2();
	});
	
	jQuery("#loginForm.main-form").live("submit", function () {
		return login_validate();
	});

	
	setColors();

	
	jQuery("#all-members").tablesorter(
		{ headers: { 0: { sorter: false } } }
	);
	

	for(var i = 1; i < 11; i++){
		news(i);
		//forum(i);
	}
});


function login_validate (f){
	jQuery("#login-btn").attr("disabled", true);
	
	var usernameObj = jQuery("#login-username");
	var username = usernameObj.val();
	var passwordObj = jQuery("#login-password");
	var password = passwordObj.val();
	var my_return = true;
	jQuery(".tip").remove();	
	
	if(username.length == "") {
		usernameObj.addClass("error");
		my_return = false;
		showTip(passwordObj, "login-username-error", "Введите имя пользователя");
	}
	else {
		usernameObj.removeClass("error");
		jQuery("#login-username-error").fadeOut("slow");
	}
	
	if(password.length == "") {
		if (my_return) {
			passwordObj.addClass("error");
			my_return = false;
			showTip(passwordObj, "login-password-error", "Введите пароль");
		}
	}
	else {
		passwordObj.removeClass("error");
		jQuery("#login-password-error").fadeOut("slow");
	}
	
	jQuery("#login-btn").attr("disabled", false);

	return my_return;
};


function login_validate2 (){
	jQuery("#login-btn").attr("disabled", true);
	jQuery(".tip").fadeOut('slow');

	var usernameObj = jQuery("#login-username");
	var username = usernameObj.val();
	var passwordObj = jQuery("#login-password");
	var password = passwordObj.val();
	var my_return = true;
	jQuery(".tip").remove();
	
	
	if(username.length == "") {
		usernameObj.addClass("error");
		my_return = false;	
		showTip(usernameObj, "login-username-error", "Введите имя пользователя");
	}
	else {
		usernameObj.removeClass("error");
		jQuery("#login-username-error").fadeOut("slow");
	}
	
	if(password.length == "") {
		passwordObj.addClass("error");
		my_return = false;
		showTip(passwordObj, "login-password-error", "Введите пароль");
	}
	else {
		passwordObj.removeClass("error");
		jQuery("#login-password-error").fadeOut("slow");
	}
	
	jQuery("#login-btn").attr("disabled", false);

	return my_return;
}


function showTip(parent, id, text) {
	if(typeof(parent) != 'object' || text.length == '' || id.length == '') {
		return false;
	}
	
	var position = parent.position();
	var width = parent.width() + 10;				
	var container = jQuery("<div class=\"tip\" id=\"" + id + "\"></div>");
	container.append(text);
	container.css({ top : (position.top - 2) + 'px', left : (position.left + width) + 'px' });	
	jQuery(document.body).append(container);
	container.fadeIn('slow');
}



// podium
var _points = new Array();

function sortDescending(a, b) {
	return b - a;
}

function setColors() {
	for(var k = 2; k < 21; k++) {
		_points[k] = new Array;
	}
	
	var counter, value;
	var rows = jQuery("#all-members tbody tr");
	jQuery("td", rows).each( function (i, td) {
		counter = i % 22;
		if (counter > 1 && counter < 21) {
			value = jQuery(this).html();
			if(value != '-') {
				value = jQuery(this).find('a').html();
			}
			else {
				value = 0;
			}
			_points[counter].push(value);
		}
  });
  
  for(k = 2; k < 21; k++) {
		_points[k].sort(sortDescending);
	}
	
	jQuery("td", rows).each( function (i, td) {
		counter = i % 22;
		if (counter > 1 && counter < 21) {
			value = jQuery(this).html();
			if(value != '-') {
				value = jQuery(this).find('a').html();
			}
			else {
				value = 0;
			}
			
			if (getPodium(counter, 1) == value && value != 0) {
				jQuery(this).find('a').removeClass('points').addClass('gold').attr('title', 'Победитель этапа');
			}
			if (getPodium(counter, 2) == value && value != 0) {
				jQuery(this).find('a').addClass('silver').attr('title', 'Серебряный призер этапа');
			}			
			if (getPodium(counter, 3) == value && value != 0) {
				jQuery(this).find('a').addClass('bronze').attr('title', 'Бронзовый призер этапа');
			}
		}
  });
}

function arrayUnique(arrayName) {
  var newArray = new Array();
  label:for(var i = 0; i < arrayName.length; i++) {  
  	for(var j = 0; j < newArray.length; j++) {
    	if(newArray[j] == arrayName[i]) 
      	continue label;
    }
    newArray[newArray.length] = arrayName[i];
  }
  
  return newArray;
}

function getPodium(counter, type) {
	var points = new Array;
	points = arrayUnique(_points[counter]);

	if(type < 1 || type > 3) return false;
	
	switch(type) {
		case 1:
			return points[0];
		break;
		case 2:
			return points[1];
		break;
		case 3:
			return points[2];
		break;
	}
}
// //podium


/* content pop-up */
function findPosX(obj) {  
	var curleft = 0;  
  if (obj.offsetParent) {  
  	while (1) {  
    	curleft += obj.offsetLeft;  
      if (!obj.offsetParent) {  
      	break;  
      }  
      obj = obj.offsetParent;  
   	}  
  } 
  else if (obj.x) {  
  	curleft += obj.x;  
  }
    
	return curleft;  
}  

function findPosY(obj) {  
  var curtop = 0;  
  if (obj.offsetParent) {  
  	while (1) {  
    	curtop += obj.offsetTop;  
      if (!obj.offsetParent) {  
      	break;  
      }  
      obj = obj.offsetParent;  
   	}  
 	} 
 	else if (obj.y) {  
   	curtop += obj.y;  
  }  
  
	return curtop;  
}


/* news */
function showNewsOver(id) {
	//var elementWidth = 210;
	//var elementHeight = 16;
	var elementOffsetLeft = 0;
	var elementOffsetTop = -15;
	var object = document.getElementById('news_' + id);
	var offsetLeft = findPosX(object);
	var offsetTop = findPosY(object);
	
	document.getElementById("news_content_" + id).style.display = 'block';
	document.getElementById("news_content_" + id).style.top = (offsetTop - elementOffsetTop) + 'px';
	document.getElementById("news_content_" + id).style.left = (offsetLeft + elementOffsetLeft)  + 'px';
}

function showNewsOut(id) {
	document.getElementById("news_content_" + id).style.display = 'none';
}

function news(id) {
	jQuery('#news_' + id).live("mouseenter", function() { 
		showNewsOver(id); 
	}).live("mouseleave", function() { 
		showNewsOut(id); 
	});
}
/* //news*/

/* forum */
function showForumOver(id) {
	//var elementWidth = 210;
	//var elementHeight = 16;
	var elementOffsetLeft = 0;
	var elementOffsetTop = -15;
	var object = document.getElementById('forum_' + id);
	var offsetLeft = findPosX(object);
	var offsetTop = findPosY(object);
	
	document.getElementById("forum_content_" + id).style.display = 'block';
	document.getElementById("forum_content_" + id).style.top = (offsetTop - elementOffsetTop) + 'px';
	document.getElementById("forum_content_" + id).style.left = (offsetLeft + elementOffsetLeft)  + 'px';
}

function showForumOut(id) {
	document.getElementById("forum_content_" + id).style.display = 'none';
}

function forum(id) {
	jQuery('#forum_' + id).live("mouseenter", function() { 
		showForumOver(id); 
	}).live("mouseleave", function() { 
		showForumOut(id); 
	});
}
/* //forum */
/* //content pop-up */
