/******************************************************************************
基本操作
*******************************************************************************/
var agent = navigator.userAgent;

String.prototype.trim = function()
	{
		return this.replace(/(^[\s]*)|([\s]*$)/g, "");
	};

String.prototype.inc = function(k1, k2)
	{
		return k2 == null ? this.indexOf(k1) > -1 ? true : false : (k2 + this + k2) .indexOf(k2 + k1 + k2) > -1 ? true : false;
	};

String.prototype.toArray=function(key)
	{
		var l = this, v;
		if(key == null) key = "|";
		v = key;
		if(key == "n")
		{
			l = l.replace(/\r/g,"");
			v = "\n";
		}
		l = l.replace(new RegExp("(\\"+key+")+","g"), v).replace(new RegExp("^[\\" + key + "]*|[\\" + key + "]+$","g"), "");
		return l == "" ? new Array() : l.split(v);		
	};

Array.prototype.add = function(key)
{
	this[this.length] = key;
};



var is_Opr = agent.inc("Opera");
var is_IE = agent.inc("IE") && !is_Opr;
var is_IE4 = agent.inc("IE 4");
var is_IE5 = agent.inc("IE 5") || agent.inc("IE 4");
var is_IE5_5 = agent.inc("IE 5.5");
var is_IE6 = is_IE && !is_IE5;
var is_Moz = agent.inc("Mozilla") && !is_Opr && !is_IE;

function oo(obj){
	return typeof(obj) != "string" ? obj : (is_IE5 ? document.all(obj) : document.getElementById(obj));
}

function co(elm){
	return document.createElement(elm);
}

