
/*************如下方法实现将一个层弹出、当前页面中间业务*************************/

/**显示一个divname 对象层*/
function showPopupLoginDialog(divname)
{
	popDialog(divname,400,330); 
}
/**隐藏 某个divname 对象*/
function hidePopupLoginDialog(divname)
{
	var od = document.getElementById(divname);
	if(od != null)
		od.style.display="none";
	var objScreen = gid("ScreenOver");
	if (objScreen){
		objScreen.style.display = "none";
		document.body.style.overflow="auto";//释放锁定滚动条
	}
}
/***
dlgId：要显示层的id value
*/
function popDialog(dlgId,width,height)
{
	//该方法实现了 窗口与div 之间的隔离
	ScreenConvert();
    var od = document.getElementById(dlgId);
    if(od == null)
        return;
    t_DiglogW = width;
    t_DiglogH = height;
	/**该方法用于计算 dlgId 层对象 要显示的位置(中间位置)*/
    DialogLoc();
	/**给 dlgId 对象 设置样式等属性*/
    var oS = od.style;
    oS.display = "block";
    oS.top = t_DiglogY + "px";
    oS.left = t_DiglogX + "px";
    oS.margin = "0px";
    oS.padding = "0px";
    oS.width = width + "px";
    oS.height = height + "px";
    oS.position = "absolute";
    oS.zIndex = "5";
    oS.background = "#EDF1F8";
    oS.border = "solid #4194CF 3px";
    //toggleSelect(od);
    /**在没有加入w3c标准前需要以下代码段*/
	/*od.style.left=(document.body.clientWidth-od.clientWidth)/2 + document.body.scrollLeft;
	od.style.top=(document.body.clientHeight-od.clientHeight)/2 + document.body.scrollTop;
	* */
}
/***************添加业务******************/
/**
*form ---> 表单ID 名 与 属性name 相同
*state ---> 这个状态判断 用户是： 登陆or注册
*/
function addToPhone(form)
{
	var addForm = document.getElementById("addForm");
	var checkBoxObj = addForm.addTopItem;
	var checkBoxLength = checkBoxObj.length;
	var checkBoxValueTemp = null;
	var buffStr = "";
	/**for 用于迭代所选中的推荐收藏项*/
	for(var i = 0; i < checkBoxLength; i ++)
	{
		if(checkBoxObj[i].checked)
		{
			checkBoxValueTemp = checkBoxObj[i].value;
			/**函数visitAction()在ajax.js中*/
			buffStr += "<a classname=\"ap3gbox\" href=\"" +visitAction()+ "?wapurl="+checkBoxValueTemp.split("&")[1]+"\" class=\"link1_5\">"+checkBoxValueTemp.split("&")[0]+"</a><br/>";
		}
	}
	/**将结果添加到左边的手机框中*/
	document.getElementById("acceptdiv").innerHTML = buffStr;

	/**如果条件为真、说明该用户没有 选择一个推荐链接复选框*/
	if(buffStr == ""){
		/**消失当前层*/
		hidePopupLoginDialog("tanchubox");
		/**则直接返回、以下语句不再执行*/
		return;
	}
	/**为左边手机框中的每一个链接、追加一个oncontextmenu 右击菜单事件*/
	var adiv=document.getElementById("acceptdiv");
	var adiva=adiv.getElementsByTagName("a");
	for(i=0;i<adiva.length;i++) {
			adiva[i].style.cssText='';
			adiva[i].oncontextmenu = new Function("menushow(this,'menu');return false");
	}
	/**消失当前层*/
	hidePopupLoginDialog("tanchubox");
	/**保存到session 中*/
	saveFavorite();
	/**保存到数据库中*/
	/**延迟这样避免了与上面一个函数同时执行*/
	setTimeout("saveFavByForm();",3000);
}

//---------------------对以上--辅助的方法---------start----------------------------------

