/*
Title: [Ajax.js\u7b80\u4ecb]

\u6587\u4ef6\u540d: 
    ajax.js
    
\u7248\u672c:
    v1.0.0-101
    
\u7248\u6743:
    (c)Baidu.com

\u4f5c\u8005:
    chenlin
    
\u7b80\u4ecb:
>	\u8fd9\u4e2a\u6587\u4ef6\u662f\u5bf9xmlhttp\u5f02\u6b65\u8bf7\u6c42\u8fdb\u884c\u4e86\u7b80\u5355\u7684\u5c01\u88c5\uff0c
>	\u4e3b\u8981\u662f\u5c06prototytp\u8fdb\u884c\u4e86\u7b80\u5316\uff0c\u5982\u679c\u8981\u4f7f\u7528\u590d\u6742\u7684\u529f\u80fd\u53ef\u4ee5\u4f7f\u7528prototype\u7684ajax.js
>	\u5916\u90e8\u4f7f\u7528\u65f6\uff0c\u4e3b\u8981\u8c03\u7528\u65b9\u5f0f\u4e3a
>	var myAjax=new Ajax.Request(
>		  url,
>		  {
>				method: 'get',
>				asynchronous: true,
>				onSuccess: function(xmlHttp)
>				{		     
>				},
>				onFailure:function(xmlHttp){
>				},
>				onException:function(exception){
>				}
>		  }
>	  ); 
>	  \u5176\u4ed6\u7684\u90fd\u4e3a\u5185\u90e8\u8c03\u7528\u51fd\u6570\uff0c\u5916\u90e8\u5c3d\u91cf\u4e0d\u8981\u4f7f\u7528\u3002

\u9700\u8981\u5305\u542b\u7684\u6587\u4ef6:
 - core/base.js
*/


/*

Class: Ajax
	Ajax\u7c7b

\u5c5e\u6027\uff1a
	Ajax.Base - \u4e3a\u4e00\u4e2a\u5bf9\u8c61\uff0c\u5728Ajax.Base\u5bf9\u8c61\u4e2d\u5b9a\u4e49Ajax\u7684\u57fa\u672c\u64cd\u4f5c
	Ajax.Request - \u5177\u6709\u6784\u9020\u51fd\u6570\u7684\u4e3b\u4f53\u5bf9\u8c61\uff0c\u901a\u5e38\u5c31\u662f\u901a\u8fc7Ajax.Request\u5bf9\u8c61\u6765\u6784\u9020\u4e00\u4e2aAjax\u5904\u7406

\u51fd\u6570\uff1a
	Ajax.getTransport - \u8fd4\u56de\u4e00\u4e2aXMLHTTPRequest\u5bf9\u8c61
*/
var Ajax = {

	/*
		Function\uff1agetTransport
			\u8fd4\u56de\u4e00\u4e2axmlhttp\u5bf9\u8c61

		Parameters:
			null
		
		Returns:
			XMLHTTPRequest\u5bf9\u8c61\u5b9e\u4f8b\uff0c\u6839\u636e\u4e0d\u540c\u6d4f\u89c8\u5668\uff0c\u6709\u4e0d\u540c\u7684\u83b7\u53d6\u65b9\u6cd5
	*/
    getTransport: function() {
        return Try.these(
            function() {return new ActiveXObject('Msxml2.XMLHTTP')},
            function() {return new ActiveXObject('Microsoft.XMLHTTP')},
            function() {return new XMLHttpRequest()}
        ) || false;
    }
};

