function makeObject(){
var x;
var browser = navigator.appName;
//alert(browser);
if(browser == "Microsoft Internet Explorer"){
x = new ActiveXObject("Microsoft.XMLHTTP");
}else{
x = new XMLHttpRequest();
}
return x;
}

var request = makeObject();


var Validate = new Class({
	
	getOptions: function(){
		return {
			validateOnBlur: true,
			errorClass: 'error',
			errorMsgClass: 'errorMessage',
			dateFormat: 'dd/MM/yy',
			onFail: Class.empty,
			onSuccess: false,
			showErrorsInline: true,
			label: 'Please wait...'
		};
	},
	
	initialize: function(form, options){
		this.setOptions(this.getOptions(), options);
		
		this.form = $(form);
		this.elements = this.form.getElements('.val');
		
		this.list = [];
		
		this.elements.each(function(el,i){
			if(this.options.validateOnBlur){
				el.addEvent('blur', this.validate.bind(this, el));
			}
		}.bind(this));
		
		this.form.addEvent('submit', function(e){											
			var event = new Event(e);
			var doSubmit = true;
			this.elements.each(function(el,i){
				if(! this.validate(el)){
					event.stop();
					doSubmit = false
					this.list.include(el);
				}else{
					this.list.remove(el);
				}
			}.bind(this));
			
			if(doSubmit){
				if(this.options.onSuccess){
					event.stop();
					this.options.onSuccess(this.form);
				}else{
					this.form.getElement('input[type=submit]').setProperty('value',this.options.label);
				}
			}else{
				this.options.onFail(this.getList());
			}
			
		}.bind(this));
		
	},
	
	getList: function(){
		var list = new Element('ul');
		this.list.each(function(el,i){
			if(el.title != ''){
			var li = new Element('li').injectInside(list);
			new Element('label').setProperty('for', el.id).setText(el.title).injectInside(li);
			}
		});
		return list;
	},
	validate: function(el){
		var valid = true;
		this.clearMsg(el);
		//alert(el.type);
		switch(el.type){
			//case 'text':
			//case 'file':
			//case 'password':
			case 'textarea':
			//case 'select-one':
			if(el.getStyle('display')=='inline')
			
				if(el.value != 0){
					if(el.hasClass('email')){
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
							request.open('get', 'emailchk_emplr.php?email='+el.value);
	                        request.onreadystatechange = mcheck;
	                        request.send('');
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid email address');
						}
					}
					if(el.hasClass('emp_email')){
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
							request.open('get', 'emailchk_empyee.php?email='+el.value);
	                        request.onreadystatechange = mcheck;
	                        request.send('');
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid email address');
						}
					}
					if(el.hasClass('number')){
						var regNum = /[-+]?[0-9]*\.?[0-9]+/;
						if(el.value.match(regNum)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid number');
						}
					}
					if(el.hasClass('checkdate')){
						alert('asdfsfd');
						
					}
					
					if(el.hasClass('brows')){
						var len = el.value.length;
						var a= el.value.slice(len-4,len);
					   if ( a == ".jpg" || a == ".png" || a ==".jpg" || a ==".tif"  || a == ".gif" ||  a == ".JPG" || a == ".TIF" ||  a == ".PNG" || a == ".GIF" )
					   {
						   valid=true;
						}else{
							valid = false;
							this.setMsg(el, 'Please select only image file');
						}
					}
					if(el.hasClass('files')){
						
						var len = el.value.length;
						var a= el.value.slice(len-4,len);
					   if ( a == ".doc" ||  a == ".DOC" ||  a == ".docx" ||  a == ".DOCX" ||  a == ".pdf" ||  a == ".PDF" )
					   {
						   valid=true;
						}else{
							valid = false;
							this.setMsg(el, 'Please select the doc (or) docx (or) pdf  file');
						}
					}
					
					
					if(el.hasClass('url')){
						//var regNum = /^(http)\:\/\/\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#]\w+)*\/?$/;
						var regNum = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([- +_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
						if(el.value.match(regNum)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid URL');
						}
					}
					
					
					
					if(el.hasClass('phnumber')){
						//var regPh=/^[0-9]{10}$/;
						if(!isNaN(el.value)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'please enter number only');
						}
					}
					
					
					
					if(el.hasClass('name')){
						var regNam=/^[a-zA-Z][a-zA-Z 0-9]{2,49}$/;
						
						if(el.value.match(regNam)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Your Name must begin with a letter. Use 3 to 30 characters');
						}
					}
					if(el.hasClass('enames')){
						var regNam=/^[a-zA-Z][a-zA-Z 0-9]{2,120}$/;
						
						if(el.value.match(regNam)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Your Name must begin with a letter. Use 3 to 120 characters');
						}
					}
					if(el.hasClass('ckvalid')){
						
						var start=$("eStart").value;
						var end=$("eEnd").value;
						
						var start1 = start.split('/');
						var end1 = end.split('/');
						
						var syear = start1[0];
						var smonth = start1[1];
						var sdate = start1[2];
						
						var eyear = end1[0];
						var emonth = end1[1];
						var edate = end1[2];
						//alert(el.value);
						//alert(syear+" "+smonth+" "+sdate);
						//alert(eyear+" "+emonth+" "+edate);
						
						//var set = 0;
						
						if(syear == eyear)
						{
							if(smonth == emonth)
							{
								if(sdate > edate)
								{
									
									valid = false;
									this.setMsg(el, 'End Date should be greater than start date');
									
								}
							}
						}
						if(syear == eyear)
						{
							if(smonth > emonth)
							{
								//alert("end date should be greater than start date --- month");
								valid = false;
								this.setMsg(el, 'End Date should be greater than start date --- month');
								
							}
						}
						
						if(syear > eyear)
						{
							valid = false;
							this.setMsg(el, 'End Date should be greater than start date --- year');
							
							//alert("end date should be greater than start date ---- year");
						}
						
												
					}
					if(el.hasClass('password')){
						var regPas=/^\S{6,15}$/;
						if(el.value.match(regPas)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, '(Use 6 to 15 characters, no spaces)');
						}
					}

					if(el.hasClass('repass')){
							if(el.value == this.form.password.value){
								
								valid = true;
							}
							else{
								valid = false;
								this.setMsg(el, 'Please verify your password again');
							}
					}
					
					
					if(el.hasClass('review')){
						var regNam=/^[a-zA-Z][a-zA-Z0-9]$/;
						if(el.value.match(regNam)){
							var aaa = valid = true;
							
						}//else{
//							valid = false;
//							this.setMsg(el, 'Please Enter Your Reviews');
//						}
					}
					
					if(el.hasClass('postcode')){
						var regPC = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/
						if(el.value.match(regPC)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid postcode');
						}
					}
					
					if(el.hasClass('date')){
						var d = Date.parseExact(el.value, this.options.dateFormat);
						
						if(d != null){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid date in the format: '+this.options.dateFormat.toLowerCase());
						}
					}
					
				}else{
					if(el.hasClass('req')){
						valid = false;
						this.setMsg(el);
					}
				}
				break;
				
				
			case 'password':
					if(el.value==''){
					valid = false;
					//this.setMsg(el);
					this.setMsg(el, el.title);
				     }else{
				         regPas=el.value.length;
						if(regPas>=6 && regPas<=15){
							valid = true;
					  }else{
						valid = false;
						this.setMsg(el, '(Use 6 to 15 characters, no spaces)');
					   }
				    }
			     
						
				if(el.name='repass')
				{
				 if(el.value == document.getElementById('password').value){
						valid = true;
					}
					else{
						valid = false;
						this.setMsg(el, 'Please verify your password again');
					}
				}
				valid=true;
					
				break;	
				
			case 'file':
			          if(el.name='resume')
					  {
						  if(el.value!='')
						  {
							var len = el.value.length;
							var a= el.value.slice(len-4,len);
							   if ( a == ".doc" ||  a == ".DOC" ||  a == ".docx" ||  a == ".DOCX" ||  a == ".pdf" ||  a == ".PDF" )
							   {
								   valid=true;
								}else{
									valid = false;
									this.setMsg(el, 'Please select the doc (or) docx (or) pdf  file');
								}
						   }
					  }
					  
					  valid=true;
					  break; 
				
				
			case 'text':
				if(el.value==''){
					valid = false;
					//this.setMsg(el);
					this.setMsg(el, el.title);
				}else{
					//valid = true;
					if(el.name=='email')
					{
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
							request.open('get', 'emailchk_emplr.php?email='+el.value);
	                        request.onreadystatechange = mcheck;
	                        request.send('');
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid email address');
						}
					}
					
					
					if(el.name=='conmail')
					{
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid email address');
						}
					}
					
					if(el.name=='emailemp')
					{
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
							request.open('get', 'emailchk_empyee.php?email='+el.value);
	                        request.onreadystatechange = mcheck;
	                        request.send('');
						}else{
							valid = false;
							this.setMsg(el, 'Please enter a valid email address');
						}
					}
					
					if(el.name=='phone1' || el.name=='phone2' || el.name=='phone3' )
					{
						if(document.getElementById('country').value=='500')
						{
							document.getElementById('othrphone').value='000000';
							if(!isNaN(el.value)){
								valid = true;
							}else{
								valid = false;
								this.setMsg(el, 'please enter number only');
							}
						}
					}
					
					if(el.name=='othrphone')
					{
						if(document.getElementById('country').value!='500')
						{
							document.getElementById('ph1').value='000';
							document.getElementById('ph2').value='000';
							document.getElementById('ph3').value='0000';
						if(!isNaN(el.value)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'please enter number only');
						}
						}
					}
					
					
					if(el.name=='pract_phone1' || el.name=='pract_phone2' || el.name=='pract_phone3' )
					{
						if(document.getElementById('practicecountry').value=='500')
						{
							document.getElementById('practothrphone').value='000000';
							
							if(!isNaN(el.value)){
								valid = true;
							}else{
								valid = false;
								this.setMsg(el, 'please enter number only');
							}
						}
					}
					
					if(el.name=='zip')
					{
						if(!isNaN(el.value)){
							valid = true;
						}else{
							valid = false;
							this.setMsg(el, 'please enter number only');
						}
					}
					
					
					
					valid= true;
					
				}
				break;
				
				
				case 'select-one':
				if(el.value==''){
					valid = false;
					//this.setMsg(el);
					this.setMsg(el, el.title);
				}else{
					valid= true;
				}
				break;
				
			

			case 'checkbox':
				if(!el.checked){
					valid = false;
					//this.setMsg(el);
					this.setMsg(el, '(please accept terms & conditions)');
				}else{
					valid = true;
				}
				break;
				
			case 'radio':
				var rad = $A(this.form[el.name]);
				var ok = false;
				rad.each(function(e,i){
					if(e.checked){
						ok = true;
					}
				});
				if(!ok){
					valid = false;
					this.setMsg(rad.getLast(), 'Please select an option');
				}else{
					valid = true;
					this.clearMsg(rad.getLast());
				}
				
				break;
				
		}
		
		return valid;
	},
	
	setMsg: function(el, msg){
		if(msg == undefined){
			msg = el.title;
		}
		if(this.options.showErrorsInline){
			if(el.error == undefined){
				el.error = new Element('span').addClass(this.options.errorMsgClass).setText(msg).injectAfter(el);
			}else{
				el.error.setText(msg);
			}
			el.addClass(this.options.errorClass);
		}
	},
	
	clearMsg: function(el){
		el.removeClass(this.options.errorClass);
		if(el.error != undefined){
			el.error.remove();
			el.error = undefined;
		}
	}
	
});

Validate.implement(new Options);
Validate.implement(new Events);



function mcheck()
{

	
        if(request.readyState == 1)
        {
            document.getElementById('uemailload').innerHTML=   '<img  src="logimages/loading.gif">';
			document.getElementById('uemail').innerHTML= '';
        }
		if(request.readyState == 4)
        {
			document.getElementById('uemailload').innerHTML= '';
        	var answer = request.responseText;
			
			
			
			if(answer==1)
			{		
			document.getElementById('uemail').innerHTML ="Email Id Already Exists";
			document.getElementById('uemail1').innerHTML ="";
			}
			else if(answer==0)
			{			
			document.getElementById('uemail1').innerHTML ="Email Validated";
			document.getElementById('uemail').innerHTML ="";
			
			}
			
         }
}

/*************************************************************/



