function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function P7_Snap() { //v2.63 by PVII
 var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,tw,q0,xx,yy,w1,pa='px',args=P7_Snap.arguments;a=parseInt(a);
 if(document.layers||window.opera){pa='';}for(k=0;k<(args.length);k+=4){
 if((g=MM_findObj(args[k]))!=null){if((el=MM_findObj(args[k+1]))!=null){
 a=parseInt(args[k+2]);b=parseInt(args[k+3]);x=0;y=0;ox=0;oy=0;p="";tx=1;
 da="document.all['"+args[k]+"']";if(document.getElementById){
 d="document.getElementsByName('"+args[k]+"')[0]";if(!eval(d)){
 d="document.getElementById('"+args[k]+"')";if(!eval(d)){d=da;}}
 }else if(document.all){d=da;}if(document.all||document.getElementById){while(tx==1){
 p+=".offsetParent";if(eval(d+p)){x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
 }else{tx=0;}}ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);tw=x+ox+y+oy;
 if(tw==0||(navigator.appVersion.indexOf("MSIE 4")>-1&&navigator.appVersion.indexOf("Mac")>-1)){
  ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);}else{
  w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
  x=document.body.scrollLeft+event.clientX+bx;y=document.body.scrollTop+event.clientY;}}
 }else if(document.layers){x=g.x;y=g.y;q0=document.layers,dd="";for(var s=0;s<q0.length;s++){
  dd='document.'+q0[s].name;if(eval(dd+'.document.'+args[k])){x+=eval(dd+'.left');y+=eval(dd+'.top');
  break;}}}e=(document.layers)?el:el.style;xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
 if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
  xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);}
 e.left=xx+pa;e.top=yy+pa;}}}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(uniqueid) { //v2.0
  window.open('/calendar/calendar_details.php?uniqueid=' + uniqueid,'event','scrollbars=yes, resizable=yes, width=300, height=300');
}

function MM_setTextOfTextfield(objName,x,newText) { //v3.0
  var obj = MM_findObj(objName); if (obj) obj.value = newText;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function changestate_a(){
   document.register.state.value= document.register.selectstate.value

}

function changecountry_a(){
   document.register.country.value= document.register.selectcountry.value

}

function mask(end,middle,start,subject){
	var one ='mai';
	var two='lto:';
	var three='?Subject=';
	//start,middle,end,subject;
	var putogether= one+two+start+middle+end+three+subject;
	document.location.href=eval('"'+putogether+'"');
	window.status=putogether;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function P7_autoLayers() { //v1.4 by PVII
 var g,b,k,f,args=P7_autoLayers.arguments;a=parseInt(args[0]);if(isNaN(a))a=0;
 if(!document.p7setc){p7c=new Array();document.p7setc=true;for(var u=0;u<10;u++){
 p7c[u]=new Array();}}for(k=0;k<p7c[a].length;k++){if((g=MM_findObj(p7c[a][k]))!=null){
 b=(document.layers)?g:g.style;b.visibility="hidden";}}for(k=1;k<args.length;k++){
 if((g=MM_findObj(args[k]))!=null){b=(document.layers)?g:g.style;b.visibility="inherit";f=false;
 for(var j=0;j<p7c[a].length;j++){if(args[k]==p7c[a][j]) {f=true;}}
 if(!f){p7c[a][p7c[a].length++]=args[k];}}}
}

//Customized to delay before closing, also must include onmouseover="clearTimeout(TO);" in the div.
var menudiv;
var TO;
function P7_hideDiv(evt) { //v1.3 by PVII
 var relT,mT=false; 
 if(document.layers){menudiv=evt.target;if(menudiv.p7aHide){
  TO=setTimeout('menudiv.style.visibility=\'hidden\';',750)}else{routeEvent(evt);}
 }else if(document.all&&!window.opera){menudiv=event.srcElement;
  while(menudiv!=null){if(menudiv.tagName=="DIV" && menudiv.p7ahD){mT=true;break;}menudiv=menudiv.parentElement;}
  if(!menudiv.contains(event.toElement)){TO=setTimeout('menudiv.style.visibility=\'hidden\';',750)}
 }else if(document.getElementById){menudiv=evt.currentTarget;relT=evt.relatedTarget;
  while(relT!=null){if(menudiv==relT){mT=true;break;}
  relT=relT.parentNode;}if(!mT){TO=setTimeout('menudiv.style.visibility=\'hidden\';',750)}}
}

function P7_autoHide() { //v1.3 by PVII
 var i,g,args=P7_autoHide.arguments;
 for(i=0;i<args.length;i++){if((g=MM_findObj(args[i]))!=null){
  g.p7aHide=true;if(document.layers){
  g.captureEvents(Event.MOUSEOUT);}g.onmouseout=P7_hideDiv;g.p7ahD=true;}}
}

function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else 
countfield.value = maxlimit - field.value.length;
}

function popitup(url) {
	newwindow=window.open(url,'name','height=700,width=650,scrollbars=1,resizable=1');
	if (window.focus) {newwindow.focus()}
	return false;
}

function sendreferral(){
	window.open('','referralpop','status=0,width=350,height=425,resizable=0,scollbars=auto,toolbar=0,location=0,menubar=0');
	document.referralform.submit();
}

function navover(navelem) {
	alert(navelem);
	this.className='menu-on';
}

function navout(navelem) {
	this.className='menu-off';
}

 function SwapClass(){
	var obj,cN,args=SwapClass.arguments;document.MM_returnValue=(typeof(args[0].href)!='string')?true:false;
	for(var i=1;i<args.length-1;i+=2){obj=document.getElementById(args[i]);
		if(obj){cN = (typeof(obj.currentStyle)!='object')?'class':'className';
			if(!obj.dwfaq_OC){obj.dwfaq_OC=(obj.className=='')?true:obj.className;}
			if(obj.dwfaq_OC&&obj.className==args[i+1]){
				(obj.dwfaq_OC==true)?obj.className='':obj.className=obj.dwfaq_OC;}
			else{obj.className=args[i+1];}}}
}

function makeCookie(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 Get_Cookie( check_name ) {
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false;
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			if ( a_temp_cookie.length > 1 ) { cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); }
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ){ return null; }
}				

