function MM_openBrWindow(theURL,winName,features) 
{ //v2.0
  window.open(theURL,winName,features);
}

function isDate(IsItReal)
{
	if (IsItReal.value != "")
	{
		var valDate = IsItReal.value;
		var reg = /^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)[0-9][0-9]+)$/;
		if(reg.test(valDate))
			return true;
		else
		{
			//alert('- Invalid Date Format\n\nPlease Enter Date in mm/dd/yyyy Format, e.g."07/28/2006"')
			message = '- Invalid Date Format\n\nPlease Enter Date in mm/dd/yyyy Format, e.g."07/28/2006"';
			alert(message);
			IsItReal.focus();
			return false;
		}
	}
	else
	{	
		return true;
	}
}
function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++)
   {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         IsNumber = false;
         alert("- Invalid "+msg+".");
         return false;
   }
   if(sText < 0) {
    IsNumber = false;
    alert("- Invalid "+msg+".");
    return false;
   }
   return true;
}

function isBlank(obj,objval,msg)
{
	if(objval == "") {
		message = "- " + msg + " is required.";
		alert(message);
        if(obj) {
            if(obj.type != 'textarea')
    			obj.focus();
        }
		return false;
	}
	else
	   return true;
}

function isBlankAutoComplete(obj,objval,msg)
{
	if(objval == "")
	{
		//alert("- " + msg + " is required.");
		message = "- " + msg + " is required.";
		//message = "- " + msg;
		alert(message);
		return false;
	}
	else
	return true;
}
function trimString(sString)
{
	return sString.replace(/^\s+|\s+$/g, "");
}

function replaceLabel(str) {
    str = str.split('_').join(' ');
    str = str.toLowerCase().replace(/\b[a-z]/g, cnvrt);
    if(str.indexOf("tsa")) {
        str = str_ireplace("tsa","TSA",str);
    }
    return str;
    function cnvrt() {
        return arguments[0].toUpperCase();
    }
}

function trimAll(obj)
{
    sString = obj.value;
	while (sString.substring(0,1) == ' ')
	{
	sString = sString.substring(1, sString.length);
	}
	
	while (sString.substring(sString.length-1, sString.length) == ' ') {
	   sString = sString.substring(0,sString.length-1);
	}
    obj.value = sString;
	return sString;
}

function isEmail(IsItReal,IsItRealval,name)
{
	if (IsItRealval != "")
	{
		var valEmail = IsItRealval;
		var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if(reg.test(valEmail))
			return true;
		else
		{
			//alert('- Invalid '+name+'.')
			
			message = "- Invalid "+name+".";
			//message = "- "+name;
			alert(message);
			IsItReal.focus();
			return false;
		}
	
	}
	else
	{
		//alert('- '+name+' is required.')
		
		
		message = '- '+name+' is required.';
		alert(message);
		IsItReal.focus();
		return false;
	}
		
}

