jQuery.extend(    
 {    

  getSuitImageSize : function (str,size)    
  {    
  if(str.length<40||str.indexOf("_bak")==-1)
  return str;
  
  if(size<41) 
   str=str.replace(/bak/gi,"s");
  else if(size<65)
   str=str.replace(/bak/gi,"ls");
  else if(size<120)
   str=str.replace(/bak/gi,"lm");
  else 
   str=str.replace(/bak/gi,"l");    

    return str;


  }    
 });
jQuery.extend(    
 {    

  getSuitProductImageSize : function (str,size)    
  {    
  if(str==null||str=="")
  str="def/chanp.gif";
  
  if(size<=50) 
   str=str.replace(".","_ds.");
  else if(size<=80)
   str=str.replace(".","_dm.");
  else
   str=str.replace(".","_dl."); 

    return str;


  }    
 });




  Array.prototype.unique   =   function()   
  {   
      var   a   =   {};   
      for(var   i=0;   i<this.length;   i++)   
      {   
          if(typeof   a[this[i]]   ==   "undefined")   
              a[this[i]]   =   1;   
      }   
      this.length   =   0;   
      for(var   i   in   a)   
          this[this.length]   =   i;   
      return   this;   
  } 




jQuery.extend(    
 {    

  dataToContainer : function (container,data_html,data_json)    
  {    
/*  
var html=$('<div></div>').append( data_html.clone() ).html();

 for (var property in data_json) {  
 alert(property+":"+typeof(data_json[property])+data_json[property]);  
            if(data_json[property]){    
                var value = $.toJSON(data_json[property]);    
                if (value !== undefined){ 
				var regx=new RegExp("\{"+$.toJSON(property).replace(/"/gi,"")+"\}","gi");
				
				 html=html.replace(regx, $.toHTML(value).replace(/^"/,"").replace(/"$/,""));
                }    
            }    
        }  

container.append(html);  
*/
var html=$('<div></div>').append( data_html.clone() ).show().html();

html=html.replace(/%7B/gi,"{").replace(/%7D/gi,"}"); //img中src的处理,%7B表示{,%7D表示}

var result = html.match(/\{([^}]+)\}/gi);
if (result){

var result=result.unique(); 

for(var i=0;i<result.length;i++){
var key=result[i].replace(/^\{/,"").replace(/\}$/,"");

var value = '';

if(/\./.test(key)){
var key_temp=key.replace(/([^\.]+)\.([^\.]+)/,"[\"$1\"][\"$2\"]");
value = $.toJSON(eval("data_json"+key_temp));
}else
value = $.toJSON(data_json[key]);



if(typeof(value)!= "undefined"){
var regx=new RegExp("\{"+key.toLowerCase()+"\}","ig");
html=html.replace(regx, $.toHTML(value).replace(/^"/,"").replace(/"$/,"").replace(/\\"/gi,'"'));
}//if


}//for
}//if
container.append(html);

  }    
 }); 
 
 
//显示html标签的数据装载方法
jQuery.extend(    
 {    

  dataToContainer2 : function (container,data_html,data_json)    
  {    
var html=$('<div></div>').append( data_html.clone() ).show().html();

html=html.replace(/%7B/gi,"{").replace(/%7D/gi,"}"); //img中src的处理,%7B表示{,%7D表示}

var result = html.match(/\{([^}]+)\}/gi);
if (result){
//alert(result);
var result=result.unique();
for(var i=0;i<result.length;i++){

var key=result[i].replace(/^\{/,"").replace(/\}$/,"");

var value = '';

if(/\./.test(key)){
var key_temp=key.replace(/([^\.]+)\.([^\.]+)/,"[\"$1\"][\"$2\"]");
value = $.toJSON(eval("data_json"+key_temp));
}else
value = $.toJSON(data_json[key]);


if(typeof(value)!= "undefined"){
var regx=new RegExp("\{"+key.toLowerCase()+"\}","gi");
html=html.replace(regx, value.replace(/^"/,"").replace(/"$/,"").replace(/\\"/gi,'"'));
}//if
}//for
}//if
container.append(html);

  }    
 }); 
 


jQuery.extend(    
 {    

  substr : function (str,len,lastStr)    
  {
  	var last = "..";
  	if(lastStr!=null){
		last = lastStr;
	}
   var str_length = 0;
      str_cut = new String();
      for(var i = 0;i<str.length;i++)
     {
        a = str.charAt(i);
        str_length++;
        if(escape(a).length > 4)
        {
         //中文字符的长度经编码之后大于4
         str_length++;
         }
         str_cut = str_cut.concat(a);
         if(str_length>=len){
         	if(str_cut!=str){
         		str_cut = str_cut.concat(last);
         		return str_cut;
         	}else{
         		return  str;
         	}
         }
    }
    //如果给定字符串小于指定长度，则返回源字符串；
    if(str_length<len){
     return  str;
    }


  }    
 }); 

jQuery.extend(    
 {    

  strlength : function (str)    
  {    
   var str_length = 0;
   for(var i = 0;i<str.length;i++)
     {
        a = str.charAt(i);
        str_length++;


        if(escape(a).length > 4)
        {
         //中文字符的长度经编码之后大于4
         str_length++;
         }

    }
    
    
    return str_length;


  }    
 });
 
 
 
 
jQuery.extend(    
 {    

  toHTML : function (str)    
  {    
   return str.replace(/</gi,"&lt;").replace(/>/gi,"&gt;");   
  }    
 }); 


jQuery.extend(    
 {    
  /**   
   * @see  将form的所有参数和参数值转为 json字符串    
   */   
  formToJSON : function (formId)    
  {  
var str = $("#"+formId+"").serializeArray();
var obj={};
$.each(str, function(i, field){
       var value=$.toJSON(field.value);
	   value=value.substring(1,value.length-1).replace(/'/gi,"\\'");
        //alert("obj."+field.name+"='"+value+"';");
        eval("obj."+field.name+"='"+value+"';");
      });  
   return $.toJSON(obj);    
  }    
 });

jQuery.extend(    
 {    
  /**   
   * @see  将json字符串转换为对象   
   * @param   json字符串   
   * @return 返回object,array,string等对象   
   */   
  evalJSON : function (strJson)    
  {    
  	if(strJson == ""){
  		return "";
  	}
   return eval( "(" + strJson + ")");    
  }    
 });    
jQuery.extend(    
 {    
  /**   
   * @see  将javascript数据类型转换为json字符串   
   * @param 待转换对象,支持object,array,string,function,number,boolean,regexp   
   * @return 返回json字符串   
   */   
  toJSON : function (object){    
   var type = typeof object;    
   if ('object' == type)    
   {    
    if (Array == object.constructor)    
     type = 'array';    
    else if (RegExp == object.constructor)    
     type = 'regexp';    
    else   
     type = 'object';    
   }    
      switch(type)    
   {    
       case 'undefined':    
       case 'unknown':     
     return;    
     break;    
    case 'function':    
       case 'boolean':    
    case 'regexp':    
     return object.toString();    
     break;    
    case 'number':    
     return isFinite(object) ? object.toString() : 'null';    
       break;    
    case 'string':    
     return '"' + object.replace(/(\\|\")/g,"\\$1").replace(/\n|\r|\t/g,   
       function(){      
                 var a = arguments[0];                      
        return  (a == '\n') ? '\\n':      
                       (a == '\r') ? '\\r':      
                       (a == '\t') ? '\\t': ""     
             }) + '"';    
     break;    
    case 'object':    
     if (object === null) return 'null';    
        var results = [];    
        for (var property in object) {    
            if(object[property]){    
                var value = jQuery.toJSON(object[property]);    
                if (value !== undefined){    
                    results.push(jQuery.toJSON(property) + ':' + value);    
                }    
            }else{    
                results.push('"' + property + '":null');    
            }    
        }    
        return '{' + results.join(',') + '}';    
     break;    
    case 'array':    
     var results = [];    
        for(var i = 0; i < object.length; i++)    
     {    
      var value = jQuery.toJSON(object[i]);    
           if (value !== undefined) results.push(value);    
     }    
        return '[' + results.join(',') + ']';    
     break;    
      }    
  }    
 });   
