/*********页面初始化操作***************/
var initFuncs = [];
function pageInitAdd(func) {
	initFuncs.push(func);
}
function pageInit() {
	for (var i = 0; i < initFuncs.length; i++) {
		initFuncs[i]();
	}
}
window.onload = pageInit;
//显示loading
function loading(id, flag) {
	if (flag) {
		document.getElementById(id).style.display = "";
	} else {
		document.getElementById(id).style.display = "none";
	}
}
/*****************以下为div滚动代码*********************/
function realScroll(i, obj) {
	if (!scrollMflag[obj]){
		i = 0 - i;
	}
	if (!scrollDown[obj]){
		document.getElementById(obj).scrollLeft +=i;
	} else {
		document.getElementById(obj).scrollTop +=i;
	}
}
var scrollArray = new Array();
var scrollFlag = new Array();
var scrollIndex = new Array();
var scrollMflag = new Array();
var scrollDown = new Array();
function doScro(obj) {
	if (scrollIndex[obj] == scrollArray[obj].length){
		scrollFlag[obj] = false;
		return;
	}
	var i = parseInt(scrollArray[obj][scrollIndex[obj]]);
	realScroll(i, obj);
	scrollIndex[obj]++;
	setTimeout("doScro('"+obj+"');", 10);
}
function sro(i,cc, obj, down, type) {//(滚动像素（正负指定方向），滚动速度，滚动div.id[，滚动方向类型（true上下，false左右），滚动类型（默认，慢-快-慢,1，快-慢,2，慢-快）])
	//是否上下滚动
	if (down){
		scrollDown[obj] = down;
	}
	//正在滚动
	if (scrollFlag[obj]){
		return;
	}
	//反方向
	if (i < 0){
		scrollMflag[obj] = false
		i = 0 - i;
	} else {
		scrollMflag[obj] = true;
	}
	scrollFlag[obj] = true;
	scrollArray[obj] = new Array();
	if (type){
		var c = 1;
		while(true) {
			if (i < c){
				if (i > 0){
					scrollArray[obj].push(i + "");
				}
				break;
			}
			scrollArray[obj].push(c + "");
			i -= c;
			c += cc;
		}
		if (type==1)
			scrollArray[obj] = scrollArray[obj].reverse();
	} else {
		var c = 1;
		if (i % 2 == 1)
			i++;
		var b = new Array();
		while (i > 0 && i > 3 * c){
			scrollArray[obj].push(c + "");
			b.push(c + "");
			i -= 2*c
			c += cc;
		}
		scrollArray[obj].push(i);
		b = b.reverse();
		scrollArray[obj] = scrollArray[obj].concat(b);
	}
	scrollIndex[obj] = 0;
	doScro(obj);
}
/**********************以下tag处理*******************/
function splitTag(sin) {
   	var buff = "";
   	var list = new Array();
   	var parFlag = false;
   	for (var i = 0; i < sin.length; i++) {
		if (sin.charAt(i) == ' ' && !parFlag) {
			if (buff != "") {
				list = list.concat(buff);
				buff = "";
			}
		} else if (sin.charAt(i) == ' ') {
			buff += " ";
		} else if (sin.charAt(i) == '"' && !parFlag) {
			buff += "\"";
			parFlag = true;
		} else if (sin.charAt(i) == '"') {
			buff += "\"";
			list = list.concat(buff);
			buff = "";
			parFlag = false;
		} else {
			buff += sin.charAt(i);
		}
	}
   	if (buff != "") {
   		list = list.concat(buff);
   	}
   	return list;
}
function addTag(id, tags) {
	if (tags.indexOf(" ") != -1)
		tags = "\"" + tags + "\"";
	var taglist = splitTag($(id).value);
	var flag = false;
	var newtag = "";
	for (var i = 0; i < taglist.length; i++) {
		if (taglist[i] != tags) {
			newtag += taglist[i] + " ";
		} else {
			flag = true;
		}
	}
	if (!flag) {
		if (taglist.length == 3)
			return;
		newtag += tags;
	}
	$(id).value = newtag;
}
/**************生成指定长度空list**************/
function genList(len) {
	var list = new Array();
	for (var i = 1; i < len + 1; i++ ) {
		list.push(i);
	}
	return list;
}
/******************获取对象坐标*******************/
function f_GetX(e){
	var l=e.offsetLeft;
	while(e=e.offsetParent){
		l+=e.offsetLeft;
	}
	return l;
}
function f_GetY(e){
	var t=e.offsetTop;
	while(e=e.offsetParent){
		t+=e.offsetTop;
	}
	return t;
}
//获取屏幕滚动高度
function getScrollTop() {
    var scrollTop=0;
    if(document.documentElement&&document.documentElement.scrollTop)
    {
        scrollTop=document.documentElement.scrollTop;
    }
    else if(document.body)
    {
        scrollTop=document.body.scrollTop;
    }
    return scrollTop;
}
/*******************格式化日期********************/
Date.prototype.format = function(format) {
	var o = {
		"M+" : this.getMonth()+1, //month
		"d+" : this.getDate(),    //day
		"h+" : this.getHours(),   //hour
		"H+" : this.getHours(),   //hour
		"m+" : this.getMinutes(), //minute
		"s+" : this.getSeconds(), //second
		"q+" : Math.floor((this.getMonth()+3)/3),  //quarter
		"S" : this.getMilliseconds() //millisecond
	}
	if(/(y+)/.test(format))
		format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
	for(var k in o)
		if(new RegExp("("+ k +")").test(format))
			format = format.replace(RegExp.$1,
				RegExp.$1.length==1 ? o[k] :
					("00"+ o[k]).substr((""+ o[k]).length));
	return format;
}
/***************************数字格式化***********************************/
function nf(value, f) {
	if (isNaN(parseFloat(value))){
		return "";
	}
	if (f == undefined || f.indexOf(".") == -1){
		return parseInt(value);
	}
	var len = f.length - 1;
	var val = parseFloat(value);
	val *= Math.pow(10, len);
	val = Math.round(val);
	val = val / Math.pow(10, len);
	return val;
}
/***************************************************************/
function fUnescapeHTML(){
    var oDiv = document.createElement('div');
    oDiv.innerHTML = this.stripTags();
    return oDiv.childNodes[0].nodeValue;
}
function fStripTags(){
    return this.replace(/<\/?[^>]+>/gi, '');
}
String.prototype.trimtag = fStripTags;       // 删除标签
String.prototype.unescapeHTML     = fUnescapeHTML;    // html解码




