String.prototype.trim = function() {
	return this.replace(/(^ *)|( *$)/g, "");
}

// minimum 2 character, allows only alphabetic
function validateName(jq) {
	var strName = jq.val().trim();
	//if (!strName)	return true;
	var reName = /^[a-zA-Z \.\']{2,}$/;
	return reName.test(strName);
}

// minimum 1 character, allows only alphabetic
function validateNameShort(jq) {
	var strName = jq.val().trim();
	//if (!strName)	return true;
	var reName = /^[a-zA-Z \.\']+$/;
	return reName.test(strName);
}


function validateEmail(jq) {
	var strEmail = jq.val().trim();
	//if (!strEmail) return true;
    //Same as validation on SP IS
	var reEmail = /^[&\'*+\/=?^_{}~a-z0-9.-]+@([a-z0-9-]+\.)+[a-z0-9]+$/;

	return reEmail.test(strEmail);
}

function validateRequired(jq) {
	if (jq.selectedIndex != undefined) {
		return (jq.val() != "null");
	}else
		return jq.val();
}

function validateText2000(jq) {
	return jq.val().length <= 2000;
}

function validateText3000(jq) {
    if(/Tell us the name/.test(jq.val())) {
        return false;
    }else if(!(jq.val().length <= 3000 && jq.val().length > 0)) {
        return false;
    }else
        return true;
}

function validateImagePath(jq) {
	var strPath = jq.val().trim();
	if (!strPath)
		return true;
	var reImage = /\.(jpeg|jpg|png|gif)$/;
	return reImage.test(strPath);
}

// First argument is the validation function
// The other arguments are the jquery objects to be validated
function validateInputs(/*...*/) {
	var isValid = true;
	var validFunc = arguments[0];
	for (i = 1; i < arguments.length; i++) {
		var el = arguments[i];
		var eLabel = el.prev();
		if (!validFunc(el)) {
			eLabel.addClass("Error");
			isValid = false;
		}
	}
	return isValid;
}


function resetErrorIndicators(popup) {
	popup.find("label[for], .MandantoryNotice, .RequiredNotice").removeClass("Error");
	popup.find(".ErrorBox ul li, .ErrorTextBox ul li, .ErrorBoxCatchAll").css("display", "none");
}

function validatePopupEmailFriend(popup) {
	var isValid = true;
	var errorMessages = popup.find(".ErrorBox ul li");
	var errorRequired = popup.find(".RequiredNotice");

	resetErrorIndicators(popup);

	var fromName = popup.find("#fromname");
	var toName = popup.find("#toname");
	var fromEmail = popup.find("#from");
	var toEmail = popup.find("#to");

	if (!validateInputs(validateRequired, fromName, toEmail)) {
		errorRequired.addClass("Error");
		isValid = false;
	}

	if (!validateInputs(validateName, fromName)) {
		errorMessages.eq(0).css("display", "block");
		isValid = false;
	}

	if (!validateInputs(validateEmail, toEmail)) {
		errorMessages.eq(1).css("display", "block");
		isValid = false;
	}
    //OK we got here, we don't require from, but if you have something there, validate
    if(fromEmail.val() && !validateInputs(validateEmail, fromEmail)) {
        errorMessages.eq(1).css("display", "block");
        isValid = false;
    }

	return isValid;
}

function validateRecommendation(popup) {
	var isValid = true;
	var errorMessages = popup.find(".ErrorTextBox ul li");
	var errorRequired = popup.find(".MandantoryNotice");

	resetErrorIndicators(popup);

	var name = popup.find("#name");
	var age = popup.find("#age");
	if (!validateInputs(validateRequired, age)) {
		errorMessages.eq(0).css("display", "block");
		errorRequired.addClass("Error");
		isValid = false;
	}
	if (!validateInputs(validateName, name)) {
		errorMessages.eq(1).css("display", "block");
		errorRequired.addClass("Error");
		isValid = false;
	}
	return isValid;
}

function validateBehaviourTool(popup) {
	var errorMessages = popup.find(".ErrorTextBox ul li");
	resetErrorIndicators(popup);
	if (popup.find(":radio:checked").length == 0) {
		errorMessages.css("display", "block");
		return false;
	}
	else
		return true;
}

function validatePopupMoreInfo(popup) {
	var isValid = true;
	var errorMessages = popup.find(".ErrorBox ul li");
	var errorRequired = popup.find(".RequiredNotice");
	
	var fromname = popup.find("#fromname");
	var address = popup.find("#address1");
	var state = popup.find("#state");
	var zipCode = popup.find("#zip");
	var city = popup.find("#city");
	var emailAddress = popup.find("#from");
	
	resetErrorIndicators(popup);
	
	if (!validateInputs(validateRequired, fromname, address, zipCode, state, emailAddress, city)) {
		errorRequired.addClass("Error");
		isValid = false;
	}
	if (!validateInputs(validateName, fromname)) {
		errorMessages.eq(0).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, address)) {
		errorMessages.eq(1).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, city)) {
		errorMessages.eq(2).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, state)) {
		errorMessages.eq(3).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, zipCode)) {
		errorMessages.eq(4).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateEmail, emailAddress)) {
		errorMessages.eq(5).css("display", "block");
		isValid = false;
	}

	return isValid;
}