/*
Class\uff1aAjax.Base
	\u57fa\u7840ajax.base\u7c7b

\u5c5e\u6027options\uff1a
	method - \u5f02\u6b65\u8bf7\u6c42\u65b9\u6cd5\uff0c\u53ef\u4ee5\u4e3aget\u548cpost\uff0c\u6b64\u5904\u4e3a\u9ed8\u8ba4post
	asynchronous - \u8bbe\u7f6e\u662f\u5426\u4e3a\u5f02\u6b65\u65b9\u5f0f\u5904\u7406\uff0c\u9ed8\u8ba4\u4e3atrue
	parameters - \u4f20\u9012\u53c2\u6570\uff0c\u53c2\u6570\u90fd\u662furl\u7f16\u7801\u683c\u5f0fa=valueOfA&b=valueOfB

\u51fd\u6570\uff1a
	setOptions - \u8bbe\u7f6e\u8fdb\u884cajax\u8bf7\u6c42\u7684\u53c2\u6570
	responseIsSuccess - \u5224\u65ad\u5f02\u6b65\u8bf7\u6c42\u8fd4\u56de\u662f\u5426\u6210\u529f
	responseIsFailure - \u5224\u65ad\u5f02\u6b65\u8bf7\u6c42\u8fd4\u56de\u662f\u5426\u5931\u8d25
	onComplete - \u8bbe\u7f6e\u5f02\u6b65\u8bf7\u6c42\u5b8c\u6210\u4e4b\u540e\u6267\u884c\u7684\u5904\u7406\u51fd\u6570
	onSuccess - \u8bbe\u7f6e\u5f02\u6b65\u8bf7\u6c42\u6210\u529f\u4e4b\u540e\u6267\u884c\u7684\u5904\u7406\u51fd\u6570
	onFailure - \u8bbe\u7f6e\u5f02\u6b65\u8bf7\u6c42\u5931\u8d25\u4e4b\u540e\u6267\u884c\u7684\u5904\u7406\u51fd\u6570
	onException - \u8bbe\u7f6e\u5f02\u6b65\u8bf7\u6c42\u53d1\u751f\u5f02\u5e38\u7684\u5904\u7406\u51fd\u6570
	...
*/
Ajax.Base = function() {};
Ajax.Base.prototype = {

  /*
	Function: setOptions
		\u8bbe\u7f6e\u8fdb\u884cajax\u8bf7\u6c42\u7684\u53c2\u6570

	Parameters\uff1a
		options \u5bf9\u8c61\uff0c\u8bbe\u7f6emethod\u3001asynchronous\u3001parameters\u7b49\u5c5e\u6027

	Returns\uff1a
		Null
  */
  setOptions: function(options) {
    this.options = {
      method:       'post',			//\u9ed8\u8ba4post\u8bf7\u6c42
      asynchronous: true,			//\u9ed8\u8ba4\u5f02\u6b65\u8bf7\u6c42
	  contentType:  'application/x-www-form-urlencoded',
      parameters:   ''				
    }
	//\u4f7f\u7528Object.extend \u5c06\u7528\u6237\u4f20\u9012\u7684otpions\u53c2\u6570\u8bbe\u7f6e \u590d\u5236\u7ed9this.otpions
    Object.extend(this.options, options || {});
  },

  /*
	Function\uff1aresponseIsSuccess
		\u5224\u65ad\u5f02\u6b65\u8bf7\u6c42\u8fd4\u56de\u662f\u5426\u6210\u529f

	Parameters\uff1a 
		null

	Returns\uff1a
		Boolean\u7c7b\u578b\uff0c\u6210\u529f\u8fd4\u56detrue\uff0c\u5931\u8d25\u8fd4\u56defalse\uff1b
  */
  responseIsSuccess: function() {
	//\u5207\u8bb0\uff0c\u4e0d\u662fthis.transport.status \u4e00\u5b9a \u7b49200 \u624d\u8868\u793a \u6210\u529f\u3002
    return this.transport.status == undefined || this.transport.status == 0 || (this.transport.status >= 200 && this.transport.status < 300);
  },

  /*
	Function\uff1aresponseIsFailure
		\u5224\u65ad\u5f02\u6b65\u8bf7\u6c42\u8fd4\u56de\u662f\u5426\u5931\u8d25

	Parameters\uff1a
		null

	Returns\uff1a
	    Boolean\u7c7b\u578b\uff0c\u5931\u8d25\u8fd4\u56detrue\uff0c\u6210\u529f\u8fd4\u56defalse\uff1b
  */
  responseIsFailure: function() {
    return !this.responseIsSuccess();
  }
};

/*
	Class: Ajax.Request
		\u7c7b\u751f\u6210\u4e00\u4e2a\u7c7bAjax.Request

	\u5c5e\u6027\uff1a
		Ajax.Request.Events - \u6570\u7ec4\u7c7b\u578b\uff0c\u5305\u62ecAjax\u5f02\u6b65\u8bf7\u6c42\u7684\u6574\u4e2a\u5468\u671f\u7684\u4e94\u4e2a\u9636\u6bb5

	\u51fd\u6570\uff1a
		initialize - 
		request - 
		setRequestHeaders - 
		onStateChange - 
		header - 
		evalJSON - 
		evalResponse - 
		respondToReadyState - 
		dispatchException - 
*/
Ajax.Request = new Class();

