var heartBeatInterval = null;

function ajaxForm(pk){
	jQuery.ajax({
        type: 'POST',
		url: window.location.pathname,
		dataType: 'json',
		data: "form=" + pk,
		success: function(json) {
			for( var memb in json ){
				try{
					$('#' + memb).val(json[memb]);
				}catch(e){alert(e);}
			}
		},
		error: function (xhr, textStatus, errorThrown) {
			alert(textStatus);
			alert(xhr.responseText);
		}
	});
}
function testupload(obj){
	var evt = '';
	if($(obj).parentsUntil('tr').parent().find('td > img[alt="Available"]').attr('src') != undefined){
		do{
			if((evt.length > 25))
				evt = prompt('Describe the event (please limit to 25 characters):', evt);
			else
				evt = prompt('Describe the event:','');
		}while(evt.length > 25);
	}
	$(obj).attr('href', $(obj).attr('href').replace(/&evt=.*/, '') + '&evt=' + evt);
}
function pausecomp(millis) 
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); } 
while(curDate-date < millis);
} 
function messwith(o){
	var args; 
	try{args = getArgs(o);}catch(e){}
	var unit = '';
	
	if(args == null)
		unit = o.innerHTML;
	else
		unit = args['value'];
	if(unit == null)
		unit = o.innerHTML;
	if($( o ).attr("rel") == '/intranet/unit/features.htm?unit=' + unit)
		return true;
	$( o ).attr("rel", '/intranet/unit/features.htm?unit=' + unit);
	$( o ).cluetip(
			{	sticky: false, 
				closePosition: 'title', 
				arrows: true,
				clickThrough: true,
				cluezIndex: 1000,
				cluetipClass: 'rounded',
			    hoverIntent: {
			                      sensitivity:  3,
			                      interval:     700,
			                      timeout:      0
			    }
		});
	pausecomp(700);
	$( o ).trigger('showMyTip', [ event.clientX, event.clientY ]);
	
	return false;
}

function getArgs(o) {
	var args = new Object();
	var query = o.search.substring(1); 
	var pairs = query.split("&"); 
	for(var i = 0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('='); 
		if (pos == -1) continue; 
		var argname = pairs[i].substring(0,pos); 
		var value = pairs[i].substring(pos+1);
		args[argname] = unescape(value); 
	}
	return args; 
}

function selCustomers(list){
	persistData('custlist',list);
}

function selReportParams(rptName){
	getContent('params',rptName);
}

function persistData(name, data){
    jQuery.ajax({
        type: 'POST',
        url: window.location.pathname,
        data: "data=" + name + "&value=" + data,
        complete: function(xhr, textStatus) {
    	
    	},
        error: function (xhr, textStatus, errorThrown) {
          if(xhr.readyState == 4) {
            try {
              if(xhr.status != 0) {
              }
            } catch (e) {  }
          }
        }
      });
	
}

function getContent(name, key){	
    jQuery.ajax({
        type: 'POST',
        url: window.location.pathname,
        data: "name=" + name + "&key=" + key,
        complete: function(xhr, textStatus) {
    		var doIt = true;
    		if(name == "loc"){
    			doIt = (key.length > 0);
	    		if(!doIt){
		    		$('#' + name).html("");
	    			centerMapZoom(-98.5556199, 39.8097343, 4);
	    		}
    		}
    		if(doIt == true){
    			$('#' + name + ' > div').fadeOut('slow');
	    		$('#' + name).html(xhr.responseText);
				$('#' + name + ' > div').fadeOut(0);
	    		$('#' + name + ' > div').fadeIn('slow');
	    		//alert($('#contact_lat').val());
	    		if($('#jsload').val() != null){
	    			eval($('#jsload').val());
	    			$('#jsload').val('');
	    		}
	        	if(jQuery.browser.msie && parseInt(jQuery.browser.version) < 9)
	    			$("legend").css("margin-left", "-8px");
	    		if($('#contact_lon').val() != null){
	    			centerMapZoom($('#contact_lon').val(), $('#contact_lat').val(), 12);
	    		}
    		}
    	},
        error: function (xhr, textStatus, errorThrown) {
          if(xhr.readyState == 4) {
            try {
              if(xhr.status != 0) {
                  clearInterval(iId);
              }
            } catch (e) { clearInterval(iId); }
          }
        }
      });
}

