﻿/************************************************************************************************************
 * Global Variables
 ***********************************************************************************************************/

var appPath = "/irdsinc.com/"; //"/";

String.prototype.trim = function(){ return this.replace(/^\s*/,"").replace(/\s*$/,"") };

/************************************************************************************************************
 * Status Messages
 ***********************************************************************************************************/
 
function StatusMessage(show, input, messageText, status)
{
    var message = $(input).parent().children("span.input-message");
    
    if(show)
        message.text(messageText);
    else
        message.text("");
        
    if(status == "Error")
        message.addClass("input-error");
    else
        message.removeClass("input-error");
}

function StatusMessageSelect(show, input, messageText, status)
{
    var message = $(input).parent().parent().children("span.input-message");
    
    if(show)
        message.text(messageText);
    else
        message.text("");
        
    if(status == "Error")
        message.addClass("input-error");
    else
        message.removeClass("input-error");
}

function HideMessage(input)
{
    StatusMessage(false, input, "", "");    
}

function HideMessageSelect(input)
{
    StatusMessageSelect(false, input, "", "");    
}
 
 /************************************************************************************************************
 * Validation
 ***********************************************************************************************************/

function RequiredFieldValidator(input)
{		
	var valid = $(input).val() != "";
	
    StatusMessage(!valid, input, "Required", "Error");
	
	return valid;
}

function RequiredFieldValidatorSelect(input)
{		
	var valid = $(input).val() != "";
	
    StatusMessageSelect(!valid, input, "Required", "Error");
	
	return valid;
}

function RangeValidator(input, min, max, message)
{
	var valid = $(input).val().length >= min && $(input).val().length <= max;
	
    StatusMessage(!valid, input, message, "Error");

    return valid;	
}

function RegularExpressionValidator(regExp, input, message) {
	var expression = new RegExp(regExp, "i");
	var match = expression.exec($(input).val());
	var valid = match != undefined && match.length > 0;
	
    StatusMessage(!valid, input, message, "Error");
	
	return valid;
}

function CompareValidator(input1, input2, message)
{
    var valid = $(input1).val() == $(input2).val();
	
    StatusMessage(!valid, input2, message, "Error");
	
	return valid;
}

function CheckedValidator(input)
{
	var valid = $(input).is(":checked");
	
    StatusMessage(!valid, input, "Required", "Error");
	
	return valid;
}

function LinkValidator(input, message)
{
    if ($(input).val() == "" || $(input).val() == "http://")
		return true;

	return RegularExpressionValidator("http:\\/{2}.*?youtube\\.com\\/watch\\?v=(.*)", input, message);
}

function ValidateTitle(input)
{
    return RequiredFieldValidator(input) && RangeValidator(input, 4, 75, "Minimum of 4 characters. Maximum of 75 characters.");
}

function ValidateUserName(input, register)
{
    if(!register)
	    return RequiredFieldValidator(input);
	else
	    return RequiredFieldValidator(input) && RangeValidator(input, 4, 20, "Minimum of 4 characters. Maximum of 20 characters.");
}

function ValidatePassword(input, register)
{
    if(!register)
	    return RequiredFieldValidator(input);
	else
	    return RequiredFieldValidator(input)
	        && RangeValidator(input, 6, 256, "Must be at least 6 characters long.")
	        && CompareValidator("#ctl00_ctl00_MainPlaceHolder_MainPlaceHolder_password", "#ctl00_ctl00_MainPlaceHolder_MainPlaceHolder_confirmPassword", "Password's do not match.");
}

function ValidateEmail(input)
{
    return RequiredFieldValidator(input)
        && RegularExpressionValidator("([\\w-]+(?:\\.[\\w-]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})", input, "The email you entered is not in a valid format, email@domain.com.");
}

function ToUrlFormat(val)
{
    var exp = new RegExp("[^0-9a-z -]","ig");
    var newval = val.trim().replace(exp,"");
    newval = newval.replace(/\s+/g,"-");
    
    return newval.toLowerCase()
}
