function fetchAddress() {
	var loc = window.location.hostname;
	if (loc.match('everest')) loc = 'http://everest:8888/EasyVetSites/http/lib/ajax/';
	// else loc = 'http://'+loc+'/lib/ajax/';
	else loc = '/lib/ajax/';
	return loc;
}


function changePhoto(dir) {
	var loc = fetchAddress(), key = document.getElementById('thekey').value;
	loc += 'changePhoto.php?dir='+dir+'&key='+parseInt(key);
	//alert("Location: " + loc);
	//window.open(loc);return;
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
	catch (e) {}xmlhttp.onreadystatechange = trigger_changePhoto;
	xmlhttp.open(method, loc);xmlhttp.send(null);
}

/* --------------------------------- */

function trigger_changePhoto() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		var r = response.split('|');
		var key = r[0];
		var img = r[1];
		var cap = r[2];
		var prf = r[3];
		var w   = r[4];
		var h   = r[5];
		
		document.getElementById('thephoto').src = '/img/gallery/M/'+img+'.jpg';
		if (parseInt(w) > 0) document.getElementById('thephoto').width  = w;
		if (parseInt(h) > 0) document.getElementById('thephoto').height = h;
		document.getElementById('thekey').value = key;
		document.getElementById('thecaption').innerHTML = cap;
		document.getElementById('prefetch').src = '/img/gallery/M/'+img+'.jpg';
		
	}
}

/* --------------------------------- */


function toggleGenericForm(id) {
	var loc = fetchAddress(), chk = document.getElementById('gchk_'+id).checked, val = document.getElementById('gtxt_'+id).value;
	loc += "toggleGenericForm.php?id="+encodeURIComponent(id)+'&chk='+chk+'&val='+encodeURIComponent(val);
	
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
	catch (e) {}xmlhttp.onreadystatechange = trigger_toggleGenericForm;
	xmlhttp.open(method, loc);xmlhttp.send(null);
}	


/* --------------------------------- */

function trigger_toggleGenericForm() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		var r = response.split('|~|');
		if (r[1] == '1') {
			NLBfadeBg('gli_'+r[0],'#00ff00','#bbffbb','1000');
			document.getElementById('gtxt_'+r[0]).value=r[3];
			document.getElementById('gli_'+r[0]).className='used';
			document.getElementById('useform_'+r[0]).value='« Update';
			document.getElementById('gtxt_'+r[0]).select();
		} else {
			NLBfadeBg('gli_'+r[0],'#ff9933','#e9eef9','1000');
			document.getElementById('gtxt_'+r[0]).value=r[0];
			document.getElementById('gli_'+r[0]).className='notused';
			document.getElementById('useform_'+r[0]).value='« Activate';
		}
	}
}
/* --------------------------------- */

function changeGenericFormName(id,clicked) {
	
	var loc = fetchAddress();
	var val = document.getElementById('gtxt_'+id).value;
	
	if (clicked == undefined) {
		if (document.getElementById('gchk_'+id).checked == true) clicked = 1;
		else return;
	}
	
	loc += "changeGenericFormName.php?id="+encodeURIComponent(id)+'&val='+encodeURIComponent(val)+'&clicked='+clicked;
	
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
	catch (e) {}xmlhttp.onreadystatechange = trigger_changeGenericFormName;
	xmlhttp.open(method, loc);xmlhttp.send(null);
}


/* --------------------------------- */


function trigger_changeGenericFormName() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		var r = response.split('|~|');
		
		if (r[0] != '') {
			if (parseInt(r[1]) > 0) {
				
				NLBfadeBg('gli_'+r[0],'#00ff00','#bbffbb','1000');
				document.getElementById('gli_'+r[0]).className='used';
				document.getElementById('gchk_'+r[0]).checked=true;
				document.getElementById('gtxt_'+r[0]).value=r[2];
				document.getElementById('useform_'+r[0]).value='« Update';
				
			} else {
				
				NLBfadeBg('gli_'+r[0],'#ff9933','#e9eef9','1000');
				document.getElementById('gtxt_'+r[0]).value=r[0];
				document.getElementById('gli_'+r[0]).className='notused';
				document.getElementById('gchk_'+r[0]).checked=false;
				document.getElementById('useform_'+r[0]).value='« Activate';
			}
		}
	}
}

function killCustomForm(id) {
	
	var loc = fetchAddress(), answer = confirm("Are you certain you want to delete the selected hospital form?");
	
	if (answer) {
		
		loc += "killCustomForm.php?id="+encodeURIComponent(id);
		
		try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
		catch (e) {}xmlhttp.onreadystatechange = trigger_killCustomForm;
		xmlhttp.open(method, loc);xmlhttp.send(null);
	}
}


/* --------------------------------- */


function trigger_killCustomForm() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		document.getElementById('cli_'+response).style.display = 'none';
	}
}

/* --------------------------------- */

