//window.onerror=function stopError() { return true;}
var siteDir="/";
var isIE=navigator.appName.indexOf("Explorer") > -1;
Object.extend=function(destination,source){for(property in source){destination[property]=source[property];}return destination;};

Object.extend(Array.prototype,{
	unique:function(){var a={};for(var i=0;i<this.length;i++){if(typeof a[this[i]]=="undefined")a[this[i]]=1;}this.length=0;for(var i in a)this[this.length]=i;return this;},
	remove:function(obj){
		if(this.length==0)return false;
		var index=-1;for(var i=0;i<this.length;i++){if(this[i]==obj){index=i;break;}}for(var i=index;i<this.length;i++){this[i]=this[i+1];}this.length--;return this;
	},
	indexOf:function(o){for(var i=0;i<this.length;i++)if(this[i]==o)return i;return-1;},
	clear:function(){this.length=0;return this;},
	first:function(){return this[0];},
	last:function(){return this[this.length-1];},
	clone:function(){return this.slice();},
	each:function(iterator){
		var index=0;try{this._each(function(value){try{iterator(value,index++)}catch(e){if(e!=$continue)throw e;}})}catch(e){if(e!=$break)throw e;}
	},
	map:function(iterator){
		var results=[];this.each(function(value,index){results.push(iterator(value,index))});return results
	},
	_each:function(iterator){
		for(var i=0;i<this.length;i++)iterator(this[i])
	},
	iterate:function(func){
		for(var i=0;i<this.length;i++) func(this[i], i);
	},
	toArray: function() {return this.map();}
});

var ScriptFragment='(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
Object.extend(String.prototype,{
	left:function(num){if(!/\d+/.test(num))return(this);return this.substr(0,num);},
	strleft:function(num){if(!/\d+/.test(num))return(this);var str=this.replace(/([^\x00-\xff])/g,"\x00$1");if (str.length<=num)return(this);return str.substring(0,num).replace(/\x00/g,'')},
	left:function(num){if(!/\d+/.test(num))return(this);return this.substr(0,num);},
	right:function(num){if(!/\d+/.test(num))return(this);return this.substr(this.length-num);},
	trim:function(){return this.replace(/(^\s*)|(\s*$)/g,"");},
	clearHtml:function(){var str = this.replace(/<\/?[^>]*>/g,'');str = str.replace(/[ | ]*\n/g,'\n');return str.replace(/\n[\s| | ]*\r/g,'\n');},
	len:function(){return this.replace(/[^\x00-\xff]/g,'**').length;},
	stripTags:function(){
		return this.replace(/<\/?[^>]+>/gi,'')
	},
	stripScripts:function(){
		return this.replace(new RegExp(ScriptFragment,'img'),'')
	},
	extractScripts:function(){
		var matchAll=new RegExp(ScriptFragment,'img');
		var matchOne=new RegExp(ScriptFragment,'im');
		return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1]})
	},
	evalScripts:function(){
		return this.extractScripts().map(eval)
	}
});
Object.extend(Number.prototype,{
	zero:function(n){
		if (/[1-9][0-9]/.test(n)) return this;
		return Array(Math.abs((''+this).length-(n+1))).join(0)+this;
	}
})

var $break=new Object();var $continue=new Object();

Object.extend(Function.prototype,{
	bind:function(object){
		var __method=this;
		return function(){
			__method.apply(object,arguments)
		}
	},
	bindAsEventListener:function(object){
		var __method=this;
		return function(event){
			__method.call(object,event||window.event)
		}
	}
});

