
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;

//javascript
var init = function(){
	YAHOO.util.Event.addListener('enterCard', 'click', clearText);
	YAHOO.util.Event.addListener('goBtn', 'click', send);
	YAHOO.util.Event.addListener('goBtn', 'click', send);
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('fraudSymbol'), 'click', swapSymbol);
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('faqSymbol'), 'click', swapFaqSymbol);
	cleanMinus();
	cleanFaqMinus();
	YAHOO.util.Event.addListener('CreditBureaus', 'click', cleanMinus);
	YAHOO.util.Event.addListener('GovernmentAuthorities', 'click', cleanMinus);
	YAHOO.util.Event.addListener('OtherFraudContacs', 'click', cleanMinus);
};

function swapSymbol () {
	var changeToMinus = this.style.background.indexOf("btn_open.gif") != -1;
	cleanMinus ();
    cleanFaqMinus();
    if(changeToMinus)
		this.style.background = "url(../assets/images/btn_close.gif) 662px 8px no-repeat";
}

function swapFaqSymbol () {
	var changeToMinus = this.style.background.indexOf("img_plus.gif") != -1;
	cleanFaqMinus ();
	if(changeToMinus)
		this.style.background = "url(../assets/images/img_minus.gif) 0 3px no-repeat";
}

function cleanMinus () {
	var headers = YAHOO.util.Dom.getElementsByClassName('fraudSymbol');
	for(var i = 0; i < headers.length; i++) {
		headers[i].style.background = "url(../assets/images/btn_open.gif) 662px 8px no-repeat";
	}
}

function cleanFaqMinus () {
	var headers = YAHOO.util.Dom.getElementsByClassName('faqSymbol');
	for(var i = 0; i < headers.length; i++) {
		headers[i].style.background = "url(../assets/images/img_plus.gif) 0 3px no-repeat";
	}
}

function extractIssuer(url) {
    var regexS = "[\\?&]" + "issuer" + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    if( results == null || results[1] == "")
        return null;
    else
        return results[1];
}

function clearText(){
    this.value = "";
    document.getElementById("errorMessage").style.display = "none";
}

function send(event) {
    omniture.SendBeacon("cards_services_link_cardnumbersubmit", {});
    var providerForm = Dom.get("form1");
    providerForm.action = "/mod-perl/bin.pl";
    providerForm.submit();
    //selectIssuer(BIN);
    return true;
}

function selectIssuer(issuerNumber) {
    switch (issuerNumber) {
        case "1": // American Express
            openAccordion("AMEX");
            break;

        case "2": //display BAC message
        	displayMessage('bac');
        	break;

        case "3": // CityBank
            openAccordion("CITY");
            break;

		case "4":
		case "5":
		case "6":
		case "7":
		case "8":
		case "9":
			displayMessage('other');
			break;

        case "10": // USSA
            openAccordion("USAA");
            break;

        case "12": // Bank of America
            openAccordion("BOA");
            break;

        case "13": // GE Money
            openAccordion("GEMO");
            break;

        default:
            displayMessage('error');
            break;
    }
}

function displayMessage(id) {
    document.getElementById(id + "Message").style.display = "block";
}

function openAccordion(id) {
    var accordions = YAHOO.util.Dom.getElementsByClassName('contentDiv','li');

    for (var i = 0; i < accordions.length; i++) {
        if(isAccordionOpen(accordions[i])) {
            closeAccordion(accordions[i], false, null);
        }
    }

    var accordionHeader = Dom.get(id);
    var accordionBody = getNextSibling(accordionHeader);
    var accordionEffect = new YAHOO.widget.Effect(accordionBody.id);

    Dom.addClass(accordionBody,'foo');
    accordionEffect.BlindDown();
    sendOpenOmniture(id);
}

function closeAccordion(accordion, sendOmniture, id) {
    Dom.removeClass(accordion, "foo");
    var accordionEffect = new YAHOO.widget.Effect(accordion.id);
    accordionEffect.BlindUp();
    if(sendOmniture)
        sendCloseOmniture(id);
}

function getIssuerFromH2(element) {
    return element.parentNode.id;
}

function openCloseAccordion(id) {
    var accordion = findAccordion(id);
    var accordionBody = getNextSibling(accordion);
    if(isAccordionOpen(accordionBody)) {
        closeAccordion(accordionBody, true, id);
    }
    else {
        openAccordion(id);
    }
}

function findAccordion(id) {
    var accordions = YAHOO.util.Dom.getElementsByClassName('control','li');

    for (var i = 0; i < accordions.length; i++) {
        if(accordions[i].id == id)
            return accordions[i];
    }
    return null;
}

function isAccordionOpen(accordion) {
    return Dom.hasClass(accordion, "foo");
}

YAHOO.util.Event.addListener(window, 'load', init);

function sendOpenOmniture(id) {
    switch (id) {
        case "AMEX": // American Express
            omniture.SendBeacon("cards_services_link_openamex", {});
            break;

        case "CITY": // CityBank
            omniture.SendBeacon("cards_services_link_openciti", {});
            break;

        case "USAA": // USSA
            omniture.SendBeacon("cards_services_link_openusaa", {});
            break;

        case "BOA": // Bank of America
            omniture.SendBeacon("cards_services_link_openbac", {});
            break;

        case "GEMO": // GE Money
            omniture.SendBeacon("cards_services_link_opengemo", {});
            break;

        case "cardServicesFaqs01":
            omniture.SendBeacon("cards_services_link_whocontactforaccount", {});
            break;

        case "cardServicesFaqs02":
            omniture.SendBeacon("cards_services_link_whatdiff", {});
            break;

        case "ExamplesCreditCardFraud":
            omniture.SendBeacon("fraud_protection_link_open_fraudexamples", {});
            break;

        case "HowToPreventFraud":
            omniture.SendBeacon("fraud_protection_link_open_preventfraud", {});
            break;

        case "ExamplesIdentityTheft":
            omniture.SendBeacon("fraud_protection_link_open_theftexamples", {});
            break;

        case "PreventingIdentityTheft":
            omniture.SendBeacon("fraud_protection_link_open_preventidtheft", {});
            break;

        case "DetectingIdentityTheft":
            omniture.SendBeacon("fraud_protection_link_open_detectidtheft", {});
            break;

        case "RestoringYourGoodName":
            omniture.SendBeacon("fraud_protection_link_open_restorename", {});
            break;

    }
}


function sendCloseOmniture(id) {
    switch (id) {
        case "AMEX": // American Express
            omniture.SendBeacon("cards_services_link_closeamex", {});
            break;

        case "CITY": // CityBank
            omniture.SendBeacon("cards_services_link_closeciti", {});
            break;

        case "USAA": // USSA
            omniture.SendBeacon("cards_services_link_closeusaa", {});
            break;

        case "BOA": // Bank of America
            omniture.SendBeacon("cards_services_link_closebac", {});
            break;

        case "GEMO": // GE Money
            omniture.SendBeacon("cards_services_link_closegemo", {});
            break;
    }
}