var offsetxpoint=-40; //Customize x offset of tooltip
var offsetypoint=10; //Customize y offset of tooltip
var ie=document.all;
var ns6=document.getElementById && !document.all;
var enabletip=false;
if (ie||ns6);
var tipobj="";

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

function ddrivetip(thetext, thecolor, thewidth){
	if (ns6||ie){
		tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "";
		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"
	}
}

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

var prVersion="";
var prVersionCD="";
var prVersionCDW="";
var prVersionTrial="";
var cdPrice=10;

var arrPrice = new Array();

function setParams(who){
	var rdGroupDeliv=document.frmPrice.rdDelivery;
	var rdValue="";

	if(!ValidInt(document.getElementById("quantLicenses").value)){
		if(document.getElementById("quantLicenses").value!=""){
			document.getElementById("quantLicenses").value=0;
		}

		rdGroupDeliv[0].checked=true;
		document.getElementById("divDelivery").className ="pur_row_inact";
		if(who=="rdDelivery2"){
			document.getElementById("divMsgLicenses").style.display = "block";
			document.getElementById("quantLicenses").style.border = "2px solid red";
			document.getElementById("quantLicenses").focus();
			document.getElementById("quantLicenses").select();
		}else{
			document.getElementById("divMsgLicenses").style.display = "none";
			document.getElementById("quantLicenses").style.border = "2px solid white";
		}

		document.getElementById('selDest').options[0].selected=true;
		document.getElementById("divDest").style.display="none";
		document.getElementById("divDestT").className="pur_row_inact";
		document.getElementById("divCD").className="pur_row_inact";
		document.getElementById("quantCDs").disabled=true;
		document.getElementById("quantCDs").value=0;
	}else{
		document.getElementById("divDelivery").className ="pur_row_act";
		document.getElementById("divMsgLicenses").style.display = "none";
		document.getElementById("quantLicenses").style.border = "2px solid white";
	}

	if(prVersionTrial!=""){
		if(!ValidInt(document.getElementById("quantLicensesTrial").value) && document.getElementById("quantLicensesTrial").value!=""){
			document.getElementById("quantLicensesTrial").value=0;
		}
	}

	if(!ValidInt(document.getElementById("quantCDs").value) && document.getElementById("quantCDs").value!=""){
		document.getElementById("quantCDs").value=0;
	}

	if(ValidInt(document.getElementById("quantCDs").value)){
		if(!ValidInt(document.getElementById("quantLicenses").value)){
			alert("The amount of CDs cannot be more than the amount of licenses");
			document.getElementById("quantLicenses").value=document.getElementById("quantCDs").value;
		}else{
			quantLic=parseInt(document.getElementById("quantLicenses").value);
			quantCD=parseInt(document.getElementById("quantCDs").value);
			if(quantCD>quantLic){
				alert("The amount of CDs cannot be more than the amount of licenses");
				if(who=='quantCDs'){
					document.getElementById("quantCDs").value="";
				}else{
					document.getElementById("quantCDs").value=document.getElementById("quantLicenses").value;
				}
			}
		}
	}
//alert("set");
	for (i=0; i<rdGroupDeliv.length; i++){//alert(i+" "+rdGroupDeliv[i].value+" "+rdGroupDeliv[i].checked);
		if(rdGroupDeliv[i].checked==true){
			rdValue=rdGroupDeliv[i].value;
			break;
		}
	}

	if(rdValue=="Standard"){
		document.getElementById('selDest').options[0].selected=true;
		document.getElementById("divDest").style.display="none";
		document.getElementById("divDestT").className="pur_row_inact";
		document.getElementById("divCD").className="pur_row_inact";
		document.getElementById("quantCDs").disabled=true;
		document.getElementById("quantCDs").value=0;
	}else{
		document.getElementById("divDest").style.display="block";
		document.getElementById("divDestT").className="pur_row_act";
		document.getElementById("divCD").className="pur_row_act";
		document.getElementById("quantCDs").disabled=false;
		if(who=="rdDelivery2"){
			document.getElementById("quantCDs").value=1;
		}
	}

	var onlyPIN=0;
	var cdPIN=0;
	if(document.getElementById("quantLicenses").value!=""){
		if(document.getElementById("quantCDs").value!=""){
			onlyPIN=document.getElementById("quantLicenses").value-document.getElementById("quantCDs").value;
			cdPIN= document.getElementById("quantLicenses").value-onlyPIN;
		}else{
			onlyPIN=document.getElementById("quantLicenses").value;
		}
	}

	selValue = document.getElementById("selDest").options[document.getElementById("selDest").selectedIndex].value;
	for (i in arrPrice){
		if(document.getElementById('Quantity'+i) != null){
			if(prVersionTrial!="" && i==prVersionTrial){
				document.getElementById("Quantity"+i).value=document.getElementById("quantLicensesTrial").value;
			}else
			if(i==prVersion){
				document.getElementById("Quantity"+i).value=onlyPIN;
			}else{
				if(rdValue!="Standard"){
					if((selValue=="USA_Canada" && i==prVersionCD) || (selValue=="RestWorld" && i==prVersionCDW)){
						document.getElementById("Quantity"+i).value=cdPIN;
					}else{
						document.getElementById('Quantity'+i).value="";
					}
				}else{
					document.getElementById('Quantity'+i).value="";
				}
			}
		}
	}
	CalcTotal();
}

