/*
 * 整站公共JS函数
 *
 */

/** 显示普通消息提示框  */
function showDialog(msg, dw, dh, title)
{
  if(dw==undefined || dw==""){dw=300;}
  if(dh==undefined || dh==""){dh=180;}
  if(title==undefined || title==""){ title="提示框" };
  
  if( $("#Messagebox").length==0){
    $("body").append("<div id='Messagebox'></div>");
  }
  // 处理提示框是否自动关闭
  msg = autoCloseDialog(msg);
  
  $("#Messagebox").attr("hasSet", "N");
  $('#Messagebox').html(msg);
  $('#Messagebox').dialog({
    autoOpen: true,
    width: dw,
    height:dh,
    title:title,
    modal:true,
    focus: function(event, ui) {
      revision_dialog(); // 调整窗口
    }
  });
  $('#Messagebox').dialog('open');
}

// 关闭上传提示框
function closeDialog(id) {
  if(id==undefined || id=="") {
    id = "Messagebox";
  }
  $('#'+id).dialog('close');
  $('#'+id).remove();
}

/** 显示登录提示框，基于登录表单在footer中 */
function showLoginDialog(msg) {
  if( $("#Messagebox").length==0){
    $("body").append("<div id='Messagebox' ></div>");
  }
  var rand_num = Math.random();
  // 处理验证码图片
  var code_image = '<img src="do.php?ac=seccode&rand='+Math.random()+'" align="absmiddle">';
  $(".validate_code_image").html(code_image);
  var login_html= $("#popup_login").html();
  // 处理 table 键问题 
  login_html = login_html.replace(/tabindex="21"/, "tabindex=\"31\"");
  login_html = login_html.replace(/tabindex="22"/, "tabindex=\"32\"");
  login_html = login_html.replace(/tabindex="23"/, "tabindex=\"33\"");
  login_html = login_html.replace(/tabindex="24"/, "tabindex=\"34\"");
  
  $("#Messagebox").attr("hasSet", "N");
  $('#Messagebox').html(login_html);
  $('#Messagebox').dialog({
    autoOpen: true,
    width: 320,
    height:180,
    title:move_html_from_string(msg),
    modal:true,
    focus: function(event, ui) {
      revision_dialog(); // 调整窗口
    }
  });
  $('#Messagebox').dialog('open');
}

/** 显示 HTML 登录框
 * successTo 参数为成功登录后跳转的URL或是调用的函数
 * failTo 失败后，跳转的URL或是调用的函数
 */
function showHtmlLoginDialog(successTo, failTo) {
  if( $("#Messagebox").length==0){
    $("body").append("<div id='Messagebox' ></div>");
  }
  
  // 读取登录表单
  var login_html = "";
  $.ajax({
    url: "/home/space.php?do=jiaoyou&getLoginForm=1",
    async:false,
    success: function(data){
      login_html = data;
    }
  });
  
  $("#Messagebox").attr("hasSet", "N");
  $('#Messagebox').html(login_html);
  if(successTo!=undefined && successTo.length>0) {
    $("#ajaxSuccessTo").val(successTo);
  }
  if(failTo!=undefined && failTo.length>0) {
    $("#ajaxFailTo").val(failTo);
  }
  
  $('#Messagebox').dialog({
    autoOpen: true,
    width: 320,
    height:180,
    title:"会员登录",
    modal:true,
    focus: function(event, ui) {
      revision_dialog(); // 调整窗口
    }
  });
  $('#Messagebox').dialog('open');
}

// ajax 登录提交
function doAjaxLoginTo() {
  var formData = "";
  var actionTo = $("#ajaxLoginForm").attr("action");
  var successTo = $("#ajaxSuccessTo").val();
  var failTo = $("#ajaxFailTo").val();
  var name = "";
  $("#ajaxLoginForm input").each(function(i){
    name = $(this).attr("name");
    if(name!=""){
      formData += "&"+name+"="+$(this).val();
    }
  });
  
  $.ajax({
    type:"POST",
    url: actionTo,
    async:false,
    data:formData,
    dataType:"xml",
    success: function(xml){
      var resultStr = $(xml).text();
      // 最多只处理前两百个字符串
      resultStr = resultStr.substr(0, 200);
      
      var pattern = /<login_success>/i;
      var result = resultStr.search(pattern);
      // 保存返回字符串到隐藏字段中
      $("#ajaxResultString").val(resultStr);
      // 如果没有指定错误处理方法，则在登录框内显示提示信息
      if(failTo=="") {
        resultStr = move_html_from_string(resultStr);
        failTo = "showLoginMessage('"+resultStr+"')";
      }
      if(result > 0 ){
        doAjaxLoginResult(successTo);
      } else {
        doAjaxLoginResult(failTo);
      }
    }
  });
}

