var cW,cH,bW,bH,sW,sH;
function MouseEvent(e) {this.x = e.pageX;this.y = e.pageY;this.l=e.clientX;this.t=e.clientY;}
function intQty(el,bool){
	el.value = el.value.replace(/\D*/g, "");
	var num = el.value;
	var min = Math.max(Number($(el).attr('minvalue')),num);
	var max = Math.min(Number($(el).attr('maxvalue'))||100,num);
	if(bool===1&&el.value>max)
		el.value = max
	if(bool===0)
	 	el.value = min;
}
//validate attributes
function trigerAttributeChild(json,pid,aid,bool){
	for(var i in json){
		var obj = json[i];
		if(obj.id==aid&&obj.child){
			for(var j in obj.child){
				var a = obj.child[j];
				$('#attr_'+pid+'_'+a.id).attr('disabled',bool);
			}
		}
	}
}

function attrOrder(a, b){ 
	var a1 = a.split('_')[0]||a;
	var b1 = b.split('_')[0]||b;
	return (a1-b1); 
}

function skuValidate(pid){
	var attributes = [];
	var selectAttributes = 0;
	for(var i=0; i<productsJSON[pid].attributes.length; i++){
		var obj = productsJSON[pid].attributes[i];
			var str = obj.id;
			if($('#attr_'+pid+'_'+obj.id).val().replace(/\s/g,'')!=""){
				selectAttributes++;
				str += '_'+$('#attr_'+pid+'_'+obj.id).val();
			}
			attributes.push(str);		
	}
	attributes.sort(attrOrder);

	if(productsJSON[pid].attributes.length>0&&productsJSON[pid].attributes.length==selectAttributes&&productsJSON[pid].sales_type=='stock'&&jQuery.inArray(attributes.join('|'), productsJSON[pid].quantities)<0){
		$('#submit_'+pid).attr('src',imagesPath+'icon/soldout_pending.gif');
	}
	if(productsJSON[pid].sales_type=='distribute'&&jQuery.inArray(attributes.join('|'), productsJSON[pid].quantities)>-1){
		$('#submit_'+pid).attr('src',imagesPath+'icon/soldout_pending.gif');
	}
}

function trigerAttribute(el,pid,aid){
	if($(el).attr('checked')){
		$('#attr_relate_'+pid+'_'+aid).show();
		$('#attr_'+pid+'_'+aid).val('').attr('disabled',true);
		trigerAttributeChild(productsJSON[pid].attributes,pid,aid,false);
	}else{
		$('#attr_relate_'+pid+'_'+aid).hide();
		$('#attr_'+pid+'_'+aid).attr('disabled',false);
		trigerAttributeChild(productsJSON[pid].attributes,pid,aid,true);
	};
	countPriceText(pid);
}
function countPriceText(pid){
	productsJSON[pid].attributePrice = 0;
	productsJSON[pid].validtext = [];
	
	for(var i=0; i<productsJSON[pid].attributes.length; i++){
		var obj = productsJSON[pid].attributes[i];
		if(obj.child&&$('#attr_'+pid+'_'+obj.id).attr('disabled')){
			var childPass = true;
			for(var c in obj.child){
				var child = obj.child[c];
				if(child.id){
					if(!child.allowBlank&&$('#attr_'+pid+'_'+child.id).val().replace(/\s/g,'')==""){
						childPass=false;
					}
				}
			}
			if(typeof(obj.customPrice)=="string"){
				productsJSON[pid].attributePrice += Number(obj.customPrice.replace(/\,/,"").replace(/[^0-9.,]*/g, ""));
			}else{
				productsJSON[pid].attributePrice += Number(obj.customPrice);
			};
			if(!childPass)
			 	productsJSON[pid].validtext.push(obj.name);
		};
		//cout parent price		
		if(!$('#attr_'+pid+'_'+obj.id).attr('disabled')&&$('#attr_'+pid+'_'+obj.id).val().replace(/\s/g,'')!=""){
			if(obj.mode=="select"){
				for(var iii=0; iii<obj.items.length; iii++){
					if(obj.items[iii].id==$('#attr_'+pid+'_'+obj.id).val())
						productsJSON[pid].attributePrice += Number(obj.items[iii].price);
				}
			}else if(obj.mode=="input") {
				productsJSON[pid].attributePrice += Number(obj.items[0].price);
			}			
		};
		
		//list parent errinfo
		if(!obj.allowBlank&&!$('#attr_'+pid+'_'+obj.id).attr('disabled')&&$('#attr_'+pid+'_'+obj.id).val().replace(/\s/g,'')==""){
			productsJSON[pid].validtext.push(obj.name);
		};
		
		
	};

	
	//console.log(productsJSON[pid].validtext.length);
	//validate pass or not
	if(productsJSON[pid].validtext.length>0){
		$('#submit_'+pid).attr('src',imagesPath+'button/car_gray.gif');
	}else{
		$('#submit_'+pid).attr('src',imagesPath+'button/car.gif')
	};
	
	var price = productsJSON[pid].attributePrice + parseFloat($('#price_'+pid).attr('value').replace(/\,/,""));
	var _pr =decimalPlaces==0?Number(price):Number(price).toFixed(toFix);

	$('#price_'+pid).html(number2Str(_pr));
	
	skuValidate(pid);
	try{
		countTotalPrice({id:'quantity_'+pid,value:$('#quantity_'+pid).val()},1);
	}catch(e){}
}
function validateAttribute(pid){
	var btn = imagesPath+'button/car_gray.gif';
	var activeBtn = imagesPath+'button/car.gif';
	//add before submit validate err pop
	if($('#msg').size()<1){
		$('<div id="msg" class="msg-submit" style="display:none"><em></em><div id="msg_con"></div></div>').prependTo("body"); 
	}
	$('#submit_'+pid).attr('src',btn).hover(
		function(){
			if($(this).attr('src')!=btn)
				return;
			//update errnfo text
			var html = '<dl><dt>'+lang_txt['TEXT_PLEASE_SELECT']+'</dt><dd>';		
			html += productsJSON[pid].validtext.join('</dd><dd>');
			html += '</dd></dl>';
			$('#msg_con').html(html);
			
			var xy = $(this).offset();
			xy.left -= $('#msg').width()+30;
			xy.top -= $('#msg').height()-5;
			$('#msg').css(xy).show();
		},
		function(){$('#msg').hide();}
	).click(function(){return ($(this).attr('src')==activeBtn)});
	
	for(var i in productsJSON[pid].attributes){
		var obj = productsJSON[pid].attributes[i];
		if(obj.child){
			$('#attr_'+pid+'_'+obj.id).after('<input type="checkbox" style="width:auto" id="triger_attr_'+obj.id+'" onclick="trigerAttribute(this,\''+pid+'\',\''+obj.id+'\')"><label for="triger_attr_'+obj.id+'">'+obj.customName+'</label>');
			$('#attr_relate_'+pid+'_'+obj.id).prepend('<p class="line_120 gray b">'+obj.customText+'</p>'); 
			$('#attr_relate_'+pid+'_'+obj.id).hide();
			
			for(var c in obj.child){
				var child = obj.child[c];
				$('#attr_'+pid+'_'+child.id).attr('disabled',true).keyup(function(){
					countPriceText(pid);
				});
			}
		};		
		//attributes bind
		if(obj.mode=="select"){
			$('#attr_'+pid+'_'+obj.id).attr().change(function(){countPriceText(pid);});
		}else if(obj.mode=="input") {
			$('#attr_'+pid+'_'+obj.id).attr().keyup(function(){countPriceText(pid);});
		}
	
	};//bind _eof
	
	//init price and errinfo
	countPriceText(pid);	
}
function number2Str(tempNum){
    var iniNum;
    var floatNum;
    tempNum = tempNum.toString();
    var decimalPosition = tempNum.indexOf(".");   
    if(decimalPosition>0) {
        iniNum = tempNum.slice(0,decimalPosition)
        floatNum = tempNum.slice(decimalPosition)
    }else{
        iniNum = tempNum;
        floatNum = "";
    }
   
    var l = iniNum.length;
    var times = Math.ceil(l/3);
    for(i=1;i<times;i++) {
        iniNum = iniNum.slice(0,l-3*i) + ',' + iniNum.slice(l-3*i);
    }
    return(iniNum + floatNum);
}


//list
(function($){
	$.fn.jqList = function(options){
		var sets = {size:8,number:0,total:0,cid:0,no:0}, isSub=false;;
		if(options) {$.extend(sets, options);};	
		sets.current=Math.floor(sets.number/sets.size);
		sets.pages=Math.ceil(sets.total/sets.size);
		page(Math.floor(sets.no/sets.size));
		function page(t){		
			var current=sets.current;
			switch (t) {
				case -1:	
					current=current<1?(sets.pages-1):(current-1);
					break;
				case 1:				
					current=current<(sets.pages-1)?(current+1):0;
					break;
				default:				
					current=t;
					break;
			}
			sets.current=current;
			$(sets.id+"Page").html((sets.current+1)+"/"+(sets.pages));
			get();
		}

		function get(){
			var mx=0,cn="#cell_name",ci="#cell_img";
			for(var i = sets.current*sets.size;i<(sets.current+1)*sets.size;i++){
				var p = [],s = productArr[i];			
				if(s){
				
								
					p.push(s.id,s.name,s.img,s.attr.count,s.attr.soldOut,s.attr.wholesale,s.attr.almost,s.salePrice,s.price,s.subName,s.attr.stockout);
					
					$(sets.id+" li").eq(mx).replaceWith($(".proList").html().replace(/{%pPrice%}/ig,p[8]).replace(/{%salePrice%}/ig,p[7]).replace(/{%pAlt%}/ig,p[1]).replace(/{%i%}/ig,i).replace(/{%pName%}/ig,p[9]).replace(/{%pOff%}/ig,p[3]));				
					if(p[3]!=-1) $("#b_arr_"+i).html(p[3]);
					$(cn+i).attr("href",rewrite_url(p[1],p[0]));
					$("#cell_link"+i).attr("href",rewrite_url(p[1],p[0]));
					loadImage(imgURL+p[2],chUrl,ci+i);
					if(p[0]==productid) {$(ci+i).addClass("allborder");}
					function showHide(a){for(var k=0;k<a.length;k++){a[k].a=="0"||a[k].a=="-1"?$(a[k].b+i).hide():$(a[k].b+i).show();}}			
					showHide([{a:p[4],b:"#a_arr_"},{a:p[3],b:"#b_arr_"},{a:p[6],b:"#c_arr_"},{a:p[5],b:"#d_arr_"},{a:p[10],b:"#e_arr_"},{a:sets.cid,b:cn},{a:sets.cid,b:"#cell_source_price"}]);
				}else{
					$(sets.id+" li").eq(mx).html("");
				}
				mx++;
			}
		}
		if(sets.pages>1){$(".recent_flash_prev").click(function(){if(isSub) return;subOk();page(-1);});$(".recent_flash_next").click(function(){if(isSub) return;subOk();page(1);});}
		function subOk(){isSub=true;window.setTimeout(function(){isSub=false;},500);};
	}
})(jQuery);