function checkForm(){
	if(!ValidInt(document.getElementById("quantLicenses").value) || document.getElementById("quantLicenses").value=="00"){
		if(prVersionTrial!=""){
			if(!ValidInt(document.getElementById("quantLicensesTrial").value) || document.getElementById("quantLicensesTrial").value=="00"){
				alert("The amount of licenses has to be bigger than 0!");
				document.getElementById("quantLicenses").focus();
				return false;
			}
		}else{
			alert("The amount of licenses has to be bigger than 0!");
			document.getElementById("quantLicenses").focus();
			return false;			
		}
	}
//	if((ValidInt(document.getElementById("quantCDs").value) && document.getElementById("quantCDs").value!="00") &&
//		(document.getElementById('selDest').options[0].selected==true)){
//		alert("You must select your shipping destination first!");
//		document.getElementById("selDest").focus();
//		return false;
//	}
	if(document.frmPrice.rdDelivery[1].checked==true){
		if(!ValidInt(document.getElementById("quantCDs").value) || document.getElementById("quantCDs").value=="00"){
			alert("You have selected 'Electronic & CD' from 'Delivery Options' and the amount of CDs has to be bigger than 0!");
			document.getElementById("quantCDs").focus();
			return false;			
		}else if(document.getElementById('selDest').options[0].selected==true){
			alert("You must select your shipping destination first!");
			document.getElementById("selDest").focus();
			return false;			
		}
	}
}

function CalcTotal(){
	totalPrice=0;

	if(ValidInt(document.getElementById("quantCDs").value)){
		document.getElementById("divTotalT").innerHTML="Total (including shipping)";
	}else{
		document.getElementById("divTotalT").innerHTML="Total";
	}

	quantList=document.getElementById("quantLicenses").value;
	if(quantList!=0 && quantList!="" && quantList!="00" && ValidNumber(quantList)){
		price=parseFloat(parseFloat(arrPrice[prVersion])*quantList);
		totalPrice+=price;
		document.getElementById("totalLicenses").innerHTML=CurrencyFormatted(price, " ");
	}else{
		document.getElementById("totalLicenses").innerHTML="&nbsp;";
	}
	if(prVersionTrial!=""){
		quantList=document.getElementById("quantLicensesTrial").value;
		if(quantList!=0 && quantList!="" && quantList!="00" && ValidNumber(quantList)){
			price=parseFloat(parseFloat(arrPrice[prVersionTrial])*quantList);
			totalPrice+=price;
			document.getElementById("totalLicensesTrial").innerHTML=CurrencyFormatted(price, " ");
		}else{
			document.getElementById("totalLicensesTrial").innerHTML="&nbsp;";
		}
	}
	quantList=document.getElementById("quantCDs").value;
	if(quantList!=0 && quantList!="" && quantList!="00" && ValidNumber(quantList)){
		price=parseFloat(parseFloat(cdPrice)*quantList);
		totalPrice+=price;
		document.getElementById("totalLicensesCD").innerHTML=CurrencyFormatted(price, " ");
		selValue = document.getElementById("selDest").options[document.getElementById("selDest").selectedIndex].value;
		if(selValue=="USA_Canada" || selValue=="RestWorld"){
			if(selValue=="USA_Canada"){
				deliveryPrice=parseFloat(parseFloat(arrPrice[prVersionCD])-parseFloat(arrPrice[prVersion])-parseFloat(cdPrice));
			}else{
				deliveryPrice=parseFloat(parseFloat(arrPrice[prVersionCDW])-parseFloat(arrPrice[prVersion])-parseFloat(cdPrice));
			}//alert(deliveryPrice);
			price=parseFloat(parseFloat(deliveryPrice)*quantList);//alert(price);
			totalPrice+=price;
			document.getElementById("totalShip").innerHTML=CurrencyFormatted(price, " ");
		}else{
			document.getElementById("totalShip").innerHTML="&nbsp;";
		}
	}else{
		document.getElementById("totalLicensesCD").innerHTML="&nbsp;";
		document.getElementById("totalShip").innerHTML="&nbsp;";
	}

	showTotalPrice=CurrencyFormatted(totalPrice, " ");
	document.getElementById("divTotal").innerHTML=showTotalPrice;
}

