function goodchars(e, goods) {
	var key, keychar;
	key = getkey(e);
	if (key == null) return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();
	if (goods.indexOf(keychar) != -1)
		return true;
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
		return true;
	return false;
}
function getkey(e) {
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
		return null;
}
function getBrowser() {
    brs=navigator.userAgent.toLowerCase();
    var retval;
    if (brs.search(/msie\s(\d+(\.?\d)*)/)!=-1) {
        retval='msie';
    } else if (brs.search(/netscape[\/\s](\d+([\.-]\d)*)/)!=-1) {
        retval='netscape';
    } else if (brs.search(/firefox[\/\s](\d+([\.-]\d)*)/)!=-1) {
        retval='firefox';
    } else if (brs.search(/safari[\/\s](\d+([\.-]\d)*)/)!=-1) {
        retval='safari';
    } else {
        retval='unknown';
    }
    return retval;
}
function checkKeyPress(ev, obj, allowDot) {
    var keyCode = null;
    if ( getBrowser()=='msie' ) {
        keyCode = window.event.keyCode;
    } else if ( getBrowser()=='netscape' || getBrowser()=='firefox' ) {
        keyCode = ev.which;
    }
    var keyAllowed = true;
    if (keyCode==8||keyCode==9) {
        retval = true;
    } else {
		if (allowDot)
			keyAllowed =  ((keyCode >= 48) && (keyCode <= 57) || keyCode == 46)
		else
			keyAllowed = (keyCode >= 48) && (keyCode <= 57)

	    if (!keyAllowed) {
    	    if ( getBrowser()=='msie' ) {
        	    window.event.keyCode=0;
	        } else if ( getBrowser()=='netscape' || getBrowser()=='firefox' ) {
    	        ev.preventDefault();
        	    ev.stopPropagation();
            	ev.returnValue=false;
	        }
    	}
		   return false;
	}
}

function validate_email(input) {
	s= input.value
	if(s.search) {
		return (s.search(new RegExp("^([-!#$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}$","gi"))>=0)
	}
	if(s.indexOf) {
		at_character=s.indexOf('@')
		if(at_character<=0 || at_character+4>s.length)
			return false
	}
	if(s.length<6)
		return false
	else
		return true
}
function getCookieVal (offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1)    
		endstr = document.cookie.length;  
	return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg)      
			return getCookieVal (j);    
			i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}
function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}


// model win starts
var modalWin = new Object( );
	function openModalWin(url, width, height, returnFunc, args) {
        name = (new Date( )).getSeconds( ).toString( );
		if(window.showModalDialog) { // IE
			modalWin.returnFunc = returnFunc;
			window.showModalDialog(url, name,'dialogWidth:'+width+'px; dialogHeight:'+height+'px; Help:0; Scroll:1; Status:1;'+args);
		}else {
			if (!modalWin.win || (modalWin.win && modalWin.win.closed)) {
				if(window.screenX) { // probably FF
			        modalWin.url = url;
			        modalWin.width = width;
			        modalWin.height = height;
			        modalWin.returnFunc = returnFunc;
		    	    modalWin.args = args;
		        	modalWin.returnedValue = "";
					modalWin.left = window.screenX + ((window.outerWidth - modalWin.width) / 2);
					modalWin.top = window.screenY + ((window.outerHeight - modalWin.height) / 2);
					var param = "modal=yes,screenX=" + modalWin.left + ",screenY=" + modalWin.top + ",scrollbars=yes,resizable=no,width=" + modalWin.width + ",height=" + modalWin.height;
	       	 	} else { // maybe others
	    	        modalWin.left = (screen.width - modalWin.width) / 2;
		            modalWin.top = (screen.height - modalWin.height) / 2;
    		        var param = "modal=yes,left=" + modalWin.left + ",top=" + modalWin.top + ",scrollbars=yes,resizable=no,width=" + modalWin.width + ",height=" + modalWin.height;
		        }
				modalWin.win = window.open(modalWin.url, name, param);
				modalWin.win.focus();
	    	} else {
       			modalWin.win.focus();
		    }
		}
	}
	function blockGeckoEvents() {
		if(!window.showModalDialog) {
			$('#geckoHiddenLayer').show();
			window.onfocus = checkOpenedModal;
	    	document.onclick = checkOpenedModal;
		}
	}
	function unblockGeckoEvents( ) {
		if(!window.showModalDialog) {
			$('#geckoHiddenLayer').hide();
		}
	}
	function checkOpenedModal( ) {
    	if (!window.showModalDialog && modalWin.win && !modalWin.win.closed) {
	        modalWin.win.focus( );
	    }
	}
   
function retFunc( ) {
//	alert('ok');
}
// modal win ends
function checkAll(f) {
  for(var i=0 ; i<f.elements.length; i++) {
      var e = f.elements[i];
      if((e.type == 'checkbox') && (e.name != 'checkall'))
 	  e.checked = f.checkall.checked;
  }
}

function checkCtrl(f) {
  var len = f.elements.length;
  var totboxes = 0;
  var toton = 0;

	for(var i=0 ; i<len ; i++) {
		var e = f.elements[i];
		if((e.type == 'checkbox') && (e.name != 'checkall')) {
			totboxes++;
			if(e.checked) {
				toton++;
			}
		}
	}
	if(totboxes == toton) {
		f.checkall.checked = true;
	} else {
		f.checkall.checked = false;
	}
}

function setSelectOptions(the_form, the_select, do_check) {
    var selectObject = document.forms[the_form].elements[the_select];
    var selectCount  = selectObject.length;

    for (var i = 0; i < selectCount; i++) {
        selectObject.options[i].selected = do_check;
    } // end for

    return true;
} // end of the 'setSelectOptions()' function