
// Global variables
xMousePos = 0; // Horizontal position of the mouse on the screen
yMousePos = 0; // Vertical position of the mouse on the screen
xMousePosMax = 0; // Width of the page
yMousePosMax = 0; // Height of the page


if (document.layers) { // Netscape
	document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = captureMousePosition;
} else if (document.all) { // Internet Explorer
	document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
	document.onmousemove = captureMousePosition;
}	

function captureMousePosition(e) {
	var dc; //DRAG CONTAINER
	var ddiv; //DRAG HELPER DIV
	var activeCont = undefined; //STORES THE ACTIVE CONTAINER DIV
	
	ev = e || window.event;

	if (ev.pageX || ev.pageY) {
		xMousePos = ev.pageX;
		yMousePos = ev.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;		
	
	} else {
		xMousePos = ev.x+document.body.scrollLeft;
		yMousePos = ev.y+document.body.scrollTop;
		xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
		yMousePosMax = document.body.clientHeight+document.body.scrollTop;		
	}

}		


function createXMLHttp () {
	req = false;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
}


function sendRequest(strURL, tDiv, sendOnly) {

	document.body.style.cursor='wait';

	createXMLHttp ()

	targetDiv = tDiv;
	recenterScreen = 1;

	
	if (targetDiv == 'content') {
		curPage = strURL;
	}
	
	// POSTS DATA AND RETURNS DATA
	var refresh = Math.random();
	var str = "";
	
	if (strURL.lastIndexOf('?') != -1) {
		temp = "&";
	} else {
		temp = "?";
	}

	req.open('GET',strURL+temp+'r='+refresh);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	if (sendOnly == undefined) {req.onreadystatechange = handleResponse};
	req.send(str);			
	
	return false;
}


	

function sendFormRequest(frm, file, tDiv) {
	// POSTS DATA AND RETURNS A FORM
	
	//disableButtons();
	
	document.body.style.cursor='wait';
	
	targetDiv = tDiv;
	recenterScreen = 0;
	
	var refresh = Math.random();
	var str = "";
	//alert(frm);
	currentForm = frm.name;
	
	if (file.lastIndexOf('?') != -1) {
		var temp = "&";
	} else {
		var temp = "?";
	}
			
		
	if (str = getForm(frm)) {
	
		//str = utf8encode(str);
		//str = encodeURI(str);
	
		//alert('running request!');
		//alert(file+temp+'r='+refresh)
		
		//alert(str);
		
		req.open('POST',file+temp+'r='+refresh);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	
		req.send(str);
		
		//alert(str);
		
		req.onreadystatechange = handleResponse;

		//req.send(null);
	}
	return false;
}




function sendPopupRequest(strURL, tDiv) {

	document.body.style.cursor='wait';

	createXMLHttp ()

	targetDiv = tDiv;
	
	// POSTS DATA AND RETURNS DATA
	var refresh = Math.random();
	var str = "";
	
	if (strURL.lastIndexOf('?') != -1) {
		temp = "&";
	} else {
		temp = "?";
	}

	req.open('GET',strURL+temp+'r='+refresh);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	
	req.onreadystatechange = handleResponse;
	req.send(str);			
	
	return false;
}	



	
function encode(string) {
	
	string = escape(string)
	string = string.replace(/\+/g,'%2B');

	return string;
}	

function select(fname, value, display, sync, frm) {
	//alert(fname.name);
	getObj(fname).value = value;
	getObj(fname + 'display').value = display;
	
	if (sync != undefined) {
		getObj(sync).value = value;
		getObj(sync + 'display').value = display;
	}
	
	if (frm!= undefined) {
		getObj(frm).submit();
	}
	
	hidePopup();
} 


function selectChild(fname, value, display, iframename) {
	//alert(fname.name);
	getObj(iframename).contentWindow.getObj(fname).value = value;
	getObj(iframename).contentWindow.getObj(fname + 'display').value = display;
	
	
	hidePopup();
} 


function hidePopup() {
	getObj('toolpopup').style.display = 'none';

}


function togglePopup (url) {
	if (getObj('toolpopup').style.display == 'none') {
		getObj('toolpopup').style.top = yMousePos;
		getObj('toolpopup').style.left = xMousePos - 150;
		getObj('toolpopup').style.display = 'block';	
		sendRequest(url, 'toolpopup');
	} else {
		hidePopup();
	}
}

