			 
	
		   var http_request = false;
		 
		   function makePOSTRequest(url, parameters, callBackFunction) {
		   	
		      http_request = false;
		      if (window.XMLHttpRequest) { // Mozilla, Safari,...
		         http_request = new XMLHttpRequest();
		         if (http_request.overrideMimeType) {
		         	// set type accordingly to anticipated content type
		            http_request.overrideMimeType('text/xml');
		            //http_request.overrideMimeType('text/html');
		         }
		      } else if (window.ActiveXObject) { // IE
		         try {
		            http_request = new ActiveXObject("Msxml2.XMLHTTP");
		         } catch (e) {
		            try {
		               http_request = new ActiveXObject("Microsoft.XMLHTTP");
		            } catch (e) {}
		         }
		      }
		      if (!http_request) {
		         alert('Cannot create XMLHTTP instance');
		         return false;
		      }
		      http_request.onreadystatechange = callBackFunction;
		      http_request.open('POST', url, true);
		      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		      http_request.setRequestHeader("Content-length", parameters.length);
		      http_request.setRequestHeader("Connection", "close");
		      http_request.send(parameters);
		      
		   }
		  
		   function alertContents() {
		      if (http_request.readyState == 4) {
		         if (http_request.status == 200) {
		         		if (http_request.responseXML == null){
		         			document.getElementById('NCALcontent').innerHTML = http_request.responseText;
		         		} else {
		         			var ncal = http_request.responseXML.getElementsByTagName("NCALtarget");
		         			if (ncal.length > 0){
		         				if (ncal[0].getAttribute('addType')=='append'){
		         					var elementName = ncal[0].getAttribute('elementName');
											var newdiv = document.createElement('div');
  										newdiv.setAttribute('id',elementName);
		         					newdiv.innerHTML = (http_request.responseText);
		         				 	document.getElementById(ncal[0].getAttribute('tartetElement')).appendChild(newdiv);
		         				} else {
		         				  document.getElementById(ncal[0].getAttribute('tartetElement')).innerHTML = http_request.responseText;
		         				}
		         			} else {
		         				document.getElementById('NCALcontent').innerHTML = http_request.responseText;
		         			}
		         		}
		         } else {
		            alert('There was a problem with the request.');
		         }
		      }
		   }

		function loadNCalendar(pStr,view) {
			
			window.document.NCALform.action = URL_ROOT + '/' + view;
			window.document.NCALform.submit();
    }
        
  		  			
		function loadNCalendarMonth(monthOffset) {
			var inp = document.getElementById('NCcurrentMonthOffset');
			inp.value = monthOffset;
  		loadNCalendar("","calendars/month");
  	}

		function addMoreDateRows(dateID) {
			var poststr = "";
			var maxRows = document.getElementById('DateTimeMaxRowID');
			var nextRowNum = parseInt(maxRows.value) + 1;			
  		makePOSTRequest(URL_ROOT + '/events/daterow/' + nextRowNum + "/" + dateID + "?" + new Date().getTime(), poststr, alertContents);
  		maxRows.value = nextRowNum + 1;
  	}
  	
  	function removeDateRow(rowNum){
  		  var d = document.getElementById('NCALnewRowMarker');
  			var olddiv = document.getElementById("NCALDateTimeRow" + rowNum);
 				d.removeChild(olddiv);
  	}
  	
  	function onBlurEventStartDate(sFld, eFld, defDate){
  			var targEFld = document.getElementById(eFld);
  			var targSFld = document.getElementById(sFld);
  			//alert(targEFld.value + " " + defDate);
  			if (targEFld.value == defDate){
  				targEFld.value = targSFld.value
  			}
  	}  	
  	
  	function onChangeEventRepeats(EventStartDateFld, EventRepeatsFld,  EventEndDateFld, defEndDateText){
  			var EventStartDateFldObj = document.getElementById(EventStartDateFld);
  			var EventRepeatsFldObj = 	 document.getElementById(EventRepeatsFld);
  			var EventEndDateFldObj = 	 document.getElementById(EventEndDateFld);
  			if (EventEndDateFldObj.value == defEndDateText && EventRepeatsFldObj.value != 0){
  				EventEndDateFldObj.value = EventStartDateFldObj.value;
  			}  		
  	}

		function loadNCalendadBack(){
  		  var v = document.getElementById('NCPreviousView').value;	  
  		  if (v == 'calendars/month'){
  		  	loadNCalendarMonth(0);
  		  } else {
  		  	loadNCalendarWeek(0);
  		  }			
		}
  			
		function loadNCalendarWeek(weekOffset) {
			var inp = document.getElementById('NCcurrentWeekOffset');
			inp.value = weekOffset;
  		loadNCalendar("","calendars/week");
  	} 

		function loadNCalendarWeekSetDay(year,month,day) {
			document.getElementById('NCCurrentYear').value = year;
			document.getElementById('NCCurrentMonth').value = month;
			document.getElementById('NCCurrentDay').value = day;			
  		loadNCalendar("","calendars/week");
  	}   
  	
  	function loadNCalendarContact(){
			var inp = document.getElementById("NCeventID");  		    	
  		loadNCalendar("","contacts/add/" + inp.value + "/calendar");  	 
  	}
  	
		function loadNCalendarDetail(id) {
			var inp = document.getElementById('NCeventID');
			inp.value = id;			
  		loadNCalendar("","calendars/detail");
  	}
  	
		function loadNCalendarFilterChange() {
			var viewInput = document.getElementById('NCCurrentView');
  		loadNCalendar("", viewInput.value);
  		return false;
  	}
  	  	      		
			
			function clickTab(name){
				var tabInput, tabs;
				tabInput = document.getElementById("NCFilterBarTabsVals");
				
				if (tabInput != null && tabInput.value.length > 0){
					tabs = tabInput.value.split(",");
					selectedTab = document.getElementById("NCFilterBarSelectedTab");
					
					
					for (i = 0; i < tabs.length; i++){
						if (tabs[i] == name){
							if (getClass("tabTop" + tabs[i]) == 'NCALtabUnselected'){
								if (selectedTab != null){ selectedTab.value = name; }
								setClass("tabTop" + tabs[i], 'NCALtabSelected');
								setClass("tabBody" + tabs[i], 'NCALfilterBoxSelected');
							} else {
								if (selectedTab != null){ selectedTab.value = ""; }
								setClass("tabTop" + tabs[i], 'NCALtabUnselected');
								setClass("tabBody" + tabs[i], 'NCALfilterBoxUnselected');									
							}
						} else {
							setClass("tabTop" + tabs[i], 'NCALtabUnselected');
							setClass("tabBody" + tabs[i], 'NCALfilterBoxUnselected');				
						}
					}
				}
			}

		function setClass(elID,className) {
			var currTabElem = document.getElementById(elID);
			currTabElem.setAttribute("class", className);
			currTabElem.setAttribute("className", className);
			return;
		} 

		function getClass(elementID){
			var element_class = "";
			var element = document.getElementById(elementID);
			if (element.attributes["class"]) element_class = element.attributes["class"].value;
			else if (element.className) element_class = element.className;
			else if (element.getAttribute) element_class = element.getAttribute("class");
			return element_class;
		}
    
    function addEvent(obj, evType, fn, useCapture){
		  if (obj.addEventListener){
		    obj.addEventListener(evType, fn, useCapture);
		    return true;
		  } else if (obj.attachEvent){
		    var r = obj.attachEvent("on"+evType, fn);
		    return r;
		  } else {
		    alert("Handler could not be attached");
		  }
		} 	
		
		function removeEvent(obj, evType, fn, useCapture){
		  if (obj.removeEventListener){
		    obj.removeEventListener(evType, fn, useCapture);
		    return true;
		  } else if (obj.detachEvent){
		    var r = obj.detachEvent("on"+evType, fn);
		    return r;
		  } else {
		    alert("Handler could not be removed");
		  }
		} 	
		

		
		function loopSelected(selectName)
		{
		  var poststr = "&" + encodeURI(selectName) + "=";
		  var selObj = document.getElementById(selectName);
		  var vals = Array();
		  var i;
		  var count=0;
		  for (i=0; i<selObj.options.length; i++) {
		    if (selObj.options[i].selected) {
		    	vals[count] = encodeURI( selObj.options[i].value );
		    	count++;
		    }
		  }
		  return poststr + vals.join(",");
		}

		function checkAll(prefix, checkVal, onVal, offVal){
			$("#NCALform input[type='checkbox']:visible").each(function(i){
					if (this.id.search(prefix) != -1){
						this.checked = checkVal;
					} 
				}
			);

			$("#NCALform input[type='hidden']").each(function(i){
					if (this.id.search(prefix) != -1){
						if (checkVal == true){
							this.value = onVal;
						} else {
							this.value = offVal;
						}
					} 
				}
			);
			return false; //don't want to submit form

		}
		
	  function clickProxyCheckbox(objID, onVal, offVal) {
      var chbox = document.getElementById( objID + "_proxy" );
      var hidn  = document.getElementById( objID );
      if (chbox == null) alert('could not find object with id ' + objID + "_proxy");
      if (hidn == null) alert('could not find object with id ' + objID);
      if (chbox.checked) {
      	hidn.value = onVal;
      } else {
        hidn.value = offVal
      }
    }
    
 $(document).ready(function(){
   $("#addMoreDateRows").click(function(event){
			var poststr = "";
			var maxRows = document.getElementById('DateTimeMaxRowID');
			var nextRowNum = parseInt(maxRows.value) + 1;		
			maxRows.value = nextRowNum
			$.ajax({
			  url: URL_ROOT + '/events/daterow/' + nextRowNum + "/-1"  + "?" + new Date().getTime(),
			  cache: false,
			  dataType: 'html',
			  success: function(data, textStatus){ 
			  	$("#NCALnewRowMarker").append(data);
			  },
			  error: function(data){
  				alert("Error getting date row.");
				}
			});				
   });
 });


