// JavaScript Document

var count = 0;
var pricecount = 0;
var usedprice = false;
var usedcompare = false;
var mycompare = new Array();

function CompareOffice(ID, Address, RemoveByList, Type, Services, ImgURL, OffURL) {
	if(Type == 'Comp') {
		LoadFeed('/includes/officecompare.aspx?OfficeID=' + ID + '&Address=' + Address + '&Services=' + Services + '&ImageUrl=' + ImgURL + '&OfficeURL=' + OffURL,'','','window.location.reload()');
		return true;
	} else if(Type != 'Load' && Type != 'CompLoad') {
		LoadFeed('/includes/officecompare.aspx?OfficeID=' + ID + '&Address=' + Address + '&Services=' + Services + '&ImageUrl=' + ImgURL + '&OfficeURL=' + OffURL,'','','');
	}

	var checkbox = document.getElementById('chk' + ID);
	var officeList = document.getElementById('comp-list');

	if((Type != 'Load' && Type != 'CompLoad') && (RemoveByList == 'True' || checkbox.checked == false)) {
		try {
			checkbox.checked = false;
		} catch(err) {
		
		}

		count--;

		try {
			document.getElementById("comp" + ID).innerHTML = 'Compare';
			document.getElementById("comp" + ID).style.textDecoration = 'none';
		} catch(err) {
		
		}

		for (i=0;i<mycompare.length;i++) {
			if(mycompare[i] == ID) {
				mycompare.splice(i,1);
			}
		}

		for (i=0;i<mycompare.length;i++) {
			CompareText(mycompare[i], i + 1);
		}

		var templeft = 3 - count;
		var tempchose = 0 + count;

		if(count == 1) {
			document.getElementById('CompareBtn').style.display = 'none';
		}

		if (count == 0) {
			document.getElementById('compare-off').style.display = 'none';
			document.getElementById('comp-num').innerHTML = '';
			document.getElementById('comp-left').innerHTML = '';
		} else {
			document.getElementById('comp-num').innerHTML = tempchose + ' ';
			document.getElementById('comp-left').innerHTML = templeft + ' ';
		}

	} else {
		var x = document.getElementById('comp-num').innerHTML

		if(x == 3 || x == '(3)'){
			alert("You Have Selected The Maximum Number Of Offices Allowed For Comparing");
			checkbox.checked = false;
		} else {
			if(x == 1 || x == ''){
				document.getElementById('compare-off').style.display = 'block';

				try {
					officeList.removeChild(document.getElementById('none-sel'));
				} catch(err) {
			
				}

				if(usedcompare == false) {
					ShowDiv('comp-help-div');
					usedcompare = true;
				}
			}

			if(Type != 'Load' && Type != 'CompLoad' && (x == 2 || x == '(2)')) {
				window.location = '/Compare.aspx';
			}

			count++;

			if(x == 2 || x == '(2)') {
				try {
					document.getElementById('AddComp').style.display = 'none';
				} catch(err) {
			
				}
			}

			try {
				CompareText(ID, count);
			} catch(err) {
			
			}

			mycompare[count - 1] = ID;

			var templeft = 3 - count;
			var tempchose = 0 + count;

			if(count > 1) {
				try {
					document.getElementById('CompareBtn').style.display = 'block';
				} catch(err) {
			
				}
			}

			document.getElementById('comp-num').innerHTML = tempchose + ' ';
			document.getElementById('comp-left').innerHTML = templeft + ' ';
		}
	}
}

function ClearCompare(ref) {
	var itemp;

	//The reason 0 is used in the for loop is because each item in the array will get spliced in the CompareOffice function
	//This will mean any rows will get reassigned to the correct array number. e.g 2 will become 1, 3 will become 2.
	for (itemp=0;itemp<=3;itemp++) {
		try {
			if (mycompare[0].replace(/\s/g, "") != '') {
				CompareOffice(mycompare[0], '', 'True', '', '', '', '')
			}
		} catch(err) {
		}
	}

	if(ref == "Compare"){window.location.reload()}
}

