﻿

//解码
function decode(str){
    return decodeURIComponent(decodeURIComponent(str));
}
//编码
function encode(str){
    return encodeURIComponent(encodeURIComponent(str));
}

function uploadFiles(){
    
}

//截取字符串长度
function getLength(l,str){ 
    
    var tmp = 0;
    var len = 0;
    var okLen = 0
    for(var i=0;i<l;i++){
        if(str.charCodeAt(i)>255) tmp += 2;
        else len += 1;
        okLen += 1;
        if(tmp + len == l){
            return (str.substring(0,okLen));
            break;
        }
        if(tmp + len > l){
            return (str.substring(0,okLen - 1) + "&nbsp;"); 
            break;
        }
    }
}

//上传文件
function upFiles(url,contorl,loadid,valueid,viewid){
    if(loadid) $("#"+loadid).show();
    $.ajaxFileUpload({
	    url:url, 
	    secureuri:false,
	    fileElementId:contorl.id,
	    dataType: 'json',
        success:function(data){
            if(data.file != '') alert(data.msg);
			else{ 
			    if(loadid) $("#"+loadid).hide();
                if(valueid) $("#"+valueid).val(data.msg); 
                if(viewid) $("#"+viewid).attr("src",data.msg).show();
            }
            
        },
		error: function (data, status, e){
			alert("错误："+e.message+status);
		}
    });
}

//属性***********************
function fillproducttype(data){
    if(!data.Properties) $("#p_t").hide();
    var Properties=eval('('+data.Properties+')');
    $.each(Properties,function(i,p){
        var h="<li><span class=\"label\"><font>";
        if(p.CanEmpty) h+="*";
        h+="</font>"+p.Name+"：</span><span style=\"float:left;\"><table id=\"tb_"+i+"\">";
        h+="<tr>";
        var pItem=p.DefaultValue.split(';');
        for(var _i=0;_i<pItem.length;_i++){
            if(pItem[_i]!=""){
                if(p.IsCustom) h+="<td><input id=\"item_"+i.toString()+"_chk_"+_i.toString()+"\" value=\""+_i.toString()+"\" class=\"nborder\" type=\"checkbox\" /><input type=\"text\" style=\"line-height:22px;height:22px;\" size=\"5\" id=\"item_"+i.toString()+"_text_"+_i.toString()+"\" value=\""+pItem[_i]+"\" /></td>";    
                else h+="<td class=\"ptype\" alt=\""+pItem[_i]+"\" id=\"item_"+i.toString()+"_"+_i.toString()+"\">"+pItem[_i]+"</td>";    
            }    
        }   
        h+="</tr></table>\
           </span>\
	      </li>";
        $("#p_t").append(h);
        
        for(var _i=0;_i<pItem.length;_i++){
            if(!p.IsCustom){
                $("#item_"+i.toString()+"_"+_i.toString()).click(function(){
                    if(!p.IsMulti) $("#tb_"+i+" td").attr("class","ptype");                    
                    $(this).attr("class","s_ptype");
                    alert(p.Name+"-"+this.alt)
                });
            }else{
                $("#item_"+i.toString()+"_chk_"+_i.toString()).click(function(){
                    if(!p.IsMulti) $("#tb_"+i+" input[type='checkbox']").attr("checked","");                    
                    this.checked=true;
                    alert(p.Name+"-"+$("#item_"+i.toString()+"_text_"+this.value).val())
                });
            }
        }
    });
}
//****************************
String.prototype.replaceAll  = function(s1,s2){    
return this.replace(new RegExp(s1,"gm"),s2);    
} 