if(!window.Element){var Element=new Object()};
Object.extend(Element,{
	visible: function(element) {
		return $(element).style.display != 'none';
	},
	toggle: function() {
		for (var i = 0; i < arguments.length; i++) {
			var element = $(arguments[i]);
			Element[Element.visible(element) ? 'hide' : 'show'](element);
		}
	},
	swap: function() {
		for (var i = 0; i < arguments.length; i++) {
			var element = $(arguments[i]);
			Element[Element.visible(element) ? 'hide' : 'show'](element);
		}
	},
	hide: function() {
		for (var i = 0; i < arguments.length; i++) {
			var element = $(arguments[i]);
			element.style.display = 'none';
		}
	},
	show: function() {
		for (var i = 0; i < arguments.length; i++) {
			var element = $(arguments[i]);
			element.style.display = '';
		}
	},
	append: function(element,html,obj){
		element = $(element);
		var o=obj || element.parentNode;
		html=html || element.innerHTML;
		this.create(element.tagName,{
				className:element.className,
				innerHTML:html
			},
			element.parentNode
		);
	},
	remove: function(element) {
		element = $(element);
		element.parentNode.removeChild(element);
	},
	update: function(element, html) {
		$(element).innerHTML = html;
		setTimeout(function() {html.evalScripts()}, 10);
	},
	getStyle: function(element, style) {
		element = $(element);
		var value = element.style[style.camelize()];
		if (!value) {
			if (document.defaultView && document.defaultView.getComputedStyle) {
				var css = document.defaultView.getComputedStyle(element, null);
				value = css ? css.getPropertyValue(style) : null;
			} else if (element.currentStyle) {
				value = element.currentStyle[style.camelize()];
			}
		}
		if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
			if (Element.getStyle(element, 'position') == 'static') value = 'auto';
		return value == 'auto' ? null : value;
	},
	setStyle: function(element, style) {
		element = $(element);
		for (name in style) element.style[name.camelize()] = style[name];
	},
	getHeight: function(element) {
		element = $(element);
		return element.offsetHeight;
	},
	getPos: function(e) {
		e=$(e)||Event.element();
		var x = e.offsetLeft;var y = e.offsetTop;
		while (e = e.offsetParent) {x += e.offsetLeft;y += e.offsetTop;}
		return {x: x,y: y}
	},
	create: function(tagName, intObject, obj) {
		obj=$(obj);
		intObject = intObject || {};
		var newTag = document.createElement(tagName);
		for (var i in intObject) {
			if (i == "style") newTag.style.cssText = intObject[i];
			else newTag[i] = intObject[i];
		}
		if(obj) {obj.appendChild(newTag)} 
		return newTag;
	},
	hasClassName: function(element, className) {
		element = $(element);
		if (!element) return;
		var hasClass = false;
		element.className.split(' ').each(function(cn){
			if (cn == className) hasClass = true;
		});
		return hasClass;
	},
	addClassName: function(element, className) {
		element = $(element);
		Element.removeClassName(element, className);
		element.className += ' ' + className;
	},
	removeClassName: function(element, className) {
		element = $(element);
		if (!element) return;
		var newClassName = '';
		element.className.split(' ').each(function(cn, i){
			if (cn != className){
				if (i > 0) newClassName += ' ';
				newClassName += cn;
			}
		});
		element.className = newClassName;
	},
	cleanWhitespace: function(element) {
		element = $(element);
		$c(element.childNodes).each(function(node){
			if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) Element.remove(node);
		});
	},
	find: function(element, what) {
		element = $(element)[what];
		while (element.nodeType != 1) element = element[what];
		return element;
	}
});
var Class=function(){
	var _class=function(){
		this.initialize.apply(this,arguments)
	};
	for(i=0;i<arguments.length;i++){
		superClass=arguments[i];
		for(member in superClass.prototype){
			_class.prototype[member]=superClass.prototype[member]
		}
	};
	_class.child=function(){
		return new Class(this)
	};
	_class.extend=function(f){
		for(property in f){
			_class.prototype[property]=f[property]
		}
	};
	return _class
};

var Position = {
	cumulativeOffset: function(element) {
		var valueT = 0, valueL = 0;
		do {
			valueT += element.offsetTop  || 0;
			valueL += element.offsetLeft || 0;
			element = element.offsetParent;
		} while (element);
		return [valueL, valueT];
	}
};

$$=document.getElementsByClassName = function(className) {
	var children = document.getElementsByTagName('*') || document.all;
	var elements = [];
	$c(children).each(function(child){
		if (Element.hasClassName(child, className)) elements.push(child);
	});  
	return elements;
}

