
/*
	[DUCEDIS] (C)2007-2008 Ducedis.com
    This is a freeware, use is subject to license terms
    Script filename：global.js

    Support: www.ducedis.com

*/

/*
查询字符串中是否存在某字符 
fore = 1 表示字符串开头
*/
var $_find = function ( needle, str, fore ){
	var pos=needle?(str+'').indexOf(needle):-1;
	if (pos!=-1) {
		if(fore==1)
			return pos===0?true:false;

		return true
	}
	return false
}

/*
获取字符串中某字符最后出现处起的字符串, 
length = -1 表示前面到某字符最后出现处的字符串
length > 0 表示某字符最后出现处起的字符串截取 length 个字符
length = undefined||0 表示某字符最后出现处起的字符串
*/
var $_findend = function ( needle, str, length ) {
	var pos=$_find(needle,str)?(str+'').lastIndexOf(needle):-1;
	if ( pos != -1 ) {
		if ( length > 0 )
			return str.substr( pos + needle.length, length );

		if ( length == -1 )
			return str.substr( 0, pos );

		return str.substr( pos + needle.length )
	}
	return str
}

/*截获商店URL地址最后出现"/"起的字符串*/
var $_findext = function ( src ) {
	if(!src) return '';
	return $_findend('/', src).replace(/^(index\.php)?(\?)?/i, '').replace(/%2C/ig, ',')
}

var $_IMGDIR = $_findend('/', $('ducedis_r').src, -1); /*模板图片URL目录*/
var $_INADMIN = parent.SHOPADMINDIR ? true : false;
var $_SHOPBASE = $_IMGDIR.replace(/\/themes\/[a-z0-9_\-]+\/images([\/]+)?$/, '/');
var $_LOCAL = location.href.replace(/%2C/ig, ',');
var $_MBCOLORIMGDIR = $_IMGDIR;
var $_SCREEN_W = 0;

