﻿function focusLabels() {
  if (!document.getElementsByTagName) return false;
  var labels = document.getElementsByTagName("label");
  for (var i=0; i<labels.length; i++) {
    if (!labels[i].getAttribute("for")) continue;
    labels[i].onclick = function() {
      var id = this.getAttribute("for");
      if (!document.getElementById(id)) return false;
      var element = document.getElementById(id);
      element.focus();
    }
  }
}

function validateForm() {
  var thisform = document.forms[0];
  for (var i=0; i<thisform.elements.length; i++) {
    var element = thisform.elements[i];
    if (element.className.indexOf("required") != -1) {
      element.onblur = function() {
      
        if (!isFilled(this) && this.id == "name") {
          $("vName").className="error";
          $("vName").innerHTML = "请输入您的名称";
        } else if (isFilled(this) && this.id == "name") {
          $("vName").className="success";
        }
                
        if (!isFilled(this) && this.id == "email") {          
          $("vEmail").className="hidden";          
        } else if (isFilled(this) && this.id == "email") {
          if (!isEmail(this) && this.id == "email") {            
            $("vEmail").className="error"; 
            $("vEmail").innerHTML = "请输入正确的邮件地址";           
          } else if (isEmail(this) && this.id == "email") {
            $("vEmail").className="success";            
          }          
        }  
        
        if (this.value == "http://" && this.id == "url") {          
          $("vUrl").className="hidden";          
        } else if (this.value != "http://" && this.id == "url") {
          if (!isUrl(this) && this.id == "url") {            
            $("vUrl").className="error";  
            $('vUrl').innerHTML = "请输入正确的网站地址";          
          } else if (isUrl(this) && this.id == "url") {
            $("vUrl").className="success";            
          }          
        }  
        
        if (!isFilled(this) && this.id == "message") {
          $("vMsg").className="error";  
          $('vMsg').innerHTML = "请输入一些评论文字";        
        } else if (isFilled(this) && this.id == "message") {
          $("vMsg").className="success";
        }
        
        if (!isFilled(this) && this.id == "code") {
            $("vCode").className="error";
            $("vCode").innerHTML = "请输入答案";            
        } else if (isNaN(this.value) && this.id == "code") {
	        $("vCode").className='error';
	        $("vCode").innerHTML = "答案只能是数字";	        
	    } else if ((!isFilled(this)) && (this.id == "code") && (isNaN(this.value))){
	        $("vCode").className="success";
	    }
        
        if (isFilled(this) && this.id == "code") {
        
            var url = '/blog/validate.aspx';
            
            new Ajax(url,{
                postBody: 'code='+this.value,                
                onComplete: function(){ 
                    var _str = this.response.text;
                    if (_str == 'ok') {
                        $('vCode').className = 'success';                        
                    } else {
                        $('vCode').className = 'error';
                        $('vCode').innerHTML = '回答有误，请重新输入';
                        $('question').innerHTML = _str;
                        $('code').focus();
                    }                    
                }                
            }).request();
        }
      }     
    }    
  }
  return true;
}
function showResponse(request) {
    alert(request);
}
function isFilled(field) {
  if (field.value.length < 1 || field.value == field.defaultValue) {
    return false;
  } else {
    return true;
  }
}

function isEmail(field) {
 var regmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/g;
 return regmail.test(field.value)
}
function isUrl(field) {
    var ptn=/http:\/\/([\w-]+\.)+[\w-]+(\/[\w-   .\/?%&=]*)?/;
    return ptn.test(field.value)
}

window.addEvent('domready', function(){
    $('commentForm').addEvent('submit', function(e) {
	
	    new Event(e).stop();
				
    	var errorCount = 0;
        if ($('name').value == '') {
	        $("vName").className='error';
	        $("vName").innerHTML = "请输入您的名称";
	        errorCount += 1;
	    }
	    if (!($('email').value == '') && (!isEmail($('email')))){	  
	        $("vEmail").className='error';
	        $("vEmail").innerHTML = "请输入正确的邮件地址";
	        errorCount += 1;	
	    }
	    
	     if (!($('url').value == 'http://') && (!isUrl($('url')))){	  
	        $("vUrl").className='error';
	        $("vUrl").innerHTML = "请输入正确的网站地址";
	        errorCount += 1;	
	    }
	    
	    if ($('message').value == '') {
	        $("vMsg").className='error';
	        $('vMsg').innerHTML = "请输入一些评论文字";
	        errorCount += 1;
	    }	 
	    if ($('code').value == '') {
	        $("vCode").className='error';
	        $("vCode").innerHTML = "请输入答案";
	        errorCount += 1;
	    } else if (isNaN($('code').value)) {
	        $("vCode").className='error';
	        $("vCode").innerHTML = "答案只能是数字";
	        errorCount += 1;
	    }
	    if (errorCount == 0) {
			
	        var log = $('loading').addClass('sending');
			    
        	$('loading').style.display = 'inline';			
	        $('btnSend').className ='submitD';
	        $('btnSend').disabled = true;	           
				
	        this.send({
	  	        onComplete: function() {						    
	  	        
	  	            var _str = this.response.text; 
	  	            var _audit = _str.substr(0,1);
	  	            
	  	            if (_audit == 1){
	  	                $('commentNow').style.display = 'block';	  	                
	  	                $('commentNow').innerHTML = _str.substring(1,_str.length-1);
	  	            
	  	                var _count = $('count').innerHTML;
	  	                $('count').innerHTML = parseInt($('count').innerHTML) + 1;
	  	                $('commentC').innerHTML = parseInt($('commentC').innerHTML) + 1;
	  	            }
	  	            
	  	           
	                $('btnSend').disabled = false;						    						    						    
				    
	                var fx = new Fx.Styles(log, {
	                    duration: 3000,
	                    wait: false,
	                    transition: Fx.Transitions.Quad.easeOut
                    });
    
                log.removeClass('sending');
                log.addClass('success');
                log.empty().innerHTML = '<img src="/images/successIcon1.png" alt="success" width="207" height="32" />';						    
                fx.start({                			
		            'opacity': [500, 0]
		        })
                            
	            $('btnSend').className ='submit';
                $('message').value = '';
	            $('code').value = '';	            
	            $('vName').className = 'hidden';
	            $('vEmail').className = 'hidden';
	            $('vCode').className = 'hidden';
	            $('vMsg').className = 'hidden';
	            
	            var url = '/blog/validate.aspx';
            
                new Ajax(url,{
                    postBody: 'code=-999999',                
                    onComplete: function(){ 
                        var _str = this.response.text;
                        $('question').innerHTML = _str;                    
                    }                
                }).request();
	            
	            if ($('person').checked == true) {
	  	            SetCookie('c_name',$('name').value,100000);
	  	            if ($('email').value != ""){
	  	                    SetCookie('c_email',$('email').value,100000);
	  	            }
	  	            if ($('url').value != "" && $('url').value != "http://"){
	  	                    SetCookie('c_url',$('url').value,100000);
	  	            }
	  	            $('person').checked = true;
	  	        } else {
	  	            $('name').value = '';
                    $('email').value = '';
                    $('url').value = 'http://';                
                    $('person').checked = false;
	  	        }
	        }
	    });
	}
});
});

addLoadEvent(focusLabels);
addLoadEvent(validateForm);
