/*
public.js
系统中通用的函数及全局变量、常量的定义
*/

var SEPARATOR = '`';
var rootPath = '/newsegns/';
/**主页面刷新时间**/
var refresh=180000;
/**主页面区域刷新间隔时间**/
var refreshinterval=60000;


/*
功能：打开选择值的模态窗口，并将模态窗口传回的值赋给指定的输入框
参数：
	url		字符串，要打开窗口的URL
	vars	对象，要向模态窗口的传递的参数
	feas	字符串，模态窗口的设定参数
	ids		字符串，模态窗口返回值要赋与的输入框id值，多个以"`"分隔
作者：shoopman
*/
function openSelect(url, vars, feas, ids)
{
	var returnValues = showModalDialog(url, vars, feas);
	if(returnValues != undefined)
	{
		var arrIds = ids.split('`');
		var arrValues = returnValues.split('`');
		for(var i = 0; i < arrIds.length; i++)
		{
			document.getElementById(arrIds[i]).value = arrValues[i];
		}
	}
}


/*
功能：打开选择值的模态窗口，并将模态窗口传回的值赋给指定的输入框
参数：
	url		字符串，要打开窗口的URL
	vars	对象，要向模态窗口的传递的参数
	feas	字符串，模态窗口的设定参数
	ids		字符串，模态窗口返回值要赋与的输入框id值，多个以"`"分隔
作者：shoopman
*/
function openSelect1(url, vars, feas, ids)
{
	var returnValues = showModalDialog(url, vars, feas);
	if(returnValues != undefined)
	{
		var arrIds = ids.split('`');
		var arrValues = returnValues.split('`');
		for(var i = 0; i < arrIds.length; i++)
		{
			document.getElementById(arrIds[i]).value = arrValues[i];
		}
	}
}



/*
功能：获得一组单选框选中值
参数：objRadios	对象，一个或一组单选框对象
返回：单选框选中值，如果未选中即返回null
作者：shoopman
日期：
*/
function getRadioValue(objRadios)
{
	if(null == objRadios)
	{
		return null;
	}
	if(objRadios.type)	//判断是否单个Radio
	{
		if(objRadios.checked)
		{
			return objRadios.value;	
		}
		else
		{
			return null;
		}
	}
	else
	{
		for(var i = 0; i < objRadios.length; i++)
		{
			if(objRadios[i].checked)
			{
				return objRadios[i].value;
			}
		}
		return null;
	}
}




/*
功能：获得一组复选框选中值，如果有多个值，以SEPARATOR所定义的值分隔
参数：objCheckboxes	对象，一个或一组复选框对象
返回：复选框选中值，如果未选中即返回null
作者：shoopman
日期：
*/
function getCheckboxValue(objCheckboxes)
{
	var returnValue;
	if(null == objCheckboxes)
	{
		return null;
	}
	if(objCheckboxes.type)	//判断是否单个Radio
	{
		if(objCheckboxes.checked)
		{
			return objCheckboxes.value;	
		}
		else
		{
			return null;
		}
	}
	else
	{
		for(var i = 0; i < objCheckboxes.length; i++)
		{
			if(objCheckboxes[i].checked)
			{
				if(null == returnValue)
				{
					returnValue = objCheckboxes[i].value;
				}
				else
				{
					returnValue = returnValue + SEPARATOR + objCheckboxes[i].value;
				}
			}
		}
		return returnValue;
	}
}


/**
 * @remark 获得checkbox被选中的值
 * @author 唐懋文
 * @date 2006-3-7
 */
function getCheckBox(){
	var temp=new Array();
	if(document.forms[0].box!=undefined){//当表单中有checkbox时执行这一步
		if(document.forms[0].box.length!=undefined){//当有两个以上checkbox时执行这一步
			for(i=0,m=0;i<document.forms[0].box.length;i++){
				if(document.forms[0].box[i].checked){//将被选中的checkbox的值保存到临时数组中
					temp[m]=document.forms[0].box[i].value;
					m++;
				}
			}
		}else if(document.forms[0].box.checked){//只有一个checkbox时执行这一步
			temp[0]=document.forms[0].box.value;
		}
	}
	var obj=document.getElementById('checkbox');//此元素为一隐藏域，得到此域的引用
	obj.value=temp;//将临时数组保存到此域中
}