if(is_IE4)
{
	oo=function(key){return document.all[key]}
	document.getElementsByName=function(key){var a=new Array(),ol=document.all;for(i=0;i<ol.length;i++){if(ol[i].name==key)a[a.length]=ol[i];}return a;}
	document.getElementsByTagName=function(key){var a=new Array(),ol=document.all;for(i=0;i<ol.length;i++){if(ol[i].tagName.toLowerCase()==key)a[a.length]=ol[i];}return a;}
}
if(is_Moz)
{
	Event.prototype.__defineGetter__("srcElement",function(){var node=this.target;while(node.nodeType!=1){node=node.parentNode;}return node;});
	HTMLElement.prototype.__defineGetter__("children",function(){return this.childNodes});
	HTMLElement.prototype.__defineGetter__("parentElement",function(){return this.parentNode});
}
function trim(str){	
	return str.trim();
}
function isIE(){	
	return is_IE;
}
function isFF(){
	return is_Moz;
}
function show(obj){
	if(oo(obj)){
		oo(obj).style.display = "";
	}
}
function hidden(obj){
	if(oo(obj)){
		oo(obj).style.display = "none";
	}
}
function getDisplay(obj){
	return oo(obj).style.display;
}
function showMsg(obj,msg,class_name){
	oo(obj).innerHTML = msg;
	oo(obj).className = class_name;
}
function show_msg(hint_id, msg)
{
	showMsg(hint_id, msg, 'box_error');
}
function show_err(f_input, hint_id, msg){
	showMsg(hint_id, msg, 'box_error');
}
function cancel_err(f_input, hint_id){
	showMsg(hint_id, '', '');
}
function showLogin(){
	ScreenConvert();
	DialogShow("<div id=DialogLoading ></div>",400,150,124,20);
	html_str="";
	html_str += '<form action="/services/srv_login.phtml" method="post">';
	html_str += '<input type="hidden" name="module" value="login"><input type="hidden" name="referer" value="'+location.href+'"><input type="hidden" name="flag" value="1">';
	html_str += '<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0" class="table">';
	html_str += '<tr height="25"><td>&nbsp;</td><td><strong>请登录</strong></td><td align=right><a href="javascript:void(0)" onclick="DialogHide()">关闭</a></td></tr>';
	html_str += '<tr height="25"><td>&nbsp;</td><td width="35%">电子邮箱或者手机号码</td><td width="63%"><input type="text" name="user_name" id="user_name" class="input" /></td></tr>';
	html_str += '<tr height="25"><td>&nbsp;</td><td>密码</td><td><input name="passwd" type="password" class="input"  /><a href="/services/srv_users.phtml?module=findpw">忘记密码了？</a></td></tr>';
	html_str += '<tr height="25"><td>&nbsp;</td><td colspan="2"><input type="checkbox" name="autoload" value="8760"/>让这台电脑记住你，下次访问自动登入。</td></tr>';
	html_str += '<tr height="25"><td>&nbsp;</td><td colspan="2" align="center"><input type="submit" value="登 录"  />&nbsp;&nbsp;<a href="/services/srv_users.phtml?module=show_rule">快速注册</a></td></tr>';			  
	html_str += '</table></form>';
	showMsg('DialogLoading', html_str, '');	
}
function isFunction(a) 
{
	return typeof a == 'function';
}
function isObject(a) {
	return (a && typeof a == 'object') || isFunction(a);
}
function isArray(a) {
	return isObject(a) && a.constructor == Array;
}
//check moblie 
function isEmail(str)
{
	return (new RegExp("^[\\w._]+@\\w+\.(\\w+\.){0,3}\\w{2,4}$","g").test(str.replace(/-|\//g,"")));
}
function isMobile(str)
{
	return (new RegExp("^13(\\d{9})+$").test(str)) || (new RegExp("^159(\\d{8})+$").test(str)) || (new RegExp("^158(\\d{8})+$").test(str));
}

//输入转为大写
function toUpperChrEvent()
{
	var e = window.event.srcElement;
	e.value = e.value.toUpperCase();
}
//打印
function prtf(s){
	document.write(s);
}
function getFileExtension(filename) {
	if (filename == null || filename == '')
		return "";

	var ext = null;

	var dot = filename.lastIndexOf(".");

	if (dot != -1) {
		ext = filename.substring(dot + 1); // includes "."
	} else {
		ext = "";
	}

	return ext;
}
//判断是否是图片
function isPic(filename){
	var image_file_ext = new Array("jpg", "jpeg", "gif", "png", "bmp");
	var ext = getFileExtension(filename);
	for (var i = 0; i < image_file_ext.length; i++) 
	{
		if (image_file_ext[i] == ext.toLowerCase()) 
		{
			return true;
		}
	}
	return false;
}
function resetImage(theimg)
{
	var vimg = new Image(); 
	vimg.src = theimg.src;

	//if(defaultw == 'undefined') defaultw = 150;

	if(vimg.width < theimg.width)
	{
		theimg.width = vimg.width;
	}


	if(vimg.height < theimg.height)
	{
		theimg.height = vimg.height;
	}
}
//the succussful code
var SUCC_COMPLETE = 200;

function getResultCode(result){
	var p = result.indexOf(' ');
	var ret = null;
	if(p > -1){
		try{ret = parseInt(result.substr(0, p));}catch(e){ret = null;}
	}
	return ret;
}

function getResultParameter(result, param){
	var ret = null;
	param += ":";
	var p = result.indexOf(param);
	if(p > -1){
		j = result.toLowerCase().indexOf("\r\n", p);
		ret = result.substr(p + param.length, j - p - param.length);
	}
	return ret;
}
/******************************************************************************
层显示操作
*******************************************************************************/
var ev_SacreenAlpha;
var v_ScreenAlpha = 0;
var Browser_GeckoMac = false;
var Browser_GeckoLinux = false;
var Browser_Opera = false;

function  BrowserInit(){
	Browser_GeckoMac = false;
	Browser_GeckoLinux = false;
	Browser_Opera = false;
	v_ScreenAlpha = 20;
	
	var ua = navigator.userAgent.toLowerCase();
	if (ua.indexOf("safari") > -1)
	{
		Browser_GeckoMac = true;
	}
	
	if (ua.indexOf("linux") > -1)
	{
		Browser_GeckoLinux = true;
	}
	if (ua.indexOf("opera") > -1)
	{
		Browser_Opera = true;
	}
}

function ScreenConvert()
{
	BrowserInit();
	var objScreen = document.getElementById("ScreenOver");
	if (!objScreen)
	{
		var objScreen = document.createElement("div");
	}
	objScreen.id = "ScreenOver";
	objScreen.style.display = "block";
	objScreen.style.top = "0px";
	objScreen.style.left = "0px";
	objScreen.style.margin = "0px";
	objScreen.style.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%";
	}
	objScreen.style.width = "100%";
	objScreen.style.height = wh;
	objScreen.style.position = "absolute";
	objScreen.style.zIndex = "3";
	if ((!Browser_GeckoMac) && (!Browser_GeckoLinux) && (!Browser_Opera))
	{
		objScreen.style.background = "#666";	
	}
	else
	{
		objScreen.style.background = "#FFF";
	}
	objScreen.style.filter = "alpha(opacity=" + v_ScreenAlpha + ")";
	objScreen.style.opacity = v_ScreenAlpha/100;
	objScreen.style.MozOpacity = v_ScreenAlpha/100;
	document.body.appendChild(objScreen);
	ev_SacreenAlpha = window.setInterval(ScreenAlpha, 100);
	var allselect = document.getElementsByTagName("select");
	for (var i=0; i<allselect.length; i++)
	{
		allselect[i].style.visibility = "hidden";
	}
}

function ScreenAlpha()
{
	var objScreen = document.getElementById("ScreenOver");
	if (objScreen && ev_SacreenAlpha)
	{
		for (var i=0;i<1;i++)
		{
			if(v_ScreenAlpha<40)
			{
				v_ScreenAlpha++;
				objScreen.style.filter = "alpha(opacity=" + v_ScreenAlpha + ")";
				objScreen.style.MozOpacity = v_ScreenAlpha/100;
				objScreen.style.opacity = v_ScreenAlpha/100;
			}
			else
			{
				window.clearInterval(ev_SacreenAlpha);
			}
		}
	}
}

function ScreenClean()
{
	var objScreen = document.getElementById("ScreenOver");
	if (objScreen)
	{
		objScreen.style.display = "none";
	}
	var allselect = document.getElementsByTagName("select");
	for (var i=0; i<allselect.length; i++)
	{
		allselect[i].style.visibility = "visible";
	}
}

var ev_DiglogMove;
var ShowW,ShowH,ShowX,ShowY,CenterX,CenterY;
var t_DiglogX,t_DiglogY,t_DiglogW,t_DiglogH;

function DialogLocation()
{
	if (window.innerWidth)
	{
		var ww = window.innerWidth;
		var wh = window.innerHeight;
		var bgX = window.pageXOffset;
		var bgY = window.pageYOffset;
	}
	else
	{
		var ww = document.documentElement.offsetWidth;
		var wh = document.documentElement.offsetHeight;
		var bgX = document.documentElement.scrollLeft;
		var bgY = document.documentElement.scrollTop;
	}
	t_DiglogX = CenterX = (bgX + ((ww - t_DiglogW)/2));
	t_DiglogY = CenterY = (bgY + ((wh - t_DiglogH)/2));
	ShowX = (bgX + ((ww - ShowW)/2));
	ShowY = (bgY + ((wh - ShowH)/2));
}

function DialogShow(showdata,ow,oh,w,h)
{
	var objDialog = document.getElementById("DialogMove");
	if (!objDialog)
	{
		objDialog = document.createElement("div");
	}
	t_DiglogW = ow;
	t_DiglogH = oh;
	ShowW = w;
	ShowH = h;
	DialogLocation();
	objDialog.id = "DialogMove";
	objDialog.className="pop";
	objDialog.style.display = "block";
	objDialog.style.top = CenterY + "px";
	objDialog.style.left = CenterX + "px";
	objDialog.style.margin = "0px";
	objDialog.style.padding = "0px";
	objDialog.style.width = t_DiglogW + "px";
	objDialog.style.height = t_DiglogH + "px";
	objDialog.style.position = "absolute";
	objDialog.style.zIndex = "10";
	//objDialog.style.background = "#FFF";
	//objDialog.style.border = "solid #000 2px";
	objDialog.style.filter = "alpha(opacity=90)";
	objDialog.style.opacity = 0.9;
	objDialog.style.MozOpacity = 0.9;
	objDialog.innerHTML = showdata;
	document.body.appendChild(objDialog);
	ev_DiglogMove = window.setInterval(DialogMove, 20);
}

function DialogMove()
{
	var objDialog = document.getElementById("DialogMove");
	if (objDialog)
	{
		for (var i=0;i<10;i++)
		{
			var movestop = true;
			if (t_DiglogX > ShowX)
			{
				t_DiglogX = t_DiglogX - ((1+ShowH/ShowW)/2);
				objDialog.style.left = t_DiglogX + "px";
				movestop = false;
			}
			if (t_DiglogY > ShowY)
			{
				t_DiglogY = t_DiglogY - (ShowW/ShowH/2);
				objDialog.style.top = t_DiglogY + "px";
				movestop = false;
			}
			if (t_DiglogW < ShowW)
			{
				t_DiglogW = t_DiglogW + (1+ShowH/ShowW);
				objDialog.style.width = t_DiglogW + "px";
				movestop = false;
			}
			if (t_DiglogH < ShowH)
			{
				t_DiglogH = t_DiglogH + ShowW/ShowH;
				objDialog.style.height = t_DiglogH + "px";
				movestop = false;
			}
			if (movestop)
			{
				window.clearInterval(ev_DiglogMove);
			}
		}
	}
}

function DialogHide()
{
	ScreenClean();
	var objDialog = document.getElementById("DialogMove");
	if (objDialog)
	{
		objDialog.style.display = "none";
	}
}

/******************************************************************************
ajax对象
*******************************************************************************/
var xml_http_building_link = '请等待，正在建立连接...';
var xml_http_sending = '请等待，正在发送数据...';
var xml_http_loading = '请等待，正在接受数据...';
var xml_http_load_failed = '通信失败，请刷新重新尝试！';
var xml_http_data_in_processed = '通信成功，数据正在处理中...';
function Ajax(statusId, recvType) {
	var aj = new Object();
	if(statusId){
		aj.statusId = document.getElementById(statusId);
	}else{
		aj.statusId = false;
	}
	aj.targetUrl = '';
	aj.sendString = '';
	aj.recvType = recvType ? recvType : 'HTML';//HTML XML
	aj.resultHandle = null;

	aj.createXMLHttpRequest = function() {
		var request = false;
		if(window.XMLHttpRequest) {
			request = new XMLHttpRequest();
			if(request.overrideMimeType) {
				request.overrideMimeType('text/xml');
			}
		} else if(window.ActiveXObject) {
			var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
			for(var i=0; i<versions.length; i++) {
				try {
					request = new ActiveXObject(versions[i]);
					if(request) {
						return request;
					}
				} catch(e) {
					//alert(e.message);
				}
			}
		}
		return request;
	}

	aj.XMLHttpRequest = aj.createXMLHttpRequest();
      
	aj.processHandle = function() {
		if(aj.XMLHttpRequest.readyState == 1) {
			if(aj.statusId) aj.statusId.innerHTML = xml_http_building_link;
		} else if(aj.XMLHttpRequest.readyState == 2) {
			if(aj.statusId) aj.statusId.innerHTML = xml_http_sending;
		} else if(aj.XMLHttpRequest.readyState == 3) {
			if(aj.statusId) aj.statusId.innerHTML = xml_http_loading;
		} else if(aj.XMLHttpRequest.readyState == 4) {
			if(aj.XMLHttpRequest.status == 200) {
				if(aj.statusId) aj.statusId.innerHTML = xml_http_data_in_processed;
				if(aj.recvType == 'HTML') {
					aj.resultHandle(aj.XMLHttpRequest.responseText);
				} else if(aj.recvType == 'XML') {
					aj.resultHandle(aj.XMLHttpRequest.responseXML);
				}
			} else {
				if(aj.statusId) aj.statusId.innerHTML = xml_http_load_failed;
			}
		}
	}

	aj.get = function(targetUrl, resultHandle) {
		aj.targetUrl = targetUrl;
		aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		if(window.XMLHttpRequest) {
			
			aj.XMLHttpRequest.open('GET', aj.targetUrl);
			aj.XMLHttpRequest.send(null);
		} else {
		        aj.XMLHttpRequest.open("GET", targetUrl, true);
		        aj.XMLHttpRequest.send();
		}
	}

	aj.post = function(targetUrl, sendString, resultHandle) {
		aj.targetUrl = targetUrl;
		aj.sendString = sendString;
		aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		aj.XMLHttpRequest.open('POST', targetUrl);
		aj.XMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
		aj.XMLHttpRequest.send(aj.sendString);
	}
	
	aj.postsyn = function(targetUrl, sendString, resultHandle) {
		aj.targetUrl = targetUrl;
		aj.sendString = sendString;
		aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		aj.XMLHttpRequest.open('POST', targetUrl, false);
		aj.XMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		
		aj.XMLHttpRequest.send(aj.sendString);
	}
	return aj;
}
/******************************************************************************
ajax对象 end
*******************************************************************************/
function v3_getPos(el,sProp)
{
	var iPos = 0; 
    while (el != null)
　　 {
		iPos += el["offset" + sProp];
		el = el.offsetParent;
	} 
    return iPos;
}
function show_layer(vis, layer, rel, x, y)
{
	var layer = oo(layer);
	if(!layer)return;
	if(!vis){hidden(layer);return;}	
	var rel = oo(rel);
	if(!rel)return;
	if(layer.style.visibility == "visible")return;
	
	var l = v3_getPos(rel,"Left");
	var t = v3_getPos(rel,"Top");
	
	if(x)l += x;if(y)t += y;
	
	layer.style.left = l + "px";
	layer.style.top = t + "px";
	layer.style.display = "block";
}
var cc_cur 	= false;
var cc_isload = false;
var cc_fcs = new Array();
var cc_citys = new Array();
var cc_cur_host = "";
function cc()
{
	if(oo("changecity_opt").style.display == "")
	{
		oo("changecity_opt").style.display = "none";
		return;
	}
	else
	{
		oo("changecity_opt").style.display = "";
	}
}
function cc_p()
{
	if(!cc_cur_host && !cc_cur)
	{
		alert("请选择城市");return ;
	}
	if(cc_cur_host)
	{
		oo('cc_host').value = cc_cur_host;
	}
	else
	{
		oo('cc_host').value = cc_citys[cc_cur[0]][cc_cur[1]][1];
	}
	document.frm_cc.submit();
}
function cc_more()
{
	if(cc_isload)return;
	
	oo("cc_title").innerHTML = "正在加载更多城市...";
	
	var x = new Ajax(false, 'HTML');
	x.get('/services/xr_zone.phtml?module=getcitys&c=0', function(s){
		if(getResultCode(s) == SUCC_COMPLETE){
			var resstr = getResultParameter(s, "resstr");
		
			var fccitys = resstr.split("<e>");
			var fc, fccity;
			var citys = new Array();
			
			for (var i = 0; i < fccitys.length; i++) 
			{
				if(fccitys[i])
				{
					fc = fccitys[i].substr(0, 1);
					cc_fcs[i] = fc;
					cc_citys[i] = new Array();
					fccity = fccitys[i].substr(2);
					citys = fccity.split("<c>");	
					var k = 0;			
					for (var j = 0; j < citys.length; j++)
					{
						if(citys[j])
						{
							cc_citys[i][k++] = citys[j].split(",");
						}
					}
				}
			}
			var str_fc = "城市拼音首字母<br/>";
			for (var i = 0; i < cc_fcs.length; i++) 
			{
				str_fc += "<a href=\"javascript:cc_show(" + i + ");\">" + cc_fcs[i] + "</a> ";
			}
			
			oo("cc_fc").innerHTML = str_fc;
			oo("cc_title").innerHTML = "选择你想去的城市";
			
			oo("cc_more").style.display = "";
			
			cc_isload = true;
		}else{
			oo("cc_title").innerHTML = "城市加载错误";
			return;
		}
	});	
	return;	
}
function cc_hot(host)
{
	if(cc_cur)
	{
		oo("cc_" + cc_cur[0] + "_" + cc_cur[1]).className = "city_td1";
		cc_cur = false;
	}
	if(cc_cur_host)
	{
		oo("cc_span_" + cc_cur_host).className = "city_td1";
	}
	cc_cur_host = host;
	oo("cc_span_" + cc_cur_host).className = "city_td2";
	cc_p();
}
function cc_sc()
{
//	if(!cc_cur)return;
//	oo("cc_" + cc_cur[0] + "_" + cc_cur[1]).className = "";
}
function cc_mouseout(idx, i)
{
	
	if(cc_cur && cc_cur[0] == idx && cc_cur[1] == i)
	{
		oo("cc_" + idx + "_" + i).className = "city_td2";
	}
	else
	{
		oo("cc_" + idx + "_" + i).className = "city_td1";
	}
}
function cc_onclick(idx, i)
{
	if(cc_cur)
	{
		oo("cc_" + cc_cur[0] + "_" + cc_cur[1]).className = "city_td1";
	}
	cc_cur = new Array(idx ,i);
	if(cc_cur_host)
	{
		oo("cc_span_" + cc_cur_host).className = "city_td1";
		cc_cur_host = "";
	}
	cc_p();
}
function cc_show(idx)
{	
	cc_cur 	= false;
	
	var citys = cc_citys[idx];
	if(!isArray(citys))return;
	var str_citys = '<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#ECECEC" onmouseout="cc_sc()">';
	for (var i = 0; i < citys.length; i++) 
	{
		if(i%5 == 0)
		{
			if(i > 0)str_citys += '</tr>';
			str_citys += '<tr>';
		}
		str_citys += '<td id="cc_' + idx + '_' + i + '" class="city_td1" onClick="cc_onclick(' + idx + ',' + i + ')" onmouseover="this.className=\'city_td2\';" onmouseout="cc_mouseout(' + idx + ',' + i + ');" style="cursor:hand">'+ citys[i][2] + '</td>';
	}
	var k = (i-1)%5;
	if(k != 4)
	{
		k = 4 - k;
		for (var i = 0; i < k; i++) 
		{
			str_citys += '<td class="city_td1"></td>';
		}
	}
	
	str_citys += '</tr></table>';
	oo("cc_city").innerHTML = str_citys;	
}
