home *** CD-ROM | disk | FTP | other *** search
/ internet.au CDrom 42 / NETCD42.iso / web / w95 / dream2.exe / data1.cab / Program_Files / Configuration / Inspectors / keywords.js < prev    next >
Encoding:
JavaScript  |  1998-11-30  |  3.3 KB  |  93 lines

  1.  
  2.  
  3. //form field names:
  4. //Keywords - text field
  5.  
  6. // *********** GLOBAL VARS *****************
  7.  
  8. var helpDoc = "html/204.creatingdocuments.fm22.html";
  9.  
  10.  
  11. // ******************** API ****************************
  12. function canInspectSelection(){
  13.  
  14.   var metaObj = getSelectedObj();
  15.   return (metaObj.tagName && metaObj.tagName=="META" &&
  16.           metaObj.getAttribute("name") && 
  17.           metaObj.getAttribute("name").toLowerCase()=="keywords");
  18. }
  19.  
  20. function inspectSelection(){
  21.   var inspectorState = arguments[0],currKeyVal;
  22.   var contentLayer = findObject("contentField");
  23.   var contentCell = contentLayer.getElementsByTagName("TD").item(0);
  24.   var minText= '<textarea name="Keywords" onBlur="setMetaTag()" '
  25.   + 'style="width:350;height:32" rows="2" wrap="virtual"></textarea>'
  26.   var maxText='<textarea name="Keywords" onBlur="setMetaTag()" '
  27.   + 'style="width:350;height:76" rows="4" wrap="virtual"></textarea>';
  28.   //change inspector state if needed
  29.   //the rows=2 and rows=4 check determines whether current state is min or max
  30.   if (inspectorState=="min"&& (findString('rows="4"',contentCell.innerHTML)||contentCell.innerHTML=="")){
  31.     currKeyVal = findObject("Keywords").value;
  32.     contentCell.innerHTML=minText;
  33.     findObject("Keywords").value = currKeyVal;
  34.   }    
  35.   else if (inspectorState=="max" && (findString('rows="2"',contentCell.innerHTML)||contentCell.innerHTML=="")){
  36.     currKeyVal = findObject("Keywords").value; 
  37.     contentCell.innerHTML=maxText; 
  38.     findObject("Keywords").value = currKeyVal;
  39.   }     
  40.   if (getSelectedObj().getAttribute("content"))     
  41.     findObject("Keywords").value= getSelectedObj().getAttribute("content");
  42.   else
  43.     findObject("Keywords").value="";
  44. }
  45.  
  46. function findString(stringToFind,stringToLookIn){
  47.   if (stringToLookIn.indexOf(stringToFind)==-1)
  48.     return false;
  49.   return true;    
  50. }
  51.  
  52.  
  53. // ******************** LOCAL FUNCTIONS ****************************
  54.  
  55. function setMetaTag(){
  56.   getSelectedObj().setAttribute("content",findObject("Keywords").value);
  57. }
  58.  
  59.  
  60. // ******************** GENERIC FUNCTIONS ****************************
  61.  
  62.  
  63. function findObject(objName,  parentObj) {
  64.   var i,tempObj="",found=false,curObj = "";
  65.   var NS = (navigator.appName.indexOf("Netscape") != -1);
  66.   if (!NS && document.all) curObj = document.all[objName]; //IE4
  67.   else {
  68.     parentObj = (parentObj != null)? parentObj.document : document;
  69.     if (parentObj[objName] != null) curObj = parentObj[objName]; //at top level
  70.     else { //if in form
  71.       if (parentObj.forms) for (i=0; i<parentObj.forms.length; i++) {  //search level for form object
  72.         if (parentObj.forms[i][objName]) {
  73.           curObj = parentObj.forms[i][objName];
  74.           found = true; break;
  75.       } }
  76.       if (!found && NS && parentObj.layers && parentObj.layers.length > 0) {
  77.         parentObj = parentObj.layers;
  78.         for (i=0; i<parentObj.length; i++) { //else search for child layers
  79.           tempObj = findObject(objName,parentObj[i]); //recurse
  80.           if (tempObj) { curObj = tempObj; break;} //if found, done
  81.   } } } }
  82.   return curObj;
  83. }
  84.  
  85. // ******************* GENERIC DOM MANIPULATION FUNCTIONS ****************************
  86.  
  87. //Returns the selected object
  88. function getSelectedObj() {
  89.   var selArr=dreamweaver.getSelection();
  90.   return dreamweaver.offsetsToNode(selArr[0],selArr[1]);
  91. }
  92.  
  93.