/**获取id 对象*/
function gid(id){
	return document.getElementById?document.getElementById(id):null;
}
/**获取一个Name 组*/
function gname(name){
	return document.getElementsByTagName?document.getElementsByTagName(name):new Array()
}
function Browser(){
	var ua, s, i;
	this.isIE = false;
	this.isNS = false;
	this.isOP = false;
	this.isSF = false;
	ua = navigator.userAgent.toLowerCase();
	s = "opera";
	if ((i = ua.indexOf(s)) >= 0){
		this.isOP = true;
		return;
	}
	s = "msie";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isIE = true;return;
	}
	s = "netscape6/";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;return;
	}
	s = "gecko";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;return;
	}
	s = "safari";
	if ((i = ua.indexOf(s)) >= 0) {
		this.isSF = true;return;
	}
}
/**该方法实现了 窗口与div 之间的隔离*/
function ScreenConvert(){
	var browser = new Browser();
	var objScreen = gid("ScreenOver");
	if(!objScreen){
		var objScreen = document.createElement("div");//创建了一个div 对象
	}
	//如下是给以上的div 对象设置 id-and-style
	var oS = objScreen.style;
	objScreen.id = "ScreenOver";
	oS.display = "block";
	oS.top = oS.left = oS.margin = oS.padding = "0px";
	/*if (document.body.clientHeight)
	{
		var wh = document.body.clientHeight + "px";
	}else if (window.innerHeight){
		var wh = window.innerHeight + "px";
	}else{
		var wh = "100%";
	}*/
	var wh = document.body.scrollHeight + "px";
	oS.width = "100%";
	//oS.height = wh;
	var isIE = document.all && window.external; 
	if(isIE){ 
	 	oS.height = wh;
	}else{
		oS.height = "2000px";
	}
	oS.position = "absolute";
	oS.zIndex = "3";
	if ((!browser.isSF) && (!browser.isOP)){
		oS.background = "#cccccc";
	}else{
		oS.background = "#cccccc";
	}
	oS.filter = "alpha(opacity=40)";
	oS.opacity = 40/100;
	oS.MozOpacity = 40/100;
	document.body.style.overflow="hidden";//锁定滚动条
	document.body.appendChild(objScreen);
}
var t_DiglogX,t_DiglogY,t_DiglogW,t_DiglogH;
/**该方法用于计算 dlgId 层对象 要显示的位置(中间位置)*/
function DialogLoc(){
	var dde = document.documentElement;
	if (window.innerWidth){
		var ww = window.innerWidth;
		var wh = window.innerHeight;
		var bgX = window.pageXOffset;
		var bgY = window.pageYOffset;
	}else{
		var ww = dde.offsetWidth;
		var wh = dde.offsetHeight;
		var bgX = dde.scrollLeft;
		var bgY = dde.scrollTop;
	}
	t_DiglogX = (bgX + ((ww - t_DiglogW)/2));
	t_DiglogY = (bgY + ((wh - t_DiglogH)/2));
}
/**该方法名义：复选框(控制反转)负责将许多的复选框按钮、全选or取消(取消全选)
*1、form ---> 表单id 名 与属性name 相同
*2、flag ---> 控制要全选or反选(全不选) ；取值为true(全选)、false(全部先)
*/
function iocInverse(form,flag)
{
	var addForm = document.getElementById(form);
	var checkBoxObj = addForm.addTopItem;//获取复选框按钮 对象组
	var checkBoxLength = checkBoxObj.length;//获取复选框按钮的 个数
	/**for 用于迭代所选中的推荐收藏项*/
	for(var i = 0; i < checkBoxLength; i ++)
	{
		checkBoxObj[i].checked = flag;
	}
}

/**校验是否登录、如果是非登录状态则弹出一个登录or注册层提供用户登录or注册*/
function isLogin()
{
	/**校验是否登录用户 如果等于 "" 说明未登录 对象 isLoginSign 来自/include/div.jsp中*/
	var username = document.getElementById("isLoginSign").innerHTML;
	if(username == "")
	{
		/**当不存在的时候在执行*/
		if(isInsideRandom() == false)
		{
			popDialog("newuser",400,183);
			sendRequestsRandomName();
		}
	}else{
		//保存
		saveFavByForm();
	}
}


/**下面是cookie 校验**/
var cookieKey = "collect";
var cookieValue = "true";
function SetCookieRandom(name, value, ms) //两个参数，一个是cookie的名子，一个是值
{
	//默认情况下24小时,当ms不为空时，才使用
	
	var hour = 1 * 60 * 1000 * 60 * 12;//十二小时
	if(ms != 0 && ms != null){
		hour = ms;
	}
	//var hour = 15 * 1000;
	//此 cookie 将被保存 1 分钟
	var exp = new Date();
	//new Date("December 31, 9998");
	exp.setTime(exp.getTime() + hour);//一小时
	document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}
function getCookieRandom(name) //取cookies函数
{
	var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
	if(arr != null) {
		return unescape(arr[2]);
	}
	return null;
}
/**校验cookie 变量cookieKey 是否存在 return true/false  true存在，false不存在*/
function isInsideRandom() {
	/**条件为真说明 cookie还没有失效*/
	if(getCookieRandom(cookieKey) == cookieValue) {
		//alert("还没有失效");
		return true;
	}else{/**这里表示cookie已失效 or 第一次*/
		SetCookieRandom(cookieKey, cookieValue);
		//alert("新cookie");
		return false;
	}
}

