// JavaScript Document
var xmlCommHttp
var xmlCheckUserHttp;

function validation(dynamic,str,filename) 
{
	var element;
   	var FirstError = '';
	var lastElement = '';
	var Content = '';
	var last = '';
	var lcon = '';
	var radioErr = '';
	var prvPass = '';
	var prvEmail = '';
	var QueryString = '';
	var totData = '';
	var xmlInsertHttp;
   	for (i = 0; i < dynamic.elements.length; i++) 
	{
        element = dynamic.elements[i];
		
		//alert(element.name);
		
			if(str.search(element.name)==-1)
			{
			
				
		switch (element.type) 
		{
			 
            case 'text':
			//alert(element.name);
			if(element.value=="")
			{
				document.getElementById(element.name+"_err").innerHTML="Required";
				//document.getElementById(element.name+"_label").className="err_content";
				FirstError += element.name + ",";
				
			}  
			else
			{
				totData += element.name + '=' + escape(element.value) + '&';
				document.getElementById(element.name+"_err").innerHTML="";
				//document.getElementById(element.name+"_label").className="content";
				QueryString += element.name + "=" + element.value + "&";
				var myval = element.name;
				if(myval.search("email")!=-1 || myval.search("mail")!=-1) {
					if(isNotEmail(element.value)) {
							document.getElementById(element.name+"_err").innerHTML=" <font color=red> Not valid Email!!</font>";
							//document.getElementById(element.name+"_label").className="err_content";
							FirstError += element.name + ",";
					}
					if(element.value!="" && prvEmail!="") {
						if(document.getElementById(prvEmail).value!=element.value) {
							document.getElementById(element.name+"_err").innerHTML=" Email Doesn't Match!!";
							//document.getElementById(element.name+"_label").className="err_content";
							FirstError += element.name + ",";
						}
						
					}
					
				}
				if(myval.search("user_name")!=-1)
				{
					if (element.value.length<5)
					{
						document.getElementById(element.name+"_err").innerHTML=" <font color=red>Username must be atleast 5 characters</font>";
						//document.getElementById(element.name+"_label").className="err_content";
						FirstError += element.name + ",";	
					}
				}
				
				if(myval.search("mobile")!=-1)
				{
					
					if(isNaN(element.value) || !element.value.match(/^\d{10}$/) )
					{
						
						document.getElementById(element.name+"_err").innerHTML=" Enter valid 10 Numbers!!";
						//	document.getElementById(element.name+"_label").className="err_content";
							FirstError += element.name + ",";
							
					} }
				if(element.name=="uname") {
				var unameValue = element.value;
				}
				
				
				
				
			}
			
			
				
			break;
			
			case 'textarea':
        	if(element.value=="")
			{
				document.getElementById(element.name+"_err").innerHTML="Required";
				//document.getElementById(element.name+"_label").className="err_content";
				FirstError += element.name + ",";
				
			}
			else
			{
				totData += element.name + '=' + escape(element.value)+ '&';
				document.getElementById(element.name+"_err").innerHTML="";
				//document.getElementById(element.name+"_label").className="content";
			}
            break;
			
			
			case 'password':
			
			
			if(element.name!=prvPass && prvPass!="") {
				if(document.getElementById(element.name).value!=document.getElementById(prvPass).value) {
					document.getElementById(element.name+"_err").innerHTML=" <font color=red>Passwords not matched</font>";
					//document.getElementById(element.name+"_label").className="err_content";
					FirstError += element.name + ",";
					
				} else {
					
					QueryString += element.name + "=" + element.value + "&";
					document.getElementById(element.name+"_err").innerHTML="";
					//document.getElementById(element.name+"_label").className="content";
				}
			
			} else {
				if(element.value=="")
				{
					document.getElementById(element.name+"_err").innerHTML="Required";
					//document.getElementById(element.name+"_label").className="err_content";
					FirstError += element.name + ",";
					
				} else if(element.value.length<5) {
					
					document.getElementById(element.name+"_err").innerHTML="<font color=red>Password must be atleast 5 characters</font>";
					//document.getElementById(element.name+"_label").className="err_content";
					FirstError += element.name + ",";
				}
				else
				{
					totData += element.name + '=' + escape(element.value) + '&';
					document.getElementById(element.name+"_err").innerHTML="";
					//document.getElementById(element.name+"_label").className="content";
					prvPass = element.name;
				}
				
			}
			
			break;
			
			case 'hidden':
        	if(element.value=="")
			{
				document.getElementById(element.name+"_err").innerHTML="Required";
				//document.getElementById(element.name+"_label").className="err_content";
				FirstError += element.name + ",";
				
			}
			else
			{
				totData += element.name + '=' + escape(element.value)+ '&';
				document.getElementById(element.name+"_err").innerHTML="";
				//document.getElementById(element.name+"_label").className="content";
			}
            break;
			
			case 'select-one':
        	if(element.value=="")
			{
				document.getElementById(element.name+"_err").innerHTML="Required";
				//document.getElementById(element.name+"_label").className="err_content";
				FirstError += element.name + ",";
				
			}	
			else
			{
				totData += element.name + '=' + escape(element.value) + '&';
				QueryString += element.name + "=" + element.value + "&";
				document.getElementById(element.name+"_err").innerHTML="";
				//document.getElementById(element.name+"_label").className="content";
			}	
            break;
            case 'radio':
				if (element.checked)
				{
				
              	 if (element.name == last)
			  	 {
				
				 if (lcon.lastIndexOf('&') == lcon.length-1)
				 {
					lcon = lcon.substr(0, lcon.length - 1);
				 }
                 lcon += ',' + escape(element.value);
                } else {
                  lcon += element.name + '=' + escape(element.value);
                }
                lcon += '&';
                last = element.name;
				document.getElementById(element.name+"_err").innerHTML="";
				//document.getElementById(element.name+"_label").className="content";
				
			} else {
			
					document.getElementById(element.name+"_err").innerHTML="Required";
					//document.getElementById(element.name+"_label").className="err_content";
							
				if(FirstError.search(element.name)==-1) {
				FirstError += element.name + ",";
				}
				
				
				
			}
			
			break;
                
			
            case 'checkbox':
			if (element.checked)
			{
			   if (element.name == lastElement)
			   {
				 if (Content.lastIndexOf('&') == Content.length-1)
				 {
					Content = Content.substr(0, Content.length - 1);
				 }
                 Content += ',' + escape(element.value);
                } else {
                  Content += element.name + '=' + escape(element.value);
                }
                Content += '&';
                lastElement = element.name;
				document.getElementById(element.name+"_err").innerHTML="";
				//document.getElementById(element.name+"_label").className="content";
				
			} else {
				document.getElementById(element.name+"_err").innerHTML="Required";
				//document.getElementById(element.name+"_label").className="err_content";
				
							
				if(FirstError.search(element.name)==-1) {
				FirstError += element.name + ",";
				}
				
			}
			break;
			default:
				totData += lcon;
				totData += Content;
				QueryString += Content;
				var result = Content.split("&");
				for(a=0;a<result.length-1;a++) {
					var newdata = result[a].split("=");
					if(newdata[1].length>0) {
						FirstError = FirstError.replace(newdata[0]+",","");
						document.getElementById(newdata[0]+"_err").innerHTML="";
						//document.getElementById(newdata[0]+"_label").className="content";
						
					}
				}
				QueryString += lcon;
				var res = lcon.split("&");
				for(b=0;b<res.length-1;b++) {
					var data = res[b].split("=");
					if(data[1].length>0) {
						FirstError = FirstError.replace(data[0]+",","");
						document.getElementById(data[0]+"_err").innerHTML="";
						//document.getElementById(data[0]+"_label").className="content";
						
					}
				}
				if(QueryString.length>255) {
					alert("QueryString is Grater than 255 :" + QueryString.length);
				}
				//alert(QueryString);
				if(FirstError.length>0) {
				var resErr = FirstError.split(",");
				document.getElementsByName(resErr[0])[0].focus();
				
				return false;
				}
				
					else if(filename.length>0) 
					{	
						if(filename=='ajax.php')
						{
							
							var url = filename + '?' + totData;
							//alert(url);
							xmlCommHttp=GetXmlHttpObject();
							xmlCommHttp.onreadystatechange=stateComm;
							xmlCommHttp.open("get",url,true);
							xmlCommHttp.send(null);
							return false;	
						}
						//alert("correct");
				return false;
				}
				break;
		}
    }
	else
	{ // (non mantadory fields)
		totData += element.name + '=' + escape(element.value)+ '&';
		//alert(totData);	
	}
  }

}

