/**
 * @title:选择社区控件
 * @document:
 * @使用方法如下：<input type="text" id="region" onfocus="showRegionDiv(text_input_id,callback)"/>
 * @param text_input 用于控件的位置定位，一般为<input type="text"控件
 * @callback 回调方法
 * 选择社区后，callback函数  callback的自定义应该包含region信息三个参数(name,id,letter)
 * 可选t_in参数为text_input_id若要使用t_in则必需包含前三个参数
 * @require :jQuery-1.2.1+
 * @author : jerson
 */
 $(document).ready(function(){
    loadJs("regionBase","website/static/scripts/regionBase.js");
  })
/**
 * 动态重新载加载JS
 */
function loadJs(id,file){

    var scriptTag = document.getElementById(id);
    var head = document.getElementsByTagName('head').item(0);
    if(scriptTag) head.removeChild(scriptTag);
    script = document.createElement('script');
    script.src = file;
    script.type = 'text/javascript';
    script.id = id;
    
    head.appendChild(script);
}

var mup_select =false; //多项选择
var text_input;//结果容器id
var h_id;//隐藏id
var callback;
var ps;
function region(s){
  $('#sub_reg').html("<li>\u6b63\u5728\u52a0\u8f7d\u6570\u636e...</li>");
  $.ajax({
    url: "indexRegion.do?"+s,
	type:"POST",
    dataType:"html",
    success:function(msg){
      subreg(msg);
    },
    error:function(msg){
      alert("region error:"+msg);
    }
  });
}

function subreg(msg){
  var date = eval('('+msg+')');
  var regions = date.regions;
  var root = $('#sub_reg');
  root.html('');
  for(var i=0;i<regions.length;i++){
    root.append("<li style='margin-left:4px;border: #ffffff solid 0px;width:23.5%'><a href='javascript:region2(\"p="+regions

[i].id+"\")'>"+regions[i].letter+" "+regions[i].name+"</a></li>");
  }
  region2("p="+regions[0].id);
}

function region2(s){
  $('#thr_reg').html("<li><a>\u6b63\u5728\u52a0\u8f7d\u6570\u636e...</a></li>");
  $.ajax({
    url: "indexRegion.do?"+s,
    type:"POST",
    dataType:"html",
    success:function(msg){
      subreg2(msg);
      clearInterval(ps);
    },
    error:function(msg){
      alert("region2 error:"+msg);
    }
  });
}

function subreg2(msg){
  var date = eval('('+msg+')');
  var regions = date.regions;
  var root = $('#thr_reg');
  root.html('');
  for(var i=0;i<regions.length;i++){
    root.append("<li style='margin-left:4px;border: #ffffff solid 0px;width:23.5%'><a href='javascript:selectRegion(\""+regions[i].name+"\",\""+regions[i].id+"\",\""+regions

[i].letter+"\")'>"+regions[i].letter+" "+regions[i].name+"</a></li>");
  }
}
var _r_1,_r_2,_r_3;
var select=false;
/*
_r_2 = "c=2&l=2";
_r_3 = "p=11265";
*/
_r_2 = "p=19";
_r_3 = "p=26";
function selectRegion(name,id,letter){
  select=true;

  showResult(name,id,letter);
  cancleRegionDiv();
}

function showResult(name,id,letter){
  if(typeof callback=="function"){
    callback(name,id,letter,text_input);
  }else{
    alert('callback Function error');
  }
}

function cancleRegionDiv(){
  $('#region_div').hide("slow",function(){});
}

function showRegionDiv(input_id,call_back){
  text_input = input_id;
  callback = call_back;
  if(select==false){initDiv();};

  var obj = document.getElementById(input_id);
  var tar = document.getElementById("region_div");

  if(checkBrowse()=="FireFox"||checkBrowse()=="Netscape"){
    //Firefox
    tar.style.left=findPosX(obj)-200+'px';
    tar.style.top=findPosY(obj)+25+'px';
  }else{
    //IE
   tar.style.left=findPosX(obj)-200+'px';
   tar.style.top=findPosY(obj)+25+'px';
  }

  $('#region_div').show("fast",function(){});

/*
  if(findPosY(obj)+450>document.body.scrollHeight){
    alert(window.screen.height - findPosY(obj));
    window.scrollBy(0,window.screen.height - findPosY(obj)-450);
  }
*/
}

function findPosX(obj){
  var _22=0;
  if(obj.offsetParent){
  while(obj.offsetParent){
  _22+=obj.offsetLeft;
  obj=obj.offsetParent;
  }
  }else{
  if(obj.x){
  _22+=obj.x;
  }
  }
  return _22;
}

function findPosY(obj){
  var _24=0;
  if(obj.offsetParent){
  while(obj.offsetParent){
  _24+=obj.offsetTop;
  obj=obj.offsetParent;
  }
  }else{
  if(obj.y){
  _24+=obj.y;
  }
  }
  return _24;
}

function initDiv(){
  region(_r_2);
  region2(_r_3);
//  ps = setInterval("alert('123123')",2000);
}

/**
 * 浏览器检测
 */
function checkBrowse(){
        var Browser_Name=navigator.appName;
        var Browser_Version=parseFloat(navigator.appVersion);
        var Browser_Agent=navigator.userAgent;

        var Actual_Version,Actual_Name;

        var is_IE=(Browser_Name=="Microsoft Internet Explorer");
        var is_NN=(Browser_Name=="Netscape");
        var is_FF=(Browser_Name=="FireFox");

        if(is_NN){
            if(Browser_Version>=5.0){
                var Split_Sign=Browser_Agent.lastIndexOf("/");
                var Version=Browser_Agent.indexOf(" ",Split_Sign);
                var Bname=Browser_Agent.lastIndexOf(" ",Split_Sign);

                Actual_Version=Browser_Agent.substring(Split_Sign+1,Version);
                Actual_Name=Browser_Agent.substring(Bname+1,Split_Sign);
            }
            else{
                Actual_Version=Browser_Version;
                Actual_Name=Browser_Name;
            }
            return "Netscape";
        }else if(is_IE){

            var Version_Start=Browser_Agent.indexOf("MSIE");
            var Version_End=Browser_Agent.indexOf(";",Version_Start);
            Actual_Version=Browser_Agent.substring(Version_Start+5,Version_End)
            Actual_Name=Browser_Name;
            if(Actual_Version>6.0){
              return "IE7";
            }else{
              return "IE6";
            }

            if(Browser_Agent.indexOf("Maxthon")!=-1){
                Actual_Name+="(Maxthon)";
            }
            else if(Browser_Agent.indexOf("Opera")!=-1){
                Actual_Name="Opera";
                var tempstart=Browser_Agent.indexOf("Opera");
                var tempend=Browser_Agent.length;
                Actual_Version=Browser_Agent.substring(tempstart+6,tempend)
            }
        }else if(is_FF){
          return "FireFox";
        }else{
            Actual_Name="Unknown Navigator"
            Actual_Version="Unknown Version"
            return "unknow";
        }
}


