﻿// JScript 文件

//Get full virtual path
function getAppPath(path)
{
    var a = window.location.href;
    i   =   a.indexOf("//")  ;
    i+=2  ;
    i   =   a.indexOf("/",i)+1;
    
    if(path.indexOf("http://")==0)
        return path;
    else if(path.indexOf("/")==0)
        return a.substr(0,i-1)+path;
    else if(path.indexOf("~/")==0)
        return a.substr(0,i-1)+path.substr(1,path.length-1);
    else
        return a.substr(0,i)+path;
    //return path.indexOf("/")==0?a.substr(0,i-1)+path:a.substr(0,i)+path;   
}

function QueryString(fieldName){
    var urlString = document.location.search.toLowerCase();
    if(urlString != null)
    {
	    urlString=urlString.replace(/\?/g,'');
	    var parms=urlString.split('&')
	    for(i=0;i<parms.length;i++)
	    {
		    var tmp=parms[i].split('=');
		    if(tmp[0] && tmp[0]==fieldName){ if(tmp[1]) return tmp[1]; else return '';}else{continue;}
	    }
	    return null;
    }
    return null;
}

//如果输入回车,返回false
function enterHandler(event)
{
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13) 
  {
        return false;
  }
  return true;
}

//The same as String.Format in C#
String.format = function()
{

    if( arguments.length == 0 )
    {
        return null; 
    }
    
    var str = arguments[0]; 

    for(var i=1;i<arguments.length;i++)
    {

        var re = new RegExp('\\{' + (i-1) + '\\}','gm');
        str = str.replace(re, arguments[i]);
    }
    return str;
}

function outputText(text)
{
    text = text.replace(/\r/ig, '<br/>').replace(/\n/ig, '<br/>');
    return text;
}

//显示正在加载
function fShowLoading(msg,idContainer,cssClass,delayShow)//(加载信息, 显示的控件ID, 自定义CSS)
{
    if(delayShow && delayShow==true || cssClass && cssClass==true)
    {
        //$("#"+idContainer).removeClass().html("");
        var delayHandler=setTimeout(function(){_tempDelayShowLoading()},3000);
        return delayHandler;
    }else
    {
        _tempDelayShowLoading();
    }    
    function _tempDelayShowLoading()
    {
        $("#"+idContainer).removeClass();
        if(cssClass && cssClass!=true && cssClass!=false)
            $("#"+idContainer).html("<span class='"+cssClass+"'>"+msg+"</span>").show(); 
        else
            $("#"+idContainer).html("<span class='sending_loading'>"+msg+"</span>").show();
    }
}
//显示成功提示
function fShowSucc(msg,idContainer,autoHide,cssClass)//(加载提示信息, 显示的控件ID, 是否自动隐藏,自定义CSS)
{
    $("#"+idContainer).removeClass();
    var isFirst=$("#"+idContainer).html().length<5
    if(cssClass)
        $("#"+idContainer).html("<div class='"+cssClass+"'>"+msg+"</div>").show(); 
    else
        $("#"+idContainer).html("<div class='success_tip'>"+msg+"</div>").show();
    if(isFirst==false)
    {
        var freq=100
        $("#"+idContainer).animate({opacity:'0.25'},freq).animate({opacity:'1'},freq).animate({opacity:'0.25'},freq).animate({opacity:'1'},freq).animate({opacity:'0.25'},freq).animate({opacity:'1'},freq).animate({opacity:'0.25'},freq).animate({opacity:'1'},freq)
    }
    if(autoHide && autoHide.toLowerCase()=="y")
        setTimeout('$("#'+idContainer+'").html("").hide();',4000);
}
//显示失败提示
function fShowFail(msg,idContainer,autoHide,cssClass)
{
    $("#"+idContainer).removeClass();
    if(cssClass)
        $("#"+idContainer).html("<div class='"+cssClass+"'>"+msg+"</div>").show();
    else
        $("#"+idContainer).html("<div class='error_tip'>"+msg+"</div>").show();
    if(autoHide && autoHide.toLowerCase()=="y")
        setTimeout('$("#'+idContainer+'").html("").hide();',4000);
}
//显示提示
function fShowNotes(msg,idContainer,autoHide,cssClass)
{
    $("#"+idContainer).removeClass();
    if(cssClass)
        $("#"+idContainer).html("<div class='"+cssClass+"'>"+msg+"</div>").show();
    else
        $("#"+idContainer).html("<div class='notes_tip'>"+msg+"</div>").show();
    if(autoHide && autoHide.toLowerCase()=="y")
        setTimeout('$("#'+idContainer+'").html("").hide();',4000);
}

//返回字符串长度(一个中文字符=两个英文字符)
function GetStringLength(str)
{ 
      var len   =   0;  
      for(i=0;i<str.length;i++)  
      {  
              if(str.charCodeAt(i)>256)  
              {  
                      len+=2;  
              }  
              else  
              {  
                      len++;  
              }  
      } 
      return len;
}

//Add JS file to header
function AddScriptToHeader(jsFile)
{
    var oHead = document.getElementsByTagName('head').item(0); 
    var oScript= document.createElement("script"); 
    oScript.setAttribute("type", "text/javascript");
    oScript.setAttribute("src", jsFile);
    oHead.appendChild(oScript);  
}

//Get X position of object 
function findPosX(obj)
{
     var curleft = 0;
     if (obj.offsetParent)
     {
          while (obj.offsetParent)
          {
               curleft += obj.offsetLeft
               obj = obj.offsetParent;
          }
     }
     else if (obj.x)
          curleft += obj.x;
     return curleft;
}
//Get Y position of object 
function findPosY(obj)
{
     var curtop = 0;
     if (obj.offsetParent)
     {
          while (obj.offsetParent)
          {
               curtop += obj.offsetTop
               obj = obj.offsetParent;
          }
     }
     else if (obj.y)
          curtop += obj.y;
     return curtop;
}