Date.prototype.format = function(format)   
{   
   var o = {   
     "M+" : this.getMonth()+1, //month   
     "d+" : this.getDate(),    //day   
     "h+" : this.getHours(),   //hour   
     "m+" : this.getMinutes(), //minute   
     "s+" : this.getSeconds(), //second   
     "q+" : Math.floor((this.getMonth()+3)/3), //quarter   
     "S" : this.getMilliseconds() //millisecond   
   }   
   if(/(y+)/.test(format)) format=format.replace(RegExp.$1,   
     (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
   for(var k in o)if(new RegExp("("+ k +")").test(format))   
     format = format.replace(RegExp.$1,   
       RegExp.$1.length==1 ? o[k] :    
         ("00"+ o[k]).substr((""+ o[k]).length));   
   return format;   
}  

/**********************文件上传**********************/
jQuery.extend({
    createUploadIframe: function(id, uri){
            var frameId = 'jUploadFrame' + id;
            
            if(window.ActiveXObject) {
                var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
                if(typeof uri== 'boolean') io.src = 'javascript:false';
                else if(typeof uri== 'string') io.src = uri;
            }
            else{
                var io = document.createElement('iframe');
                io.id = frameId;
                io.name = frameId;
            }
            io.style.position = 'absolute';
            io.style.top = '-1000px';
            io.style.left = '-1000px';
            document.body.appendChild(io);
            return io			
    },
    createUploadForm: function(id, fileElementId){
		var formId = 'jUploadForm' + id;
		var fileId = 'jUploadFile' + id;
		var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');	
		var oldElement = $('#' + fileElementId);
		var newElement = $(oldElement).clone();
		$(oldElement).attr('id', fileId);
		$(oldElement).before(newElement);
		$(oldElement).appendTo(form);
		
		$(form).css('position', 'absolute');
		$(form).css('top', '-1200px');
		$(form).css('left', '-1200px');
		$(form).appendTo('body');	

		return form;
    },

    ajaxFileUpload: function(s) {	
        s = jQuery.extend({}, jQuery.ajaxSettings, s);
        var id = new Date().getTime()        
		var form = jQuery.createUploadForm(id, s.fileElementId);
		var io = jQuery.createUploadIframe(id, s.secureuri);
		var frameId = 'jUploadFrame' + id;
		var formId = 'jUploadForm' + id;		
        if ( s.global && ! jQuery.active++ ) jQuery.event.trigger( "ajaxStart" );
 
        var requestDone = false;
        var xml = {}   
        if ( s.global ) jQuery.event.trigger("ajaxSend", [xml, s]);
        var uploadCallback = function(isTimeout){			
			var io = document.getElementById(frameId);			
            try 
			{				
				if(io.contentWindow){
					 xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
                	 xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
					 
				}else if(io.contentDocument){
					 xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
                	xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
				}						
            }catch(e){
				jQuery.handleError(s, xml, null, e);
			}
			
            if ( xml || isTimeout == "timeout"){				
                requestDone = true;
                var status;
                try {
                    status = isTimeout != "timeout" ? "success" : "error";
                    if ( status != "error" ){
                        var data = jQuery.uploadHttpData( xml, s.dataType );    
                        if ( s.success ) s.success( data, status );
                        if( s.global ) jQuery.event.trigger( "ajaxSuccess", [xml, s] );
                    } else
                        jQuery.handleError(s, xml, status);
                } catch(e){				    
                    status = "error";
                    jQuery.handleError(s, xml, status, e);
                }
                if( s.global ) jQuery.event.trigger( "ajaxComplete", [xml, s] );
                if ( s.global && ! --jQuery.active ) jQuery.event.trigger( "ajaxStop" );
                if ( s.complete ) s.complete(xml, status);
                jQuery(io).unbind()
                setTimeout(function(){	
                    try{
						$(io).remove();
						$(form).remove();							
					} catch(e){
						jQuery.handleError(s, xml, null, e);
					}									

			    }, 100)
                xml = null
            }
        }
        
        if ( s.timeout > 0 ){
            setTimeout(function(){
                if( !requestDone ) uploadCallback( "timeout" );
            }, s.timeout);
        }
        try{
			var form = $('#' + formId);
			$(form).attr('action', s.url);
			$(form).attr('method', 'POST');
			$(form).attr('target', frameId);			
       //alert(form.encoding)
            if(form.encoding) form.encoding = 'multipart/form-data';				
            else form.enctype = 'multipart/form-data';	
            
            $(form).submit();
        } catch(e){			
            jQuery.handleError(s, xml, null, e);
        }
        
        
        if(window.attachEvent) document.getElementById(frameId).attachEvent('onload', uploadCallback);
        else document.getElementById(frameId).addEventListener('load', uploadCallback, false);
	
        return {abort: function () {}};	
    },

    uploadHttpData: function( r, type ) {
        var data = !type;
        data = type == "xml" || data ? r.responseXML : r.responseText;
        if ( type == "script" ) jQuery.globalEval( data );
        if ( type == "json" ) eval( "data = " + data );
        if ( type == "html" ) jQuery("<div>").html(data).evalScripts();
        return data;
    }
})