/** 执行 ajax登录回调
 * @param callback <string> 如果是以 / 和 http:// 开头
 *         则认为是一个URL，否则就认为是一个 js 脚本
 */
function doAjaxLoginResult(callback) {
  var isUrl1 = /^\//i;
  var isUrl2 = /^http:\/\//i;
  if(isUrl1.exec(callback) || isUrl2.exec(callback)){
    document.location.href=callback; // 跳转到指定的URL
  } else {
    try{
      eval(callback);  // 执行给定的 JS 脚本
    } catch(e){
    }
  }
}

function showLoginMessage(message) {
  var dialogid = "Messagebox";
	$("#"+dialogid ).dialog( "option", "width", 350 );
	$("#"+dialogid ).dialog( "option", "height", 250 );
  $(".ajaxLoginMessage").css("display", "block");
  $(".ajaxLoginMessage").html(message);
}

/** 判断对话框是否需要自动关闭 */
function autoCloseDialog(msg){
  var re = /<autoclose>/i;            // 创建正则表达式模式。
  var re2 = /<ajaxok>/i;            // 创建正则表达式模式。
  var r = msg.search(re);
  var r2 = msg.search(re2);
  if(r>0 || r2>0){
    msg+='<script type="text/javascript">window.setTimeout(closeDialog, 5000)</script>';
  }
  return msg;
}

/** 删除字符串中的HTML标签  */
function move_html_from_string(str){
  var a = str.indexOf("<");
  var b = str.indexOf(">");
  var len = str.length;
  var c = str.substring(0, a);
  if(b == -1){
    b = a;
  }
  var d = str.substring((b + 1), len);
  str = c + d;
  var tagCheck = str.indexOf("<");
  if(tagCheck != -1){
    str = move_html_from_string(str);
  }
  return str;
}

/** 调整对话框高度和宽度 */
function revision_dialog(dialogid){
  if(dialogid==undefined){
    dialogid = "Messagebox";
  }
  
  var h = $("#"+dialogid).attr("scrollHeight");
  var w = $("#"+dialogid).attr("scrollWidth");
  var hasSet = $("#"+dialogid).attr("hasSet");
  if(h<120) h=120;
  if(w<180) w=180;
  
  
  if(hasSet!="Y"){
    $("#"+dialogid ).dialog( "option", "width", w+30 );
    $("#"+dialogid).css("height", h+"px");
    $("#"+dialogid).css("width", w+"px");
    $("#"+dialogid).attr("hasSet", "Y");
    $("#"+dialogid ).dialog( "option", "position", 'center' );
  }
}

function resetDialogSize(height, width) {
  var dialogid = "Messagebox";
	$("#"+dialogid ).dialog( "option", "width", width+30 );
	$("#"+dialogid ).dialog( "option", "height", height );
	$("#"+dialogid).attr("hasSet", "");
	revision_dialog(dialogid);
}

function res(h,w)
{
	resetDialogSize(h, w);
	//$("#"+dialogid ).dialog( "option", "position", 'center' );
}

