/**
 * @deprecated 重写搜索表单Action 提交 
 * @param fname 表单名称
 * @param url 处理表单请求的URL
 */
function processSearchForm(fname,ff){
   var queryStr = $('#'+fname).serialize(); 
   var str = decodeURI(queryStr);
   if(str.indexOf("请输入关键词") >= 0){
	   queryStr = str.replace("请输入关键词", "");
   } 
   var patrn=/^(\w|[\u4E00-\u9FA5]|=|&|-)+$/; 
   if(patrn.exec(decodeURI(queryStr))){
	   $("#"+fname).attr('method','get');
	   if(fname == "workowner"){
		   location.href = rootURL+"index.php/searchpeople/"+queryStr;
	   }else{
		   location.href = rootURL+"index.php/searchlist/"+fname+"/"+queryStr;
	   } 
   }else{	    
	   alert("请输入合法的搜索字符");
	   history.go(0);
   } 
   return false;
}

/**
 * @deprecated 全局搜索
 */
function globalSearch(ff){
	var queryStr = $('#globalsearch').serialize();
	var str = decodeURI(queryStr);
	if(str.indexOf("请输入关键词") >= 0){
	   queryStr = str.replace("请输入关键词", "");
	} 
   	var patrn=/^(\w|[\u4E00-\u9FA5]|=|&|-)+$/; 
   	if(patrn.exec(decodeURI(queryStr))){
	   $("#globalsearch").attr('method','get');
	   location.href = rootURL+"index.php/globalsearch"+"/"+queryStr;
   	}else{	    
	   alert("请输入合法的搜索字符");
   	} 
	return false;
}

/**
 * @deprecated 当前页搜索人头
 */
function mainPeopleSearch(fname,ff){
   var queryStr = $('#'+fname).serialize();
   var str = decodeURI(queryStr);
   if(str.indexOf("请输入关键词") >= 0){
	  queryStr = str.replace("请输入关键词", "");
   } 
   var patrn=/^(\w|[\u4E00-\u9FA5]|=|&|-)+$/; 
   if(patrn.exec(decodeURI(queryStr))){
	    $("#"+fname).attr('method','get');
		location.href = rootURL+"index.php/mainpeoplesearch/"+queryStr;		 
   }else{	    
	   alert("请输入合法的搜索字符");
   } 
   return false;
}

/**
 * @deprecated 当前页搜索作品
 */
function mainSearch(ff){
	var queryStr = $(ff).serialize();
	var str = decodeURI(queryStr);
    if(str.indexOf("请输入关键词") >= 0){
	  queryStr = str.replace("请输入关键词", "");
    }
	var patrn=/^(\w|[\u4E00-\u9FA5]|=|&|-|%3B)+$/; 
	if(patrn.exec(decodeURI(queryStr))){
		location.href = rootURL+"index.php/mainsearch"+"/"+queryStr;
	}else{	    
		alert("请输入合法的搜索字符");
	} 
	return false;
}

/**
 * @deprecated 获取三级分类
 * @return
 */
function getThreeCatInSearch(twocid,li){
	$.ajax({
	    url:rootURL+"index.php/getthreecatsinserach/"+twocid, //后台处理程序
	    type:'post',         //数据发送方式
	    dataType:'json',     //接受数据格式
	    success:function(cat){
			var str = "";
			if(cat != 0){
				$.each(cat,function(entryIndex,entry){
					str += '<li id='+entry.cid+' class="option" value='+entry.cid+'>'+entry.cname+'</li>';						 	
				});
				$("#"+li).html(str);
			}else{
				$("#"+li).html("");
			}
		}
	});	
}

/**
 * @deprecated 选择一级分类
 * @return
 */