/*
	Var: Ajax.Request.Events
		\u5b9a\u4e49\u4e86xmlhttp\u8bf7\u6c42\u7684\u72b6\u6001\u3002
>		0 (\u672a\u521d\u59cb\u5316) \u5bf9\u8c61\u5df2\u5efa\u7acb\uff0c\u4f46\u662f\u5c1a\u672a\u521d\u59cb\u5316\uff08\u5c1a\u672a\u8c03\u7528open\u65b9\u6cd5\uff09 
>		1 (\u521d\u59cb\u5316) \u5bf9\u8c61\u5df2\u5efa\u7acb\uff0c\u5c1a\u672a\u8c03\u7528send\u65b9\u6cd5 
>		2 (\u53d1\u9001\u6570\u636e) send\u65b9\u6cd5\u5df2\u8c03\u7528\uff0c\u4f46\u662f\u5f53\u524d\u7684\u72b6\u6001\u53cahttp\u5934\u672a\u77e5 
>		3 (\u6570\u636e\u4f20\u9001\u4e2d) \u5df2\u63a5\u6536\u90e8\u5206\u6570\u636e\uff0c\u56e0\u4e3a\u54cd\u5e94\u53cahttp\u5934\u4e0d\u5168\uff0c\u8fd9\u65f6\u901a\u8fc7responseBody\u548cresponseText\u83b7\u53d6\u90e8\u5206\u6570\u636e\u4f1a\u51fa\u73b0\u9519\u8bef\uff0c 
>		4 (\u5b8c\u6210) \u6570\u636e\u63a5\u6536\u5b8c\u6bd5,\u6b64\u65f6\u53ef\u4ee5\u901a\u8fc7\u901a\u8fc7responseBody\u548cresponseText\u83b7\u53d6\u5b8c\u6574\u7684\u56de\u5e94\u6570\u636e 
*/
Ajax.Request.Events =  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
Ajax.Request.prototype = Object.extend(new Ajax.Base(),{

	/*
		Function: initialze
			Ajax.Request\u5bf9\u8c61\u7684\u6784\u9020\u51fd\u6570

		Parameters\uff1a
			url - Ajax\u8bf7\u6c42\u7684url\u5730\u5740
			options - \u5c01\u88c5\u4e86\u5404\u53c2\u6570\u7684options\u5bf9\u8c61

		Returns\uff1a
			null
	*/
  initialize: function(url, options) {
	
    this.transport = Ajax.getTransport();		//\u8fd4\u56dexmlhttp\u5bf9\u8c61
	this.setOptions(options);					//\u8bbe\u7f6e\u8bf7\u6c42\u7684\u53c2\u6570\uff0c\u5728\u521d\u59cb\u5316\u65f6\u5199
    this.request(url);							//\u8fdb\u884c\u5f02\u6b65\u8bf7\u6c42
  },

  /*
	Function: request
		\u8c03\u7528\u8be5\u51fd\u6570\u8fdb\u884cAjax\u5f02\u6b65\u5904\u7406

	Parameters\uff1a
		url - \u5f02\u6b65\u8bf7\u6c42\u7684url\u5730\u5740

	Returns\uff1a
		null
  */
  request: function(url) {
	this.url = url;
    var parameters = this.options.parameters || '';	  
    if (parameters.length > 0) parameters += '&_=';

    // \u5982\u679c\u662fget\u65b9\u6cd5\u7684\u5316\uff0c\u5c31\u5c06parameters\u91cc\u7684\u5185\u5bb9\u6dfb\u52a0\u5230url\u91cc
    if (this.options.method == 'get' && parameters.length > 0)
		this.url += (this.url.match(/\?/) ? '&' : '?') + parameters;	
    try {

	  // \u8c03\u7528xmlhttp\u7684\u8bf7\u6c42\u51fd\u6570\uff0c\u8fdb\u884c\u8bf7\u6c42
      this.transport.open(this.options.method, this.url, this.options.asynchronous);

	  // \u5982\u679c\u662f\u5f02\u6b65\u8bf7\u6c42\uff0c\u5bf9onreadystatechange\u7ed1\u5b9a\u51fd\u6570\uff0c10ms\u4e4b\u540e\u5c06\u72b6\u6001\u8bbe\u4e3aLoading\uff0c\u8fd9\u662f\u914d\u5408\u8bbe\u7f6eonLoading\u5c5e\u6027\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u663e\u793aloading\u72b6\u6001\u3002
	  if (this.options.asynchronous)     
		setTimeout(function() {this.respondToReadyState(1)}.bind(this), 10);
	  this.transport.onreadystatechange = this.onStateChange.bind(this);	  
	  this.setRequestHeaders();	

	  
	  // \u5bf9\u4e0epost\u65b9\u5f0f\u8bf7\u6c42\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7options\u91cc\u7684postBody\u6765\u8bbe\uff0c\u8fd9\u91cc\u5c31\u5c06postbody\u653e\u5230\u53c2\u6570\u91cc\u8fdb\u884c\u4f20\u9012
      var body = this.options.postBody ? this.options.postBody : parameters;  

	  // \u53d1\u9001post\u6570\u636e
      this.transport.send(this.options.method == 'post' ? body : null);

	    /* Force Firefox to handle ready state 4 for synchronous requests */
      if (!this.options.asynchronous && this.transport.overrideMimeType)
        this.onStateChange();

    } catch (e) {
      this.dispatchException(e);
    }
  },

   /*
	  Function: setRequestHeaders
		 \u8bbe\u7f6e\u8bf7\u6c42\u91cc\u7684\u5934\u90e8\u4fe1\u606f\uff0c\u5305\u62ec\u7f16\u7801\u7b49\u4fe1\u606f
	  
	  Parameters: 
		 null

	  Returns:
	     null;
	*/
	setRequestHeaders: function() {
		var requestHeaders =  ['X-Requested-With', 'XMLHttpRequest'];
		
		if (this.options.method == 'post') {
			requestHeaders.push('Content-type',this.options.contentType);
		    /* 
			  \u8fd9\u91cc\u8bbe\u7f6eoverrideMimeType\u5934\u90e8\u4fe1\u606f\uff0c\u662f\u4e3a\u4e86\u5f53XMLHttpReqeuest\u5bf9\u8c61\u53d1\u9001\u4e00\u4e2a\u9519\u8bef\u4fe1\u606f\u5934\u65f6\uff0c\u8feb\u4f7fMozilla\u6d4f\u89c8\u5668\u7ee7\u7eed\u5de5\u4f5c\uff0c\u5c06\u8fde\u63a5\u8bf7\u6c42\u65ad\u5f00\u3002
		    */
			if (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
				requestHeaders.push('Connection', 'close');
		}

		if (this.options.requestHeaders)
		  requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);

		for (var i = 0; i < requestHeaders.length; i += 2)
		  this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
	},

  /*
	Function: onStateChange
		\u72b6\u6001\u6539\u53d8\u65f6\uff0c\u6267\u884crespondToReadyState\u5c5e\u6027\u6307\u5b9a\u7684\u51fd\u6570\uff0c\u5224\u65ad\u5f53\u72b6\u6001\u4e3a1\uff08\u521d\u59cb\u5316\u9636\u6bb5\uff09\u65f6\u4e0d\u6267\u884c\u3002

	Parameters:
		null

	Returns:
		null
  */
  onStateChange: function() {
    var readyState = this.transport.readyState;
	
	//\u5f53\u72b6\u6001\u4e3a \u521d\u59cb\u5316loading\u7684\u65f6\u5019\uff0c\u4e0d\u4f1a\u8c03\u7528respondToReadyState()\u51fd\u6570\u8fdb\u884cajax\u5904\u7406\u3002
    if (readyState != 1)
      this.respondToReadyState(this.transport.readyState);
  },

  /*
	Function: header
		\u5f02\u6b65\u8bf7\u6c42\u8fd4\u56de\u6587\u4ef6\u7684\u5934\u90e8\u4fe1\u606f\uff0cname\u8868\u793a\u540d\u5b57\uff0c\u8fd4\u56de\u53c2\u6570\u503c

	Parameters:
		name - \u5934\u90e8\u4fe1\u606f\u540d\u79f0
  */
  header: function(name) {
    try {
      return this.transport.getResponseHeader(name);
    } catch (e) {}
  },

  /*
	Function: evalJSON
		\u5982\u679c\u8fd4\u56deheader\u4fe1\u606f\u91cc\u5305\u62ecX-JSON/xxx\uff0c\u5219\u4f1a\u6267\u884cxxx\u7684\u5185\u5bb9

	Parameters:
		null

	Returns:
		null
  */
  evalJSON: function() {
    try {
      return eval(this.header('X-JSON'));
    } catch (e) {}
  },

  /*
	Function: evalResponse
		\u5f88\u7b80\u5355\u7684\u51fd\u6570\uff0c\u5982\u679c\u8fd4\u56deContent-type\u4e3atext/javascript\uff0c\u5219\u4f1a\u8c03\u7528\u6b64\u51fd\u6570\u8fdb\u884c\u6267\u884c

	Parameters:
		null;

	Returns:
		null
  */
  evalResponse: function() {
    try {
      return eval(this.transport.responseText);
    } catch (e) {
      this.dispatchException(e);
    }
  },

  /*
	Function: respondToReadyState
		\u6839\u636e\u8fd4\u56de\u7684\u72b6\u6001\u51b3\u5b9a\u8be5\u6267\u884c\u7684\u6b65\u9aa4

	Parameters:
		readyState - \u5f02\u6b65\u8bf7\u6c42\u6574\u4e2a\u751f\u547d\u5468\u671f\u4e2d\u7684\u67d0\u4e2a\u9636\u6bb5\u7684\u72b6\u6001\u503c

	Returns\uff1a
		null
  */
  respondToReadyState: function(readyState) {
    var event = Ajax.Request.Events[readyState];
    var transport = this.transport, json = this.evalJSON();

    if (event == 'Complete') {
		
	/*
	*\u6b64\u5904\u5982\u679c\u72b6\u6001\u5904\u4e8e\u5b8c\u6210\u72b6\u6001\u5219\u4f1a\u8fdb\u884c\u5206\u6790\u5206\u522b\u8c03\u7528onSuccess\u548conFailure\u3001\u8fd8\u662fonComplete
	*/
      try {
        (this.options['on' + this.transport.status] || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]|| function(){})(transport, json);
      } catch (e) {
        this.dispatchException(e);
      }
      /*
	  * \u6b64\u5904\u5bf9\u8fd4\u56dejs\u8fdb\u884c\u4e86eval
	  */
      if ((this.header('Content-type') || 'text/javascript').match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
			this.evalResponse();
    }
    
    try {
      (this.options['on' + event] || function(){})(transport, json);
    } catch (e) {
      this.dispatchException(e);
    }
    
    /* 
	* \u5f53\u5f02\u6b65\u8bf7\u6c42\u5b8c\u6210\u4e4b\u540e\uff0c\u5c06onreadystatechange\u5c5e\u6027\u6307\u5b9a\u7684\u56de\u8c03\u51fd\u6570\u6e05\u7a7a
	*/
    if (event == 'Complete')
      this.transport.onreadystatechange = function(){};
  },

  /*
	Function: dispatchException
		\u9519\u8bef\u65f6\u8c03\u7528\uff0c\u4e00\u822c\u5916\u90e8\u4f7f\u7528onException:function(){}

	Parameters\uff1a
		exception - \u9519\u8bef\u4fe1\u606f\u7684\u5bf9\u8c61

	Returns\uff1a
		null
  */
  dispatchException: function(exception) {
    (this.options.onException || function(){})(this, exception);
  }

  }
 );




