
/**
 * Sets a Cookie with the given name and value.
 *
 * name       Name of the cookie
 * value      Value of the cookie
 * [expires]  Expiration date of the cookie (default: end of current session)
 * [path]     Path where the cookie is valid (default: path of calling document)
 * [domain]   Domain where the cookie is valid
 *              (default: domain of calling document)
 * [secure]   Boolean value indicating if the cookie transmission requires a
 *              secure transmission
 */
function setCookie(name, value, expires, path, domain, secure)
{
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "; path=/") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

/**
 * Gets the value of the specified cookie.
 *
 * name  Name of the desired cookie.
 *
 * Returns a string containing value of specified cookie,
 *   or null if cookie does not exist.
 */
function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1)
    {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
    {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

/**
 * Deletes the specified cookie.
 *
 * name      name of the cookie
 * [path]    path of the cookie (must be same as path used to create cookie)
 * [domain]  domain of the cookie (must be same as domain used to create cookie)
 */
function deleteCookie(name, path, domain)
{
    if (getCookie(name))
    {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "; path=/") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

/*
function body_onload(){
  setMainNav();  // sets the selected state of navigation;
  if(lcResources != null){
    fillResourceSel()
  }
  siteman = document.getElementById("sitemanblock");
  if(siteman){
   // alert('body_onload: siteman init');
    setTreeState();

  }
}
*/
// filles all select boxes named "FS" or startin gwith
// FS for "FILE SYSTEM"
function  setSelectField(fieldname, value,type){
  values = "";
  field = document.getElementById(fieldname);
  if(field){
		if(field.options){
		  for(i=0;i<field.options.length;i++){
		     val = field.options[i].text;
		     values +="["+val+"]";
		     if(val.indexOf(value) >= 0){
		       field.selectedIndex=i;
		       return true;
		     }
		  }
		}else{
			alert('this function only works on select boxes!');
		}
   }
   return true;
}
//?##################### FORM FUNCTIONS #########################################
function rowUp(el){
  prow = el.parentNode;
  while(prow.tagName != "TR"){
    prow = prow.parentNode;
  }
  ptable = prow.parentNode;
  while(ptable.tagName != "TBODY"){
    ptable = ptable.parentNode;
  }
  if(prow.previousSibling){
  		newRow = prow.cloneNode(true);
		prow.parentNode.insertBefore(newRow,prow.previousSibling);
		ptable.removeChild(prow);
		updateXML(ptable);
  }else{
    //alert('no go');
  }
}
function rowDown(el){
  prow = el.parentNode;
  while(prow.tagName != "TR"){
    prow = prow.parentNode;
  }
  ptable = prow.parentNode;
  while(ptable.tagName != "TBODY"){
    ptable = ptable.parentNode;
  }
	
  if(prow.nextSibling ){
   newRow = prow.cloneNode(true);
   if(prow.nextSibling.nextSibling){
    prow.parentNode.insertBefore(newRow,prow.nextSibling.nextSibling);
   }else{
    prow.parentNode.appendChild(newRow);
   }
   ptable.removeChild(prow);
   updateXML(ptable);
  }

}
function rowInsert(el){
  prow = el.parentNode;
  while(prow.tagName != "TR"){
    prow = prow.parentNode;
  }
  ptable = prow.parentNode;
  while(ptable.tagName != "TBODY"){
    ptable = ptable.parentNode;
  }
  newRow = prow.cloneNode(true);
  clearFields(newRow);
  prow.parentNode.insertBefore(newRow,prow);
  updateXML(ptable);
}
function rowDel(el){
  prow = el.parentNode;
  while(prow.tagName != "TR"){
    prow = prow.parentNode;
  }
  ptable = prow.parentNode;
  while(ptable.tagName != "TBODY"){
    ptable = ptable.parentNode;
  }
  if(ptable.childNodes.length > 1){
   ptable.removeChild(prow);
   updateXML(ptable);
  }
}

function updateXML(ptable,norepeat ){
  if(!norepeat){
    norepeat = false;
  }
   while(ptable.tagName != "TBODY"){
    ptable = ptable.parentNode;
   }
   var textElement = ptable;
   while(textElement.tagName != "SPAN"){
    textElement = textElement.parentNode;
   }

   textElement = textElement.previousSibling;
   while(textElement.tagName != "TEXTAREA"){
     textElement = textElement.previousSibling;
   }

   outputXML = "<object>";
   if(norepeat) outputXML += "<item>";
    
   for(var i = 0;i<ptable.childNodes.length;i++){
       if(ptable.childNodes[i].getElementsByTagName){
       if(!norepeat) outputXML += "<item>";
       xNodeS = ptable.childNodes[i].getElementsByTagName("INPUT");
       for(var T = 0;T<xNodeS.length;T++){
        if(xNodeS[T].name != ""){
         outputXML +="<"+xNodeS[T].name+">";
         outputXML +=xNodeS[T].value;
         outputXML +="</"+xNodeS[T].name+">";
         }
       }
       xNodeS = ptable.childNodes[i].getElementsByTagName("TEXTAREA");
       for(var T = 0;T<xNodeS.length;T++){
        if(xNodeS[T].name != ""){
         outputXML +="<"+xNodeS[T].name+">";
         outputXML +=xNodeS[T].value;
         outputXML +="</"+xNodeS[T].name+">";
         }
       }
       if(!norepeat) outputXML += "</item>";
       }
   }
   if(norepeat) outputXML += "</item>";
   outputXML += "</object>";
//alert(outputXML);
     if(textElement != null && textElement.value != null) {
		textElement.value = outputXML;
     } else {
		alert('Invalid HTML encountered.');
     }


}


function clearFields(row){
  for(var i = 0;i<row.childNodes.length;i++){
      node = row.childNodes[i];
      if(node.tagName=="INPUT" && node.type !='file'){
        node.value="";
      }
      if(node.tagName =="IMG" && node.className!="control"){
       node.src = '../../../images/spacing.html';
      }
      if(node.childNodes.length>0){
        clearFields(node);
      }
  }
}

function updateFile(el){
  filePath = el.value.toLowerCase();
  fileExt = filePath.substr(filePath.lastIndexOf('.')+1,filePath.length -( filePath.lastIndexOf('.')+1));
  dirspace = '\\';
  if(filePath.indexOf('../../../index.html') > 0){
    dirspace = '../../../index.html';
  }
  fileName = filePath.substr(filePath.lastIndexOf(dirspace)+1,filePath.length -( filePath.lastIndexOf(dirspace)+1));
  if(fileExt != "jpg" && fileExt != "gif" ){
    alert('you must upload a jpeg or a gif!');
  }else{
    prow = el.parentNode;
	while(prow.tagName != "TD"){
		prow = prow.parentNode;
	}
	previewImg  = prow.getElementsByTagName('IMG');
	if(previewImg.length >0){
	  previewImg[0].src = el.value.toLowerCase()
	}
	preTxt  = prow.getElementsByTagName('INPUT');
	for(var i=0;i <preTxt.length;i++){
     if(preTxt[i].name =='img'){
	    preTxt[i].value = el.value;
	    break;
	  }
	}
	updateXML(prow);
  }

}

function setQuickLink(field){
   var text = field.options[field.selectedIndex].text;
   while(text.indexOf('.') == 0){
     text = text.substr(1,text.length);
   }
   var url = field.options[field.selectedIndex].value;
   var frmElements = document.getElementsByTagName("INPUT");
   for(i=0;i< frmElements.length;i++ ){
      el = frmElements[i];
     if(el.name.toLowerCase() =="url" && el.value ==""){
        i++;
         el2 = frmElements[i];
        if(el2.name.toLowerCase() =="text"){
          el.value = url;
          el2.value = text;
			prow = el.parentNode;
			while(prow.tagName != "TD"){
				prow = prow.parentNode;
			}
			updateXML(prow);
         }
     }
   }
}
function goQuickLink(field){
  var url = field.options[field.selectedIndex].value;

  if(field.selectedIndex > 0){
  if(url.indexOf("http://") >=0){
    window.open(url);
  }else{
   document.location.href= url;
  }
 }
}
function setFileHolder(field, htmlel){
  el =document.getElementById(htmlel);
  if(field.value.length>0){
  if (el && el.src){
   el.src = field.value;
  }
  }
}

//#################################################
// admin navigation tree functions
function getStateEl(){
  imagestr = getCookie("siteman");
   output = new Array();
  if (imagestr != null && imagestr !=""){
    items = imagestr.split(";");
    for(i=0;i<items.length;i++){
      if(items[i] != ""){
        strItem = items[i];
        manageTreeImgID= strItem.split("=");
		strkey = manageTreeImgID[0];
		strval = manageTreeImgID[1];
        output[strkey]=strval;

      }
    }
  }

  return output;
}
function manageStateEl(){
  output ="";

  for(var i in imagelist){
      output +=i+"="+imagelist[i]+";";
  }
  setCookie("siteman",output);

}
var imagelist = null;
function setTreeState(){
   imagelist = getStateEl();
   //alert(imagelist.length);
    smanblock = document.getElementById("sitemanblock");
   // alert(smanblock);
    links = sitemanblock.getElementsByTagName("A");
    //alert(document.location);
    for(i=0;i<links.length;i++){
      //if(i==11){
      // alert(links[i]);
    //  }
     if(links[i].href ==document.location){
       links[i].className = 'active_tree';
     }
    }
    for(var i in imagelist){
     //alert(i);
     el = document.getElementById(i);
     if(el){
       if(imagelist[i] =='block'){
         toggleTree(el);
       }
     }
   }
}
function toggleTree(el){
   imgID = el.id;
   if(imagelist == null){
   imagelist = getStateEl();
   }
   tEl = el;
   while(tEl.tagName !="TD"){
     tEl = tEl.parentNode
   }
   tEl =tEl.nextSibling;
   while(tEl.tagName != "TD"){
     tEl=tEl.nextSibling;
   }
   tableEl = tEl;
   if(tEl.childNodes.length > 0){
     for(i=0;i<tEl.childNodes.length;i++){
       tableEl = tEl.childNodes[i];
       if(tableEl.tagName== "DIV"){
         break;
       }
     }
   }
  // alert(tableEl.outerHTML);
   if(tableEl != null && tableEl.tagName =="DIV"){

     if(tableEl.style.display =='none'){
      tableEl.style.display ='block';
      imagelist[imgID]="block";
      el.src="../../../TTMCMS/res/icons/minus.gif";
     }else{
      tableEl.style.display ='none';
      el.src="../../../TTMCMS/res/icons/plus.gif";
      imagelist[imgID]="none";
     }
     manageStateEl(imagelist);
   }


}

