//NOTES:	
//document.all(id) does not work in NS7.1
//neither does simply referring to the element name directly: innerform.innerHTML

var strActiveBtn = '';
var iPrintSize = 3;
var pleasewait = "<span style='FONT-SIZE: 18px; FONT-FAMILY: Verdana, Arial, sans-serif;color:#CC0000;'>Please wait...</span>";

//style/layout functions
function rollon(tid) {
	if (strActiveBtn != tid)  {
		//document.getElementById( tid ).style.backgroundColor = 'FFFACC';
		var o = document.getElementById( tid );
		if (null != o) {
			o.style.backgroundColor = 'FFFACC';	
			if ((o.style.cursor != "pointer") && (o.style.cursor != "hand")) {
				o.style.cursor= strCursorStyle; }
		}
		o = null;
	}
}

function rolloff(tid) {
	if (strActiveBtn != tid) {
		SetBackgroundColor( tid, '#FFFFFF' );
	}
}

function rolloffAll() {
	SetBackgroundColor( "btnPrint", '#FFFFFF' );
	SetBackgroundColor( "btnEmail", '#FFFFFF' );
	SetBackgroundColor( "btnRecBox", '#FFFFFF' );
	SetBackgroundColor( "btnShopList", '#FFFFFF' );
}

function SetDisplayStyle( strElement, strStyle ) {
	var oD = document.getElementById( strElement );
	if (null != oD) {
		oD.style.display= strStyle;
	}
	oD = null;
}

function SetBackgroundColor( strElement, strColor ) {
	var oD = document.getElementById( strElement );
	if (null != oD) {
		oD.style.backgroundColor= strColor;
	}
	oD = null;
}

function DashControlBarBottom() {
	var o = document.getElementById( "recontrolbar" );
	if (null != o) {
		o.style.borderBottomStyle= 'dashed';
		o.style.borderBottomWidth= '1px';
	}
	o = null;
}

function closepop() {
	SetDisplayStyle( "innerForm", 'none' );

	var o = document.getElementById( "recontrolbar" );
	if (null != o) {
		o.style.borderBottomStyle= 'solid';
		o.style.borderBottomWidth='2px';
	}
	o = null;
	
	SetDisplayStyle( "recontrolarea", 'none' );
	SetBackgroundColor( strActiveBtn, '#FFFFFF' );
	strActiveBtn='';
}

function resizeform() {
	var currsize= document.getElementById( "innerForm" ).offsetHeight;
	document.getElementById( "recontrolarea" ).style.height= currsize;
}

function LoadInnerForm(strFormName) {
	var strHTML = document.getElementById( strFormName ).innerHTML;
	document.getElementById( "innerForm" ).innerHTML= strHTML;
}

//form functions
function showPrint(qs) {
	try { divSucErrMsg.style.display= "none"; } catch (e){}
	if (strActiveBtn != "btnPrint") {
		//if (strActiveBtn != "") 
		//	rolloff ( strActiveBtn );
		rolloffAll ();
		
		strActiveBtn= "btnPrint";
		SetDisplayStyle( "framearea", 'none' );
		SetBackgroundColor( "btnPrint", '#FFEE9C' );
		DashControlBarBottom();
		LoadInnerForm("divPrint");	
		resizeform();
		SetDisplayStyle( "innerForm", 'block' );
		SetDisplayStyle( "recontrolarea", 'block' );
	} else {
		closepop();
	}
}

function SetPrintSize(iSize) {
	iPrintSize = iSize;
}

function printrecipe(url) {
	var printurl;
	switch (iPrintSize) {
		case 1:
			printurl= '/recipes/print_3_5_scale.asp';
			break;
		case 2:
			printurl= '/recipes/print_4_6_scale.asp';
			break;
		default:
			printurl= '/recipes/print_fullpage_scale.asp';
			break;
	}
	printurl = printurl + url;
	document.all.gotoprint.action=printurl;
	document.all.gotoprint.submit();
	return(false) ;
}

function showEmailChoice(qs) {
	try { divSucErrMsg.style.display='none'; } catch (e){}
	if (strActiveBtn != "btnEmail") {
		//if (strActiveBtn != "")
		//	rolloff ( strActiveBtn );
		rolloffAll ();

		strActiveBtn= "btnEmail";
		SetDisplayStyle( "framearea", 'none' );
		SetBackgroundColor( "btnEmail", '#FFEE9C' );
		DashControlBarBottom();
		LoadInnerForm("divEmailChoice");
		resizeform();
		SetDisplayStyle( "innerForm", 'block' );
		SetDisplayStyle( "recontrolarea", 'block' );
	} else {
		closepop();
	}
}