function changePhoto(dir) {
	var loc = fetchAddress(), key = document.getElementById('thekey').value;
	loc += 'changePhoto.php?dir='+dir+'&key='+parseInt(key);
	//alert("Location: " + loc);
	//window.open(loc);return;
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
	catch (e) {}xmlhttp.onreadystatechange = trigger_changePhoto;
	xmlhttp.open(method, loc);xmlhttp.send(null);
}

/* --------------------------------- */

function deletePhoto(id) {
	
	var answer = confirm('Are you sure you want to delete this photo?');
	
	if (answer) {
		
		var loc = fetchAddress();
		loc += 'deletePhoto.php?id='+parseInt(id);
	
		//window.open(loc);return;
	
		try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
		catch (e) {}xmlhttp.onreadystatechange = trigger_deletePhoto;
		xmlhttp.open(method, loc);xmlhttp.send(null);
	} else return;
}

/* --------------------------------- */

function trigger_deletePhoto() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		var r = response.split('|');
		if (r[1] == 1) document.getElementById('fotorow_'+r[0]).style.display = 'none';
	}
}

function updateCaption(id,ex) {
	
	var txt = document.getElementById('caption_'+id).value;
	var loc = fetchAddress();
	loc += 'updateCaption.php?id='+parseInt(id)+'&txt='+encodeURIComponent(txt)+'&existing='+encodeURIComponent(ex);
	
	//window.open(loc);return;
	
	try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();method= 'GET';} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");method= 'POST';}}
	catch (e) {}xmlhttp.onreadystatechange = trigger_updateCaption;
	xmlhttp.open(method, loc);xmlhttp.send(null);
}
function trigger_updateCaption() {
	if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
		var response = xmlhttp.responseText;
		if (parseInt(response) > 0) NLBfadeBg('caption_'+response,'#44cc44','#ffffff','1500');
	}
}
/* --------------------------------- */
var nlbFade_hextable = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ]; var nlbFade_elemTable = new Array( ); var nlbFade_t = new Array( ); function NLBfadeBg( elementId, startBgColor, endBgColor, fadeTime ) { var timeBetweenSteps = Math.round( Math.max( fadeTime / 300, 30 ) ); var nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId ); if( nlbFade_elemTableId > -1 ) { for( var i = 0; i < nlbFade_t[nlbFade_elemTableId].length; i++ ) clearTimeout( nlbFade_t[nlbFade_elemTableId][i] ); } else { nlbFade_elemTable.push( elementId ); nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId ); } var startBgColorRGB = hexToRGB( startBgColor ); var endBgColorRGB = hexToRGB( endBgColor ); var diffRGB = new Array( ); for( var i = 0; i < 3; i++ ) diffRGB[i] = endBgColorRGB[i] - startBgColorRGB[i]; var steps = Math.ceil( fadeTime / timeBetweenSteps ); var nlbFade_s = new Array( ); for( var i = 1; i <= steps; i++ ) { var changes = new Array( ); for( var j = 0; j < diffRGB.length; j++ ) changes[j] = startBgColorRGB[j] + Math.round( ( diffRGB[j] / steps ) * i ); if( i == steps ) nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+endBgColor+'";', timeBetweenSteps*(i-1) ); else nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+RGBToHex( changes )+'";', timeBetweenSteps*(i-1) ); } nlbFade_t[nlbFade_elemTableId] = nlbFade_s; } function hexToRGB( hexVal ) { hexVal = hexVal.toUpperCase( ); if( hexVal.substring( 0, 1 ) == '#' ) hexVal = hexVal.substring( 1 ); var hexArray = new Array( ); var rgbArray = new Array( ); hexArray[0] = hexVal.substring( 0, 2 ); hexArray[1] = hexVal.substring( 2, 4 ); hexArray[2] = hexVal.substring( 4, 6 ); for( var k = 0; k < hexArray.length; k++ ) { var num = hexArray[k]; var res = 0; var j = 0; for( var i = num.length - 1; i >= 0; i-- ) res += parseInt( nlbFade_hextable.indexOf( num.charAt( i ) ) ) * Math.pow( 16, j++ ); rgbArray[k] = res; } return rgbArray; } function RGBToHex( rgbArray ) { var retval = new Array( ); for( var j = 0; j < rgbArray.length; j++ ) { var result = new Array( ); var val = rgbArray[j]; var i = 0; while( val > 16 ) { result[i++] = val%16; val = Math.floor( val/16 ); } result[i++] = val%16; var out = ''; for( var k = result.length - 1; k >= 0; k-- ) out += nlbFade_hextable[result[k]]; retval[j] = padLeft( out, '0', 2 ); } out = '#'; for( var i = 0; i < retval.length; i++ ) out += retval[i]; return out; } if (!Array.prototype.indexOf) { Array.prototype.indexOf = function( val, fromIndex ) { if( typeof( fromIndex ) != 'number' ) fromIndex = 0; for( var index = fromIndex, len = this.length; index < len; index++ ) if( this[index] == val ) return index; return -1; } } function padLeft( string, character, paddedWidth ) { if( string.length >= paddedWidth ) return string; else { while( string.length < paddedWidth ) string = character + string; } return string; } 