function clearForm(){
	var splitResult="";
	splitResult = document.getElementById('prVersion').value.split("||");
	prVersion=splitResult[0];
	arrPrice[prVersion]=parseFloat(splitResult[1]);

	splitResult = document.getElementById('prVersionCD').value.split("||");
	prVersionCD=splitResult[0];
	arrPrice[prVersionCD]=parseFloat(splitResult[1]);
	
	splitResult = document.getElementById('prVersionCDW').value.split("||");
	prVersionCDW=splitResult[0];
	arrPrice[prVersionCDW]=parseFloat(splitResult[1]);

	if(document.getElementById('prVersionTrial') != null){	
		splitResult = document.getElementById('prVersionTrial').value.split("||");
		prVersionTrial=splitResult[0];
		arrPrice[prVersionTrial]=parseFloat(splitResult[1]);
	}

	var rdGroupDeliv=document.frmPrice.rdDelivery;
	
	for (i in arrPrice){
		if(document.getElementById('Quantity'+i) != null){
			document.getElementById('Quantity'+i).value="";
		}
	}

	rdGroupDeliv[0].checked=true;
	document.getElementById("divMsgLicenses").style.display = "none";

	if(prVersionTrial!=""){
		document.getElementById("quantLicensesTrial").value=0;
	}
	if(ValidNumber(document.getElementById("quantLicenses").value) && document.getElementById("quantLicenses").value!=0){
		document.getElementById('Quantity'+prVersion).value=document.getElementById("quantLicenses").value;
		document.getElementById("divDelivery").className ="pur_row_act";
	}else{
		document.getElementById("quantLicenses").value=0;
		document.getElementById("divDelivery").className ="pur_row_inact";
	}
//	document.getElementById("quantLicenses").value=0;

	document.getElementById('selDest').options[0].selected=true;
	document.getElementById("divDest").style.display="none";
	document.getElementById("divDestT").className="pur_row_inact";

	document.getElementById("divCD").className="pur_row_inact";
	document.getElementById("quantCDs").disabled=true;
	document.getElementById("quantCDs").value=0;

	CalcTotal();
}



function ValidNumber(valueNum){
	valueNum = valueNum.replace(/^\s+|\s+$/g, '');
	if((valueNum)&&(!isNaN(valueNum))){
		return true;
	}
	return false;
}

function ValidInt(lQuant){
	lQuant = lQuant.replace(/^\s+|\s+$/g, '');
	var regEx = new RegExp("^\\d*$");
	if((lQuant)&&(lQuant!=0)&&(lQuant.match(regEx))){
		return true;
	}
	return false;
}

function CurrencyFormatted(amount, delimiter){
	//format money format (2 digits after . )	
	var i = parseFloat(amount);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }

	//insert delimiters between every third digit
	var splitResult = s.split(".");
	var d = splitResult[1];
	s = splitResult[0];
	var a = [];	
	while(s.length > 3)
	{
		var nn = s.substr(s.length-3);
		a.unshift(nn);
		s = s.substr(0,s.length-3);
	}
	if(s.length > 0) { a.unshift(s); }
	s = a.join(delimiter);
	s+='.' + d;

	return s;
}
