// JavaScript Document
// Created by Otto Saayman on 11 January 2008

/*

Contains commonly used functions

*/

function URL_Encode (strIn, strDefault) {

 var ObjStr = new String (strIn);

 strIn = ObjStr.replace('/', '%2F');

 var ObjStr = new String (strIn);

 if (ObjStr.length <= 0) {
  strIn = strDefault;
 }

 var strOut = escape (strIn);

 return strOut;

}

function replaceAll (strHaystack, strNeedle, strReplace) {

 strHaystack = new String (strHaystack);

 while (strHaystack.indexOf (strNeedle) >= 0) {
  strHaystack = strHaystack.replace (strNeedle, strReplace);
 }

 return strHaystack;

}

function fnShowHideAccordian (objShowHide, objImg, strHideImg, strShowImg) {

 if (objShowHide.style.display == '') {
  objShowHide.style.display = 'none';
  objImg.src = strHideImg;
 } else {
  objShowHide.style.display = '';
  objImg.src = strShowImg;
 }

}

objGlobalFrequency = '';
objGlobalStartDateYear = '';
objGlobalStartDateMonth = '';
objGlobalStartDateDay = '';
objGlobalNOP = '';
objTotal = '';

function populateGlobals (intFormItemID) {
 objGlobalFrequency = document.getElementById('frmItem_' + intFormItemID);
 objGlobalStartDateYear = document.getElementById('donate_start_date_' + intFormItemID + '_year');
 objGlobalStartDateMonth = document.getElementById('donate_start_date_' + intFormItemID + '_month');
 objGlobalStartDateDay = document.getElementById('donate_start_date_' + intFormItemID + '_day');
 objGlobalNOP = document.getElementById('frmItem_nop_' + intFormItemID);
}
function clearDGA( classToClear, skipThisOne )
{
  $$("."+classToClear).each( function( s )
  {
    if( s.id != skipThisOne )
    {
      s.value = '';
    }
  });
}

function buildProductArrayFreeForm( formId, addAmount, recurringId, formType )
{
	total = 0;
	if( formType == undefined )
  {
    formType = 'FFD';
  }
	//total up all items on donation form
	$$('.'+ formType +'_'+formId).each( function (s){
		
		if( !isNaN( s.value ) && formType=="FFD")
                        total = Number(total) + Number(s.value);
	});
  if( formType == "FFD" )
  {
	  total = total.toFixed(2)
	  //change the total line for the donation form
  	$('total_'+formId).innerHTML = '$'+total;
  }
	//update the recurring total field used in calcfrequency	
	objProductList = document.getElementById("product_" + formId);
	objProductList.value = total + '**Donation';
	
	populateGlobals (recurringId);

}




 function buildBetterProductArray( value, desc, intFormID, intFormItemID, intFormListItemID )
 {
        populateGlobals (intFormItemID)

          var strPFieldName = "product_" + intFormID;
          var strDonateFieldName = "donation_value_" + intFormID + '_' + intFormListItemID;
        
          var product   = document.getElementById(strPFieldName);
          var  price;
          var description;
        
          /*Get Value from textfield*/
        
          productArr = new Array();
          intPACnt = 0;
        
          if( value == 0 ){
        
                price = document.getElementById(strDonateFieldName).value;
        
                if (isNaN (price)) {
                 return false;
                }   
        
                productArr[intPACnt++] = Array (price, 'Your chosen amount');
        
           }   
           else{
                productArr[intPACnt++] = desc.split (' - ');
           }   
        
           objProductList = document.getElementById(strPFieldName);
        
           if (objProductList) {
        
                objProductList.value = ''; 

            for (intPCnt = 0; intPCnt < intPACnt; intPCnt++) {
                 if (intPCnt > 0) {
                  objProductList.value += '##';
                 }   
                 objProductList.value += productArr[intPCnt][0] + '**' + productArr[intPCnt][1];
            }   
   } 
 }

 function buildProductArray( value, desc, intFormID, intFormItemID ){
 
  populateGlobals (intFormItemID)

  var strPFieldName = "product_" + intFormID;
  var strDonateFieldName = "donation_value_" + intFormID;

  var product   = document.getElementById(strPFieldName);
  var  price;
  var description;

  /*Get Value from textfield*/

  productArr = new Array();
  intPACnt = 0;

  if( value == 0 ){

	price = document.getElementById(strDonateFieldName).value;

	if (isNaN (price)) {
	 alert ('Your chosen amount must be a number!');
	 return false;
	}

	productArr[intPACnt++] = Array (price, 'Your chosen amount');

   }
   else{
	productArr[intPACnt++] = desc.split (' - ');
   }

   objProductList = document.getElementById(strPFieldName);

   if (objProductList) {

	objProductList.value = '';

    for (intPCnt = 0; intPCnt < intPACnt; intPCnt++) {
	 if (intPCnt > 0) {
	  objProductList.value += '##';
	 }
	 objProductList.value += productArr[intPCnt][0] + '**' + productArr[intPCnt][1];
    }

   }
     
}