function AddOfficePrice(ID, Address, RemoveByList, Type, ImgURL, OffURL) {
	var ListItemExists = 'False';

	if(Type != 'Load') {
		if (Type == 'Comp') {
			try {
				document.getElementById(ID + "PRICELI").innerHTML;
				ListItemExists = 'True';
			} catch(err) {

			}
		}

		if (ListItemExists == 'False') {
			LoadFeed('/includes/officepricelist.aspx?OfficeID=' + ID + '&Address=' + Address + '&ImageUrl=' + ImgURL + '&OfficeURL=' + OffURL,'','','');
		}
	}

	var prices = document.getElementById('prices' + ID);
	var officeList = document.getElementById('price-list');
	var pricesimg;

	pricesimg = ''
	if (prices) {
		pricesimg = prices.src
	}

	if((Type != 'Load' && Type != 'Comp') && ((RemoveByList == 'True') || (pricesimg.indexOf("got_prices.gif") >=0) || (pricesimg.indexOf("ei_prices_ticked.jpg") >= 0) || (pricesimg.indexOf("prices_compare.gif") >= 0))) {
		var newLI = document.getElementById(ID + "PRICELI");
		
		officeList.removeChild(newLI);
		
		var x = 0
		if (officeList.childNodes.length > 0) {
			for (var i=0; i<officeList.childNodes.length; i++) {
				var child = officeList.childNodes[i];
				if (child.nodeName == "LI") {
					x++
				}
			}
		}
					
		if(x == 0) {
			var noneLI = document.createElement("LI");
			
			noneLI.id = "price-none-sel";
			officeList.appendChild(noneLI);

			//if(document.getElementById('off-price-selected').style.display == 'block'){
			//	closeDiv('off-price-selected');
			//}
			document.getElementById('price-para').style.display = 'none';
			document.getElementById('price-list').style.display = 'none';
		}

		pricecount--;

		try {
			document.getElementById('price-para-' + ID).innerHTML = '&nbsp;'
			document.getElementById('price-para-' + ID).style.display = 'none'
		} catch(err) {
		}

		/*if(pricecount == 1) {
			document.getElementById('price-para').innerHTML = pricecount + ' office added to list'
		} else {
			document.getElementById("price-para").innerHTML = pricecount + ' offices added to list';
		}*/

		if (pricesimg.indexOf("got_prices.gif") >= 0) {
			prices.src = "/images/results/buttons/prices.gif";
			prices.alt = "Add To List";
		} else if(pricesimg.indexOf("ei_prices_ticked.jpg") >= 0) {
			prices.src = "/images/extrainfo/ei_prices_offices.gif";
			document.getElementById('prices' + ID + '_bot').src = "/images/extrainfo/ei_prices_offices.gif";
			prices.alt = "Add To List";
		} else if(pricesimg.indexOf("prices_compare.gif") >= 0) {
			prices.src = "/images/results/buttons/request_price.gif";
			document.getElementById('prices_bot' + ID).src = "/images/results/buttons/request_price.gif";
			prices.alt = "Add To List";
		}

	} else {

		if (ListItemExists == 'False') {
			var newLI = document.createElement("LI");

			newLI.id = ID + "PRICELI";
			newLI.className = "price-office-list clearfix";
			//newLI.innerHTML = "<img src='" + ImgURL + "' alt='' /><p>" + Address + "</span></p><a href='#' onclick=\"AddOfficePrice('" + ID + "', '', 'True', '', '', '');return false;\">Remove</a>";
			newLI.innerHTML = "<p>" + Address + "<a href='#' onclick=\"AddOfficePrice('" + ID + "', '', 'True', '', '', '');return false;\">(Remove)</a></p>";

			var x = 0
			if (officeList.childNodes.length > 0) {
				for (var i=0; i<officeList.childNodes.length; i++) {
					var child = officeList.childNodes[i];
					if (child.nodeName == "LI") {
						x++
				   	}
				}		
			}

			if(x == 1){
				document.getElementById('price-para').style.display = 'block';
				document.getElementById('price-list').style.display = 'block';
				//document.getElementById('price-expand').style.display = 'block';

				try {
					officeList.removeChild(document.getElementById('price-none-sel'));
				} catch(err) {
		
				}

				if(usedprice == false) {
					ShowDiv('price-help-div');
					usedprice = true;
				}
			}

			officeList.appendChild(newLI);
		}

		pricecount++;

		/*if(pricecount == 1) {
			document.getElementById('price-para').innerHTML = pricecount + ' office added to list'
		} else {
			document.getElementById("price-para").innerHTML = pricecount + ' offices added to list';
		}*/

		try {
			document.getElementById('price-para-' + ID).innerHTML = 'Fill Out Form or Add More &gt;'
			document.getElementById('price-para-' + ID).style.display = 'block'
		} catch(err) {
		}

		if(Type != 'Load'){

			if (pricesimg.indexOf("prices.gif") >= 0) {
				prices.src = "/images/results/buttons/got_prices.gif";
				prices.alt = "Added To List";
			} else if(pricesimg.indexOf("ei_prices_offices.gif") >= 0) {
				prices.src = "/images/extrainfo/ei_prices_ticked.jpg";
				document.getElementById('prices' + ID + '_bot').src = "/images/extrainfo/ei_prices_ticked.jpg";
				prices.alt = "Added To List";
			} else if(pricesimg.indexOf("request_price.gif") >= 0) {
				prices.src = "/images/results/buttons/prices_compare.gif";
				document.getElementById('prices_bot' + ID).src = "/images/results/buttons/prices_compare.gif";
				prices.alt = "Added To List";
			}

		}
	}
}

function ShowDiv(div) {
	document.getElementById('clear-bg').style.display = 'block';
	document.getElementById('table-holder').style.display = 'block';
	document.getElementById(div).style.display = 'block';

	selectDisplay('NoEmp');
	selectDisplay('MoveDate');
	selectDisplay('ReqFor');
}

