/*
**	jscript.js - Java scripts for FarrierForms Web Site
**
**	Revision History
**		Date		Initials	Description
**		--------------------------------------------
**		05/01/02	MJE		Initial Creation
**						    Added to_page function for navigation
**      01/11/02    MJE     Modified to work with Farrierforms website
**
*/


/*
**	Name: popup
**	Parameter: mylink, windowname
**	Purpose: Popup another browser with mylink
*/
function popup(mylink, windowname)
{
	if (! window.focus)return true;
	var href;
	if (typeof(mylink) == 'string')
		href=mylink;
	else
		href=mylink.href;

	window.open(href, windowname, 'width=550,height=600,scrollbars=yes');
	return false;
}


/*
**	Name: getSelectValue
**	Parameter: selectObject - Select object to get value from
**	Purpose: Helper function to get value of select object passed in
*/
function getSelectValue( selectObject )
{
	return selectObject.options[selectObject.selectedIndex].value;
}


function showCheckOutErrMsg()
{
	var strErr = "";
	strErr = "Please make sure all the required form elements (ones with red labels)\n";
	strErr += "are filled in and that all email addresses are correctly specified.\n";;
	strErr += "For example: me@myisp.com or me@myisp.net.";

	alert(strErr);
}

function showConfirmErrMsg()
{
	var strErr = "";

	strErr = "Please make sure Credit card type, Name-on-card, Card-Number, and ";
	strErr += "Expiration Month/Year are correctly filled out.";

	alert(strErr);
}

/*
**	Name: initObjects
**	Parameter: None.
**	Purpose: Initializes all forms	
*/
function initObjects()
{
	/* formArray = new Array(); */
}

/*
**	Name: initCheckOutShipObjects
**	Parameter: None.
**	Purpose: Initializes all Checkout Form Objects
**	Used in Checkout_custinfo.html
*/
function initCheckOutObjects()
{
	formCheckOutArray = new Array();

	// Ship Textboxes
	formCheckOutArray[0] = window.frmCheckOut.ShipFirstName;
   	formCheckOutArray[1] = window.frmCheckOut.ShipLastName;
    formCheckOutArray[2] = window.frmCheckOut.ShipPhone;
    formCheckOutArray[3] = window.frmCheckOut.ShipAddress;
    formCheckOutArray[4] = window.frmCheckOut.ShipCity;
    formCheckOutArray[5] = window.frmCheckOut.ShipZip;

	// Bill Textboxes
    formCheckOutArray[6] = window.frmCheckOut.BillFirstName;
    formCheckOutArray[7] = window.frmCheckOut.BillLastName;
	formCheckOutArray[8] = window.frmCheckOut.BillPhone;
    formCheckOutArray[9] = window.frmCheckOut.BillAddress;
    formCheckOutArray[10] = window.frmCheckOut.BillCity;
    formCheckOutArray[11] = window.frmCheckOut.BillZip;

	// Ship Combos
	formCheckOutArray[12] = window.frmCheckOut.ShipStateSelect;
	formCheckOutArray[13] = window.frmCheckOut.ShipCountry;

	// Bill Combos
    formCheckOutArray[14] = window.frmCheckOut.BillStateSelect;
	formCheckOutArray[15] = window.frmCheckOut.BillCountry;

	// Emails
	formCheckOutArray[16] = window.frmCheckOut.ShipEmail;
    formCheckOutArray[17] = window.frmCheckOut.BillEmail;
    
    // Email
    formCheckOutArray[18] = window.frmCheckOut.chkBillDiff;
}

/*
**	Name: initConfirmObjects
**	Parameter: NA.
**	Purpose: Initializes frmConfirm Objects
**	Used: Checkout_confirm.html
*/
function initConfirmObjects()
{
	formConfirmArray = new Array();

	formConfirmArray[0] = window.frmConfirm.CardType;
	formConfirmArray[1] = window.frmConfirm.NameOnCard;
	formConfirmArray[2] = window.frmConfirm.CardNumber;
	formConfirmArray[3] = window.frmConfirm.CardExpireMonth;
	formConfirmArray[4] = window.frmConfirm.CardExpireYear;
}


/*
**	Name: isSelected
**	Parameter: combobox - Combobox to be validated.
**	Purpose: Validates frmCheckOut form elements
**	Used: Checkout_custinfo.html
*/
function isSelected(combobox)
{
	var selVal = getSelectValue(combobox);

	if( selVal == "" || selVal == null ) {
		return false;
	} else {
		return true;
	}
}

/*
**	Name: CheckOutFormIsValid
**	Parameter: None.
**	Purpose: Validates frmCheckOut form elements
**	Used: Checkout_custinfo.html
*/
function ConfirmFormIsValid()
{
	for(i=1 ; i<=2 ; i++)
	{
		if( isFilled( formConfirmArray[i] ) == false )
		{
			showConfirmErrMsg();
			return false;
		}
	}

	for(i=3 ; i<=4 ; i++)
	{
		if( isSelected( formConfirmArray[i] ) == false )
		{
			showConfirmErrMsg();
			return false;
		}
	}

	//alert("Confirm is valid");
	return true;
}

/*
**	Name: CheckOutFormIsValid
**	Parameter: None.
**	Purpose: Validates frmCheckOut form elements
**	Used: Checkout_custinfo.html
*/

function CheckOutFormIsValid()
{
	//alert("Hello From FormIsValid()");

	if( !formCheckOutArray[18].checked )
	{
		for(i=0 ; i<=11 ; i++)
		{
			//Debug - alert( i + formCheckOutArray[i].value );
			if( isFilled(formCheckOutArray[i]) == false ) {
				showCheckOutErrMsg();
				return false;
			}
		}

		for(i=12 ; i<=15 ; i++)
		{
			// Debug - alert(i + getSelectValue(formCheckOutArray[i]));
			if( isSelected(formCheckOutArray[i]) == false ) {
				showCheckOutErrMsg();
				return false;
			}
		}

		for(i=16 ; i<=17 ; i++)
		{
			// Debug - alert( i + formCheckOutArray[i].value );
			if( isEmail(formCheckOutArray[i]) == false ) {
				showCheckOutErrMsg();
				return false;
			}
		}
	} else {
	    //alert("Hello from else");

		for(i=0 ; i<=5 ; i++)
        {
			// Debug - alert( formCheckOutArray[i].value );
            if( isFilled(formCheckOutArray[i]) == false ) {
                showCheckOutErrMsg();
                return false;
            }
        }

		for(i=12 ; i<=13 ; i++)
        {
			// Debug - alert(getSelectValue(formCheckOutArray[i]));
            if( isSelected(formCheckOutArray[i]) == false ) {
                showCheckOutErrMsg();
                return false;
            }
        }

		// Debug - alert(formCheckOutArray[16].value);
        if( isEmail(formCheckOutArray[16]) == false ) {
            showCheckOutErrMsg();
            return false;
        }
	}

	return true;
}

/*
**	Name: isFilled
**	Parameter: elem - Form element to be checked for validity.
**	Purpose: Validates frmCheckOut form elements
**	Used: Checkout_custinfo.html
*/
function isFilled(elem)
{
	if( elem.value == "" || elem.value == null ) {
		return false;
	} else {
		return true;
	}
}


/*
**	Name: isEmail
**	Parameter: elem - Form element to be checked for validity.
**	Purpose: Validates frmCheckOut form elements
**	Used: Checkout_custinfo.html
*/
function isEmail(elem)
{
	if( elem.value.indexOf("@") != "-1" &&
		elem.value.indexOf(".") != "-1" && elem.value != "" ) {
		return true;
	} else {
		return false;
	}
}


/*
**	Name: to_page
**	Parameter: newLocation, is a string name of new page to go to.
**	Purpose: Navigate from one page to newLocation page preserving SCID
*/
function to_page( newLocation )
{
         var strURL = "";
         var ShopCartId = null;
         ShopCartId = window.document.frmMaster.SCID.value;
         
         //ShopCartId = -1;
         strURL = "http://www.farrierforms.com/cgi-bin/genpg?";
         strURL += "SCID=";
         strURL += ShopCartId;
         strURL += "&SCREEN=";
         strURL += newLocation;

         window.document.location.href = strURL;
         //alert(strURL);
}