function calcFrequency (intFormID, intFormItemID) {


 populateGlobals (intFormItemID);

 if (!objGlobalFrequency) {
  return false;
 

 }

 
 
 //If this is a Once-Off payment, disable the recurring drop-down
 if(document.getElementById("frmItem_" + intFormItemID).value == ''){
    document.getElementById("frmItem_nop_" + intFormItemID).disabled = true;
    document.getElementById("frmItem_nop_" + intFormItemID).selectedIndex = 0;
 } else {
    document.getElementById("frmItem_nop_" + intFormItemID).disabled = false;
 }


 objSelectFreq = objGlobalFrequency;
 var strPFieldName = "product_" + intFormID;
 var strSummaryName = "Summary_" + intFormID;

 //alert (strPFieldName);

 if (objSelectFreq.value) {

  objSummary = document.getElementById(strSummaryName);

 // arrOnItem = String.split (document.getElementById(strPFieldName).value, '**');
 itemToSplit = $(strPFieldName);
  if( itemToSplit )
  {
	  stringToSplit = $(strPFieldName).value;
	  arrOnItem = stringToSplit.split ('**');
  }
  else
  {
	  
	  arrOnItem[0] = '0.00';
	  arrOnItem[1] = 'Donation';
  }
  strOut = '$' + arrOnItem[0] + ' - ' + arrOnItem[1] + '<br />' + 'Frequency: '
   + objSelectFreq.options[objSelectFreq.selectedIndex].text;

  if (objGlobalStartDateYear.value) {
   strOut += '<br />Start Date: ' + objGlobalStartDateDay.options[objGlobalStartDateDay.selectedIndex].text
	+ ' ' + objGlobalStartDateMonth.options[objGlobalStartDateMonth.selectedIndex].text
	+ ' ' + objGlobalStartDateYear.options[objGlobalStartDateYear.selectedIndex].text;
  }

  if (objGlobalNOP.value) {
   strOut += '<br />Number of Payments: ' + objGlobalNOP.value
	+ '<br /><br /><strong>Total Amount: </strong>$' + (arrOnItem[0] * objGlobalNOP.value);
  }

  //objSummary.innerHTML = strOut;

 } else {

  objSummary = document.getElementById(strSummaryName);

  arrOnItem = String.split (document.getElementById(strPFieldName).value, '**');

  strOut = '$' + arrOnItem[0] + ' - ' + arrOnItem[1] + '<br />' + 'Frequency: Once-Off Only';

  //objSummary.innerHTML = strOut;

 }

 //var strFreqPeriod = 'lblFreqPeriod_' + intFormID;

 //if (document.getElementById(strFreqPeriod)) {
 // document.getElementById(strFreqPeriod).innerHTML = objSelectFreq.options[objSelectFreq.selectedIndex].text;
 //}

 var strMPledge = 'lblMonthlyPledge_' + intFormID;

 if (document.getElementById(strMPledge)) {
  document.getElementById(strMPledge).innerHTML = '$' + arrOnItem[0];
 }

 var strTPledge = 'lblTotalPledge_' + intFormID;

 if (document.getElementById(strTPledge)) {
  document.getElementById(strTPledge).innerHTML = '$' + (arrOnItem[0] * objGlobalNOP.value);
 }

}

function showRecurring (objCkBox, intFormID) {

 strDivName = 'divRecurringShow_' + intFormID;

 if (objCkBox.checked) {
  document.getElementById(strDivName).style.display = '';
 } else {
  document.getElementById(strDivName).style.display = 'none';
 }
}

function checkAll(field)
{
for (i = 0; i < field.length; i++)
	field[i].checked = true ;
}

function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
	field[i].checked = false ;
}

function getContacts(){
    var contact_ids =""
    for(var i=0; i < document.response_form.category.length; i++){
    if(document.response_form.category[i].checked)
    contact_ids += document.response_form.category[i].value;
    }
    if(contact_ids ==""){
       contact_ids = "";
       return contact_ids;
    }else{
        return contact_ids;
    }
}

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function


function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function


function DisableButton(b)
{
      //b.disabled = true;
	br = document.createElement("input");
	b.insert({ "after":br });
	br.style.display = 'none';
	br.name = 'commit';
	br.value = 'submit';
	b.style.display = 'none';
      //b.value = 'Submitting';
      b.form.submit();
}

function resetDateFields (intFormItemID) {

  var currentTime = new Date();
  var month = currentTime.getMonth() + 1;
  var day = currentTime.getDate();
  var year = currentTime.getFullYear();

  var yearfield_name = "donate_start_date_"+intFormItemID+"[year]";
  var monthfield_name = "donate_start_date_"+intFormItemID+"[month]";
  var datefield_name = "donate_start_date_"+intFormItemID+"[day]";
  document.getElementsByName(yearfield_name)[0].value=year;
  document.getElementsByName(monthfield_name)[0].value=month;
  document.getElementsByName(datefield_name)[0].value=day;

 }