// Marquee
(function($){
	var methods = {
        marquee: function marquee(user_settings) {
            var self = $(this);            
			var sch = self.attr('scrollHeight');
			self.append(self.html());
            var settings = {
                timeout: null,                
                events: {
                    play: function(evt) {
                        var self = $(this);						
						var sct = self.scrollTop();
						if(sct>=sch)self.scrollTop(sct=sct-sch);
						self.animate({scrollTop:sct+settings.step-sct%settings.step},2000,function(){
							if(settings.timeout) clearTimeout(settings.timeout);
							settings.timeout = setTimeout(function(){self.marqueePlay()},settings.time);
						});
                    },
                    stop: function(evt) {
                        var self = $(this);
                        clearTimeout(settings.timeout);self.stop();
                    }
                }
            };
            if(self.data("marquee.settings")) {
                settings = self.data("marquee.settings");
            }
            settings = $.extend(user_settings, settings);            
            for(var event in settings.events) {
                var evt = "marquee." + event;
                self.unbind(evt);
                self.bind(evt, settings.events[event]);
            }            
            self.data("marquee.settings", settings);
			self.marqueePlay();
            return self;
        },
        marqueePlay: function() {
            $(this).trigger("marquee.play");         
        },
        marqueeStop: function() {
            $(this).trigger("marquee.stop");
        }
    };
    $.each(methods, function(i) {
        $.fn[i] = this;
    });
})(jQuery);

$(function(){
	if($(".use_round_border") != null){
		$(".use_round_border").each(function(){$(this).html('<em><b></b></em><div class="use_round_border_con">'+$(this).html()+'</div><b><em></em></b>')});	
	}
	 //for product center
	  $(".attr_table_1 tr").find('td:first:not([class])').each(function(){$(this).addClass('blue_bg').width(100)});
	  //table yellow 
	  var tdArr=[];
	  $(".attr_table_yellow tr").find('td:first:not([class])').each(function(n){var row=$(this).attr("rowspan");if(row>1){for(var i=1;i<row;i++){tdArr.push(n+i);}};if(jQuery.inArray(n, tdArr)==-1) {$(this).addClass('yellow_bg g_t_l b')}});
	  $(".attr_table_yellow tr").each(function(){
			var sel = $('td:not([colspan]):not([class=yellow_bg g_t_l b])',this);
			var length = sel.size();

			sel.each(function(index){							  
				if(length%2){
					if((length-index)%2==0){
						$(this).addClass('lit_gray_bg');
					}
				}else{
					if((length-index)%2==1){
						$(this).addClass('lit_gray_bg');
					}
				}
			});	 

	  });
	$(".table_yp tr").find('td:first:not([class])').each(function(){$(this).css('background','#dfefff')})
	
	//active slide 
	$(".index_ad").slide({defertime: 7000,fadingtime: 1000,slides:5});
	
	//active tooltip
	$(".apply_tip").tooltip();
	//dfp slides
	$(".slide_dfp_l").slideDfp();
	$(".slide_dfp_s").slideDfp();	

    //active count down
    jQuery(".count_down").each(function(){
    	jQuery(this).countDown();      
    });
	
	});
/**********************************/