//ajax.js Cookie Domain Name L25
//hr_userState.js Cookie Domain Name L23

//var domainName ="hr.baidu.com";
//var appPort = "8080";
//var contextPath = "/hr";
//var www_base_url  = "http://"+domainName+":"+appPort+contextPath; 
var www_base_url = "http://hr.baidu.com/www"
var developmode = true

var baseurlLen = www_base_url.length;
if(www_base_url.substr(baseurlLen-1,1) == "/"){
	www_base_url = www_base_url.substr(0,baseurlLen-1);
}

// !! hr_util.js s.action URI L101
var sactionUrl = www_base_url+"/s.action";

//hr_valid.js chkid.action URI
var checkIDURl = www_base_url+"/pps/chkid.action";

//get job detail in history page
var historyUrl = www_base_url+"/sjobs.action?jl=";

//show job detail
var jobinfoUrl = www_base_url + "/job/jobDetailPop.action";

//www index
var indexUrl = www_base_url+"/index.action";

var loginUrl = www_base_url+"/pps/login.jsp";

var logoutUrl = www_base_url+"/pps/logout.action";

//ajax check user state
var checkStateUrl = www_base_url + "/pps/state.action";

//add job to favo ajax url
var addfavourl = www_base_url + "/pps/addfavo.action";

//apply job ajax url
var applyjoburl = www_base_url + "/job/applyJobAjax.action";

var personinfourl = www_base_url + "/personinfo/index.action";

var rdrindexurl = www_base_url + "/rdrtoindex.jsp";