function rc_email2(qs) {
		LoadInnerForm("divEmail");
		resizeform();
}

function emailchosen(qs, iNPRID) {
	if (document.getElementById('frmEmailChoice').emailchoice[0].checked) {
		LoadInnerForm( "divEmail" );
		resizeform();
	} else if (document.getElementById('frmEmailChoice').emailchoice[1].checked) {
		top.location.href= 'http://allrecipes.com/ecards/select.asp?nprid=' + iNPRID;
	} 
}

//IFrame Magic

function showRecBox(iNPRID, iServings, iOrigServings) 
{
	showACRecBox(iNPRID, iServings, iOrigServings, "", "");
}

function showShopList(iNPRID, iServings, iOrigServings) 
{
	showACShopList(iNPRID, iServings, iOrigServings, "", "");
}

function showReview( iNPRID ) 
{
	showACReview(iNPRID, "", "");
}

//AC Stuff

function showACRecBox(iNPRID, iServings, iOrigServings, sACAction, sACPass) 
{
	try { divSucErrMsg.style.display='none'; } catch (e){}
	if (strActiveBtn != "btnRecBox") {
		innerForm.innerHTML= '';
		SetDisplayStyle( "innerForm", 'none' );
		//if (strActiveBtn != "")
		//	rolloff ( strActiveBtn );
		rolloffAll ();

		strActiveBtn= "btnRecBox";
		SetBackgroundColor( "btnRecBox", '#FFEE9C' );
		DashControlBarBottom();
		SetDisplayStyle( "framearea", 'block' );
		recipeformframe.location.href= "/includes/arglobal/aggregate/recipe/i/RecBox.asp?nprid=" + iNPRID + "&servings=" + iServings + "&origservings=" + iOrigServings + "&ac_action=" + sACAction + "&ac_pass=" + sACPass;
		SetDisplayStyle( "recontrolarea", 'block' );
	} else {
		closepop();
	}
}

function showACShopList(iNPRID, iServings, iOrigServings, sACAction, sACPass)  {
	try { divSucErrMsg.style.display='none'; } catch (e){}
	if (strActiveBtn != "btnShopList") {
		innerForm.innerHTML= "";
		innerForm.style.display= 'none';
		//if (strActiveBtn != "")
		//	rolloff ( strActiveBtn );
		rolloffAll ();

		strActiveBtn= "btnShopList";
		SetBackgroundColor( "btnShopList", '#FFEE9C' );
		DashControlBarBottom();
		SetDisplayStyle( "framearea", 'block' );
		recipeformframe.location.href= "/includes/arglobal/aggregate/recipe/i/shoplist.asp?nprid=" + iNPRID + "&servings=" + iServings + "&origservings=" + iOrigServings + "&ac_action=" + sACAction + "&ac_pass=" + sACPass;
		SetDisplayStyle( "recontrolarea", 'block' );
	} else {
		closepop();
	}
}

function showACReview(iNPRID, sACAction, sACPass) {
	try { divSucErrMsg.style.display='none'; } catch (e){}
	if (strActiveBtn != "btnRecBox") {
		innerForm.innerHTML= '';
		innerForm.style.display='none';
		if (strActiveBtn != "")
			rolloff ( strActiveBtn );
		strActiveBtn= "btnRecBox";
		SetBackgroundColor( "btnRecBox", '#FFEE9C' );
		DashControlBarBottom();
		SetDisplayStyle( "framearea", 'block' );
		recipeformframe.location.href= "/includes/arglobal/aggregate/recipe/i/Review.asp?nprid=" + iNPRID + "&ac_action=" + sACAction + "&ac_pass=" + sACPass;
		SetDisplayStyle( "recontrolarea", 'block' );
	} else {
		closepop();
	}
	return false;	
}

//Other

