/***********************************************
* Data Springs Custom Javascript File
* Insert any custom client side javascript to be rendered for Dynamic Forms
* for demonstrations of Dynamic Forms please visit: http://www.datasprings.com/Products/DNNModules/DynamicForms/DynamicFormsDemonstration1/tabid/754/Default.aspx
***********************************************/
var baseUrl = 'http://dev.mxtools.com:8080';

function addQueryServiceProductToCart(nbUsers, organizationType) {

if(organizationType == 3)
location.href = '/MyAccount/Cart/tabid/88/Default.aspx?addtocart=p.11,o.nbusers:' + nbUsers + '=' + calculateQueryServicePrice(nbUsers, organizationType);
else
location.href = '/MyAccount/Cart/tabid/88/Default.aspx?addtocart=p.2,o.nbusers:' + nbUsers + '=' + calculateQueryServicePrice(nbUsers, organizationType);

}

function addRsyncServiceProductToCart(nbUsers, organizationType) {

location.href = '/MyAccount/Cart/tabid/88/Default.aspx?addtocart=p.' + getRsyncServiceProductID(nbUsers, organizationType);

}

function calculateQueryServicePrice(nbUsers, organizationType)
{
    if(nbUsers == 123456789)
        return 0.08;

    if(organizationType==3)
    {
        if(nbUsers < 777)
            return 250;

        return Math.round((nbUsers * 5.343149803921 * Math.pow(nbUsers, -0.317701146)) / 2);
    }
	else
    {
        if(nbUsers < 282)
            return 250;

        return Math.round(nbUsers * 5.343149803921 * Math.pow(nbUsers, -0.317701146));
    }
}

function getRsyncServiceProductID(nbUsers, organizationType) {
    if (nbUsers > 0 && nbUsers < 5001) {
        if (organizationType == 3)
            return 15;
        else
            return 5;
    }
    else if (nbUsers > 5000 && nbUsers < 10001) {
        if (organizationType == 3)
            return 16;
        else
            return 6;
    }
    else if (nbUsers > 10000 && nbUsers < 20001) {
        if (organizationType == 3)
            return 17;
        else
            return 7;
    }
    else if (nbUsers > 20000 && nbUsers < 50001) {
        if (organizationType == 3)
            return 18;
        else
            return 8;
    }
    else if (nbUsers > 50000 && nbUsers < 100001) {
        if (organizationType == 3)
            return 19;
        else
            return 9;
    }
    else if (nbUsers > 100000 && nbUsers < 200001) {
        if (organizationType == 3)
            return 20;
        else
            return 10;
    }
    else if (nbUsers > 200000) {
        if (organizationType == 3)
            return 35;
        else
            return 34;
    }
}

function calculateRsyncServicePrice(nbUsers, organizationType)
{
if(nbUsers > 0 && nbUsers < 5001) {
	if(organizationType==3)
		return 925;
	else
		return 1850;
}
else if(nbUsers > 5000 && nbUsers < 10001) {
	if(organizationType==3)
		return 1125;
	else
		return 2250;
}
else if(nbUsers > 10000 && nbUsers < 20001) {
	if(organizationType==3)
		return 1600;
	else
		return 3200;
}
else if(nbUsers > 20000 && nbUsers < 50001) {
	if(organizationType==3)
		return 2850;
	else
		return 5700;
}
else if(nbUsers > 50000 && nbUsers < 100001) {
	if(organizationType==3)
		return 5000;
	else
		return 10000;
}
else if(nbUsers > 100000 && nbUsers < 200001) {
	if(organizationType==3)
		return 8400;
	else
		return 16800;
}
else if(nbUsers > 200000) {
	if(organizationType==3)
		return 9300;
	else
		return 18600;
}
}

function checkPrice(nbUsers, organizationType, organizationType_FieldID, serviceType_FieldID)
{
var organizationTypeText = $('#' + organizationType_FieldID + ' option:selected').text();
var serviceTypeID = $('input[@name=' + serviceType_FieldID + ']:checked').attr('id');
var serviceTypeText = $('label[for=' + serviceTypeID + ']').text();
var nbUsersText = nbUsers;

$('#priceResultTitle').html(organizationTypeText + ' price for ' + serviceTypeText + ' for <strong style="color: green">' + nbUsersText + '</strong> Users');

if($('input[@name=' + serviceType_FieldID + ']:checked').val() == "2") { $('[id$=PricePerYear]').html('<strong class="green">' + formatCurrency(calculateQueryServicePrice(nbUsers, organizationType)) + '</strong>'); }
else { $('[id$=PricePerYear]').html('<strong class="green">' + formatCurrency(calculateRsyncServicePrice(nbUsers, organizationType)) + '</strong>'); }
}

/***********************************************
* This function call is used to add validate that a field is an integer. 
* Example use: validateNumber($(DynamicForms_ShortFieldName))
***********************************************/


function validateNumber(fieldvalue){
if (!isNaN(fieldvalue) && (fieldvalue>0))
alert('This is a number greater than 0');
else
alert('This is not a number greater than 0');
}

