function tcse_validate_email(value)
{
   var email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(email.test(value) == false)
   return false;
   else
   return true;
}
function tcse_validate_web(value)
{
   var web = /^\http:\/\/([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
      var web2 = /^\https:\/\/([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var web1=/^\www\.([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(web.test(value) == true || web1.test(value) == true || web2.test(value) == true)
   return true;
   else
   return false;
}
function tcse_validate_date(value)
{
	
   var da=String(value).split('-');
   da[0]=parseInt(da[0],10);
   da[1]=parseInt(da[1],10);
   da[2]=parseInt(da[2],10);
if(isNaN(da[0]) || isNaN(da[1]) || isNaN(da[2]) || da[1]<1 || da[1]>12 || da[2]>31 || da[2]<1 || da.length!=3 || (da[0]%4==0 && da[1]==2 && da[2]>29) || (da[0]%4!=0 && da[1]==2 && da[2]>28) || ((da[1]==4 || da[1]==6 || da[1]==9 || da[1]==11) && da[2]>30))
   return false;
   else
   return true;
}
function tcse_validate_name(value)
{
if(value.replace(/^\s*|\s*$/g,'')=='')
return false;
var strValidCharss = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
   if(tcse_validate_strin(value,strValidCharss))
   return true;
   else
   return false; 
}
function tcse_validate_number(value)
{

var strValidChars = "0123456789";
 var blnResult=tcse_validate_strin(value,strValidChars);
   if(blnResult==true)
   return true;
   else
   return false; 
}
function tcse_validate_length(value,mini,maxi)
{

	if(value.length<mini && mini!='')
	return false;
	else if(value.length>maxi  && maxi!='')
	return false;
	else
	return true;
}
function tcse_validate_cmp(value1,value2)
{
	if(value1==value2)
	return true;
	else
	return false;
}
function tcse_validate_strin(value,value1)
{
if(value.replace(/^\s*|\s*$/g,'')=='')
return false;
		var blnResult = true;
	  var strValidChars = value1;
      var strString=value;
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   if(blnResult==true)
   return true;
   else
   return false; 
}
function tcse_validate_notnull(value)
{
if(value.replace(/^\s*|\s*$/g,'')=='')
return false;
else
return true;
}

function tcse_validate_form(form_name,val_4_alert,error_before,error_after,error_style,id_error_style,success,id_success_style,check_row_url,check_row_name)
{
	var id_for_dispaly_all='';
	if(val_4_alert=='')
	val_4_alert=2;
	else if(val_4_alert!=1)
	id_for_dispaly_all=val_4_alert;
			var error_title='';		
			if(id_for_dispaly_all!='')
              document.getElementById(id_for_dispaly_all).innerHTML='';
var error_report=false;
   var form = document.forms[form_name];
   
for (k = 0; k < form.elements.length; k++)
{
	if( $("#" + form_name + "_id_" + k).length!=0 && val_4_alert==2 || id_for_dispaly_all!='')	
	$('#' + form_name + '_id_' + k ).remove();
}
	
    for (k = 0; k < form.elements.length; k++) {

		if(String(form.elements[k].name)!='' && String(form.elements[k].name)!='undefined' && String(form.elements[k].type)!='hidden')
		{
  var altr='';
  var spli='';
  var error='';
var  name_to_error=form.elements[k].name.split("#");
            altr=String(name_to_error[0]);
			var	value=form.elements[k].value;
			spli=altr.split("-");
			
if(spli.length>1)
{

			if(String(spli[2])=='*' || value!='')	
{
		if(spli[2]!='*')
	{
  var temp=spli[2];  
  spli[4]=spli[3];
    spli[3]=temp;
	}
				if(spli[1]=='alpha')
				{
					if(!tcse_validate_name(value))
					error ='Must be alphabets';
				}
				if(spli[1]=='email')
				{
					if(!tcse_validate_email(value))
					error = 'Not valid email';
				}
				if(spli[1]=='num')
				{
					if(!tcse_validate_number(value))
					error = 'Must be numeric';
				}
								if(spli[1]=='web')
				{
					if(!tcse_validate_web(value))
					error = 'Not valid Web Address';
				}
												if(spli[1]=='date')
				{
					if(!tcse_validate_date(value))
					error = 'Must be yyyy-mm-dd';
				}
																if(spli[1]=='nn')
				{
					if(!tcse_validate_notnull(value))
					error = 'Must be not null';
				}
				
					if(String(spli[3])!='' && String(spli[3])!='undefined')
					{
						if(!tcse_validate_length(value,spli[3],'') )
						{
							
							if(error!='')
						error = error + ' and ';
					error =error + 'Minimum ' + spli[3] + ' characters';
						}
					}
					if(String(spli[4])!='' && String(spli[4])!='undefined')
					{
						if(!tcse_validate_length(value,'',spli[4]))
						{
							if(error!='')
						error = error + ' and ';
					error =error + 'Maximum ' + spli[4] + ' characters';
						}
					}
						
					
                }
				
				
						if(check_row_url!='' && error=='' && String(form.elements[k].name)==check_row_name)
	                  {			
					 

  var kk=k;
  error_title=spli[0];
  

var res_ajax = ajax(check_row_url);
error_report=	tcse_display_form_error(res_ajax,error_title,error_report,error_before,error_after,val_4_alert,success,id_for_dispaly_all,error_style,id_error_style,id_success_style,form_name,kk);
if(res_ajax=='' && error_report==false)
error_report=false;
else
error_report=true;
						}
						else
						{
					error_report=	tcse_display_form_error(error,spli[0],error_report,error_before,error_after,val_4_alert,success,id_for_dispaly_all,error_style,id_error_style,id_success_style,form_name,k);
						}
					   
					}

					
		
		
		}
    
    }

	if(error_report==false)
	return true;
	else
	return false;

}

function tcse_display_form_error(error,spli0,error_report,error_before,error_after,val_4_alert,success,id_for_dispaly_all,error_style,id_error_style,id_success_style,form_name,k)
{

				 var form = document.forms[form_name];
	         	var error1='';
					
										if(error!='')
					{
						error = spli0 + ' ' + error;
					error_report=true;
					error=error_before + error + error_after;
					error1=error;
					}
					if(error!='' && val_4_alert==1)
					alert(error);
					if((val_4_alert==2 || id_for_dispaly_all!='') && (error !='' || success !='' || id_success_style!=''))
					{
						   if(error=='')
						   {
							   if(id_success_style!='')
							   {
							   var id_suc=id_success_style.split('=');
							   var id_vl=id_suc[1].split('"');
							   								   if(id_vl.length<2)
								   {
									  var id_vl=id_suc[1].split("'");  
								   }
							   }
            						   error=success;
						   }
						   else
						   {
							   if(id_error_style!='')
							   {
							   var id_suc=id_error_style.split('=');
	     					   var id_vl=id_suc[1].split('"');
							   								   if(id_vl.length<2)
								   {
									  var id_vl=id_suc[1].split("'");  
								   }
							   }
								 
							  
						   }
						   if((id_error_style!='' && error1!='') || id_success_style!='')
						   {
						   						$(document).ready(function(){
                                     if(String(id_suc[0]).toLowerCase()=='style')
									 {
												var sty=id_vl[1].split(';');
												for(p=0;p<sty.length-1;p++)
												{
													var stty=sty[p].split(':');
									 $(form.elements[k]).css(stty[0].replace(/^\s*|\s*$/g,''),stty[1].replace(/^\s*|\s*$/g,''));	
												}
									 }
									 else
									$(form.elements[k]).attr(id_suc[0],id_vl[1]);
												   });
					}
					
						if(id_for_dispaly_all!='' && error1!='')
						{
							var ni = document.getElementById(id_for_dispaly_all);
                        var newdiv = document.createElement('div');
                         newdiv.innerHTML = error + '<br>';
                         ni.appendChild(newdiv);
						}
						else if(id_for_dispaly_all=='')
						{
							if(error_style=='')
							error_style='style="display:inline;"';
$(document).ready(function(){

$(form.elements[k]).after( '<div id="' + form_name + '_id_' + k + '" ' + error_style + '>' + error + '</div>');
						   });
						}
						
}
else if(error=='' && $("#" + form_name + "_id_" + k).length!=0 && val_4_alert==2 || id_for_dispaly_all!='')
{
	$("#" + form_name + "_id_" + k).html('');
}
return error_report;
}
function tcse_set_cookie(name,value,days) {
	if (days) {
		if(days=='')
		days=30;
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function tcse_get_cookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function tcse_unset_cookie(name) {
	tcse_set_cookie(name,"",-1);
}