/**
 * @remark 选中用户id时同步更新用户名
 * @author 唐懋文
 * @date 2006-3-21
 */
function changeUser(){
 	var friendID=document.getElementById('friendID');
 	var friendName=document.getElementById('friendName');
 	var temp=friendID.options[friendID.options.selectedIndex].value;
 	var name=document.getElementById(temp);
 	friendName.value=name.value; 
 	}
/*
改变action 提交form
参数：	form	表单对象
		url		跳转地址
作者：hema
日期：2006-03-24
*/
function changeAction(form,url)
{
	form.action = url;
	form.submit();
}


/**
 * @remark	弹出全屏窗口
 * @author	shoopman
 * @2007-06-29
*/
function openFullWin(url, name)
{
	var newwin=window.open("",name,"scrollbars");
	newwin.moveTo(0,0)//新窗口的坐标
	newwin.resizeTo(screen.width,screen.height)
	newwin.location = url;
}


/**
 * @remark 弹出窗口
 * @author 唐懋文
 * @date 2006-4-4
 */
function openWin(url,name){
	window.open(url,name,'width=800,height=600,left=112,top=54,resizable=yes,menubar=no,toolbar=no,scrollbars=yes,status=no');
	void(0);
}
function openMiddleWin(url,name){
	window.open(url,name,'width=800,height=400,top=200,left=100,resizable=yes,menubar=no,toolbar=no,scrollbars=yes,status=no');
	void(0);
}
function openSmallWin(url,name){
	window.open(url,name,'width=416,height=300,top=200,left=230,resizable=no,menubar=no,toolbar=no,scrollbars=yes,status=no');
	void(0);
}
function openlonglWin(url,name){
	window.open(url,name,'width=500,height=300,top=220,left=250,resizable=no,menubar=no,toolbar=no,scrollbars=yes,status=no');
	void(0);
}

function openlonglWinelvpn(url,name){
	window.open(url,name,'width=300,height=500,top=120,left=350,resizable=no,menubar=no,toolbar=no,scrollbars=yes,status=no');
	void(0);
}
/**
 * @author hema
 * @remark 弹出小窗口
 * @date 2006-4-4
 **/
 function openTinyWin(url,name)
 {
 	window.open(url,name,'width=200,height=200,top=300,left=400');
 }	
 
 
 /**
 * @author	shoopman
 * @remark	清空一个select
 * @date	2006-04-15
 */
function clearSelect(obj)
{
 	/*
 	for(var i = 0; i < obj.options.length; i++)
 	{
 		obj.options.remove(i);
 	}
 	alert("after:" + obj.options.length);
 	*/
 	obj.options.length = 0;
}


/**
 * @remark	将一个列表中的选中值从一个移动到另一个中 
 * @author	shoopman
 * @param	objDel	减少选项的列表
 * @param	objAdd	增加选项的列表 
 */
function moveOptions(objDel,objAdd)
{
	for(var i = 0; i < objDel.options.length; i++)
	{
		if(objDel.options[i].selected)
		{
			objAdd.options.add(new Option(objDel.options[i].text,objDel.options[i].value));
		}
	}
	for(var i = objDel.options.length - 1; i >= 0; i--)
	{
		if(objDel.options[i].selected)
		{
			objDel.options.remove(i);
		}
	}
}


/**
 * @remark	将一个列表中的选项从一个移动到另一个中
 * @author	shoopman
 * @param	objDel	减少选项的列表
 * @param	objAdd	增加选项的列表
 */
function moveAllOptions(objDel,objAdd)
{
	for(var i = 0; i < objDel.options.length; i++)
	{
		objAdd.options.add(new Option(objDel.options[i].text,objDel.options[i].value));
	}
	objDel.options.length = 0;
}


/**
 * @remark	判断一个值是否在数组中
 * @author	shoopman
 * @param	value
 * @param 	arr
 * @return 	如果在即返回true，否则返回false 
 */
function isInArray(value,arr)
{
	for(var i = 0; i < arr.length; i++)
	{
		if(value == arr[i])
			return true;
	}
	return false;
}


/**
 * @remark	判断一个值是否在一个列表中
 * @author	shoopman 
 * @date	2006-04-15
 * @param	value 
 * @param	obj	列表选择框 
 */
function isInSelect(value,obj)
{
	for(var i = 0; i < obj.options.length; i++)
	{
		if(value == obj.options[i].value)
			return true;
	}
	return false;
}


