/* ---------------------------------------------------------------------------------------------------
   ePages 5 - epages_scripts.js $Revision: 1.120.2.1 $
   ---------------------------------------------------------------------------------------------------
   Required JavaScript Packages:
   presentation_event.js
   --------------------------------------------------------------------------------------------------- */

/* - General Functions ------------------------------------------------------------------------------- */

function openWindow(URL,windowName,features) {
  var PathToStoreFront=null;
  if(openWindow.arguments.length>3) {
      PathToStoreFront=openWindow.arguments[3];
  }
  if(features=="PopUp") {
    features="width=1000, height=730, toolbar=no, status=no, resizable=yes, menubar=no, location=no, scrollbars=yes";
  }
  if(features=="PopUpPrint") {
    features="width=790, height=580, toolbar=yes, status=no, resizable=yes, menubar=yes, location=no, scrollbars=yes";
  }
  if(features=="RTE" || windowName=="RTE") {
    features="width=800, height=600, toolbar=no, status=no, resizable=yes, menubar=no, location=no, scrollbars=yes";
  }
  if(features=="HelpWindow") {
    features="width=1000, height=730, toolbar=no, status=no, resizable=yes, menubar=no, location=no, scrollbars=yes";
    windowName="WWHFrame";
   }
  if(features=="StylePreview") {
    features="width=470, height=310, toolbar=no, status=no, resizable=no, menubar=no, location=no, scrollbars=no";
    windowName="StylePreview";
   }
  if(features=="DetailedImageView") {
    features="width=1000, height=730, toolbar=no, status=no, resizable=yes, menubar=no, location=no, scrollbars=yes";
    windowName="StylePreview";
   }
  if(features=="CheckLink") {
    if(URL.indexOf("?") != 0) {
      splittedString = URL.split('//');
      if(splittedString.length ==1){
        URL ="http://"+URL;
      }
    } else if(PathToStoreFront!=null){
        URL = PathToStoreFront+URL;
    }
    features="toolbar=yes, status=yes, resizable=yes, menubar=yes, location=yes, scrollbars=yes";
  }

  newwin=window.open(URL,windowName,features);
  if(newwin) {
    newwin.focus();
  }

  return newwin;
}

function linkCorrection(oInputField) {
// inserts http protocol if there is no protocol
  var Value=oInputField.value;
  var splittedString = Value.split('//');
  if(Value.indexOf("?") != 0) {
    if(splittedString.length == 1){
      oInputField.value ="http://"+Value;
      ep_fireEvent("change", oInputField);
    }
  }
}

function OnCheckAll( form, name, checked ) {
// used to mark all check boxes in a list as "checked"
    for( var i=0; i<form.length; i++ ) {
        var input = form[i];
        if( input.nodeName == 'INPUT' )
            if( input.type == 'checkbox' && input.name == name && ! input.disabled )
                if( input.checked != checked )
                    input.checked = checked;
    }
}

function DeactivateButton(Button) {
// function to disable an input field
// Button must be an input/button object
     Button.disabled="true";
}

function EnableButton(Button) {
// function to enable an input field
// Button must be an input/button object
     Button.disabled="false";
}

function DisableLink(Link) {
  // function to disable a link
  document.getElementById(Link).className += ' Opacity40';
  document.getElementById(Link).href = 'javascript:void(0)';
  document.getElementById(Link).style.cursor = 'default';
  }


function changeImage(ImageID, ImageURL, ImageTitle) {
// changes the image url & title of an image element (specified by its id attribute)
  document.getElementById(ImageID).src = ImageURL;
  if (ImageTitle) {
    document.getElementById(ImageID).alt = ImageTitle;
  }
}

function OptionToChangeAction(select) {
  select.form.ChangeAction.value = select.options[select.selectedIndex].value;
}

function toggleDisplay(elementId) {
// this function switches the display properties of an element (specified by its id attribute)
// by changing the class name (HideElement / ShowElement)
  if (document.getElementById(elementId).className != 'HideElement') {
    document.getElementById(elementId).className = 'HideElement';
  } else {
    document.getElementById(elementId).className = 'ShowElement';
  }
}

function hideElement(elementId) {
    if(!document.getElementById(elementId).className.match(/HideElement/)) document.getElementById(elementId).className += ' HideElement';
}

function showElement(elementId) {
    document.getElementById(elementId).className=document.getElementById(elementId).className.replace(/HideElement/,"");
}

function changeDataById(newdata, id) {
  myobject = document.getElementById(id);
  if(myobject.firstChild) {
    myobject.firstChild.data = newdata;
  } else {
    mydata = document.createTextNode(newdata);
    myobject.appendChild(mydata);
  }
}

function getSelectedData(selectElement) {
// scans all option tags in a select tag to find the data of the selected item
  myNode= selectElement.firstChild;
  while (myNode!=null) {
    if(myNode.value==selectElement.value && myNode.value!="") {
      return myNode.firstChild.data;
    }
    myNode = myNode.nextSibling;
  }
  return "";
}

function checkBrowser() {
   var userAgent = navigator.userAgent.toLowerCase()
   this.isIE = (userAgent.indexOf('msie') != -1);
   this.isGecko = (userAgent.indexOf('gecko') != -1 && userAgent.indexOf('safari') == -1);
   this.isOpera = (userAgent.indexOf('opera') != -1)
   this.isRTECompatible= (this.isIE || this.isGecko);
}

var browser = new checkBrowser();

