function setInnerText(elementId, text) { 
	obj = document.getElementById(elementId);
	if(obj)
	{
		if(obj.innerText != undefined)
			obj.innerText = text;
		else if(obj.textContent != undefined)
			obj.textContent = text;
		else
			obj.innerHTML = text;
	}
}

function getInnerText(elementId) { 
	obj = document.getElementById(elementId);
	if(obj)
	{
		if(obj.innerText != undefined)
			return obj.innerText;
		else if(obj.textContent != undefined)
			return obj.textContent;
		else
			return obj.innerHTML;
	}
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function getPrefixDomain() {
	//var prefixDomain = window.location.protocol + "//" + window.location.host;
	var prefixDomain = "";
	return prefixDomain;
}


function tbwLogout()
{
      var httpRequest = createRequest();
      var url = getPrefixDomain() + "/tbw/logout.do";
      httpRequest.onreadystatechange = function() { tbwLogoutProcess(httpRequest); };
      httpRequest.open('GET', url, true);
      httpRequest.send(null);
}

function tbwLogoutProcess(httpRequest)
{
      if (httpRequest.readyState == 4)
      {
            if (httpRequest.status == 200) {
				
				//call the homePage
				window.location.href = getPrefixDomain() + "/tbw/homePage.do";
				
            } else {
                alert('There was a problem with the request, ' + httpRequest.status);
            }
      }
}

function getElementsByClassName(oElm, strTagName, strClassName)
{
	var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++)
    {
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className))
        {
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

var applicationMessageResponse = null;

function getApplicationMessageXML(key)
{
	var httpRequest = createRequest();
	var url = getPrefixDomain() + "/tbw/getJSMessage.do?key=" + key;
	httpRequest.onreadystatechange = function() { getApplicationMessageXMLProcess(httpRequest); };
	httpRequest.open('GET', url, false);
	httpRequest.send(null);
	return applicationMessageResponse;
}

function getApplicationMessageXMLProcess(httpRequest)
{
      if (httpRequest.readyState == 4)
      {
            if (httpRequest.status == 200)
            {
				var result = new processedXMLresponse(httpRequest.responseXML);
				if(result.isSuccess())
				{
					applicationMessageResponse = result.getResult();
				}
				else
				{
					applicationMessageResponse = null;
				}
            }
            else
            {
                  applicationMessageResponse = null;
            }
      }
}

function callTagToTip(div_id, position_param, show_vertical, offset_x_val, offset_y_val) {
    var flipToolTipArrow = function(){
	if(tt_bJmpVert){
	    $('#' + tt_aElt[0].id + ' .help-top-left').removeClass('help-top-left').addClass('help-top-leftarrow');
	    $('#' + tt_aElt[0].id + ' .help-bottom-leftarrow').removeClass('help-bottom-leftarrow').addClass('help-bottom-left');
	}else{
	    $('#' + tt_aElt[0].id + ' .help-bottom-left').removeClass('help-bottom-left').addClass('help-bottom-leftarrow');
	    $('#' + tt_aElt[0].id + ' .help-top-leftarrow').removeClass('help-top-leftarrow').addClass('help-top-left');
	}
    };
    var evt = {OnJumpBelow : flipToolTipArrow};
    tt_Extension.call(evt);
	//have different calls for firefox & ie
	if(navigator.appVersion.indexOf('MSIE')>=0) {
		TagToTip(div_id, position_param, show_vertical, WIDTH, 300, OFFSETX, offset_x_val, OFFSETY, offset_y_val, FADEIN, 25, FADEOUT, 25, BORDERWIDTH, 0, BGCOLOR, '', STICKY, false, FOLLOWMOUSE, false);
	} else {
	    TagToTip(div_id, position_param, show_vertical, WIDTH, 300, OFFSETX, offset_x_val, OFFSETY, offset_y_val, BORDERWIDTH, 0, BGCOLOR, '', STICKY, false, FOLLOWMOUSE, false);
	}
}

/*
 * Hide the specified div area
 */
function hideDivArea(str_area_hide){
	
	var hideDiv = document.getElementById(str_area_hide);
	hideDiv.style.display = "none";
	
}

/*
 * Shows and hides the specifid div areas
 */
function showDivArea(areas_show, areas_hide){
	
	//show specified area
	for (var i = 0; i < areas_show.length; i++) {
		var showArea = document.getElementById(areas_show[i]);
		showArea.style.display = "block";
	}
	
	//hide other areas
	for (var i = 0; i < areas_hide.length; i++) {
		var showArea = document.getElementById(areas_hide[i]);
		showArea.style.display = "none";
	}
}

function isDigit(num){if(num.length>1){return false;}var string="1234567890";if(string.indexOf(num)!=-1){return true;}return false;}
function isBlank(val){if(val==null){return true;}for(var i=0;i<val.length;i++){if((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}}return true;}
function isInteger(val){if(isBlank(val)){return false;}for(var i=0;i<val.length;i++){if(!isDigit(val.charAt(i))){return false;}}return true;}
function parseBase10(val)
{
    if(val.length>1 && val.charAt(0)=='0')
	  return parseBase10(val.substring(1));
    else
	  return parseInt(val);
}

function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return '0.00'; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}

// BEGIN -- Email popover

function overlayEmailPop(curobj, subobjstr, opt_position, booklistName, itemType, shared){
	if (document.getElementById){
		
		var subobj=document.getElementById(subobjstr);
		var titleobj=document.getElementById('emailBooklistName');

		setInnerText(titleobj.id, unescape(booklistName));
		
		//the email popover may be used for items other than book lists
		if (itemType != "") {
		
			document.getElementById("emailPopoverHeaderType").innerHTML = itemType;
			document.getElementById("emailPopoverBodyType").innerHTML = itemType;
			
		} else {
			
			document.getElementById("emailPopoverHeaderType").innerHTML = "";
			//hide 'email_item_to_send' deiv
			document.getElementById("email_item_to_send").style.display = "none";
		}
		
		//replace the default book list message if necessary
		//if (itemType != "Book List") {
			document.getElementById('emailMessage').value = "I saw this on Scholastic.com and thought it would interest you.";
		//}
	
		overlayEmailPopReset(shared);
		return overlay(curobj, subobjstr, opt_position);

	} else {
		return true;
	}
}


function overlayEmailPopReset(shared)
{
	document.getElementById("emailPopoverName").innerHTML = "* Your Name";
	document.getElementById("emailName").className = null;
	document.getElementById("emailName").value = "";
	document.getElementById("emailPopoverTo").innerHTML = "* Recipient's Email Address(es)";
	document.getElementById("emailTo").className = null;
	document.getElementById("emailTo").value = "";
	document.getElementById("emailPopoverFrom").innerHTML = "* Your Email Address";
	document.getElementById("emailFrom").className = null;
	document.getElementById("emailFrom").value = "";
	document.getElementById("emailSendToSelf").checked = false;
	
	var emailProceedLink = document.getElementById('emailProceedLink');
	emailProceedLink.href = "javascript: emailProceed('emailTo', 'emailFrom', 'emailName', 'emailSendToSelf', 'emailMessage' ";
	
	if (shared) {
		emailProceedLink.href = emailProceedLink.href  + ", true);"
	} else {
		emailProceedLink.href = emailProceedLink.href  + ", false);"
	}
}

function emailProceed(emailTo, emailFrom, emailName, emailSendToSelf, emailMessage, shared)
{
	//overlayEmailPopReset();
	var httpRequest = createRequest();
	var emailTo = document.getElementById(emailTo).value;
	var emailFrom = document.getElementById(emailFrom).value;
	var emailName = document.getElementById(emailName).value;
	var emailSendToSelf = document.getElementById(emailSendToSelf).checked ? "on" : "";
	var emailMessage = document.getElementById(emailMessage).value;

	var emailLinkURL = "";
	if (document.getElementById('currView') != null && document.getElementById('emailLinkURL'+document.getElementById('currView').value) != null) {
		emailLinkURL = document.getElementById('emailLinkURL'+document.getElementById('currView').value).value;//+"&view="+document.getElementById('currView').value;
	} else {
		emailLinkURL = window.location.href;
	}

	var url = getPrefixDomain() + "/tbw/emailServlet.do?username=" + encodeURIComponent(emailName) + "&recipientAddress=" + encodeURIComponent(emailTo) + "&senderAddress=" + encodeURIComponent(emailFrom) + "&content=" + encodeURIComponent(emailMessage) + "&CURL=" + encodeURIComponent(emailLinkURL) + "&receiveemail=" + emailSendToSelf;
	if (shared) {
		url = url + "&shared=true";
	}
	httpRequest.onreadystatechange = function() { emailProceedProcess(httpRequest); };
	httpRequest.open('GET', url, true);
	httpRequest.send(null);
}


function emailProceedProcess(httpRequest)
{
      if (httpRequest.readyState == 4)
      {
            if (httpRequest.status == 200)
            {
		var result = new processedXMLresponse(httpRequest.responseXML);
		if(result.isSuccess())
		{
			overlayclose('email');
		}
		else
		{
			var errors = result.getErrors();
			for(var i=0; i<errors.length; i++)
			{
				if(errors[i].getName() == "name_error")
				{
					document.getElementById("emailPopoverName").innerHTML = "<span class='redwarning'>* Your Name <em>(required)</em></span>";
					document.getElementById("emailName").className = "textinputwarning";
				}
				else if(errors[i].getName() == "to_error")
				{
					document.getElementById("emailPopoverTo").innerHTML = "<span class='redwarning'>* Recipient's Email Address(es) <em>(required)</em></span>";
					document.getElementById("emailTo").className = "textinputwarning";
				}
				else if(errors[i].getName() == "from_error")
				{
					document.getElementById("emailPopoverFrom").innerHTML = "<span class='redwarning'>* Your Email Address <em>(required)</em></span>";
					document.getElementById("emailFrom").className = "textinputwarning";
				}
				else if(errors[i].getName() == "send_error")
					alert(errors[i].getDescription());
			}			
		}
            }
            else
            {
                  alert('There was a problem with the request, ' + httpRequest.status);
            }
      }
}

function emailProceedProcess(httpRequest)
{
      if (httpRequest.readyState == 4)
      {
            if (httpRequest.status == 200)
            {
		var result = new processedXMLresponse(httpRequest.responseXML);
		if(result.isSuccess())
		{
			overlayclose('email');
		}
		else
		{
			var errors = result.getErrors();
			for(var i=0; i<errors.length; i++)
			{
				if(errors[i].getName() == "name_error")
				{
					document.getElementById("emailPopoverName").innerHTML = "<span class='redwarning'>* Your Name <em>(required)</em></span>";
					document.getElementById("emailName").className = "textinputwarning";
				}
				else if(errors[i].getName() == "to_error")
				{
					document.getElementById("emailPopoverTo").innerHTML = "<span class='redwarning'>* Recipient's Email Address(es) <em>(required)</em></span>";
					document.getElementById("emailTo").className = "textinputwarning";
				}
				else if(errors[i].getName() == "from_error")
				{
					document.getElementById("emailPopoverFrom").innerHTML = "<span class='redwarning'>* Your Email Address <em>(required)</em></span>";
					document.getElementById("emailFrom").className = "textinputwarning";
				}
				else if(errors[i].getName() == "send_error")
					alert(errors[i].getDescription());
			}			
		}
            }
            else
            {
                  alert('There was a problem with the request, ' + httpRequest.status);
            }
      }
}