/***********************************************
* This function call is used to add two decimal places to a field. For example 50.4 would be returned as 50.40 
* Example use: toTwoDecimals($(DynamicForms_ShortFieldName))
***********************************************/

function toTwoDecimals(n) {
  var s = "" + Math.round(n * 100) / 100
  var i = s.indexOf('.')
  if (i < 0) return s + ".00"
  var t = s.substring(0, i + 1) + s.substring(i + 1, i + 3)
  if (i + 2 == s.length) t += "0"
  return t
}


/***********************************************
* This function call is used to add commas to a number. For example 100000 would be returned as 100,000 
* Example use: addCommas($(DynamicForms_ShortFieldName))
***********************************************/

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


/***********************************************
* This function call is used to return the value of a radio button. This function can be called for using calculations with radio buttons
* Example use: funcRadioCalc($(ShortFieldName_FieldID))
***********************************************/


function  funcRadioCalc(RadioName)

 {
var chkList1= document.getElementById (RadioName);
var arrayOfCheckBoxes= chkList1.getElementsByTagName("input");
for(var i=0;i<arrayOfCheckBoxes.length;i++)
{

if (arrayOfCheckBoxes[i].checked) {
return arrayOfCheckBoxes[i].value;
}
  }
}




/***********************************************
* This function call is used to calculate the total number of characters and notify the user that they exceeded their limitations. For more details
*please  visit this URL: http://www.datasprings.com/Products/DNNModules/DynamicForms/DynamicFormsDemonstration6/tabid/842/Default.aspx
***********************************************/


 function countChars(dId,txtVal,limit)
  {
      var totalLen = txtVal.length + 1;
 
      if (totalLen < limit)
      {
          document.getElementById(dId).innerHTML = "<font color='red'>You have used " + totalLen + " of " + limit + " characters available.<br>You have " + (limit - totalLen) + " characters remaining.</font>"; 
      }
      else
      {
          document.getElementById(dId).innerHTML = "<font color='red'>You have exceeded the character limit for this field.</font>";
      }
  }




/***********************************************
* This function call will format the number into a currency format
***********************************************/



function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}



function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{
alert(alerttxt);return false;
}
else
{
return true;
}
}
} 
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2) 
{alert(alerttxt);return false;}
else {return true;}
}
}

function CalculateCheckBoxList(CheckBoxList) {
var objChkBoxLst = document.getElementById(CheckBoxList);
if(objChkBoxLst) {
var objChkBoxes = objChkBoxLst.getElementsByTagName('input');
var objChkLabels = objChkBoxLst.getElementsByTagName('label');
var i; var numSum = 0;            
for(i=0;i<objChkBoxes.length;i++) {                    
if(objChkBoxes[i].checked) {                    
numSum += GetLabelValue(objChkLabels, objChkBoxes[i].id);
}
}
}
numSum = Math.round(numSum * 100)/100;                
return (numSum);
}
function GetLabelValue(objLabelList, strForValue) {
if(objLabelList) {
var i; var numActualVal; var strElemForValue;
for(i=0;i<objLabelList.length;i++) {
if(objLabelList[i].htmlFor)
strElemForValue = objLabelList[i].htmlFor;
else
strElemForValue = objLabelList[i].getAttribute('for');
if(strElemForValue==strForValue) {                        
numActualVal = objLabelList[i].innerHTML;
if(numActualVal.indexOf('$')!=-1); {
numActualVal = numActualVal.substring(numActualVal.indexOf('$')+1, numActualVal.length);
} 
return(numActualVal*1);
}
}
}
return(0);
}
function CalculateCheckBoxListValues(CheckBoxList, CheckBoxValField) {
var objChkBoxLst = document.getElementById(CheckBoxList);
var objChkBoxVals = document.getElementById(CheckBoxValField);
var arrChkBoxVals = '';
if(objChkBoxVals)
arrChkBoxVals = objChkBoxVals.value.split('|');
if(objChkBoxLst) {
var objChkBoxes = objChkBoxLst.getElementsByTagName('input');                
var i; var numSum = 0;            
for(i=0;i<objChkBoxes.length;i++) {                    
if(objChkBoxes[i].checked) {                    
numSum += GetCBValue(i, arrChkBoxVals);
}
}
}
numSum = Math.round(numSum * 100)/100;                
return (numSum);
}
function GetCBValue(intIndex, arrChkValues) {            
if(arrChkValues) {
var i;
var arrTempVals;
var numRetVal = 0;
for(i=0;i<arrChkValues.length;i++) {
arrTempVals = arrChkValues[i].split(':');
if(arrTempVals) {
if(arrTempVals[0]==intIndex) {
numRetVal = arrTempVals[1];
if(numRetVal.indexOf('$')!=-1); {
numRetVal = numRetVal.substring(numRetVal.indexOf('$')+1, numRetVal.length);
} 
return(numRetVal*1);
}                        
}
}
}
return(0);
}      
/***********************************************
* Show Hint script- � Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

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

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
}
return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}

function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}

function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox















