/* -------------------------
OrderBox Javascript Utils
------------------------- */

/*
Dynamic Shadow Wrapper
----------------------
*/

function wrapperShadow()
{

    var oldDiv = 'box-wrapper';
    var newDiv = 'box-wrapper-shadow';

    //rename css from box-wrapper to box-wrapper-shadow
    var divobj = document.getElementsByTagName("div");
    l = divobj.length;
    for (i = 0; i < l; i++)
    {
        if ((divobj[i].className.indexOf(' ') != -1) && (divobj[i].className.indexOf(oldDiv) != -1)) //Check if multiple classes
        {
            var divobjarr = divobj[i].className.split(' ');
            for (darr = 0; darr < divobjarr.length; darr++)
            {
                if (divobjarr[darr] == oldDiv)
                {
                    var cl = divobj[i].className.replace(oldDiv, newDiv);
                    ;
                    divobj[i].className = cl;
                    break;
                }
            }
        }
        else if (divobj[i].className == oldDiv)
        {
            divobj[i].className = newDiv;
        }
    }

    // end renaming


    //create new div with box-wrapper class
    l = l * 2;

    for (i = 0; i < l; i++)
    {

        if (divobj[i])
        {

            if ((divobj[i].className.indexOf(' ') != -1) && (divobj[i].className.indexOf(newDiv) != -1)) // Check if Multiple class
            {
                var divobjarr = divobj[i].className.split(' ');
                var clnames = "";
                for (darr = 0; darr < divobjarr.length; darr++)
                {
                    if (divobjarr[darr] == newDiv)
                    {
                        var divcontent = divobj[i].innerHTML;
                        divobj[i].innerHTML = '';
                        var newdiv = document.createElement('div');
                        var newdiv1 = divobj[i].appendChild(newdiv);
                        newdiv1.className = oldDiv;
                        newdiv1.innerHTML = divcontent;
                    }
                    else
                    {
                        clnames = clnames + " " + divobjarr[darr];
                    }

                }
                newdiv1.className = oldDiv + clnames;
                divobj[i].className = newDiv;
            }
            else if (divobj[i].className == newDiv)
            {
                var divcontent = divobj[i].innerHTML;
                divobj[i].innerHTML = '';
                var newdiv = document.createElement('div');
                var newdiv1 = divobj[i].appendChild(newdiv);
                newdiv1.className = oldDiv;
                newdiv1.innerHTML = divcontent;
            }

        }
    }
}


/*
Styling DataTables
---------------------
*/

function PrettyDataTables()
{
    if (!document.createTextNode)
    {
        return;
    }
    var tableClass = 'pretty';
    var colourClass = 'enhancedtablecolouredrow';
    var hoverClass = 'enhancedtablerowhover';
    var activeClass = 'enhancedtableactive';
    var alltables,bodies,i,j,k,addClass,trs,c,a;
    alltables = document.getElementsByTagName('table');
    for (k = 0; k < alltables.length; k++)
    {
        if (!alltables[k].className.match(tableClass))
        {
            continue;
        }
        bodies = alltables[k].getElementsByTagName('tbody');
        for (i = 0; i < bodies.length; i++)
        {
            trs = bodies[i].getElementsByTagName('tr')
            for (j = 0; j < trs.length; j++)
            {
                if (trs[j].getElementsByTagName('td').length > 0)
                {
                    addClass = j % 2 == 0?' ' + colourClass:'';
                    trs[j].className = trs[j].className + addClass;
                    trs[j].onclick = function()
                    {
                        if (this.className.match(activeClass))
                        {
                            var rep = this.className.match(' ' + activeClass)?' ' + activeClass:activeClass;
                            this.className = this.className.replace(rep, '');
                        }
                        else
                        {
                            this.className += this.className?' ' + activeClass:activeClass;
                        }
                    }
                    trs[j].onmouseover = function()
                    {
                        this.className = this.className + ' ' + hoverClass;
                    }
                    trs[j].onmouseout = function()
                    {
                        var rep = this.className.match(' ' + hoverClass)?' ' + hoverClass:hoverClass;
                        this.className = this.className.replace(rep, '');
                    }
                }
            }
        }
    }
}

/*
HighLighting Input Boxes
------------------------
*/

function hasSupport()
{
    var ie55 = /msie 5\.[56789]/i.test(navigator.userAgent);
    return ( typeof document.implementation != "undefined" &&
             document.implementation.hasFeature("html", "1.0") || ie55 );
}

var fade = null;
var unfade = null;

function icolorfade()
{
    fade.className = 'text-input-on';
}

function icolorunfade()
{
    unfade.className = 'text-input';
}

function WebInput(el)
{
    if (!hasSupport() || el == null) return;
    this.element = el;

    // hook up events, using DOM0
    var oThis = this;
    this.element.onfocus = function ()
    {
        WebInput.Over(oThis);
    };
    this.element.onblur = function ()
    {
        WebInput.Out(oThis);
    };
}

WebInput.Over = function (tabpage)
{
    fade = tabpage.element;
    icolorfade();
};

WebInput.Out = function (tabpage)
{
    unfade = tabpage.element;
    icolorunfade();

};

function init_inputs()
{
    if (! hasSupport())
    {
        return;
    }
    var all = document.getElementsByTagName('INPUT');
    var l = all.length;

    for (var i = 0; i < l; i++)
    {
        var el = all[i];
        if (el.type == "text" || el.type == "password")
        {
            new WebInput(el);
            //el.onfocus = function () { this.className='text-input-on'; };
        }
    }

    var all = document.getElementsByTagName('TEXTAREA');
    var l = all.length;

    for (var i = 0; i < l; i++)
    {
        var el = all[i];
        new WebInput(el);
       //el.onfocus = function () { this.className='text-input-on'; };
    }
}
//end sub

/*
HighLight Input Boxes with Errors
*/

function changeborder()
{
var tableClass = 'datatable';
var errorClass = 'form-error-txt';
var borderstyle = 'solid 1px #FF0000';
var selectcolor = '#FFE1E1';

	var searchtags=Array('INPUT', 'SELECT', 'TEXTAREA')

	var tabl = document.getElementsByTagName('table');

	for (var t = 0; t < tabl.length; t++)
	{
		if (tabl[t].className == tableClass)
		{
			var tdarr = tabl[t].getElementsByTagName('td');

			for (var i = 0; i < tdarr.length; i++)
			{
				if (tdarr[i].innerHTML.indexOf(errorClass) != -1)
				{
					for (s=0; s < searchtags.length; s++)
					{
						var obj = tdarr[i].getElementsByTagName(searchtags[s])
						for (j=0; j < obj.length; j++)
						{
							if(searchtags[s]=='SELECT')
							{
								obj[j].style.backgroundColor=selectcolor;
							}
							else if((obj[j].type != 'checkbox') && (obj[j].type != 'radio'))
							{
								obj[j].style.border = borderstyle;

							}
						}
					}
				}
			}
		}
	}
}