/* KeyCode Constances*/
var   kc_backspace=8
	, kc_tab =	9
	, kc_enter=	13
	, kc_shift=	16
	, kc_ctrl =	17
	, kc_alt  =	18
	, kc_pause	=	19
	, kc_capslock =	20
	, kc_escape =	27
	, kc_pageup  =	33
	, kc_pagedown =	34
	, kc_end 	 =	35
	, kc_home   =	36
	, kc_left   =	37
	, kc_up 	 =	38
	, kc_right   =	39
	, kc_down   =	40
	, kc_insert	=	45
	, kc_delete	=	46;

//Donot logout is using for trigger the session close if the student click on X in this case the value should be false
//othervise if the use wants to navigat to other page it going to be true.
var DoNotLogOut = false ; 

var _$=function(id) {return document.getElementById(id) ;}
var _$$ = function(id) {return document.all(id) ;}
var _f$ = function(formid,elemid) {return document.forms(formid).elements(elemid) ;}
var _DS$ = function(parentid,elemid) {return document.getElementById(parentid).document.getElementById(elemid) ;}


function CloseSession(session_switch) {
	if (!DoNotLogOut) {
		switch (session_switch) { 
			case 'students': 
				document.location.href =  'StudentLogout.asp' ;
				break;
		}
	}
}

function CreateMDArray(row,col) {
    var arr = new Array(row) ; 
    for (var i=0 ; i<row; i++) {
        arr[i]=new Array(col) ;
    }
    return arr ; 
}

function SubmitForm(btnSubmit,validationFUN,strWAIT) {
	if (validationFUN) { 
		if (strWAIT!='')  {
			var  WAIT =_$(strWAIT)    ;
			if (WAIT) {
				WAIT.style.display='block';
				WAIT.visibility='yes';
			}
		}
		btnSubmit.disabled=1;
		get_form(btnSubmit).submit();
	}
		
}
	
function get_form( element )    {
    while( element ){
        element = element.parentNode ;
        if( element.tagName.toLowerCase() == "form" ) 
        {
            //alert( element ) //debug/test
            return element ; 
                
        }
    }
    return 0; //error: no form found in ancestors
}
	
function set_form_poststr(frm) {
    var flds , i , j , str='',mSel='' ; 
    for (i=0;i<frm.elements.length;i++) {
		flds = frm.elements[i] ; 
		if (flds.type=='select-multiple') {
			mSel = '' ; 
			for (j=0;j<flds.length;j++) {
				if (flds.options[j].selected) {
					if(mSel!='') {mSel+=',';}
					mSel+=escape(flds[j].value) ; 
				}
			}
			if(str!='') {str+='&';}
			str += flds.name + '=' + mSel ; 
		}else if(flds.type=='checkbox')	{
			if (flds.checked) {
				if(str!='') {str+='&';}
				str+=flds.name + '=' + escape(flds.value) ; 
			}
		}else if(flds.type=='radio')	{
			if (flds.checked) {
				if(str!='') {str+='&';}
				str+=flds.name + '=' + escape(flds.value) ; 
			}
		}else{
			if(str!='') {str+='&';}
			if (flds.name=='pg') {flds.name='curpage';}
			str+=flds.name + '=' + escape(flds.value) ; 
		}
    }
    return str.replace('sex=','Z=') ;
}

function LoaderMsg(LoaderObj, Msg) {
	var div = '' ; 
	div = "<div style=\'width:100%; height:100%;   TEXT-ALIGN: center;\' >" + Msg + "</div>" ; 
	LoaderObj.innerHTML=div ; 
}

function LoaderMsg_off(LoaderObj) {
	LoaderObj.innerHTML = '' ;
}
// Show or hide a  window in the form 
function showHideObject(Btn,ObjID) {
	if (Btn.value=='+')
	{
		ShowObject(ObjID) ;
		Btn.value='-';
	}
	else 
	{
		HideObject(ObjID) ;
		Btn.value='+';
	}
}  

function Delay(millis) {
	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); }
	while(curDate-date < millis);
}

