//------------------------------------------------------------------
// Handle getting an age on the fly
// - Use in the plan_detail.jsp
//------------------------------------------------------------------
function getAge(value,showAge,contextPath, lang){
	var now;
		var url;
		var pars;		
		var myAjax;
	if (value.length == 10){
		document.getElementById(showAge).className = 'pc-ajax-highlight';
		 now = new Date();
		url = 'ajax.php';
		pars = 'method=getAge&value=' + value + '&time=' + now.getTime() + '&lang=' + lang;		
		myAjax = new Ajax.Updater("pc-insureds-age", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showAge, 'html');}} ); 
	} else {
		document.getElementById(showAge).className = 'pc-triplength';
		now = new Date();
		url = 'calculAge.php';
		pars = 'method=clearField&value=' + value + '&time=' + now.getTime();		
		myAjax = new Ajax.Updater("pc-insureds-age", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showAge, 'html');}} ); 
	}
}

//------------------------------------------------------------------
// Handle getting number of days on the fly
// - Use in the plan_detail.jsp
//------------------------------------------------------------------

function getDays(value,value2,showDays,contextPath,lang) {
	var myAjax;
	if ((value.length ==10) && (value2.length == 10)) {
		document.getElementById('showDays').className = 'pc-ajax-highlight';
		var now = new Date();
		var url = 'ajax.php';
		var pars = 'method=getDays&value=' + value + '&value2=' + value2 + '&time=' + now.getTime() + '&lang=' + lang;		
		 myAjax = new Ajax.Updater("pc-triplength", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showDays, 'html');}} ); 
	} else {
		 myAjax = new Ajax.Updater("pc-triplength", "", {asynchronous: true, method: 'get', onComplete: document.getElementById.innerHTML = ""} ); 
	}
}

//------------------------------------------------------------------
// Handle getting deductible surcharge or discount percentage
// - Use in the plan_detail.jsp
//------------------------------------------------------------------
function getDeductibleDiscount(value,showDiscount, contextPath, pricingGroup) {
	//alert("value="+value+"|showDiscount="+showDiscount+"|contextPath="+contextPath+"|pricingGroup="+pricingGroup);
	document.getElementById(showDiscount).className = 'pc-ajax-highlight';
	var now = new Date();
	var url = contextPath + '/ajax.b2c';
	var pars = '';
	if(pricingGroup=='SMC'){
		pars = 'method=getCAADeductibleDiscount&value=' + value + '&time=' + now.getTime();
	} else if (pricingGroup == 'true') {
		pars = 'method=getSnowbirdDeductibleDiscount&value=' + value + '&time=' + now.getTime();
	} else {
		pars = 'method=getDeductibleDiscount&value=' + value + '&time=' + now.getTime();
	}
	var myAjax = new Ajax.Updater("showDeductibleDiscount", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showDiscount, 'html');}} ); 
}

//------------------------------------------------------------------
// Handle getting validating trip booking date on the fly
// - Use in the plan_detail_content.jsp
//------------------------------------------------------------------
function validateTripBookDate(value,showBookDate){
	var now;
		var url;
		var pars;		
		var myAjax;
	if (value.length == 10){
		//alert(contextPath);
		 now = new Date();
		url = '/consumerexpress-app/ajax.b2c';
		pars = 'method=validateTripBookDate&value=' + value + '&time=' + now.getTime();
		myAjax = new Ajax.Updater("showTripBookDate", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showBookDate, 'html');}} ); 
	} else {
		now = new Date();
		url = '/consumerexpress-app/ajax.b2c';
		pars = 'method=clearField&value=' + value + '&time=' + now.getTime();		
		myAjax = new Ajax.Updater("showTripBookDate", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showBookDate, 'html');}} ); 
	}
}

//------------------------------------------------------------------
// Handle getting validating trip length of MW and MCB plans on the fly
// - Use in the plan_detail_content.jsp
//------------------------------------------------------------------
function validateTripLength(planCode,tripLength,isFamilyPlan,showTripLength){
		//alert('planCode: '+planCode + '** trip length:'+ tripLength + ' ** family plan? ' + isFamilyPlan);
		//alert(contextPath);
		var now = new Date();
		var url = '/consumerexpress-app/ajax.b2c';
		var pars = 'method=validateTripLength&planCode=' + planCode + '&tripLength=' + tripLength + '&isFamilyPlan=' + isFamilyPlan + '&time=' + now.getTime();
		var myAjax = new Ajax.Updater("showTripLengthNotice", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showTripLength, 'html');}} ); 
}

