// ImageUtil.js



<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->


var Unknown=0;
var MasterCard=1;
var Visa=2;
var AmericanExpress=3;
var DinersCarteBlanche=4;
var Discover=5;
var Enroute=6;
var JCB=7;
var Switch=8;
var Delta=9;
var Solo=10;


function NumericWithFixedLen(obj,evt,len) {
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
        ((evt.which) ? evt.which : 0));

    if(charCode == 8 || charCode == 9 || charCode == 46 || charCode ==39 || charCode == 37 || charCode == 127)
        return true;

    if(obj.value.length >= len)
        return false;

    if (charCode < 48  || charCode > 57) {
        return false;
    }
    return true;
}

function CheckCardDate()
{

		var cardSmonth = parseInt(document.OrderForm.startsMonth.value);
        var cardSyear = parseInt(document.OrderForm.startsYear.value);

        var cardmonth = parseInt(document.OrderForm.expiresMonth.value);
        var cardyear = parseInt(document.OrderForm.expiresYear.value);

        if(cardSmonth > cardmonth & cardSyear > cardyear)
        {
        	document.OrderForm.startsMonth.style.color="red";
            document.OrderForm.startsYear.style.color="red";
        	SetFocus('Invalid start date',document.OrderForm.startsYear);

        }else{
        	document.OrderForm.startsMonth.style.color="black";
            document.OrderForm.startsYear.style.color="black";
        }

        if(cardSmonth > cardmonth & cardSyear >= cardyear)
        {
        	document.OrderForm.startsMonth.style.color="red";
        	SetFocus('Start date can not be less then expire date',document.OrderForm.startsMonth);

        }else{
        	document.OrderForm.startsMonth.style.color="black"
        }



        if(isCCdateExpired(cardmonth,cardyear) == true)
        {
           document.OrderForm.expiresMonth.style.color="red"
           document.OrderForm.expiresYear.style.color="red";
           SetFocus('Your card has expired',document.OrderForm.expiresMonth);
           return false;
        }else{
           document.OrderForm.expiresMonth.style.color="black"
           document.OrderForm.expiresYear.style.color="black";
           return true;
        }

}


function checkLUHN()
{
         var cardnumber = document.OrderForm.number.value
         var type = document.OrderForm.cardType.value;
  		 var oddoreven = cardnumber.length & 1;
         var sum = 0;
         var addition = "";

         if(checkLUHNLength() == true)
         {
             for (var count = 0; count < cardnumber.length; count++)
             {
                var digit = parseInt(cardnumber.substr(count,1));
                if (!((count & 1) ^ oddoreven))
                {
                   digit *= 2;
                   if (digit > 9)
                   {
                      digit -= 9;
                      addition = addition + ' ' + digit;
                   }
                   else
                   {
                      addition = addition + ' ' + digit;
                   }
                   sum += digit;
                }
                else
                {
                   sum += digit;
                   addition = addition + ' ' + digit;
                }
             }


             if (sum % 10 != 0) {
                document.OrderForm.number.style.color="red"
                SetFocus('The card number entered is invalid.\n\nPlease enter a valid Card number.',document.OrderForm.number)
              }
         }
}

function checkLUHNLength()
{
    var cardnumber = document.OrderForm.number.value;
    var type = document.OrderForm.cardType.value;

    var prefix = parseInt( cardnumber.substring(0,2));
    for( var i = 0; i < cardnumber.length; ++i ) {
        var c = cardnumber.charAt(i);
        if( c < '0' || c > '9' ) {
            document.OrderForm.number.style.color="red"
            SetFocus('Please enter a valid card number. Use only digits. do not use spaces or hyphens.',document.OrderForm.number)
            return false;
        }
    }

    if(cardnumber.length != 0)
    {
        if(type == "MASTERCARD"){

            if( cardnumber.length != 16  || CheckPrefixMasterCard() != MasterCard ){
                document.OrderForm.number.style.color="red"
                SetFocus('Please enter a valid MasterCard Card number.',document.OrderForm.number)
                return false;
            }else{
               document.OrderForm.number.style.color="black"
            }
        }else if(type == "VISA"){
            if((cardnumber.length != 16 && cardnumber.length != 13) || CheckPrefixVisaCard() != Visa) {
                document.OrderForm.number.style.color="red"
                SetFocus('Please enter a valid Visa Card number.',document.OrderForm.number)
                return false;
            }else{
                document.OrderForm.number.style.color="black"
            }
        }else if(type == "SWITCH"){
            if((cardnumber.length != 16 && cardnumber.length != 18) || CheckPrefixSwitchCard() != Switch) {
                document.OrderForm.number.style.color="red"
                SetFocus('Please enter a valid Switch Card number.',document.OrderForm.number)
                return false;
            }else{
                document.OrderForm.number.style.color="black"
            }
        }else if(type == "SOLO"){
            if((cardnumber.length != 16 && cardnumber.length != 18)|| CheckPrefixSoloCard() != Solo) {
                document.OrderForm.number.style.color="red"
                SetFocus('Please enter a valid Solo Card number.',document.OrderForm.number)
                return false;
            }else{
                document.OrderForm.number.style.color="black"
            }
        }else if(type == "DELTA"){
            if(cardnumber.length != 16 || CheckPrefixDeltaCard() != Delta) {
                document.OrderForm.number.style.color="red"
                SetFocus('Please enter a valid Delta Card number.',document.OrderForm.number)
                return false;
            }else{
                document.OrderForm.number.style.color="black"
            }
        }else{
            document.OrderForm.number.style.color="red"
            SetFocus('Please enter a valid Card number.',document.OrderForm.number)
            return false;
        }
    }
    document.OrderForm.number.style.color="black"
    return true;
}