function closeDiv(div) {
	document.getElementById(div).style.display = 'none';
	document.getElementById('table-holder').style.display = 'none';
	document.getElementById('clear-bg').style.display = 'none';

	selectDisplay('NoEmp');
	selectDisplay('MoveDate');
	selectDisplay('ReqFor');
}

var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
document.onmouseclick = getMouseXY;
var tempX = 0;
var tempY = 0;
var tempdivshown;

function OfficeHelp(div) {
	document.getElementById(div).style.display = 'block';

	tempdivshown = div;

	document.getElementById(tempdivshown).style.left = tempX + 10 + 'px';
	document.getElementById(tempdivshown).style.top = tempY + 10 + 'px';

	//Move_el()
}

function showImg(ID, ImgURL) {
	var div = document.getElementById('side-pic-hold');

	div.style.display = 'block';
	div.innerHTML = '<img src="' + ImgURL + '" alt="" />';

	tempdivshown = 'side-pic-hold';
}

function hideImg() {
	document.getElementById('side-pic-hold').style.display = 'none';
}

function getMouseXY(e) {
	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.documentElement.scrollLeft;
		tempY = event.clientY + document.documentElement.scrollTop
	} else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}  
	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;}

	try {
		document.getElementById(tempdivshown).style.left = tempX + 10 + 'px';
		document.getElementById(tempdivshown).style.top = tempY + 10 + 'px';
		
		//Move_el()
	} catch(err) {

	}

	return true;
}

function Move_el() {
	var posX;
	var posY;

	var trueX = getRealLeft_el(tempdivshown);
	var trueY = getRealTop_el(tempdivshown);

	if (trueY + document.getElementById(tempdivshown).offsetHeight > getWindowHeight()) {
		//if(getPageHeight() - getWindowHeight() > 0) {
		//	var temp = (trueY + document.getElementById(tempdivshown).offsetHeight) - (getPageHeight() - getWindowHeight())
		//} else {
			var temp = (trueY + document.getElementById(tempdivshown).offsetHeight) - getWindowHeight()
		//}
		if ((trueY - temp) >= 0) {
			posY = (trueY + document.getElementById(tempdivshown).offsetHeight) - temp
		} else {
			posY = 0
		}
		document.getElementById(tempdivshown).style.top = posY + 'px'
	} else {
		document.getElementById(tempdivshown).style.top = trueY + 'px'
	}
}

function getRealLeft_el(el) {
	xPos = document.getElementById(el).offsetLeft;
	tempEl = document.getElementById(el).offsetParent;
	while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function getRealTop_el(el) {
	yPos = document.getElementById(el).offsetTop;
	tempEl = document.getElementById(el).offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}

function getWindowWidth() {
	var w = document.body.clientWidth

	return w;
}

function getWindowHeight() {
	var h;
	if (typeof (window.innerWidth) == 'number') {
		h = window.innerHeight;
	} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		h = document.documentElement.clientHeight;
	}

	return h;
}

function getPageHeight() {
	var h;

	if( window.innerHeight && window.scrollMaxY ) // Firefox 
	{
		//pageWidth = window.innerWidth + window.scrollMaxX;
		h = window.innerHeight + window.scrollMaxY;
	}
	else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
	{
		//pageWidth = document.body.scrollWidth;
		h = document.body.scrollHeight;
	}
	else // works in Explorer 6 Strict, Mozilla (not FF) and Safari
	{
		//pageWidth = document.body.offsetWidth + document.body.offsetLeft;
		h = document.body.offsetHeight + document.body.offsetTop;
	}

	return h;
}

function GetBoxPos() {
	var formoffset;
	var newy;
	var rleft = document.getElementById('results-left');
	var rright = document.getElementById('results-right');

	if(document.getElementById('ei-left')) {
		formoffset = 247;
	} else {
		formoffset = 358;
	}

	if(typeof(window.pageYOffset)=='number') {
		newy = window.pageYOffset;
	} else {
		newy = document.documentElement.scrollTop;
	}

	if(getWindowHeight() > rright.offsetHeight) {

		if(newy > formoffset) {

			if(((newy-formoffset) + rright.offsetHeight) > rleft.offsetHeight) {
				newy = (rleft.offsetHeight - rright.offsetHeight)
				rright.style.top = newy + 'px'

			} else {
				rright.style.top = (newy - formoffset) + 'px'
			}
		} else {
			rright.style.top = '0px'

		}
	} else {
		rright.style.top = '0px'
	}

	setTimeout("GetBoxPos()",250);
}

function AlterHTags(type) {
	var head1 = document.getElementsByTagName("h1")[0]

	if(type == 'search') {
		if (head1.offsetHeight > 27) {
			try {
				document.getElementsByTagName('h2')[0].style.top = '347px';
			} catch(e) {
			}

			try {
				document.getElementById('head-pic').style.marginBottom = '113px';
			} catch(e) {
			}
		}
	} else if(type == 'extra') {
		if (head1.offsetHeight > 54) {
			document.getElementById('title').style.paddingBottom = '62px';
		}
	}
}