//Add to file
//<link rel="stylesheet" type="text/css" href="/CSS/shadow2.css" />
//<script type="text/javascript" src="/JScript/ShadowBox.js"></script>
//<!-- #INCLUDE VIRTUAL = "/Include/incShadowBox.asp"-->
//onkeyup="calcChars(this.value)" onfocus="turnOn(this, maxlen, X, Y)" onblur="turnOff(this);"  //place in textbox
var CharCount, Dims, Dimsx, Dimsy, shiftx, shifty, manX, manY, otherV;
var maxLen, minLen, CBox, OFBlank, OFNum, OFChar, VChar, YMatch, NMatch, noPO, CCNum;
var OKDisp, BeNums, BeChars, ValidChars, LowerPass, UpperPass, NumPass;
var PWMin = new Array(4);

function calcChars (DesTxt){
	CharCount = maxLen - DesTxt.length;
	if(OFChar == "on"){BeNums = IsNums(DesTxt)}
    if(OFNum == "on"){BeChars = IsChars(DesTxt)}
    if(VChar == "on"){ValidChars = IsValidChars(DesTxt)}
    if(noPO == "on"){BePO = IsPO(DesTxt)}
    if(PWMin[0] == "on"){PWmins(DesTxt,PWMin[1],PWMin[2],PWMin[3]);}
    EOff();
	
	
	if(maxLen == -1) {
		document.getElementById("CToolCharR").innerHTML = "&nbsp;No Limit";
		document.getElementById("CToolCharR").style.color = "Black";
		document.getElementById("CToolCharR").style.fontSizee = "11px";
		document.getElementById("CToolCharR").style.fontWeight = "normal";
	}
	else if (maxLen == -2) {
	        document.getElementById("CToolCharR").innerHTML = "&nbsp;";
		    document.getElementById("CToolCharR").style.color = "Red";
		    document.getElementById("CToolCharR").style.fontSize = "11px";
		    document.getElementById("CToolCharR").style.fontWeight = "normal";	        
	}
	else if(CharCount < 0){
		document.getElementById("CToolCharR").innerHTML = "&nbsp;Over Max";
		document.getElementById("CToolCharR").style.color = "Red";
		document.getElementById("CToolCharR").style.fontSize = "11px";
		document.getElementById("CToolCharR").style.fontWeight = "normal";
	}
	else {
		document.getElementById("CToolCharR").innerHTML = "&nbsp;" + CharCount;
		document.getElementById("CToolCharR").style.color = "Black";
		document.getElementById("CToolCharR").style.fontSize = "14px";
		document.getElementById("CToolCharR").style.fontWeight = "bold";
	}

if(DesTxt.length > 2 || OKDisp == 1){	
    OKDisp = 1;
	if(DesTxt.length < minLen){
	    document.getElementById("CToolShort").style.display="block";EOn();}	
	    else {document.getElementById("CToolShort").style.display="none";}
	
	if((maxLen - DesTxt.length) < 0 && maxLen > 0){
	    document.getElementById("CToolLong").style.display="block";EOn();}
	    else {document.getElementById("CToolLong").style.display="none";}
	
	if(OFBlank == "on" && DesTxt.length == 0) {document.getElementById("CToolBlank").style.display="block";EOn();}
	    else {document.getElementById("CToolBlank").style.display="none";}
	    
	if(OFNum == "on" && BeChars == 1){
	    document.getElementById("CToolChar").style.display="block";EOn();}
	    else {document.getElementById("CToolChar").style.display="none";}
	if(OFChar == "on" && BeNums == 1){
	    document.getElementById("CToolNum").style.display="block";EOn();}
	    else {document.getElementById("CToolNum").style.display="none";}
	    
	if(VChar == "on" && ValidChars == 1){
		document.getElementById("CToolVChar").style.display="block";EOn();}
	    else {document.getElementById("CToolVChar").style.display="none";}
	
	if(YMatch == "on" && DesTxt != otherV){	 
	    document.getElementById("CToolYMatch").style.display="block";EOn();}
	    else {document.getElementById("CToolYMatch").style.display="none";}
	if(NMatch == "on" && DesTxt == otherV){	 
	    document.getElementById("CToolNMatch").style.display="block";EOn();}
	    else {document.getElementById("CToolNMatch").style.display="none";} 
    if(noPO == "on" && BePO == 1){
        document.getElementById("CToolPOBox").style.display="block";EOn();}
        else {document.getElementById("CToolPOBox").style.display="none";}
    

    if((CCNum == "on") && (DesTxt.length >= 13)){
        DesTxt = DesTxt.replace(/\D/g,"");
        if((otherV == 1) && ((DesTxt.substring(0,1) != 4) || (mod10(DesTxt) != 1) || (DesTxt.length != 16 && DesTxt.length != 13))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else if((otherV == 2) && ((DesTxt.substring(0,1) != 5) || (mod10(DesTxt) != 1) || (DesTxt.length != 16))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else if((otherV == 3) && ((DesTxt.substring(0,1) != 6) || (DesTxt.length != 16))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else if((otherV == 4) && ((DesTxt.substring(0,1) != 3) || (DesTxt.length != 15))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else{document.getElementById("CToolCCNum").style.display="none";}
    }
    else{document.getElementById("CToolCCNum").style.display="none";}
    
     
    if(PWMin[0] == "on"){
        if(LowerPass < PWMin[1]){
            document.getElementById("CToolPWLowercase").style.display="block";EOn();
            document.getElementById("CToolPWLowercase").innerHTML = "&nbsp;&#8226;&nbsp;Need " + PWMin[1] + " lowercase characters";  }
        else{document.getElementById("CToolPWLowercase").style.display="none";}	
        if(UpperPass < PWMin[2]){
            document.getElementById("CToolPWUppercase").style.display="block";EOn();
            document.getElementById("CToolPWUppercase").innerHTML = "&nbsp;&#8226;&nbsp;Need " + PWMin[2] + " uppercase characters";  }
        else{document.getElementById("CToolPWUppercase").style.display="none";}	
        if(NumPass < PWMin[3]){
            document.getElementById("CToolPWNum").style.display="block";EOn();
            document.getElementById("CToolPWNum").innerHTML = "&nbsp;&#8226;&nbsp;Need " + PWMin[3] + " numeric characters";  }
        else{document.getElementById("CToolPWNum").style.display="none";} 
    }    
        
} 	   
 
}



//    maxLen, minLen, CBox, OFBlank, OFNum, OFChar, manX, manY
//    min max cbox blank num char manx many 
//CBox 0=no shift 1=up shift 2=right shift
function turnOn(el,bigstring,txtinpt,inpt3){
    maxLen = 0; minLen = 0; CBox = 0;   OFBlank = "off";    
    OFNum = "off";  OFChar = "off";     YMatch = "off";    
    NMatch = "off"; noPO = "off";       manX = 0;           
    manY = 0;   CCNum = "off";	VChar = "off";
    PWMin[0] = "off"; PWMin[1] = 0; PWMin[2] = 0; PWMin[3] = 0;
    LowerPass = 0;  UpperPass = 0;  NumPass = 0;
    Dimsx = 0; Dimsy = 0; shiftx = 0; shifty = 0;
    OKDisp = 0;

    var Params = new Array()
    var Small = new Array()
    Params = bigstring.split(";");
    for(intI=0;intI<Params.length;intI++){
        if(Params[intI]){
        Small = Params[intI].split(":",2);
        if(Small[0] == "max"){maxLen = Small[1]}            //number
        else if(Small[0] == "min"){minLen = Small[1]}       //number
        else if(Small[0] == "cbox"){CBox = Small[1]}        //0,1,2
        else if(Small[0] == "blank"){OFBlank = Small[1]}    //on=on else=off
        else if(Small[0] == "nums"){OFNum = Small[1]}       //on
        else if(Small[0] == "chars"){OFChar = Small[1]}     //on
        else if(Small[0] == "vchars"){VChar = Small[1]}     //on
        else if(Small[0] == "ymatch"){YMatch = Small[1]}    //on
        else if(Small[0] == "nmatch"){NMatch = Small[1]}    //on
        else if(Small[0] == "manx"){manX = Small[1]}        //number
        else if(Small[0] == "many"){manY = Small[1]}        //number
        else if(Small[0] == "nopo"){noPO = Small[1]}        //on
        else if(Small[0] == "ccnum"){CCNum = Small[1]}      //on
        else if(Small[0] == "pwmin"){PWMin = Small[1].split("^");} //on^num^num^num
        }
    }



    if(txtinpt){
        document.getElementById("CToolText").innerHTML = txtinpt;}
        else{document.getElementById("CToolText").innerHTML = " ";}
    EOff();
    otherV = inpt3;
    elvalue = el.value;
    ellength = maxLen - elvalue.length;
    manX = manX - 0;
    manY = manY - 0;
	
    if(OFNum == "on"){BeNums = IsNums(elvalue)}
    if(OFChar == "on"){BeChars = IsChars(elvalue)}
    if(VChar == "on"){ValidChars = IsValidChars(elvalue)}
    if(noPO == "on"){BePO = IsPO(elvalue)}
    if(PWMin[0] == "on"){PWmins(elvalue,PWMin[1],PWMin[2],PWMin[3]);}
    
		
	if(!manX){manX = 0;}
	if(!manY){manY = 0;}
	Dims = getDim(el);
	shiftx = document.getElementById(el.id).style.width;
	shifty = document.getElementById(el.id).style.height;
	if (shiftx) {
		shiftx = parseInt(shiftx.slice(0,(shiftx.length - 2)));   //does not work unless width is in style
	}
	else { shiftx = 179 }
	if (shifty) {
		shifty = parseInt(shifty.slice(0,(shifty.length - 2)));   //does not work unless width is in style
	}
	else { shifty = 20 }
	
	if (CBox != 1){
	    //document.body.clientHeight	// Height of client window
	    //document.documentElement.clientHeight
	    //document.body.scrollTop	// distance from top of content to top of window
	    //document.documentElement.scrollTop
	    // 136  = height of shadowbox
	    if(document.documentElement.clientHeight > 0){
	    if((Dims.y + 136) > (document.documentElement.scrollTop + document.documentElement.clientHeight) ){
		    shifty = -120
	    }
	    }
	    if(document.body.clientHeight > 0){
	    if((Dims.y + 136) > (document.body.scrollTop + document.body.clientHeight) ){
	        shifty = -120
	    }
	    }
	}
	else { shifty = -120}
	
    Dimsx = Dims.x + shiftx + manX - 209; //209 is width of left shadow and box
    Dimsy = Dims.y + shifty + manY - 13;
       
    if (CBox == 2 || CBox == 0){ //shift right
        Dimsx = Dims.x + shiftx + manX;
        if (shifty == -120){
        Dimsy = Dims.y + shifty + manY + 15;
        }
        else{Dimsy = Dims.y + shifty + manY - 42;}
    }
    
    document.getElementById("CToolMain").style.top = Dimsy + "px";
	document.getElementById("CToolMain").style.left = Dimsx + "px";
	
	if(maxLen == -1){
        document.getElementById("CToolCharR").innerHTML="&nbsp;No Limit";
        document.getElementById("CToolCharR").style.color = "Black";
        document.getElementById("CToolCharR").style.fontSize = "11px";
        document.getElementById("CToolCharR").style.fontWeight = "normal";
	}
	else if (ellength == -2) {
	        document.getElementById("CToolCharR").innerHTML = "&nbsp;";
		    document.getElementById("CToolCharR").style.color = "Red";
		    document.getElementById("CToolCharR").style.fontSize = "11px";
		    document.getElementById("CToolCharR").style.fontWeight = "normal";	        
	}
	else{
	    if (ellength < 0) {
	        document.getElementById("CToolCharR").innerHTML = "&nbsp;Over Max";
		    document.getElementById("CToolCharR").style.color = "Red";
		    document.getElementById("CToolCharR").style.fontSize = "11px";
		    document.getElementById("CToolCharR").style.fontWeight = "normal";	        
	    }
	    else{
	        document.getElementById("CToolCharR").innerHTML= "&nbsp;" + ellength;
	        document.getElementById("CToolCharR").style.color = "Black";
	        document.getElementById("CToolCharR").style.fontSize = "14px";
	        document.getElementById("CToolCharR").style.fontWeight = "bold";
	    }
	}
	
	document.getElementById("CToolShort").style.display="none";
    document.getElementById("CToolLong").style.display="none";
    document.getElementById("CToolBlank").style.display="none";
    document.getElementById("CToolChar").style.display="none";
    document.getElementById("CToolVChar").style.display="none";
    document.getElementById("CToolNum").style.display="none";	
    document.getElementById("CToolYMatch").style.display="none";
    document.getElementById("CToolNMatch").style.display="none";
    document.getElementById("CToolCCNum").style.display="none";
    document.getElementById("CToolPWLowercase").style.display="none";
	document.getElementById("CToolPWUppercase").style.display="none";
	document.getElementById("CToolPWNum").style.display="none";	
    
    
	
if(elvalue.length > 2 || OKDisp == 1){	
    OKDisp = 1;
    if(elvalue.length < minLen){
	    document.getElementById("CToolShort").style.display="block";EOn();}	
	    else {document.getElementById("CToolShort").style.display="none";}
	if((maxLen - elvalue.length) < 0 && maxLen > 0){
	    document.getElementById("CToolLong").style.display="block";EOn();}
	    else {document.getElementById("CToolLong").style.display="none";}
	
	if(OFBlank == "on" && elvalue.length == 0){document.getElementById("CToolBlank").style.display="block";EOn();}
	    else {document.getElementById("CToolBlank").style.display="none";}
	    
   	if(OFNum == "on" && BeChars == 1){
	    document.getElementById("CToolChar").style.display="block";EOn();}
	    else {document.getElementById("CToolChar").style.display="none";}
	if(OFChar == "on" && BeNums == 1){
	    document.getElementById("CToolNum").style.display="block";EOn();}
	    else {document.getElementById("CToolNum").style.display="none";}
	    
	if(VChar == "on" && ValidChars == 1){
		document.getElementById("CToolVChar").style.display="block";EOn();}
	    else {document.getElementById("CToolVChar").style.display="none";}
	
	if(YMatch == "on" && elvalue != otherV){	 
	    document.getElementById("CToolYMatch").style.display="block";EOn();}
	    else {document.getElementById("CToolYMatch").style.display="none";}
	if(NMatch == "on" && elvalue == otherV){	 
	    document.getElementById("CToolNMatch").style.display="block";EOn();}
	    else {document.getElementById("CToolNMatch").style.display="none";} 
    if(noPO == "on" && BePO == 1){
        document.getElementById("CToolPOBox").style.display="block";EOn();}
        else {document.getElementById("CToolPOBox").style.display="none";}
	    
	 if((CCNum == "on")){
        if((otherV == 1) && ((elvalue.substring(0,1) != 4) || (elvalue.length != 13))){
            if(elvalue.length != 16){
                document.getElementById("CToolCCNum").style.display="block";EOn();}}
        else if((otherV == 2) && ((elvalue.substring(0,1) != 5) || (elvalue.length != 16))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else if((otherV == 3) && ((elvalue.substring(0,1) != 6) || (elvalue.length != 16))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else if((otherV == 4) && ((elvalue.substring(0,1) != 3) || (elvalue.length != 15))){
            document.getElementById("CToolCCNum").style.display="block";EOn();}
        else{document.getElementById("CToolCCNum").style.display="none";}
    }
	
	if(PWMin[0] == "on"){
	    if(LowerPass < PWMin[1]){
	        document.getElementById("CToolPWLowercase").style.display="block";EOn();
	        document.getElementById("CToolPWLowercase").innerHTML = "&nbsp;&#8226;&nbsp;Need " + PWMin[1] + " lowercase characters";  }
	    else{document.getElementById("CToolPWLowercase").style.display="none";}	
	    if(UpperPass < PWMin[2]){
	        document.getElementById("CToolPWUppercase").style.display="block";EOn();
	        document.getElementById("CToolPWUppercase").innerHTML = "&nbsp;&#8226;&nbsp;Need " + PWMin[2] + " uppercase characters";  }
	    else{document.getElementById("CToolPWUppercase").style.display="none";}	
	    if(NumPass < PWMin[3]){
	        document.getElementById("CToolPWNum").style.display="block";EOn();
	        document.getElementById("CToolPWNum").innerHTML = "&nbsp;&#8226;&nbsp;Need " + PWMin[3] + " numeric characters";  }
	    else{document.getElementById("CToolPWNum").style.display="none";}		    	    
	}


	    
}

	
	document.getElementById("CToolMain").style.display="block";
}


function turnOff(){ 
	document.getElementById("CToolMain").style.display="none";
	OKDisp = 0;
}
function getDim(el){
	for (var lx=0,ly=0;el!=null;lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
	return {x:lx,y:ly}
}
function IsNums(input){
    if(input.match(/\d/)){
        return 1}
        else{return 0}
}
function IsChars(input){
    if(input.match(/[a-z]|[A-Z]/)){
        return 1}
        else{return 0}
}
function IsValidChars(input){
	if(input.match(/[^0-9a-z!@#$%^*()_-]/gi)){
        return 1}
        else{return 0}
}

function IsPO(input){
    if(input.match(/P.?O/)){
    return 1}
    else{return 0 }
}
function EOn(){
    document.getElementById("Error2").style.display="block";
}
function EOff(){
    document.getElementById("Error2").style.display="none";
}
function mod10(input){
 var CC, Dbl, Idx, Digit, CheckSum, isValid;
 CC = input;
 CheckSum = 0;
 Dbl = 0;
 isValid = 0;
 Idx = 0;

    for(Idx = CC.length; Idx >= 0 ;Idx--){
        Digit = CC.charCodeAt(Idx);
        if(Digit >= 48){
            if(Digit <= 57){
                Digit = Digit - 48;
                if(Dbl == 1){
                    Digit = Digit + Digit;
                    if(Digit >= 10){
                        Digit = Digit - 9;
                    }
                }
                if(Dbl == 0){Dbl = 1;}
                else if(Dbl == 1){Dbl = 0;}
                CheckSum = CheckSum + Digit;
                if(CheckSum >= 10){
                    CheckSum = CheckSum - 10;
                }
            }
        }
    }//for
    

  if(CheckSum == 0){
      isValid = 1;}
  else{isValid = 0;}
  
  
  
  return isValid;
}

function PWmins(pw,lcn,ucn,ncn)
{
    LowerPass = 0;
    UpperPass = 0;
    NumPass = 0;
    var pwArray = new Array();

    pwArray = pw.split("");
    
    var intW;
    for(intW in pwArray){
        if (pwArray[intW].match(/[a-z]/)){
            LowerPass = LowerPass + 1    
        }
    }
    
    for(intW in pwArray){
        if (pwArray[intW].match(/[A-Z]/)){
            UpperPass = UpperPass + 1    
        }
    }
    
    for(intW in pwArray){
        if (pwArray[intW].match(/\d/)){
            NumPass = NumPass + 1    
        }
    }
}
