//------------------------------------------------------------------
// Handle getting an age on the fly
// - Use in the plan_detail.jsp
//------------------------------------------------------------------
function getAge(value,showAge,contextPath, lang){
	
	if (value.length == 10){
		document.getElementById(showAge).className = 'pc-ajax-highlight';
		var now = new Date();
		var url = 'ajax.php';
		var pars = 'method=getAge&value=' + value + '&time=' + now.getTime() + '&lang=' + lang;		
		var 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';
		var now = new Date();
		var url = 'calculAge.php';
		var pars = 'method=clearField&value=' + value + '&time=' + now.getTime();		
		var 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) {
	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;		
		var myAjax = new Ajax.Updater("pc-triplength", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showDays, 'html')}} ); 
	} else {
		var 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){
	if (value.length == 10){
		//alert(contextPath);
		var now = new Date();
		var url = '/consumerexpress-app/ajax.b2c';
		var pars = 'method=validateTripBookDate&value=' + value + '&time=' + now.getTime();
		var myAjax = new Ajax.Updater("showTripBookDate", url, {asynchronous: true, method: 'get', parameters: pars, onComplete: function(request){showResponse(request,showBookDate, 'html')}} ); 
	} else {
		var now = new Date();
		var url = '/consumerexpress-app/ajax.b2c';
		var pars = 'method=clearField&value=' + value + '&time=' + now.getTime();		
		var 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){
	document.getElementById(showExpiryDate.id).className = 'cp-creditcard-expiry-highlight';
	if (value.length == 6){
		var now = new Date();
		var url = '/consumerexpress-app/ajax.b2c';
		var pars = 'method=displayCreditExpiry&value=' + value + '&time=' + now.getTime();
		var 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';
		var now = new Date();
		var url = '/consumerexpress-app/ajax.b2c';
		var pars = 'method=clearField&value=' + value + '&time=' + now.getTime();		
		var 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(obj){
if (typeof shim=='undefined')
return;
var shimobj=document.getElementById('shim').style;
shimobj.height=obj.offsetHeight+'px'
shimobj.width=obj.offsetWidth+'px'
var obj=obj.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
//------------------------------------------------------------------

