﻿//***********INDEX.ASPX***********

function setAssemblyDetailsLoc(urlAssemblyImage, urlPartList)
{
	try
    {
        imageHotSpotFunc = null;
        partListHotSpotFunc = null;

        imageWindowIsReady = false;
        partsWindowIsReady = false;
        hotSpotWaiting = null;
        var $PartListFrame = $("iframe.AssemblyDetailPartListIFrm");
        if($PartListFrame.length > 0)
        	$PartListFrame.get(0).src = urlPartList;

        $("iframe.AssemblyDetailImageIFrm").get(0).src = urlAssemblyImage;
    }
    catch (ex)
    {
        alert(ex);
    }
}
//returns the fee parameters pased on the database id

function FeeSchedule(dbID)
{
    this.DatabaseID = dbID;
    matched = false;
    
    for (t = 0; t < dps.TABLE[0].ROW.length; ++t)
    {
        if (dps.TABLE[0].ROW[t].COL[DB_COL].DATA == dbID)
        {
            this.SalesOrganization = dps.TABLE[0].ROW[t].COL[SO_COL].DATA;
            this.PricingGroup = dps.TABLE[0].ROW[t].COL[PG_COL].DATA;
            this.DistributionChannel = dps.TABLE[0].ROW[t].COL[DC_COL].DATA;
            matched = true;
            break;
        }
        if (matched)
			break;
    }
}

//***********ASSEMBLYTREE.ASPX***********

function getBaseHost(object)
{
    var url = object.protocol + "//" + object.host + "/";
    return url;
}


function clearAssemblyFrame(levelCount, sessionID, filepath)
{
    if(parent.setAssemblyDetailsLoc)
        parent.setAssemblyDetailsLoc(filepath + "?count=" + levelCount + "&s1=" + sessionID + "&rnd=" + randomNumberString(8), "blank.htm");

    clearAttachmentListFrame();
}


function clearImageFrame()
{
	var $assemblyDetailImageFrame = $("iframe.AssemblyDetailImageIFrm", parent.document);
	if($assemblyDetailImageFrame.length > 0)
		$assemblyDetailImageFrame.get(0).src = "blank.htm";
}


function clearAttachmentListFrame()
{
	var $attachmentListFrame = $("iframe.AttachmentListIFrm", parent.document);
	if($attachmentListFrame.length > 0)
		$attachmentListFrame.get(0).src = "blank.htm";
}


function fillAttachmentListFrame(languageSpecifier, specifiedLanguage,
                                 displayCatalogId, assemblyID, session,
                                 attachmentListPath)
{
	var locAttachmentList = "AttachmentList.aspx"
	                        + "?s1=" + session
		                    + '&displayCatalog=' + displayCatalogId
		                    + '&assem=' + assemblyID
		                    + '&' + languageSpecifier + '=' + specifiedLanguage;

	$("iframe.AttachmentListIFrm", parent.document).get(0).src = locAttachmentList;
} // end fillAttachmentListFrame()


// fillAssemblyFrames: Called when clicking a part of the drilled down tree in AssemblyTree.aspx
function fillAssemblyFrames(link, languageSpecifier, specifiedLanguage,
                            countryCurrencySpecifier, specifiedCountryCurrency,
                            shopatronCatalogSpecifier, specifiedShopatronCatalog,
                            displayCatalogId, assemblyId, partNumber,
                            session, assemblyImagePath, partListPath, defaultZoom,
                            addToSelectionChain)
{
	try
	{
		if(addToSelectionChain && window.top.selectionChain)
			window.top.selectionChain += ":" + assemblyId;

		if(session.length < 1)
			top.location = getBaseHost(top.location);

		var hiddenObj = document.getElementById("currentAssembly");
		if(hiddenObj.value)
		{
			var oldLink = document.getElementById(hiddenObj.value)
			if(oldLink != null)
			{
				oldLink.className = "assembly";
				oldLink.style.color = "black";
			}
		}

		link.className = "highlightNode";
		link.style.color = "white";

		hiddenObj.value = link.id;

		var locAssemblyImage = assemblyImagePath + 'AssemblyDetailsImage.aspx'
		                       + '?s1=' + session
		                       + '&displayCatalog=' + displayCatalogId
		                       + '&assem=' + assemblyId
		                       + '&zoom=' + defaultZoom
		                       + '&' + languageSpecifier + '=' + specifiedLanguage;
		if(countryCurrencySpecifier != languageSpecifier)
			locAssemblyImage += '&' + countryCurrencySpecifier + '=' + specifiedCountryCurrency;
		if(shopatronCatalogSpecifier != languageSpecifier
		   && shopatronCatalogSpecifier != countryCurrencySpecifier
		   && specifiedShopatronCatalog != null)
		{
			locAssemblyImage += '&' + shopatronCatalogSpecifier + '=' + specifiedShopatronCatalog;
		}

		var locPartsList = partListPath + '/PartList.aspx'
		                   + '?type=MF'
		                   + '&app=SWABECOM'
		                   + '&s1=' + session
		                   + "&displayCatalog=" + displayCatalogId
		                   + '&assem=' + assemblyId
		                   + '&serialGroup=0'
		                   + '&' + languageSpecifier + '=' + specifiedLanguage;
		if(countryCurrencySpecifier != languageSpecifier)
			locPartsList += '&' + countryCurrencySpecifier + '=' + specifiedCountryCurrency;
		if(shopatronCatalogSpecifier != languageSpecifier
		   && shopatronCatalogSpecifier != countryCurrencySpecifier
		   && specifiedShopatronCatalog)
		{
			locPartsList += '&' + shopatronCatalogSpecifier + '=' + specifiedShopatronCatalog;
		}
		if(partNumber)
			locPartsList += '&preselectedPart=' + partNumber;
		parent.setAssemblyDetailsLoc(locAssemblyImage, locPartsList);
	}
	catch (err2)
	{
		alert("fillAssemblyFrames(Error): " + err2);
	}

	return false;
} // end fillAssemblyFrames()