if(!window.Event){var Event=new Object()};
Object.extend(Event,{
	observers:false,
	get:function(){
		if(document.all) return window.event;
		func=getEvent.caller;
		while(func!=null){
			var arg=func.arguments[0];
			if(arg){if(arg.constructor==Event) return arg;}
			func=func.caller;
		}
		return null;
	},
	element:function(event){
		event=event||this.get();
		return event.target||event.srcElement
	},
	add:function(obj, evt, func, eventobj) {
		obj=$(obj);if(!obj) return false;
		eventobj = !eventobj ? obj : eventobj;
		if(obj.addEventListener) {
			obj.addEventListener(evt, func, false);
		} else if(eventobj.attachEvent) {
			obj.attachEvent("on" + evt, func);
		}
		//alert("为"+obj.id+"添加事件成功")
	},
	isLeftClick:function(event){
		return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)))
	},
	pointerX:function(event){
		return event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft))
	},
	pointerY:function(event){
		return event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop))
	},
	stop:function(event){	
		if(event.preventDefault){
			event.preventDefault();
			event.stopPropagation()
		}else{
			event.returnValue=false;
			event.cancelBubble=true
		}
	},
	findElement:function(event,tagName){
		var element=Event.element(event);
		while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
			element=element.parentNode;
		return element
	},
	_observeAndCache:function(element,name,observer,useCapture){
		if(!this.observers)this.observers=[];
		if(element.addEventListener){
			this.observers.push([element,name,observer,useCapture]);
			element.addEventListener(name,observer,useCapture)
		}else if(element.attachEvent){
			this.observers.push([element,name,observer,useCapture]);
			element.attachEvent('on'+name,observer)
		}
	},
	unloadCache:function(){
		if(!Event.observers)return;
		for(var i=0;i<Event.observers.length;i++){
			Event.stopObserving.apply(this,Event.observers[i]);
			Event.observers[i][0]=null
		};
		Event.observers=false
	},
	observe:function(element,name,observer,useCapture){
		var element=$(element);
		useCapture=useCapture||false;
		if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
			name='keydown';
		this._observeAndCache(element,name,observer,useCapture)
	},
	stopObserving:function(element,name,observer,useCapture){
		var element=$(element);
		useCapture=useCapture||false;
		if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
			name='keydown';
		if(element.removeEventListener){
			element.removeEventListener(name,observer,useCapture)
		}else if(element.detachEvent){
			element.detachEvent('on'+name,observer)
		}
	}
});
//Event.observe(window,'unload',Event.unloadCache,false);
function $(obj){return typeof obj=="string"?document.getElementById(obj):obj;}
function $E(){return Event.get();}
function $N(obj){return document.getElementsByName(obj)}
function $defined(_var) {return typeof _var == 'undefined' ? false : true;}
function $A(iterable){
	if (!iterable) return [];
	if (iterable.toArray) {
		return iterable.toArray();
	} else {
		var results = [];
		for (var i = 0, length = iterable.length; i < length; i++)
			results.push(iterable[i]);
		return results;
	}
}

function _attachEvent(obj,event,func){Event.observe(obj,event,func,false);}

function formQuery(f){
	var formData = "", elem = "", f = $(f);
	var elements = f.elements;
	var length = elements.length;
	for (var s = 0; s < length; ++s) {
		elem = elements[s];
		if (elem.tagName == 'INPUT') {
			if ( (elem.type == 'radio' || elem.type == 'checkbox' || !elem.name) && !elem.checked) {
				continue;
			}
		}
		if (formData != "") {
			formData += "&";
		}
		formData += escape(elem.name||elem.id) + "=" + escape(elem.value);
	}
	return formData;
}

function insertTags(obj,tag,num){
	obj=$(obj);
	var re = /\[:([\w]*)\:\]/gi;;
	var val=obj.value;
	if (val && re.test(val)) {
		var tagNum = val.match(re).length;
		if (tagNum + 1 > num) {
			alert("最多只能插入"+num+"个表情哦:-P");
			return false;
		}
	}
	if(document.all){
		obj.focus();
		var range = document.selection.createRange();
		range.text=tag;
	}else if(obj.setSelectionRange){
		var rangeStart = obj.selectionStart; 
		var rangeEnd = obj.selectionEnd; 
		obj.value = val.substring(0,rangeStart) + tag + val.substring(rangeEnd); 
		obj.focus();
		var cPos = rangeStart + tag.length;
		obj.selectionStart = cPos;
		obj.selectionEnd = cPos;
	}
	if (obj.createTextRange) obj.caretPos = document.selection.createRange().duplicate();
}