function Delete_Cookie( name, path, domain ) {
	if ( Get_Cookie( name ) ) document.cookie = name + "=" +
	( ( path ) ? ";path=" + path : "") +
	( ( domain ) ? ";domain=" + domain : "" ) +
	";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function reginfotoMals() {
	var ep = document.getElementById('evening_phone').value;
	var mp = document.getElementById('mobile_phone').value;
	var precon = document.getElementById('primarycontact').value;
	var weburl = document.getElementById('website_url').value;
	var addinfo = document.getElementById('additionalinfo').value;
	var addinfo2 = document.getElementById('additionalinfo2').value;
	var addinfo3 = document.getElementById('additionalinfo3').value;
	var lastname = document.getElementById('lname').value;
	var firstname = document.getElementById('fname').value;
	var addr1 = document.getElementById('addr1').value;
	var addr2 = document.getElementById('addr2').value;
	var email2 = document.getElementById('email2').value;
	var include = document.getElementById('include_online').value;
	if (document.getElementById('addr2').value != '')
		document.getElementById('inv_addr1').value = document.getElementById('addr1').value + " " + document.getElementById('addr2').value;
	else
		document.getElementById('inv_addr1').value = document.getElementById('addr1').value;
	document.getElementById('inv_name').value = document.getElementById('fname').value + " " + document.getElementById('lname').value;
	var condense = 'EP:' + ep + '|' + 'MP:' + mp + '|' + 'PrefCon:' + precon + '|' + 'WebURL:' + weburl + '|' + 'AddInfo:' + addinfo + ';' + addinfo2 + ';' + addinfo3 + '|' + 'FullName:' + lastname + ';' + firstname + '|' + 'FullAddr:' + addr1 + ';' + addr2 + '|' + '2nd Email:' + email2 + '|' + 'Include Me Online:' + include;
	if(condense != '') { document.getElementById('message').value = condense; }
}

