function keyGen() {
        rnd.today=new Date();
        rnd.seed=rnd.today.getTime();

        return rand(10000000)-1;

        function rnd() {
                rnd.seed = (rnd.seed*9301+49297) % 233280;
                return rnd.seed/(233280.0);
        };

        function rand(number) {
                return Math.ceil(rnd()*number);
        };
}

function getObj( elementId ) {
    if ( document.getElementById ) {
            return document.getElementById( elementId );
    } else if ( document.all ) {
            return document.all[elementId];
    } else if ( document.layers ) {
            return document[ elementId ];
    }
}


function getAjaxErrorFocus(formObj) {
var result = true;
	var spans = document.getElementsByTagName('span');
	for (var i=0; i<spans.length; i++) {
	  if ((spans[i].id).indexOf('ajax_')>=0) {
	    if ((spans[i].innerHTML).length>0) {
	      var objName = spans[i].id.substring('ajax_'.length, spans[i].id.length);
		result = false;
	      try {
		if (formObj[objName].length>1) {
			formObj[objName][0].focus();
		} else {
		      	formObj[objName].focus();
		}
	      } catch (ex) {}
	      break;
		  }
	  }
	}
	return result;
}


/*-- IE option disable --*/
var OptionDisabledSupport = new function() {
  this.previouslySelectedIndices = new Array();
  this.init = function() {
    selects = document.getElementsByTagName("select");
    for (var i=0;i<selects.length;i++) {
      var select = selects[i];
      var oldOnClick = select.onclick;
      var oldOnChange = select.onchange;
//     select.onclick = null;
//      select.onchange = null;
      // Must execute the old onclick/onchange handlers after this one.
      // For some reason IE reverses the order you specify.
      if (oldOnClick)
//        select.attachEvent ('onclick',function(e) {oldOnClick.apply(e.srcElement, arguments)})
      if (oldOnChange)
//        select.attachEvent ('onchange',function(e) {oldOnChange.apply(e.srcElement, arguments)})
      select.attachEvent ('onclick',function(event) {OptionDisabledSupport.previouslySelectedIndices[event.srcElement] = event.srcElement.selectedIndex;})
      select.attachEvent ('onchange',function(event) {OptionDisabledSupport.handleSelect(event.srcElement)})
      for (var z=0;z<select.options.length;z++) {
        option = select.options[z];
//        option.style.color = option.disabled ? "graytext" : option.style.color;
      }
      OptionDisabledSupport.handleSelect(select);
    }
  }
  this.handleSelect = function(select) {
    if (select.multiple) {
      for (var i=0;i<select.options.length;i++) {
        option = select.options[i];
        option.selected = option.disabled && option.selected ? false : option.selected;
      }
    } else {
      if (select.selectedIndex > -1) {
        if (select.options[select.selectedIndex].disabled) {
          select.selectedIndex = OptionDisabledSupport.previouslySelectedIndices[select];
          if (select.options[select.selectedIndex].disabled) {
            select.selectedIndex = -1;
          }
        }
      }
    }
  }
}
if (window.attachEvent) window.onload = OptionDisabledSupport.init;


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function getParameter ( queryString, parameterName ) {
        var parameterName = parameterName + "=";
        if ( queryString.length > 0 ) {
                begin = queryString.indexOf ( parameterName );
                if ( begin != -1 ) {
                        begin += parameterName.length;
                        end = queryString.indexOf ( "&" , begin );
                        if ( end == -1 ) {
                                end = queryString.length
                        }
                        return unescape ( queryString.substring ( begin, end ) );
                }
                return "null";
        }
}