function togglePopupParent (url) {

	if (window.parent.getObj('toolpopup').style.display == 'none') {
		window.parent.getObj('toolpopup').style.top = window.parent.yMousePos;
		window.parent.getObj('toolpopup').style.left = window.parent.xMousePos - 150;
		window.parent.getObj('toolpopup').style.display = 'block';	
		window.parent.sendRequest(url, 'toolpopup');
	} else {
		window.parent.hidePopup();
	}
}
	

function captureKeypress (e, callback) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;

	if (keycode == 13) {
		eval(callback);
		return false;			
	}		
		
}


//##########################
//#### CONTACT  FUNCTIONS ########
//##########################

var r = 0;
var riVal = '';


function captureCKeypress (e, fname, ft, ct, val) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	
	switch(keycode) {
		case 13:
		
			if (r != 0) {
				loadCVals(fname, ft);
				getObj('d' + fname).style.display = 'none';
			}
		
			return false;
			break;
			
		case 38: //UP
			if (getObj('d' + fname).style.display == 'block') {
				if (r == 0) {riVal = getObj(fname + 'desc').value;}
				if (r > 0) {
					if (getObj('r' + fname + r) != undefined) {getObj('r' + fname + r).className = 'cresult'};
					r -= 1
					if (r != 0) {getObj('r' + fname + r).className = 'cresultsel'};
					loadCVals(fname, ft);
				} else {
					for (var i=8;i>0;i--) {
						if (getObj('r' + fname + i) == undefined) {
							
						} else {
							getObj('r' + fname + i).className = 'cresultsel';
							loadCVals(fname, ft);
							break;
						}
					}
					r = i;
					if (r == 0) {
						getObj(fname + 'desc').value = riVal;
						resetCVals (fname, ft);						
					}
				}
			
			}
			break;
			
		case 40: //DOWN
			if (getObj('d' + fname).style.display == 'block') {
				if (r == 0) {riVal = getObj(fname + 'desc').value;}
				
				if (getObj('r' + fname + (r+1)) != undefined) {
					if (r > 0) {getObj('r' + fname + r).className = 'cresult'};
					r += 1;
					
					loadCVals(fname, ft);
						
					getObj('r' + fname + r).className = 'cresultsel';
				} else {
					if (getObj('r' + fname + r) != undefined) {getObj('r' + fname + r).className = 'cresult'};
					r = 0;
					getObj(fname + 'desc').value = riVal;
					resetCVals (fname, ft);
				}
			}		
		
			break;
			
		case 27: //ESCAPE
			i = 0;
			resetCVals (fname, ft);
			getObj(fname).value = '';
			getObj('d' + fname).style.display = 'none';
			break;
			
		default:
			if (val.length > 1) {
				var url = 'contactlookup.asp?fname=' + fname + '&ft=' + ft + '&ct=' + ct + '&s=' + escape(val)
				getObj('d' + fname).style.display = 'block';
				sendRequest(url, 'd' + fname);				
			} else {
				riVal = getObj(fname + 'desc').value;
				resetCVals (fname, ft)
			}
	}		
		
}


function resetCVals (fname, ft) {

	var name = "Contact Name"
	var nameClass = "ctextlight";
	var org = "Organisation"
	var orgClass = "ctextlight";
	var tel1 = "Main Phone"
	var tel1Class = "ctextlight";
	var tel2 = "Mobile Phone"
	var tel2Class = "ctextlight";
	var email = "Email"
	var emailClass = "ctextlight";	
	var ad1 = "Address 1"
	var ad1Class = "ctextlight";	
	var ad2 = "Address 2"
	var ad2Class = "ctextlight";	
	var ad3 = "Town"
	var ad3Class = "ctextlight";	
	var ad4 = "County"
	var ad4Class = "ctextlight";		
	var ad5 = "Post Code"
	var ad5Class = "ctextlight";		

	getObj(fname + 'desc').value = riVal;
	
	switch (ft) {
		case "org":
			getObj('name' + fname).value = name;
			getObj('name' + fname).className = nameClass;
			break;
			
		default:
			getObj('name' + fname).value = org;
			getObj('name' + fname).className = orgClass;
			break;
	}
	
	getObj(fname).value = '';
	getObj('tel1' + fname).value = tel1;
	getObj('tel1' + fname).className = tel1Class;
	getObj('tel2' + fname).value = tel2;
	getObj('tel2' + fname).className = tel2Class;	
	getObj('email' + fname).value = email;
	getObj('email' + fname).className = emailClass;		
	getObj('ad1' + fname).value = ad1;
	getObj('ad1' + fname).className = ad1Class;	
	getObj('ad2' + fname).value = ad2;
	getObj('ad2' + fname).className = ad2Class;	
	getObj('ad3' + fname).value = ad3;
	getObj('ad3' + fname).className = ad3Class;	
	getObj('ad4' + fname).value = ad4;
	getObj('ad4' + fname).className = ad4Class;	
	getObj('ad5' + fname).value = ad5;
	getObj('ad5' + fname).className = ad5Class;	
	
}

