var num10 = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
function isvalid(s,val)
{
  if (s == "") return false;
  for (i=0; i<s.length; i++){if (val.indexOf(s.charAt(i),0) == -1) return false;}
  return true;
}
function isdigit(c){var n=c.charCodeAt(0);return 47<n&&n<58;}
function alldigits(s) {return isvalid(s,num10);}
function islower(c){var n=c.charCodeAt(0);return 96<n&&n<123;}
function alllower(s) {return isvalid(s,lwr);}
function isupper(c){var n=c.charCodeAt(0);return 64<n&&n<91;}
function allupper(s) {return isvalid(s,upr);}
function isalpha(c){var n=c.charCodeAt(0);return 96<n&&n<123||64<n&&n<91;}
function allalpha(s) {return isvalid(s,lwr+upr);}
function isalphnum(c){var n=c.charCodeAt(0);return 96<n&&n<123||64<n&&n<91||47<n&&n<58;}
function allalphanum(s) {return isvalid(s,lwr+upr+num10);}

function StyleLeft(yu)
{
	if(shiIE)
		return yu.style.pixelLeft;
	var zuo=parseInt(yu.style.left);
	return zuo;
}
function StyleTop(yu)
{
	if(shiIE)
		return yu.style.pixelTop;
	var zuo=parseInt(yu.style.top);
	return zuo;
}
function SetStyleLeft(yu,zhi)
{
	if(shiIE)
		yu.style.pixelLeft=zhi;
	else
		yu.style.left=zhi+"px";
}
function SetStyleTop(yu,zhi)
{
	if(shiIE)
		yu.style.pixelTop=zhi;
	else
		yu.style.top=zhi+"px";
}
function GetStyleWidth(yu)
{
	if(shiIE)
		return yu.style.pixelWidth;
	return parseInt(yu.style.width);
}
function SetStyleWidth(yu,zhi)
{
	if(shiIE)
		yu.style.pixelWidth=zhi;
	else
		yu.style.width=zhi+"px";
}
function togzichuan(c1,c2,chag)
{
	var w;
	for(w=0;w<chag;w++)
	{
		if(c1.charCodeAt(w)!=c2.charCodeAt(w))
			return 0;
	}
	return 1;
}
function Cpy2Clip(maintext)
{
   if (window.clipboardData) {
      return (window.clipboardData.setData("Text", maintext));
   }
   else if (window.netscape) {
      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
      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=maintext;
      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;
   }
   return false;
}
function getClipboard()
{
   if (window.clipboardData)
      return(window.clipboardData.getData('Text'));
   else if (window.netscape)
   {
      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
      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');
      clip.getData(trans,clip.kGlobalClipboard);
      var str = new Object();
      var len = new Object();
      try{
         trans.getTransferData('text/unicode',str,len);
      }
      catch(error){
         return null;
      }
      if(str)
	  {
		if(Components.interfaces.nsISupportsWString)
			str=str.value.QueryInterface(Components.interfaces.nsISupportsWString);
		else if(Components.interfaces.nsISupportsString)
			str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
		else
			str = null;
      }
      if(str)
         return(str.data.substring(0,len.value / 2));
   }
   return null;
}
function getSelectedText()
{
    if(shiIE)
        return document.selection.createRange().text;
	if(focusElem.selectionStart || focusElem.selectionStart == '0')
		return focusElem.value.substring(focusElem.selectionStart,focusElem.selectionEnd);
    else if(window.getSelection)
	{
        // This technique is the most likely to be standardized.
        // getSelection() returns a Selection object, which we do not document.
        return window.getSelection().toString();
    }
    else if (document.getSelection) {
        // This is an older, simpler technique that returns a string
        return document.getSelection();
    }
}
function GetSelObj()
{
    if(shiIE)
		return document.selection.createRange();//.text;
    if(window.getSelection)
	{
        // This technique is the most likely to be standardized.
        // getSelection() returns a Selection object, which we do not document.
        return window.getSelection();//.toString();
    }
    else if (document.getSelection) {
        // This is an older, simpler technique that returns a string
        return document.getSelection();
    }
}

// Get current focused element (IE 4+  and now also for NN6+)
//focused = document.activeElement;
//var caretPos = document.selection.createRange();
//textBox.__boundingTop = caretPos.boundingTop;
//textBox.__boundingLeft = caretPos.boundingLeft;

/*
function PaiXu(arr)
{
	var t,swapped=true;
	while(swapped)
	{
		swapped=0;
		for(i=0;i<arr.length-1;i++)
		{
			if(arr[i][1]>arr[i+1][1])
			{
		        t=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=t;
				swapped=1;
			}
		}
	}
}
function setCaret(id,pos)
{
　　var textbox = document.all(id);
　　var r = textbox.createTextRange(); 
　　r.collapse(true); 
　　r.moveStart('character',pos); 
　　r.select();
}*/