function isURL(obj,name)
{
    val = obj.value;
    if(val.match(/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
        alert(val);
        return false;
    }
    else {
        alert("- Invalid "+name+".");
        obj.focus();
        return false;
    }
	return true;
}


function isImage(obj)
{
	if (obj.length>0)
	{
		if (obj.length>4)
		{
			//var ext = obj.substring(obj.length-3,obj.length);
            var ext = obj.substring(obj.lastIndexOf(".")+1); //for checking last index in dot for file extension Added by Janki 
            
			if (ext == 'jpg' || ext == 'JPG' || ext == 'jpeg' || ext == 'JPEG' || ext == 'gif' || ext == 'GIF' || ext == 'png' || ext == 'PNG' || ext == 'bmp' || ext == 'BMP')
			{
				return true;

			}
			else
			{
				//alert('- Upload Only .jpg,.gif Or .png File!')
				message = '- Upload only .jpg,.gif,.bmp or .png file!';
				alert(message);
				obj="";
				return false;
			}
		}
		else
		{
			//alert('- Upload Only .jpg,.gif or .png File!')
			message = '- Upload only .jpg,.gif or .png file!';
			alert(message);
			obj="";
			return false;
		}
	}
	else 
	return true;
	
}
function isVideo(obj)
{
    if (obj.length>0)
    {
        if (obj.length>4)
        {
                
            var ext = obj.substring(obj.length-3,obj.length);
            //if (ext == 'flv' || ext == 'FLV' || ext == 'mp4' || ext == 'MP4')
            if (ext == 'wmv' || ext == 'WMV' || ext == 'mov' || ext == 'MOV' || ext == 'flv' || ext == 'FLV' || ext == 'mp3' || ext == 'MP3' || ext == 'mp4' || ext == 'MP4' || ext == 'mpg' || ext == 'MPG' || ext == 'mpeg' || ext == 'MPEG' || ext == 'ogg' || ext == 'OGG')
            {
                return true;

            }
            else
            {
                //message = '- Upload only .wmv, .mov, .flv, .avi, .mp4, .mpg or .mpeg file!';
                message = '- Upload only video files!';
                alert(message);
                obj="";
                return false;
            }
        }
        else
        {
            //alert('- Upload Only .jpg,.gif or .png File!')
            message = '- Upload only .flv , .mp4 file only!';
            alert(message);
            obj="";
            return false;
        }
    }
    else 
    return true;
    
}
function isPDF(obj)
{
    if (obj.length>0)
    {
        if (obj.length>4)
        {
                
            var ext = obj.substring(obj.length-3,obj.length);
            if (ext == 'pdf' || ext == 'PDF')
            {
                return true;
            }
            else
            {
                message = '- Upload only .pdf files!';
                alert(message);
                return false;
            }
        }
        else
        {
            message = '- Upload only .pdf files!';
            alert(message);
            return false;
        }
    }
    else
        return true;
    
}
function isCSV(obj)
{
    if (obj.length>0)
    {
        if (obj.length>4)
        {
                
            var ext = obj.substring(obj.length-3,obj.length);
            if (ext == 'csv' || ext == 'xls')
            {
                return true;

            }
            else
            {
                message = '- Upload only .csv or .xls files!';
                alert(message);
                obj="";
                return false;
            }
        }
        else
        {
            message = '- Upload only .csv or .xls file only!';
            alert(message);
            obj="";
            return false;
        }
    }
    else 
    return true;
    
}


function isAudio(obj)
{
	if (obj.length>0)
	{
		if (obj.length>4)
		{
				
			var ext = obj.substring(obj.length-3,obj.length);
			/*if (ext == 'mp3' || ext == 'MP3' || ext == 'midi' || ext == 'MIDI' || ext == 'wav' || ext == 'WAV' || ext == '.rm' || ext == '.RM')*/
			if (ext == 'mp3' || ext == 'MP3')
			{
				return true;
			}
			else
			{
				//message = '- Upload only mp3, midi, rm or wav files only!';
				message = '- Upload mp3 files only!';
				alert(message);
				obj="";
				return false;
			}
		}
		else
		{
			//message = '- Upload only mp3, midi, rm or wav files only!';
			message = '- Upload mp3 files only!';
			alert(message);
			obj="";
			return false;
		}
	}
	else 
	return true;
	
}

function isProperName(sText,msg)
{
    var ValidChars = " .ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'-";
    IsName = true
    var Char;
    for (i = 0; i < sText.length && IsName == true; i++) {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1) {
        IsName = false;
        alert("- "+msg+" should contain only alphabets, white space, quote('), hyphen and dot.");
        return false;
      }
    }
    return true;
}

function isPrice(IsPrice)
{
	
	if (IsPrice.value != "")
	{
		var valPrice = IsPrice.value;
		var reg = /^\d+(\.\d{2})?$/;
		if(reg.test(valPrice))
			return true;
		else
		{
			//alert('- Invalid Price!')
			strobjid = IsPrice.id;
			message = '- Invalid Price!';
			alert(message);
			IsPrice.focus();
			return false;
		}
	}
	else
	{	
		return true;
	}
}


function confirmpass(pass,cpass,lbl)
{
	if(pass.value != "" && cpass.value != "" )
	{
		if(pass.value != cpass.value)
		{
			//alert(" - Your confirm "+lbl+" does not match with "+lbl+".");
			message = " - Your confirm "+lbl+" does not match with "+lbl+".";
			alert(message);
			pass.focus();
			return false;
		}
		
	}return true;
}

function searchKeyPress(event)
{
    if (event.which || event.keyCode) {
        if ((event.which == 13) || (event.keyCode == 13)) {
            document.getElementById('Search').click();
            return false;
        }
    }
}

function isPhone(sText,msg) 
{
    //var ValidChars = "+-()0123456789 ";
    var ValidChars = "+-()0123456789/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,. ";
    var IsNumber=true;
    var Char;
    for (i = 0; i < sText.length && IsNumber == true; i++)
    {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
            alert("- "+msg+" should contain only numbers, round brackets \"()\", hypen, slash \"/\", dot \".\" and white space .");
            return false;
        }
    }
    return true;
}