function selectFirstCat(firstcat,tcid){ 
	 //获取keyword 值 去匹配
	 var keyword = $('#searchkeyword').html();
	 var keywordstr = '<strong>您是不是要找：</strong>';
	 //清空隐藏域值
	 //$('#tcidhidden').val('');
	 $('#tagidhidden').val('');
	 $('#twocatidhidden').val('');
	 $('#threecatidhidden').val('');
	 $('#colorhidden').val('');
	 $('#sizehidden').val('');
	 $('#resolutionhidden').val('');
	 $('#formathidden').val('');
	 $('#lanaguehidden').val('');
	 $('#dbhidden').val('');
	 $('#tradehidden').val('');
	 $('#dbhidden').val('');
	 $('#developlanguagehidden').val('');
	 $('#pricehidden').val('');
	 $('#isrecommandhidden').val('');
	 $('#isessencehidden').val('');
	 $('#sorthidden').val('');
	 $('#timehidden').val('');
	 $('input[@name=kind][checked]').attr('checked','');  
	 $('input[@name=type][checked]').attr('checked','');  
	 $('.price a').removeClass();
	 $('#condition .con').css('display','none');
	 //清空class
	 $('#firstcat a').removeClass();
	 $('#'+firstcat).addClass('curr');
	 $('#twocat a').removeClass();
	 $('#threecat a').removeClass();
	 $('#format a').removeClass();
	 $('#color a').removeClass();
	 $('#size a').removeClass();
	 $('#resolution a').removeClass();
	 $('#wordlanague a').removeClass();
	 $('#trade a').removeClass();
	 $('#codelanague a').removeClass();
	 $('#db a').removeClass();
	 $('#recorise a').removeClass();
	 switch (firstcat) {
		case 'all': 
			$('#searchAll ul li').hide();
			//getSearchTag(0);
			break;
		case 'design':
			$('#searchAll ul li').hide();
			$('#format').show();	
			$('#color').show();	
			$('#size').show();	
			$('#resolution').show();
			$('#tag').html('');
			$('#tag').hide();
			$('#twocat').show();
			$('#threecat').show();
			break;
		case 'photo':
			$('#searchAll ul li').hide();
			$('#size').show();	
			$('#resolution').show();
			$('#twocat').show();
			$('#threecat').show();
			$('#tag').html('');
			$('#tag').hide();
			break;
		case 'word':
			$('#searchAll ul li').hide();
			$('#wordlanague').show();	
			$('#twocat').show();
			$('#threecat').show();
			$('#tag').html('');
			$('#tag').hide();
			break;
		case 'code':
			$('#searchAll ul li').hide();
			$('#codelanague').show();	
			$('#trade').show();	
			$('#db').show();	
			$('#twocat').show();
			$('#threecat').show();
			$('#tag').html('');
			$('#tag').hide();
			break;	
		default:
			return false;
			break;
	}
	if(tcid != 0){
		$.ajax({
		    url:rootURL+"index.php/getthreecatsinserach/"+tcid, //后台处理程序
		    type:'post',         //数据发送方式
		    dataType:'json',     //接受数据格式
		    success:function(cat){
				var str = "<label>子类别</label><span>";  
				if(cat != 0){	
					$.each(cat,function(entryIndex,entry){
						if(entryIndex<5 && keyword !="请输入关键词"){
						 	keywordstr+="<a href='"+rootURL+"index.php/skwsearch/2/"+entry.cid+"/"+keyword+"'>"+keyword+entry.cname+"</a>";
						} 
						str += "<a id='"+entry.cid+"' onclick=\"$('#twocatidhidden').val("+entry.cid+");$('#threecatidhidden').val('');getTCatHtml("+entry.cid+");\"><em>"+entry.cname+"</em></a>";						 	
					}); 
					str += '</span>';
					if(keyword =="请输入关键词"){
						keywordstr += "请输入关键词"; 
					}
					$("#twocat").html(str);
					$("#threecat").html("");
					$('#twocat').show();
					$('#threecat').hide();
				}else{
					keywordstr += "请输入关键词"; 
					$("#twocat").html("");
					$("#threecat").html("");
					$('#twocat').hide();
					$('#threecat').hide();
				}
				$('#samekeyword').html(keywordstr); 
			}
		});
	}else{
		if(keyword !="请输入关键词"){
			$('#samekeyword').html('<strong>您是不是要找：</strong><a href="'+rootURL+'index.php/skwsearch/1/1'+keyword+'">'+keyword+'设计</a><a href="'+rootURL+'index.php/skwsearch/1/2'+keyword+'">'+keyword+'摄影</a><a href="'+rootURL+'index.php/skwsearch/1/3'+keyword+'">'+keyword+'文字</a><a href="'+rootURL+'index.php/skwsearch/1/4'+keyword+'">'+keyword+'源码</a>'); 
		}else{
			$('#samekeyword').html('<strong>您是不是要找：</strong>请输入关键词');
		}		
	}
	$('#tagsubmit').show();
}