function isNotEmail(value)
{
    mailstr=value;
	
	a = mailstr.indexOf(".");

	b = mailstr.indexOf("@");

	c = mailstr.indexOf(" ");
	

	d = mailstr.lastIndexOf(".");

	e = mailstr.length;

	if( (a == -1) || (b == -1) || (c != -1) || (d < b) || ( d == e - 1) || (b+1 == a) )
	{
	  return true
	}
	else
	return false;
}

function removeNL(str) {
    var strClean = "";
    for (i=0; i < str.length; i++) {
        if (str.charAt(i) != '\n' &&
            str.charAt(i) != '\r' &&
            str.charAt(i) != '\t' &&
			str.charAt(i) != ' ') {
            strClean = strClean + str.charAt(i);
        }
    }
    return strClean;
}

function stateComm()	
{
	if (xmlCommHttp.readyState==4 || xmlCommHttp.readyState=="complete")
	{
		var restext = removeNL(xmlCommHttp.responseText);
		
		//alert(restext);
		
		if(restext=="reloadreview")
		{
			alert("Registered users only allow to give review.");
			window.location.href="login.php";	
		}
		else
		{
			if(restext=="mailsent")
			{
				alert("Mail has been sent");
			}
			else if(restext=="mailerror")
			{
				alert("Mail could not send due to some technical reason");	
			}
			else if(restext=="reviewpost")
			{
				alert("Review has been waiting for admin approval.");	
			}
			window.location.reload();
		}
	}
}