/** 返回HTML格式的省份数据 */
function getAreaProvinceHtml(provinceVal ) {
  var provinceData = [
  {"code":"11","name":"北京"},{"code":"12","name":"天津"},{"code":"13","name":"河北"},
  {"code":"14","name":"山西"},{"code":"15","name":"内蒙古"},{"code":"21","name":"辽宁"},
  {"code":"22","name":"吉林"},{"code":"23","name":"黑龙江"},{"code":"31","name":"上海"},
  {"code":"32","name":"江苏"},{"code":"33","name":"浙江"},{"code":"34","name":"安徽"},
  {"code":"35","name":"福建"},{"code":"36","name":"江西"},{"code":"37","name":"山东"},
  {"code":"41","name":"河南"},{"code":"42","name":"湖北"},{"code":"43","name":"湖南"},
  {"code":"44","name":"广东"},{"code":"45","name":"广西"},{"code":"46","name":"海南"},
  {"code":"50","name":"重庆"},{"code":"51","name":"四川"},{"code":"52","name":"贵州"},
  {"code":"53","name":"云南"},{"code":"54","name":"西藏"},{"code":"61","name":"陕西"},
  {"code":"62","name":"甘肃"},{"code":"63","name":"青海"},{"code":"64","name":"宁夏"},
  {"code":"65","name":"新疆"},{"code":"71","name":"台湾省"},{"code":"81","name":"香港"},
  {"code":"82","name":"澳门"},{"code":"91","name":"海外"}];
  // 输出html
  var html = "";
  var selected = "";
  var code = "";
  if(provinceVal==undefined) {
    provinceVal = "";
  }
  
  for(i=0; i<provinceData.length; i++ ){
    selected = "";
    code = provinceData[i]["code"];
    if(provinceVal == code ) {
      selected = 'selected="selected"';
    }
    html += '<option value="'+code+'" '+selected+' >'+provinceData[i]["name"]+'</option>';
  }
  return html;
}

/** 返回指定省份的地区列表 */
function getAreaCityHtml(provinceVal, cityVal) {
  if(provinceVal==undefined || provinceVal=="") {
    return '';
  }
  if(cityVal==undefined) {
    cityVal = "";
  }
  
  var cityStr = "";
  $.ajax({
    url: "/home/space.php?do=ajaxcall&action=getAreaData&parentid="+provinceVal,
    async:false,
    success: function(data){
      if(data!=undefined && data!=""){
        cityStr = data;
      }
    }
  });
  var html = "";
  if(cityStr!="") {
    var cityData = null;
    var code = null;
    var selected = null;
    eval("cityData="+cityStr);
    if(cityData !=null) {
      for(i=0; i<cityData.length; i++ ){
        selected = "";
        code = cityData[i]["code"];
        if(cityVal == code ) {
          selected = 'selected="selected"';
        }
        html += '<option value="'+code+'" '+selected+'>'+cityData[i]["name"]+'</option>';
      }
    }
  }
  return html;
}

/** 修改了省份后，重新读取城市值  */
function changeAreaProvinceHtml(cityElementId, provinceId) {
  var optHtml = getAreaCityHtml(provinceId);
  if($("#"+cityElementId).length==1){
    $("#"+cityElementId).html(optHtml);
  }
}

/** 调整内部图片的验证码 */
function setFirstImageCode() {
  var newCode = "/home/do.php?ac=seccode&rand="+Math.random();
  $(".ajaxLoginCode").find("img").attr("src", newCode);
}

/** 处理相册缩略图  */
function  setAlbumListImage(a,w,h){
  a.autoTop = true;
	a.style.display="inline";
	a.srcWidth=a.width;
	a.srcHeight=a.height;
	a.zoom=setImageSizeTo;
  //a.zoom(80,80);
  if(w==undefined || w==""){w=80;}
  if(h==undefined || h==""){h=80;}
	a.zoom(w,h);
}

/** 处理图片缩略图 */
function setImageSizeTo(a,d){
  if((this.srcWidth>a)||(this.srcHeight>d)) {
    var b=a/this.srcWidth;
    var c=d/this.srcHeight;
    if(b<c){
      this.style.width=a+"px";
      this.style.height=this.srcHeight*b+"px";
      this.zoomRate=b;
    }else{
      this.style.width=this.srcWidth*c+"px";
      this.style.height=d+"px";
      this.zoomRate=c;
    }
  }else{
    this.zoomRate=1;
    this.style.width=this.srcWidth+"px";
    this.style.height=this.srcHeight+"px";
  }
  // 设置图片垂直剧中
  if(this.autoTop){
    var h = parseInt(this.style.height);
    if( (d-h)>2 ){
      this.style.marginTop = ((d-h)/2)+"px";
    }
  }
 }

function setImageDefaultAvatar(obj,type) {
  if(type==undefined || type==1){
    obj.src="http://www.keicei.com/ucenter/images/noavatar_small.gif";
  } else if(type==2) {
    obj.src="http://www.keicei.com/ucenter/images/noavatar_middle.gif";
  } else if(type==3) {
    obj.src="http://www.keicei.com/ucenter/images/noavatar_big.gif";
  }
}

// 获取URL参数
function getMyQueryParam(name)
{
  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  var r = window.location.search.substr(1).match(reg);
  if (r!=null) return unescape(r[2]); return null;
}