// function to convert server time to local time
function getLocalTime(svrTime) 
{
//    var a = window.location.href;
//    i   =   a.indexOf("//") ;
//    i+=2;
//    var root = a.substr(i,a.indexOf("/",i)-i);
//    
//    if(root.toLowerCase()=="www.hipandsingle.com")
    
    //time zone offset of website server(minutes)
    var svrOffset = 420;
    //is the parameter short time
    var isShortTime = false;
    if(svrTime.toString().length<15)
    {
        isShortTime=true;
        svrTime = "1900/01/01 "+svrTime.toString();
    }
    //create Date object for server time
    var sd = new Date(svrTime);
    // create Date object for current location
    var d = new Date();
    // convert server time to msec
    // add time zone offset
    // get UTC time in msec
    var utc = sd.getTime() +(60000*svrOffset);
    // covert utc time to local time
    var nd = new Date(utc  - (d.getTimezoneOffset() * 60000));
    // return time as a string
    return isShortTime?nd.toLocaleTimeString(): nd.toLocaleString();
}

//=========Cookie realted begin=================
 //写cookies函数
 function SetCookie(name,value,expDays)//三个参数，一个是cookie的名子，一个是值 , 一个是过期天数
 {  
    if(!expDays) expDays=30; //此 cookie 默认将被保存 30 天  
     var exp  = new Date();    //new Date("December 31, 9998");  
     exp.setTime(exp.getTime() + expDays*24*60*60*1000);  
     document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";  
 }  
 function GetCookie(name)//取cookies函数          
 {  
     var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));  
      if(arr != null) return unescape(arr[2]); return null;  
   
 }  
 function DelCookie(name)//删除cookie  
 {  
     var exp = new Date();  
     exp.setTime(exp.getTime() - 1);  
     var cval=GetCookie(name);  
     if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString()+";path=/";  
 }  
//=========Cookie realted end===================


//=========Sharing======================================
/*
t/title: 分享标题; 
u/url: 页面地址(例:http://www.hipandsingle.com/rate.aspx?pid=123); 
c: 分享的内容(图片地址,例:<img src='http://www.hipandsingle.com/pimages/5/130_5_200907211204064677449830.jpg'>)
*/
     function ShareOnMyspace(T, C, U, L) {
         var targetUrl = "http://www.myspace.com/index.cfm?fuseaction=postto&t=" + encodeURIComponent(T) + "&c=" + encodeURIComponent(C) + "&u=" + encodeURIComponent(U) + "&l=" + L;
         window.open(targetUrl);
     }
     
     function ShareOnFacebook(T,U) {window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(U)+'&t='+encodeURIComponent(T),'sharer','toolbar=0,status=0,width=626,height=436');return false;}
//=========Sharing======================================


function GetDefaultPic(size)
{
    return "/pimages/default"+size.toString()+".gif";
}

//返回两个日期之间的时间差
function   DateDiff(   start,   end,   interval,   wholedays   )   {  
   
          var   iOut   =   0;  
           
          //   Create   2   error   messages,   1   for   each   argument.    
          var   startMsg   =   "Check   the   Start   Date   and   End   Date\n"  
                  startMsg   +=   "must   be   a   valid   date   format.\n\n"  
                  startMsg   +=   "Please   try   again."   ;  
   
          var   intervalMsg   =   "Sorry   the   dateAdd   function   only   accepts\n"  
                  intervalMsg   +=   "d,   h,   m   OR   s   intervals.\n\n"  
                  intervalMsg   +=   "Please   try   again."   ;  
   
          var   bufferA   =   Date.parse(   start   )   ;  
          var   bufferB   =   Date.parse(   end   )   ;  
           
          //   check   that   the   start   parameter   is   a   valid   Date.    
          if   (   isNaN   (bufferA)   ||   isNaN   (bufferB)   )   {  
                  //alert(   startMsg   )   ;  
                  return   null   ;  
          }  
   
          //   check   that   an   interval   parameter   was   not   numeric.    
          if   (   interval.charAt   ==   'undefined'   )   {  
                  //   the   user   specified   an   incorrect   interval,   handle   the   error.    
                  //alert(   intervalMsg   )   ;  
                  return   null   ;  
          }  
           
          var   number   =   bufferB-bufferA   ;  
           
          //   what   kind   of   add   to   do?    
          switch   (interval.charAt(0))  
          {  
                  case   'd':   case   'D':    
                          iOut   =   parseInt(number   /   86400000)   ;  
                          if(wholedays)   iOut   +=   parseInt((number   %   86400000)/43200001)   ;  
                          break   ;  
                  case   'h':   case   'H':  
                          iOut   =   parseInt(number   /   3600000   )   ;  
                          if(wholedays)   iOut   +=   parseInt((number   %   3600000)/1800001)   ;  
                          break   ;  
                  case   'm':   case   'M':  
                          iOut   =   parseInt(number   /   60000   )   ;  
                          if(wholedays)   iOut   +=   parseInt((number   %   60000)/30001)   ;  
                          break   ;  
                  case   's':   case   'S':  
                          iOut   =   parseInt(number   /   1000   )   ;  
                          if(wholedays)   iOut   +=   parseInt((number   %   1000)/501)   ;  
                          break   ;  
                  default:  
                  //   If   we   get   to   here   then   the   interval   parameter  
                  //   didn't   meet   the   d,h,m,s   criteria.     Handle  
                  //   the   error.    
                  //alert(intervalMsg)   ;  
                  return   null   ;  
          }  
           
          return   iOut   ;  
  }