function reginfotoMalsR() {
	var mid = document.getElementById('memid').value;
	var ep = document.getElementById('evening_phone').value;
	var mp = document.getElementById('mobile_phone').value;
	var precon = document.getElementById('primarycontact').value;
	var weburl = document.getElementById('website_url').value;
	var addinfo = document.getElementById('additionalinfo').value;
	var addinfo2 = document.getElementById('additionalinfo2').value;
	var addinfo3 = document.getElementById('additionalinfo3').value;
	var lastname = document.getElementById('lname').value;
	var firstname = document.getElementById('fname').value;
	var addr1 = document.getElementById('addr1').value;
	var addr2 = document.getElementById('addr2').value;
	var email2 = document.getElementById('email2').value;
	var include = document.getElementById('include_online').value;
	if (document.getElementById('addr2').value != '')
		document.getElementById('inv_addr1').value = document.getElementById('addr1').value + " " + document.getElementById('addr2').value;
	else
		document.getElementById('inv_addr1').value = document.getElementById('addr1').value;
	document.getElementById('inv_name').value = document.getElementById('fname').value + " " + document.getElementById('lname').value;
	var condense = 'MemID:' + mid + '|' + 'EP:' + ep + '|' + 'MP:' + mp + '|' + 'PrefCon:' + precon + '|' + 'WebURL:' + weburl + '|' + 'AddInfo:' + addinfo + ';' + addinfo2 + ';' + addinfo3 + '|' + 'FullName:' + lastname + ';' + firstname + '|' + 'FullAddr:' + addr1 + ';' + addr2 + '|' + '2nd Email:' + email2 + '|' + 'Include Me Online:' + include;
	if(condense != '') { document.getElementById('message').value = condense; }
}

function submitPhoto() {
	if (checkExtension(document.getElementById('photo').value))
		document.getElementById('addorder').action = '/display/content/scripts/editor_submit.php';
}

function submitEvent() {
	for (var i = 0; i < document.getElementById('addorder').elements.length; i++) {
    var e = document.getElementById('addorder').elements[i];
    	if(e.type == 'checkbox') {
			if(e.checked == true) { var valid = true; }
		}
	}
    if(valid == true) { document.getElementById('addorder').action = '/display/custom_scripts/editor_submit_multi_cat.php'; }
}

function submitClassified() {
	document.getElementById('addorder').action = '/display/custom_scripts/editor_submit_classifieds.php';
}

function checkClassified(catnum,catid) {
		if(document.getElementById('cat'+catnum).checked == true) { document.getElementById('cunid'+catnum).value = catid; }
		if(document.getElementById('cat'+catnum).checked == false) { document.getElementById('cunid'+catnum).value = ''; }
}

function changedropdown(dropdown, val) { // changes state dropdown on load, for search results
	var idx;
	for (i = 0; i < dropdown.length; i++) {
		if (dropdown[i].value == val) {
			idx = i;
			break;
		}
	}
	dropdown.selectedIndex = idx;
}

function checkExtension(filename) {
	// for mac/linux, else assume windows
    if (navigator.appVersion.indexOf('Mac') != -1 || navigator.appVersion.indexOf('Linux') != -1) var fileSplit = '/';
    else var fileSplit = '\\';

    var fileTypes     = new Array('.jpg'); // valid filetypes
    var extension     = filename.substr(filename.lastIndexOf('.'), filename.length);
    var valid = 0;
    
    for(var i in fileTypes) {
		if(fileTypes[i] == extension) {
			valid = 1;
		    break;
		}
    }
    return valid;
}

function goToPage(url) {
	// for drop down menu link onchange event
	if (url != "") { open(url); }
}


if(typeof __ === 'undefined') var __ = new tmlib;

if(__){
	__.scrOnload = function(){
		var keuringupdateSelect = new __.classes.updateSelect({elmSelectSource: document.getElementById("frmKeuring"), elmSelectDestination: document.getElementById("frmClass"), nameParameter: "catid", urlData: "/content/forms/ajax_classes_for_keuring.php"
			,callback: function(transport){
				var responseObject = JSON.parse(transport.responseText);
				var newHTML = "";
				for(var key in responseObject){
					if(responseObject.hasOwnProperty(key)){
						var itemID = "frmClass"+responseObject[key]["unid"];
						var typeInput = (typeof responseObject[key]["inputtype"] != "undefined")? responseObject[key]["inputtype"]: "radio";
						newHTML +=	'<div class="formitem checkbox"> \
										<input type="'+typeInput+'" name="class[]" value="'+responseObject[key]["unid"]+'" id="'+itemID+'" /> \
										<div class="label"> \
											<label for="'+itemID+'">'+responseObject[key]["name"]+'</label> \
									';
						if(typeof responseObject[key]["price"] != "undefined")
							newHTML +=		'<div class="price">$'+responseObject[key]["price"]+'</div>';
						if(typeof responseObject[key]["description"] != "undefined")
							newHTML +=		'<div class="description">'+responseObject[key]["description"]+'</div>';
						newHTML +=		'</div> \
									</div>';
					}
				}
				if(newHTML == ""){
					newHTML = "There are no other inspections available at this location for this horse.";
					if(this.boot.elmLabelAddMore){
						this.boot.elmLabelAddMore.style.display = "none";
					}
				}
				this.elmSelectDestination.innerHTML = newHTML;
			}
			,boot: {elmLabelAddMore: document.getElementById("frmLabelAddMore")}
		});
		var keuringInspectionListSelect = new __.classes.updateSelect({elmSelectSource: document.getElementById("selectInspectionList"), elmSelectDestination: document.getElementById("inspectionList"), handleNull: true, nameParameter: "catid", urlData: "/content/ajax_inspectionlist.php"
			,callback: function(transport){
				var responseObject = JSON.parse(transport.responseText);
				var horsesList = (typeof responseObject.horses != "undefined")? responseObject.horses: responseObject;
				var newHTML = "";
				if(horsesList.length > 0){
					newHTML += 				'<table class="horselist"> \
												<thead> \
													<tr> \
					';
					var keysRegistered = [];
					for(var key in horsesList[0]){
						if(horsesList[0].hasOwnProperty(key))
							keysRegistered.push(key);
					}
					for(var key in keysRegistered){
						if(keysRegistered.hasOwnProperty(key))
							newHTML +=					'<th class="'+keysRegistered[key]+'">'+keysRegistered[key].replace(/_/g, " ")+'</th>';
					}
					newHTML +=						'</tr> \
												</thead> \
												<tbody> \
					';

					for(var key in horsesList){
						if(horsesList.hasOwnProperty(key)){
							newHTML +=	'<tr class="horse">';
							var horse = horsesList[key];
							for(var subkey in keysRegistered){
								if(keysRegistered.hasOwnProperty(subkey)){

									if(keysRegistered[subkey] == "inspections"){
										var inspections = horse["inspections"];
										if(inspections.length > 0){
											newHTML +=	'<td class="inspections"><ul class="inspectionlist">';
											for(var inspection in inspections){
												if(inspections.hasOwnProperty(inspection)){
													newHTML +=	'<li class="inspection">'+inspections[inspection]+'</li>';
												}
											}
											newHTML += '</ul></td>';
										}
									}else{
										newHTML +=		'<td class="'+keysRegistered[subkey]+'">'+((typeof horse[keysRegistered[subkey]] != "undefined" && horse[keysRegistered[subkey]])? horse[keysRegistered[subkey]]: "")+'</td>';
									}
								}
							}
							newHTML +=	'</tr>';
						}
					}
					newHTML +=		'</table>';
				}
				if(newHTML == ""){
					newHTML = "No horses are currently signed up for inspections at this location.";
				}
				this.elmSelectDestination.innerHTML = newHTML;
			}
		});
/*
		var elmFormKeuring = document.getElementById("keuringform");
		if(elmFormKeuring){
			__.keuringOpener = new __.classes.opener({
				element: elmFormKeuring
				,strToggler: ""
				,strTogglerClosed: "Add a keuring"
				,strTogglerOpened: "Close add form"
			});
		}
*/
	};
}