/**
 * @deprecated 获取三级分类内容
 * @return
 */
function getTCatHtml(twocid){
	var keyword = $('#searchkeyword').html();
	var keywordstr = '<strong>您是不是要找：</strong>';
	$('#twocat a').removeClass();
	$('#'+twocid).addClass('curr'); 
	$.ajax({
	    url:rootURL+"index.php/getthreecatsinserach/"+twocid, //后台处理程序
	    type:'post',         //数据发送方式
	    dataType:'json',     //接受数据格式
	    success:function(cat){
			var str = "<label>子类别</label><span>"; 
			if(cat != 0){
				$.each(cat,function(entryIndex,entry){
					if(entryIndex<5 && keyword !="请输入关键词"){
					 	keywordstr+="<a href='"+rootURL+"index.php/skwsearch/3/"+entry.cid+"/"+keyword+"'>"+keyword+entry.cname+"</a>";
					}
					str += "<a id='"+entry.cid+"' onclick=\"$('#threecatidhidden').val("+entry.cid+");taddClass("+entry.cid+");getSearchTag("+entry.cid+");\"><em>"+entry.cname+"</em></a>";						 	
				}); 
				str += '</span>';
				if(keyword =="请输入关键词"){
					keywordstr += "请输入关键词"; 
				}
				$("#threecat").html(str);
				$('#threecat').show();
				$('#tagsubmit').show();
			}else{
				keywordstr += "请输入关键词"; 
				$("#threecat").html("");
				$('#threecat').hide();
			}
			$('#samekeyword').html(keywordstr); 
		}
	});
}

/**
 * @deprecated 获取标签
 * @param cid
 * @return
 */
function getSearchTag(cid){
	//标签
	$.ajax({
	    url:rootURL+"index.php/getsearchtag/"+cid, //后台处理程序
	    type:'post',         //数据发送方式
	    dataType:'json',     //接受数据格式
	    success:function(tag){
			var str = "<label>标签</label><span>"; 
			if(tag != 0){
				$.each(tag,function(entryIndex,entry){	
					if(entryIndex<11){ 
						str += "<a id=\""+entry.tid+"\" onclick=\"$('#tagidhidden').val("+entry.tid+");$('#tag a').removeClass();$('#"+entry.tid+"').addClass('curr')\");><em>"+entry.tname+"</em></a>";	
					} 					 	
				});
				str += '</span>';
				$("#tag").html(str);
				$("#tag").show();
				$('#tagsubmit').show();
			}else{
				$("#tag").html("");
				$("#tag").hide();
			}
		}
	});	
}


/**
 * @deprecated 三级分类加CLASS
 * @param cid
 * @return
 */
