﻿/*
 * 选择器
 */
var ApplyJob = {
	// 说明: 选择器同一时间只能显示一个窗口, 只有一个遮罩层实例
	// 遮罩层句柄放在这里
	overlay: null,
	// 所有窗口的句柄存在这里
	wnd : false,
	jurs : [], // 保存简历信息
	defaultJur : false,
	jpid : false,//职位ID
	// 功能: 所有用到的函数都存放在这里
	func: {
		// 申请职位
		apply : function(obj){
			var jur	= false;
			$('input[name^=jur]').each(function() {
				if ($(this).attr('checked')) {
					jur	= $(this).val();
				}
			});
			if (!jur) return alert('请选择简历.') || false;
			var enjur	= false;
			var cnjur	= false;
			$('input[name$=jur]').each(function(){
				if (jur == $(this).val() && $(this).attr('checked')) {				
					if ($(this).attr('name') == 'enjur') {
						enjur	= true;
					} else {
						cnjur	= true;
					}
				}
			});
			if (!enjur && !cnjur) {
				alert('请选择简历语言.');
				return false;
			}			
			$.ajax(
				{
					url: 'usercp.php?action=applyjob',
					type: 'post',
					data: 'jpID='+ ApplyJob.jpid +'&jar[letterTitle]='+ $("#letterTitle").val() +'&jar[letterContent]='+ $('#letterContent').val() 
						  +'&jurID='+ jur + ((cnjur)?'&cnjur=1':'') + ((enjur)?'&enjur=1':''),
					success:function (data) {
						if (data != 1) {
							alert(data);
							return;
						} else {
							alert('简历已发送');
							ApplyJob.hideall();
							window.location.reload();
						}
					}
				}
				
			);
			return false;
		},
		// 选择职位
		chooseJur : function(obj) {
			var  current	= $(obj).val();
			$('input[name$=jur]').each(function(){
				if (current == $(this).val()) {
					$(this).attr('disabled', $(this).data('disabled')); 
				} else {
					$(this).attr('disabled', true);
					$(this).attr('checked', false);
				}
			});
		},
		'init':function() {
			$('input[name$=jur]').each(function() {
				$('input[name$=jur]').each(function() {
					$(this).data('disabled', $(this).attr('disabled'));
				});
			});
			$('input[@name=jurID]').each(function() {
				$(this).data('disabled', $(this).attr('disabled')); //保存可用状态		
			});
			
			for (var i = 0; i < ApplyJob.jurs.length; i++) {
				if (ApplyJob.jurs[i].enComplete == 1 || ApplyJob.jurs[i].cnComplete == 1) {
					ApplyJob.defaultJur	= ApplyJob.jurs[i].jurID;
					break;
				}
			}
			if (ApplyJob.defaultJur) {				
				$('input[id=jurID'+ ApplyJob.defaultJur +']').click();
			}
		}
	},
	
	/*
	 * 获取申请职位表单
	 */
	form: function() {
		// 职位模块
			var rval = [''];
			var isapp	= false;
			rval.push('<div class="content">');
			rval.push('<form action="usercp.php?action=applyjob" method="post" name="applyjob" onsubmit="return ApplyJob.func.apply();">');
			rval.push('<input type="hidden" name="jpID" value="" />');
			rval.push('<table width="500px" border="0" cellspacing="0" cellpadding="5" style="table-layout:fixed;">');
			
			if (this.jurs.length == 0) {
				rval.push('<tr><td width="150px">您还未填写简历，<a href="/usercp.php?action=resume_form">点击这里进入</a></td></tr>');
			} else if (this.jurs[0] != 0 && this.jurs[1] != 1) { //用户未登录或账号被禁用
				isapp	= true;
				rval.push('<tr><td width="150px">求职信标题</td><td><input type="text" size="20" id="letterTitle"/></td></tr>');
				rval.push('<tr><td>求职信内容</td><td><textarea id="letterContent" cols="40" rows="4"></textarea></td></tr>');
				rval.push('<tr><td>选择简历</td><td>');
				rval.push('<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout:fixed;">');
				rval.push('<tr><td>简历名称</td><td>简历语言/完整度</td><td>操作</td></tr>');
				for (var i = 0; i < this.jurs.length; i++) {
					rval.push('<tr>');
					rval.push('<td><input type="radio" name="jurID" onclick="ApplyJob.func.chooseJur(this);" value="' + this.jurs[i].jurID + '" ' + ((this.jurs[i].enComplete != 1 && this.jurs[i].cnComplete != 1) ? 'disabled' : '') + ' id="jurID' + this.jurs[i].jurID + '"/> <label for="jurID' + this.jurs[i].jurID + '">' + this.jurs[i].jurName + '</label></td>');
					rval.push('<td>');
					rval.push('<input type="checkbox" name="cnjur" value="' + this.jurs[i].jurID + '" id="cnjur' + this.jurs[i].jurID + '" ' + ((this.jurs[i].cnComplete != 1) ? 'disabled' : '') + '/><label for="cnjur{$item.jurID}">中文(' + ((this.jurs[i].cnComplete == 1) ? '完整' : '不完整') + ')</label><br/>');
					rval.push('<input type="checkbox" name="enjur" value="' + this.jurs[i].jurID + '" id="enjur' + this.jurs[i].jurID + '" ' + ((this.jurs[i].enComplete != 1) ? 'disabled' : '') + '/><label for="enjur{$item.jurID}">英文(' + ((this.jurs[i].enComplete == 1) ? '完整' : '不完整') + ')</label>');
					rval.push('</td>');
					rval.push('<td>');
					rval.push('<a href="/resume.php?jurid=' + this.jurs[i].jurID + '" target="_blank">预览</a> <a href="/usercp.php?action=resume_form&amp;jurID=' + this.jurs[i].jurID + '" target="_blank">修改</a><br/>');					
					rval.push('<a href="/resume.php?jurid=' + this.jurs[i].jurID + '&lang=en" target="_blank">预览</a> <a href="/usercp.php?action=resume_form&amp;jurID=' + this.jurs[i].jurID + '&lang=en" target="_blank">修改</a>');
					rval.push('</td>');
					rval.push('</tr>');
				}				
			} else {
				rval.push('<tr><td width="150px">'+ ((this.jurs[0] == 0) ? '您还未登录,<a href="http://passport.cdqss.com/login.vhtml">点击登录</a>' : '您的账号被禁用,请与我们客服联系') +'</td></tr>');
			}
			
			if (isapp) {
				rval.push('</td></tr><tr><td colspan="2"><input type="submit" value="申请" /></td></tr>');
			}
			rval.push('</table>');
			
			rval.push('</table></form>');
			return rval.join('');
	},
	setUserResumes:function() {
		var url	= '/js/resumes.js.php';
		this.jurs	= eval($.ajax({			
		  				url: url,
		  				async: false,
		  				dataType:'json'
		 			  }).responseText);
	},
	/*
	* 调用此方法显示选择器窗口
	*/
	show: function(jpid){
		this.jpid	= jpid;
		// 隐藏其他窗口
		this.hideall();
		$('select').hide();
		// 如果没有遮罩层则创建一个
		if(!this.overlay){
			// 遮罩层
			var overlay	= $('<div class="selector_overlay"></div>');
			overlay.bind('dblclick', function(){ApplyJob.hideall();});
			$('body').append(overlay);
			$(window).bind('resize', function(){ApplyJob.resize()});
			this.overlay = overlay;
		}
		//设置遮罩层的大小
		this.overlay.css('width', document.documentElement.offsetWidth + "px");
		this.overlay.css('height', document.documentElement.scrollHeight + "px");
		var thisobj = this;
		if (!this.wnd) { // 窗口不存在则创建
			this.setUserResumes(); //获取用户简历信息
			// 取得窗口内容
			var content = this.form();
			var w = $('<div class="selectwnd"></div>').append($('<div class="selectwndwrap"><div class="selectwndtitle">申请职位</div></div>').append('<div class="selectwndcontent">' + content + '</div>'));
			var btn = $('<input type="button" class="selectwndapply" value="关闭" />');
			btn.click(function(){
				ApplyJob.hideall();
			});
			w.append(btn);
			this.wnd = w;
			$('body').append(this.wnd);
			this.func.init();
		}
		
		// 设置窗口位置
		this.wnd.css('left', document.documentElement.scrollLeft + (document.documentElement.clientWidth - this.wnd.width())/2 + 'px');
		this.wnd.css('top', document.documentElement.scrollTop + (document.documentElement.clientHeight - this.wnd.height())/2 + 'px');
		// 使窗口可拖动 
		this.drag({o:this.wnd[0], h:this.wnd.find('.selectwndtitle')[0], r:[0, document.documentElement.offsetWidth - this.wnd.width() - 4, 0, document.documentElement.offsetHeight - this.wnd.height()]});
		// 显示遮罩
		this.overlay.show();
		// 显示窗口
		this.wnd.show();
	},
	// 隐藏所有窗口和遮罩层
	hideall: function(){
		if(this.overlay){
			this.overlay.hide();
		}
		if (this.wnd) {
			this.wnd.hide();
		}
		$('select').show();
	},
	// 拖动函数
	drag: function(arg){
		o = arg.o;
		h = arg.h || o;
		r = arg.r;
		h.onmousedown=function(a){
			var d=document;if(!a)a=window.event;
			var x = a.clientX - o.offsetLeft + document.documentElement.scrollLeft;
			var y = a.clientY - o.offsetTop + document.documentElement.scrollTop;
			if(o.setCapture){
				o.setCapture();
			}
			else if(window.captureEvents){
				window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
			}
	
			d.onmousemove=function(a){
				if(!a)a=window.event;
				var ispagex = true;
				if(!a.pageX){ispagex = false; a.pageX=a.clientX;}
				if(!a.pageY){a.pageY=a.clientY;}
				var tx=a.pageX-x,ty=a.pageY-y;
				o.style.left	= ((!ispagex ? document.documentElement.scrollLeft : 0) + (tx<r[0]?r[0]:tx>r[1]?r[1]:tx) + 'px');
				o.style.top		= ((!ispagex ? document.documentElement.scrollTop : 0) + (ty<r[2]?r[2]:ty>r[3]?r[3]:ty) + 'px');
			};
	
			d.onmouseup=function(){
				if(o.releaseCapture)
					o.releaseCapture();
				else if(window.captureEvents)
					window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
				d.onmousemove=null;
				d.onmouseup=null;
			};
		};
	},
	// 浏览器大小重置后调用这个函数调整选择器窗口大小
	resize: function(){
		if(this.overlay){
			this.overlay.css('width', document.documentElement.offsetWidth + "px");
			this.overlay.css('height', document.documentElement.scrollHeight + "px");
		}	
		
		this.wnd.css('left', document.documentElement.scrollLeft + (document.documentElement.clientWidth - this.wnd.width())/2 + 'px');
		this.wnd.css('top', document.documentElement.scrollTop + (document.documentElement.clientHeight - this.wnd.height())/2 + 'px');
	
		this.drag({o:this.wnd[0], h:this.wnd.children('.selectwndtitle')[0], r:[0, document.documentElement.offsetWidth - this.wnd.width(), 0, document.documentElement.offsetHeight - this.wnd.height()]});
	}
};


