jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

function processform(form, site) {
	$(form.addon).css({ backgroundColor:"transparent" });

	var addon = jQuery.trim(form.addon.value);

	if (site == "wowi") {
		var url = 'http://www.wowinterface.com/downloads/search.php?search=';
	}
	else if (site == "curse") {
			var url = 'http://wow.curse.com/downloads/wow-addons/SearchResults.aspx?q=';
	}
	
	url = url + addon;
	
	if (addon == "") {
		alert("You must enter something to search for!");
		form.addon.focus();
		$(form.addon).css({ backgroundColor:"#ff0000" });
		return false;
	}

	window.open (url, "quicksearch","location=0,status=1,resizable=1,scrollbars=1, width=1000,height=800"); 
}


$(document).ready(function() {
	$.preloadImages("images/icon-download-hover.png", "images/icon-ss-hover.png");

	$(".links dt:even, .links dd:even").addClass("odd");

	$("#nav li a[title]").tooltip({
		tip: '#navtip',
		offset: [-10, -135],
		position: "bottom middle",
		direction: 'down'
	});
	
	$('.curse a, .wowi a, .author a, .info li a').click(function(){
		window.open (this.href);
		return false;
	});

	$("#appForm").validate({
   		rules: {
			friendname: {
				required: "#guildfriend:checked"
			}
		},
		errorPlacement: function(error, element) { 
            if ( element.is(":radio") ) 
                error.appendTo( element.parent().next().next() ); 
            else if ( element.is(":checkbox") ) 
                error.appendTo ( element.parent().children(':last') ); 
            else 
                error.appendTo( element.parent().next() ); 
        }, 		
		invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted'
					: 'You missed ' + errors + ' fields. They have been highlighted!';
				$("div.errorMsg span").html(message);
				$("div.errorMsg").show();
			} else {
				$("div.errorMsg").hide();
			}
		},
		highlight: function(element, errorClass) {
			$(element).addClass(errorClass);
			$(element.form).find("label[for=" + element.name + "]").addClass("errorHighlight");
		},
  		unhighlight: function(element, errorClass) {
			$(element).removeClass(errorClass);
     		$(element.form).find("label[for=" + element.name + "]").removeClass("errorHighlight");
		},
		showErrors: function() { 
			for ( var i = 0; this.errorList[i]; i++ ) { 
				this.settings.highlight.call( this, this.errorList[i].element, this.settings.errorClass ); 
			} 
			if (this.settings.unhighlight) { 
				for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) { 
					this.settings.unhighlight.call( this, elements[i], this.settings.errorClass ); 
				}
			} 
		} 		
	});

	$("input[name='guildfriend']").change( function() {
		if ($("input[name=guildfriend]:checked").val() == "Yes") {
			$('#friendfield').show();
		} else {
			$('#friendfield').hide();
		}
	});

	$("textarea[maxlength]").keyup(function(){
		var max = parseInt($(this).attr("maxlength"));
		if($(this).val().length > max){
			$(this).val($(this).val().substr(0, $(this).attr("maxlength")));
		}

		$(this).parent().find(".charsRemaining").html("You have <strong>" + (max - $(this).val().length) + "</strong> characters remaining");
	});
	
	$("textarea").focus(function () {
         $(this).prev().fadeIn("slow");
    });

	$("textarea").blur(function () {
         $(this).prev().fadeOut("slow");
    });
});