function ShowObject_anim(ObjID) {
	var obj = _$(ObjID) ; 
	var w=obj.style.width.replace('px','');
	var h=obj.style.height.replace('px','');
	obj.style.width='10';
	obj.style.height='10';
	obj.style.display='block';
	w1=10; h1=10;
	while (w1<w || h1<h) {
		obj.style.width=w1 ;
		obj.style.height=h1 ;
		if (w1<w){w1+=10;}
		if (h1<h){h1+=10;}
		obj.style.display='block';
		Delay(10);
	}
	//obj.style.width=w+'px';
	//obj.style.height=h+'px';
}

function ShowObject(ObjID) {
    _$(ObjID).style.display='';
}
function HideObject(ObjID) {
    _$(ObjID).style.display='none';
}

function textMaxLength(obj, maxLength, evt)
{  
    var charCode=(evt.which) ? evt.which : event.keyCode ; 
    var max = maxLength - 0;
    var text = obj.value;
    window.status = text.length ; 
    if(text.length > max)
    { 
       alert("Content should not exceed "+max+" characters");
       obj.value = text.substring(0,max);
       return false;
    }
    else
    {
        return true;
    }
} 


function getQuerystring(key, strQry, splitter, default_)
{
    if (default_==null)
    {
        default_="";
    }
    if (splitter==null) {
		splitter="&";
	}
			
    var search = unescape(strQry);
    if (search == "")
    {
        return default_;
    }
    var params = search.split(splitter);
    for (var i = 0; i < params.length; i++)
    {
        var pairs = params[i].split("=");
        if(pairs[0].toLowerCase() == key.toLowerCase())
        {
            return pairs[1];
        }
    }
}

function BlockDisabled(el, doDisable) {
    try {
        el.disabled = doDisable ; 
    }
    catch(E){}
                
    if (el.childNodes && el.childNodes.length > 0) {
        for (var x = 0; x < el.childNodes.length; x++) {
            BlockDisabled(el.childNodes[x], doDisable);
        }
    }
}

function MaximizeWindow() {
	if (document.all) {
		window.resizeTo(screen.width, screen.height);
		top.window.moveTo (0,0);
	}	
}

function MakeWindowCenter(){
	if (document.all) { 
		top.window.moveTo ((screen.width-document.body.clientWidth   )/2,(screen.height-document.body.clientHeight)/2);
	} 
}


