
String.prototype.replaceAll = function(s1,s2)
{
    return this.replace(new RegExp(s1, "gm"), s2);
}

String.prototype.trim=function()
{
     return this.replace(/(^\s*)(\s*$)/g, "");
}

String.prototype.toJsonText = function(){
	var data = this;
	data = data.replaceAll("\\\\","\\\\");
	data = data.replaceAll("\\[","\\[");
	data = data.replaceAll("\\]","\\]");
	data = data.replaceAll("\\{","\\{");
	data = data.replaceAll("\\}","\\}");
	data = data.replaceAll(",","\\,");
	data = data.replaceAll(":","\\:");
	data = data.replaceAll("\"","\\\"");
    return data;
}

function trim(s){
	return s.trim(); 
}

function setHomePage(obj, vrl) {

    try {
        obj.style.behavior = 'url(#default#homepage)';
        obj.setHomePage(vrl);
    }
    catch (e) {
        if (window.netscape) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }
            catch (e) {
                alert(propReader.get("SetHomeError"));
            }
            var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
            prefs.setCharPref('browser.startup.homepage', vrl);
        }
    }
}

function addFavoritePage(url, title) {
    try {
		if(window.sidebar) {
			window.sidebar.addPanel(title,url,"");
		}else if(document.all) {
			window.external.addFavorite(url,title);
		}else if(window.opera&&window.print) {
			return true;
		}
    }
    catch (e) {
        alert(propReader.get("AddFavoriteError"));
    }
}


function PropertiesReader(dataUrl) {

    //保存当前数据模型
    var curData;

    //异步获取数据模型
    $.ajax({
        url: dataUrl,
        type: "GET",
        dataType: "json",
        async: false,
        success: function (data) {
            curData = data;
        }
    });

    //读取键值
    this.get = function (key) {
        var result = eval("curData." + key.toString());
        return result;
    }
}


function showMaskLayer(isShow) {
    if ($("#MaskLayerPanel").size() == 0) {
        var divPanel = document.createElement("div");
        divPanel.id = "MaskLayerPanel";

        $(divPanel).css({
            "width": window.screen.width - 22,
            "height": $(document).height() - 4,
            "position": "absolute",
            "left": 0,
            "top": 0,
            "background": "black",
            "opacity": 0.5,
            "zIndex": 9999
        });

        document.body.appendChild(divPanel);
    }

    if (isShow)
        $("#MaskLayerPanel").css("display", "block");
    else
        $("#MaskLayerPanel").css("display", "none");
}

function showThis(obj) {
	var top = 0;
	try{ top = showThis.arguments[1]; }catch(e){}
    $(obj).css({
        "left": $(document).width() / 2 - $(obj).width() / 2,
        "top": top,
        "display": "block"
    });
}

function hideThis(obj) {
    $(obj).css("display", "none");
}


function copyToClipboard(txt) {
	if(window.clipboardData)
	{
		window.clipboardData.clearData();
		window.clipboardData.setData("Text", txt);
	}
	else if(navigator.userAgent.indexOf("Opera") != -1)
	{
		window.location = txt;
	}
	else if (window.netscape)
	{
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		}
		catch (e)
		{
			alert("!!被浏览器拒绝！\n请在浏览器地址栏输入’about:config’并回车\n然后将’signed.applets.codebase_principal_support’设置为’true’");
		}
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip)
		return;
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans)
		return;
		trans.addDataFlavor('text/unicode');
		var str = new Object();
		var len = new Object();
		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		var copytext = txt;
		str.data = copytext;
		trans.setTransferData("text/unicode",str,copytext.length*2);
		var clipid = Components.interfaces.nsIClipboard;
		if (!clip)
		return false;
		clip.setData(trans,null,clipid.kGlobalClipboard);
	}
    return true;
}

/*********************************************/
function   get_W(ObjectID)
{
	return ObjectID.offsetWidth;
}  

function   get_H(ObjectID)
{
	return ObjectID.offsetHeight;
}  

function   get_X(ObjectID)   
{   
  var   iPositionX=ObjectID.offsetLeft;   
  while(true)   
  {
	try{ObjectID=ObjectID.offsetParent;}catch(e){}
	if(ObjectID==null)break;
  	iPositionX+=ObjectID.offsetLeft;   
  }   
  return   iPositionX;   
}   

function   get_Y(ObjectID)   
{   
  var   iPositionY=ObjectID.offsetTop;   
  while(true)   
  {   
	  try{ObjectID=ObjectID.offsetParent;}catch(e){}
	  if(ObjectID==null)break;
      iPositionY+=ObjectID.offsetTop;   
  }   
  return   iPositionY;   
}

function rel_X(obj)   
	{   
	  var   iPositionX = 0;  
	  var   iStart = $(obj).position().left;
	  while(true)
	  {
		try{obj=$(obj).parent();}catch(e){}
		if(obj==null)break;
	  	iPositionX += Math.abs(iStart - $(obj).position().left); 
	  	iStart = $(obj).position().left;
	  	if($(obj).css("position")){
	  		if($(obj).css("position").toLowerCase()=="relative")break;
	  	}
	  }
	  return   iPositionX;   
}   
	
function rel_Y(obj)   
	{   
	  var   iPositionY = 0;  
	  var   iStart = $(obj).position().top;
	  while(true)   
	  {   
		  try{obj=$(obj).parent();}catch(e){}
		  if(obj==null)break;
	  	  iPositionY += Math.abs(iStart - $(obj).position().top); 
	  	  iStart = $(obj).position().top;
	  	  if($(obj).css("position")){
	  		 if($(obj).css("position").toLowerCase()=="relative")break;
	  	  }
	  }   
	  return   iPositionY;   
}
/*********************************************/


