/**
 * Main JS
 */

/**
 * Loads system link content into an overlay.
 *		Requires jQuery.
 *
 * @param	string	item	The system link.
 */
function popHelp (item) {
	// Get the system link content.
    //alert( item );
    if( typeof(ON_GUEST_LANDING) != "undefined" ) {
        item = "cpt.lookup.help.guest";
        //alert( "on guest landing" );
    }
	getOverlayContent(item);
}

/**
 * Asynchronous call to get system link content and display it in an overlay.
 *		Requires jQuery.
 *
 * @param	string item 	The system link.
 * @param	string target 	The id of the target element (in which to display the content).  Defaults to '#syslink_content.
 */
function getOverlayContent (item, target) {
	//alert('getOverlayContent - item:'+item+', target:'+target);
	if ( ! target) {
		var target = "syslink_content";
	}
    var url = "index.cfm?fa=rplus.xhr_main";
    var tmp = item.indexOf('plus4_required');
    if( tmp == 0 ) {
        url = "index.cfm?fa=rplus.xhr_main_secure";
    }
	// Asynchronous call to calculate fees and populate table.
	$.ajax({
		url		: url,
		context	: document.body,
		type	: "POST",
		data	: "cmd=get_overlay_content&systemlink="+item,
		success	: function( msg ){
			msg = trimWhitespace( msg );
			var arrRet = msg.split("||");
			if( arrRet.length < 3 ) {
				alert( "Invalid return" );
				return;
			}
			if( arrRet[1] == 1 ) {
				alert("Error: " + arrRet[2] );
				return;
			}

			if( arrRet[2] ) {
				$('#'+target+' .content').html(arrRet[2]);
				$('#'+target).overlay().load();
			} else {
				var results = "unknown";
			}
			/*
			var dump = print_r( grids ) ;
			 $("#results").html( "<pre>" + "\n" + "CodeCompare:" + "\n" + dump + "</pre>" + "\n");
			var tmp = 0;
			*/
		return;
	},
	error: function( xhr, textStatus, errorThrown ) {
		//var xml = parseXml(xhr.responseText);
		var tmp = 0;
		//alert( textStatus );
		return;
	},
		complete: function() {}
	});
}

/**
 * Asynchronous call to lookup data content.
 *
 * @param	string 	module 	The module.
 * @param	string	label	The label.
 * @parmam	string	value	[optional] The value.
 */
function getDataCodeLookup (module, label, value, target) {
	if ( ! target) {
		var target = "syslink_content";
	}
    value = encodeURI ( value );
	// Asynchronous call to get data code content.
	$.ajax({
		url		: "index.cfm?fa=rplus.xhr_main",
		context	: document.body,
		type	: "POST",
		data	: "cmd=get_data_code_lookup&h_module="+module+"&h_label="+label+"&h_value="+value,
		success	: function( msg ){
			msg = trimWhitespace( msg );
			var arrRet = msg.split("||");
			if( arrRet.length < 3 ) {
				alert( "Invalid return" );
				return;
			}
			if( arrRet[1] == 1 ) {
				alert("Error: " + arrRet[2] );
				return;
			}

			if( arrRet[2] ) {
				$('#'+target+' .content').html(arrRet[2]);
				$('#'+target).overlay().load();
			} else {
				var results = "unknown";
			}
			/*
			var dump = print_r( grids ) ;
			 $("#results").html( "<pre>" + "\n" + "CodeCompare:" + "\n" + dump + "</pre>" + "\n");
			var tmp = 0;
			*/
		return;
	},
	error: function( xhr, textStatus, errorThrown ) {
		//var xml = parseXml(xhr.responseText);
		var tmp = 0;
		//alert( textStatus );
		return;
	},
		complete: function() {}
	});
}

/**
 * Gets the interlinks.
 */