function callServer(name, iId){
	jQuery.ajax({
		global : false,
        type: 'POST',
        url: window.location.pathname,
        data: "id=" + name,
        complete: function(xhr, textStatus) {
    	
			$('#' + name + ' > div').fadeOut('slow');
    		$('#' + name).replaceWith(xhr.responseText);
			$('#' + name + ' > div').fadeOut(0);
    		$('#' + name + ' > div').fadeIn('slow');
    	},
        error: function (xhr, textStatus, errorThrown) {
          if(xhr.readyState == 4) {
            try {
              if(xhr.status != 0) {
                  clearInterval(iId);
              }
            } catch (e) { clearInterval(iId); }
          }
        }
      });
}

function loadContent(link, area, name, id, className){
	$('a.contentMenuSel').addClass('contentMenu');
	$('a.contentMenuSel').removeClass('contentMenuSel');
	$('#' + link).removeClass('contentMenu');
	$('#' + link).addClass('contentMenuSel');
    jQuery.ajax({
        type: 'POST',
        url: window.location.pathname,
        data: "area=" + area + "&name=" + name + "&id=" + id.substring(11),
        complete: function(xhr, textStatus) {
			$('#contentContainer').fadeOut('fast', function() {
	    		$('#' + id).html(xhr.responseText);
	    		$('#contentContainer > div').removeClass();
	    		$('#contentContainer > div').addClass(className);
	    		$('#contentContainer').fadeIn('800');
			});
    	},
        error: function (xhr, textStatus, errorThrown) {
    		// do nothing?
        }
      });
}

function sendHeartBeat(){
    jQuery.ajax({
        type: 'POST',
        url: '/intranet/ajax/save-state.htm',
        data: "id=pulse",
        complete: function(xhr, textStatus) {
    		// alert('ok');
    		// setTimeOut("sendHeartBeat()", 180000);
    	},
        error: function (xhr, textStatus, errorThrown) {
          if(xhr.readyState == 4) {
            try {
              if(xhr.status != 0) {
                  alert('Error occurred!'  + '\n\n' + xhr.responseText );
              }
            } catch (e) { alert("Network error"); }
          }
        }
      });
}

function saveMenuState(parm){
	var params = "id=" + parm + "&name=" + "test";
// Invoke the Ajax request
    jQuery.ajax({
      type: 'POST',
      url: '/intranet/ajax/save-state.htm',
      data: params,
      error: function (xhr, textStatus, errorThrown) {
        if(xhr.readyState == 4) {
          try {
            if(xhr.status != 0) {
                alert('Error occurred!'  + '\n\n' + xhr.responseText );
            }
          } catch (e) { alert("Network error"); }
        }
      }
    });
}

function login(site, userid, pwd){
    var url = site + "?username=" + userid + "&password=" + pwd;
    jQuery.ajax({
    	global: false,
        type: 'GET',
        url: url,
        username: userid,
        password: pwd,
        data: null,
        error: function (xhr, textStatus, errorThrown) {
          if(xhr.readyState == 4) {
            try {
              if(xhr.status != 0) {
                  alert('Error occurred!'  + '\n\n' + xhr.responseText );
              }
            } catch (e) { alert("Network error"); }
          }
        }
      });
    
}
function getHTTPObject() {
	
	var xmlhttp;	
	if (window.XMLHttpRequest) {	   
		xmlhttp = new XMLHttpRequest();	
		} 
	else if (window.ActiveXObject) {	     
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");	
		}	 	
	return xmlhttp;
}

function registerRelative(obj){
	alert('register');
	$(obj).children().change(function(){
		$(event.target).parent().trigger('dblclick');
		});
}

function setRepeatingDate(obj){
	
	var interval = $(obj).children('#interval').children('option[selected]').val();
	
	var start = $(obj).children('#start').val();
	
	var end = $(obj).children('#end').val();
	
	$(obj).children('[type=hidden]').val(interval + ";" + start + ";" + end);
	
}