function validatePopupMoreInfoMkt(popup) {
	var isValid = true;
	var errorMessages = popup.find(".ErrorBox ul li");
	var errorRequired = popup.find(".RequiredNotice");
	
	var fromname = popup.find("#fromname");
	var address = popup.find("#address1");
	var state = popup.find("#state");
	var zipCode = popup.find("#zip");
	var city = popup.find("#city");
	var emailAddress = popup.find("#from");
	var messageContent = popup.find("#reqdetails");
	
	resetErrorIndicators(popup);
	
	if (!validateInputs(validateRequired, fromname, address, zipCode, state, emailAddress, messageContent, city)) {
		errorRequired.addClass("Error");
		isValid = false;
	}
	if (!validateInputs(validateName, fromname)) {
		errorMessages.eq(0).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, address)) {
		errorMessages.eq(1).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, city)) {
		errorMessages.eq(2).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, state)) {
		errorMessages.eq(3).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateRequired, zipCode)) {
		errorMessages.eq(4).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateEmail, emailAddress)) {
		errorMessages.eq(5).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateText3000, messageContent)) {
		errorMessages.eq(6).css("display", "block");
		isValid = false;
    }

	return isValid;
}

function showResultAgeTool(popup) {
	var age = parseInt(popup.find("#age").val());
	var anyCheck = (popup.find(":checkbox:checked").length > 0);
	var isValid = validateRecommendation(popup);
	
	if (isValid) {
		if (10 < age && age < 13) {
			tb_show('','popup_age_based_tool_result_11-12.html?KeepThis=true&amp;TB_iframe=true&width=618&amp;height=515&amp;modal=true','');
		} else if (1 < age && age < 11 && !anyCheck) {
			tb_show('','popup_age_based_tool_result_no.html?KeepThis=true&amp;TB_iframe=true&amp;width=618&amp;height=515&amp;modal=true','');
		} else {
			tb_show('','popup_age_based_tool_result_13-18.html?KeepThis=true&amp;TB_iframe=true&amp;width=618&amp;height=515&amp;modal=true','');
		}
		return true;
	}
	else {
		return false;
	}
}

function showAgeToolQuestions() {
	var age = parseInt($("select#age").val());
	if (10 < age) {
		$("#ageToolQuestion").css("display", "none");
	}
	else {
		$("#ageToolQuestion").css("display", "block");
	}
}

function clearAgeBasedTool(oPar) {
    $('#sideBar').find(":checkbox:checked").attr('checked',0);
    $('#sideBar').find("#name").val('');
    $('#sideBar').find("#age").attr('selectedIndex',0);
}

function showResultBehaviourTool(popup) {
	var anyYes = popup.find(":radio:checked[id$=y]").length > 0;
	var isValid = validateBehaviourTool(popup);
	
	if (isValid) {
		if (anyYes) {
			tb_show('','popup_behavior_result_yes.html?KeepThis=true&amp;TB_iframe=true&amp;width=618&amp;height=516&amp;modal=true','');
		} else {
			tb_show('','popup_behavior_result_no.html?KeepThis=true&amp;TB_iframe=true&amp;width=618&amp;height=516&amp;modal=true','');
		}
		return true;
	} else {
		return false;
	}
}

function validateSubmitStory(popup) {
	var isValid = true;
	var errorMessages = popup.find(".ErrorBox ul li");
	var errorMessagesCA = popup.find(".ErrorBoxCatchAll");
	var errorRequired = popup.find(".RequiredNotice");

	var name = popup.find("#fromname");
	var address = popup.find("#address1");
	var emailAddress = popup.find("#from");
	var storyText = popup.find("#story");
	var image = popup.find("#userphoto");

	resetErrorIndicators(popup);

	if (!validateInputs(validateRequired, name, emailAddress, storyText)) {
		errorRequired.addClass("Error");
		isValid = false;
	}
	if (!$("#legal:checked").length > 0) {
		errorMessagesCA.css("display", "block");
		errorRequired.addClass("Error");
		$("#legal").next().addClass("Error");
		isValid = false;
	}
	if (!validateInputs(validateImagePath, image))
		isValid = false;
	if (!validateInputs(validateName, name)) {
		errorMessages.eq(0).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateEmail, emailAddress)) {
		errorMessages.eq(1).css("display", "block");
		isValid = false;
	}
	if (!validateInputs(validateText3000, storyText)) {
		errorMessages.eq(2).css("display", "block");
		isValid = false;
	}
	return isValid;
}

function setRemoveBtnStatus() {
	var image = $("input#userphoto");
	if (image.val() != "") {
		$("#removePhoto").css("display", "block");
	}
	else {
		$("#removePhoto").css("display", "none");
	}
}
function removePhoto() {
	$("input#userphoto").val("");
	$("#removePhoto").css("display", "none");
}

$(document).ready(function() {
    if($.cookie('bAccessible')) {
        $('*').removeAttr("onclick");
        return false;
    }
});


