function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

var ipod=(navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1) || (navigator.userAgent.indexOf('iPad') != -1)

function setup_ajax(){

	if(!browser.isIE){
		//ADD IE-STYLE XQUERY METHODS TO FIREFOX, TO MAKE LIFE EASIER
		//SELECTNODES
		Document.prototype.selectNodes = function($_XPath, $_xNode) {
		if(!$_xNode) $_xNode = this;
		oNSResolver = this.createNSResolver(this.documentElement);
		$_aItems = this.evaluate($_XPath, $_xNode, oNSResolver, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
		$_aResult = [];
		while (item = $_aItems.iterateNext())
			$_aResult.push(item);
		return $_aResult;
		}
		Element.prototype.selectNodes = function($_XPath) {
		return this.ownerDocument.selectNodes($_XPath, this);
		}
		
		//SELECTSINGLENODE
		Document.prototype.selectSingleNode = function($_XPath, $_xNode) {
		if(!$_xNode) $_xNode = this;
		$_xItems = this.selectNodes($_XPath, $_xNode);
		return ($_xItems.length > 0)? $_xItems[0] : null ;
		}
		Element.prototype.selectSingleNode = function($_XPath) {
		return this.ownerDocument.selectSingleNode($_XPath, this);
		}
		
		//XML PROPERTY
		Node.prototype.__defineGetter__("xml", function() {
		return (new XMLSerializer()).serializeToString(this);
		});
		Node.prototype.__defineGetter__("outerHTML", function() {
		return this.xml;
		});
		
	}
		
}


var xmlob_arr=new Array()
var xmlob_doc_arr=new Array()
var xmlob_loaded_arr=new Array()

function get_xml_onLoad(){
	//start_load_xml("xml/search_tabs.xml","tabs")
	safari_labels()
	//repos_scroll()
	start_load_xml("library/get_session_xml.asp?var=s_LDomain_xml","domain_groups")
	start_load_xml("xml/comparisons.xml","comparisons")
	start_load_xml("library/get_session_xml.asp?var=s_parsed_aindicatorsbyprac_xml","indicators")

	
}

function set_session_var(thisname,thisval){
	start_load_xml("library/set_session_var.asp","set_session_var","n="+thisname+"&v="+thisval)
}

function start_load_xml(thispath,thisname,params){
	
	if(thispath.indexOf(pthstr)==-1){
		xmlpth=pthstr+thispath
	}else{
		xmlpth=thispath
	}
	if(typeof params=="undefined" || !params){
		params=""
	}

	xml_mode="ie"
	
	if(thisname=="calendar" && params!=""){
		
		xmlpth=xmlpth+"?"+params
		params=""
	}
	
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
		// JScript gives us Conditional compilation, we can cope with old IE versions.
		// and security blocked creation of the objects.

		try {
			xmlob_arr[thisname] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlob_arr[thisname] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlob_arr[thisname] = false;
			}
		}

	/*@end @*/
	
	
	if (!xmlob_arr[thisname] && typeof XMLHttpRequest!='undefined') {
		xmlob_arr[thisname] = new XMLHttpRequest();
		xml_mode="moz"
	}

	if(params==""){
		xmlob_arr[thisname].open("GET", xmlpth,true);
		//xmlob_arr[thisname].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	}else{
		xmlob_arr[thisname].open("POST", xmlpth,true);
		xmlob_arr[thisname].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlob_arr[thisname].setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
	}
	
	
	
	
	if(thisname=="criteria"){
		xmlob_arr[thisname].onreadystatechange=parse_criteria_xml
	}
	if(thisname=="form_validation"){
		xmlob_arr[thisname].onreadystatechange=parse_form_validation_xml
	}
	if(thisname=="form_control"){
		xmlob_arr[thisname].onreadystatechange=parse_form_control_xml
	}
	if(thisname=="reg_form_control"){
		xmlob_arr[thisname].onreadystatechange=parse_reg_form_control_xml
	}
	if(thisname=="random_password"){
		xmlob_arr[thisname].onreadystatechange=parse_random_password_xml
	}
	if(thisname=="log_out_user"){
		xmlob_arr[thisname].onreadystatechange=parse_log_out_user_xml
	}
	
	if(thisname=="category_by_supplier"){
		xmlob_arr[thisname].onreadystatechange=parse_category_by_supplier_xml
	}
	if(thisname=="set_session_var"){
		xmlob_arr[thisname].onreadystatechange=set_session_var_xml
	}
	if(thisname=="send_email_template"){
		xmlob_arr[thisname].onreadystatechange=parse_send_email_template_xml
	}
	if(thisname=="search_categories"){
		xmlob_arr[thisname].onreadystatechange=parse_search_categories_xml
	}
	if(thisname=="manufacturer_icon"){
		xmlob_arr[thisname].onreadystatechange=parse_manufacturer_icon_xml
	}
	if(thisname=="agree_t_and_c"){
		xmlob_arr[thisname].onreadystatechange=parse_agree_t_and_c_xml
	}
	if(thisname=="calendar"){
		xmlob_arr[thisname].onreadystatechange=parse_calendar_xml
	}
	if(thisname=="news_items"){
		xmlob_arr[thisname].onreadystatechange=parse_news_items_xml
	}
	if(thisname=="update_ordinal"){
		xmlob_arr[thisname].onreadystatechange=parse_update_ordinal_xml
	}
	if(thisname=="ad_clicked"){
		xmlob_arr[thisname].onreadystatechange=parse_ad_clicked_xml
	}
	if(thisname=="remember_me"){
		xmlob_arr[thisname].onreadystatechange=parse_remember_me_xml
	}
	if(thisname=="show_preview"){
		xmlob_arr[thisname].onreadystatechange=parse_show_preview_xml
	}
	
	xmlob_loaded_arr[thisname]=0
	
	if(params==""){
	
		xmlob_arr[thisname].send(null)
	}else{
		
		xmlob_arr[thisname].send(params)
	}

}

