﻿function GetVendorsByCategoryID(categoryID) {
	VendorDataWS.GetVendorsByCategoryID(categoryID, GetVendorsByCategoryID_Succeeded, GetVendorsByCategoryID_Failed);
}

function GetVendorsByCategoryID_Succeeded(result) {
	var vendors = $get('vendors');
	var vendorsShadow = $get('vendorsShadow');

	var content = new Array;
	var mask = new String;
	mask = '{0}<br />';
	var vendor;
	content[content.length] = "<h3>";
	for (i = 0; i < result.length; i++) {
		vendor = String.format(mask, result[i].VendorName);
		content[content.length] = vendor;
	}
	content[content.length] = "</h3>";
	vendors.innerHTML = content.join('');
	vendorsShadow.innerHTML = content.join('');
}

function GetVendorsByCategoryID_Failed(err) {
	// alert(err);
}

function GetVendorsByCategoryIDSync(categoryID) {
	var executor = new Sys.Net.XMLHttpSyncExecutor();
	var request = new Sys.Net.WebRequest();
	request.set_url('http://www.nationalassembly.org/VendorDataWS.asmx/GetVendorsByCategoryID');
	request.set_httpVerb('POST');
	request.get_headers()['Content-Type'] = 'application/json; charset=utf-8';
	request.set_executor(executor);
	request.set_body(Sys.Serialization.JavaScriptSerializer.serialize(categoryID));
	request.invoke;
	if(executor.get_responseAvailable()) {
		return (executor.get_object());
	}
	return(false);
}

function showPopup(referringElement, popUpElement, popUpShadowElement) {
	var popUp = null;
	var popUpShdw = null;
	if (popUpElement) {
		popUp = $get(popUpElement);
		popUpShdw = $get(popUpShadowElement);
	}
	else {
		popUp = $get('vendors');
		popUpShdw = $get('vendorsShadow');
	}
	popUp.style.top = getElementTop(referringElement) + 5 + "px";
	popUp.style.left = getElementLeft(referringElement) + referringElement.offsetWidth + "px";
	popUp.style.visibility = "visible";
	if (popUpShdw) {
		popUpShdw.style.top = getElementTop(referringElement) + 10 + "px";
		popUpShdw.style.left = getElementLeft(referringElement) + referringElement.offsetWidth + 5 + "px";
		setElementOpacity(popUpShdw, 0.75);
		popUpShdw.style.visibility = "visible";
	}
}

function hidePopup(popUpElement, popUpShadowElement) {
	var popUp = null;
	var popUpShdw = null;
	if (popUpElement) {
		popUp = $get(popUpElement);
		popUpShdw = $get(popUpShadowElement);
	}
	else {
		popUp = $get('vendors');
		popUpShdw = $get('vendorsShadow');
	}
	popUp.innerHTML = "";
	popUpShdw.innerHTML = "";
	popUp.style.visibility = "hidden";
	popUpShdw.style.visibility = "hidden";
}

function getElementLeft(element) {
	var leftPos = element.offsetLeft;
	var parentElement = element.offsetParent;
	while (parentElement != null) {
		leftPos += parentElement.offsetLeft;
		parentElement = parentElement.offsetParent;
	}
	return leftPos;
}

function getElementTop(element) {
	var topPos = element.offsetTop;
	var parentElement = element.offsetParent;
	while (parentElement != null) {
		topPos += parentElement.offsetTop;
		parentElement = parentElement.offsetParent;
	}
	return topPos;
}

function setElementOpacity(element, value) {
	if (!element) {
		throw Error.argumentNull('element');
	}

	if (element.filters) {
		var filters = element.filters;
		var createFilter = true;
		if (filters.length !== 0) {
			var alphaFilter = filters['DXImageTransform.Microsoft.Alpha'];
			if (alphaFilter) {
				createFilter = false;
				alphaFilter.opacity = value * 100;
			}
		}
		if (createFilter) {
			element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (value * 100) + ')';
		}
	}
	else {
		element.style.opacity = value;
	}
}