window.size = function(){
	var w = 0;
	var h = 0;
	//IE
	if(!window.innerWidth){
		//strict mode
		if(!(document.documentElement.clientWidth == 0)){
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else{
		w = window.innerWidth;
		h = window.innerHeight;
	}
	return {width:w,height:h};
}

window.center = function()
{
	var hWnd = (arguments[0] != null) ? arguments[0] : {width:0,height:0};
	var _x = 0;
	var _y = 0;
	var offsetX = 0;
	var offsetY = 0;
	//IE
	if(!window.pageYOffset){
		//strict mode
		if(!(document.documentElement.scrollTop == 0))	{
			offsetY = document.documentElement.scrollTop;
			offsetX = document.documentElement.scrollLeft;
		}
		//quirks mode
		else	{
			offsetY = document.body.scrollTop;
			offsetX = document.body.scrollLeft;
		}
	}
	//w3c
	else {
		offsetX = window.pageXOffset;
		offsetY = window.pageYOffset;
	}
	_x = ((this.size().width-hWnd.width)/2)+offsetX;
	_y = ((this.size().height-hWnd.height)/2)+offsetY;
	return{x:_x,y:_y};
}

function MakeObjectCenter(div) {	
	var divW = div.offsetWidth;
	var divH = div.offsetHeight;
	
	var point = (window.center({width:divW,height:divH})) ;
	
	div.style.position = "absolute";
	div.style.top = point.y + "px";
	div.style.left = point.x + "px";
}

/* Drag Items Functions */ 

var dragObject  = null;
var mouseOffset = null;

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;

	while (e.offsetParent){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}

function mouseMove(){
	ev= window.event;
	var mousePos = mouseCoords(ev);

	if(dragObject){
		dragObject.style.position = 'absolute';
		dragObject.style.top      = mousePos.y - mouseOffset.y;
		dragObject.style.left     = mousePos.x - mouseOffset.x;

		return false;
	}
}
function mouseUp(){
	dragObject = null;
}

function makeDraggable(item,header){
	if(!item) return;
	if (!header){
		var objDIV = item;
		var objHD = item;
	}else{
		var objDIV = item;
		var objHD = header;
	}
	
	objHD.onmousedown = function(ev){
		dragObject  = objDIV;
		mouseOffset = getMouseOffset(objHD, ev);
		return false;
	}
}
/*	makeDraggable(_$('searchstudents'));
	document.onmousemove = mouseMove;
	document.onmouseup   = mouseUp;
	*/
	


function sethtml(div,content) {
   var search = content;
   var script;
         
   var is_singleq = 0; var singleq = "'";
   var is_doubleq = 0; var doubleq = '"';
   var is_escaped = 0; var escap = "\\";
   var layer = 0;
               
   while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) {
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
      block = search.substr(0, search.indexOf(RegExp.$1));
      search = search.substring(block.length + RegExp.$1.length);
            
      while(func = block.match(/(function(.+?)\((.*?)\)\s*\{)/)) {
         eval(block.substr(0,block.indexOf(RegExp.$1)));
         // for evaluating non functions
               
         block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length);
         name = RegExp.$2;
         param = RegExp.$3;
               
         is_singleq = 0;
         is_doubleq = 0;
         is_escaped = 0;
         layer = 0;
               
               
         for(i=0;i<block.length;i++) {
            c = block.substr(i,1);
                  
            if ((is_singleq || is_doubleq) && is_escaped) {
               is_escaped = 0;
            } else if (!is_doubleq && (c==singleq)) {
               is_singleq = !is_singleq;
            } else if (!is_singleq && (c==doubleq)) {
               is_doubleq = !is_doubleq;
            } else if ((is_singleq || is_doubleq) && (c==escap)) {
               is_escaped = 1;
            } else if ( c=="{") {
               layer++;
            } else if ( c=="}") {
               if ( layer==0 ) {
                  break;
               }
               layer--;
            }
         }
               
         code = block.substr(0,i-1);
         block = block.substr(i +1);
               
         code = code.replace(/\n/g, '\\n');
         code = code.replace(/\r/g, '\\r');
         code = code.replace(/'/g,"\\'");
               
         eval(name + " = new Function('"+param+"','"+code+"');");
      }
      eval(block); // for evaluating non functions
   }
   _$(div).innerHTML=content;
} 


function ArrayToExcel(arrXL) {  
	var xls = new ActiveXObject ("Excel.Application"); 
	if(xls==null){ 
	    alert('error in loading Excel'); 
	    return false;
	} 
	xls.visible = true; 
	var newBook = xls.workbooks.add; 
	newBook.worksheets.add; 
	newBook.worksheets(1).activate ; 
	for (r = 0; r<arrXL.length; r++) {
	    for (c = 0; c<arrXL[r].length; c++) {
	        newBook.worksheets(1).rows(r+1).select;
	        newBook.worksheets(1).cells(r+1,c+1).value=arrXL[r][c] ; 
	    }
	}
	newBook.worksheets(1).rows(1).select;
	newBook.worksheets(1).Columns.ReadingOrder = -5004 ; 
	newBook.worksheets(1).Columns.AutoFit ; 
	xls=null; 
	newBook=null; 
	return true ; 
}
function PadDigits(n, totalDigits) 
{ 
    n = n.toString(); 
    var pd = ''; 
    if (totalDigits > n.length) 
    { 
        for (i=0; i < (totalDigits-n.length); i++) 
        { 
            pd += '0'; 
        } 
    } 
    return pd + n.toString(); 
} 
//*************************************************************************
// Date Key Input
//*************************************************************************

function DateInput(ObjName,ObjValue,ObjStyle) {
    var MainNode = 'MainNode_'+ObjName ; 
    var ddName = 'dd_'+ObjName ; 
    var mmName = 'mm_'+ObjName ; 
    var yyyyName = 'yyyy_'+ObjName ; 
	var input = document.createElement('input');
	input.type='hidden';
	input.id = ObjName ;
	input.name= ObjName ;
	input.value=ObjValue ; 
	_$(MainNode ).appendChild(input);
	
	
	var dd=CreateTextInput(MainNode ,ddName ,ObjValue.substr(8),'width:16px;Border:none;') ;
	dd.onkeypress=function() { 
							var key = window.event.keyCode ; 
							if  (key<48 || key>57) {
							    return false; 
							}
							return true;
						};
	dd.onkeydown=function() {							
	                        var key = window.event.keyCode ; 
	                        if (key==kc_enter ){	
								window.event.keyCode=9;  
							}
							return true;
						};	
	dd.onchange = function(){objOnChange(ObjName);};
	dd.setAttribute('maxLength', '2');
	document.write('\/') ;
	
	var mm=CreateTextInput(MainNode ,'mm_'+ObjName,ObjValue.substr(5,2),'width:16px;Border:none;') ;  
	mm.onkeypress=function() { 
							var key = window.event.keyCode ; 
							if  (key<48 || key>57) {
							    return false; 
							}
							return true;
						};
	mm.onkeydown=function() {							
	                        var key = window.event.keyCode ; 
	                        if (key==kc_enter ){	
								window.event.keyCode=9;  
							}
							return true;
						};	

	mm.onchange = function(){objOnChange(ObjName);};
    mm.setAttribute('maxLength', '2');
	document.write('\/') ;
	
	var yyyy=CreateTextInput(MainNode ,'yyyy_'+ObjName,ObjValue.substr(0,4),'width:30px;Border:none;') ;  
	
	yyyy.onkeypress=function() { 
							var key = window.event.keyCode ; 
							if  (key<48 || key>57) {
							    return false; 
							}
							return true;
						};
	yyyy.onkeydown=function() {							
	                        var key = window.event.keyCode ; 
	                        if (key==kc_enter ){	
								window.event.keyCode=9;  
							}
							return true;
						};	
 					
	yyyy.setAttribute('maxLength', '4');
	yyyy.onchange = function(){objOnChange(ObjName);};			
	
	document.write('&nbsp;') ;
	
    _$(MainNode).style.background='white' ;
    SetMainNodeStyle(MainNode,ObjStyle) ; 
   
}
function SetMainNodeStyle(MainNode, style) {
    if (style!='') {
        _$(MainNode).style.cssText=style;
        _$('dd').style.background=_$(MainNode).style.background;
        _$('mm').style.background=_$(MainNode).style.background;
        _$('yyyy').style.background=_$(MainNode).style.background;
    }
}

function CreateTextInput(MainNode, objID, objValue,objStyle) {
	var input = document.createElement('input',objID);
	input.type='text' ; 
	input.style.cssText=objStyle; 
	input.id=objID;
	input.value=objValue ; 
	_$(MainNode).appendChild(input);
	return input ; 
}

function objOnChange(ObjName)  {
	var theDate = _$(ObjName) ; 
	var CheckDate ;
	var dd = _$('dd_'+ObjName);
	var mm= _$('mm_'+ObjName);
	var yyyy = _$('yyyy_'+ObjName);
	CheckDate = true;
	
	if (eval(dd.value)<1 || eval(dd.value)>31 || dd.value=='') {
		dd.value='';
		CheckDate = false;
	}
	if (eval(mm.value)<1 || eval(mm.value)>12 || mm.value=='') {
		mm.value='';
		CheckDate = false;
	}
	if (eval(yyyy.value)>80 && eval(yyyy.value)<99) {
		yyyy.value='13'+yyyy.value;
	}			
	if (eval(yyyy.value)<1300 || eval(yyyy.value)>1400 || yyyy.value=='') {
		yyyy.value='';
		CheckDate = false;
	}
	if (CheckDate)  {
	    //if (eval(mm.value)<10) {mm.value = '0'+mm.value; }
	    //mm.value  = eval(mm.value)<10 ? '0'+eval(mm.value): eval(mm.value);
	    //dd.value  = eval(dd.value)<10 ? '0'+eval(dd.value): eval(dd.value);
		theDate.value =yyyy.value + '/' + PadDigits(mm.value,2) + '/' + PadDigits(dd.value,2) ; 
	}else{
		theDate.value ='';
	}
}

//*************************************************************************
// END Date Key Input
//*************************************************************************