Array.prototype.indexOf = function(o){for (var i=0; i<this.length; i++) if (this[i]==o) return i;return -1;}
function show(a){$("#"+a).show();}function hide(a){$("#"+a).hide();}
function back(num){history.go(num);return false;}
function findPos(obj){return[$(obj).offset().left,$(obj).offset().top];}
function loadImage(url, callback,id) {var img = new Image();img.src = url;if (img.complete) { callback.call(img,id);}else{$(img).bind("load", function(){callback.call(img,id);});}}
function rewrite_url(pname,pid){if(pid==null||pid=="undefined"){return""};var re=/[^a-zA-Z0-9]/ig;var url="";if(FRIENDLY_URLS!=null&&FRIENDLY_URLS=='true'){url=baseURL+pname.replace(re,"-")+"_p"+pid+".html";}else{url=linkURL+pid;}return url;}
function chUrl(id){$(id).attr({src:this.src});};
function isNone(str){return str==null||$.trim(str)==""?true:false;};
String.prototype.trim=function(){return this.replace(/(^[\s]*)|([\s]*$)/g,"");};String.prototype.inc=function(k1,k2){if(k2==null){k2=","};return(k2+this+k2).indexOf(k2+k1+k2)>-1?true:false;};String.prototype.sub=function(k1,k2){if(k2==null){k2=","};var tmp=k2+this+k2;var size=tmp.indexOf(k1);if(size==-1){return 0;}var i=0;while(tmp.charAt(size+3+i)!='/'){i++;}return tmp.substring(size+3,size+3+i);};
function efocu(obj){try{$(obj).focus();}catch(e){}};
function insHtm(obj,code,pos){obj=$(obj)[0];if($.browser.msie){obj.parentNode.insertAdjacentHTML(pos==null?"beforeend":"afterbegin",code);}else{var r=obj.ownerDocument.createRange();r.setStartBefore(obj);eval("obj.parentNode."+(pos==null?"appendChild":"insertBefore")+"(r.createContextualFragment(code),obj.parentNode.firstChild)");}}
function checkEmail(id){var email=$("#"+id)[0]==null?'':$("#"+id).val();if(!/(\,|^)([\w+._]+@\w+\.(\w+\.){0,3}\w{2,4})/.test(email.replace(/-|\//g,""))){$(id).focus();alert(lang_txt['checkemail']);return false;}else{return true;}}
function popupwin(url,name,width,height,options){if($.browser.msie){var win=window.showModelessDialog(url,window,"status:false;dialogWidth:"+(width)+"px;dialogHeight:"+(height+30)+"px;edge:Raised; help: 0; resizable: 0; status: 0;scroll:0;");}
else{xposition=0;yposition=0;if((parseInt(navigator.appVersion)>=4)){xposition=(screen.width-width)/2;yposition=(screen.height-height)/2;}
theproperty="width="+width+","+"height="+height+","+"screenx="+xposition+","+"screeny="+yposition+","+"left="+xposition+","+"top="+yposition+","+options;
var win=window.open(url,name,theproperty);win.focus();}
return false;}

var openShow=false;
function show_chat_div(obj){
	
	if(openShow){close_chat_div();return;}
	openShow=true;
	$('#nav_chat_sales').marqueeStop()
	var msn=$(obj).attr("msn"),skype=$(obj).attr("skype"),email=$(obj).attr("email"),yahoo=$(obj).attr("yahoo");
	var str="",s1="<li><span class='big black b'>",s2="</span><BR/> <span class='pad_1em'>",s3="</span></li>";
	str+="<ul class='gray_trangle_list'>";
	function setStr(a){for(var i=0;i<a.length;i++){if(a[i].a!=null&&a[i].a!=""){str+=s1+a[i].b+s2+a[i].a+s3;}}};
	setStr([{a:email,b:"Email"},{a:msn,b:"MSN"},{a:skype,b:"SKYPE"},{a:yahoo,b:"YAHOO"}]);
	str+="</ul>";
	
	$('#chat_div_name').html(str);
	$('#chat_div').show();
	hide_select(0,"rel","dropdown");
}
function close_chat_div(){$('#chat_div').hide();$('#nav_chat_sales').marqueePlay();openShow=false;}

function hide_select(a,b,c){
	$("select").each(function(i){
		var t=a==0?"hidden":"visible";
		var r=b==0?"":"["+b+"*='"+c+"']";
		if($.browser.version==6.0) $("select"+r).css({visibility:t});
	});
}

function toggle(el){if($("#"+el).css("display")=="none"){$("#"+el).show();}else{$("#"+el).hide();}}

function layerswich(){
	$("#boxswitch div").click(function(){
		$(this).removeClass().addClass('on').siblings().removeClass().addClass('off');		
		$("#"+$(this).attr("title")).removeClass().addClass('show').siblings().removeClass().addClass('hide');
	});
}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++)
{var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}

function trackingChat(){
	var _loc=window.location.href;
	var _http="http";
	if(_loc.substr(0,5) == 'https') _http="https";
	var img=new Image();
	img.src = _http+'://www.lightinthebox.com/click_to_live_chat/?url='+_loc;
}

function createElem(tagName,intObject){
	intObject=intObject||{};
	var newTag = document.createElement(tagName);
	for (var i in intObject) {
		newTag[i] = intObject[i];
	}
	return newTag;
}
var cookiedomain = langs=='ja'?'.hikaribox.com':'.lightinthebox.com',cookiepath = '/';
function setCookie(cookieName, cookieValue, seconds, path, domain, secure) {
	if(seconds){
		var expires = new Date();
		expires.setTime(expires.getTime() + seconds * 1000);
	}
	domain = !domain ? cookiedomain : domain;
	path = !path ? cookiepath : path;
	document.cookie = escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '/')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
}
function delCookie(name){
	setCookie(name,"",-60);
};
function getCookie(name) {
	var cookie_start = document.cookie.indexOf(name);
	var cookie_end = document.cookie.indexOf(";", cookie_start);
	return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
}
function preImages(arr){
	for(i=0;i<arr.length;i++){
		var img=new Image();
		img.src=arr[i];
	}
}

function getClientSize(){
	var dd=document.documentElement,db=document.body;
	cW=dd.clientWidth;
	cH=dd.clientHeight;
	bW=db.offsetWidth;
	bH=db.offsetHeight;
	sH=dd.scrollHeight;
	sW=dd.scrollWidth;
}
function getScrollTop(){function ieTrueBody(){return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;}return $.browser.msie ? ieTrueBody().scrollTop : window.pageYOffset;}

function loginCheckLog(options){
	var me=this,url="";
	this.sets={};
	if(options) {$.extend(me.sets, options)};
	$.each(getSum(me.sets), function(i, n){
		if(n[0]!="action") url += n[0] + "=" + n[1] + "&";
	}); 
	var len=url.length;
	url=url.substr(0,len-1);
	var bodyId=$(document.body).attr("id");
	var _loc=window.location.href;
	var _http="http";
	if(_loc.substr(0,5) == 'https') _http="https";
	var img=new Image();
	img.src = _http + '://' + window.location.hostname +'/custom_log?type='+me.sets.action+'&'+url;
}

function getSum(properties){
		var p=[];
		for(var i in properties){ 
			if(typeof(i)=="string") {
				var arr=[i,properties[i]]
				p.push(arr);
			}
		}
		return p;
}

function fixPng(obj){
	if ($.browser.version==6.0 && document.body.filters) {
		var imgs="http://image.lightinthebox.com/includes/templates/dev_v2/images/tran.gif?49323";
		var len=$(obj)[0].getElementsByTagName("img");
		for (var i=0; i<len.length; i++){
			var obj = len[i];
			var bg = obj.currentStyle.backgroundImage;
			var img = document.images[i];
			if (bg && bg.match(/\.png/i) != null) {
				var img = bg.substring(5,bg.length-2);
				var offset = obj.style["background-position"];
				obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='crop')";
				obj.style.backgroundImage = "url('"+imgs+"')";
				obj.style["background-position"] = offset; 
			} else if (img && img.src.match(/\.png$/i) != null) {
				var src = img.src;
			//	img.style.width = img.width + "px";
			//	img.style.height = img.height + "px";
				img.style.filter ="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='crop')";
				img.src = imgs;
			}
		}
	}
}

function winOpenBox(){
	this.sets = {width:500,height:300,classs:"winHtmlDiv",close:"show"};
	var me=this , _win="" , _bg="" ,_div=".winHtmlDiv",_bg=".winHtmlBg", _skins="",_w="",_h="",_con=".winHtmlCon",_close="winHtmlClose",_pw="pngWidth",_ph="pngHeight",_ok="button_ok",sty1="height:30px;width:25px;",sty2="height:30px;width:5px;",sty3="height:46px;width:46px;";
	this.create = function(){
		var winHtmlStr='<table width="100%" border="0" cellspacing="0" cellpadding="0" class="winHtmlTable">';
		winHtmlStr+='<tr><td width="25" height="30"><img src="'+_skins+'bg01.png?49323" style="'+sty1+'"/></td><td width="5"><img src="'+_skins+'bg02.png?##revision.img##" style="'+sty2+'"/></td><td><img src="'+_skins+'bg03.png?##revision.img##" class="'+_pw+'"/></td><td width="5"><img src="'+_skins+'bg04.png?##revision.img##" style="'+sty2+'"/></td><td width="25"><img src="'+_skins+'bg05.png?##revision.img##" style="'+sty1+'"/></td></tr>';
		winHtmlStr+='<tr><td><img src="'+_skins+'bg06.png?49323" class="'+_ph+'"/></td><td class="'+me.sets.skin+'"></td><td class="'+me.sets.skin+'"><div class="winHtmlCon pad_10px flow"></div></td><td class="'+me.sets.skin+'"></td><td><img src="'+_skins+'bg07.png?##revision.img##" class="'+_ph+'" /></td></tr>';
		winHtmlStr+='<tr><td height="30"><img src="'+_skins+'bg08.png?49323" style="'+sty1+'"/></td><td><img src="'+_skins+'bg09.png?##revision.img##" style="'+sty2+'"/></td><td><img src="'+_skins+'bg10.png?##revision.img##" class="'+_pw+'"/></td><td><img src="'+_skins+'bg11.png?##revision.img##" style="'+sty2+'"/></td><td><img src="'+_skins+'bg12.png?##revision.img##" style="'+sty1+'"/></td>';
		winHtmlStr+='</tr></table><span class="'+_close+'"><img src="'+_skins+'close.png?49323"  style="'+sty3+'"/></span>';
		_win=createElem("DIV",{className:"winHtmlDiv absolute flow"});
		_bg=createElem("DIV",{className:"winHtmlBg"});
		$(_win).html(winHtmlStr);
		$(document.body).prepend(_win).prepend(_bg);
	};
	this.show = function(options){
		if(options) {$.extend(me.sets, options)};
		//_skins=CSSPagePath+"css/images/imgBox/"+me.sets.skin+"/";
		_skins="http://image.lightinthebox.com/includes/templates/dev_v2/css/images/imgBox/"+me.sets.skin+"/";
		
		this.create();
		getClientSize();
		_w=me.sets.width+60,_h=me.sets.height+60;
		hide_select(0,0);
		$(_div).css({left:(cW-_w)/2,top:Math.max((cH-_h)/2+getScrollTop(),getScrollTop()),width:_w,height:_h}).find("."+_pw).css({width:me.sets.width,height:30}).end().find("."+_ph).css({width:25,height:me.sets.height}).end().show();
		$("."+_close).removeClass().addClass(_close+" "+me.sets.close).click(function(){me.close();});
		$(_con).css({width:me.sets.width-20,height:me.sets.height-20}).html(me.sets.html);
		fixPng(_div);
		$(_bg).css({height:Math.max(cH,bH,sH),width:Math.max(cW,bW,sW)}).css({opacity: 0}).animate({ opacity: 0.25 });
	};
	this.close = function(){
		$(_div).remove(); ;
		$(_bg).fadeOut(200,function(){$(this).remove(); });
		hide_select(1,0);
	};
	window.onresize=function(){	
		if($(_bg)[0]){
			getClientSize();
			$(_bg).css({height:Math.max(cH,bH,sH),width:Math.max(cW,bW,sW)});
			$(_div).css({left:(cW-_w)/2,top:Math.max((cH-_h)/2+getScrollTop(),getScrollTop())})
		}
	};
	this.alert = function(options){
		me.show(options);
		$(_con).append('<table width="100%"><tr><td class="g_t_c"><button type="button" id="'+_ok+'" class="margin_t b"><span>&nbsp;Ok&nbsp;</span></button></td></tr></table>'); 
		$("#"+_ok).click(function(){me.close();});
	};
}

$.fn.fillet= function(options) {
	var b_arr=[],$_this=$(this),sets = {border:"#ddd",background:"#fff",noBorder:false};
	for(var i=0;i<5;i++){var _w=i==1?" w2":"";b_arr.push("<b class=\"b"+i+_w+"\"></b>");}
	var conDiv = createElem("DIV",{className:"fillet_con"});
	$(conDiv).html($_this.html());
	$_this.html("");
	var $_width=$_this.width();
	$_this.append(b_arr.join("")).append(conDiv).append(b_arr.reverse().join("")); 
	if(options) {$.extend(sets, options)};	
	sets.border=sets.noBorder?sets.background:sets.border;
	$("b",this).css({borderColor:sets.border,backgroundColor:sets.background});
	$(".b0",this).css({backgroundColor:sets.border});
	$(".fillet_con",this).css({borderColor:sets.border,backgroundColor:sets.background,width:$_width-22,padding:"5px 10px",overflow:"hidden"});
	$_this.show();
}
Array.prototype.del=function(n) {if(n<0){return this;}else{return this.slice(0,n).concat(this.slice(n+1,this.length));}}
$.fn.selectChoose= function(options) {
	var me = this;
	var $sel = $(this).find("select"),_data = options["data"],_page = options["page"];
	var _s = $sel.size();
	var _list = [],isOne = false;
	this._w = [];
	this.objIndexOf=function(obj,value){
		for(var i=0;i<obj.length;i++){if(value==obj[i]["value"]){return i;}}return -1;
	}
	this.getDelValue = function(id,value){
		me_w = [];
		for(var i=0;i<_data[0].length;i++){
			var len=isOne?1:2;
			for(var z=0;z<len;z++){
				if(isOne){
					me_w.push(_data[0][i][z]);
				}else{
					if(("attrib-"+_data[0][i][z][0])==id&&(_data[0][i][z][1])==value){
						me_w.push(_data[0][i][1-z]);
					}
				}
			}
		}
	}
	this.initValue = function(sel){
		var m=[];
		for(var z=0;z<_s;z++){
			var op = sel.eq(z).find("option");
			var _m=[];
			for(var i=0;i<op.length;i++){
				_m.push({value:op.eq(i).attr("value"),price:op.eq(i).attr("price"),text:op.eq(i).attr("text")});
			}
			m.push(_m);
		}
		_list = m;
	}
	this.delAtt = function(id,arr){
		var _arr=arr;
		for(var n=0;n<me_w.length;n++){
			if(id=="attrib-"+me_w[n][0])
			_arr=_arr.del(me.objIndexOf(_arr,me_w[n][1]));					
		}
		return _arr;
	}
	
	this.selChange = function(obj,n){
				var _sel=[];
				for(var k=0;k<_s;k++){
					_sel.push($sel.eq(k).attr("value"));
				}

				var __value = obj.attr("value"),__id=obj.attr("id");
				var __arr=[];
				for(var m=0;m<_s;m++){
					__arr.push(_list[m]);
				}
				me.getDelValue(__id,__value);
				for(var p=0;p<_s;p++){
					if(p!=n)
					__arr[p] = me.delAtt($sel.eq(p).attr("id"),__arr[p]);
				}
				for(var l=0;l<_s;l++){
					var _i=$sel.eq(l).attr("id"),_v=$sel.eq(l).attr("value");
					if(l!=n&&me.objIndexOf(__arr[l],_v)!=-1)
					me.getDelValue(_i,_v);
					for(var v=0;v<_s;v++){
						__arr[v] = me.delAtt($sel.eq(v).attr("id"),__arr[v]);
					}
				}

				for(var z=0;z<_s;z++){
					/*
					var ___html='<option is_custom="'+$sel.eq(z).find("option").eq(0).attr("is_custom")+'" price="'+$sel.eq(z).find("option").eq(0).attr("price")+'" value="'+$sel.eq(z).find("option").eq(0).attr("value")+'">'+lang_txt['TEXT_PLEASE_SELECT']+'</option>';
					for(var q=1;q<__arr[z].length;q++){
						var ___check = __arr[z][q]["value"]==_sel[z] ?'selected':"";
						___html+='<option price="'+__arr[z][q]["price"]+'" value="'+__arr[z][q]["value"]+'" '+___check+'>'+__arr[z][q]["text"]+'</option>';
					}
					if($.browser.version==6.0){$sel.eq(z)[0].options.length = 0;}
					$sel.eq(z).html(___html);
					*/
					if($.browser.version==6.0){

						var _vd = [$sel.eq(z).find("option").eq(0).attr("is_custom"),$sel.eq(z).find("option").eq(0).attr("price"),$sel.eq(z).find("option").eq(0).attr("value"),lang_txt['TEXT_PLEASE_SELECT']]

						var _id = $sel.eq(z).attr("id");	
						
						if($sel.eq(z).attr("id")!=$(obj).attr("id")){
							var _xVa=_vd[3];
							for(var x=1;x<__arr[z].length;x++){
								if(__arr[z][x]["value"]==_sel[z]){_xVa=__arr[z][x]["text"]};						
							}
							/*
							var _text = createElem("select",{className:"sel_text absolute sel_"+z});

							var sObj = $sel.eq(z)[0];
							var _et = sObj.offsetTop;
							var _el = sObj.offsetLeft;
							while(sObj=sObj.offsetParent){
								_et+=sObj.offsetTop;
								_el+=sObj.offsetLeft;
							}
							$(_text).html('<option value="">'+_xVa+'</option>').css({left:_el,top:_et});
							$(document.body).prepend(_text);
							*/
							$sel.eq(z)[0].length = 0;
							$sel.eq(z)[0].options.add(new Option(_xVa,_vd[2]));
							$sel.eq(z).find("option").attr({"price":_vd[1],"is_custom":_vd[0]});
							for(var q=1;q<__arr[z].length;q++){
								var ___check = __arr[z][q]["value"]==_sel[z] ?true:false;
								$sel.eq(z)[0].options.add(new Option(__arr[z][q]["text"],__arr[z][q]["value"]));
								$sel.eq(z).find("option").attr({"price":__arr[z][q]["price"],"selected":___check});
								
							}
							$sel.eq(z).find("option").eq(0).attr({"text":_vd[3]});

							/*
							(function(z){
								window.setTimeout(function(){$(".sel_"+z).remove();},300);
							})(z);
							*/
							 
						}

					}else{
						var ___html='<option is_custom="'+$sel.eq(z).find("option").eq(0).attr("is_custom")+'" price="'+$sel.eq(z).find("option").eq(0).attr("price")+'" value="'+$sel.eq(z).find("option").eq(0).attr("value")+'">'+lang_txt['TEXT_PLEASE_SELECT']+'</option>';
						for(var q=1;q<__arr[z].length;q++){
							var ___check = __arr[z][q]["value"]==_sel[z] ?'selected':"";
							___html+='<option price="'+__arr[z][q]["price"]+'" value="'+__arr[z][q]["value"]+'" '+___check+'>'+__arr[z][q]["text"]+'</option>';
						}
						$sel.eq(z).html(___html);
					
					}
				}
				if(_page=="product"){
					for(var y=0;y<_s;y++){
						var _sid = $sel.eq(y).attr("id");
						if(tempPrice[_sid])
							extraPrice -= tempPrice[_sid];
						var t = $sel.eq(y).find("option:selected");
						extraPrice += Number(stripPrice(t.attr("price")));
						tempPrice[_sid] = Number(stripPrice(t.attr("price")));
					}
					checkS();
				}
	}



	if(_data.length==0) return;
	me.initValue($sel);	
	if(_s==1){
		isOne = true;
		me.getDelValue($sel.attr("id"),$sel.attr("value"));
		for(var n=0;n<me_w.length;n++){
			_list[0]=_list[0].del(me.objIndexOf(_list[0],me_w[n][1]));	
		}
		var ___html='<option is_custom="'+$sel.find("option").eq(0).attr("is_custom")+'" price="'+$sel.find("option").eq(0).attr("price")+'" value="'+$sel.find("option").eq(0).attr("value")+'">'+lang_txt['TEXT_PLEASE_SELECT']+'</option>';
		for(var i=1;i<_list[0].length;i++){
			___html+='<option price="'+_list[0][i]["price"]+'" value="'+_list[0][i]["value"]+'">'+_list[0][i]["text"]+'</option>';
		}
					
		$sel.html(___html);
	}else{
		$sel.each(function(n){
			var $this = $(this);
			var __t=$(this).find("option");
			
			$(this).bind("change",function(){	

				me.selChange($this,n);


			});
			$(this).parent().find("input[id='chk_r_attr']").bind("click",function(){
				me.selChange($this,n);
			})

		});
	}

}
//专题页改版开始///
function cutOut(str,len){
	if(str.length<len){
		return str;
	}else{
		return str.substring(0,len)+'...';
	}	
}
function useSeoLink(pname,pid){
	if(pname&&pid){
		return (useSeo)?root_path+'/'+pname.replace(/[^a-zA-Z0-9]/ig,'-')+'_p'+pid+'.html':root_path+'/'+'index.php?main_page=product_info&products_id='+pid
	}else{
		return '';
	}
}


jQuery.fn.loadingImg = function(url) {
	var obj = this;
	var img = new Image(); //new img obj
	img.src = url;	//set src either absolute or rel to css dir
	var w = jQuery(obj).attr('width');
	var h = jQuery(obj).attr('height');
 
	
	jQuery(obj).attr({'src':static_path+'/includes/templates/dev_v2/css/images/imgBox/s.gif?49323','width':w,'height':h});
	
	$(obj).css('background', 'url('+static_path+'/includes/templates/dev_v2/css/images/imgBox/loading_img_s.gif?49323) 50% 50% no-repeat');
	//msie or not
	if(!img.complete){
		jQuery(img).bind('error load onreadystatechange', function(){jQuery(obj).attr('src',url);});
		//jQuery(img).bind('load', function(){jQuery(obj).attr('src',url);});
	} else {
		jQuery(obj).attr('src',url);
	}
};

jQuery.fn.parseProduct = function(trackUrl,p_name_len,big_tpl) {
	var obj = this;
	
	if(!p_name_len)
		p_name_len = 50;
	var ps = $(obj).children("p");
	
	var p_id = ps.eq(0).html();
	var p_img;
	
	if(big_tpl){
		p_img = static_path + 'images/f/'+ps.eq(1).html().split('*')[1];
	}else{
		p_img = static_path + 'images/m/'+ps.eq(1).html().split('*')[1];
	}
	
	var p_name = ps.eq(2).html();
	var url = useSeoLink(p_name,p_id)+'?'+trackUrl;
	
	var p_wholesale_price = ps.eq(3).html();
	var P_retail_price = ps.eq(4).html();
	
	
	var p_freeShipping = ps.eq(6).html();
	var p_discount = ps.eq(5).html();
	

	var p_str = '';

	if(p_discount>0){
		p_str = lang_txt['save']+' '+p_discount+'%';
	}

	if(p_freeShipping>0){
		p_str = lang_txt['freeshipping'];
	}

	if(p_discount>0&&p_freeShipping>0){
		p_str = lang_txt['save']+' '+p_discount+'%' + '+' + lang_txt['freeshipping'];
	}

	var html = '';
	html += '<li>';
	html += '<div><a href="'+url+'" title="'+p_name+'" class="ih big"><img src="'+p_img+'" /></a></div>';
	html += '<div class="margin_t" style="height:30px;"><a href="'+url+'" title="'+p_name+'">'+cutOut(p_name,p_name_len)+'</a></div>';
	html += '<div class="red b margin_t" style="font-size:16px;">'+p_wholesale_price+'</div>';
	html += '<div class="red b" style="height:20px;">'+p_str+'</div>';
	html += '<div><nobr>'+lang_txt['retailprice']+': <span class="b del">'+P_retail_price+'</span></nobr></div>';
	html += '<a href="'+url+'"><div class="margin_t buy_btn"></div></a>';
	html += '</li>';        
	return html;
};
 
//专题页改版强束///

$.fn.showText= function(options) {
			var $me = $(this),me=this;
			this.sets = {width:100,top:17,left:0,arrow:"left",backcolor:"#fff",cssName:"ws_a",img:"png",close:true,arrowLeft:""};
			if(options) {$.extend(me.sets, options)};
			var html = '<div class="'+ me.sets.cssName +' relative">';
			if(me.sets.close) {html += '<div class="absolute close hand" style="top:7px;right:10px;"></div>';}
			html += '<div class="absolute '+ me.sets.cssName +'_arrow"></div><div class="clear"></div>';
			html += '<div class="' + me.sets.cssName + '_t_l"></div><div class="w_c h_t ' + me.sets.cssName + '_t_c"></div><div class="' + me.sets.cssName +'_t_r"></div>';
			html += '<div class="' + me.sets.cssName +'_c_l"><div class="' + me.sets.cssName +'_c_r"><div class="w_c h_c w_w"></div></div></div>';
			html += '<div class="' + me.sets.cssName +'_b_l"></div><div class="w_c h_b ' + me.sets.cssName +'_b_c"></div><div class="' + me.sets.cssName +'_b_r"></div>';
			html += '</div>';
			var obj = $(me)[0];
			var et = obj.offsetTop;
			var el = obj.offsetLeft;
			while(obj=obj.offsetParent){
				et+=obj.offsetTop;
				el+=obj.offsetLeft;
			}
			var arrow_l = me.sets.arrow == "left" ? (el+20) : (el - me.sets.width-65);
			var arrow_t = et-60;
			if(me.sets.arrow == "top"){
				arrow_t = et + $(this).height() +  me.sets.top;
				arrow_l = el - me.sets.width+$me.width()/2;
				if(me.sets.arrowLeft!=""){arrow_l = el - me.sets.arrowLeft;}
			}
	
			var _win=createElem("DIV",{className:"absolute z9999 wintextcon hide"});
			$(_win).html(html).css({left:arrow_l,top:arrow_t,width:me.sets.width+30});
			$(_win).find("."+me.sets.cssName).css({width:me.sets.width+30,left:16});	
			$(_win).find(".w_c").css({width:me.sets.width}).end()
				.find("."+me.sets.cssName +"_c_l").css({width:me.sets.width+15}).end()
				.find("."+me.sets.cssName +"_c_r").css({width:me.sets.width}).end()
				.find(".w_w").css({background:me.sets.backcolor}).html(me.sets.html);	
			if(me.sets.height){
				$(_win).css({height:me.sets.height+30});
				$(_win).find("."+me.sets.cssName).css({height:me.sets.height+30});
				$(_win).find(".h_c").css({height:me.sets.height});
			}
			var _left = me.sets.arrowLeft==""?"":"_left";
			$(_win).find("."+me.sets.cssName+"_arrow").addClass(me.sets.cssName +'_'+ me.sets.arrow+_left);
			$(_win).find(".close").click(function(){me.close();});
			if(me.sets.out) $me.mouseout(function(){me.close();});
			$(".wintextcon").remove();
			$(document.body).prepend(_win);
			var _isb = me.sets.arrow == "bottom";
			$(_win).css({left:(_isb?(arrow_l+me.sets.width+35):arrow_l),top:(_isb ? (arrow_t - $(_win).height() + 47) : arrow_t)});
			if(me.sets.arrow == "bottom") {$(_win).find("." + me.sets.cssName +"_"+ me.sets.arrow).css({top:$(_win).height()-5});}

			$(_win).show();
			this.close = function(){
				$(_win).remove();
				hide_select(1,0);
			}
}

$.fn.getPosition= function(options) {
			var $me = $(this);
			var obj = $me[0];
			var et = obj.offsetTop;
			var el = obj.offsetLeft;
			while(obj=obj.offsetParent){
				et+=obj.offsetTop;
				el+=obj.offsetLeft;
			}
			return{top:et,left:el};
}

$.fn.showElement= function(options) {
			var $me = $(this),me=this;
			this.sets = {action:"click",left:0,top:0,top_p:""};
			if(options) {$.extend(me.sets, options)};
			var obj = $(".short_url_faq")[0];
			//var et = obj.offsetTop;
			var el = obj.offsetLeft;
			while(obj=obj.offsetParent){
			//	et+=obj.offsetTop;
				el+=obj.offsetLeft;
			}
			$(me.sets.obj).find(".close").click(function(){me.close();});
			switch (me.sets.action) {
				case "mouse":	
					$me.mouseover(function(){me.show();}).mouseout(function(){me.close();});
					break;
				case "click":				
					$me.click(function(){if($(me.sets.obj).css("display")=="none") {me.show();}else{me.close();}});
					break;
			}
			this.show = function(){
				var $_topPosition=$(me.sets.top_p).getPosition();
				$(me.sets.obj).css({left:$_topPosition["left"]-75,top:$_topPosition["top"]+me.sets.top}).show();
			}
			this.close = function(){
				$(me.sets.obj).hide();
			}
}

function addFavor(title,url){if (document.all) window.external.AddFavorite(url, title); else if (window.sidebar) window.sidebar.addPanel(title, url, "") ;}
//专题页改版强束///

function newsletter_check_box(language,checkbox_name1,checkbox_name2,hidden1,hidden2){

 var checkbox1 = document.getElementById(checkbox_name1).checked;
 var checkbox2 = document.getElementById(checkbox_name2).checked;
 if(language=='en'){
  
  if(checkbox1){
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1AQAZ04";
    document.getElementById(hidden2).value="-421280147";
    
   }else{
	
    document.getElementById(hidden1).value="S7Y1AgAg79";
    document.getElementById(hidden2).value="1575980073";
   }
  }else{
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1BgAw13";
    document.getElementById(hidden2).value="2025216077";
   }else{
    document.getElementById(hidden1).value="S7Y1AQAZ04";
    document.getElementById(hidden2).value="-421280147";
   }
  }
  //alert(document.getElementById("hidden1").value);
  //alert(document.getElementById("hidden2").value);
 }else if(language=='fr'){
  if(checkbox1){
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1BwAA04";
    document.getElementById(hidden2).value="-1989778655";
    
   }else{
    document.getElementById(hidden1).value="S7Y1BQAt03";
    document.getElementById(hidden2).value="2132780631";
   }
  }else{
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1AwAt47";
    document.getElementById(hidden2).value="57262292";
   }else{
    document.getElementById(hidden1).value="S7Y1BwAA04";
    document.getElementById(hidden2).value="-1989778655";
   }
  }
 }else if(language=='es'){
  if(checkbox1){
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1NAAAw35";
    document.getElementById(hidden2).value="-1348823863";
    
   }else{
    document.getElementById(hidden1).value="S7a1AAAO49";
    document.getElementById(hidden2).value="1543548970";
   }
  }else{
   if(checkbox2){
    document.getElementById(hidden1).value="S7a1BAAa54";
    document.getElementById(hidden2).value="-1759438396";
   }else{
    document.getElementById(hidden1).value="S7Y1NAAAw35";
    document.getElementById(hidden2).value="-1348823863";
   }
  }
 }else if(language=='de'){
  if(checkbox1){
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1tAAAg06";
    document.getElementById(hidden2).value="-2037886563";
    
   }else{
    document.getElementById(hidden1).value="S7Y1NAMAA88";
    document.getElementById(hidden2).value="-1347646214";
   }
  }else{
   if(checkbox2){
    document.getElementById(hidden1).value="S7Y1NAcAf31";
    document.getElementById(hidden2).value="1394718603";
   }else{
    document.getElementById(hidden1).value="S7Y1tAAAg06";
    document.getElementById(hidden2).value="-2037886563";
   }
  }
 }
}
var check_login_box = 0;
function check_login_address(){
	if($('#shipping_address_checkbox')[0].checked){
		check_login_box= 1
	}else{
		check_login_box= 0;
	}
}
function check_login_from(obj){
	if(!$("#termofuse").attr("checked")) {
		alert($("#termofuse").attr("chkName"))
		return false;
	}

	if(check_login_box==1) {
		if(($('#reg-password')[0].value == $('#reg-re-password')[0].value) && $('#reg-password')[0].value){
			var status = fmChk(obj);
		}else if(($('#reg-password')[0].value == $('#reg-re-password')[0].value) && !$('#reg-password')[0].value){
			var status = fmChk_More_Reason(obj,'termofuse,');
		}else{
			var status = fmChk(obj);
		}
	}
	else {
		if(($('#reg-password')[0].value == $('#reg-re-password')[0].value) && $('#reg-password')[0].value){
			var status = fmChk_More_Reason(obj,'b_firstname,b_lastname,b_street-address,b_city,b_country,b_postcode,b_phone,');
		}else if(($('#reg-password')[0].value == $('#reg-re-password')[0].value) && !$('#reg-password')[0].value){
			var status = fmChk_More_Reason(obj,'b_firstname,b_lastname,b_street-address,b_city,b_country,b_postcode,b_phone,termofuse,');

		}else{
			var status = fmChk_More_Reason(obj,'b_firstname,b_lastname,b_street-address,b_city,b_country,b_postcode,b_phone,');

		}
	}
	return status;
  
}
//affilate 2010.3
	
