function SetFieldValue(FieldName, FieldValue)
{
   FieldName.value = FieldValue;
}

function FormSubmit(Form)
{
   Form.submit();
}

function changeImages() {
   if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

function ValidateSelectionsAndSubmit(form, bool, action)
{
   if (bool == "true") { // if bool = true, then we need to save the selections.
      i = form.SelectionID.selectedIndex;
      if ((form.SelectionName.value == "") && (form.SelectionID[i].text == "(Empty)")) {
         alert("You need to specify a unique name to save to a new selection.");
         form.SelectionName.focus();
         return;
      } else if (form.SelectionName.value == ""){
         SetFieldValue(form.SelectionName, form.SelectionID[i].text);
      }
   }
   SetFieldValue(form.save, bool);
   SetFieldValue(form.action, action);
   FormSubmit(form);
}

function LoadSelection(form, action)
{
   i = form.SelectionID.selectedIndex;
   if (form.SelectionID[i].text == "(Empty)") {
      alert("You cannot load an empty selection.");
      return;
   }
   SetFieldValue(form.action, action);
   FormSubmit(form);
}

function DeleteSelection(form, action)
{
   i = form.SelectionID.selectedIndex;
   if (form.SelectionID[i].text == "(Empty)") {
      alert("You cannot delete an empty selection.");
      return;
   } else if (form.SelectionID[i].text == "Key Products") {
      alert("You cannot delete the Key Products selection.");
      return;
   }

	 if ( confirm("Do you really want to delete the selection named " + form.SelectionID[i].text + "?") ) {
	   SetFieldValue(form.action, action);
  	 FormSubmit(form);
	 } else return;
}

function OpenHelpWindow()
{
   newwin = window.open('../common/help.asp', '_new_', 'width=500,height=400');
   newwin.focus();
}

function DisplaySelectionLabel(formfield) {
   if (formfield.name == "genericID") {
      return "CATEGORY";
   } else if (formfield.name == "stateID") {
      return "STATE";
   } else if (formfield.name == "containerID") {
      return "CONTAINER";
   } else if (formfield.name == "originID") {
      return "ORIGIN";
   } else if (formfield.name == "marketID") {
      return "MARKET";
   } else if (formfield.name == "priceID") {
      return "PRICE";
   } else if (formfield.name == "publicationID") {
      return "PUBLICATION";
   } else if (formfield.name == "buyingGroupID") {
      return "BANNER";
   } else if (formfield.name == "companyID") {
      return "SUPPLIER";
   } else if (formfield.name == "brandID") {
      return "BRAND";
   } else if (formfield.name == "packSizeID") {
      return "PACK SIZE";
   } else if (formfield.name == "yearID") {
      return "YEAR";
   } else if (formfield.name == "displayID") {
      return "DISPLAY";
   } else if (formfield.name == "warehouseID") {
      return "WAREHOUSE";
   } else if (formfield.name == "majorbrandID") {
      return "MAJOR BRAND";
   } else if (formfield.name == "subbrandID") {
      return "SUB BRAND";
   } else if (formfield.name == "adsizeID") {
      return "AD SIZE";
   } else if (formfield.name == "licenseNumber") {
      return "LICENSE NUMBER";
   } else if (formfield.name == "licenseNumberNSW") {
      return "New LICENSE NUMBER";
   } else if (formfield.name == "tradingName") {
      return "TRADING NAME";
   } else if (formfield.name == "ABN") {
      return "ABN";
   } else if (formfield.name == "ACN") {
      return "ACN";
   } else if (formfield.name == "RBN") {
      return "RBN";
   } else if (formfield.name == "crclass") {
      return "CLASS";
   } else if (formfield.name == "suburb") {
      return "SUBURB";
   } else if (formfield.name == "postcodefrom") {
      return "POSTCODE FROM";
   } else if (formfield.name == "postcodeto") {
      return "POSTCODE TO";
   } else if (formfield.name == "metroCountry") {
      return "METRO/COUNTRY";
   } else if (formfield.name == "familyName") {
      return "FAMILY NAME";
   } else if (formfield.name == "givenName") {
      return "GIVEN NAME";
   } else if (formfield.name == "howHeldName") {
      return "HOW HELD NAME";
   } else if (formfield.name == "LMACode") {
      return "LMA CODE";
   } else if (formfield.name == "Channel") {
      return "CHANNEL";
   } else if (formfield.name == "SubChannel") {
      return "SUB CHANNEL";
   } else if (formfield.name == "ChannelCategory") {
      return "CHANNEL CATEGORY";
   } else if (formfield.name == "banner") {
      return "BANNER";
   } else {
      return "";
   }
}

/*
2009-06-26/sw: DisplaySelectionLabelNew is a semi copy of DisplaySelectionLabel
	 To output a label for Selection tab. Currently it is being used by BPM application only due to
 			the	new design.
*/
function DisplaySelectionLabelNew(formfield) {
   if (formfield.name == "genericID") {
      return "<b>Category: </b>";
   } else if (formfield.name == "stateID") {
      return "<b>State: </b>";
   } else if (formfield.name == "containerID") {
      return "<b>Container: </b>";
   } else if (formfield.name == "publicationID") {
      return "<b>Publication: </b>";
   } else if (formfield.name == "buyingGroupID") {
      return "<b>Banner: </b>";
   } else if (formfield.name == "companyID") {
      return "<b>Supplier: </b>";
   } else if (formfield.name == "brandID") {
      return "<b>Brand: </b>";
   } else if (formfield.name == "packSizeID") {
      return "<b>Pack Size: </b>";
   } else if (formfield.name == "yearID") {
      return "<b>Year: </b>";
   } else if (formfield.name == "displayID") {
      return "<b>Display: </b>";
   } else if (formfield.name == "warehouseID") {
      return "<b>Warehouse: </b>";
   } else if (formfield.name == "majorbrandID") {
      return "<b>Major Brand: </b>";
   } else if (formfield.name == "subbrandID") {
      return "<b>Sub Brand: </b>";
   } else if (formfield.name == "adsizeID") {
      return "<b>Ad Size: </b>";
   } else {
      return "";
   }
}

function DisplaySelectionNew(formId, cName) {
   var bFirstElement, strTemp;
	 strTemp = "";
   document.getElementById("results-area").innerHTML = "";
   for (i=0, n=formId.elements.length; i<n; i++)
      if (formId.elements[i].className.indexOf(cName) != -1) {
          if (formId.elements[i].selectedIndex != -1) {
						strTemp = strTemp + "\n" + "<div class='selected'>" + DisplaySelectionLabelNew(formId.elements[i]) + "<span class='value'>";
						bFirstElement = true;
						for (j=0;j<formId.elements[i].length;j++)
                if (formId.elements[i][j].selected) {
									if ( bFirstElement ) {
										bFirstElement = false;
									} else {
										strTemp = strTemp + ", ";
									}
                  strTemp = strTemp + formId.elements[i][j].text;
                }
						strTemp = strTemp + "</span></div>";
						}
      }
   document.getElementById("results-area").innerHTML = strTemp;
}

function DisplaySelection(formId, cName) {
//   formId.SelectionDisplay.value = "SELECTED OPTIONS";
   var bFirstElement;
   bFirstElement = "true";
   formId.SelectionDisplay.value = "";
   for (i=0, n=formId.elements.length; i<n; i++)
      if (formId.elements[i].className.indexOf(cName) != -1) {
          if (formId.elements[i].selectedIndex != -1) {
	      if (bFirstElement == "true") {
            formId.SelectionDisplay.value = formId.SelectionDisplay.value + DisplaySelectionLabel(formId.elements[i]);
		  			bFirstElement = "false";
	      } else {
            formId.SelectionDisplay.value = formId.SelectionDisplay.value + "\n\n" + DisplaySelectionLabel(formId.elements[i]);
        }
              for (j=0;j<formId.elements[i].length;j++)
                  if (formId.elements[i][j].selected) {
                      formId.SelectionDisplay.value = formId.SelectionDisplay.value + "\n" + formId.elements[i][j].text;
                  }
          }
      }
}


function DisplayCreditSelection(formId, cName) {
   var bFirstElement;
   bFirstElement = "true";
   formId.SelectionDisplay.value = "";
   for (i=0, n=formId.elements.length; i<n; i++)
      if (formId.elements[i].className.indexOf(cName) != -1) {
          if (formId.elements[i].selectedIndex != -1) {
	      if (bFirstElement == "true") {
                  formId.SelectionDisplay.value = formId.SelectionDisplay.value + DisplaySelectionLabel(formId.elements[i]);
		  bFirstElement = "false";
	      } else {
                  formId.SelectionDisplay.value = formId.SelectionDisplay.value + "\n\n" + DisplaySelectionLabel(formId.elements[i]);
              }
              // this is to handle input-text-type field in the form to be displayed on the right-hand selection box
              if ((formId.elements[i].value != "") && ((formId.elements[i].name != "crclass") && (formId.elements[i].name != "Channel") && (formId.elements[i].name != "SubChannel") && (formId.elements[i].name != "ChannelCategory") && (formId.elements[i].name != "banner"))) {
                  formId.SelectionDisplay.value = formId.SelectionDisplay.value + "\n" + formId.elements[i].value;
              } else {
                for (j=0;j<formId.elements[i].length;j++) {
                  if (formId.elements[i][j].selected) {
                      formId.SelectionDisplay.value = formId.SelectionDisplay.value + "\n" + formId.elements[i][j].text;
                  }
                }
              }
          }
      }
}

function checkNumeric(objName)
{
  // only allow 0-9 be entered
  var checkOK = "0123456789"
  var checkStr = objName;
  var allValid = true;

  for (i = 0;  i < checkStr.value.length;  i++) {
    ch = checkStr.value.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j)) break;
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
  }
  return allValid;
}