function getRelativeDate(obj){
	var interval = $(obj).children('#interval').children('option[selected]').val();
	var numPeriods = $(obj).children('#numPeriods').val();
	var intervalTime = $(obj).children('#intervalTime').children('option[selected]').val();
	$(obj).children('[type=hidden]').val(intervalTime + numPeriods + interval);
	var d = new Date();
	if(interval =='d'){
		if(intervalTime == 'b'){
			d.setHours(0, 0, 0, 0);
		} else if(intervalTime == 'l'){
			d.setHours(23, 59, 59, 999);
		}
		if(numPeriods > 0){
			d = new Date(d).add({days: -numPeriods});
		}
	}
	else if(interval =='w'){
		if(intervalTime == 'b'){
			d = new Date(d).moveToDayOfWeek(0, -1);
		} else if(intervalTime == 'l'){
			d = new Date(d).moveToDayOfWeek(6);
		}
		if(numPeriods > 0){
			d = new Date(d).add({days: -(numPeriods * 7)});
		}
	}
	else if(interval =='m'){
		if(intervalTime == 'b'){
			d = new Date(d).moveToFirstDayOfMonth();
		} else if(intervalTime == 'l'){
			d = new Date(d).moveToLastDayOfMonth();
		}
		if(numPeriods > 0){
			d = new Date(d).add({months: -numPeriods});
		}
	}
	else if(interval =='q'){
		if(intervalTime == 'b'){
			switch(d.getMonth()){
			case 1:
			case 2: d.setMonth(0);
					break;
			case 4:
			case 5: d.setMonth(3);
					break;
			case 7:
			case 8: d.setMonth(6);
					break;
			case 10:
			case 11: d.setMonth(9);
					break;
			}
			d = new Date(d).moveToFirstDayOfMonth();
			
		} else if(intervalTime == 'l'){
			switch(d.getMonth()){
			case 0:
			case 1: d.setMonth(2);
					break;
			case 3:
			case 4: d.setMonth(5);
					break;
			case 6:
			case 7: d.setMonth(8);
					break;
			case 9:
			case 10: d.setMonth(11);
					break;
			}
			d = new Date(d).moveToLastDayOfMonth(); 
		}
		if(numPeriods > 0){
			d = new Date(d).add({months: -(numPeriods * 3)});
		}
	}
	else if(interval =='y'){
		if(intervalTime == 'b'){
			d.setMonth(0, 1);
		} else if(intervalTime == 'l'){
			d.setMonth(11, 31);
		}
		if(numPeriods > 0){
			d = new Date(d).add({years: -numPeriods});
		}
	}
	$(obj).attr('title', 'If run today: ' + d.toDateString());
	return d;
}

function logout(){
    var xmlhttp = getHTTPObject();
	try{
		  var agt=navigator.userAgent.toLowerCase();
		  try {
		    // IE clear HTTP Authentication
		    document.execCommand("ClearAuthenticationCache");
		  }catch(e){}
		  /*
		  try{
		    var url = site + "?username=" + userid + "&password=" + pwd;
		    jQuery.ajax({
		        type: 'GET',
		        url: '//www.aimntls.com/enrichcwa/index.htm?username=_log_out_&password=_dummy_',
		        username: '_log_out_',
		        password: '_dummy_',
		        data: null,
		        error: function (xhr, textStatus, errorThrown) {
		          if(xhr.readyState == 4) {
		            try {
		              if(xhr.status != 0) {
		                  alert('Error occurred!'  + '\n\n' + xhr.responseText );
		              }
		            } catch (e) { alert("Network error"); }
		          }
		        }
		      });
		    setTimeout("xmlhttp.abort();", 100);
		  }catch(e){}
		  */
		  try {
		    // Let's get the force page to logout for mozilla
		   
		    xmlhttp.open("GET","somewhere?username=_log_out_&password=_dummy_",true,"_log_out_","_dummy_");
		    // Let's send the request to the server
		    xmlhttp.send("");
		    // Let's abort the request
		    setTimeout("xmlhttp.abort();", 100);
		  }catch(e){}
		} catch(e) {
			// There was an error
			alert("there was an error");
		}
}		

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