function disableFormFieldsInElement(ElementId) {
// disables all form fields that are sub elements of a given ElementId
  userattrinputs = document.getElementById(ElementId).getElementsByTagName("input");
  for(i=0; i < userattrinputs.length; i++) {
    userattrinputs[i].disabled=true;
    if(userattrinputs[i].type != 'checkbox' && userattrinputs[i].type != 'radio') {
        userattrinputs[i].className=userattrinputs[i].className+" Disabled";
    }
  }
  userattrtextareas = document.getElementById(ElementId).getElementsByTagName("textarea");
  for(i=0; i < userattrtextareas.length; i++) {
    userattrtextareas[i].disabled=true;
    userattrtextareas[i].className=userattrtextareas[i].className+" Disabled";
  }
  userattrselects = document.getElementById(ElementId).getElementsByTagName("select");
  for(i=0; i < userattrselects.length; i++) {
    userattrselects[i].disabled=true;
    userattrselects[i].className=userattrselects[i].className+" Disabled";
  }
}

function enableFormFieldsInElement(ElementId) {
// enables all form fields that are sub elements of a given ElementId
  userattrinputs = document.getElementById(ElementId).getElementsByTagName("input");
  for(i=0; i < userattrinputs.length; i++) {
    userattrinputs[i].disabled=false;
    userattrinputs[i].className=userattrinputs[i].className.replace(/ Disabled/,"");
    userattrinputs[i].className=userattrinputs[i].className.replace(/Disabled/,"");
  }
  userattrtextareas = document.getElementById(ElementId).getElementsByTagName("textarea");
  for(i=0; i < userattrtextareas.length; i++) {
    userattrtextareas[i].disabled=false;
    userattrtextareas[i].className=userattrtextareas[i].className.replace(/ Disabled/,"");
    userattrtextareas[i].className=userattrtextareas[i].className.replace(/Disabled/,"");
  }
  userattrselects = document.getElementById(ElementId).getElementsByTagName("select");
  for(i=0; i < userattrselects.length; i++) {
    userattrselects[i].disabled=false;
    userattrselects[i].className=userattrselects[i].className.replace(/ Disabled/,"");
    userattrselects[i].className=userattrselects[i].className.replace(/Disabled/,"");
  }
}

function disableFormFieldById(ElementId) {
// function to disable an input field specified by id
  var NeedDisabledClass=true;
  if(disableFormFieldById.arguments.length>1)NeedDisabledClass=disableFormFieldById.arguments[1];
  document.getElementById(ElementId).disabled=true;
  if(NeedDisabledClass) {
      document.getElementById(ElementId).className=document.getElementById(ElementId).className+" Disabled";
  }
}

function enableFormFieldById(ElementId) {
// function to enable an input field specified by id
  var NeedDisabledClass=true;
  if(enableFormFieldById.arguments.length>1)NeedDisabledClass=enableFormFieldById.arguments[1];
  document.getElementById(ElementId).disabled=false;
  if(NeedDisabledClass) {
      document.getElementById(ElementId).className=document.getElementById(ElementId).className.replace(/ Disabled/,"");
  }
}

function allowURLUpload() {
// requires
//   id "FileUpload" on the file upload input field
//   id "FileUpload2" on a hidden input field
  var FileUploadValue=document.getElementById('FileUpload').value;
  if(FileUploadValue.match(/http:../)||FileUploadValue.match(/https:../)){
    document.getElementById('FileUpload2').value=FileUploadValue;
    document.getElementById('FileUpload2').disabled=false;
    document.getElementById('FileUpload').disabled=true;
  }
}

function allowBulkURLUpload(ElementName) {
// all inputs of type file need a second hidden input for urls (initial disabled)
// - both elements must have the same name eg. name="Filename"
// - the id of the file upload element must look like this: id="FileName<ItemNo>"
// - the id of the hidden input must look like this: id="URLUpload<ItemNo>"

    var aryElements=document.getElementsByName(ElementName);
    for(var i=0; i < aryElements.length; i++) {
        var FileUploadValue=aryElements[i].value;
        var ElementType=aryElements[i].type;
        var FileUploadID=aryElements[i].id;
        if((FileUploadValue.match(/http:../)||FileUploadValue.match(/https:../)) && ElementType != "hidden"){
            document.getElementById(FileUploadID.replace(/FileName/,"URLUpload")).value=FileUploadValue;
            document.getElementById(FileUploadID.replace(/FileName/,"URLUpload")).disabled=false;
            document.getElementById(FileUploadID).disabled=true;
        }
    }
}


function setValue(Value, TargetID) {
    document.getElementById(TargetID).value=Value;
}

/* - Special Functions ------------------------------------------------------------------------------- */

function autofillAddress(changedObject) {
// this function fills out the "DisplayName" input field (name="DisplayName") automatically
// this function expects an object with the "changed" data --> CustomerGeneral.TabPage
  changedObject.form.DisplayName.value=changedObject.form.FirstName.value + ' ' + changedObject.form.LastName.value;
  if( changedObject.form.UserAlias ) {
    changedObject.form.UserAlias.value=changedObject.form.FirstName.value.slice(0,1) + changedObject.form.LastName.value;
  }
  if( changedObject.form.UserName ) {
    changedObject.form.UserName.value=changedObject.form.FirstName.value + ' ' + changedObject.form.LastName.value;
  }
}

function SFautofillAddress(FirstNameId, LastNameId, DisplayNameId) {
// this function fills out the "DisplayName" input field (name="DisplayName") automatically
  document.getElementById(DisplayNameId).value=document.getElementById(FirstNameId).value + ' ' + document.getElementById(LastNameId).value;
}

function setCurrentDate(currentDate, targetInputFieldID) {
// this function changes the value of an input field to the current date
  document.getElementById(targetInputFieldID).value=currentDate;
}


