//Funtion to Format Phone Number
function formatPhoneNumber(objTxt) {
    if (isValidPhone(objTxt.value)) {
        var result = objTxt.value.match(/^([+])?([0-9]{2})\s?([(]?[0]{1}[)]?)?\s?([0-9]){1}\s?([0-9]+)$/gi);
        
        objTxt.value = objTxt.value.replace(/^([+])?([0-9]{2})\s?([(]?[0]{1}[)]?)?\s?([0-9]){1}\s?([0-9]+)$/gi,"+$2 (0) $4 $5");
    }
}

//Function to validate input is a valid phone number format allow numeric and symbol +,-,(,)
function isValidPhone(val) {
	return (val.search(/(^([0-9|\,\-\+\(\)\s])*$)/gi) != -1)
}
//Function to Validate Username
function isValidUsername(val) {
    return (val.search(/[^\w|\-]/gi) == -1)
}
//Function to Validate Password Format
function isStrongPassword(val) {
    //return ((val.search(/^[a-zA-Z]{1,}[0-9]{1,}[^a-zA-Z0-9]{1,}/gi) != -1) && (val.search(/^.{8,}/gi) != -1))
    return ((val.search(/^(([A-Za-z]+[^0-9]*)([0-9]+[^\W]*)([\W]+[\W0-9A-Za-z]*))|(([A-Za-z]+[^\W]*)([\W]+[^0-9]*)([0-9]+[\W0-9A-Za-z]*))|(([\W]+[^A-Za-z]*)([A-Za-z]+[^0-9]*)([0-9]+[\W0-9A-Za-z]*))|(([\W]+[^0-9]*)([0-9]+[^A-Za-z]*)([A-Za-z]+[\W0-9A-Za-z]*))|(([0-9]+[^A-Za-z]*)([A-Za-z]+[^\W]*)([\W]+[\W0-9A-Za-z]*))|(([0-9]+[^\W]*)([\W]+[^A-Za-z]*)([A-Za-z]+[\W0-9A-Za-z]*))/gi) != -1) && (val.search(/^.{8,}/gi) != -1) && (val.search(/[<|>]/gi) == -1))
}

//Function to validate input is not empty string
function isEmpty(val) {
	return (val.search(/[^\s]/gi) == -1)
}

function isValidCharacter(val) {
    return (val.search(/[^\w]/gi) == -1)
}

function isValidFileExtension(val) {
	return (val.search(/.*(\.[Jj][Pp][Gg]|\.[Jj][Pp][Ee][Gg]|\.[Gg][Ii][Ff]|\.[Pp][Dd][Ff]|\.[Pp][Nn][Gg]|\.[Mm][Pp][Gg]|\.[Mm][Pp][Ee][Gg]|\.[Aa][Vv][Ii]|\.[Dd][Oo][Cc]|\.[Xx][Ll][Ss]|\.[Pp][Pp][Tt]|\.[Ff][Ll][Vv]|\.[Mm][Pp][3])/gi) != -1)
}
function isValidImageExtension(val) {
	return (val.search(/.*(\.[Jj][Pp][Gg]|\.[Jj][Pp][Ee][Gg]|\.[Gg][Ii][Ff])/gi) != -1)
}
function isValidPdfFormat(val) {
	return (val.search(/(.*\.(pdf)$)/gi) != -1)
}
function isValidFlashExtension(val) {
	return (val.search(/.*(\.[Ss][Ww][Ff])/gi) != -1)
}
//Function to validate input is in valid length
function isValidLength(val,len) {
	if (val.length)
		return (val.length <= len);
	else
		return false;
}

function isValidName(val) {
    return (val.search(/^[\w ]/gi) != -1)
}

//Function to validate input is a proper email string
function isValidEmail(val) {
	return (val.search(/^.+@[^\.].*\.[a-z]{2,}$/gi) != -1)
}

//Function to validate input is a proper date format (DD/MM/YYYY)
/*function isValidDate(val) {
	return (val.search(/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/gi) != -1)
}*/
function isValidDate(val) {
	var strExp;
	return (val.search(/^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/gi) != -1)
}

//Function to validate input is a proper unsign integer
function isValidInteger(val) {
	return (val.search(/[^0-9]/gi) == -1)
}

function isValidSignedInteger(val){
	    return (val.search(/^-{0,1}\d*\d+$/gi) != -1)
}

function isValidNumbers(val){
	    return (val.search(/^-{0,1}\d*\.{0,1}\d+$/gi) != -1)
}

