var WGP = jQuery.noConflict();
WGP().ready(function($) {
	var el, e, container, trigger, content, box, trigger, stars, speed, url, ad;
	var webhostgear = {};
	
	webhostgear.clickSubmit = function(container){
		$(container).click(function(e){
			var $form = $(e.target).parents('form');
			$.ajax({
				type: "POST",
				url: $form.attr('action'),
				dataType: "html",
				data: $form.serialize(),
				success: function(data){
					if(data != '') {
						eval(data);
					} else {
						var html = '<p><strong>Thank you for sending us your opinion.</strong></p>';
						$form.replaceWith(html);
					}
				}
			});
			return false;
		});
	};
	webhostgear.searchfingerprint = function (el) {
		var fingerprint = $(el).val();
		$(el).click(function (e) {
			$(this).css("color", "#000");
			$(this).val("");
			e.stopPropagation()
		});
		$(el).blur(function (e) {
			var $context = $(this).val();
			if ($context.length <= 0) {
				$(this).css("color", "#C2C2C2");
				$(this).val(fingerprint)
			}
			e.stopPropagation()
		})
	};
	webhostgear.tabsbox = function (container, trigger, content, box) {
		if (typeof($(container)) == "object") {
			var $links = $(trigger).find("a");
			if ($links.length > 1) {
				$links.click(function () {
					var $link = $(this);
					var $index = $link.parent().index();
					var $content = $(content).find("li").filter(box);
					$links.addClass("TabUnselected");
					$content.each(function () {
						if ($(this).index() != $index) {
							$(this).children().fadeOut();
							$link.removeClass("TabUnselected");
							$(this).addClass("hide")
						} else {
							$(this).children().fadeIn();
							$(this).removeClass("hide")
						}
					});
					return false
				})
			} else {
				return null
			}
		} else {
			return null
		}
	};
	webhostgear.seemoretabs = function (container, trigger, menulist) {
		var $container = $(container),
		$trigger = $(trigger),
		$menulist = $(menulist),
		$menulistItemWidth = 0,
		$menuItemsHalf = 0,
		$itemMovement = 0;
		$containerWidth = $container.width();
		if (typeof($container) == "object" && typeof($menulist) == "object") {
			$menulist.find("li").each(function () {
				$menulistItemWidth = $menulistItemWidth + $(this).width();
				if (Math.floor($(this).index()) < ($menulist.find("li").length / 2 - 1)) {
					$menuItemsHalf = $menuItemsHalf + $(this).width() + 2
				}
			});
			if (typeof($menulist) == "object" && $container.width() < $menulistItemWidth) {
				$menuItemsHalf = $menuItemsHalf - 4;
				$itemMovement = "-" + $menuItemsHalf + "px";
				$trigger.toggleClass("hide");
				if (typeof($trigger) == "object") {
					var $text = $trigger.find("span");
					$trigger.click(function () {
						if ($text.text() == "See More") {
							$text.text("Back");
							$menulist.animate({
								"margin-left": $itemMovement
							})
						} else {
							$text.text("See More");
							$menulist.animate({
								"margin-left": "0px"
							})
						}
						return false
					})
				}
			}
		}
	};
	webhostgear.isjavascripton = function (el) {
		$(el).removeClass("js-off");
		$(el).addClass("js-on")
	};
	webhostgear.starratings = function (trigger, stars) {
		var $trigger = $(trigger),
		$stars = $(stars),
		$radio,
		$starValue,
		$neededClass,
		$classString,
		$Link,
		$queryString;
		elem = $stars[0] ? $stars[0].tagName.toLowerCase() : $stars;
		if (typeof($trigger) == "object" && typeof($stars) == "object") {
			if (elem == "a") {
				$stars.hover(function () {
					$starValue = parseInt($(this).text());
					$neededClass = "Big" + $starValue + "Stars";
					$trigger.addClass($neededClass)
				},
				function () {
					$trigger.removeClass($neededClass);
					$trigger.addClass("Big0Stars")
				});
				$stars.click(function (e) {
					e.preventDefault();
					$Link = $(this).attr("href");
					$starValue = parseInt($(this).text());
					$.post($Link, {
						'rating_value': $starValue
					},
					function (response, status, xhr) {
						if (status == "error") {
							var msg = "Sorry, but there was an error: ";
							$(".RightTitleRate span").html(msg + xhr.status + " " + xhr.statusText)
						} else {
							$trigger.remove();
							$(".RightTitleRate span").html("Thank You!")
						}
					})
				})
			} else {
				$stars = $(stars).find("label");
				$stars.hover(function () {
					$starValue = $(this).parent("li").find("input").val();
					$rootParent = $(this).parent("li").parent("ul");
					$classString = "rate" + $starValue + "stars";
					$rootParent.removeClass("rate1stars rate2stars rate3stars rate4stars rate5stars rate6stars rate7stars rate8stars rate9stars rate10stars");
					$rootParent.addClass($classString)
				},
				function () {
					$stars.removeAttr("checked");
					$starValue = $(this).parent("li").find("input:radio").attr("checked", "checked");
					$starValue = $(this).parent("li").find("input").val()
				})
			}
		} else {
			return null
		}
	};
	webhostgear.togglebox = function (trigger, container, speed) {
		var $trigger = $(trigger),
		$container = $(container),
		$animateSpeed = speed * 60,
		$offset = 0;
		if (typeof($trigger) == "object") {
			$trigger.click(function () {
				var $status = $(this).css("display");
				$container.slideToggle($animateSpeed, function () {
					if ($trigger.hasClass("OrangeLinkBig") == true) {
						$trigger.toggleClass("OrangeLinkBigHovered");
						$trigger.find("span").toggleClass("OrangeLinkBigHoveredSpan")
					}
				});
				if ($trigger.hasClass("OrangeLinkBigHovered")) {
					return null
				} else {
					return false
				}
			})
		}
	};
	webhostgear.linkonnewtabs = function (el) {
		$(el).attr("target", "_blank")
	};
	webhostgear.checkformsbox = function (el) {
		var $el = $(el);
		if (typeof($el) == "object") {
			var $fields, $enteredCaptcha, $formURL, $flags = 0,
			$missedFields, $email, $emailFilter = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,
			$parent,$exemptions;
			$submit = $el.parent().find(".Actions").find("input");
			$fields = $el.find("input:text,textarea");
			$exemptions = "recaptcha_response_field";
			$fields.live("click", function () {
				if($(this).attr("id") != $exemptions){
					$parent = $(this).parent().parent();
					$parent.find("span").remove()
				}
			});
			$fields.live("focus", function () {
				if($(this).attr("id") != $exemptions){
					$parent = $(this).parent().parent();
					$parent.find("span").remove()
				}
			});
			$fields.live("blur", function () {
				$missedFields = $el.find("input:text,textarea");
				if($(this).attr("id") != $exemptions){
					if ($(this).val().length < 2) {
						$parent = $(this).parent().parent();
						$parent.append("<span class='message required'>" + $parent.attr("id") + " is required." + "</span>");
						$(this).css("border", "1px solid #A00")
					} else {
						if ($(this).attr("name") == "Email" || $(this).attr("name") == "email") {
							$email = $(this).val();
							if (!$email.match($emailFilter)) {
								$parent.append("<span class='message'>" + "A valid " + $parent.attr("id") + " is required." + "</span>");
								$(this).css("border", "1px solid #A38C0E")
							} else {
								$(this).hide();
								$parent = $(this).parent().parent();
								$parent.append("<div class='message accepted'>" + $(this).val() + "<a href='#' class='InputChange'>" + "Change" + "</a>" + "</div>")
							}
						} else {
							$(this).hide();
							$parent = $(this).parent().parent();
							$parent.append("<div class='message accepted'>" + $(this).val() + "<a href='#' class='InputChange'>" + "Change" + "</a>" + "</div>")
						}
					}
				}
			});
			$(".InputChange").live("click", function (e) {
				if($(this).attr("id") != $exemptions){
					e.preventDefault();
					$(this).parent().hide();
					$parent = $(this).parent().parent();
					$parent.find("input,textarea").show()
				}
			});
			/*$submit.click(function (e) {
				var $e = e;
				$el.find("span").remove();
				$missedFields = $el.find("input:text,textarea");
				$missedFields.each(function () {
					if ($(this).val() == "") {
						$parent = $(this).parent().parent();
						$parent.append("<span class='message required'>" + $parent.attr("id") + " is required." + "</span>");
						$(this).css("border", "1px solid #A00");
						e.preventDefault()
					} else {}
				})
			})*/
		} else {
			$(window).die(this)
		}
	};
	webhostgear.loadads = function (container, url, zoneid) {
		$(container).html("<iframe noresize='noresize' scrolling='no' frameborder='0' marginwidth='0' marginheight='0' src='" + url + "?id=" + zoneid + "'></iframe>")
	};
	webhostgear.openbox = function (container, speed) {
		$animateSpeed = speed * 60,
		$(container).slideDown($animateSpeed)
	};
	function init() {
		start: {
			webhostgear.isjavascripton(".page");
			webhostgear.linkonnewtabs(".LinkOut");
			webhostgear.linkonnewtabs(".LinkOut");
			webhostgear.loadads("#TopAd", "ads/", 54588);
			webhostgear.loadads("#SkyScraperAd", "ads/", 54589)
		};
		events: {
			webhostgear.searchfingerprint("input#query");
			webhostgear.tabsbox(".TabbedMediaBox", ".triggerMenus", ".triggerContent", ".boxContent");
			webhostgear.seemoretabs(".triggerMenuWrap", ".MoreTriggers", ".triggerMenus");
			webhostgear.starratings(".BigStars", ".star");
			webhostgear.starratings(".review-star-rating", ".review-star-rating li");
			webhostgear.togglebox(".ToggleLink", ".ToggleBox", 8);
			webhostgear.togglebox(".RateReviewLink", ".RateReview", 5);
			webhostgear.checkformsbox(".FormsBox fieldset");
			webhostgear.clickSubmit('#ProviderUserRatingForm_ProviderUserRatingForm_action_doSubmit');
		}
	}
	init()
});

function validationError(field,message, messageClass, cacheError) {
	if(typeof(field) == 'string') {
		field = $('#'+field);
	} else {
		return false;
	}

	// See if the tag has a reference to the validationMessage (quicker than the one below)
	var validationMessage = field.validationMessage;

	// Cycle through the elements to see if it has a span
	// (for a validation or required messages)
	if(!validationMessage) {
		validationMessage = field.find('span.message');
	}

	// If we didn't find it, create it
	if(validationMessage.length == 0) {
		validationMessage = $('<span class="message"></span>');
		field.append( validationMessage );
	}

	// Keep a reference to it
	field.validationMessage = validationMessage;

	// Set the attributes
	validationMessage.html( message );
	validationMessage.show();

}
/**
 *  Reloads Recaptcha image on failed attempt
*/
function statusMessage( msg, status ){
	//Reset Captcha
	if( status == 'bad' ) {
		Recaptcha.reload();
	}
	return true;
} 