function sendemail() {
	var bEmailsOK= true;
	var iEmailOK= 1;
	resetemailerrs();
	
	var ToAddress=new String(Trim(document.getElementById('ToAddress').value));
	var aryTo = ToAddress.split(",");
	//alert (aryTo + " " + aryTo.length);
	
	for (var x=0; x < aryTo.length; x++) {
		if (Trim(aryTo[x]).length > 0) {
			iEmailOK = checkemailOK( Trim(aryTo[x]) );
			if (0 != iEmailOK) {
				break;
			}
		}
	}
	aryTo = null;
	
	if (0 != iEmailOK) {
		bEmailsOK=false;
		SetDisplayStyle( "hlp_ToAddress", 'none' );
		SetDisplayStyle( "err_ToAddress", 'inline' );
		switch (iEmailOK) {
			case 1 :
				document.getElementById('err_ToAddress_text').innerText='email address is required';
				break;
			case 2 :
				document.getElementById('err_ToAddress_text').innerText='email address is malformed';	
				break;
			default :
				document.getElementById('err_ToAddress_text').innerText='unknown error';	
		}					
	}

	var FromAddress=new String(Trim(document.getElementById('FromAddress').value));
	iEmailOK=checkemailOK(FromAddress);
	if (0 != iEmailOK) {
		bEmailsOK=false;
		SetDisplayStyle( "hlp_FromAddress", 'none' );
		SetDisplayStyle( "err_FromAddress", 'inline' );
		switch (iEmailOK) {
			case 1 :
				document.getElementById('err_FromAddress_text').innerText='email address is required';
				break;
			case 2 :
				document.getElementById('err_FromAddress_text').innerText='email address is malformed';	
				break;
			default :
				document.getElementById('err_FromAddress_text').innerText='unknown error';	
		}					
	}
	
	if (bEmailsOK) {
		document.getElementById( "frmEmail" ).submit();
		SetDisplayStyle( "innerForm", 'none' );
		SetDisplayStyle( "framearea", 'block' );
		return true;
		}
	else
		return false;
}

function checkemailOK(em) {
	var validemail;
	if (em.length > 0) 
	{
		validemail=isEmail(em);
		if (validemail==true) 
			return 0;
		else
			return 2;
		}
	else
		return 1 ;
}

function resetemailerrs() {
	SetDisplayStyle( "hlp_ToAddress", 'inline' );
	SetDisplayStyle( "err_ToAddress", 'none' );
	document.getElementById('err_ToAddress_text').innerText='';
	
	//leave these alone as of now we are not displaying err msgs for From Name
	//SetDisplayStyle( "hlp_FromName", 'inline' );
	//SetDisplayStyle( "err_FromName", 'none' );
	//document.getElementById('err_FromName_text').innerText='';

	SetDisplayStyle( "hlp_FromAddress", 'inline' );
	SetDisplayStyle( "err_FromAddress", 'none' );
	document.getElementById('err_FromAddress_text').innerText='';
	
	//leave these alone as of now we are not displaying err msgs for Message
	//SetDisplayStyle( "hlp_Message", 'inline' );
	//SetDisplayStyle( "err_Message", 'none' );
	//document.getElementById('err_Message_text').innerText='';	
}

//generic
function isEmail(em) {
	var email_regex= /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;

	if (email_regex.test(em.valueOf())) {
 			return true;
		} else { 
			return false;
		}
}

function Trim(inString) {
	if ((inString == null) || (inString.length < 1)) {
		return '';
	}
	//if (inString.length < 1) {
	//	return '';
	//}
	inString = RTrim(inString);
	inString = LTrim(inString);
	if (inString == '') {
		return '';
	} else {
		return inString;
	}
}

function RTrim(inString){
	var si_length = inString.length;
	var nwString = '';
	var tmp_pos = si_length -1;
	if (si_length < 0) {
		return '';
	}
	while(tmp_pos > -1){
		if (inString.charAt(tmp_pos) == ' '){
		} else {
			nwString = inString.substring( 0, tmp_pos + 1 );
			break;
		}
		tmp_pos = tmp_pos-1;
	}
	return nwString;
}

function LTrim(inString){
	var si_length = inString.length;
	var nwString = '';
	var tmp_pos = 0;

	if(si_length < 1) {
		return '' ;
	}
	while(tmp_pos < si_length){
		if( inString.charAt(tmp_pos) == ' ' ) {
		} else {
			nwString = inString.substring( tmp_pos, si_length );
			break;
		}
		tmp_pos = tmp_pos + 1;
	}
	return nwString;
}

function GetRecipeFormFrame(){
	var name = '';
	name = recipeformframe.location.href;
	
	return name;
}