function isPositiveNumbers(val){
	return (val.search(/(^\d*\.?\d*[0-9]+\d*$)|(^[1-9]+\d*\.\d*$)/gi) != -1)
}
//Function to Validate input is a valid URL format
function isValidUrl(val) {
	return ((val.search(/^http\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?$/gi) != -1) || (val.search(/^[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?$/gi) != -1))
}

//Function to Validate input is a valid Frienly URL format
function isValidFriendlyUrl(val) {
	return ((val.search(/[\\\/?&=\s]/gi) == -1))
}
/*
Validate two Date is valid range
1: date1 > date2
2: date1 < date 2
3: date1 = date2
*/
function dateCompare(iDay1,iMonth1,iYear1,iDay2,iMonth2,iYear2) {
	iDay1 = parseInt(iDay1,10);
	iMonth1 = parseInt(iMonth1,10);
	iYear1 = parseInt(iYear1,10);
	
	iDay2 = parseInt(iDay2,10);
	iMonth2 = parseInt(iMonth2,10);
	iYear2 = parseInt(iYear2,10);
	
	var result = 0;
	if (iYear1 > iYear2) {
		result = 1;
	}else if (iYear1 < iYear2) {
		result = 2;
	}else {
		if (iMonth1 > iMonth2) {
			result = 1;
		}else if (iMonth1 < iMonth2) {
			result = 2;
		}else {
			if (iDay1 > iDay2) {
				result = 1;
			}else if (iDay1 < iDay2){
				result =  2;
			}else {
				result = 3;
			}
		}
	}
	return result;
}

function isValidImageFormat(val) {
	return (val.search(/(.*\.(jpg|bmp|gif)$)/gi) != -1)
}

function isValidFlashFormat(val) {
	return (val.search(/(.*\.(swf)$)/gi) != -1)
}

function leftTrim(sString)
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    return sString;
}

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

function Trim(sString)
{
    sString = leftTrim(rightTrim(sString));
    return sString;
}

//Function to validate date must select
function getDateValue(objDD,objMM,objYY) {
    var dd = objDD.options[objDD.selectedIndex].value;
    var mm = objMM.options[objMM.selectedIndex].value;
    var yy = objYY.options[objYY.selectedIndex].value;
    var idd,imm,iyy;
    var result;
    var isDate = true;
    
    // check for select day
    if (isEmpty(dd))
        return false
    else if (!isValidInteger(dd))
    {
        result = false;
    }
    else
    {
        idd = parseInt(dd);
        if ((idd<1) || (idd>31))
            result = false;
    }
    
    if (isDate)
    {
        // check for select month
        if (isEmpty(mm))
            return false
        else if (!isValidInteger(mm))
        {
            result = false;
        }
        else
        {
            imm = parseInt(imm);
            if ((imm<1) || (imm>12))
                result = false;
        }
    }
    
    if (isDate)
    {
        // check for select year
        if (isEmpty(yy))
            return false
        else if (!isValidInteger(yy))
        {
            result = false;
        }
        else
        {
            iyy = parseInt(iyy);
            if (iyy<1) result = false;
        }
    }
    
    if (isDate)
    {
        result = dd + '/' + mm + '/' + yy
    } else {result = '';}
    
    return result;
}

function checkboxChecked(objChk)
{
	var check = false;
	var i=0;
	while (!check && i<objChk.length)
	{
		if (objChk[i].checked==true) 
			check = true;
		i++;
	}//while
	return check;
}//checkboxChecked

function radioChecked(objRdo)
{
	var check = false;
	var i=0;
	while (!check && i<objRdo.length)
	{
		if (objRdo[i].checked==true) 
			check = true;
		i++;
	}//while
	return check;
}//radioChecked

function tinyMCECustomCleanup(type, value) {
    switch (type) {
		case "get_from_editor":
			//alert("Value HTML string: " + value);

			// Do custom cleanup code here
			
			//Remove Style Attribute.
            //value = value.replace(/style="[^"]*"/gi,"");

            //Remove Font Face Attribute.
            value = value.replace(/face="[^"]*"/gi,"");

            //Remove Style Attribute.
            value = value.replace(/size="[^"]*"/gi,"");

            //Remove Class Attribute.
            value = value.replace(/class="[^"]*"/gi,"");

            //Remove Span Tag.
            value = value.replace(/<span[^>]*>/gi,"");
            value = value.replace(/<\/span[^>]*>/gi,"");
            
            value = value.replace(/<p>&nbsp;<\/p>/gi, '');
            value = value.replace(/<p><\/p>/gi, '');
            
            //Insert <p> if not have one.
            if ((value != '') && value.search(/<p[^>]*>/gi) == -1) {
                value = '<p>' + value + '</p>';
            }
			break;
	}

	return value;
}