﻿// JScript File

function widget(i, n)
{
    this.id = i;
    this.name = n;
}

var Widgets = new Array();

function product(i, s, sh, f)
{
    this.id = i;
    this.sku = s;
    this.shortName = sh;
    this.fullName = f;
}

var Products = new Array();

function AddProductToList(lstLeft, lstRight, id, sku, shrt, full, sel)
{
    
    L = document.getElementById(lstLeft);
    R = document.getElementById(lstRight);
    
    Products[Products.length] = new product(id, sku, shrt, full);
    
    if (sel)
        R.options[R.options.length] = new Option(sku, id);
    else
        L.options[L.options.length] = new Option(sku, id);
}


function AddWidgetToList(lstLeft, lstRight, id, nme, sel)
{
    
    L = document.getElementById(lstLeft);
    R = document.getElementById(lstRight);
    
    Widgets[Widgets.length] = new widget(id, nme);
    
    if (sel)
        R.options[R.options.length] = new Option(nme, id);
    else
        L.options[L.options.length] = new Option(nme, id);
}

function AddButtonClicked(lstLeft, lstRight)
{
    L = document.getElementById(lstLeft);
    R = document.getElementById(lstRight);
    
    for (i=L.options.length-1; i>=0; i--)
    {
        if (L.options[i].selected)
        {
            R.options[R.options.length] = new Option(L.options[i].text, L.options[i].value);
            L.options[i] = null;
        }
    }
}

function RemoveButtonClicked(lstLeft, lstRight)
{
    L = document.getElementById(lstLeft);
    R = document.getElementById(lstRight);
    
    for (i=R.options.length-1; i>=0; i--)
    {
        if (R.options[i].selected)
        {
            L.options[L.options.length] = new Option(R.options[i].text, R.options[i].value);
            R.options[i] = null;
        }
    }
}

function ListTypeChanged(lstLeft, lstRight, Type)
{
    L = document.getElementById(lstLeft);
    R = document.getElementById(lstRight);
    
    for (i=0; i<L.options.length; i++)
        SetOptionText(L.options[i], Type);
    
    for (i=0; i<R.options.length; i++)
        SetOptionText(R.options[i], Type);
}

function SelectAll()
{
//alert("Here");
    var R = document.getElementById('lstSel');
    for (i=0; i<R.options.length; i++)
        R.options[i].selected = true;
}

function SetOptionText(opt, Type)
{
    for (x=0; x<Products.length; x++)
    {
        if (Products[x].id == opt.value)
        {
            switch (Type)
            {
                case 'short':
                    opt.text = Products[x].shortName;
                    break;
                case 'full':
                    opt.text = Products[x].fullName;
                    break;
                default:
                    opt.text = Products[x].sku;
                    break;
            }
            break;
        }
    }
}


function createRequestObject() 
{
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer")
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	else
		ro = new XMLHttpRequest();
	return ro;
}

var http = createRequestObject();
			    

function sndReq(action) 
{	
	http = createRequestObject();
	http.open('get', action);
	http.onreadystatechange = handleResponse;
	http.send(null);
}

function handleResponse() 
{
    if(http.readyState == 4){
	    var response = http.responseText;
	    //alert(response);
		if (response.substr(0, 16) == 'ApplicableTypes:')
				loadApplicableTypes(response.substring(16));
	}
}

function GetXMLObject(xml)
{
    var doc;
    if (window.ActiveXObject)
    { 
        doc=new ActiveXObject("Microsoft.XMLDOM");
        doc.async="false";
        doc.loadXML(xml);
    }
    else
    {
        var parser=new DOMParser();
        doc=parser.parseFromString(xml,"text/xml");
    }
    return doc;
}

function drpType_change(drp)
{
    sndReq('/XML/CMSDesk/getApplicableItemTypeData.aspx?ApplicableItemsTypeID=' + drp.value);
}

function loadApplicableTypes(doc)
{
    var xml = GetXMLObject(doc);
    var FieldName = xml.childNodes[0].getAttribute('FieldName');
    var FieldType = xml.childNodes[0].getAttribute('FieldType');
    
    document.getElementById('hidFieldName').value = FieldName;
    document.getElementById('hidFieldType').value = FieldType;
    
    var itms = xml.childNodes[0].childNodes;
    
    var drp = document.getElementById('drpValue')
    
    drp.options.length = 0;
    drp.options[drp.options.length] = new Option("Please select...", "-1");
    for (i=0; i< itms.length; i++)
    {
        var id = itms[i].getAttribute("id");
        var txt = itms[i].getAttribute("text");
        txt = doReplace(txt, '#apostr#', '\'');
        txt = doReplace(txt, '#ampis#', '&');
        id = doReplace(id, '#apostr#', '\'');
        id = doReplace(id, '#ampis#', '&');
        drp.options[drp.options.length] = new Option(id, txt);
        //itms[i].getAttribute("text"));
    }
    drp.value = -1;
}


function doReplace(str, origtext, newtext)
{
    var i = 0
    while (i < str.length)
    {
        if (str.substr(i, origtext.length) == origtext)
        {
            str = str.substr(0, i) + newtext + str.substr(i+origtext.length)
            i += (newtext.length - origtext.length)            
        }
        i++
    }
    return str;
}

function AddProductToDD(dd, id, sku, shrt, full)
{
    Products[Products.length] = new product(id, sku, shrt, full);
    d = document.getElementById(dd);
    d.options[d.options.length] = new Option(sku, id);
}

function DDTypeChanged(dd, Type)
{
    d = document.getElementById(dd);
    
    for (i=0; i<d.options.length; i++)
        SetOptionText(d.options[i], Type);   
}

 function SetDDValue(dd, id)
 {
    d = document.getElementById(dd);
    for (i=0; i<d.options.length; i++)
    {
        if (d.options[i].value == id)
        {
            d.options[i].selected = true;
            break;
        }
    }
 
 }
function SwapListOptions(cntrl, a, b)
{
    var Oa = new Option(cntrl.options[a].text, cntrl.options[a].value);
    var Ob = new Option(cntrl.options[b].text, cntrl.options[b].value);
    cntrl.options[a] = Ob;
    cntrl.options[b] = Oa;
}

function MoveListItemsUp(id)
{
    var d = document.getElementById(id);
    for (i=1; i<d.options.length; i++)
    {
        
        if (d.options[i].selected)
        {
            
            if (!d.options[i-1].selected)
                SwapListOptions(d, i, i-1);
                
            d.options[i-1].selected = true;
        }
    }
}

function MoveListItemsDown(id)
{
    var d = document.getElementById(id);
    for (i=d.options.length-2; i>=0; i--)
    {
        if (d.options[i].selected)
        {
            
            if (!d.options[i+1].selected)
                SwapListOptions(d, i, i+1);
                
            d.options[i+1].selected = true;
        }
    }
}