﻿//----------------------------------------
//Popup custom window
//----------------------------------------

function popupWin(winurl,popW,popH)
{
{
var w = 480, h = 340;

if (document.all || document.layers) {
   w = screen.availWidth;
   h = screen.availHeight;
}
//var popW = 400, popH = 280;
var leftPos = ((w-popW)/2)-12, topPos = (h-popH)/2;
newwin=window.open(winurl,'popup','scrollbars=yes, width=' + popW + ',height=' + popH + ',top=' + topPos + ',left=' + leftPos);

}
	if(parseInt(navigator.appVersion) >= 4)
	{
		//when trying to focus a recently opened window
 		setTimeout('newwin.focus();',250);
	}
}








//***********************************************
// Gets all elements with the given class
//***********************************************
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}
//*******************************************************
// Determines if a number is an integer
//*******************************************************
function isInt(myNum){
	// get the modulus: if it's 0, then it's an integer
	var myMod = myNum % 1;
	if(myMod == 0){
		return true;
	}else{
		return false;
	}
}
//***********************************************
// removes all child nodes from the passed object
//***********************************************
function clearNodes(obj){
	if(obj){
		while(obj.hasChildNodes()){
			obj.removeChild(obj.childNodes[0]);
		}
	}
}
//*******************************************************
// Adds alternating highlights to a table
//*******************************************************
function setHighlights(tbl,col1,col2){
	var trs=tbl.getElementsByTagName('tr')
	var len=trs.length;
	for(var i=0;i<len;i++){
		if(i%2){
			trs[i].style.backgroundColor=col1;
			trs[i].style.color="#000000";
		}
		else{
			trs[i].style.backgroundColor=col2;
			trs[i].style.color="#000000";
		}
	}
}
//*******************************************************
// Adds an event listener to an object without removing
// current events.
//*******************************************************
function XBrowserAddHandler(target,eventName,handlerName) {
  if ( target.addEventListener ) {
    target.addEventListener(eventName, function(e){target[handlerName](e);}, false);
  } else if ( target.attachEvent ) {
    target.attachEvent("on" + eventName, function(e){target[handlerName](e);});
  } else {
    var originalHandler = target["on" + eventName];
    if ( originalHandler ) {
      target["on" + eventName] = function(e){originalHandler(e);target[handlerName](e);};
    } else {
      target["on" + eventName] = target[handlerName];
    }
  }
}
//*******************************************************
// Adds an onload event without removing declared load events
//*******************************************************
function addLoadEvent(func){
	var oldonload=window.onload;
	if(typeof window.onload!='function'){
		window.onload=func;
	}else{
		window.onload=function(){
			if(oldonload){
				oldonload();
			}
			func();
		}
	}
}
function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}
//*******************************************************
// Mouse Co-Ords
//*******************************************************
var posX;
var posY;
function mouseXY(e){
    if (!e){
        var e = window.event;
    }
    if (e.clientX){
        posX = e.clientX + document.documentElement.scrollLeft;
        posY = e.clientY + document.documentElement.scrollTop;
    }else{
        posX = Math.max(e.pageX,0);
        posY = Math.max(e.pageY,0);
    }
    var coord=new Array();
    return coord;
}
if(document.captureEvents){
 document.captureEvents(Event.MOUSEMOVE)
}
//*******************************************************
// Form Validation
//*******************************************************
function ajaxFormValid(obj){
    var kids=obj.getElementsByTagName('*');
    var len=kids.length;
    var flg=0;
    var blank=/\s/g;
    for(var i=0;i<len;i++){
        if(kids[i].nodeType==1){
            switch(kids[i].tagName.toLowerCase()){
                case "input":
                    switch(kids[i].getAttribute('type')){
                        case "radio":
                        
                        break;
                        
                        case "checkbox":
                        
                        break;
                        
                        default:
                            if(kids[i].className.indexOf('req')!=-1){
                                if(kids[i].value.replace(blank,"")==""){
                                    flg=1;
                                    kids[i].style.border='solid 1px red';
                                }else{
                                    kids[i].style.border='solid 1px #7F9DB9';
                                }
                            }    
                        break;
                    }
                break;
                
                case "select":
                
                break;
                
                case "textarea":
                    if(kids[i].className.indexOf('req')!=-1){
                        if(kids[i].value.replace(blank,"")==""){
                            flg=1;
                            kids[i].style.border='solid 1px red';
                        }else{
                            kids[i].style.border='solid 1px #7F9DB9';
                        }
                    }
                break;
            }
        }
    }
    if(flg==1){
        return false;
    }else{
        return true;
    }
}
function formValid(formObj){
    var ele=formObj.elements;
    var len = ele.length;
    var is_valid=true;
    for(var i=0;i<len;i++){
        switch(ele[i].tagName.toLowerCase()){
            case "input":
                switch(ele[i].getAttribute('type')){
                    case "text":
                        if(ele[i].className.indexOf('req')!=-1){
                            var re=/\s/g;
                            if(ele[i].value.replace(re,"")==""){
                                ele[i].value="";
                                ele[i].style.border='solid 1px red';
                                is_valid=false;
                            }else{
                                ele[i].style.border='solid 1px #7F9DB9';
                            }
                        }
                    break;
                }
            break;
            case "select":
                if(ele[i].className.indexOf('req')!=-1){
                    if(ele[i].selectedIndex==0){
                        ele[i].options[0].style.backgroundColor='red';
                        ele[i].style.border='solid 1px red';
                        is_valid=false;
                    }else{
                        ele[i].options[0].style.backgroundColor='';
                        ele[i].style.borderColor='';
                    }
                }
            break;
        }
    }
    if(is_valid){
        clearNodes(document.getElementById('form_err'));
    }else{
        document.getElementById('form_err').innerHTML="Some of your inputs are incomplete or invalid.  Incorrect fields are marked in red.";
    }
    return is_valid;
}
//*******************************************************
// Turns on the lightbox
//*******************************************************
var cover_element=document.getElementById('e');
function lightBoxOn(){
    var cover_element=document.getElementById('e');
    var div=document.createElement('div');
    div.style.position='absolute';
    div.id='lightbox';
    div.style.left=cover_element.offsetLeft+'px';
    div.style.top='0px';
    div.style.height=cover_element.offsetHeight+'px';
    div.style.width=cover_element.offsetWidth+'px';
    div.style.backgroundColor='#CCCCCC';
    div.style.clear='left';
    div.style.opacity='.5';
    div.style.filter='alpha(opacity=50)';
    div.style.zIndex='100';
    
    var shim=document.createElement('iframe');
    shim.style.position='absolute';
    shim.id='lightbox_shim';
    shim.style.left=cover_element.offsetLeft+'px';
    shim.style.top='0px';
    shim.style.height=cover_element.offsetHeight+'px';
    shim.style.width=cover_element.offsetWidth+'px';
    shim.style.backgroundColor='#CCCCCC';
    shim.style.clear='left';
    shim.style.opacity='.5';
    shim.style.filter='alpha(opacity=50)';
    shim.style.zIndex='99';
    document.body.appendChild(shim);
    document.body.appendChild(div);
    window.onresize=function(){
        var cover_element=document.getElementById('e');
        document.getElementById('lightbox').style.left=cover_element.offsetLeft+'px';
        document.getElementById('lightbox_shim').style.left=cover_element.offsetLeft+'px';
        document.getElementById('lightbox_content').style.left=(((cover_element.offsetWidth / 2) + (cover_element.offsetLeft*1) - document.getElementById('lightbox_content').offsetWidth / 2)) +'px';
    }
}
//*******************************************************
// Turns off the lightbox
//*******************************************************
function lightBoxOff(){
    window.onresize="";
    document.body.removeChild(document.getElementById('lightbox'));
    document.body.removeChild(document.getElementById('lightbox_shim'));
    document.body.removeChild(document.getElementById('lightbox_content'));
}
//*******************************************************
// Adds a custom object to the lightbox
//*******************************************************
function addToLightBox(obj){
    var cover_element=document.getElementById('e');
    document.body.appendChild(obj);
    obj.style.position='absolute';
    obj.style.left=(((cover_element.offsetWidth / 2) + (cover_element.offsetLeft*1) - obj.offsetWidth / 2)) +'px';
    obj.style.top=((document.documentElement.scrollTop * 1) + 20) + 'px';
    obj.style.zIndex='101';
    obj.id='lightbox_content';
}
//*******************************************************
// Custom alert or confirm pass flg for confirm leave 
// flg null for alert
//*******************************************************
function customConfirm(posAction,negAction,txt,flg){

    var div=document.createElement('div');
    div.style.width='300px';
    div.style.textAlign='center';
    div.style.border='solid 1px #336699';
    div.style.backgroundColor='#FFFFFF';
    div.style.padding='0px';
    
    var p=document.createElement('p');
    p.appendChild(document.createTextNode('Attention!'));
    p.style.backgroundColor='#336699';
    p.style.color='#FFFFFF';
    p.style.textAlign='left';
    p.style.paddingLeft='5px';
    p.style.margin='0px';
    p.style.fontWeight='bold';
    div.appendChild(p);
    
    var p=document.createElement('p');
    p.style.padding='5px';
    p.appendChild(document.createTextNode(txt));
    div.appendChild(p);
    
    var inp=document.createElement('input');
    inp.setAttribute('type','button');
    inp.setAttribute('value','O.K.');
    inp.style.margin='5px';
    inp.onclick=posAction;
    div.appendChild(inp);
    
    if(flg){
        var inp=document.createElement('input');
        inp.setAttribute('type','button');
        inp.style.margin='5px';
        inp.setAttribute('value','Cancel');
        inp.onclick=negAction;
        div.appendChild(inp);
    }
    lightBoxOn();
    addToLightBox(div);
}