function CheckPrefixMasterCard()
{
    var cardnumber = document.OrderForm.number.value;

    var Pat = /^(5[1-5])\d{14}$/;
    if(Pat.test(cardnumber)){
        return MasterCard;
    }

    return Unknown;
}

function CheckPrefixVisaCard()
{
    var cardnumber = document.OrderForm.number.value;
    var Pat = /^(4)(\d{12}|\d{15})$/;
    if(Pat.test(cardnumber)){
        return Visa;
    }

    return Unknown;
}

function CheckPrefixSwitchCard()
{
    var cardnumber = document.OrderForm.number.value;
    var Pat = /^49(03(0[2-9]|3[5-9])|11(0[1-2]|7[4-9]|8[1-2])|36[0-9]{2})\d{10}(\d{2,3})?$/;
    if(Pat.test(cardnumber)){
        return Switch;
    }

    var Pat = /^564182\d{10}(\d{2,3})?$/;
    if(Pat.test(cardnumber)){
        return Switch;
    }

    var Pat =/^6(3(33[0-4][0-9])|759[0-9]{2})\d{10}(\d{2,3})?$/;
    if(Pat.test(cardnumber)){
        return Switch;
    }

    return Unknown;
}

function CheckPrefixSoloCard()
{
    var cardnumber = document.OrderForm.number.value;
    var Pat = /^6(3(34[5-9][0-9])|767[0-9]{2})\d{10}(\d{2,3})?$/;
    if(Pat.test(cardnumber)){
        return Solo;
    }

    return Unknown;
}

function CheckPrefixDeltaCard()
{
    var cardnumber = document.OrderForm.number.value;
    var Pat = /^4(1373[3-7]|462[0-9]{2}|5397[8-9]|54313|5443[2-5]|54742|567(2[5-9]|3[0-9]|4[0-5])|658[3-7][0-9]|659(0[1-9]|[1-4][0-9]|50)|844(09|10)|909[6-7][0-9]|9218[1-2]|98824)\d{10}$/;
    if(Pat.test(cardnumber)){
        return Delta;
    }

    return Unknown;
}




    /*
    var Pat = /^(3[47])\\d{13}$/;
    if(Pat.test(cardnumber)){
        return AmericanExpress;
    }

    var Pat = /^(3(0[0-5]|[68]))\\d{11,12}$/;
    if(Pat.test(cardnumber)){
        return DinersCarteBlanche;
    }

    var Pat = /^(6011)\\d{12}$/;
    if(Pat.test(cardnumber)){
        return Discover;
    }

    var Pat = /^(2(014|149))\\d{11}$/;
    if(Pat.test(cardnumber)){
        return Enroute;
    }

    var Pat = /^(2131|1800)\\d{11}$/;
    if(Pat.test(cardnumber)){
        return JCB;
    }

    var Pat = /^(3)\\d{15}$/;
    if(Pat.test(cardnumber)){
        return JCB;
    }
    */



function SetFocus(alertmess,obj1) {
    alert(alertmess);
    obj1.focus();
    return;
}

function isCCdateExpired(month, year) {
   var expires=new Date(year, month, 1);
   today=new Date();
   var one_day=1000*60*60*24;
   if (Math.ceil((today.getTime()-expires.getTime())/(one_day)) >= 1) {
      return true;
   } else {
      return false;
   }
}
var multipleMenusOpen = false;

var globalName="";
var timeout = null;
var timerRunning=false;

function showDiv(anchorElement,isOver) {
   var element = document.getElementById(anchorElement);

      if (!multipleMenusOpen) { closeAllMenus() };
	     element.style.display = 'block';
	     globalName=anchorElement;

        
}


function closeAllMenus() {
   document.getElementById("consumablesdiv").style.display = 'none';
   document.getElementById("phonesdiv").style.display = 'none';
   document.getElementById("pcdiv").style.display = 'none';
   document.getElementById("audiovisualdiv").style.display = 'none';
}

function closeMenu()
{
  if(globalName != "")
  {
    document.getElementById(globalName).style.display = 'none';
  }
  timerRunning=false;
}

function closeMenuEvent()
{
    timeout = window.setTimeout('closeMenu()',1500);
    timerRunning = true;
}

function stopTimer() {
    if (timerRunning)
        clearTimeout(timeout);
}

function resetTimer()
{
    stopTimer();
	closeMenuEvent();
}