function getParam(param) {
         var str = window.location.search;
        
         var r = new RegExp("\\?(?:.+&)?" + param + "=(.*?)(?:&.*)?$");  
         var m = str.match(r);  
         return m ? m[1] : "";
}
function if_html(){
	var str = window.location.href;
	var reg=new RegExp("/html/", "gi");
	return reg.test(str);
}
if(if_html()){

	
        var affi_value = getParam("utm_campaign");
        
        
        if(affi_value=="gan"){
            setCookie("affi","664b08e55c41be35e1e822fee3b61691",60*60*24*30);
        }else if(affi_value=="cj"){
            setCookie("affi","6775622d9bf52a43ec02a1834a9fced6",60*60*24*30);
        }else if(affi_value=="webgains"){
            setCookie("affi","1bc328b5a9d17a23cefbcc73244c3de9",60*60*24*30);	
        }
}


$.fn.showWin= function(options) {
	var $me = $(this),me=this;
	this.sets = {width:100,top:50,left:0,arrow:"left",backcolor:"#fff",cssName:"ws_a",img:"png",close:true,isShow:false};
	if(options) {$.extend(me.sets, options)};
	var html = '<div class="'+ me.sets.cssName +' relative">';
	if(me.sets.title){html += '<h5>'+ me.sets.title +'</h5>';}
	html += '<div class="absolute '+ me.sets.cssName +'_arrow"></div><div class="clear"></div>';
	html += '<div class="' + me.sets.cssName + '_t_l"></div><div class="w_c h_t ' + me.sets.cssName + '_t_c"></div><div class="' + me.sets.cssName +'_t_r"></div>';
	html += '<div class="' + me.sets.cssName +'_c_l"><div class="' + me.sets.cssName +'_c_r"><div class="w_c h_c w_w"></div></div></div>';
	html += '<div class="' + me.sets.cssName +'_b_l"></div><div class="w_c h_b ' + me.sets.cssName +'_b_c"></div><div class="' + me.sets.cssName +'_b_r"></div>';
	html += '</div>';
	var obj = $(me)[0];
	var et = obj.offsetTop;
	var el = obj.offsetLeft;
	//var arrow_l = $(".contest_details").parent().offset().left/100;
	var arrow_l = $(".contest_details").parent().width()-32;
	var arrow_t = 35;
	var _win=createElem("DIV",{className:"absolute z9999 wintextcon_win hide"});
	$(_win).html(html).css({left:arrow_l,top:arrow_t,width:me.sets.width+30});
	$(_win).find("."+me.sets.cssName).css({width:me.sets.width+30,left:16});
	$(_win).find(".w_c").css({width:me.sets.width}).end()
	.find("."+me.sets.cssName +"_c_l").css({width:me.sets.width+15}).end()
	.find("."+me.sets.cssName +"_c_r").css({width:me.sets.width}).end()
	.find(".w_w").css({background:me.sets.backcolor}).html(me.sets.html);
	$(_win).find(".close").click(function(){me.close();});
	$(_win).mouseout(function(){me.sets.isShow = true;}).mouseover(function(){me.sets.isShow = false;});
	$me.mouseout(function(){me.sets.isShow = true;}).mouseover(function(){me.sets.isShow = false;});
	$(".wintextcon_win").remove();
	$("#mar").prepend(_win);
	$(_win).css({left:arrow_l,top:arrow_t});
	$(_win).show();
	window.setTimeout(function(){me.sets.isShow = true;},1000);
	this.close = function(){
		if(me.sets.isShow){
			$(_win).remove();
			hide_select(1,0);
			me.sets.isShow = false;
			$(document.body).unbind("click");
		}
	}
	$(document.body).click(function(){me.close();});
}
//autocomplete begin   @author: ch
//////////////////////////////////////////////////////////////////
jQuery.fn.autocomplete = function(options) {
	var defaults = {
		inputClass : "ac_input",
		resultsClass : "ac_results",
		overClass : "ac_over",
		bottomClass : "search-bot",
		lineSeparator : ";",
		cellSeparator : "|",
		minChars : 1,
		delay : 50,
		matchCase : 0,
		cacheLength : 10,
		maxItemsToShow : 10,
		extraParams : {}
	};
	var options = $.extend(defaults, options);

	this.each(function() {
		options.url = $(this).attr("qs_url"),
		options.extraParams = {lang:$(this).attr("lang")}
		
		// Create jQuery object for input element
		input = this;
		var $input = $(input);
		// Create results
		var results = document.createElement("div");
		// Create jQuery object for results
		var $results = $(results);
		$results.css("z-index","11000");
		$results.hide().addClass(options.resultsClass).css("position", "absolute");
		$results.css("width", $input.parents('form').parent().width());
		
		// Add to body element
		$("body").prepend(results);

		var timeout = null;
		var prev = "";
		var active = -1;
		var cache = {};
		var keyb = false;
		var hasFocus = false;
		var lastKeyPressCode = null;
		// latest seq num
		var seq_num = 0;
		// if the last request has been received
		var last_received = false;

		// flush cache
		function flushCache(){
			cache = {};
			cache.data = {};
			cache.length = 0;
		};

		// flush cache
		flushCache();
		
		$input
		.keyup(function(e) {
			hasFocus = true;
			lastKeyPressCode = e.keyCode;
			if(lastKeyPressCode < 37 || lastKeyPressCode > 40) {
				active = -1;
				if (timeout) clearTimeout(timeout);
				timeout = setTimeout(function(){onChange();}, options.delay);
			}
		})
		.keydown(function(e) {
			// track last key pressed
			hasFocus = true;
			lastKeyPressCode = e.keyCode;
			switch(e.keyCode) {
				case 38: // up
					e.preventDefault();
					if ($results.is(":visible")) moveSelect(-1) ;
					break;
				case 40: // down
					e.preventDefault();
					if ($results.is(":visible")) moveSelect(1);
					break;
				default:
					break;
			}
		})
		.focus(function(){
			// track whether the field has focus, we shouldn't process any results if the field no longer has focus
			hasFocus = true;
		})
		.blur(function() {
			// track whether the field has focus
			hasFocus = false;
			hideResults();
		});

		function onChange() {
			if((lastKeyPressCode >= 33 && lastKeyPressCode <= 45) 
				|| lastKeyPressCode == 144 || lastKeyPressCode == 145 || lastKeyPressCode == 9
				|| (lastKeyPressCode >= 112 && lastKeyPressCode <= 135)) 
				return;
			if(lastKeyPressCode == 27) return hideResultsNow();
			var v = $input.val();
			if(v == prev) {
				// ignore if the following keys are pressed: [del] [shift] [capslock]
				if( lastKeyPressCode != 46 && (lastKeyPressCode <= 8 || lastKeyPressCode >= 32) )
					showResults();
				return;
			}
			prev = v;
			if (v.length >= options.minChars) {
				requestData(++seq_num, v, last_received = false);
			} else {
				$results.hide();
			}
		};

		function moveSelect(step) {
			var lis = $("li", results);
			if (!lis || lis.length == 0) return;

			active += step;

			if (active < 0) {
				active = lis.size() - 1;
			} else if (active >= lis.size()) {
				active = 0;
			}

			lis.removeClass(options.overClass);

			$(lis[active]).addClass(options.overClass);
			$input.val(lis[active].selectValue)
		};

		function selectItem(li) {
			var v = $.trim(li.selectValue ? li.selectValue : li.innerHTML);
			prev = v;
			$input.val(v);
			hideResultsNow();
			$input.parents('form')[0].submit();
		};

		function showResults() {
			if(!$input.val()) return;
			// reposition
			$results.css({
				top: ($input.offset().top + $input.outerHeight()) + "px",
				left: $input.parents('form').offset().left + "px"
			}).show();
		};

		function hideResults() {
			if (timeout) clearTimeout(timeout);
			timeout = setTimeout(hideResultsNow, 200);
		};

		function hideResultsNow() {
			if (timeout) clearTimeout(timeout);
			if ($results.is(":visible")) {
				$results.hide();
			}
		};

		function receiveData(q, data, seqNum) {
			if (seqNum == seq_num || (seqNum<seq_num && !last_received)) {
				if (seqNum == seq_num)
					last_received = true;
				if (data) {
					results.innerHTML = "";

					// if the field no longer has focus or if there are no matches, do not display the drop down
					if( !hasFocus || data.length == 0 ) return hideResultsNow();

					if ($.browser.msie) {
						// we put a styled iframe behind the calendar so HTML SELECT elements don't show through
						var iFrame = document.createElement('iframe');
						iFrame.setAttribute("src", "about:blank");
						iFrame.style.width = $results.css("width");
						iFrame.style.height = $results.css("height");
						$results.append(iFrame);
					}
					results.appendChild(dataToDom(q, data));
					
					var div  = document.createElement("div");
					div.className = options.bottomClass;
					results.appendChild(div);
					
					showResults();
				} else {
					results.innerHTML = "";
					hideResultsNow();
				}
			}
		};

		function parseData(data) {
			if (!data) return null;
			var parsed = [];
			var rows = data.split(options.lineSeparator);
			for (var i=0; i < rows.length; i++) {
				var row = $.trim(rows[i]);
				if (row) {
					parsed[parsed.length] = row.split(options.cellSeparator);
				}
			}
			return parsed;
		};

		function dataToDom(q, data) {
			var ul = document.createElement("ul");
			var num = data.length;
			// limited results to a max number
			if( (options.maxItemsToShow > 0) && (options.maxItemsToShow < num) ) num = options.maxItemsToShow;

			for (var i=0; i < num; i++) {
				var row = data[i];
				if (!row) continue;
				var li = document.createElement("li");
				li.innerHTML = '<span class="b">' + q + '</span>' + row[0].substring(q.length);
				li.selectValue = row[0];
				ul.appendChild(li);

				$(li).hover(
					function() { $("li", ul).removeClass(options.overClass); $(this).addClass(options.overClass); active = $("li", ul).index(this); },
					function() { $(this).removeClass(options.overClass); }
				).click(function(e) { selectItem(this); e.preventDefault(); e.stopPropagation(); });
			}
			
			return ul;
		};
		
		function requestData(seqNum, q) {
			var data = options.cacheLength ? cache.data[q] : null;
			// recieve the cached data
			if (data) {
				receiveData(q, data, seqNum);
			// if an AJAX url has been supplied, try loading the data now
			} else if( (typeof options.url == "string") && (options.url.length > 0) ) {
				$.getJSON(makeUrl(q), function(data) {
					data = parseData(data);
					addToCache(q, data);
					receiveData(q, data, seqNum);
				});
			}
		};

		function makeUrl(q) {
			var ql = (options.matchCase) ? q : q.toLowerCase();
			var url = options.url + "?callback=?&q=" + encodeURIComponent(ql);
			for (var i in options.extraParams) {
				url += "&" + i + "=" + encodeURIComponent(options.extraParams[i]);
			}
			return url;
		};

		function addToCache(q, data) {
			if (!data || !q || !options.cacheLength) return;
			if (!cache.length || cache.length > options.cacheLength) {
				flushCache();
				cache.length++;
			} else if (!cache.data[q]) {
				cache.length++;
			}
			cache.data[q] = data;
		};
	});
}
//////////////////////////////////////////////////////////////////////
//autocomplete end