function isLeapYear(year) {
	return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
}

function clearDate(selectObj)
{
  count=selectObj.options.length;
  for (i=count-1;i>=0;i--) selectObj.options[i].selected=false;
  for (i=count-1; i>=0; i--) {
			selectObj.remove(i);
			if (navigator.appName=="Netscape") {
				if (selectObj.childNodes[i]!=null) selectObj.removeChild(selectObj.childNodes[i]);
			}
			else {
				if (selectObj.options[i]!=null) selectObj.options.remove(i);
			}
  }
}

function setOptionDate(month, year, field)
{
   var j;

   // remove everything
   clearDate(field);

   if (month == "All") {
      field.disabled = true;
   } else {
      field.disabled = false;

     // determine how many days
     if ((month == "Jan") || (month == "Mar") || (month == "May") || (month == "Jul") || (month == "Aug") || (month == "Oct") || (month == "Dec")) j = 31;
     else if ((month == "Apr") || (month == "Jun") || (month == "Sep") || (month == "Nov")) j = 30;
     else if ((month == "Feb") && (isLeapYear(year))) j = 29;
     else j = 28;

     // add new ones
     for (var i=0;i<j;i++){
       field.options[i] = new Option(i+1, i+1);
     }
   }

}

function setDateComplete(field, datefield, monthyearfield)
{
   monthyearIndex = monthyearfield.selectedIndex;
   mymonthyear = monthyearfield[monthyearIndex].text;

   if (mymonthyear == "All") {
      field.value = "";
   } else {
      dateIndex = datefield.selectedIndex;
      mydate = datefield[dateIndex].text;
      field.value = mydate + " " + mymonthyear;
   }
}

function getDateIndex(field) {
  var len;

  if (field.value != "") {
    if (field.value.length == 11) { // 11 = date (2) + space (1) + month (3) + space (1) + year (4)
      len = 2;
    } else if (field.value.length == 10) {
      len = 1;
    }
    return field.value.substr(0, len) - 1; // index 0 is date 1, index 1 is date 2, and so on
  } else return 0; // default value is index 0
}

function setDateSelected(field, datefield) {
  var myindex;

  myindex = getDateIndex(field);
  datefield.selectedIndex = myindex;
}
function setSelectIndex(options, value){
	 for (var i=0; i<options.length; i++ ) {
			if (options[i].text == value ) {
				 return i;
			}
	 }
	 return 0;
}

function swapDiv(shIDHide, shIDShow) {
	if ((document.getElementById(shIDHide)) && (document.getElementById(shIDShow))) {
			document.getElementById(shIDHide).style.display = 'none';
			document.getElementById(shIDShow).style.display = 'block';
			document.getElementById(shIDShow).style.display = 'inline';
	}
}

function toggle(divID) {
	var ele = document.getElementById(divID);
	if(ele.style.display == "block") {
    ele.style.display = "none";
	}
	else {
		ele.style.display = "block";
	}
}

