window.logout = function() {
	window.navigate("default.aspx?r=login&c=logout");
};

window.setClipboard = function(text) {
	//IE only
	window.clipboardData.setData("Text", text);
};

var formButtonOptions = {
	elementTags: [ "BUTTON" ],
	elementClass: "formButtonNormal",
	elementHoverClass: "formButtonHover",
	elementActiveClass: "formButtonActive",
	elementSelectedClass: "formButtonSelected",
	elementDisabledClass: "formButtonDisabled",
	includeChildChildren: false
}

var headerToolbarOptions = {
	elementTags: [ "BUTTON" ],
	elementClass: "headerToolbarNormal",
	elementHoverClass: "headerToolbarHover",
	elementActiveClass: "headerToolbarActive",
	elementSelectedClass: "headerToolbarSelected",
	elementDisabledClass: "headerToolbarDisabled",
	includeChildChildren: false
}

Event.observe(window, "load", function() {
	if(Browser.isIE && !Browser.isIE7) {
		Styles.updateRule("#header", "height", "30px");
		Styles.updateRule("#footer", "height", "30px");
		Styles.updateRule("#info", "height", "320px");
		Styles.updateRule("#contactAgentButton", "top", "13px");
	}
});

function checkXmlStatus(response) {
	try {
		var xml = Xml.createDocumentFromString(response.responseText);
		if(!xml.childNodes) {
			alert(response.responseText);
			return null;
		}
		if(xml.childNodes[0].nodeName == "Response") {
			var node = xml.childNodes[0];
		} else {
			var node = xml.childNodes[1];
		}
		if(node.attributes.getNamedItem("Status").nodeValue != "ok") {
			alert(node.attributes.getNamedItem("Status").nodeValue + "\n\n" + node.text);
			return null;
		}
		return node;
	} catch(e) {
		alert((e.description ? e.description : e.message) + "\n\n" + response.responseText);
		return null;
	}
}

function checkJsonStatus(response) {
	var xml = checkXmlStatus(response);
	if(xml) {
		try {
			return eval("(" + getXmlDocumentValue(xml, "//Item") + ")");
		} catch(ex) {
			alert((e.description ? e.description : e.message) + "\n\n" + response.responseText);
			return null;
		}
	}
	return null;
}
//http://developer.mozilla.org/en/docs/Using_XPath
function evaluateXPath(aNode, aExpr) {
  var xpe = new XPathEvaluator();
  var nsResolver = xpe.createNSResolver(aNode.ownerDocument == null ?
    aNode.documentElement : aNode.ownerDocument.documentElement);
  var result = xpe.evaluate(aExpr, aNode, nsResolver, 0, null);
  var found = [];
  var res;
  while (res = result.iterateNext())
    found.push(res);
  return found;
}
function getXmlDocumentValue(xml, xpath) {
	var value;
	if(Browser.isIE) {
		value = xml.selectSingleNode(xpath).text;
	} else if(document.evaluate) {
		var node = evaluateXPath(xml, xpath);
		if(node.length > 0) {
			value = node[0].textContent;
		}
	}
	return value ? value : "";
}
function getXmlNodeValue(node, name) {
	if(node.selectSingleNode(".//" + name)) {
		return node.selectSingleNode(".//" + name).text;
	} else {
		return "";
	}
}

function deserializeXmlDate(value) {
	if(!value || value == "") {
		return new Date(1980, 0, 1);
	}
	var parts = value.split("T");
	var dateParts = parts[0].split("-");
	if(parts.length > 1) {
		var timeParts = parts[1].split(":");
		return new Date(parseIntLeadingZeros(dateParts[0]), parseIntLeadingZeros(dateParts[1]) - 1, parseIntLeadingZeros(dateParts[2]), parseIntLeadingZeros(timeParts[0]), parseIntLeadingZeros(timeParts[1]), parseIntLeadingZeros(timeParts[2]));
	} else {
		try {
			return new Date(parseIntLeadingZeros(dateParts[0]), parseIntLeadingZeros(dateParts[1]) - 1, parseIntLeadingZeros(dateParts[2]));
		} catch(ex) {
			return new Date(1980, 0, 1);
		}
	}
}

function parseIntLeadingZeros(value) {
	var temp = "" + value;
	while(temp.length > 1 && temp.substr(0, 1) == "0") {
		temp = temp.substr(1);
	}
	return parseInt(temp);
}

function formatNumeric(value) {
	var str = "" + parseInt(value);
	var res = "";
	for(var i = str.length; i >= -2; i -= 3) {
		var l = 3;
		if(i < 0) {
			l += i;
			i = 0;
		}
		if(res != "") {
			res = "," + res;
		}
		res = str.substr(i, l) + res;
	}
	return res;
}

