function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}


function validateString(str, type)
{
	//var entityStr = EntitiesToText("&#192;&#193;&#194;&#195;&#196;&#197;&#198;&#199;&#200;&#201;&#202;&#203;&#204;&#205;&#206;&#207;&#208;&#209;&#210;&#211;&#212;&#213;&#214;&#217;&#218;&#219;&#220;&#221;&#224;&#225; &#226;&#227;&#228;&#229;&#231;&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#241;&#242;&#243;&#244;&#245;&#246;&#249;&#250;&#251;&#252;&#253;&#255;&#256;&#257;&#258;&#259;&#260;&#261;&#262;&#263;&#264;&#265;&#266;&#267;&#268;&#269;&#270;&#271;&#272;&#273;&#274;&#275;&#276;&#277;&#278;&#279;&#280;&#281;&#282;&#283;&#284;&#285;&#286;&#287;&#288;&#289;&#290;&#291;&#292;&#293;&#294;&#295;&#296;&#297;&#298;&#299;&#300;&#301;&#302;&#303;&#304;&#305;&#306;&#307;&#308;&#309;&#310;&#311;&#312;&#313;&#314;&#315;&#316;&#317;&#318;&#319;&#320;&#321;&#322;&#323;&#324;&#325;&#326;&#327;&#328;&#329;&#330;&#331;&#332;&#333;&#334;&#335;&#336;&#337;&#338;&#339;&#340;&#341;&#342;&#343;&#344;&#345;&#346;&#347;&#348;&#349;&#350;&#351;&#352;&#353;&#354;&#355;&#356;&#357;&#358;&#359;&#360;&#361;&#362;&#363;&#364;&#365;&#366;&#367;&#368;&#369;&#370;&#371;&#372;&#373;&#374;&#375;&#376;&#377;&#378;&#379;&#380;&#381;&#382;&#383;");
	//alert(entityStr);
	if(type == "strspace")    			//Only Characters and Spaces are allowed
		reg = "^[A-Za-z\\s]*$";

	if(type == "str")					//Only Characters are allowed
		reg = "^[A-Za-z]*$";

	if(type == "strnumspace")			//Only Characters, number and Spaces are allowed
		reg = "^[A-Za-z0-9\\s]*$";

	if(type == "strnum")				//Only Characters and numbers are allowed
		reg = "^[A-Za-z0-9]*$";

	if(type == "userid")				//Only Characters and Numbers are allowed but first letter should be character
		reg = "^[A-Za-z]+[A-Za-z0-9]*$";

	if(type == "numspace")				//Only Characters and Spaces are allowed
		reg = "^[0-9\\s]*$";

	if(type == "num")					//Only Numbers are allowed
		reg = "^[0-9]*$";

	if(type == "spacebetween")			//Only Spaces are there in Between
		reg = "[\\s]+";

	if(type == "email")					//Valid Email ID a@b.c
		reg = "^(([a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9])|([a-zA-Z0-9]))@(([a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9])|([a-zA-Z]))\\.(([a-zA-Z][a-zA-Z\\.]*[a-zA-Z])|([a-zA-Z]))$";

	if(type == "telephone")				//Valid Telephone Number 	+ (91) (120) 3054300
		reg = "^((\\+{0,1}([0-9\\s\\-\\.])*[0-9]+))$";

	if(type == "weburl")				//Valid Web URL
		reg = "^(www\\.){1}(([a-zA-Z0-9][\\w\\.\\-]*[a-zA-Z0-9])|([a-zA-Z]))\\.(([a-zA-Z][a-zA-Z\\.]*[a-zA-Z])|([a-zA-Z]))$";

	if(type == "strnumspacedot")		//Only Characters, number, spaces and dot are allowed
		reg = "^[A-Za-z0-9\\s\\.]*$";

	if(type == "address")
		reg = "^[A-Za-z0-9\\s\\.&\-\/:\\\\]*$";

	if(type == "numdot")		//Only Characters, number, spaces and dot are allowed
		reg = "^[0-9\\.]*$";
	if(type == "year")		//phone no.
		reg = "^[0-9-+]{2,4}$";


	//alert(reg);
	str = trim(str);
	var myReg = new RegExp(reg);
	return str.match(myReg);
}

function validateElement(elementRef, isCompulsory, type, msg)
{
	if(elementRef.parentNode)
	{
		tdRef = elementRef.parentNode;
	}
	else if(elementRef.parentElement)
	{
		tdRef = elementRef.parentElement;
	}
	if(isCompulsory && trim(elementRef.value) == "" && msg!='')
	{
		displayMessage(tdRef,msg);
		tdRef.focus();
		return false;
	}
	else if(isCompulsory && trim(elementRef.value) == "")
	{
		displayMessage(tdRef,'');
		//displayMessage(tdRef,'Can not be left blank.');
		tdRef.focus();
		return false;
	}

	else if(isCompulsory && trim(elementRef.value) != "")
	{
		eraseMessage(tdRef);
	}
	if(type != '')
	{
		if(!validateString(elementRef.value,type))
		{
			displayMessage (tdRef, msg);
			return false;
		}
		else
		{
			eraseMessage(tdRef);
		}
	}
	return true;
}

function displayMessage(tdRef, msg)
{
	var errSpanArray = tdRef.getElementsByTagName('span');
	if(errSpanArray.length > 0)
	{
		if(msg=='XXX')
		errSpanArray[0].innerHTML ='';
		else
		errSpanArray[0].innerHTML =' '+msg;
	}
	else
	{
		var tempHTML = tdRef.innerHTML;
		if(msg=='XXX')
		tdRef.innerHTML = tempHTML + "";
		else
		tdRef.innerHTML = tempHTML + "<br/><span style='color:#990000;font-weight:normal;font-family:Arial, Helvetica, sans-serif;font-size:10px;'>" + msg + "</span>";
	}
}

function eraseMessage(tdRef)
{
		var errSpanArray = tdRef.getElementsByTagName('span');
		if(errSpanArray.length > 0)
		{
			errSpanArray[0].innerHTML = "";
		}
}

function validateComboElement(elementRef, msg)
{
	if(elementRef.parentNode)
	{
		tdRef = elementRef.parentNode;
	}
	else if(elementRef.parentElement)
	{
		tdRef = elementRef.parentElement;
	}

	if(trim(elementRef.value) == "0")
	{
		displayMessage(tdRef, msg);
		//elementRef.focus();
		return false;
	}

	else if(trim(elementRef.value) != "0")
	{
		eraseMessage(tdRef);
	}
	return true;
}