//***********QUERYSTRING.JS***********
function queryStringValue(key, default_)
{
    try {
        if (default_ == null)
            default_ = "";

        key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
        var qs = regex.exec(window.location.search);

        if (qs == null)
            return default_;
        else
            return qs[1];
    }
    catch (err) {
        alert("queryStringValue(Error): " + err);
        return default_;
    }
}


//***********UTILITIES.JS***********
function IsIE()
{
    //This function verified: IE7, Firefox, & Chrome
    var browser = navigator.appName;
    if (browser == "Microsoft Internet Explorer")
        return true;
    else
        return false;
}


function randomNumberString(length)
{
    var randStr = "";
    for (var i = 0; i < length; i++)
        randStr += Math.floor(Math.random() * 10);
    return randStr;
}

//***********PARTROWFUNC.JS***********

//GENERIC LIGHTBOX LAUCHER
function launchPopupRandomized(url, closeText)
{
    if (url.indexOf("?") < 0)
        launchPopup(url + "?rnd=" + randomNumberString(8), closeText);
    else
        launchPopup(url + "&rnd=" + randomNumberString(8), closeText);
}

function launchPopupRandomizedSpecificWidth(url, width, closeText)
{
	if (url.indexOf("?") < 0)
    {
        //		alert("less");
        launchPopupSpecificWidth(url + "?rnd=" + randomNumberString(8), width, closeText);
    }
    else
    {
        //		alert("More");
        launchPopupSpecificWidth(url + "&rnd=" + randomNumberString(8), width, closeText);
    }
}

function launchPopup(url, closeText)
{
    parent.DetailPopup(url, closeText);
}

function launchPopupSpecificWidth(url, width, closeText)
{
    parent.DetailPopupSpecificWidth(url, width, closeText);
}

//SPECIFIC LIGHTBOX LAUCHER(S)
function launchDetails(cultureName, assembly, language_id, currency_id, part)
{
    var url = "detail.aspx"
            + "?c=" + cultureName
            + "&language_id=" + language_id
            + "&currency_id=" + currency_id
            + "&part=" + part
            + "&cart=no";
    parent.DetailPopup(url, null);
}

function launchLegend(filepath)
{
    var url = filepath;
    parent.DetailPopupSized(url, 540, 380, true, "X");
}

function launchSpecialtySearch(part)
{
    var url = 'specialtysearch.aspx?part=' + part;
    parent.DetailPopup(url, null);
}

function launchError(errNumber, severity)
{
    var url = "Error.aspx"
	        + "?errnum=" + errNumber
	        + "&severity=" + severity;
    alert("url: " + url);
    parent.DetailPopup(url, null);
}

function launchAddToCart(part, quantity)
{
    var url = 'detail.aspx?part=' + part + '&cart=yes&q1=' + quantity;
    parent.DetailPopup(url, null);
}

function centerWindow(url, title, width, height, options)
{
    var wind;

    if (document.all)
        var xMax = screen.width, yMax = screen.height;
    else if (document.layers)
        var xMax = window.outerWidth, yMax = window.outerHeight;
    else
        var xMax = 640, yMax = 480;

    var xOffset = (xMax - width) / 2, yOffset = (yMax - height) / 2;

    var d, s = "Rnd=";
    d = new Date();
    s += d.getTime();

    if (url.indexOf("?") > 0)
        url = url + "&" + s;
    else
        url = url + "?" + s;

    wind = window.open(url, '', 'width=' + width + ',height=' + height + ',screenX=' + xOffset + ',screenY=' + yOffset + ', top=' + yOffset + ',left=' + xOffset + ',' + options);
    //wind = window.open(url,title, 'width=' + width + ',height=' + height + ',screenX='+xOffset+',screenY='+yOffset+', top='+yOffset+',left='+xOffset+',' + options);

    return wind;
}

function stringTrim(str)
{
    var newStr = str.replace(/^\s\s*/, '');
    var whiteSpace = /\s/;
    var i = newStr.length;
    while (whiteSpace.test(newStr.charAt(--i)))
        ;
    return newStr.slice(0, i + 1);
}

function getPath(doc)
{
    var path;
    path = doc.location.href;
    path = path.substring(0, path.lastIndexOf("/"));

    return path;
}

function showSuper(doc, part, catID, sessID)
{
    var cc = centerWindow(getPath(doc) + "/supersession.asp"
	                      + "?partnumber=" + part
	                      + "&catID=" + catID
	                      + "&sessID=" + sessID,
	                      "Supersession", 650, 550, "scrollbars=yes, resizable=yes");
}