/**
	校验Cookie是否失效
*/
function isCookieCommon(cKey,cValue,ms) {
	/**条件为真说明 cookie还没有失效*/
	if(getCookieRandom(cKey) == cValue) {
		//alert("还没有失效");
		return true;
	}else{/**这里表示cookie已失效 or 第一次*/
		SetCookieRandom(cKey, cValue, ms);
		//alert("新cookie");
		return false;
	}
}


//---------------------对以上--辅助的方法---------end----------------------------------


//发送请求函数
function sendRequestsRandomName() {
	createXMLHttpRequests();
	var url = "/about/randomUserName.jsp";
	XMLHttpReq.open("GET", url, true);
	XMLHttpReq.onreadystatechange = processResponsesRandomName;//指定响应函数
	XMLHttpReq.send(null);  // 发送请求
}
// 处理返回信息函数
function processResponsesRandomName() {
	if (XMLHttpReq.readyState == 4) { // 判断对象状态
		if (XMLHttpReq.status == 200) { // 信息已经成功返回，开始处理信息
			xmlDoc = XMLHttpReq.responseXML;
			var usernameXml = xmlDoc.getElementsByTagName("username")[0].childNodes[0].nodeValue;//这里的用户名是一个唯一的随机产生的.
			/**randomUserNameFrm是一个 frame名称对象*/
			randomUserNameFrm.document.getElementById("newloginusername").value = usernameXml;
			randomUserNameFrm.document.getElementById("usernameObj").innerHTML = usernameXml;
		}
	}
}





	/******************XMLHttpRequest***************************/
		var XMLHttpReq;
		   //创建XMLHttpRequest对象       
		  function createXMLHttpRequests() {
				  if(window.XMLHttpRequest) { //Mozilla 浏览器
						 XMLHttpReq = new XMLHttpRequest();
				  }
				  else if (window.ActiveXObject) { // IE浏览器
						 try {
							   XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
						 } catch(e){
							   try {
								  XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
							   } catch (e) {}
						 }
				  }
		   }
		   //发送请求函数
		   function sendRequests(proxy,proxyId,proxyIp,proxyPort) {
				  createXMLHttpRequests();
				var url = "/about/proxy_submit.jsp?proxy=" + proxy + "&proxyId=" + proxyId + "&proxyIp=" + proxyIp + "&proxyPort=" + proxyPort + "&timeStamp=" + new Date().getTime();
				  XMLHttpReq.open("GET", url, true);
				  XMLHttpReq.onreadystatechange = processResponses;//指定响应函数
				  XMLHttpReq.send(null);  // 发送请求
		   }
		   // 处理返回信息函数
		   function processResponses() {
			 if (XMLHttpReq.readyState == 4) { // 判断对象状态
				  if (XMLHttpReq.status == 200) { // 信息已经成功返回，开始处理信息
					DisplayHots();
				  }
			 }
		  }
		  // 显示更新数据信息的函数
		  function DisplayHots() {
				var content = XMLHttpReq.responseText;
				content = trim(content);
				if(content == "0"){// 条件成立、说明 该用户的登录用户session失效
					alert("设置失败,请重新登录.");
					location.href = "/user/login.jsp";//跳转到登录页面
				}else if(content == "1"){
					//alert("设置成功!");
					location.reload();//设置成功 重新加载立即生效、如果无法访问、则说明您所设置的 ip、port 无效.
				}
		  }
		  //发送请求函数
		   function findProxyByUserName() {
				  createXMLHttpRequests();
				var url = "/about/proxy_search.jsp?timeStamp=" + new Date().getTime();
				  XMLHttpReq.open("GET", url, true);
				  XMLHttpReq.onreadystatechange = processResponsesByUserName;//指定响应函数
				  XMLHttpReq.send(null);  // 发送请求
		   }
		   // 处理返回信息函数
		   function processResponsesByUserName() {
			 if (XMLHttpReq.readyState == 4) { // 判断对象状态
				if (XMLHttpReq.status == 200) { // 信息已经成功返回，开始处理信息
					var content = XMLHttpReq.responseText;
					if(trim(content).length != 2){
						var proxyArr = trim(content).split("|");
						document.getElementById("proxyId").value = proxyArr[0];
						document.getElementById("proxyIp").value = proxyArr[1];
						document.getElementById("proxyPort").value = proxyArr[2];
					}else{
						document.getElementById("proxyId").value = "";
						document.getElementById("proxyIp").value = "";
						document.getElementById("proxyPort").value = "";
					}
				}
			}
		  }
		  //发送请求函数
		   function findProxyTesting(proxyIp,proxyPort) {
				  createXMLHttpRequests();
				  popDialog("waitHint",200,18);
				var url = "/about/proxy_testing.jsp?proxyIp=" + proxyIp + "&proxyPort=" + proxyPort + "&timeStamp=" + new Date().getTime();
				  XMLHttpReq.open("GET", url, true);
				  XMLHttpReq.onreadystatechange = processResponsesTesting;//指定响应函数
				  XMLHttpReq.send(null);  // 发送请求
		   }
		   // 处理返回信息函数
		   function processResponsesTesting() {
			 if (XMLHttpReq.readyState == 4) { // 判断对象状态
				if (XMLHttpReq.status == 200) { // 信息已经成功返回，开始处理信息
					var content = XMLHttpReq.responseText;
					/**0假、1真*/
					if(trim(content) != 0){
						alert("测试通过!");
					}else{
						alert("测试未通过!");
					}
					hidePopupLoginDialog('waitHint');
				}
			}
		  }
		  function trim(str){//删除左右两端的空格
			  return str.replace(/(^\s*)|(\s*$)/g, "");
		  }