/*------
©opener
------------*/
__.classes.opener = function(arguments){
		//--required attributes
		this.element = arguments.element || null; if(!this.element) return false;
//->return

		//--optional attributes
		this.boot = arguments.boot || null;
		this.callbackPlaceToggler = arguments.callbackPlaceToggler || null;
		this.classOpened = arguments.classOpened || "open";
		this.classClosed = arguments.classClosed || "closed";
		this.classesToggler = arguments.classesToggler || "toggler";
		this.elmContainer = arguments.elmContainer || false;
		this.insertPosition = arguments.insertPosition || "after";
		this.oninit = arguments.oninit || null;
		this.onopen = arguments.onopen || null;
		this.onclose = arguments.onclose || null;
		this.stateInitial = arguments.stateInitial || "closed";
		this.strToggler = (arguments.strToggler !== undefined)? arguments.strToggler: "more";
		this.strTogglerClosed = (arguments.strTogglerClosed !== undefined)? arguments.strTogglerClosed: "View ";
		this.strTogglerOpened = (arguments.strTogglerOpened !== undefined)? arguments.strTogglerOpened: "Hide ";
		
		//--derived attributes
		var fncThis = this;
		this.cssDisplayElement = this.element.style.display;
		if(this.cssDisplayElement == "none")
			this.cssDisplayElement = "block";
		
		//--show or hide element
		if(this.stateInitial == "closed"){
			this.close();
		}else{
			this.open();
		}
		
		if(this.oninit)
			this.oninit.call(this);
	}
	__.classes.opener.prototype.initToggler = function(){
		var fncThis = this;
		//--create elements
		this.elmToggler = document.createElement("div");
		__.addClass(this.elmToggler, this.classesToggler);
		this.elmTogglerAnchor = document.createElement("a");
		this.elmTogglerAnchor.setAttribute("href", "javascript://toggleContentDisplay();");
		this.elmToggler.appendChild(this.elmTogglerAnchor);

		//--add to DOM
		if(this.callbackPlaceToggler)
			this.callbackPlaceToggler.call(this, this.elmToggler);
		else{
			if(this.elmContainer)
				this.elmContainer.appendChild(this.elmToggler);
			else{
				var elmBefore = false;
				if(this.insertPosition == "after")
					elmBefore = __.lib.getNextSibling(this.element);
				if(this.insertPosition == "before" || !elmBefore)
					elmBefore = this.element;
				__.lib.insertBefore(this.elmToggler, elmBefore);
			}
		
		}

		//--add listener
		__.addListeners(this.elmTogglerAnchor, "click", function(){
			fncThis.toggle();
		});
	}
	__.classes.opener.prototype.toggle = function(){
		if(__.hasClass(this.element, this.classOpened))
			this.close();
		else
			this.open();
	}
	__.classes.opener.prototype.open = function(){
		this.element.style.display = this.cssDisplayElement;
		__.removeClass(this.element, this.classClosed);
		__.addClass(this.element, this.classOpened);
		this.setMessage(this.strTogglerOpened+this.strToggler);
		if(this.onopen)
			this.onopen.call(this);
	}
	__.classes.opener.prototype.close = function(){
		this.element.style.display = "none";
		__.removeClass(this.element, this.classOpened);
		__.addClass(this.element, this.classClosed);
		this.setMessage(this.strTogglerClosed+this.strToggler);
		if(this.onclose)
			this.onclose.call(this);
	}
	__.classes.opener.prototype.setMessage = function(argMessage){
		if(typeof this.elmTogglerAnchor == "undefined")
			this.initToggler();
		this.elmTogglerAnchor.innerHTML = argMessage;
	}


/*----------
©updateSelect
----------*/
__.classes.updateSelect = function(arguments){
		var fncThis = this;
		this.boot = arguments.boot || {};
		this.callback = arguments.callback || function(){};
		this.elmSelectSource = arguments.elmSelectSource || null;
		this.elmSelectDestination = arguments.elmSelectDestination || null;
		this.handleNull = arguments.handleNull || false;
		this.nameParameter = arguments.nameParameter || null;
		this.urlData = arguments.urlData || null;
		
		if(!this.elmSelectSource || !this.elmSelectDestination || !this.urlData){
			return false;
		}
		__.addListeners(this.elmSelectSource, "change", function(){
			fncThis.handleChange();
		});
		fncThis.handleChange();
	}
	__.classes.updateSelect.prototype.handleChange = function(){
		var fncThis = this;
		var valueSelect = fncThis.elmSelectSource.value;
		if(valueSelect != "" || this.handleNull){
			var callback = function(transport){
				fncThis.callback.call(fncThis, transport);
			}
			var fncParameters = {};
			if(valueSelect != "")
				fncParameters[this.nameParameter] = valueSelect;
			if(typeof pagHunid != "undefined")
				fncParameters.hunid = pagHunid;
			__.lib.ajaxCall({
				method: 'GET'
				,parameters: fncParameters
				,onsuccess: callback
				,url: fncThis.urlData
			});
		}
	}


