// JavaScript Document
$().ready(function(){
$('form').live('submit',function(){
										
									return validateForm(this);										 
									 });
				   
	
		   
		//initialNotice()		
		$('input,textarea,select').live('blur',function(){ 
				//initialNotice($(this))	
			    //disableFormSubmit(this)
				//initialNotice(this);
			   // ajax_check_exist(this)
			   if($(this).parent().hasClass('required')){
				   if($(this).val()==""){
					   updateNotice('not empty',this)	
					   }else{initialNotice(this)}
				   }
				   
			  if($(this).hasClass('pwd')){
				     if($(this).val().length<6){
			           updateNotice('at lease 6 characters',this)
			           }					   
				   }
			  if($(this).hasClass('pwd2')){
						 if($(this).val()!=$('.pwd').val()){						
						   updateNotice('confirm password is invalid',this)
						   }
						   else{initialNotice(this)}
			  }	
			  
			    if($(this).hasClass('tag')){
					 //alert($(this).val())
					 //validForm(this)	
						 var tags=$(this).val().split(',');
						 var ln
						 for(var i=0; i<tags.length; i++){
							   ln=tags[i].length;
							  if(ln>35){
			                        updateNotice('the tag length is too long!'+'\n"'+tags[i]+'"',this)
									disableFormSubmit(this)									
									return false
			                        }
									else{
									validForm(this)   
										
										//initialNotice(this)	 
									}
								
							  }
						 
						
					
						  
						   
			  }	
			 
				   
				if($(this).hasClass('ajax_exist')){
					 ajax_check_exist(this)
				}
				
				if($(this).attr('name').indexOf('email')!=-1){
					if($(this).val==""){
						alert('empty')
					  updateNotice('not empty',this)						
					}else if(!isValidEmail($(this).val())){					     
					 updateNotice('invalid',this)		
										
				    } else{initialNotice(this)}

					
				}
				
				
				//alert('ooo')

							 
		})
function ajax_check_exist(triger){	
   
	 var email=$(triger).val();
	 //alert(email)
	 
	        //       if(email==""){
//					   updateNotice('not empty',triger)
//					   return false
//					 }
					   
				if(!isValidEmail(email)){					     
					 updateNotice('Invalid',triger)	
					 
					 return false					
				 }
				var disableExist=false	
				
				if($(triger).hasClass('subscribeEmail')){			
				   var disableExist=true
				}
				
	
	
	$.ajax({
				   type:'POST',
				   url:'/subscriptions/check_exist',
				   data:{'email':email},
				   before:function(){updateNotice('Checking',triger)},
				   success:function(data){	
				       if(data==1){
						 //exist
						  if(disableExist){
							 updateNotice('already in use',triger)
							 disableFormSubmit(triger)
							 
						  }
						  else{
							  	validForm(triger)

							  }
						  
					
					   }
					   else{
						   if(!disableExist){
							   
							 updateNotice('not exist',triger)
							 disableFormSubmit(triger)
							
						  }
						  else{	validForm(triger)}
						}
				   },
				   error:function(xhr){
					   //alert(xhr.statusText)
					   }										   
					 })	
	
}
function disableFormSubmit(triger){
	$(triger).closest('form').find('.submit input').attr('disabled',true)
	.addClass('disable');
	}

function validForm(triger){
	$(triger).css('border-color','#999');
	$(triger).closest('form').find('.submit input').attr('disabled',false)
	.removeClass('disable');
	$('.warn').remove()
	}
	
function initialNotice(triger){
	$(triger).css('border-color','#999');
	$(triger).siblings('.warn').remove();
	$('<span class="warn rounded"></span>').insertAfter($(triger));	
}

function updateNotice(notice,triger){
	initialNotice(triger)
	$(triger).css('border-color','#666');
	$(triger).siblings('.warn').attr('title',notice);
	$(triger).siblings('.warn').text('?');
	
}

function isValidEmail(sText) {
	var reEmail = /^\w+.*@\w+\..*\w+$/;
	return reEmail.test(sText);
}

function validateForm(form){	
    var inputs=$(form).find('input,select');	
	for(var i=0; i<inputs.length; i++){		
		    if($(inputs[i]).parent().hasClass('required')){
				   if($(inputs[i]).val()==""){
					   updateNotice('Not empty!',$(inputs[i]))
					   return false;
				   }
				   if($(inputs[i]).hasClass('ajax_exist')){
					  return ajax_check_exist($(inputs[i]))   
					   
				   }		   
				
				  //alert($(inputs[i]).html());
				}
			
			
		 
		}
		
  return true;
	
}
				   
})