function parse_criteria_xml(){

	obname="criteria"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//data")
		
		

		
		if(test_nodes.length>0){
		
			criteria_xml=xmlob_doc_arr["criteria"]
			
			xmlob_loaded_arr[obname]=1
			
			var output_nodes=xmlob_doc_arr[obname].selectNodes("//output")
			for(var i=0;i<output_nodes.length;i++){
				criteria_node_arr["crit"+output_nodes[i].getAttribute("criteria_type_ID")]=new criteria_node_class(output_nodes[i])
				criteria_node_id_arr[i]=output_nodes[i].getAttribute("criteria_type_ID")
				
			}
			for(var i=0;i<criteria_node_id_arr.length;i++){
				criteria_node_arr["crit"+criteria_node_id_arr[i]].setup_editable_controls()
			}
		}


	}
}

function parse_form_validation_xml(){

	obname="form_validation"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//field")
		
		

		
		if(test_nodes.length>0){

			
			xmlob_loaded_arr[obname]=1
			
			
		}


	}
}

function parse_form_control_xml(){

	obname="form_control"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//form")
		
		

		
		if(test_nodes.length>0){

			
			xmlob_loaded_arr[obname]=1
		
			form_control_xml_loaded(xmlob_doc_arr["form_control"])
			
		}


	}
}

function parse_reg_form_control_xml(){

	obname="reg_form_control"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//form")
		
		

		
		if(test_nodes.length>0){

			
			xmlob_loaded_arr[obname]=1
		
			reg_form_control_xml_loaded(xmlob_doc_arr["reg_form_control"])
			
		}


	}
}

function parse_random_password_xml(){

	obname="random_password"

	if(xmlob_arr[obname].readyState==4){

		if(typeof document.forms["update_form"].temp_password!="undefined" && !!document.forms["update_form"].temp_password){
			document.forms["update_form"].temp_password.value=xmlob_arr[obname].responseText
			document.forms["update_form"].temp_password.type="text"
		}else{
			document.forms["update_form"].password.value=xmlob_arr[obname].responseText
			document.forms["update_form"].password.type="text"
			
		}

	}
}