var $_DUCEDIS = {

	autoWidth: function(){
		if(screen.width >= 1280){			
			try{$_SCREEN_W = 1;new Asset.css($_MBCOLORIMGDIR+'/a1200.css');}catch(e){}
		}
	},

	showLogin: function() {
		var login_s = register_s = logout_s = lost_s = logout = register = login = lost = '';
		var uname = Cookie.get('S[UNAME]');
			uname = uname ? '<cite>' + uname + '</cite>' : '';
		var s = $_CONFIG['lang']['welcome'].replace(/\{username\}/, uname);

		if(!Cookie.get('S[MEMBER]')){
			login='<a href="' + $_SHOPBASE + 'passport-login.html">' + $_CONFIG['lang']['login'] + '</a>';
			register = '<a href="' + $_SHOPBASE + 'passport-signup.html">' + $_CONFIG['lang']['signup'] + '</a>';
			lost = '<a href="' + $_SHOPBASE + 'passport-lost.html">' + $_CONFIG['lang']['lost'] + '</a>';
			login_s = $_CONFIG['lang']['login_s'].replace(/\{login\}/, login);
			register_s = $_CONFIG['lang']['signup_s'].replace(/\{register\}/, register);
			lost_s = $_CONFIG['lang']['lost_s'].replace(/\{lost\}/, lost);
		}else{
			logout = '<a href="'+$_SHOPBASE+'passport-logout.html">' + $_CONFIG['lang']['logout'] + '</a>';
			logout_s = $_CONFIG['lang']['logout_s'].replace(/\{logout\}/, logout);
		}
		s = s.replace(/\{register\}/, register)
			.replace(/\{login\}/, login)
			.replace(/\{lost\}/, lost)
			.replace(/\{logout\}/, logout)
			.replace(/\{login_s\}/, login_s)
			.replace(/\{register_s\}/, register_s)
			.replace(/\{lost_s\}/, lost_s)
			.replace(/\{logout_s\}/, logout_s);

		document.write('<ul>'+s+'</ul>')
	},
	
	goSearch: function(f){
		f.action = this.searchurl ? this.searchurl : ($_SHOPBASE+'search-result.html')
	},

	initHead: function () {

		this.showItemSet = false;
		this.showItemChild();

		/*初始化搜索框*/
		var f = $E('.topbox2 .SearchBar');
		if ( f ) {
			var k = $E('.keywords', f);
			var w = $_CONFIG['lang']['keywords'];
			if(!k.value.trim()) k.value = w;
			k.onfocus = function(){
				if($_find($_CONFIG['lang']['defaultkeywords'],this.value)) this.value = '';
			};
			f.onsubmit = function(){
				if($_find($_CONFIG['lang']['defaultkeywords'],k.value)){ alert(w + '!!!'); return false;}
			};
			this.searchurl = f.action;
		}

		if(!$E('.header_bannerad').getHTML()){
			$E('.header_bannerad').setStyle('display','none');
		}

	},
	
	gallery: function(){
	},

	furl: function(url){		
		var pros = $_findext(url).replace(/_ANY_/ig, '').split('-');
		if(pros[2]){
			if(/t,\d+/.test(pros[2])){
				pros[1] += '-' + pros[2].match(/^(.+)?(t,\d+)(.+)?$/)[2];
			}else if(/^p,\d+/.test(pros[2])) {
				pros[1] += '-' + pros[2].match(/^(p(,\d+)+)(.+)?$/)[1];
			}
		}
		return pros[1]
	},

	/* 
	初始化顶部及左边栏商品分类列表 
	重定位顶级栏目链接指向
	*/
	showItemChild: function(spec){
		if(this.showItemSet && !spec){
			return;
		}
		var _this = this;
		this.showItemSet = true;
		
		var cats = $ES(spec ? spec : '.menudrop li');
		if(!cats[0]) return;

		var u = $_LOCAL, n, current;
		if($_find('product', u)){
			u = ( n = $ES('.Navigation a') ) && n.length ? $_findext(n[n.length-1].href) : u;
		}
		u = this.furl(u);

		var config = $_CONFIG['cats']||{};
		var currented = false;
		var reid = 0;

		cats.each(function(cat, i){
			var a = $ES('a', cat);
			if(cat.hasClass('cat-custom')){
				current = u==_this.furl(a[0].href);
			}else{
				current = $_find(config[reid], $_LOCAL)||u==_this.furl(a[0].href);
			}			
			if(reid || !cat.hasClass('cat-custom')){
				if( config[reid]){a[0].href = $_SHOPBASE + config[reid];}
				reid++;
			}
			if ( !currented && current ){
				if(cat.hasClass('jifen')) cat.addClass('current1');
				else cat.addClass('current');
				currented=true;
			}
		});

	},

	setLayout: function(){
		var pagelist;
		if((pagelist = $E('.pagelist'))){
			var localurl = $_findext($_LOCAL);
			$ES('a', pagelist).each(function(a){
				if(!pagelist.retrieve('selected')){
					pagelist.store('selected', $_findext(a.href)==localurl ? a.addClass('selected') : '');
				}
			});
		}
	},
	
	fmtUrl: function(u) {
		if ( $_find( '.', u, 1 ) ){
			var href = $_findend('shopadmin', $_LOCAL, -1);
			var k = '';
			var p = ( $_findend('/', href, -1) + '/' + u).replace(/\/\.\//, '/').split(':')[1].split('/');
			for(var i=0; i<p.length; i++){
				if( p[i] == '..' || p[i] == '.') continue;
				if( p[i+1] != '..') {
					k += p[i] + '/';
				}
			}
			return 'http:' + k.replace(/\/+$/, '/');
		}
		return $_SHOPBASE + u;
	},
	
	extend: function(){
		var target = arguments[0] || {}, i = 1, length = arguments.length, options;
		if(typeof target != "object" && typeof target != "function")
			target = {};
		if(length == i){
			target = this;
			--i;
		}
		for ( ; i < length; i++ )
			if ( (options = arguments[i]) != null )
				for ( var name in options ) {
					var src = target[name], copy = options[name];
					if ( target === copy )
						continue;
					if ( copy !== undefined )
						target[ name ] = copy;
				}
		return target;
	}

};
