function ChangeClass(el, name) {
	el.className = name;
	el.setAttribute("class", name);
}

function setOpacity( el, opacity){
    if(el.style.opacity != undefined){
        el.style.opacity = opacity;
    }else if( el.style.MozOpacity != undefined){
        el.style.MozOpacity = opacity;
    }else if ( el.style.filter != undefined){
        el.style.filter="alpha(opacity=" + Math.round(opacity * 100) + ")";
    }
} 

function phs_UpdateTextSelectedList(id,count) {
         var hdn_values = "";
         var show_values = "";
         for (i = 0;i < count; i++) {
             var chk = document.getElementById(id+"_chk_"+i);
             if (chk.checked == true) {
                if (hdn_values != "") hdn_values = hdn_values + ",";
                hdn_values = hdn_values + chk.value;
                if (show_values != "") show_values = show_values + ", ";
                show_values = show_values + phs_FilterAttribute(chk,"ChkShow");
             }
         }
         document.getElementById(id).value = show_values;
         document.getElementById(id+"_hdn").value = hdn_values;
         phs_ShowTextList(id);
}

function phs_ShowTextList(id) {
         var objDiv = document.getElementById(id+"_div");
         var objText = document.getElementById(id);
         var objHeight = objText.size;
         nav = navigator.userAgent;
         if (nav.indexOf("Firefox") > -1) {
           objHeight = objText.clientHeight;
       	 }
         phs_SnapTo(id+"_div",id,"",objHeight+1);
         if (objDiv.style.display == "none") {
            objDiv.style.display = "block";
         }else{
            objDiv.style.display = "none";
         }
}

function phs_FindPos(obj) {
     var curleft = curtop = 0;
     if (obj.offsetParent) {

        curleft = obj.offsetLeft;
        curtop = obj.offsetTop;
         while (obj = obj.offsetParent) {
               curleft += obj.offsetLeft;
               curtop += obj.offsetTop;
         }
     }
     return [curleft,curtop];
}


function phs_SnapTo(objName,TobjName,Xoffset,Yoffset){
  var obj = document.getElementById(objName);
  var Tobj = document.getElementById(TobjName);

  if (Xoffset == "") Xoffset = 0;
  if (Yoffset == "") Yoffset = 0;

  var TobjXY = phs_FindPos(Tobj);
  obj.style.left = TobjXY[0] - Tobj.width;
  obj.style.top = TobjXY[1] + Yoffset;
}

function phs_ShowHideObject(action,objName,TobjName,Xoffset,Yoffset) {
         phs_SnapTo(objName,TobjName,Xoffset,Yoffset);
         var obj = document.getElementById(objName);
         if (action == "show") {
            obj.style.display = "block";
         }else if (action == "hide") {
            obj.style.display = "none";
         }
}


function phs_ReDrawObject(obj,text) {
          //var obj = document.getElementById(ObjID);
          var obj_parent = obj.parentNode;

          obj_parent.removeChild(obj);

          if (obj.type == 'text') {
             objType = "password";
             objClass = "";
          }else{
             objType = "text";
             objClass = "ObjectDescriptionGray";
          }
          obj_parent.innerHTML = '<input type="' + objType + '" class="' + objClass + '" id="' + obj.id + '" name="' + obj.id + '" onfocus="' + phs_FilterAttribute(obj,"onfocus") + '" onblur="' + phs_FilterAttribute(obj,"onblur") + '" value="' + text + '">';

          obj = null;
}

function phs_ObjectDescription (obj, action, text, type) {
         if (action == "1") {
            if (obj.value == text) {
               if (type == "password") {
                 phs_ReDrawObject(obj,'');
               }else{
                 obj.value = "";
               }
            }
         }else if (action == "2") {
            if (obj.value == "") {
               if (type == "password") {
                 phs_ReDrawObject(obj,text);
               }else{
                 obj.value = text;
               }

            }
         }
}

function phs_FilterAttribute(obj,attribute) {
        var attribute_value = obj.getAttribute(attribute).toString();
        /*
        nav = navigator.userAgent;
        if (nav.indexOf("Firefox") > -1) {
      	    start = attribute_value.indexOf("{");
      	    end = attribute_value.lastIndexOf("}");
      	    attribute_value = attribute_value.substring(start+2,end-1);
      	}
      	*/
      	return attribute_value;
}

function phs_copyToClipboard(s)
{
	if( window.clipboardData && clipboardData.setData )
	{
		clipboardData.setData("Text", s);
	}
	else
	{
		// You have to sign the code to enable this or allow the action in about:config by changing
		//user_pref("signed.applets.codebase_principal_support", true);
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

		var clip = Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;

		// create a transferable
		var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;

		// specify the data we wish to handle. Plaintext in this case.
		trans.addDataFlavor('text/unicode');

		// To get the data from the transferable we need two new objects
		var str = new Object();
		var len = new Object();

		var str = Components.classes["@mozilla.org/supports-string;[[[[1]]]]"].createInstance(Components.interfaces.nsISupportsString);

		var copytext=meintext;

		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);	   
	}
}