var request = {
    queryString: function(val) {
        var uri = window.location.search;
        if (uri.indexOf("?") == -1) return;
        if (uri.substring(uri.length - 1, uri.length) == "?") return;
        var re = new RegExp("" + val + "\=([^\&\?]*)", "ig");
        return ((uri.match(re)) ? (uri.match(re)[0].substr(val.length + 1)) : null);
    },
    queryStrings: function() {
        var uri = window.location.search;
        if (uri.indexOf("?") == -1) return;
        if (uri.substring(uri.length - 1, uri.length) == "?") return;
        var re = /\w*\=([^\&\?]*)/ig;
        var retval = [];
        while ((arr = re.exec(uri)) != null) retval.push(arr[0]);
        return retval;
    },
    setQuery: function(val1, val2) {
        var uri = window.location.search;
        if (uri.indexOf("?") == -1 || uri.right(1) == "?") return "?" + val1 + "=" + val2;
        var a = this.queryStrings();
        var retval = "";
        var seted = false;
        var re = new RegExp("^" + val1 + "\=([^\&\?]*)$", "ig");
        for (var i = 0; i < a.length; i++) {
            if (re.test(a[i])) {
                seted = true;
                a[i] = val1 + "=" + val2;
            }
        }
        retval = a.join("&");
        return "?" + retval + (seted ? "": (retval ? "&": "") + val1 + "=" + val2);
    }
}
var Cookies = {
	set: function(sName, sValue, expireHours) {
		var cookieString = sName + "=" + escape(sValue);
		if (expireHours > 0) {
			var date = new Date();
			date.setTime(date.getTime() + expireHours * 3600 * 1000);
			cookieString += "; expires=" + date.toGMTString();
		}
		if (arguments[3]) cookieString += "; path=" + arguments[3];
		document.cookie = cookieString;
	},
	get: function(sName) {
		var aCookie = document.cookie.split("; ");
		for (var j = 0; j < aCookie.length; j++) {
			var aCrumb = aCookie[j].split("=");
			if (escape(sName) == aCrumb[0] && aCrumb[1]) return aCrumb[1];
		}
		return null;
	},
	clear: function(sName) {
		var date = new Date();
		date.setTime(date.getTime() - 10000);
		document.cookie = sName + "=''; expires=" + date.toGMTString();
	}
}

function MM_findObj(n,d){var p,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);}if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[i][n];for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=MM_findObj(n,d.layers[i].document);if(!x&&document.getElementById)x=$(n);return x;}

function Copy(obj){var obj=MM_findObj(obj);if(obj){obj.select();js=obj.createTextRange();js.execCommand("Copy");}
alert(arguments[1]||"本页的地址已经复制，您可以在其他任何地方粘贴了！");}

var Tab={
	swap:function(obj){
		this.tagname=obj.tagName.toLowerCase();
		var tmpobj=obj.parentNode;
		if (this.tagname=="a") var arrtitle=tmpobj.parentNode.getElementsByTagName("li");
		var arrbody=$N(arguments[1]);
		for (var i=0,num=0;i<arrtitle.length; i++){
			if (arrtitle[i].className=='title') num++;
		}
		for (i=0;i<arrtitle.length;i++){
			var a=arrtitle[i].getElementsByTagName("a");
			if(a.length==0) continue;
			if (arrtitle[i]==obj.parentNode){
				arrtitle[i].className='active';
				Element.show(arrbody[i-num]);
			}else{
				arrtitle[i].className='';
				Element.hide(arrbody[i-num]);
			}
		}
	},
	toggle:function(){
		var obj=arguments[1]||Event.element();
		this.tagname=obj.tagName.toLowerCase();
		var tmpobj=this.tagname=="a" ? obj.parentNode : obj;
		var arrtitle=tmpobj.parentNode.getElementsByTagName("li");
		var arrbody=$N(arguments[0]);

		for (i=0;i<arrtitle.length;i++){
			var a=arrtitle[i].getElementsByTagName("a");
			if(a.length==0) continue;
			arrtitle[i].className='';
			Element.hide(arrbody[i]);
		}
		tmpobj.className='active';
	}
}
function swapTab(obj) {Tab.swap(obj,arguments[1]);}