/***在填写手机号码发短信时使用如下方法**/
//JS正则表达式判断手机号与电子邮件有效性
function chk_mobs(mobile){
	var bReturn = false;
	var value = mobile.value;
	if(value == ""){
		alert("手机号码不能为空");
	}else{
		var reg = /^1[3584]\d{9}$/;
		if(!reg.test(value)){
			alert("无效的手机号码");
		}else{
			bReturn = true;
		}
	}
	return bReturn;
}



/**********************************************start****这里负责循环将某一个选项的颜色变换,但前提必须要遵循以下规则 数组items,bate测试在页面include/liucheng.jsp*****/

	var items = new Array("div_001","div_002", "div_003", "div_004","div_005","div_006");
	var thisItemIndex = 0;//保存当前选型的索引值
	var second = 3 * 1000;//单位秒

	/**
		id = "div_00(num)";
	*/
	function selectItem(id,maxEachItem)
	{
		for(var i = 1;i<=maxEachItem;i++)
		{
			//容器颜色
			document.getElementById("div_00" + i).className = "tagb";//这是一个普通的颜色
			//容器上的文字颜色
			document.getElementById("div_00" + i + "_00" + i).className = "lctxt";//这是一个普通的颜色
		}
		document.getElementById(id).className = "taga";//这是一个与众不同的颜色
		document.getElementById(id + "_00" + (thisItemIndex + 1)).className = "lctxtb";//这是一个与众不同的颜色
	}
	/**
		maxEachItem = 最大循环项
		maxEachIndexItem = 最大索引项
	*/
	function timingEach(maxEachItem,maxEachIndexItem)
	{
		if(thisItemIndex == maxEachIndexItem)
		{
			thisItemIndex = 0;
		}else{
			thisItemIndex++;
		}
		selectItem(items[thisItemIndex],maxEachItem);
		setTimeout("timingEach("+maxEachItem+","+maxEachIndexItem+");",second);
	}
	//用的时候只需如下调用即可，参数一永远比参数二大一个数
	//setTimeout("timingEach("+5+","+4+");",second);
/***********************************************end********/

/***/
function mouseMoveEvent(o)
{
	//alert("ddd" + o.href);
	var objThisTagA = parent.document.getElementById("thisTagA");
	if(!objThisTagA){
		objThisTagA = parent.document.createElement("a");//创建了一个div 对象
		objThisTagA.id = "thisTagA";
		objThisTagA.style.display = "none";
	}
	objThisTagA.setAttribute("href",o.href);
	parent.document.body.appendChild(objThisTagA);
}

/**页面刷新，一般情况下调用该函数时需要，利用时间差(定时器)，特殊情况下直接调用。*/
function page_reload(){
	parent.document.location.reload();
}

/**
 * 几秒后关闭窗口
 */
function page_close(seconds){
	seconds *= 1000;
	/**
	 * window.open('','_parent',''); 起到关闭IE等窗口不提示，是否关闭,将会直接关闭
	 * */
	setTimeout("window.open('','_parent','');window.close();",seconds);
}


/**
 * 选中select框中某一项By value
 */
function selectItemByValue(id,itemValue){
	var objSelect = document.getElementById(id);
	for (var i = 0; i < objSelect.options.length; i++) {
    	if (objSelect.options[i].value == itemValue) {
        	objSelect.options[i].selected = true;
            break;
		}
	}
}