function isAlphabet(sText,msg) {
    var ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var IsAlpha=true;
    var Char;
    for (i = 0; i < sText.length && IsAlpha == true; i++)
    {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsAlpha = false;
            alert("- "+msg+" should contain only alphabets.");
            return false;
        }
    }
    return true;
}

function isAlphaNumericStar(sText,msg) {
    var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz*";
    var IsAlpha=true;
    var Char;
    for (i = 0; i < sText.length && IsAlpha == true; i++)
    {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsAlpha = false;
            alert("- "+msg+" should contain only alphabets, numbers and *.");
            return false;
        }
    }
    return true;
}

function isLatLon(sText,msg) 
{
   var ValidChars = "-.0123456789";
   IsNumber = true
   var Char;
   
   for (i = 0; i < sText.length && IsNumber == true; i++) {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
         alert("- "+msg+" should contain only numbers, hyphen, and decimal .");
         return false;
      }
   }
   if (sText.split(".").length-1 < 1) {
        alert("1 decimal required for "+msg+".");
        return false;
   }
   else if (sText.split(".").length-1 > 1) {
        alert("No more than 1 decimal should be there for "+msg+".");
        return false;
   }
   return true;
}
function hasNumber(t,msg)
{
    if(/\d/.test(t))
        alert("- "+msg+" should not contain numbers.");
    else
        return true;
}

function isAlphaNumeric(sText,msg)
{
    var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var IsAlphaNumber=true;
    var Char;
    for (i = 0; i < sText.length && IsAlphaNumber == true; i++)
    {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsAlphaNumber = false;
            alert("- Invalid "+msg+".");
            return false;
        }
    }
    return true;
}

function validateUsername(obj,objVal) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (objVal == "") {
        error = "- User Name is required.";
        alert(error);
        obj.focus();
        return false;
    } 
    if ((objVal.length < 5) || (objVal.length > 15)) {
        error = "Please enter User Name between 5 and 15 characters";
        alert(error);
        obj.focus();
        return false;
    } 
    if (illegalChars.test(objVal)) {
        error = "The User Name contains illegal characters.";
        alert(error);
        obj.focus();
        return false;
    } 
    return true;
}

function strip_tags(obj, msg) {
    /*str=obj.value;
    if(str) {
        if(str.match(/([\<])([^\>]{1,})*([\>])/i)) {
            alert("- "+msg+" should not contain tags.");
            obj.focus();
            return false;
        }
        else {
            return true;
        }
    }
    return true;*/
    var data = obj.value;
    if(data) {
        var iChars = "<>";
        for (var i = 0; i < data.length; i++) {
            if (iChars.indexOf(data.charAt(i)) != -1) {
                alert("- "+msg+" should not contain tags < and >.");
                obj.focus();
                return false;
            }
        }
    }
    return true;
}

function noSpecialCharacter()
{
    var data = obj.value;
    if(data) {
        //var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_"; 
        //var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
        for (var i = 0; i < data.length; i++) {
            if (iChars.indexOf(data.charAt(i)) != -1) {
                alert ("Your string has special characters. \nThese are not allowed.");
                return false;
            }
        }
    }
    return true;
}

function str_ireplace (search, replace, subject)
{
    var i, k = '';
    var searchl = 0;
    var reg;

    var escapeRegex = function (s) {
        return s.replace(/([\\\^\$*+\[\]?{}.=!:(|)])/g, '\\$1');
    };

    search += '';
    searchl = search.length;
    if (!(replace instanceof Array)) {
        replace = [replace];
        if (search instanceof Array) {
            // If search is an array and replace is a string,
            // then this replacement string is used for every value of search
            while (searchl > replace.length) {
                replace[replace.length] = replace[0];
            }
        }
    }

    if (!(search instanceof Array)) {
        search = [search];
    }
    while (search.length > replace.length) {
        // If replace has fewer values than search,
        // then an empty string is used for the rest of replacement values
        replace[replace.length] = '';
    }

    if (subject instanceof Array) {
        // If subject is an array, then the search and replace is performed
        // with every entry of subject , and the return value is an array as well.
        for (k in subject) {
            if (subject.hasOwnProperty(k)) {
                subject[k] = str_ireplace(search, replace, subject[k]);
            }
        }
        return subject;
    }

    searchl = search.length;
    for (i = 0; i < searchl; i++) {
        reg = new RegExp(escapeRegex(search[i]), 'gi');
        subject = subject.replace(reg, replace[i]);
    }

    return subject;
}