function Tabs(menus,divs,openClass,closeClass){
	var args=arguments;
	this.menus=args[0];
	this.divs=args[1];
	this.openClass=args[2]||'active';
	this.closeClass=args[3]||'';
	this.build();
}
Tabs.prototype = {
	build : function(){
		var _this = this;
		var menus=this.menus;
		var divs=this.divs;
		if(menus.length != divs.length){
			alert("菜单层数量和内容层数量不一样!");
			return false;
		}
		for(var i = 0 ; i < menus.length ; i++){
			$(menus[i]).value = i;
			$(menus[i]).onmouseover = function(){
				for(var j = 0 ; j < menus.length ; j++){
					$(menus[j]).className = _this.closeClass;
					$(divs[j]).style.display = "none";
				}
				$(menus[this.value]).className = _this.openClass;	
				$(divs[this.value]).style.display = "block";				
			}
		}
	}
}

function addTabs(tabBox,tabMenuId,tabDivId){
	var tabNum=$(tabBox).childNodes.length-1;
	var tabMenu=[],tabDiv=[];
	for (var i=1; i<=tabNum; i++){
		tabMenu.push(tabMenuId+i);
		tabDiv.push(tabDivId+i);
	}
	new Tabs(tabMenu,tabDiv)
}

function showDialog(Url,Width,Height,WindowObj){
	var ReturnStr=showModalDialog(Url,WindowObj,'dialogWidth:'+Width+'pt;dialogHeight:'+Height+'pt;status:no;help:no;scroll:yes;');
	return ReturnStr;
}

function randNum(len){
	return Math.round(Math.random()*len)
}

function textCounter(){
	var texts=document.getElementsByTagName("textarea");

	for (var i=0; i<texts.length; i++){
		texts[i].onkeydown=function(){
			var sLen=this.value.length;
			var maxLen=this.getAttribute("maxlength");
			this.show=$(this.getAttribute("warning"));
			if (sLen<=maxLen){
				if(this.show) this.show.innerHTML = "inputted: "+ sLen + ", remained: " + (maxLen-sLen) + " character";
			}else{
				this.value = this.value.substr(0,maxLen);
				return false;
			}
		}
	}
}

var User={
	loadNav:function(){
		var str='';
		var cartNum;
		var url=siteDir+"user/login.asp?action=getlogin&rand="+randNum(10000000);
		new Ajax(url,{
			onComplete:function(req){
				(function(result){
					if (result.login==1){
						str=''+
							'<div class="dmenu" style="float:right;"><ul id="usermenu">'+
							'	<li><a href="'+siteDir+'user/" class="userhref">Member Center</a>'+
							'		<ul>'+
							'			<li><a href="'+siteDir+'user/?action=address">My Address</a></li>'+
							'			<li><a href="'+siteDir+'user/?action=fav">My Favorites</a></li>'+
							'			<li><a href="'+siteDir+'user/?action=carts">My Carts</a></li>'+
							'			<li><a href="'+siteDir+'user/login.asp?action=logout">Logout >></a></li>'+
							'		</ul>'+
							'	</li>'+
							'</ul></div>';
						str='Welcome! '+result.realname+'. <a href="'+siteDir+'user/login.asp?action=logout">[Logout]</a>';
						$("userSign").innerHTML="";
						$("userName").innerHTML=str;
						cartNum=result.cartNum;
					}
				})(eval('('+req.responseText+')'))
			},
			onLoading:function(){
			},
			onError:function(){
				//alert('Sign in error')
			}
		});
		Cart.loadNum(cartNum);
		LeftMenu.init('usermenu')
		LeftMenu.init('helpmenu');
	},
	loadSignbox:function(){
		var html;
		var url=siteDir+"user/login.asp?action=getlogin&rand="+randNum(10000000);
		new Ajax(url,{
			onComplete:function(req){
				(function(result){
					if (result.login==1){
						html='<li>Welcome! </li><li>'+result.realname+'. </li>'+
							'<li><a href="'+siteDir+'user/">[Member Center]</a> | <a href="'+siteDir+'user/login.asp?action=logout">[Logout]</a></li>'
						Element.update('signbox',html);
					}
				})(eval('('+req.responseText+')'))
			}
		});
	},
	addFav:function(obj,url){
		//var url="/cart/?action=del&id="+arguments[0];
		if (url.length<=1) return false;
		url+='&ajax='+randNum(10000);
		var args=arguments[2];
		new Ajax(url,{
			onComplete:function(req){
				(function(req){
					if (req.success==1){
						if (obj.tagName=='INPUT'){
							obj.value=req.info;
							obj.disabled=true;
						}else{
							obj.innerHTML=args || req.info;
							obj.style.color="#666";
							obj.style.textDecoration="none";
							obj.href='#';
						}
					}else{
						alert(req.info);
						if (obj.tagName=='INPUT'){
							obj.disabled=false;
						}else{
							obj.href=obj.rel;
						}
					}
				})(eval('('+req.responseText+')'))
			},
			onLoading:function(){
				if (obj.tagName=='INPUT'){
					obj.disabled=true;
				}else{
					obj.rel=obj.href
					obj.href='#';
				}
			},
			onError:function(){
				alert('Add Failed!')
			}
		});
	}
}