String.prototype.trim=function()
{
     return this.replace(/(^\s*)(\s*$)/g, "");
}

/*********************************************/
String.prototype.indexOfNoCase = function(matchStr){
	var _mainStr = this.toUpperCase();
	var _matchStr = matchStr.toUpperCase();
	return _mainStr.indexOf(_matchStr);
}	

String.prototype.insertBefore = function(matchStr,insertStr){
	var offset = this.indexOfNoCase(matchStr);
	if(offset<0) return this;
	var result = "";
	result += this.substring(0,offset);
	result += insertStr;
	result += this.substring(offset,this.length);
	return result;
}

String.prototype.insertAfter = function(matchStr,insertStr){
	var offset = this.indexOfNoCase(matchStr);
	if(offset<0) return this;
	var result = "";
	result += this.substring(0,offset+matchStr.length);
	result += insertStr;
	result += this.substring(offset+matchStr.length,this.length);
	return result;
}
/*********************************************/



function PanelSortMgr(panel,id,asc){
	var len = $(panel).children("tr").length;
	
	function getTd(tr){
		var tds = $(tr).children("td");
		return $(tds[id]).text();
	}
	
	for(var i=0; i<len; i=i+1){
		var pointer = $(panel).children("tr").first();
		var next  = $(pointer).next();
		while( $(next).html() != undefined ){
			if(asc){
				if(getTd(pointer)>getTd(next)){
					$(pointer).insertAfter($(next));
					next  = $(pointer).next();
				}else{
					pointer = next;
					next  = $(pointer).next();
				}
			}else{
				if(getTd(pointer)<=getTd(next)){
					$(pointer).insertAfter($(next));
					next  = $(pointer).next();
				}else{
					pointer = next;
					next  = $(pointer).next();
				}
			}
		}
	}
}
															
																	
function AsTipsInput(obj){
	var title = $(obj).attr("title");
	var value = $(obj).val();
	if(value.length<=0||title==value){
		$(obj).attr("style","color:#C1C1C1");
		$(obj).val(title);
	}

	$(obj).bind("blur",function(){
		var title = $(obj).attr("title");
		var value = $(obj).val();
	    if(value.length<=0){
			$(obj).attr("style","color:#C1C1C1");
			$(obj).val(title);
	    }
	});
	$(obj).bind("focus",function(){
		var title = $(obj).attr("title");
		var value = $(obj).val();
		if(title==value){
			$(obj).attr("style","color:#000000");
			$(obj).val("");
		}
	});	
}
																	
																	
function HasClicked(event,id){
	var evt = window.event?window.event:event;
	var target=evt.srcElement||evt.target;
	var i=0;
	do{
		if(target==null)break;
		if(target.id==id)return true;
		if(target.nodeName.toLowerCase() == "html")break;
		target = target.parentNode;
		i++;
		if(i>1000)break;
	}while(true);
	return false;
}

function Dragor(id, handleId) {

    var el = document.getElementById(id);
    var handle = document.getElementById(handleId);

    el.style.position = "absolute";

    var drag = function (e) {
        var e = e || window.event,
        button = e.button || e.which;

        if (button == 1 && e.shiftKey == false) {
            ! +"\v1" ? document.selection.empty() : window.getSelection().removeAllRanges();
            el.style.left = e.clientX - el.offset_x + "px";
            el.style.top = e.clientY - el.offset_y + "px";
        } else {
            document.onmousemove = null;
        }
    }

    var dragstart = function (e) {
        e = e || window.event;
        el.offset_x = e.clientX - el.offsetLeft;
        el.offset_y = e.clientY - el.offsetTop;
        el.style.zIndex = ++Dragor.z;
        document.onmousemove = drag;
        return false;
    }

    Dragor.z = 999;

    handle.onmousedown = dragstart;
    document.onmouseup = function () {
        document.onmousemove = null;
    };
}

function loadJs(jsPath, successFun, errorFun) {

    $.ajax({
        url: jsPath,
        type: "GET",
        async: true,
        success: function (html) {
            var s = document.createElement("script");
            s.type = "javascript/text";
            s.src = jsPath;

            document.getElementsByTagName("head")[0].appendChild(s);

            if (successFun == null || successFun == undefined)
                return;

            successFun();
        },
        error: function () {
            if (errorFun == null || errorFun == undefined)
                errorFun();
        }
    });
}

function loadCss(cssPath, successFun, errorFun) {

    $.ajax({
        url: cssPath,
        type: "GET",
        async: true,
        success: function (html) {
            var s = document.createElement("link");
            s.rel = "Stylesheet";
            s.type = "text/css";
            s.src = cssPath;

            document.getElementsByTagName("head")[0].appendChild(s);

            if (successFun == null || successFun == undefined)
                return;

            successFun();
        },
        error: function () {
            if (errorFun == null || errorFun == undefined)
                errorFun();
        }
    });
}


function subString(str, len, hasDot) 
{ 
    var newLength = 0; 
    var newStr = ""; 
    var chineseRegex = /[^\x00-\xff]/g; 
    var singleChar = ""; 
    var strLength = str.replace(chineseRegex,"**").length; 
    for(var i = 0;i < strLength;i++) 
    { 
        singleChar = str.charAt(i).toString(); 
        if(singleChar.match(chineseRegex) != null) 
        { 
            newLength += 2; 
        }     
        else 
        { 
            newLength++; 
        } 
        if(newLength > len) 
        { 
            break; 
        } 
        newStr += singleChar; 
    } 
     
    if(hasDot && strLength > len) 
    { 
        newStr += "..."; 
    } 
    return newStr; 
} 