/*-----
tmlib
-----*/
function tmlib(){
		this.classes = {};
		this.lib = {};
		this.cfg = {};
	}
	tmlib.prototype.addListeners = function(argElements, argEvent, argFunction, argBubble){
		var fncBubble = (argBubble)?argBubble : false;
		if(!__.lib.isArray(argElements))
			argElements = new Array(argElements);
		for(var i = 0; i < argElements.length; ++i){
			var forElement = argElements[i];
			if(forElement.attachEvent)
				forElement.attachEvent("on"+argEvent, argFunction);
			else
				forElement.addEventListener(argEvent, argFunction, fncBubble);
		}
	}
	tmlib.prototype.message = function(argument){
		if(window.console) 
			console.log(argument);
//		else alert(argument);
	}
	tmlib.prototype.addClass = function(argElement, argClass){
		if(new RegExp('\\b'+argClass+'\\b').test(argElement.className))
			return 0;
		else{
			argElement.className+=argElement.className?' '+argClass:argClass;
			return 1;
		}
	}
	tmlib.prototype.removeClass = function(argElement, argClass){
		  var fncReplace = argElement.className.match(' '+argClass)?' '+argClass:argClass;
		  argElement.className=argElement.className.replace(fncReplace,'');
	}
	tmlib.prototype.hasClass = function(argElement, argClass){
		if(new RegExp('\\b'+argClass+'\\b').test(argElement.className))
			return 1;
		else
			return 0;
	}
	tmlib.prototype.getClasses = function(argElement){
		return argElement.className.split(/\s+/);
	}
	__.lib.insertBefore = function(argElmInsert, argElmBefore){
		return argElmBefore.parentNode.insertBefore(argElmInsert, argElmBefore);
	}
	__.lib.getNextSibling = function(argElement){
		var elmReturn = argElement;
		do{
			elmReturn = elmReturn.nextSibling;
		}while(elmReturn && elmReturn.nodeType != 1);

		if(elmReturn == argElement)
				elmReturn = false;
		return elmReturn;
	}
	__.lib.isArray = function(argObject){
		return typeof argObject == 'object' && (argObject instanceof Array);
	}
/*
based from http://net.tutsplus.com/articles/news/how-to-make-ajax-requests-with-raw-javascript/
@param url
@param onsuccess
@param scope
*/
	__.lib.ajaxCall = function(arguments){
		var fnc = {};
		fnc.ajaxObject = false;
		fnc.method = arguments.method || "GET";
		fnc.onsuccess = arguments.onsuccess || function(){};
		fnc.scope = arguments.scope || window;
		if(typeof arguments.parameters == "object"){
			var tmpParameters = new Array();
			for(var key in arguments.parameters){
				if(arguments.parameters.hasOwnProperty(key))
					tmpParameters.push(key+"="+arguments.parameters[key]);
			}
			fnc.parameters = tmpParameters.join("&");
		}else if(typeof arguments.parameters == "string")
			fnc.parameters = arguments.parameters;
		else
			fnc.parameters = "";
		fnc.url = arguments.url || false;
		
		if(typeof XMLHttpRequest !== 'undefined') fnc.ajaxObject = new XMLHttpRequest();  
		else {  
			var versions = ["MSXML2.XmlHttp.5.0",  
			"MSXML2.XmlHttp.4.0",  
			"MSXML2.XmlHttp.3.0",  
			"MSXML2.XmlHttp.2.0",  
			"Microsoft.XmlHttp"]  
			
			for(var i = 0, len = versions.length; i < len; i++) {  
				try {  
					fnc.ajaxObject = new ActiveXObject(versions[i]);  
					break;  
				}  
				catch(e){} //-eat errors in creating invalid objects
			} 
		}
		if(!fnc.ajaxObject)
			return false;
		
		fnc.ajaxObject.onreadystatechange = function(){  
			if(fnc.ajaxObject.readyState < 4) {
				return;
			}			
			if(fnc.ajaxObject.status !== 200) {  
				return;  
			}			
			if(fnc.ajaxObject.readyState === 4) {  
				fnc.onsuccess.call(fnc.scope, fnc.ajaxObject);
			}  
		}
		if(fnc.method == "GET" || fnc.method == "get"){
			if(fnc.parameters != "")
				fnc.ajaxObject.open(fnc.method, fnc.url+"?"+fnc.parameters, true);
			else
				fnc.ajaxObject.open(fnc.method, fnc.url, true);
			fnc.ajaxObject.send();  
		}else
			fnc.ajaxObject.send(fnc.parameters);  
	}
__.addListeners(window, "load", __.scrOnload, false);