//Check User Id and Email id already Exist or not
function check_user(user_name,field_id)
{
	uname=user_name;
	fid=field_id;
	var myurl = "ajax.php?user_name="+user_name+"&field_id="+field_id;
	//alert(myurl);
	xmlCheckUserHttp=GetXmlHttpObject();
	xmlCheckUserHttp.onreadystatechange=stateCheckUser;
	xmlCheckUserHttp.open("get",myurl,true);
	xmlCheckUserHttp.send(null);
	
}

function stateCheckUser()	
{
		if (xmlCheckUserHttp.readyState==4 || xmlCheckUserHttp.readyState=="complete")
		{
				//alert(xmlCheckUserHttp.responseText);
				if(fid=="checkuser")
				{
					document.getElementById("checkusername_msg").innerHTML=xmlCheckUserHttp.responseText;	
				}
				else if(fid=="checkemail")
				{
					document.getElementById("checkemail_msg").innerHTML=xmlCheckUserHttp.responseText;	
				}
		}
}

//show status
function showstatus(recid,chec_status,div_res,field_type)
{
	rid=recid;
	cstatus=chec_status;
	dres = div_res;
	ftype = field_type;
	var myurl = "ajax.php?recid="+recid+"&chec_status="+chec_status+"&div_res="+div_res+"&field_type="+field_type;
	//alert(myurl);
	xmlCheckStatusHttp=GetXmlHttpObject();
	xmlCheckStatusHttp.onreadystatechange=stateCheckStatus;
	xmlCheckStatusHttp.open("get",myurl,true);
	xmlCheckStatusHttp.send(null);
	
}

function stateCheckStatus()	
{
		if (xmlCheckStatusHttp.readyState==4 || xmlCheckStatusHttp.readyState=="complete")
		{
			//alert(xmlCheckStatusHttp.responseText);
			if(ftype == "language_setting")
			{
				if(xmlCheckStatusHttp.responseText==1)
				{
					window.location.reload();	
				}
			}
		}
}


function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    var aVersions = [ "MSXML2.XMLHttp.5.0",
        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
        "MSXML2.XMLHttp","Msxm12.XMLHTTP","Microsoft.XMLHttp"];

    for (var i = 0; i < aVersions.length; i++) 
	 {
        try {
            var xmlHttp = new ActiveXObject(aVersions[i]);
            return xmlHttp;
            } 
		catch (oError) 
		   {
            //Do nothing
           }
    }
    }
  catch (e)
    {
    }
  }
  if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
return xmlHttp;
}

function pop_common(URL) 
{
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=580,height=600,left = 10,top = 10');");
}

function hideMessage(divid,redirect_url) 
{	
	document.getElementById(divid).style.display="none";
	if(redirect_url)
	{
		window.location.href=redirect_url; 
	}
}

function startTimer(divid,red_url) 
{
	d_id=divid;
	r_url=red_url;
	
	var tim = window.setTimeout("hideMessage(d_id,r_url)", 5000);  // 5000 milliseconds = 5 seconds
}

<!-- Text Area count characters
function tarea_counttext(field,field1,mlen)
{
		//alert(field);
		if(mlen=='')
		{
			maxLen = 100; // max number of characters allowed
		}
		else
		{
			maxLen = mlen; // max number of characters allowed	
		}
	if (document.getElementById(field).value.length >= maxLen) 
	{
		// Alert message if maximum limit is reached.
		// If required Alert can be removed.
		var msg = "You have reached your maximum limit of characters allowed";
		alert(msg);
		// Reached the Maximum length so trim the textarea
		document.getElementById(field).value = document.getElementById(field).value.substring(0, maxLen);
	}
	else
	{ 
		// Maximum length not reached so update the value of cv_skills counter
		//alert(document.getElementById(field).value.length);
		
		document.getElementById(field1).value = maxLen - document.getElementById(field).value.length;
	}
}

