/* MVC框架所需的JS支持脚本
 * 开发:xiongxing
 * 版本:1.0.8
 */
var mvc_submitBtn=null;
function mvc_addEvent(){
    frms = document.forms;
    if(frms.length==0)
        return;

    for(var i=0;i<frms.length;i++){
      // 判断是否需要进行处理
      if(frms[i].className=="nomvc") continue;
      mvc_addHidden(frms[i]);
      frms[i].onsubmit = function(){mvc_submit();}
      // 设置form的action为URL，防止参数的漏提交
      mvc_setAction(frms[i]);
      frms[i].setAttribute("method","POST");
      // 设置所有forms中的submit按钮的click事件
      inputs = frms[i].getElementsByTagName("input");
      for(var j=0;j<inputs.length;j++){
         if(inputs[j].type.toLowerCase()=="submit"){
           mvc_attachEvent(inputs[j],"click",function(evt){mvc_setSubmitBtn(evt);});
         }
      }
    }
}
/*先设置当前按钮，并不提交*/
function mvc_setSubmitBtn(e){
    e = window.event || e;
    mvc_submitBtn = e.srcElement || e.target;
}
/*设置FORM的ACTION属性,如果ACTION和URL不是同1个页面，则不改变(比如forward跳转)*/
function mvc_setAction(frm){
    action = frm.getAttribute("action");
    if(action==null || action==""){         //为空
        frm.setAttribute("action",location.href);
        return;
    }
    index1 = action.indexOf("?"); // 取ACTION中的页面(去掉参数)
    action = action.substring(0,(index1==-1?action.length:index1));
    // 取URL(去掉参数)
    index1 = location.href.indexOf("?");
    urlAction = location.href.substring(0,(index1==-1?location.href.length:index1));
    if(urlAction.length>0 && urlAction.indexOf(action) != -1){
        frm.setAttribute("action",location.href);
    }
}
/*添加隐藏域*/
function mvc_addHidden(obj){
    hid1 = document.createElement("INPUT");
    hid1.setAttribute("id", "__METHOD");
    hid1.setAttribute("name", "__METHOD");
    hid1.setAttribute("type", "hidden");
    
    hid2 = document.createElement("INPUT");
    hid2.setAttribute("id", "__EVENTARGUMENT");
    hid2.setAttribute("name", "__EVENTARGUMENT");
    hid2.setAttribute("type", "hidden");
    
    obj.appendChild(hid1);
    obj.appendChild(hid2);
}
function mvc_submit(){
    //mvc_submitBtn.disabled = true;
    mvc_submitBtn.form.__METHOD.value = mvc_submitBtn.getAttribute("name");
    mvc_submitBtn.form.__EVENTARGUMENT.value = mvc_submitBtn.getAttribute("id");
}
/*多浏览器触发click事件*/
function mvc_clickEvent(o){
    if(typeof(document.all)=="object") {
        o.fireEvent("onclick");
    }else{
      var e = document.createEvent('MouseEvent');
      e.initEvent('click',false,false);
      o.dispatchEvent(e);
    }
}
function mvc_attachEvent(obj,eventName,eventFunction){
    if(document.addEventListener){
       obj.addEventListener(eventName,eventFunction,false);
    }else{
       obj.attachEvent("on"+eventName,eventFunction);
    }
}
mvc_attachEvent(window,"load",mvc_addEvent);