var bakCartPars,cartAddMode;
var Cart={
	name:'csdfs',
	remarkCookies:"cartremarkinfo",
	checkForm:function(obj){
		var _this=this;
		var arr=$("speclist").getElementsByTagName('span');
		var spec='';
		for (var i=0; i<arr.length; i++){
			if (!arr[i].childNodes[1].value) continue;
			spec+=arr[i].childNodes[0].value+': '+arr[i].childNodes[1].value+'\n'
		}
		var url=siteDir+"cart/?action=add&"+formQuery(obj)+"&spec="+escape(spec);
		if (!cartAddMode){
			new Ajax(siteDir+'cart/?action=getmode&ajax='+randNum(1000),{
				onComplete:function(req){
					cartAddMode=req.responseText;
					_this.add(url);
				}
			});
		}else{
			this.add(url);
		}
		return false;
	},
	add:function(url){
		switch(parseInt(cartAddMode)){
			case 1 : this.ajaxAdd(url);break;
			case 2 : 
				if (url==bakCartPars){alert('Added!');return false;}
				window.open(url,'cart');break;
			default : 
				if (url==bakCartPars){alert('Added!');return false;}
				window.location=url;
		}
		bakCartPars=url;
	},
	ajaxAdd:function(url){
		var _this=this;
		var html='<div id="cart_add_div">Adding...</div>';
		var target=$('addcart');
		xpop=new Xpop('cart_add_area','',html,{
			width:200,btnText:'Close',isShowBtn:0,skinId:'gray',target:target,offsetTop:1
		});
		clearTimeout(_this.autoClose);
		if (url==bakCartPars){
			$('cart_add_ul').innerHTML='Added!';
			_this.autoClose=setTimeout(function(){xpop.close();},3000)
			return false;
		}
		new Ajax(url+'&ajax='+randNum(100000),{
			onComplete:function(req){
				(function(result){
					if (result.success==1){
						str='<ul style="color:#008000;font-size:14px;font-weight:bold;text-align:center;" id="cart_add_ul">'+result.info+'</ul><ul style="padding:5px;text-align:center;"><a href="#" onclick="xpop.close();return false;">Close </a>&nbsp;|&nbsp;<a href="'+siteDir+'cart/">View Cart >> </a></ul>';
						_this.loadNum();
					}else{
						str='<ul style="color:#008000;font-size:14px;font-weight:bold;text-align:center;">'+result.info+'</ul><ul style="padding:5px;text-align:center;"><a href="#" onclick="xpop.close();return false;">Close </a></ul>';
					}
					$('cart_add_div').innerHTML=str;
					target.disabled=false;
					_this.autoClose=setTimeout(function(){xpop.close();},3000)
				})(eval('('+req.responseText+')'))
			},
			onLoading:function(){
				target.disabled=true;
				$('cart_add_div').innerHTML="Adding...";
			},
			onError:function(){
				target.disabled=false;
			}
		});
	},
	specInit:function(){
		var customInput;
		var Selector;
		var specText=$('speclist').getElementsByTagName('input');
		for (var i=0; i<specText.length; i++){
			if (specText[i].type=='text' && specText[i].name.left(4)=='spec'){
				customInput=specText[i];
				break;
			}
		}
		if (!customInput) return false;
		Element.hide(customInput.parentNode.parentNode.parentNode);
		
		var specSelect=$('speclist').getElementsByTagName('select');
		if(specSelect.length>0)	{
			specSelect[0].onchange=function(){
				if (this.selectedIndex==1){
					Element.show(customInput.parentNode.parentNode.parentNode);
					customInput.focus();
				}else{
					Element.hide(customInput.parentNode.parentNode.parentNode);
				}
				
			}
		}
	},
	loadNum:function(){
		if($('cartNum')) {
			if (arguments[0]){
				$('cartNum').innerHTML=arguments[0];
			}else{
				url=siteDir+'cart/?action=count&ajax='+randNum(10000);
				new Ajax(url,{
					onComplete:function(req){
						(function(req){
							if (req.success==1){
								$('cartNum').innerHTML=req.info || '0';
							}
						})(eval('('+req.responseText+')'))
					}
				});
			}
		}
	},
	add2:function(){
		var cookies=document.cookie;
		if (cookies.length>=4000){
			alert("Your cart has been full!");
			return false;
		}
		var args=arguments[0] || {};
		var id		=	args['id'];
		var bn		=	args['bn'];
		var name	=	args['name'];
		var amount	=	args['amount'];
		var remark	=	args['remark'];
		//Cookies.set(this.name,)
	},
	submit:function(){
		if (cartCount<=0){
			alert('Cart List is null!');
			return false;
		}
		var url=siteDir+"user/login.asp?action=getlogin&rand="+randNum(10000000);
		new Ajax(url,{
			onComplete:function(req){
				(function(req){
					if (req.login!=1){
						alert("Please Sign In or Register!");
						window.location=siteDir+'user/login.asp?return='+escape(window.location);
						return false;
					}else{
						if (addrCount<=0){
							alert('Accept Address is null!');
							return false;
						}
						$('form').submit();
					}
				})(eval('('+req.responseText+')'))
			},
			onLoading:function(){
			}
		});
		return false;
	},
	del:function(){
		var url="/cart/?action=del&id="+arguments[0];
		new Ajax(url,{
			onComplete:function(req){
				(function(req){
					if (req.login==1){
						str='Welcome! '+req.username+' . <a href="/cart/" class="bold">My Cart[<span id="cartNum">0</span>]</a> - <a href="/user/">My Center</a> - <a href="/user/?action=password">[Change Password]</a> - <a href="/user/login.asp?action=logout&return=1">[Logout]</a> ';
						$("userSign").innerHTML="";
						$("userNav").innerHTML=str;
					}
				})(eval('('+req.responseText+')'))
			},
			onLoading:function(){
			},
			onError:function(){
				//Xload.show('登陆出现错误',3);
				alert('Sign in error')
			}
		});
	},
	update:function(){
		$('form').action="index.asp?action=update";
		$('form').submit();
	},
	clear:function(){
		this.updateRemark("");
		$('form').action="index.asp?action=del";
		$('form').submit();
	},
	updateRemark:function(val){
		Cookies.set(this.remarkCookies,val,24)
		//alert(this.remarkCookies+"\n"+val)
	},
	init:function(){
		if (cartCount<=0) {Cookies.set(this.remarkCookies,"",24); return false;}
		var remark=Cookies.get(this.remarkCookies);
		//alert(this.remarkCookies+"\n"+remark);
		if (remark){
			$('remark').value=unescape(remark);
		}
	}
}