function taddClass(cid){
	$('#threecat a').removeClass();
	$('#'+cid).addClass('curr'); 
}
$.fn.jDropbox = function(c){
    c = $.extend({
        item: ".option", //相当于select的option元素，下拉的选择项目，默认为此dom元素内部的class为option的元素。
        attr: "value", //指定item选项的值存放在哪个属性中，比如 <li value="value" />, 其值存储在value属性上
        input: "input", //挂载值的表单元素，多个值以逗号相隔，默认为此dom元素内部的<input>元素,可以是任何表单元素，一般为隐藏文本域
        checked: "checked", //被选中状态下item选项元素的class定义 
        
        show: ".text", //用于显示所选择的项目的元素，同时也是点击此处显示下拉内容的元素。默认为此dom元素内class为text的元素。
        con: ".jdcon", //存储下拉的内容的元素
        width: 0, // 设置下啦内容的宽度，0表示自适应宽度, -1表示同show等宽，大于0的数值则会被设置此数值宽度
        widthFix: 0, //设置宽度增减量，用于与show等宽时的宽度误差
        curr: "curr", // 显示下拉内容时给本元素设置一个当前的样式类class定义，比如用于设置下拉箭头的指向
            
        onchange: function(v, index){} //当值发生改变时执行某个函数动作,当前值以及索引作为参数传入该函数
    }, c);
    return this.each(function(){
        var _t = $(this);
        var zindex = parseInt(_t.css("zIndex")) || 20;
        var flag = false; //减少body单击事件的多次执行
        var $s = $(c.show, _t), $c = $(c.con, _t), w = c.width;
        var $i = $(this).find(c.item);
        var $in = $(c.input, _t);
        $s.append("<q class='jselect-show-text'></q>");
        var $st = $(".jselect-show-text", $s);
        var index = -1; //避免选中的元素再次被选,从而使onchange事件更有效      
        
        /* 初始化处理 */
        var $ch = $i.filter("." + c.checked);
        if($ch.length != 0) {
            index = $i.index($ch);
        };
        var o = getVals();
        $in.val(o.val);
        $st.html(o.t);
        /* 选项动作 */
        $i.live("click",function(e){
            var i = $i.index($(this));
            if(index == i) {
                return;
            };
            index = i;
            $i.removeClass(c.checked);
            var v = $(this).addClass(c.checked).attr(c.attr);
            $in.val(v);
            $st.html($(this).html());
            c.onchange(v, index);
            e.preventDefault();//取消默认行为但不阻止事件冒泡，为了激发body单击事件。                
        });
        //对于select下拉框取值
        function getVals(){
             var $checked = $i.filter("." + c.checked), o = {val: "", t: ""};
             $checked.each(function(){
                 o.val = ($(this).attr(c.attr));
                 o.t = ($(this).html());
             });
             return o;
        };
        //下拉动作
        $s.live("click",function(e){
            if(c.width < 0) {
                w = $s.width() + c.widthFix;//如果整个下了框事先是被隐藏的，之后被显示，在这里才能正确获取到$s.width()
            };
            if(c.width != 0) {
                $c.width(w); //设置下拉内容宽度               
            };
            _t.toggleClass(c.curr).css("z-index", ++zindex);
            $c.toggle();
            flag = !flag;
            e.stopPropagation();//阻止事件冒泡到body上
        });
        $("body").click( function(){
            if(flag) {
                _t.removeClass(c.curr);
                $c.hide();
                flag = !flag;
            };
        });
    });
};