jQuery.fn.countDown = function(){
	var el = jQuery(this);
	if(!el.attr('endtime')) 
		return;
	
	var startTime;
	try {
		startTime = new Date(setHs);
	}catch (e) {
		startTime = new Date();
	}
      
	var timer;
	var now = (new Date(el.attr('endtime')) - startTime);            
	var displayDay, displayHour, displayMin, displaySec;
	var l_d = 2, l_h = 2, l_m = 2, l_s = 2;            
	el.find('td').each(function(){
		var td = jQuery(this);
		if (td.hasClass('d')) {
			displayDay = td;
			l_d = td.html().length;
		}
		if (td.hasClass('h')) {
			displayHour = td;
			l_h = td.html().length;
		}
		if (td.hasClass('m')) {
			displayMin = td;
			l_m = td.html().length;
		}
		if (td.hasClass('s')) {
			displaySec = td;
			l_s = td.html().length;
		}
	})

	if (now <= 0) {
		return;
	}
	var tick = function(){
		now -= 1000;                
		if (now.valueOf() < 0) {
			window.clearInterval(timer);
			return;
		};
		//update the values
		var seconds = now.valueOf() / 1000;
		var day = (Math.floor(seconds / 86400)) % 86400;
		var hrs = (Math.floor(seconds / 3600)) % 24;
		var min = (Math.floor(seconds / 60)) % 60;
		var sec = (Math.floor(seconds / 1)) % 60;
          
		if (l_d == 2) 
			day = (day + "").length < 2 ? "0" + day : day;
		if (l_h == 2) 
			hrs = (hrs + "").length < 2 ? "0" + hrs : hrs;
		if (l_m == 2) 
			min = (min + "").length < 2 ? "0" + min : min;
		if (l_s == 2) 
			sec = (sec + "").length < 2 ? "0" + sec : sec;
          
		if (displayDay) 
			displayDay.html(day);
		if (displayHour) 
			displayHour.html(hrs);
		if (displayMin) 
			displayMin.html(min);
		if (displaySec) 
			displaySec.html(sec);
          
          
		if (parseInt(day) > 1) {
			el.find('.day_2').show();
		}else{
			el.find('.day_2').hide();
			el.find('.day_1').show();
		}
	}
	tick();
	timer = window.setInterval(tick, 1000);
	el.parent().show();
};
jQuery.fn.tooltip = function(){
	return this.each(function(){
		if(!jQuery(this).attr('tooltip'))
			return;
		
		if($('#tooltip').size()<1){
			$('<div id="tooltip"><div id="tooltip_con"></div><div class="tooltip-bottom"></div><div>').prependTo("body"); 
		}
			
		jQuery(this).hover(
			function(){
				jQuery('#tooltip_con').html(jQuery(this).attr('tooltip'));
				var offset = jQuery(this).offset();
				var el = jQuery(this);
				var tooltip = jQuery('#tooltip');
	
				var offleft = offset.left - (jQuery(window).width()-952)/2;
				if((offleft+el.width())>693){
					tooltip.css('left',(offset.left+el.width())-259);
					tooltip.children(".tooltip-con").css({'background-position':'-819px -131px'});
				}else{ 
					tooltip.css('left',offset.left-10);
				}
				tooltip.css('top',offset.top+el.height()).show();
			},
			function(){
				jQuery('#tooltip').hide();
			}
		)
	})
};
jQuery.fn.slide = function(settings){
	return this.each(function(){
	    jQuery.extend(this, {defertime:7000, btnopacity:0.9, showbutton: true,fadingtime: 800,slides:3}, settings);
	    var _c = this, index = 0, timer,slides = slides?slides:_c.slides;
	   
	    jQuery(_c).hover(function(){
	        clearInterval(timer);
	    },function(){
	        timer = setInterval(function(){sliding(++index%slides)}, _c.defertime);
	    }).trigger("mouseleave");
	
	    function sliding(n){
	        jQuery(_c).find("img").stop().animate({opacity:0},_c.fadingtime).css('z-index','').end().find("img").eq(n).stop().css('z-index',slides).animate({opacity:1},_c.fadingtime);
	        jQuery(_c).find("li").css({'color':'#B3B3B3','background':'#fff','font-weight':'normal'}).eq(n).css({'color':'#fff','background':'#c5c5c3','font-weight':'bold'});
	    }
	    var btnstr = '<ul style="position:absolute;z-index:'+(slides+1)+';right:3px;bottom:3px;">';   
	    for(var i=0; i<slides; i++){
	        btnstr += '<li style="float:left;color:#B3B3B3;text-align:center;line-height:18px;width:28px;height:18px;font-size:12px;cursor:pointer;overflow: hidden;margin:0px 1px;border:1px solid #F3F3F3;background:#fff;">'+(i+1)+'</li>';
	    }   
	    btnstr += '</ul>';
	    if(_c.showbutton)
	        jQuery(_c).append(btnstr);
	   
	    jQuery(_c).find("img").css({'opacity':0,'position':'absolute','top':'0','left':'0'}).eq(0).css({'z-index':1,'opacity':1});
	    jQuery(_c).find("li").hover(function(){
	        jQuery(this).css({'color':'#fff','background':'#c5c5c3','font-weight':'bold'});
	    },function(){
	        if(jQuery(_c).find("li").index(this)!==index)jQuery(_c).find("li").eq(jQuery(_c).find("li").index(this)).css({'color':'#B3B3B3','background':'#fff','font-weight':'normal'});
	    }).click(function(){index = jQuery(_c).find("li").index(this);sliding(index);jQuery(this).css({'color':'#fff','background':'#c5c5c3','font-weight':'bold'})}).fadeTo("fast", _c.btnopacity).eq(0).css({'color':'#fff','background':'#c5c5c3','font-weight':'bold'});   
	})
};


jQuery.fn.slideDfp=function(){return this.each(function(){var mc=$(this).children('div').removeClass();var slides=mc.size(),index=0,timer;if(slides<1)return;$(mc).find("img").css('position','absolute');$(mc).find("img").eq(0).css('z-index',slides);function sliding(n){$(mc).find("img").stop().animate({opacity:0},800).css('z-index','').end().find("img").eq(n).stop().css('z-index',slides).animate({opacity:1},800);$(mc).parent().children('img.dfp_dot').css('opacity',0.5).eq(n).css('opacity',1)}$(this).hover(function(){clearInterval(timer)},function(){timer=setInterval(function(){sliding(++index%slides)},4000)}).trigger("mouseleave");if($(this).attr('class')!=='slide_dfp_l'){$(this).append('');$(this).children('img').css({position:'absolute','z-index':1000,top:($(this).height()||parseInt($(this).css('height')))/2-10}).bind('click',function(event){($(event.target).attr('title')==['page_nav_text'][1])?index--:index++;index=(index+slides)%slides;sliding(index)})}else{$(this).append('');for(var i=0;i<slides;i++){$(this).append('<img class="dfp_dot" title="'+(i+1)+'" style="right:'+(10+14*(slides-i))+'px;" src="'+'dfp/dot.jpg" />')}$(this).children('img').css({position:'absolute',cursor:'pointer',bottom:'7px','z-index':1000}).bind('click',function(event){if($(event.target).attr('title')==['page_nav_text'][1]){index--}else if($(event.target).attr('title')==['page_nav_text'][2]){index++}else{index=parseInt($(event.target).attr('title'))-1}index=(index+slides)%slides;sliding(index)});$(this).children('img.dfp_dot').css('opacity',0.5).eq(index).css('opacity',1)}})};