function loadCVals (fname, ft) {

	var name = getObj('rname' + fname + r).value;
	var nameClass = "ctext";
	var org = getObj('rorg' + fname + r).value;
	var orgClass = "ctext";
	var tel1 = getObj('rtel1' + fname + r).value;
	var tel1Class = "ctext";
	var tel2 = getObj('rtel2' + fname + r).value;
	var tel2Class = "ctext";
	var email = getObj('remail' + fname + r).value;
	var emailClass = "ctext";	
	var ad1 = getObj('rad1' + fname + r).value;
	var ad1Class = "ctext";
	var ad2 = getObj('rad2' + fname + r).value;
	var ad2Class = "ctext";
	var ad3 = getObj('rad3' + fname + r).value;
	var ad3Class = "ctext";
	var ad4 = getObj('rad4' + fname + r).value;
	var ad4Class = "ctext";
	var ad5 = getObj('rad5' + fname + r).value;
	var ad5Class = "ctext";
	
	if (name.length == 0) {
		name = "Contact Name";
		nameClass = "ctextlight";
	}
	if (org.length == 0) {
		org = "Organisation";
		orgClass = "ctextlight";
	}					
	if (tel1.length == 0) {
		tel1 = "Main Phone";
		tel1Class = "ctextlight";
	}						
	if (tel2.length == 0) {
		tel2 = "Mobile Phone";
		tel2Class = "ctextlight";
	}
	if (email.length == 0) {
		email = "Email";
		emailClass = "ctextlight";
	}	
	if (ad1.length == 0) {
		ad1 = "Address 1";
		ad1Class = "ctextlight";
	}
	if (ad2.length == 0) {
		ad2 = "Address 2";
		ad2Class = "ctextlight";
	}
	if (ad3.length == 0) {
		ad3 = "Town";
		ad3Class = "ctextlight";
	}
	if (ad4.length == 0) {
		ad4 = "County";
		ad4Class = "ctextlight";
	}
	if (ad5.length == 0) {
		ad5 = "Post Code";
		ad5Class = "ctextlight";
	}					

	switch (ft) {
		case "org":
			getObj(fname + 'desc').value = org;
			getObj('name' + fname).value = name;
			getObj('name' + fname).className = nameClass;
			break;
			
		default:
			getObj(fname + 'desc').value = name;
			getObj('org' + fname).value = org;
			getObj('org' + fname).className = orgClass;
			break;
	}
	getObj(fname).value = getObj('rid' + fname + r).value;
	getObj('tel1' + fname).value = tel1;
	getObj('tel1' + fname).className = tel1Class;
	getObj('tel2' + fname).value = tel2;
	getObj('tel2' + fname).className = tel2Class;
	getObj('email' + fname).value = email;
	getObj('email' + fname).className = emailClass;	
	getObj('ad1' + fname).value = ad1;
	getObj('ad1' + fname).className = ad1Class;	
	getObj('ad2' + fname).value = ad2;
	getObj('ad2' + fname).className = ad2Class;	
	getObj('ad3' + fname).value = ad3;
	getObj('ad3' + fname).className = ad3Class;	
	getObj('ad4' + fname).value = ad4;
	getObj('ad4' + fname).className = ad4Class;	
	getObj('ad5' + fname).value = ad5;
	getObj('ad5' + fname).className = ad5Class;	

}

function blurCSearch (fname) {
	getObj('d' + fname).style.display = 'none';
}

function focusCField(obj, ival) {

	if (obj.value == ival) {
		obj.value = '';
		obj.className = "ctext";
	}
	
}

function blurCField(obj, ival) {

	if (obj.value == ival || obj.value.length == 0) {
		obj.value = ival;
		obj.className = "ctextlight";
	}

}

function toggleCMore(lobj, mobj, obj) {
	if (obj.style.display == 'none') {
		obj.style.display = 'block';
		mobj.value = "1"
		lobj.innerHTML = 'less...';
		
	} else {
		obj.style.display = 'none';
		mobj.value = "0"
		lobj.innerHTML = 'more...';	
	}
}


///////////  COOKIE FUNCTIONS /////////////////////////////
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);
}