;(function($){
	$.fn.jTabView = function(c){
		c = $.extend({
			tab:".jtab",
			con:".jtab-con",
			event: "click",
			curr: "curr",
		
			auto: 0,
			time: 5000,
			hoverTime: 300,
			
			retain: 0,
			expires:1
		}, c);		
		return this.each(function(id){
			var $this = $(this);
			var $tab = c.tab.jquery ? c.tab : $(c.tab, $this);
			var $con = c.con.jquery ? c.con : $(c.con, $this); 
			var count = $tab.size();
			if(! count){$.plubug($this, "插件jTabView错误:获取选项卡数目为0，请检查tab参数设置!"); return;};
			if(count != $con.size()) {$.plubug($this, "插件jTabView错误: 选项卡"+ count +"个，内容数目"+$con.size()+"个，不一致！"); return;};
			var hoverId, autoId, index = $tab.index($tab.filter("."+c.curr)), cookiename = "";
			index = index == -1 ? 0 : index;  
			if(c.retain){
			    cookiename = [location.host, location.port, location.pathname,"jTabView", id].join("");
			    index = $.cookie(cookiename) || index;
			};
			var toggle = function(_curr, init){ 
				if(!init && _curr.hasClass(c.curr))
					return false;
				$tab.removeClass(c.curr);
				_curr.addClass(c.curr).blur();
				$con.hide().eq(index).show();			
			};
            toggle($tab.eq(index), 1);
			$tab.bind(c.event, function(e){
				var _this = $(this);
				index = $tab.index(_this);
				c.retain && ($.cookie(cookiename, index));
				if(c.event == "mouseover") {
					hoverId = setTimeout(function(){
						toggle(_this);
					}, c.hoverTime);
					_this.mouseout(function(){
						clearTimeout(hoverId);
					});
				} else {
					toggle(_this);
				};
			});
			if(c.auto){
				$this.hover(function(){
						clearTimeout(autoId);
					}, function(){
						autoId = setTimeout(autoF, c.time);
				});
				var autoF = function(){
					if(++index >= count) {
						index = 0;
					};
					toggle($tab.eq(index));
					autoId = setTimeout(autoF, c.time);
				};
				autoId = setTimeout(autoF, c.time);
			};						
		});
	};	
})(jQuery);
jQuery.plubug = function(obj, msg){
    obj = obj.jquery ? obj : $(obj);
    obj.css({position:"relative", background:"#c30"})
        .append("<div style='background:#099;position:absolute;top:0;left:0;line-height:20px;color:#fff;'>" + msg + "</div>");
};
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') {
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
        }
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else {
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

(function($) {
$.fn.jCarouselLite = function(o) {
    o = $.extend({
        btnPrev: null,
        btnNext: null,
        btnGo: null,
        mouseWheel: false,
        auto: null,

        speed: 200,
        easing: null,

        vertical: false,
        circular: true,
        visible: 3,
        start: 0,
        scroll: 1,

        beforeStart: null,
        afterEnd: null
    }, o || {});

    return this.each(function() {

        var running = false, animCss=o.vertical?"top":"left", sizeCss=o.vertical?"height":"width";
        var div = $(this), ul = $("ul", div), tLi = $("li", ul), tl = tLi.size(), v = o.visible;
        
        if(tl <= o.visible) {
            return false;
        }
        if(o.circular) {
            ul.prepend(tLi.slice(tl-v-1+1).clone())
              .append(tLi.slice(0,v).clone());
            o.start += v;
        }

        var li = $("li", ul), itemLength = li.size(), curr = o.start;
        div.css("visibility", "visible");

        li.css({overflow: "hidden", 'float': o.vertical ? "none" : "left"});
        ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1"});
        div.css({overflow: "hidden", position: "relative", "z-index": "2", left: "0px"});

        var liSize = o.vertical ? height(li) : width(li);
        var ulSize = liSize * itemLength;
        var divSize = liSize * v;

        li.css({width: li.width(), height: li.height()});
        ul.css(sizeCss, ulSize+"px").css(animCss, -(curr*liSize));

        div.css(sizeCss, divSize+"px");

        if(o.btnPrev)
            $(o.btnPrev).click(function() {
                return go(curr-o.scroll);
            });

        if(o.btnNext)
            $(o.btnNext).click(function() {
                return go(curr+o.scroll);
            });

        if(o.btnGo)
            $.each(o.btnGo, function(i, val) {
                $(val).click(function() {
                    return go(o.circular ? o.visible+i : i);
                });
            });

        if(o.mouseWheel && div.mousewheel)
            div.mousewheel(function(e, d) {
                return d>0 ? go(curr-o.scroll) : go(curr+o.scroll);
            });
        var jcarouselliteAutoId;
        if(o.auto) {
            jcarouselliteAutoId = setInterval(function() {
                go(curr+o.scroll);
            }, o.auto+o.speed);
            ul.hover(function(){
                    clearInterval(jcarouselliteAutoId);
                },function(){
                    jcarouselliteAutoId = setInterval(function() {
                        go(curr+o.scroll);
                    }, o.auto+o.speed);
            });
        };
        function vis() {
            return li.slice(curr).slice(0,v);
        };

        function go(to) {
            if(tl <= 3) {
                return false;
            }
            
            if(!running) {

                if(o.beforeStart)
                    o.beforeStart.call(this, vis());

                if(o.circular) {
                    if(to<=o.start-v-1) {
                        ul.css(animCss, -((itemLength-(v*2))*liSize)+"px");
                        curr = to==o.start-v-1 ? itemLength-(v*2)-1 : itemLength-(v*2)-o.scroll;
                    } else if(to>=itemLength-v+1) {
                        ul.css(animCss, -( (v) * liSize ) + "px" );
                        curr = to==itemLength-v+1 ? v+1 : v+o.scroll;
                    } else curr = to;
                } else {
                    if(to<0 || to>itemLength-v) return;
                    else curr = to;
                }

                running = true;

                ul.animate(
                    animCss == "left" ? { left: -(curr*liSize) } : { top: -(curr*liSize) } , o.speed, o.easing,
                    function() {
                        if(o.afterEnd)
                            o.afterEnd.call(this, vis());
                        running = false;
                    }
                );
                if(!o.circular) {
                    $(o.btnPrev + "," + o.btnNext).removeClass("disabled");
                    $( (curr-o.scroll<0 && o.btnPrev)
                        ||
                       (curr+o.scroll > itemLength-v && o.btnNext)
                        ||
                       []
                     ).addClass("disabled");
                }

            }
            return false;
        };
    });
};

var css = $.jCss = function (el, prop) {
    return parseInt($.css(el[0], prop)) || 0;
};
var width = $.jWidth = function (el) {
    return  el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight');
};
var height = $.jHeight = function (el) {
    return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom');
};

})(jQuery);