function getInterlinks (cptcode) {
	// Clear interlinks.
	clearInterlinks();

	// Loading animations.
	toggleInterlink($('#interlinks .productBarInput'));

	// Asynchronous call to get the interlinks.
	$.ajax({
		url		: "index.cfm?fa=rplus.xhr_main",
		context	: document.body,
		type	: "POST",
		data	: "cmd=get_interlinks_all&cptcode="+cptcode,
		success	: function( msg ){
			msg = trimWhitespace( msg );
			var arrRet = msg.split("||");
			if( arrRet.length < 3 ) {
				alert( "Invalid return" );
				return;
			}
			if( arrRet[1] == 1 ) {
				alert("Error: " + arrRet[2] );
				return;
			}

			if( arrRet[2] ) {
				// Serialized data.
				var interlinkdata = arrRet[2];

				// Parse xml.
				if (window.DOMParser) {
					parser = new DOMParser();
					interlink_xmlDoc = parser.parseFromString(interlinkdata,"text/xml");
				} else {
					// Internet Explorer
					interlink_xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
					interlink_xmlDoc.async = "false";
					interlink_xmlDoc.loadXML(interlinkdata);
				}

				var interlinks = interlink_xmlDoc.getElementsByTagName("grid")[0].getElementsByTagName("row");
				var names = [];

				for (var i=0; i<interlinks.length; i++) {
					// Row [0=>result, 1=>name, 2=>data]
					var row	= [interlinks[i].getElementsByTagName("col")[0].getElementsByTagName("value")[0].textContent
							|| interlinks[i].getElementsByTagName("col")[0].getElementsByTagName("value")[0].text,
							   interlinks[i].getElementsByTagName("col")[1].getElementsByTagName("value")[0].textContent
							|| interlinks[i].getElementsByTagName("col")[1].getElementsByTagName("value")[0].text,
							   interlinks[i].getElementsByTagName("col")[2].getElementsByTagName("value")[0].textContent
							|| interlinks[i].getElementsByTagName("col")[2].getElementsByTagName("value")[0].text
					];

					// Toggle the interlink status.
					toggleInterlink($('#'+row[1]+'>.productBarInput'), row[0]);

					// Set the data.
					$('#'+row[1]+'>.productBarInput').html(row[2]);

					if (row[1] == "icd9") {
						// Embed the ICD-9 CrossLink Lookup tool.
						$("#icd9crosslink .content").flashembed({
							src			: "/themes/rbplus/tools/ICD9CrossLinkLookupInline.swf",
							wmode		: "transparent"
						}, {
							CPTCODE		: $('#cptcode').val(),
							CPTCODEID	: $('#cptcodeid').val(),
							historyUrl	: ''
						});

						var call = "javascript:loadICD9CrossLink()";
						$('#icd9 .productBarInput a').attr('href', call);
					}

				}
			} else {
				var results = "unknown";
			}
			/*
			var dump = print_r( grids ) ;
			 $("#results").html( "<pre>" + "\n" + "CodeCompare:" + "\n" + dump + "</pre>" + "\n");
			var tmp = 0;
			*/
		return;
	},
	error: function( xhr, textStatus, errorThrown ) {
		//var xml = parseXml(xhr.responseText);
		var tmp = 0;
		//alert( textStatus );
		return;
	},
		complete: function() {}
	});
}

/*
// Remove leading and trailing whitespace from a string
function trimWhitespace(string) {
   var newString  = '';
   var substring  = '';
   beginningFound = false;

   // copy characters over to a new string
   // retain whitespace characters if they are between other characters
   for (var i = 0; i < string.length; i++) {

      // copy non-whitespace characters
      if (string.charAt(i) != ' ' && string.charAt(i) != '\n' && string.charAt(i) != '\r' && string.charCodeAt(i) != 9) {

         // if the temporary string contains some whitespace characters, copy them first
         if (substring != '') {
            newString += substring;
            substring = '';
         }
         newString += string.charAt(i);
         if (beginningFound == false) beginningFound = true;
      }

      // hold whitespace characters in a temporary string if they follow a non-whitespace character
      else if (beginningFound == true) substring += string.charAt(i);
   }
   return newString;
}
*/
