﻿(function($) {
  $.fn.Marquee = function(o) {
    o = $.extend({
    speed:30,
    step:1,//滚动步长
    direction:"up",//滚动方向
    visible:1//可见元素数量
    }, o || {});
    //获取滚动内容内各元素相关信息
    var i=0;
    var div=$(this);
    var ul=$("ul",div);
    var tli=$("li",ul);
    var liSize=tli.size();
    if(o.direction=="left")
        tli.css("float","left");
    var liWidth=tli.innerWidth();
    var liHeight=tli.height();
    var ulHeight=liHeight*liSize;
    var ulWidth=liWidth*liSize;
  
    if(liSize>o.visible){
        ul.append(tli.slice(0,o.visible).clone())  //复制前o.visible个li，并添加到ul的最后
        li=$("li",ul);
        liSize=li.size();
        
        div.css({"position":"relative",overflow:"hidden"});
        ul.css({"position":"relative",margin:"0",padding:"0","list-style":"none"});
        li.css({margin:"0",padding:"0","position":"relative"});
        
        switch(o.direction){
            case "left":
                div.css("width",(liWidth*o.visible)+"px");
                ul.css("width",(liWidth*liSize)+"px");
                li.css("float","left");
                break;
            case "up":
                div.css({"height":(liHeight*o.visible)+"px"});
                ul.css("height",(liHeight*liSize)+"px");
                break;
        }
        
       
        var MyMar=setInterval(ylMarquee,o.speed);
        ul.hover(
            function(){clearInterval(MyMar);},
            function(){MyMar=setInterval(ylMarquee,o.speed);}
        );
    };
    function ylMarquee(){
         
        if(o.direction=="left"){
            if(div.scrollLeft()>=ulWidth){
                div.scrollLeft(0);
            }
            else
            {
                var leftNum=div.scrollLeft();
                leftNum+=parseInt(o.step);
                div.scrollLeft(leftNum)
            }
        }
        
        if(o.direction=="up"){
            if(div.scrollTop()>=ulHeight){
               div.scrollTop(0);
                
            }
            else{
               var topNum=div.scrollTop();
               topNum+=parseInt(o.step);
               div.scrollTop(topNum);
            }
        }
        
    };
   
 }; 
	$.msgbox = function(o) {
		if(typeof(o) == 'string'){ o = { content:o } };
		var options = {
		width 			:  300,  
		height 			:  0,
		closeAfter 		:  0,
		title 			:  '提示', 
		type 			:  'text',
		autoCloseMsg    :  '{0} 秒后关闭 ...',
		
		CssClass        :  'msgbox_wrapper',
		bgClass 		:  'msgbox_bg',
		titleClass 		:  'msgbox_title',
		titleWrapperClass : 'msgbox_title_wrapper',
		mainClass 		:  'msgbox_main',
		
		content 		:  'Hello, world!',
		closeEvent 		:  function(){},
		closeImg		:  BoHan.WebDir+'images/close.gif',
		bgOpacity		:  0.6,   			// from 0 to 1
		afterAjaxEvent	:  function(){},
		oneBoxMode		: false,
		hideScrollBar	: false,
		needtitle       : true,
		showOpacity     : true,	
		
		buttonwrapperClass: 'button_wrapper',
		button		    : [],
		buttonClass		:  'msgbox_button',
		PostData        : ''
		};
		if(o) {
			 $.extend(options, o);
		};
		
		var dragFlag = false;
		var startX = 0;
		var startY = 0;
		this.returnValue = false;
		this.close=closeMe;
		this.contents=function()
		{
			if(options.type=='iframe')
				return $iframe[0].contentWindow.document.body;
			else
			    return $main[0];
		};
		this.page=function()
		{
			if(options.type=='iframe')
				return $iframe[0].contentWindow;
		};
		this.Reset=function(o)
		{
			if(o)
			  $.extend(options, o);
			msgbox();
		}
		var $iframe;
		var $background = $("<div>")
			.css({
				 'position'	: 'absolute',
				 'top'		: '0',
				 'left'		: '0',
				 'z-index'	: '9999'
			})
			.addClass(options.bgClass)
			.animate({opacity:options.bgOpacity})
			.click(function(){
				flashTitle(0.5, 4, 80);
			})
			.mouseup(dragEnd);
		
		var $wrapper = $("<div>")
			.css({
				'width' 	: options.width + 'px',
				'position' 	: 'absolute',
				'z-index'	: '10000',
				'top'		: '0',
				 'left'		: '0'
			})
			.addClass(options.CssClass)
			.mouseup(dragEnd);
		
		var $titleWrapper = $('<table width=100% cellspacing=0 cellpadding=0><tr><td></td><td><a href="javascript:;">关闭</a></td></tr></table>')
			.css({
			 'cursor' : 'move',
			 'vertical-align' : 'middle'
			})
			.addClass(options.titleWrapperClass)
			.mousedown(function(e){
				dragStart(e);					
			})
			.mousemove(function(e){
				if(dragFlag)
					dragTo(startX, startY, e);				
			})
			.mouseout(function(e){
				if(dragFlag)
					dragTo(startX, startY, e);			   
			})
			.mouseup(dragEnd);
		
		
		var $titleTd = $("td",$titleWrapper).eq(0)
			.html(options.title)
			.addClass(options.titleClass)
			.mouseup(dragEnd);
			
		var $closeA = $titleTd.next()
			.attr('align','right')
			.find("a")
			.mousedown(closeMe)
			.html("<img src="+ options.closeImg +" border=0 />");
						
		var $main = $("<div>")
			.addClass(options.mainClass)
			.mouseup(dragEnd);
		if(options.height>0)
		{
		  $main.height(options.height)
		}
			
			
        var $CloseTipDiv=$("<div>").addClass('closeTip').html(" ");
		var $buttonWrapper = $("<div>").addClass(options.buttonwrapperClass);
			
		function closeMe(){
			$('select').css('visibility','visible'); //4.2
			if(options.hideScrollBar)
				$('body').css('overflow','auto'); // show scroll bar if any
			$wrapper.fadeOut("slow",function(){$wrapper.remove()});
			$background.fadeOut("slow",function(){$background.remove()});
			options.closeEvent(this.returnValue);
		}
		
		
		function isVisible(){
			//return	$background.is(":visible") && $wrapper.is(":visible");
			return $wrapper.is(":visible");
		}
        
		
		
		function autoCloseMe(closeAfter){			
			if( closeAfter > 0 && isVisible() ){ // prevent manually closing
				$CloseTipDiv.html(options.autoCloseMsg.replace('{0}',closeAfter));		
				closeAfter --;
				if( closeAfter == 0 )
					closeMe();	
				setTimeout(function(){ autoCloseMe(closeAfter) }, 1000);	
			}		
		}
		
		function dragStart(e){			
			if(e.preventDefault)
				e.preventDefault(); 
			if(e.stopPropagation())
				e.stopPropagation();			
			dragFlag = true;
			var offset = $wrapper.offset();
			startX = e.pageX - offset.left;
			startY = e.pageY - offset.top;				
		}
		
		function dragTo(x, y, e){		
			if(e.preventDefault)
				e.preventDefault(); 
			if(e.stopPropagation())
				e.stopPropagation();			
			ensureMoveInScreen(e.pageX-x, e.pageY-y);
		}
		
		function ensureMoveInScreen(x,y){		
			var offset = $wrapper.offset();
			if( x < $(window).scrollLeft() ) boxMoveTo($(window).scrollLeft(), y);
			if( y < $(window).scrollTop() ) boxMoveTo(x, $(window).scrollTop());
			if( offset.left > $(window).scrollLeft() + $(window).width() - options.width ) 
				boxMoveTo($(window).scrollLeft() + $(window).width() - options.width, y);
			if( offset.top > $(window).scrollTop() + $(window).height() - options.height )
				boxMoveTo(x, $(window).scrollTop() + $(window).height() - options.height);
			if( x>=$(window).scrollLeft() && x<=$(window).scrollLeft() + $(window).width()-options.width &&
				y>=$(window).scrollTop() && y<=$(window).scrollTop() + $(window).height()-options.height)
				boxMoveTo(x,y);
		}
		
		function boxMoveTo(x,y){
			$wrapper.css({
				'top'  : y + 'px',
				'left' : x + 'px'
			});		
		}
		
		function dragEnd(){					
			var offset = $wrapper.offset();
			ensureMoveInScreen(offset.left, offset.top);	
			dragFlag = false;
		}
		
		function resetPosition() {
			$background.css({
				 'width'	: document.documentElement.scrollWidth + 'px',
				 'height'	: Math.max( document.documentElement.scrollHeight,
										$('body').outerHeight() ) + 'px'
			});
			$wrapper.css({
				'top'		: $(window).scrollTop() + ($(window).height() - $wrapper.outerHeight(true))/2 + 'px',
				'left'	 	: $(window).scrollLeft() + ($(window).width() - $wrapper.outerWidth(true))/2 + 'px'			 
			});	
		}
		
		function flashTitle(opacity, times, interval, flag){
			if( times > 0 ) {
				flag = !flag;
				op = flag ? opacity : 1;
				$titleWrapper.css('opacity',op);	
				setTimeout(function(){ flashTitle(opacity, times-1, interval, flag) }, interval);
			}
		}
		
		function msgbox(){
			$('select').css('visibility','hidden'); //4.2
			if(options.hideScrollBar)
				$('body').css('overflow','hidden');  //hide scroll bar if any
		   if(options.showOpacity){$background.appendTo('body')}
		   $wrapper.appendTo('body')
		   if(options.needtitle){$titleWrapper.appendTo($wrapper)}
		   $main.appendTo($wrapper)
			switch(options.type){
				case 'text':
					$main.html(options.content);
					break;
				case 'alert':
					$main.html(options.content);
					options.button=[['确定',function(){closeMe()}]]
					break;
				case 'confirm':
					$main.html(options.content);
					options.button=[
									['确定',function(){this.returnValue = true;closeMe()}],
									['取消',function(){this.returnValue = false;closeMe()}]
								   ]
					break;					
				case 'get':
				case 'ajax':
				case 'url':
				case 'post':
					$main.html("Loading ...").load(options.content,options.PostData,function(data){
							(options.afterAjaxEvent)(data);	
						}
					);
					break;
				case 'iframe':
					if(self!=top && options.oneBoxMode) {
						setTimeout(function(){window.location.href = options.content;},1);
					} else {
						 $iframe = $("<iframe frameborder=0 marginheight=0 marginwidth=0></iframe>")
							.attr({
								'width'			: '100%',
								'height'		: '100%',
								'scrolling' 	: 'auto',
								'src'			: options.content
							});
						$main.html($iframe);
						$iframe.load(function(){
						   try {
							  $iframe[0].contentWindow.close=closeMe;
							  //alert(this.page.document.body.innerHTML)
			               } catch(e) {}
					    })
						.find(document).mouseup(dragEnd);
					}
					break;
			}
		   
		   if(options.button.length>0)
			{
			  $buttonWrapper.html('');
			  $(options.button).each(function(){
				$('<input>')
				  .attr({type:"button",value:this[0]})
				  .addClass(options.buttonClass)
				  .click(this[1])
				  .appendTo($buttonWrapper);
			  });
			  $buttonWrapper.appendTo($wrapper);
			}
		   if(options.closeAfter > 0)
		   {
			   $CloseTipDiv.appendTo($wrapper);
			   autoCloseMe(options.closeAfter);
		   }
		}
		$(window)
			.load(resetPosition)
			.resize(resetPosition)
			.mouseup( dragEnd );
		msgbox();
		resetPosition();
		return this;
	};
  $.fn.floatTips=function(o){
     var options = {
	    top:0,
		position:'right',
		right:0,
		left:0
	 }
	 if(o){$.extend(options, o)};
	 $(this).css('position','absolute');
	 if(options.position=='left'){
	    $(this).css({'left':options.left+'px','right':'auto'});
	 }else{
	    $(this).css({'right':options.right+'px','left':'auto'});
	 }
     var $tips=$(this);
     var oldtop=options.top;
	 function moveTips() {
        var tt=50;
        var tipsTop=$tips.offset().top;
        pos=$(document).scrollTop();
        pos=pos-tipsTop+options.top;
        pos=tipsTop+pos/10;
        if (pos < options.top) pos = options.top;
        if (pos != oldtop) {
           $tips.css('top',pos+"px");
           tt=10;
        }
        oldtop = pos;
        setTimeout(moveTips,tt);
     }
	 moveTips();
	 return this;
   }
})(jQuery);
var GetObject=function(id){if(typeof(id)=='object'){return id}else{return document.getElementById(id)}}
var BoHan={
    WebDir:"/",
	User:{
		IsLogin:false,
		UserName:"",
		BuyCartCount:0,
		BuyCartMoney:0,
		UserMoney:0,
		UserPoints:0
    },
	AjaxLogin:function(LoginName,LoginPass,PassCode,Event){
		if(LoginName==""||LoginName=="undefined"){
			Event(false,"请输入用户名!");return;
	    };
		if(LoginPass==""||LoginPass=="undefined"){
			Event(false,"请输入密码!");return;
		};
		if(PassCode==""||PassCode=="undefined"){
			Event(false,"请输入验证!");return;
		};
		var pars={'action':'AjaxLogin','LoginName':LoginName,'LoginPass':LoginPass,'PassCode':PassCode};
		var ShowRequest=function(RequestData){
			 $.extend(RequestData.User, BoHan.User);
			 Event(RequestData.IsLogin,RequestData.Message);
		};
		$.ajax({ url:BoHan.WebDir+"UserLogin.asp",type:"POST",data:pars,dataType:"json",error:function(){ErrorMsg("数据提交失败!")},success:ShowRequest});
	},
	CheckReg:function(CheckMode,Namevalue){
			var parameter={};
			var returnVal=0;
			switch(CheckMode.toLowerCase()){
				case "checkname":parameter={action:"CheckReg",Mod:"CheckName",UserName:Namevalue};break;
				case "checkemail":parameter={action:"CheckReg",Mod:"CheckEmail",Email:Namevalue};break;
				case "checkcode":parameter={action:"CheckReg",Mod:"CheckCode",PasCode:Namevalue};break;
				default:Event(0);return 0;
		    };
		$.ajax({url:BoHan.WebDir+"UserLogin.asp",type:"POST",data:parameter,async: false,dataType :"json",success:function(RequestData){returnVal=RequestData.Status;}});
		return returnVal;
	},
	ChangeBuyCart:function(Action,Proindex,Countvalue){
		var parameter="";
		switch(Action.toLowerCase()){
		  case "setcount":
			  Proindex=parseInt(Proindex);
			  Countvalue=parseInt(Countvalue);
			  if(isNaN(Proindex)||isNaN(Countvalue)){return};
			  parameter={action:"ChangeBuyCount",index:Proindex,Count:Countvalue};
			  break;
		  case "del":
		      Proindex=parseInt(Proindex);
		      parameter={action:"del",index:Proindex};
			  break;
		  case "delall":
		     parameter={action:"delall"};
		     break;
		  default:return;
		 };
		 $.post(BoHan.WebDir+"BuyCart.asp",parameter,function(){location.reload()})
	},
	addFavorites:function(id,callBack){
		$.post(BoHan.WebDir+"User/UserSave.asp?action=tagadd",{'id':id,'PostMode':'ajax'},callBack)
	},
	ClearBrowse:function(callBack){
		$.post(BoHan.WebDir+"AjaxPost.asp",{ action: "clearbrowse"},callBack)
	},
	Subscribe:function(SubEmail){
		if(!IsValidEmail(SubEmail)){Alert("请输入正确的E-mail地址!");return false;};
		var ShowRequest=function(RequestData){
			if(RequestData.Status==1)
				SuccessMsg(RequestData.Message);
			else
			    ErrorMsg(RequestData.Message);
		};
	  $.post(BoHan.WebDir+"User/UserSave.asp",{action:"subscribe",email:SubEmail,PostMode:"ajax"},ShowRequest,'json')
	},
	ExitSubscribe:function(SubEmail){
		if(!IsValidEmail(SubEmail)){Alert("请输入正确的E-mail地址!");return false;};
		var ShowRequest=function(RequestData){
			if(RequestData.Status==1)
				SuccessMsg(RequestData.Message);
			else
			    ErrorMsg(RequestData.Message);
		};
		$.post(BoHan.WebDir+"User/UserSave.asp",{action:"exitsubscribe",email:SubEmail,PostMode:"ajax"},ShowRequest,'json')
	},
	OnlinePay:function(PayName,Paysubject,PayMoney,PayQuantity){
		window.open(BoHan.WebDir+"Pay/?action="+PayName+"&subject="+Paysubject+"&price="+PayMoney+"&quantity="+PayQuantity)
	},
	imgPlayer1:{
	  obj:"",
	  adArray:"",
	  width:300,
	  height:100,
	  toCss:function(){
		  var o = "#" + this.obj;
		  $(o).css("width",this.width+"px"); 
		  $(o).css("height",this.height+"px"); 
		  $(o +" .img").css("width",this.width+"px"); 
		  $(o +" .img").css("height",this.height+"px");
		  $(o +" .img img").css("width",this.width+"px"); 
		  $(o +" .img img").css("height",this.height+"px");
		  $(o +" .panel").css("width",this.width+"px"); 
	  },
	  Show:function(){
		  var o = "#" + this.obj;
		  var adArray=this.adArray;
		  this.toCss();
	      for(var i=1;i<=adArray.length-1;i++){
				var htmlImg;
				var htmlNum;
				var htmlTitle;
				htmlImg = "<li><a href='" + adArray[i][1] + "' title='" + adArray[i][2] + "' target='_blank'><img src='" + adArray[i][0] + "' /></a></li>";
				htmlNum = "<li><span class='numVal'>" + i + "</span></li>";
				htmlTitle = "<a href='" + adArray[i][1] + "' class='adtitle' target='_blank'>" + adArray[i][2] + "</a>";
				$(o + " .img").append(htmlImg);
				$(o + " .num").append(htmlNum);
				$(o).append(htmlTitle);
			};
			$(o + " .img li").hide();
			$(o + " .adtitle").hide();
			$(o + " .num li .numVal").mouseover(function(){
				$(o + " .adtitle").stop(false, true);
				$(o + " .num li").removeClass("over");
				$(this).parent().addClass("over");
				$(o + " .img li").fadeOut(1000).eq($(this).text() - 1).fadeIn(1000);
				$(o + " .adtitle").hide().eq($(this).text() - 1).fadeIn("slow");
			});
		   BoHan.showNumImg(o);
           var interval = setInterval('BoHan.showNumImg("'+o+'")', 6000);      
           $(o + " .num").bind("mouseenter",function(){clearInterval(interval);})    
           $(o + " .num").bind("mouseleave",function(){interval = setInterval('BoHan.showNumImg("'+o+'")', 6000);}) 
	    }
      },
	  showNumImg:function(adobj) {
	        if (adobj.substring(0,1) != "#") adobj = "#" + adobj;
		    var n = $(adobj).find(".num li.over .numVal").text();
	        if (n < 1 || n > $(adobj + " .num li").length - 1) n = 0;
	        $(adobj + " .num li").removeClass("over").eq(n).addClass("over");
	        $(adobj + " .img li").fadeOut(1000).eq(n).fadeIn(1000);
	        $(adobj + " .adtitle").hide().eq(n).fadeIn("slow");
      }
	  
}
var Alert=function(msg,callBack){
	var html='<table cellpadding="0" cellspacing="5" border="0" width="100%">'
              +'<tr>'
              +' <td width="50"><img src="'+BoHan.WebDir+'Images/Msg/Info.gif"></td>'
              +' <td width="250">'+msg+'</td>'
              +'</tr>'
              +'</table>'
	return $.msgbox({type:'alert',content:html,showOpacity:false,closeEvent:callBack})
}
var ErrorMsg=function(msg,callBack,time){
	var html='<table cellpadding="0" cellspacing="5" border="0" width="100%">'
              +'<tr>'
              +' <td width="50"><img src="'+BoHan.WebDir+'Images/Msg/err.gif"></td>'
              +' <td width="250"><b>操作失败，可能是以下错误产生的：</b><br>'+msg+'</td>'
              +'</tr>'
              +'</table>'
	return $.msgbox({type:'alert',title:'错误',closeAfter:time?time:0,content:html,closeEvent:callBack});
}
var SuccessMsg=function(msg,callBack,time){
	var html='<table cellpadding="0" cellspacing="5" border="0" width="100%">'
              +'<tr>'
              +' <td width="50"><img src="'+BoHan.WebDir+'Images/Msg/right.gif"></td>'
              +' <td width="250">'+msg+'</td>'
              +'</tr>'
              +'</table>'
	return $.msgbox({type:'alert',title:'successful!',closeAfter:time?time:0,content:html,showOpacity:false,closeEvent:callBack});
}
var winOpen=function(url,tt,w,h,tp){
	var width=w?w:300;
	var height=h?h:150;
	var type=tp?tp:'ajax';
	var title=tt?tt:'新窗口';
	return $.msgbox({width:width,height:height,type:type,title:title,content:url});
};
function IsDigit(){
	return ((event.keyCode >= 48) && (event.keyCode <= 57));
}
function IsValidEmail(str){
	return str.match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/)
}
function chkInputInt()
{
	var srcElem = event.srcElement;
	var a = srcElem.value;
	var i = event.keyCode;
	if ((i == 8) || (i == 9) || (i == 13) || (i == 35) || (i == 36) || (i == 37) || (i == 39)
		|| ((i >= 48) && (i <= 57)) || ((i >= 96) && (i <= 105)) || (i == 110) || (i == 144)
		|| (i == 190) || (i == 46))
	{
		if (i == 190)
			if (srcElem.value.indexOf(".") >= 0)
			{
				event.returnValue = false;
				event.cancelBubble = true;
			}
	}
	else
	{
		event.returnValue = false;
		event.cancelBubble = true;
	}
}
function DrawImage(ImgD,d,k){ 
 var flag=false;
 var image=new Image(); 
 image.src=ImgD.src; 
 if(image.width>0 && image.height>0){ 
  flag=true; 
  if(image.width/image.height>=d/k){ 
   if(image.width>d){
    ImgD.width=d; 
    ImgD.height=(image.height*d)/image.width; 
   }else{ 
    ImgD.width=image.width;
    ImgD.height=image.height; 
   } 
  } 
  else{ 
   if(image.height>k){
    ImgD.height=k; 
    ImgD.width=(image.width*k)/image.height; 
   }else{ 
    ImgD.width=image.width;
    ImgD.height=image.height; 
   } 
  } 
 }
}
function GetStrLength(st){
	sl1=st.length;
	strLen=0;
	for(i=0;i<sl1;i++){
		if(st.charCodeAt(i)>255) strLen+=2;
	 else strLen++;
	}
	return strLen;
}