function parse_log_out_user_xml(){
	obname="log_out_user"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//data")
		
	

		
		if(test_nodes.length>0){

			
			post_log_out_user_action()
			
			
		}


	}
}

function parse_category_by_supplier_xml(){
	obname="category_by_supplier"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//data")
		
	

		
		if(test_nodes.length>0){

			category_xml=xmlob_doc_arr[obname]
			
			xmlob_loaded_arr[obname]=1
			
			var output_nodes=xmlob_doc_arr[obname].selectNodes("//category")
			for(var i=0;i<output_nodes.length;i++){
				category_node_arr["cat"+output_nodes[i].getAttribute("category_ID")]=new category_node_class(output_nodes[i],category_node_id_arr.length)
				category_node_id_arr[i]=output_nodes[i].getAttribute("category_ID")
				if((","+category_expanded_str+",").indexOf(","+output_nodes[i].getAttribute("category_ID")+",")>-1){
					category_expanded_arr[i]=output_nodes[i].getAttribute("category_ID")
				}else{
					category_expanded_arr[i]="0"
				}
				
			}
		
			for(var i=0;i<category_node_id_arr.length;i++){
				category_node_arr["cat"+category_node_id_arr[i]].setup_interface()
			}
			
			
			
		}


	}
}


function set_session_var_xml(){
	obname="set_session_var"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		

	}
}

function parse_send_email_template_xml(){
	obname="send_email_template"
	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//data")
		if(test_nodes.length>0){
			validation_request_result(test_nodes[0].getAttribute("validation_requested_date"))
		}
	}
}

function parse_search_categories_xml(){
	obname="search_categories"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//data")
		
	

		
		if(test_nodes.length>0){

			category_xml=xmlob_doc_arr[obname]
			
			xmlob_loaded_arr[obname]=1
			
			var output_nodes=xmlob_doc_arr[obname].selectNodes("//category")
			
			categories_loaded()
			
			
		}


	}
}

function parse_manufacturer_icon_xml(){
	obname="manufacturer_icon"

	if(xmlob_arr[obname].readyState==4){
		
		manufacturer_icon_loaded(xmlob_arr[obname].responseText)


	}
}

function parse_agree_t_and_c_xml(){
	obname="agree_t_and_c"

	if(xmlob_arr[obname].readyState==4){
		
		t_and_c_agreed(xmlob_arr[obname].responseText)


	}
}


function parse_calendar_xml(){
	obname="calendar"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//*")
		
	

		
		if(test_nodes.length>0){


			calendar_data_loaded(xmlob_doc_arr[obname])
			
		}


	}
}

function parse_news_items_xml(){
	obname="news_items"

	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//*")
		
	

		
		if(test_nodes.length>0){


			news_items_loaded(xmlob_doc_arr[obname])
			
		}


	}
}


function parse_update_ordinal_xml(){
	obname="update_ordinal"

	
	if(xmlob_arr[obname].readyState==4){
		
		if(browser.isIE){
			xmlob_doc_arr[obname]=new ActiveXObject('Microsoft.XMLDOM')
			xmlob_doc_arr[obname].loadXML(xmlob_arr[obname].responseText)
		}else{
			xmlob_doc_arr[obname]=new DOMParser().parseFromString(xmlob_arr[obname].responseText, 'text/xml')
		}
		
		test_nodes=xmlob_doc_arr[obname].selectNodes("//*")
		
	

		
		if(test_nodes.length>0){


			ordinal_updated(xmlob_doc_arr[obname])
			
		}


	}
	
}

function parse_ad_clicked_xml(){
	obname="ad_clicked"

	if(xmlob_arr[obname].readyState==4){
		
		ad_clicked_result(xmlob_arr[obname].responseText)


	}
}

function parse_remember_me_xml(){
	obname="remember_me"

	if(xmlob_arr[obname].readyState==4){
		
		//alert(xmlob_arr[obname].responseText)


	}
}
function parse_show_preview_xml(){
	obname="show_preview"

	if(xmlob_arr[obname].readyState==4){
		
		
		show_news_item_preview=xmlob_arr[obname].responseText

	}
}