var BH={
	cName:'GoodsBrowerHitory',
	tpl:'<ul class="clearfix">'+
		'	<li class="pic"><a href="[link]"><img src="[pic]" /></a></li>'+
		'	<li><span style="float:right"><a href="#" onclick="BH.clear([id]);return false;"><img src="'+siteDir+'images/admin/ico_del.gif" alt="Del" /></a></span><a href="[link]">[name]</a></li>'+
		'</ul>',
	toArray:function(){
		var record=unescape(Cookies.get(this.cName)||'');
		return record.split("\n");
	},
	add:function(){
		var id=$("id").value;
		var name=$("name").value;
		var pic=$("pic").value;
		var link=''+window.location;
		link=link.replace('http://'+document.domain,'');
		var arr=this.toArray();
		for (var i=0; i<arr.length; i++){
			var tmpid=arr[i].split(", ")[0];
			if (parseInt(tmpid)==parseInt(id)){
				this.load();
				return false;
			}
		}
		var str=id+' , '+name+', '+link+', '+pic;
		Cookies.set(this.cName,arr.join('\n')+'\n'+str,1000,"/");
		this.load();
	},
	clear:function(){
		if (arguments[0]){
			var id=arguments[0];
			var arr=this.toArray();
			var val=[];
			for (var i=0; i<arr.length; i++){
				var tmpid=arr[i].split(", ")[0];
				if (parseInt(tmpid)!=parseInt(id)){
					val.push(arr[i]);
				}
			}
			Cookies.set(this.cName,val.join('\n'),1000,"/");
		}else{
			Cookies.set(this.cName,'');
		}
		this.load();
	},
	load:function(){
		var arr=this.toArray();
		var html='';
		for (var i=0,length=arr.length>10 ? 10 : arr.length; i<length; i++){
			if (arr[i].length<5) continue;
			var singleArr=arr[i].split(", ");
			var id=singleArr[0];
			var name=singleArr[1];
			var link=singleArr[2];
			var pic=singleArr[3];
			var str=this.tpl;
			str=str.replace(/\[id\]/g,id.trim());
			str=str.replace(/\[name\]/g,name);
			str=str.replace(/\[link\]/g,link);
			str=str.replace(/\[pic\]/g,pic);
			html+=str;
		}
		html+='<ul class="clearfix"><li style="width:180px;padding:5px;text-align:right"><a href="#" onclick="BH.clear();return false;">Clear All</a></li></ul>'
		Element.update("browerHistory",html);
	}
}

