
Taknology=function(){};
Taknology.prototype={};
Taknology.DOM=function(){};
Taknology.DOM.prototype={
addHandler:function(element,event,handler){
if(element)
{
if(element.addEventListener)
element.addEventListener(event,handler,false);
else if(element.attachEvent)
element.attachEvent("on"+event,handler)}},
removeHandler:function(element,event,handler){
if(element)
{
if(element.removeEventListener)
element.removeEventListener(event,handler,false);
else if(element.detachEvent)
element.detachEvent("on"+event,handler);}},
cancelKeyPress:function(source,evt){
var scanCode=$tk_ui_key.getKeyCode(evt)
if(scanCode){
if((scanCode==$tk_ui_key.enter)||
(scanCode==$tk_ui_key.tab)||
(scanCode==$tk_ui_key.esc)||
(scanCode==$tk_ui_key.left)||
(scanCode==$tk_ui_key.right)||
(scanCode==$tk_ui_key.home)){
return true;}else{
$tk_dom.preventDefault(evt);
source.value='';
return false;}}else{
$tk_dom.preventDefault(evt);
source.value='';
return false;}},
preventDefault:function(evt){
if(evt.preventDefault)
evt.preventDefault();
else if(window.event)
evt.returnValue=false;},
stopPropagation:function(evt){
if(evt.stopPropagation)
evt.stopPropagation();
else if(window.event)
evt.cancelBubble=true;}};
Taknology.UI=function(){
this.numb='0123456789';
this.mth=new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
this.day=new Array(31,28,31,30,31,30,31,31,30,31,30,31);};
Taknology.UI.prototype={
validateListBox:function(source,argument){
argument.IsValid=(argument.Value!='');
bCancel=!argument.IsValid;},
checkInvalidValueSelected:function(source,argument){
argument.IsValid=!(argument.Value==0);},
validateDropDownListControl:function(source,argument){
argument.IsValid=(argument.Value!="None_Specified");},
setCheckBoxListSelectedIndexValue:function(e1,e2){
e2.Value=e1.selectedIndex;},
stripBlanks:function(fld){
var result="";
for(i=0;i<fld.length;i++){
if(fld.charAt(i)!=" "||c>0){
result +=fld.charAt(i);
if(fld.charAt(i)!=" ")
c=result.length;}}
return result.substr(0,c);},
isNumber:function(parm){
return $tk_ui.isValid(parm,$tk_ui.numb);},
isValid:function(parm,val){
if(parm=="")
return true;
for(i=0;i<parm.length;i++){
if(val.indexOf(parm.charAt(i),0)==-1)
return false;}
return true;},
setElementVisibility:function(e,visible){
e.style.display=(visible?"block":"none");},
validateDate:function(fld,fmt,rng){
if(fld=='')
return false;
var dd,mm,yy;
var today=new Date;
var t=new Date;
fld=$tk_ui.stripBlanks(fld);
if(fld=='')
return false;
var d1=fld.split('\/');
if(d1.length!=3)
d1=fld.split(' ');
if(d1.length!=3)
return false;
if(fmt=='u'||fmt=='U'){
dd=d1[1];
mm=d1[0];yy=d1[2];}
else if(fmt=='j'||fmt=='J'){
dd=d1[2];
mm=d1[1];yy=d1[0];}
else if(fmt=='w'||fmt=='W'){
dd=d1[0];
mm=d1[1];
yy=d1[2];}
else
return false;
var n=dd.lastIndexOf('st');
if(n>-1)
dd=dd.substr(0,n);
n=dd.lastIndexOf('nd');
if(n>-1)
dd=dd.substr(0,n);
n=dd.lastIndexOf('rd');
if(n>-1)
dd=dd.substr(0,n);
n=dd.lastIndexOf('th');
if(n>-1)
dd=dd.substr(0,n);
n=dd.lastIndexOf(',');
if(n>-1)
dd=dd.substr(0,n);
n=mm.lastIndexOf(',');
if(n>-1)
mm=mm.substr(0,n);
if(!$tk_ui.isNumber(dd))
return false;
if(!$tk_ui.isNumber(yy))
return false;
if(!$tk_ui.isNumber(mm)){
var nn=mm.toLowerCase();
for(var i=1;i<13;i++){
if(nn==$tk_ui.mth[i]||
nn==$tk_ui.mth[i].substr(0,3)){
mm=i;i=13;}}}
if(!$tk_ui.isNumber(mm))
return false;
dd=parseFloat(dd);
mm=parseFloat(mm);
yy=parseFloat(yy);
if(yy<100)
yy +=2000;
if(yy<1582||yy>4881)
return false;
if(mm==2&&(yy%400==0||(yy%4==0&&yy%100!=0)))
$tk_ui.day[mm - 1]++;
if(mm<1||mm>12)
return false;
if(dd<1||dd>$tk_ui.day[mm - 1])
return false;
t.setDate(dd);
t.setMonth(mm - 1);
t.setFullYear(yy);
if(rng=='p'||rng=='P'){
if(t>=today)
return false;}
else if(rng=='f'||rng=='F'){
if(t<=today)
return false;}
else if(rng!='a'&&rng!='A')
return false;
return true;}};
Taknology.UI.Key=function(){};
Taknology.UI.Key.prototype={
backspace:8,
tab:9,
enter:13,
esc:27,
space:32,
pageUp:33,
pageDown:34,
end:35,
home:36,
left:37,
up:38,
right:39,
down:40,
del:127,
getKeyCode:function(evt){
var scanCode=null;
if(evt.keyIdentifier){
if(evt.ctrlKey||evt.altKey||evt.metaKey){
return null;}
if(evt.keyIdentifier.substring(0,2)!="U+"){
return null;}
scanCode=evt.charCode;
if(scanCode==63272){
return null;}}
else
{
if(evt.type==="keypress")
scanCode=evt.charCode||evt.keyCode;
else if(evt.keyCode&&evt.keyCode===46)
scanCode=127;
else
scanCode=evt.keyCode;}
return scanCode;}};
Taknology.UI.CharCounter=function(){};
Taknology.UI.CharCounter.prototype={
countChars:function(source,evt,mlength,target){
if(this.countKey(evt)){
if(target){
this.updateCharCountLabel(source,evt,target,mlength);}}},
updateCharCountLabel:function(source,evt,target,mlength){
var targetEl=document.getElementById(target);
if(targetEl){
if(evt.type==="keypress")
targetEl.innerHTML=(source.value.length + 1);
else
targetEl.innerHTML=(source.value.length);}},
limitChars:function(source,evt,mlength,updateCharsLeft,target){
if(this.countKey(evt)){
if(source.value.length>=mlength){
source.value=source.value.substring(0,mlength);
$tk_dom.preventDefault(evt);
return false;}
if(updateCharsLeft&&target){
this.updateRemainingChars(source,evt,target,mlength);}}},
updateRemainingChars:function(source,evt,target,mlength){
var targetEl=document.getElementById(target);
if(targetEl){
if(evt.type==="keypress")
targetEl.innerHTML=(mlength -(source.value.length + 1));
else
targetEl.innerHTML=(mlength - source.value.length);}},
countKey:function(evt){
var countIt=true;
var scanCode=$tk_ui_key.getKeyCode(evt)
if(scanCode){
if((scanCode==$tk_ui_key.pageUp)||
(scanCode==$tk_ui_key.pageDown)||
(scanCode==$tk_ui_key.up)||
(scanCode==$tk_ui_key.down)||
(scanCode==$tk_ui_key.left)||
(scanCode==$tk_ui_key.right)||
(scanCode==$tk_ui_key.home)||
(scanCode==$tk_ui_key.end)||
(scanCode==46)||
(evt.ctrlKey)){
countIt=false;}}
return countIt;}};
Taknology.Functions=function(){};
Taknology.Functions.createDelegate=function(a,b){
return function(){
return b.apply(a,arguments)}};
var taknology,td_dom,tk_ui,tk_key,tk_ui_charcounter;
var $taknology=taknology=new Taknology();
var $tk_dom=tk_dom=new Taknology.DOM();
var $tk_ui=tk_ui=new Taknology.UI();
var $tk_ui_key=tk_ui.key=new Taknology.UI.Key();
var $tk_ui_charcounter=tk_ui_charcounter=new Taknology.UI.CharCounter();
var $tk_addHandler=$tk_dom.addHandler();
var $tk_removeHandler=$tk_dom.removeHandler();