jQuery.fn.coupletDfp=function(){
	jQuery.extend({
		easing: {
			backout: function(x, t, b, c, d) {
				var s=1.01158;
				return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
			},
			linear: function(x, t, b, c, d) {
				return c*t/d + b; //linear
			}
		}
	});
	
	return this.each(function(){
		var el = this,
		closed = false,
		t,t2,
		mc = $(el).children('div'),
		minwidth = $(el).width(),
		space = 1,
		offtop = 49,
		isLeft = $(el).attr('class')==='dfp-couplet-left',
		scrollable = $(el).attr('scroll')==='true',
		maxwidth = Number(mc.css('width').replace('px', '')),
		w = $('#main').width(),
		h = $('#main').height();
		mc.css('width', minwidth),
		pos = $('#main').offset();
		$(el).show().css('top',h+pos.top+offtop);
		
		function toggleShow() {
			if (closed) return;
			($(window).width() <= (2*(space+$(el).width()))+w) ? $(el).hide() : $(el).show();
		}
		function scroll() {
			if (closed) return;
			clearTimeout(t2);t2 = setTimeout(function(){$(el).stop(true).animate({top : $(window).scrollTop() + h + pos.top + offtop}, 1200, 'backout');}, 175);
		}
		toggleShow();
		$(window).bind('resize',toggleShow);
		if (scrollable) {
			scroll();
			$(window).bind('scroll', scroll);
		}
		
		mc.hover(
			function(){
				clearTimeout(t);t=setTimeout(function(){mc.animate({width:maxwidth},'slow')},150);				
			},
			function(){
				clearTimeout(t);t=setTimeout(function(){mc.animate({width:minwidth},'slow')},1000);
			}
		);
		$(el).append('<img src="'+staticPath+'dfp/close.jpg" style="display:block; position:absolute; z-index:100000; bottom:-25px;" />');
		if (!isLeft) $(el).children('div').children('img').css('right', 0);
		$(el).children('img').bind('click',function(){$(el).hide(); closed=true;});
	})
};