/**
 * @remark	获取URL后的参数
 * @param	name	参数名
 * @return			参数值，如果不存在即返回空字符串
 * @author	shoopman
 * @date	2006-04-20
 */
function getParameter(name)
{
	var url = window.location.search;
	var reg = new RegExp('(^|\\?|&)'+ name +'=([^&]*)(\\s|&|$)', 'i');
	if(reg.test(url))
		return RegExp.$2;
	else
		return '';
}

/**
 * 获取URL后的参数值
 */
function getUrlParameter(url, name)
{
	if(url == null || url == '' || name == null || name == '')
		return ''
	var reg = new RegExp('(^|\\?|&)'+ name +'=([^&]*)(\\s|&|$)', 'i');
	if(reg.test(url))
		return RegExp.$2;
	else
		return '';
}

/**
 * @remark	将一个对象隐藏
 * @param	id，对象的id
 * @author	shoopman
 * @date	2006-04-28
 */
function hideObject(id)
{
	var obj = document.getElementById(id);
	obj.style.display = 'none';
}
 
 
 /**
 * @remark	将一个对象显示
 * @param	id，对象的id
 * @author	shoopman
 * @date	2006-04-29
 */
function showObject(id)
{
	var obj = document.getElementById(id);
	obj.style.display = '';
}
 

/**
 * @remark	检查一个字符串是否日期时间
 * @author	shoopman 
 */
function isDateTime(str)
{
	/*
	var b;
	execScript("b=IsDate(tt)","vbscript")   
	return b;
	*/
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null)return false; 
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
/**
 * @remark	检查一个字符串是否日期
 * @author	hema
 */
function isDate(str)
{
	var reg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/i;
	if(!reg.test(str))
	{
		alert("日期的格式为：1982－07－30");
		return false;
	} 
	return true;
}

/**
 * @remark	判断是否日期
 * @author	shoopman 
 */
function isDate1(str)
{
	var reg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/i;
	if(!reg.test(str))
		return false;
	return true;
}

/**
 * @remark	判断是否
 * @author	shoopman 
 */
 function isNumber(str)
{
	var digits = '1234567890';
	var i = 0;
	var strlen = str.length;
	var c;
	while((i<strlen))
	{
		c = str.charAt(i);
		if(digits.indexOf(c) == -1)
		{
			return false;
		}
		i++;
	}
	return true;
}



/*
得到字符串的真正长度，一个汉字算2
*/
function getStrRealLen(str)
{
	var re=/[\x00-\xff]/g;
	var len=str.length;
	var array=str.match(re);
	if (array==null)
	{
		array="";
	}
	return len*2 - array.length;
}




// utility function to retrieve an expiration data in proper format;
function getExpDate(days, hours, minutes)
{
    var expDate = new Date();
    if(typeof(days) == "number" && typeof(hours) == "number" && typeof(hours) == "number")
    {
        expDate.setDate(expDate.getDate() + parseInt(days));
        expDate.setHours(expDate.getHours() + parseInt(hours));
        expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
        return expDate.toGMTString();
    }
}

//utility function called by getCookie()
function getCookieVal(offset)
{
    var endstr = document.cookie.indexOf(";", offset);
    if(endstr == -1)
    {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}

// primary function to retrieve cookie by name
function getCookie(name)
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while(i < clen)
    {
    var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
        {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if(i == 0) break;
    }
    return;
}

// store cookie value with optional details as needed
function setCookie(name, value, expires, path, domain, secure)
{
    document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

// remove the cookie by setting ancient expiration date
function deleteCookie(name,path,domain) 
{
    if(getCookie(name))
    {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}
//添加收藏
function newaddCollection(url,param,id){
//判断是否登陆
if(js_islogin_==0)
{
	showinfo("……您未登陆,请先登陆!……");
	return;
}
var date = new Date();
$.post(url,param+"&date="+date,function(data){
	if(data==2){
		$("#"+id).text(parseInt($("#"+id).text())+1);
		showinfo("……恭喜您操作成功!……");
	}else if(data==0){
		showinfo("……以前您已执行过此操作!……");
	}else if(data==4){
		showinfo("……您未登陆,请先登陆!……");
	}else{
		showinfo("……对不起，您操作失败了!请稍后在试!……");
	}
   });
}