var Inquiry={
	obj:$('inquiry'),
	url:siteDir+"plus/inquiry.asp",
	load:function(){
		if(!(/^[0-9]*[1-9][0-9]*/g.test(id))) return false;
		var obj=$('inquiry');
		var url=this.url+"?id="+id+"&rand="+randNum(10000000);
		new Ajax(url,{
			onComplete:function(req){
				obj.innerHTML=req.responseText||'';
						
				textCounter();
			},
			onLoading:function(){
				obj.innerHTML='<p style="padding:10px;">Loadding...</p>';
			}
		});

	},
	check:function(obj){
		if (!$('info').value){
			alert('Please input inquiry content!');
			return false;
		}
		this.send(obj);
		return false;
	},
	send:function(obj){
		var _this=this;
		var forms=document.forms;
		var pars=formQuery(forms[1]);
		var url=obj.action;
		url+=(url.indexOf('?')!=-1 ? "&":'?')+pars;
		new Ajax(url,{
			params:obj,
			method:"post",
			onComplete:function(req){
				(function(req){
					if (req.err==0){
						alert("Submit succeed!");
						$('info').value='';
						User.loadNav();
						_this.load();
					}else{
						alert(req.info);
						$('submit').disabled=false;
					}
				})(eval('('+req.responseText+')'));
			},
			onLoading:function(){
				$('submit').disabled=true;
			},
			onError:function(){
				alert('Unknow Error, Please Try Again!');
				$('submit').disabled=false;
			}
		});
	}
}

var LeftMenu= {
	init:function(){
		if (!isIE) return false;
		navs = $(arguments[0]||"leftnav").childNodes; 
		for (i=0; i<navs.length; i++){ 
			var node = navs[i]; 
			if (node.nodeName=="LI") {
				node.onmouseover=function() { 
					this.className+="on";
				}
				node.onmouseout=function() { 
					this.className=this.className.replace("on","");
				}
			} 
		} 
	} 
}

var ListPage={
	cookname:'goodLlistViewMode',
	init:function(){
		var mode=Cookies.get(this.cookname);
		if (!mode) return false;
		this.swap(mode);
	},
	swap:function(mode){
		$("goodslist").className=mode+" clearfix";
		if (mode=="list"){
			$("list").className='liston';
			$("grid").className='gridoff';
		}else{
			$("list").className='listoff';
			$("grid").className='gridon';
		}
		Cookies.set(this.cookname,mode,3600,"/");
	}
}

var Pic={
	preview:function(img){
		var image=new Image();
		image.src=img.src;
		var _width=arguments[1] || 300;
		var _height=arguments[2] || 250;
		img.onerror=function(){
			img.width=_width;
			img.height=30;
			img.alt="请选择正确的图片文件";
			return false;
		}
		if(image.width>0 && image.height>0){
			var rate = (_width/image.width < _height/image.height)?_width/image.width:_height/image.height;
			if(rate <= 1){
				img.width = image.width*rate;
				img.height =image.height*rate;
			}else{
				img.width = image.width;
				img.height =image.height;
			}
		}
	}
}