$(function(){
	//active count down
    $(".dfp-couplet-left").coupletDfp();
	$(".dfp-couplet-right").coupletDfp();
});

//tool for flash
;(function(){var $$;$$=jQuery.fn.flash=function(htmlOptions,pluginOptions,replace,update){var block=replace||$$.replace;pluginOptions=$$.copy($$.pluginOptions,pluginOptions);if(!$$.hasFlash(pluginOptions.version)){if(pluginOptions.expressInstall&&$$.hasFlash(6,0,65)){var expressInstallOptions={flashvars:{MMredirectURL:location,MMplayerType:'PlugIn',MMdoctitle:jQuery('title').text()}}}else if(pluginOptions.update){block=update||$$.update}else{return this}}htmlOptions=$$.copy($$.htmlOptions,expressInstallOptions,htmlOptions);return this.each(function(){block.call(this,$$.copy(htmlOptions))})};$$.copy=function(){var options={},flashvars={};for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(arg==undefined)continue;jQuery.extend(options,arg);if(arg.flashvars==undefined)continue;jQuery.extend(flashvars,arg.flashvars)}options.flashvars=flashvars;return options};$$.hasFlash=function(){if(/hasFlash\=true/.test(location))return true;if(/hasFlash\=false/.test(location))return false;var pv=$$.hasFlash.playerVersion().match(/\d+/g);var rv=String([arguments[0],arguments[1],arguments[2]]).match(/\d+/g)||String($$.pluginOptions.version).match(/\d+/g);for(var i=0;i<3;i++){pv[i]=parseInt(pv[i]||0);rv[i]=parseInt(rv[i]||0);if(pv[i]<rv[i])return false;if(pv[i]>rv[i])return true}return true};$$.hasFlash.playerVersion=function(){try{try{var axo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');try{axo.AllowScriptAccess='always'}catch(e){return'6,0,0'}}catch(e){}return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g,',').match(/^,?(.+),?$/)[1]}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){return(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}}catch(e){}}return'0,0,0'};$$.htmlOptions={height:26,flashvars:{},wmode:'opaque',pluginspage:'http://www.adobe.com/go/getflashplayer',src:'includes/templates/dev_v2/flash/CountDown.swf',type:'application/x-shockwave-flash',width:257};$$.pluginOptions={expressInstall:false,update:true,version:'9.0'};$$.replace=function(htmlOptions){this.innerHTML='<div class="alt">'+this.innerHTML+'</div>';jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions))};$$.update=function(htmlOptions){var url=String(location).split('?');url.splice(1,0,'?hasFlash=true&');url=url.join('');var msg='<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';this.innerHTML='<span class="alt">'+this.innerHTML+'</span>';jQuery(this).addClass('flash-update').prepend(msg)};function toAttributeString(){var s='';for(var key in this)if(typeof this[key]!='function')s+=key+'="'+this[key]+'" ';return s};function toFlashvarsString(){var s='';for(var key in this)if(typeof this[key]!='function')s+=key+'='+encodeURIComponent(this[key])+'&';return s.replace(/&$/,'')};$$.transform=function(htmlOptions){htmlOptions.toString=toAttributeString;if(htmlOptions.flashvars)htmlOptions.flashvars.toString=toFlashvarsString;return'<embed '+String(htmlOptions)+'/>'};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}})();

(function($) {
	$.fn.PageBar = function(options, cbGotoPage) {
		var sets = {barType:'simple', curPage:1, pageSize:10};
		if(options) {$.extend(sets, options);};
	
		var _page = lang_txt['page_nav_text'][0];
		var _prev = lang_txt['page_nav_text'][1];
		var _next = lang_txt['page_nav_text'][2];
		var _of = lang_txt['page_nav_text'][3];
	
		var $self = $(this);
		var pageCount = parseInt((sets.totalCount-1) / sets.pageSize + 1);
		
		if (pageCount <= 1)
			return;
		
		curPage = sets.curPage;
		if (curPage < 1) curPage = 1;
		if (pageCount < curPage) curPage = pageCount;
	
		switch (sets.barType)
		{
		case 'simple':
			showSimpleNav($(this));
			break;
		case 'all':
			showAllNav();
			break;
		}
		
		function showSimpleNav()
		{
			$self.html('<ul class="fr"><li></li></ul>');
			if (curPage > 1)
			{
				var $prev = $('<a><span class="btn prev_page">&nbsp;</span></a>');
				$prev.bind('click', function() {cbGotoPage(curPage - 1)});
				$self.find('li').append($prev);
			}
			$self.find('li').append(_page + '<span>' + curPage + '</span>' + _of + '<span>' + pageCount + '</span>');
			if (curPage < pageCount)
			{
				var $next = $('<a><span class="btn next_page">' + _next + '&nbsp;&nbsp;</span></a>');
				$next.bind('click', function() {cbGotoPage(curPage + 1)});
				$self.find('li').append($next);
			}
		}
		
		function showAllNav()
		{
			$self.html('');
			if (pageCount <= 10)
			{
				for (var p = 1; p <= pageCount; p++)
					showPageBtn(p);
			}
			else
			{
				if (curPage > 1)
				{
					showPrevPageBtn();
					$self.append('<span>|</span>');
				}
				if (curPage < 5)
				{
					for (var p = 1; p <= curPage; p++)
						showPageBtn(p);
				}
				else
				{
					showPageBtn(1);
					$self.append('<span>...</span>');
					showPageBtn(curPage - 2);
					showPageBtn(curPage - 1);
					showPageBtn(curPage);
				}
				if (curPage + 3 >= pageCount)
				{
					for (var p = curPage+1; p<=pageCount; p++)
						showPageBtn(p);
				}
				else
				{
					var end = curPage < 3 ? 5 : curPage+2;
					for (var p = curPage + 1; p<=end; p++)
						  showPageBtn(p);
					$self.append('<span>...</span>');
					showPageBtn(pageCount);
				}
				if (curPage < pageCount) {
					$self.append('<span>|</span>');
					showNextPageBtn();
				}
			}
		}
		
		function showPageBtn(p)
		{
			if (curPage == p)
				$self.append('<span>' + p + '</span>');
			else {
				$page = $('<a><span class="btn">'+ p +'</span></a>');
				$page.bind('click', function() {cbGotoPage(p)});
				$self.append($page);
			}
		}

		function showPrevPageBtn()
		{
			$prev = $('<a><span class="btn prev_page">&nbsp;&nbsp;'+ _prev +'</span></a>');
			$prev.bind('click', function() {cbGotoPage(curPage - 1)});
			$self.append($prev);
		}

		function showNextPageBtn()
		{
			$next = $('<a><span class="btn next_page">'+ _next +'&nbsp;&nbsp;</span></a>');
			$next.bind('click', function() {cbGotoPage(curPage + 1)});
			$self.append($next);
		}
	}
})(jQuery);

var scrolltotop={
	setting: {startline:100, scrollto:0, offsetx:50, offsety:50, scrollduration:500, fadeduration:[500, 500]},

	state: {isvisible:false, shouldvisible:false},

	scrollup:function(){
		var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto);
		if (typeof dest=="string" && $('#'+dest).length==1)
			dest=$('#'+dest).offset().top;
		else
			dest=this.setting.scrollto;
		this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
	},

	keepfixed:function(){
		var $window=$(window);
		var controly = $window.scrollTop() + $window.height() - this.$control.height() - this.setting.offsety;
		this.$control.css({left:this.setting.offsetx+'px', top:controly+'px'});
	},

	fixpos:function(){
		this.$control.css({left:this.setting.offsetx+'px', bottom:this.setting.offsety});
	},

	togglecontrol:function(e){
		var scrolltop=$(window).scrollTop();
		if (e!=null && e.type=='resize')
			if (this.resized)
				this.setting.offsetx = this.resized();
		if (!this.cssfixedsupport)
			this.keepfixed();
		if (this.cssfixedsupport && e!=null && e.type=='resize')
			this.fixpos();
		this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false;
		if (this.state.shouldvisible && !this.state.isvisible){
			this.$control.stop().css('opacity', 1).fadeIn(this.setting.fadeduration[0]);
			this.state.isvisible=true;
		}
		else if (this.state.shouldvisible==false && this.state.isvisible){
			this.$control.stop().fadeOut(this.setting.fadeduration[1]);
			this.state.isvisible=false;
		}
	},
	
	init:function(sets){
		this.setting = $.extend(this.setting, sets);
		$(document).ready(function($){
			var mainobj=scrolltotop;
			var iebrws=document.all;
			mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest; //not IE or IE7+ browsers in standards mode
			mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body');
			mainobj.$control=$('<div id="topcontrol"><img src="'+mainobj.setting.img_path+'" /></div>')
				.css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', left:mainobj.setting.offsetx, bottom:mainobj.setting.offsety, cursor:'pointer'})
				.hide()
				.attr({title:mainobj.setting.control_title})
				.click(function(){mainobj.scrollup(); return false;})
				.appendTo('body');
			if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text
				mainobj.$control.css({width:mainobj.$control.width()}); //IE6- seems to require an explicit width on a DIV containing text
			mainobj.togglecontrol(null);
			mainobj.$control.click(function(){
				mainobj.scrollup();
				return false;
			});
			$(window).bind('scroll resize', function(e){
				mainobj.togglecontrol(e);
			});
		});
	}
};


