﻿//function onlyDigits(e,decReq) {
//    var isIE = document.all?true:false;
//    var isNS = document.layers?true:false;
//    var key = (isIE) ? window.event.keyCode : e.which;
//    var obj = (isIE) ? event.srcElement : e.target;
//    var isNum = (key > 47 && key < 58) ? true:false;
//    var dotOK = (key==46 && decReq=='decOK' && (obj.value.indexOf(".")<0 || obj.value.length==0)) ? true:false;
//    window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
//    e.which = (!isNum && !dotOK && isNS) ? 0:key;
//    return (isNum || dotOK);
//} 

function isNumberKey(evt,dotOk) {    
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (dotOk && (charCode == 46)) return true;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}
     
function AddRemoveCard(Obj) {    
    var cookie = readCookie('cards');
    if (cookie == null) {
        cookie = "";
    }
    
    cookie = RemoveID(cookie, Obj.value);
    
    if (Obj.checked) {
        cookie += '|' + Obj.value;
    }    
    
    createCookie('cards', cookie, 30);
}


function RemoveID(cookie, id) {
   var ids = cookie.split('|');

   var retVal = "";
   for (var i=0; i<ids.length; ++i) {  
        if (id != null && id != "" && ids[i] != id && ids[i] != null && ids[i] != "") {
            retVal = retVal + '|' + ids[i];    
        }
   }
       
   return retVal;        
}



function RemoveSelected() {        
    var cookie = readCookie("cards");
    if (cookie == null) {
        return;
    }  
    
    var ids = cookie.split('|');

    for (var i=0; i<ids.length; ++i) {  
        
        var card = document.getElementById('cmpcheckbox' + ids[i]);
                
        if (card != null && card.checked) {
           cookie = RemoveID(cookie, ids[i]);
        }        
    }
    
    createCookie('cards', cookie, 30);         
    
    if (!window.opener.closed) {
        MarkCheckBoxes(window.opener.document, true);
    }
    
    if (cookie.indexOf('|') == -1) {
        alert("All the cards were removed. The window will close.");       
        window.close();
    }
    else {    
        window.location.href = "/compare.aspx";  
        // window.document.forms[0].submit();
    }        
}

function GetCompareCheckBoxes(doc) {
   var arr = new Array();
   var inputs = doc.getElementsByTagName('input');
   
   for (var i=0; i<inputs.length; ++i) {
       if(inputs[i].getAttribute('type')=='checkbox' && inputs[i].getAttribute('name') == 'CardCheckbox')  {
           arr.push(inputs[i]);
       }   
   }

   return arr;
}

function ChangeCheckBoxesState(check) {
    var inputs = GetCompareCheckBoxes(document);
        
    for (var i=0; i<inputs.length; ++i) {
        inputs[i].checked = check;
    }
}

//    var inputs = document.getElementsByTagName('input');

//    for(var i=0; i<inputs.length; i++){
//        if(inputs[i].getAttribute('type')=='checkbox')  {            
//            inputs[i].checked = check;
//        }
//    }
//  }

function ValidateCalc(exp,dropdown) {    
    if (isNaN(exp.value) || exp.value=="" || exp.value==0) {
        alert('Please provide your annual or monthly expenditures')
        return false;
    }
    
    if (dropdown.selectedIndex==0) {
        alert("Please select a card before pressing 'Calculate'");
        return false;
    }
        
    if (window['validateTextBox'] != void 0) {    
        for (var i = 0; i<validateTextBox.length; ++i) {            
            var tb = document.getElementById(validateTextBox[i]);            
            if (tb.value == null || tb.value == '') {
                alert("Please provide values for all assumptions");
                return false;
            }            
            if (isNaN(tb.value)) {
                alert('You have provided a number with bad format');
                tb.focus();
                tb.style.color = 'red';
                return false;
            }
        }
    }

    return true;
}

/*function resultsDivRed(red) {
    var div = document.getElementById('divResults');    
    if (red) {
        div.style.border = "solid 1px red";
    }
    else {
        div.style.border = "solid 1px gray";
    }

}*/

function LaunchCompare() {
    var inputs = GetCompareCheckBoxes(document);

    for(var i=0; i<inputs.length; i++){        
        if (inputs[i].checked) {       
            AddRemoveCard(inputs[i]);                            
        }        
    }   
    
    var cookie = readCookie("cards");  
    
    
    if (cookie == null || cookie.indexOf('|') == -1) {
        alert('Please select at least one card to compare.');
        return;
    }  
    
    var win = window.open('/compare.aspx', 'compareWindow', 'width=800, height=600, resizable=yes, scrollbars=yes,location=no,toolbar=yes'); 
    
    if (window.focus) {win.focus();}
    
    
    MarkCheckBoxes(window.document, true);
}

function remove(s, t) {
  i = s.indexOf(t);
  r = "";
  if (i == -1) return s;
  r += s.substring(0,i) + remove(s.substring(i + t.length), t);
  return r;
}

function clearSelection() {
    var inputs = GetCompareCheckBoxes(document);

    for(var i=0; i<inputs.length; i++){        
        inputs[i].checked = false;             
    }   
    
    eraseCookie('cards');      
}
    

function MarkCheckBoxes(doc, check) {    
    var inputs = GetCompareCheckBoxes(doc);

    for(var i=0; i<inputs.length; i++){
        inputs[i].checked = false;     
    }    

    var cookie = readCookie("cards");
    if (cookie == null) {
        return;
    }
    
    var ids = cookie.split('|');

    for (var i=0; i<ids.length; ++i) {        
        var card = doc.getElementById('checkbox' + ids[i]);
                
        if (card != null) {
            card.checked = check;
        }                
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////
// handle cookies creation, altering and removing
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 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 eraseCookie(name)
{
	createCookie(name,"",-1);
}