/****************************Hashtable*********************************/
function HashTable(){
	this._hash = new Object();
	this._type = "object";
	window.$continue = new Object();
	window.$break = new Object();
	this.isHash = true;
	/**  
	 * 添加对象
	 * @param {string}key 添加的属性或者数组的索引
	 * @param {string}value 添加的对象，可以是任何类型
	 * @return {bool} 成功返回true，失败返回false
	 */
	this.add = function(key,value){
		if(value && value.nodeType && value.nodeType == 1){		// 扩展节点属性
			value = $(value);
		}
		if(key && key.nodeType && key.nodeType == 1){		// 扩展节点属性
			key = $(key);
		}
		if(this._type == "object"){
			if(typeof(key)!="undefined"){
				if(this.contains(key)==false){
					this._hash[key]=typeof(value)=="undefined"?null:value;
					return true;
				} else {
					return false;
				}
			} else {
				return false;
			}
		}else{
			if(typeof(value) != "undefined" && typeof(key)!="undefined"){
				this._hash[key] = value;
				return true;
			}else if(typeof(key)!="undefined"){
				this._hash[this._hash.length] = key;
				return true;
			}else{
				return false;
			}
		}
	};
	/**
	 * 删除对象
	 * @param {string} 要删除的属性或者数组的索引
	 * @return {void}
	 */
	this.remove = function(key){
		delete this._hash[key];
	};
	/**
	 * 对象集合的个数
	 * @param {void}
	 * @return {int} 返回个数
	 */
	this.count = function(){
		if(this._type == "array"){
			return this._hash.length;
		}
		var i=0;
		for(var k in this._hash){
			i++;
		} 
		return i;
	};
	/**
	 * 获取对象
	 * @param {string}key 属性或者索引
	 * @return {string} 返回该对象
	 */
	this.items = function(key){
		return this._hash[key];
	};
	/**
	 * 是否有该key的对象
	 * @param {string}key 属性或者索引
	 * @return 有就返回true，否则返回false
	 */
	this.contains = function(key){
		return typeof(this._hash[key])!="undefined";
	};
	this.has = function(s){
		for(var k in this._hash){
			if(this._hash[k] == s){
				return true;
			}
		}
		return false;
	};
	/**
	 * 清空集合
	 * @param {void}
	 * @return {void}
	 */
	this.clear = function(){
		for(var k in this._hash){
			delete this._hash[k];
		}
	};
	this.join = function(sJoin){
		var arr = [];
		for(var k in this._hash){
			arr[arr.length] = (this._hash[k] + "");
		}
		return arr.join(sJoin);
	};
	/**
	 * 遍历集合
	 * @param {object}func function变量
	 * @return {void}
	 */
	this.each = function(func){
		try{
			if(this._type == "object"){
				for(var k in this._hash){
					try{
						func(k, this._hash[k]);
					}catch(e){
						if (e != $continue) throw e;
					}
				}
			}else{
				for(var k=0;k<this._hash.length;k++){
					try{
						func(k, this._hash[k]);
					}catch(e){
						if (e != $continue) throw e;
					}
				}
			}
		}catch(e){
			 if (e != $break) throw e;
		}
	};
	if(arguments.length>0){
		var arg = arguments[0];
		if(typeof arg == "object"){
			if(fIsValidCollection(arg) || arg.ie5){
				this._type = "array";
				this._hash = new Array();
				for(var i=0;i<arg.length;i++){
					this.add(i, arg[i]);
				}
			}else{
				for(var o in arg){
					this.add(o, arg[o]);
				}
			}
		}
	}
}


//设置居中
function setMiddle(o){
	var left=document.body.clientWidth /2-200;
	var top=document.body.clientTop/2+200+document.body.scrollTop;

	o.style.left=left;
	o.style.top=top;
	o.style.display="";
}
/***************************拖拽*************************************/
/*
function initDrag(area, box) {
	var a = $(area);
	var b = $(box);

	b.style.cursor = "move";
	b.dragFlag = false;
	b.onmousedown = function(e) {
		if (b.dragFlag){
			return;
		}
		b.dragFlag = true;
		if (null == e) {
			e = event;
		}
		b.prepx = Event.pointerX(e);
		b.prepy = Event.pointerY(e);
	};
	b.onmousemove = function(e) {
		if (null == e) {
			e = event;
		}
		if (!b.dragFlag){
			return;
		}
		a.style.left = Math.min(Math.max(parseInt(a.style.left.substr(0, a.style.left.length-2)) + Event.pointerX(e) - b.prepx, 0), document.body.clientWidth - parseInt(a.style.width.substr(0, a.style.width.length-2)));
		a.style.top = Math.max(parseInt(a.style.top.substr(0, a.style.top.length-2)) + Event.pointerY(e) - b.prepy,getScrollTop());
		b.prepx = Event.pointerX(e);
		b.prepy = Event.pointerY(e);
	};
	b.onmouseup = function(e) {
		if (b.dragFlag){
			b.dragFlag = false;
		}
	};
	document.body.onselectstart = b.onmouseover;
}
*/
/**
*设置某个控件可以被拖拉
**/
//被拖拉标记
var draging=false;
var o_x;
var o_y;
var p_x;
var p_y;
var dis=0;
var ch=0;
function initDrag(id,id2){
	if(id2==null)
		id2=id;
	var o=$(id);
	var o2=$(id2);
	
	o.style.position="absolute";
	o.style.zIndex=999;
	o2.onmousedown=MouseDownToMove;
	
	var has_set=false;
	o2.onmouseover=function(){if(!has_set){document.body.style.cursor = "move";has_set=true}}
	o2.onmouseout=function(){document.body.style.cursor = "default";has_set=false;}

	function MouseDownToMove(){
        if(draging)return;
        
		if(event.srcElement.tagName .toUpperCase() == "INPUT"||event.srcElement.tagName .toUpperCase() == "A"){
			return;
		}
//		o.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=60)";
        o_x=event.clientX-f_GetX(o);
  		o_y=event.clientY-f_GetY(o);
		document.body.onscroll=document.body.onclick=document.body.onmousemove = MouseMoving;
		o2.onmouseup = MouseUpToMove; 
		document.body.onselectstart=function(){return false;}
		gBeginMoving=true;
		document.body.style.cursor = "move";
		save_dist();
	}
	
	function MouseMoving(){
		ch++;
		if(ch%3!=0)return;
		ch=0;
		if(document.body.clientHeight-20<=event.clientY){
			var scrollTop = document.body.scrollTop;
			document.body.scrollTop += 5;
			if(scrollTop != document.body.scrollTop){
				o.style.top = event.clientY-o_y+ document.body.scrollTop-dis;
			}
		}else{
 
			o.style.top=event.clientY-o_y+ document.body.scrollTop-dis;
		}
		o.style.left=event.clientX-o_x+document.body.scrollLeft;
//		o.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=60)";
		
		//window.status=o_y+"  "+event.clientY+" "+o.style.top+" "+document.body.scrollTop+" "+dis

	}
	function MouseUpToMove(){
		if(!gBeginMoving) return false;
        document.body.onmousemove=null;
        o.style.filter = "";
        draging=false;
        document.body.onclick=null;
		dis=document.body.scrollTop;
		document.body.onscroll=save_dist;
		document.body.style.cursor = "default";
	}
}
/**
*初始距离记录
**/

function save_dist(){dis=document.body.scrollTop;}
/*********************表单填充***********************/
function fill(){
	var arg = fill.arguments;
	for(var j=0;j<arg.length;j++){
		var args = arg[j];
		var n = $(args[0]);
		if(n==null){
			continue;
		}
		var tn = n.tagName.toLowerCase();
		if((tn=='input'&&(n.type=='text'||n.type=='password'||n.type=='hidden'))||tn=='textarea'){
			n.value = args[1];
			continue;
		} else if(tn=='input'&&n.type=='radio'){
			var ns = $(args[0]);
			for(var i=0;i<ns.length;i++){
				if(ns[i].value==args[1]){
					ns[i].checked = true;
					break;
				}
			}
		} else if(tn=='input'&&n.type=='checkbox'){
			var ns = $(args[0]);
			if(args[1].constructor==Array){
				for(var i=0;i<ns.length;i++){
					if(args[1].contains(ns[i].value)){
						ns[i].checked = true;
					}
				}
			} else {
				for(var i=0;i<ns.length;i++){
					if(args[1].indexOf(ns[i].value)!=-1){
						ns[i].checked = true;
					}
				}
			}
		} else if(tn=='select') {
			if(!n.multiple){
				for (var i=0; i < n.length; i++){
					if(n.options[i].value == args[1]) {
						n.options[i].selected = true;
					}
				}
				
			} else {
				if(args[1].constructor==Array){
					for (var i=0; i < n.length; i++){
						if(args[1].contains(n.options[i].value)) {
							n.options[i].selected = true;
						}
					}
				} else {
					for (var i=0; i < n.length; i++){
						if(args[1].indexOf(n.options[i].value)!=-1) {
							n.options[i].selected = true;
						}
					}
				}
			}
		}
	}
}
/*********************************************************/
/* 积分图标 */
function writeJfIcon(jifen, realjifen) {
	
}
/* 等级图标 */
function writeLevel(level) {
	
}
function writeCity(cityid) {
	document.write(getCity(cityid));
}
function writeSkin(skinid) {	
	document.write(getArrayValue(skinArray,skinid));
}