//------------------------------------------------------------------
// Handle getting credit card expiry display on the fly
// - Use in the payment_content.jsp
//------------------------------------------------------------------
function displayCreditExpiry(value,showExpiryDate){
	var now;
		var url;
		var pars;		
		var myAjax;
	document.getElementById(showExpiryDate.id).className = 'cp-creditcard-expiry-highlight';
	if (value.length == 6){
		 now = new Date();
		url = '/consumerexpress-app/ajax.b2c';
		pars = 'method=displayCreditExpiry&value=' + value + '&time=' + now.getTime();
		myAjax = new Ajax.Updater("ccExpiryDisplay", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showExpiryDate, 'html');}} ); 
	} else {
		document.getElementById(showExpiryDate.id).className = 'cp-creditcard-expiry';
		now = new Date();
		url = '/consumerexpress-app/ajax.b2c';
		pars = 'method=clearField&value=' + value + '&time=' + now.getTime();		
		myAjax = new Ajax.Updater("ccExpiryDisplay", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showExpiryDate, 'html');}} ); 
	}
}

//------------------------------------------------------------------
// Handle getting help on the fly
//------------------------------------------------------------------
function getHelp(key){
	var url = '/consumerexpress-app/help.b2c'; 
	var pars = 'key=' + key;
//	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: showResponse} ); 
	var myAjax = new Ajax.Updater('help', url, {method: 'get', parameters: pars, onSuccess: helpEffect});
	
}

// Used in help files like bag.html
function helpEffect(originalRequest){
	new Effect.SlideDown('help');
}

// Generic function to handle displaying data onto the page
function showResponse(originalRequest, idName, responseType){
	//alert('showresponse = ' + idName);
	//alert('responseType = ' + responseType);
	if (responseType == 'xml'){
		response  = originalRequest.responseXML.documentElement;
		method    = response.getElementsByTagName('method')[0].firstChild.data;
		result    = response.getElementsByTagName('result')[0].firstChild.data;
		$(idName).innerHTML = result;
	} else {
		$(idName).innerHTML = originalRequest.responseText;
	}
}

//------------------------------------------------------------------
// Start - Tool Tip
//------------------------------------------------------------------
document.write('<div id="dhtmltooltip"></div>'); //write out tooltip DIV
document.write('<img id="dhtmlpointer" src="/consumerexpress-app/js/arrow2.gif">'); //write out pointer image

function shimit(objct){
if (typeof shim=='undefined'){
return;}
var shimobj=document.getElementById('shim').style;
shimobj.height=objct.offsetHeight+'px';
shimobj.width=objct.offsetWidth+'px';
var obj=objct.style;
shimobj.left=obj.left;
shimobj.top=obj.top;
shimobj.zIndex=99;
shimobj.display='block';
}

function noshim(){
if (typeof shim=='undefined'){
return;}
document.getElementById('shim').style.display='none';
}

var offsetxpoint=-60; //Customize x offset of tooltip
var offsetypoint=20; //Customize y offset of tooltip
var ie=document.all;
var ns6=document.getElementById && !document.all;
var enabletip=false;
if (ie||ns6){
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "";}

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function ddrivetip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined"){ tipobj.style.width=thewidth+"px";}
if (typeof thecolor!="undefined" && thecolor!=="") {tipobj.style.backgroundColor=thecolor;}
tipobj.innerHTML=thetext;
enabletip=true;
return false;
}
}

function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20;
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20;

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000;

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px";}
else if (curX<leftedge){
tipobj.style.left="5px";}
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px";}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px";}
else{
tipobj.style.top=curY+offsetypoint+"px";}
tipobj.style.visibility="visible";
shimit(tipobj);
}
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false;
tipobj.style.visibility="hidden";
noshim();
tipobj.style.left="-1000px";
tipobj.style.backgroundColor='';
tipobj.style.width='';
}
}

document.onmousemove=positiontip;

//------------------------------------------------------------------
// End - Tool Tip
//------------------------------------------------------------------