/*
**	Name: Add2Cart
**	Parameter: index - index into formArray for appropriate form (Collection of forms) 
**	Purpose: Adds product to shopping cart 
*/
function Add2Cart( index )
{
	var strURL = "";
	var ShopCartId = null;
	var prodBase = "";
	var prodSize = "";
	var prodOption = "";
	var flagOption = -1;
	var valid = 1;
	var qty = 0;
	var prodList = "";
	var strError = "";
	var prodCode = "";
	var screen = "";

    // Navigation branching for products
    switch( index )
    {
        case 0:
             formVar = window.document.frmOrganizer;
             break;
        case 1:
             formVar = window.document.frmOrganizerRefill;
             break;
        case 2:
             formVar = window.document.frmInvoices;
             break;
        case 3:
             formVar = window.document.frmClientLate;
             break;
        case 4:
             formVar = window.document.frmFromFarrier;
             break;
        case 5:
             formVar = window.document.frmAppointment;
             break;
        case 6:
             formVar = window.document.frmFirstTrim;
             break;
        case 7:
             formVar = window.document.frmTakeMore;
             break;
    };

	qty = formVar.qtyTxt.value;
	prodBase = formVar.prodCodeBase.value;
	flagOption = formVar.prodHasOption.value;
	ShopCartId = window.document.frmMaster.SCID.value;
	screen = formVar.screen.value;

	if( isNaN(qty) == true || qty == "" || prodBase == "NA" || qty == 0 )
	{
		valid *= 0;
	}

	if( flagOption == 1 )
	{
		prodOption = getSelectValue(formVar.prodCodeOption);
		if( prodOption == "NA" )
		{
			valid *= 0;
		}
	}

	if( valid == 0 )
	{
		strError = "Please make sure you entered a valid number in the quantity box.  Also, ";
		strError += "make sure you choose the desired options such as color or style when applicable. ";

		alert(strError);
	} else {
		prodCode = prodBase;
		//prodCode += "-";
		//prodCode += prodSize;

		if( flagOption == 1 )
		{
			prodCode += "-";
			prodCode += prodOption;
		}

		strURL = "http://www.farrierforms.com/cgi-bin/alter_cart?";
		strURL += "SCID=";
		strURL += ShopCartId;
		strURL += "&SCREEN=";
		strURL += screen;
		strURL += "&SC_ACTION=ADD";
		strURL += "&PLIST=";
		strURL += prodCode;
		strURL += ":";
		strURL += qty;

		//alert(strURL);
		// Frame Version
		window.document.location.href = strURL;
	}
}

/*
**	Name: to_shopcart()
**	Parameter: NA
**	Purpose: Views Products in shopping cart
*/
function to_shopcart()
{
	var strURL = "";
	var ShopCartId = null;
	ShopCartId = window.document.frmMaster.SCID.value;

	strURL = "http://www.farrierforms.com/cgi-bin/2shopcart?";
	strURL += "SCID=";
	strURL += ShopCartId;

    // Frame version
   	//alert(strURL);
	window.document.location.href=strURL;
}

/*
**	Name: to_checkout()
**	Parameter: NA
**	Purpose: Javascript function to take you to the checkout section
*/
function to_checkout()
{
	var strURL = "";
	var ShopCartId = null;
	ShopCartId = window.document.frmMaster.SCID.value;

	strURL = "http://www.farrierforms.com/cgi-bin/2checkout?";
	strURL += "SCID=";
	strURL += ShopCartId;

    //alert(strURL);
	window.document.location.href=strURL;
}

//
// Rolling Images on NAV Bar
//

// Function to switch the images
function rollImage(img, type)
{
    // Over Images
    var overImg = new Array();
    overImg[0] = new Image(115,35);
    overImg[1] = new Image(115,35);
    overImg[2] = new Image(115,35);
    overImg[3] = new Image(115,35);
    overImg[4] = new Image(115,35);
    overImg[5] = new Image(115,35);
    overImg[6] = new Image(100,86);

    overImg[0].src = "http://www.farrierforms.com/images/organizer-on.gif";
    overImg[1].src = "http://www.farrierforms.com/images/refill-on.gif";
    overImg[2].src = "http://www.farrierforms.com/images/invoices-on.gif";
    overImg[3].src = "http://www.farrierforms.com/images/accessories-on.gif";
    overImg[4].src = "http://www.farrierforms.com/images/art-on.gif";
    overImg[5].src = "http://www.farrierforms.com/images/distributors-on.gif";
    overImg[6].src = "http://www.farrierforms.com/images/home.jpg";

    // Off Images
    var outImg = new Array();
    outImg[0] = new Image(115,35);
    outImg[1] = new Image(115,35);
    outImg[2] = new Image(115,35);
    outImg[3] = new Image(115,35);
    outImg[4] = new Image(115,35);
    outImg[5] = new Image(115,35);
    outImg[6] = new Image(100,86);

    outImg[0].src = "http://www.farrierforms.com/images/organizer-off.gif";
    outImg[1].src = "http://www.farrierforms.com/images/refill-off.gif";
    outImg[2].src = "http://www.farrierforms.com/images/invoices-off.gif";
    outImg[3].src = "http://www.farrierforms.com/images/accessories-off.gif";
    outImg[4].src = "http://www.farrierforms.com/images/art-off.gif";
    outImg[5].src = "http://www.farrierforms.com/images/distributors-off.gif";
    outImg[6].src = "http://www.farrierforms.com/images/home.jpg";

    // Buttons objects for the NAV bar
    var buttons = new Array();
    buttons[0] = button0;
    buttons[1] = button1;
    buttons[2] = button2;
    buttons[3] = button3;
    buttons[4] = button4;
    buttons[5] = button5;
    buttons[6] = button6;

    switch( type )
    {
    	case "over":
    	     buttons[img].src = overImg[img].src;
    	     break;

        case "out":
             buttons[img].src = outImg[img].src;
    	     break;
    }
}


