function Trim(TRIM_VALUE){
		if(TRIM_VALUE.length < 1){
		return "";
		}
		TRIM_VALUE = RTrim(TRIM_VALUE);
		TRIM_VALUE = LTrim(TRIM_VALUE);
		if(TRIM_VALUE==""){
		return "";
		}
		else{
		return TRIM_VALUE;
		}
		} //End Function

		function RTrim(VALUE){
		var w_space = String.fromCharCode(32);
		var v_length = VALUE.length;
		var strTemp = "";
		if(v_length < 0){
		return"";
		}
		var iTemp = v_length -1;

		while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
		strTemp = VALUE.substring(0,iTemp +1);
		break;
		}
		iTemp = iTemp-1;

		} //End While
		return strTemp;

		} //End Function

		function LTrim(VALUE){
		var w_space = String.fromCharCode(32);
		if(v_length < 1){
		return"";
		}
		var v_length = VALUE.length;
		var strTemp = "";

		var iTemp = 0;

		while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
		strTemp = VALUE.substring(iTemp,v_length);
		break;
		}
		iTemp = iTemp + 1;
		} //End While
		return strTemp;
} //End Function

function roundNum(num) {
	return num.toFixed(2);
}


function reload_page(){
	var sURL = unescape(window.location.pathname);
	window.location.replace( sURL );
}

function go_page(where){
	window.location.replace( sURL );
}

function clear_element(id){
	if(document.getElementById(id)){
	document.getElementById(id).innerHTML = '';
	}
}

//preload loading images
loading_image_s = new Image();
loading_image_s.src = "/images/loading.gif";

loading_image_b = new Image();
loading_image_b.src ="/images/loading_b.gif";


function getElementsByClassName(clsName)
{
	var arr = new Array();
	var elems = document.getElementsByTagName("*");
	for ( var cls, i = 0; ( elem = elems[i] ); i++ )
	{
		if ( elem.className == clsName )
		{
			arr[arr.length] = elem;
		}
	}
	return arr;
}

function hideElementsByClassName(clsName)
{

        var elems = document.getElementsByTagName("*");
        for ( var cls, i = 0; ( elem = elems[i] ); i++ ){
                if ( elem.className == clsName )
                {
                    elem.style.display='none';
                }
        }
}
function showElementsByClassName(clsName)
{

        var elems = document.getElementsByTagName("*");
        for ( var cls, i = 0; ( elem = elems[i] ); i++ ){
                if ( elem.className == clsName )
                {
                    elem.style.display='block';
                }
        }
}

function clear_highlight(clsName, color){
	var arr = getElementsByClassName(clsName) ;
	for( var i, i = 0; i < arr.length; i++){
		arr[i].style.backgroundColor = color;
	}
}

function clear_border(clsName, style){
	var arr = getElementsByClassName(clsName) ;
	for( var i, i = 0; i < arr.length; i++){
		arr[i].style.border = style;
	}
}

function highlight(idName , color){
	var arr = document.getElementById(idName) ;
	arr.style.backgroundColor = color;
}

function highlight_border(idName , style){
	var arr = document.getElementById(idName) ;
	arr.style.border = style;
}

function set_warning(target, msg){
	clear_element(target);
	var newImg=document.createElement("img")
	newImg.src = "/images/warning.gif";
	var newtext=document.createTextNode(msg);
	document.getElementById(target).appendChild(newImg)

	document.getElementById(target).appendChild(newtext)
}


// Absolute Positions
function getAbsPos(obj) {
	var curleft = curtop = 0;
    var height = obj.offsetHeight
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
    curtop = curtop + height;
	return [curleft,curtop];
}

// Relative Positions
function getOffLeft(el){
  return el.offsetLeft;
}

function getOffTop(el){
  return el.offsetTop;
}

//needs prototype.js
function getPosition(obj)
{
    var curleft = curtop = 0;
    var position = Position.cumulativeOffset(obj);
    var scrollY = document.body.scrollTop ?
        document.body.scrollTop : document.documentElement.scrollTop;
    var viewHeight = (navigator.userAgent.toLowerCase().indexOf("safari") != -1 &&
        window.innerHeight) ? window.innerHeight :
            document.documentElement.clientHeight;
    curleft = position[0];
    var popupTop = position[1] + Element.getHeight(obj);
    curtop = popupTop;
    return [curleft,curtop];
}

function createQtyContainer(id,from,to,rule,current,width,submit)
{
    //addOnloadEvent("function() { var _qtycontainer = document.createElement('DIV');_qtycontainer.id = 'qtycontainer';document.body.appendChild(_qtycontainer);}");
    var _container = document.createElement("DIV");
    _container.id = "qty_div_" + id;
    _container.style.zIndex = 100;
    _container.style.display = "none";
    _container.style.position = "absolute";
    _container.style.backgroundColor = "white";
    _container.style.border = "1px solid #cccccc";
    _container.style.borderTop = "0px";
    _container.onclick = function()
    {
        if (typeof timer != 'undefined')
        {
            clearTimeout(timer);
        }
        this.style.display = "none";
    }

    //
    // The rule isn't allowed to display more significant digits than actually
    // are in the item.
    var rule_decimal_places = 0;
    var rule_parts = String(rule).split('.');
    if (rule_parts.length > 1) {
        rule_decimal_places = rule_parts.pop().length;
    }
    for (i = from; i<=to; i=i+rule)
    {
        var selColor = (i == current)? '#0000ee':'#ffffff';
        var _option =  document.createElement("DIV");
        _option.style.color = "#000000";
        _option.style.margin = "0px";
        _option.style.padding = "1px";
        _option.style.backgroundColor = selColor;
        _option.style.width = width + "px";
        _option.innerHTML = Number(i).toFixed(rule_decimal_places);
        _option.onclick = function()
        {
              if (typeof timer != 'undefined')
              {
                clearTimeout(timer);
              }
              var txt=document.getElementById('qty_text_' + id);
              txt.value=this.innerHTML;
              if (submit)
              {
                HTML_AJAX.formSubmit(txt.form, "basket");
                clear_element("shop_msg");
              }
        }

        _option.onmouseover = function()
        {
             this.style.backgroundColor="#0000ee";
        }
        _option.onmouseout = function()
        {
              this.style.backgroundColor="#ffffff";
        }
        _container.appendChild(_option);
    }

   var qty_placeholder = document.getElementById('qty_placeholder');
   if (qty_placeholder)
   {
        qty_placeholder.appendChild(_container);
   }
}

function addOnloadEvent(fnc)
{
  if ( typeof window.addEventListener != "undefined" )
  {
    window.addEventListener( "load", fnc, false );
  }
  else if ( typeof window.attachEvent != "undefined" )
  {
    window.attachEvent( "onload", fnc );
  }
  else
  {
    if ( window.onload != null )
    {
      var oldOnload = window.onload;
      window.onload = function ( e )
      {
        oldOnload( e );
        window[fnc]();
      };
    }
    else
    {
      window.onload = fnc;
    }
  }
}

function detectCheckedOrders(){
    var e = document.getElementsByTagName('input');

    var ids = '';
    for( var i, i = 0; i < e.length; i++){

        if(e[i].checked)
        {
            var value =  e[i].name.substr(e[i].name.indexOf("[") + 1,e[i].name.length - e[i].name.indexOf("[") - 2);

            if (ids == "")
            {

                ids = value;
            }
            else
            {
                ids += "," + value;
            }
        }
    }
    var order_ids = document.getElementById("order_ids");

    if (order_ids)
    {
        order_ids.value = ids;
    }
}

function detectCheckedProduct()
{
    var e = document.getElementsByTagName('input');

    var ids = '';
    for( var i, i = 0; i < e.length; i++){

        if(e[i].checked)
        {
            var value =  e[i].name.substr(e[i].name.indexOf("[") + 1,e[i].name.length - e[i].name.indexOf("[") - 2);

            if (ids == "")
            {

                ids = value;
            }
            else
            {
                ids += "," + value;
            }
        }
    }
    var prd_ids = document.getElementById("multi_prd_ids");

    if (prd_ids)
    {
        prd_ids.value = ids;
    }
}

function attachEventsToOrders()
{
     var e = document.getElementsByTagName('input');
     for( var i, i = 0; i < e.length; i++)
     {
           if (e[i].type == "checkbox")
           {
               e[i].onclick = function()
               {
                   detectCheckedOrders();
               }
           }
     }
}

function isNumberKey(evt)
  {
     var charCode = (evt.which) ? evt.which : event.keyCode
     //
     // Allow the dash (-) character as well, so that negatives can be entered.
     if (charCode != 109) {
        return true;
     }
     if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
     }
     return true;
  }


/**
 * These functions are being used by the cart template editor.
 */
function addItems(list,name,value1,value2)
{
    var obj_list    = document.getElementById(list);
    var obj_name    = document.getElementById(name);
    var obj_value_1   = document.getElementById(value1);
    var obj_value_2   = document.getElementById(value2);

    if (Trim(obj_name.value) == "" || Trim(obj_value_1.value) == "" || Trim(obj_value_2.value) == "")
    {
        alert('You must enter a value for all the fields') ;
        return;
    }

    if (obj_list)
    {
        var opt = new Option(obj_name.value,obj_name.value + "|" + obj_value_1.value + "|" + obj_value_2.value );
        opt.selected = true;
        obj_list.options[obj_list.options.length] = opt;
    }
}

function rmItems(list)
{
    var obj_list    = document.getElementById(list);
    if (obj_list)
    {
        for (i= obj_list.options.length - 1; i >= 0; i--)
        {
            if (obj_list.options[i].selected)
            {
                 obj_list.options[i] = null;
            }
        }
    }
}

/**
 * Changes an item value in the list of colours for the cart template builder.<b>
 */
function changeItems(list,name,value1,value2)
{
    var obj_list    = document.getElementById(list);
    var obj_name    = document.getElementById(name);
    var obj_value_1   = document.getElementById(value1);
    var obj_value_2   = document.getElementById(value2);

    if (Trim(obj_name.value) == "" || Trim(obj_value_1.value) == "" || Trim(obj_value_2.value) == "")
    {
        alert('You must enter a value for all the fields') ;
        return;
    }

    if (obj_list)
    {
        for (i= obj_list.options.length - 1; i >= 0; i--)
        {
            if (obj_list.options[i].selected)
            {
                obj_list.options[i].text  = obj_name.value;
                obj_list.options[i].value = obj_name.value + "|" + obj_value_1.value + "|" + obj_value_2.value;
                return;
            }
        }
    }
    //
    // Fall through if none are selected - add to the bottom of the list.
    addItems(list,name,value1,value2);
}


function selectAll(list)
{
    var obj_list    = document.getElementById(list);
    if (obj_list)
    {
        for (i= obj_list.options.length - 1; i >= 0; i--)
        {
              obj_list.options[i].selected = true;
        }
    }
}

function tpl_box_mouse_over(obj)
{
    if (obj)
    {
        obj.style.backgroundColor = "#eeeeee";
        var sel_inp = document.getElementById('tpl_id');
        if (obj.id != sel_inp.value)
        {
            obj.style.borderWidth="1px";
        }
    }
}

function tpl_box_mouse_out(obj)
{
    if (obj)
    {
        var sel_inp = document.getElementById('tpl_id');
        if (obj.id != sel_inp.value)
        {
            obj.style.backgroundColor = "#ffffff";
            obj.style.borderWidth="1px";
        }
    }
}

function tpl_box_mouse_click(obj)
{
    if (obj)
    {
        var tpl_box  =  getElementsByClassName("tpl_box","div",document);

        for (i=0; i < tpl_box.length; i++)
        {
           tpl_box[i].style.backgroundColor = "#ffffff";
           tpl_box[i].style.borderWidth="1px";
        }
        obj.style.backgroundColor = "#eeeeee";
        obj.style.borderWidth="2px";
        var sel = obj.id;
        var sel_inp = document.getElementById('tpl_id');
        sel_inp.value = sel;
    }
}

function getElementsByClassName(className, tag, elm){
    var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
    var tag = tag || "*";
    var elm = elm || document;
    var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
    var returnElements = [];
    var current;
    var length = elements.length;
    for(var i=0; i<length; i++){
        current = elements[i];
        if(testClass.test(current.className)){
            returnElements.push(current);
        }
    }
    return returnElements;
}

function showDiv(showDivId) {
	var ele = document.getElementById(showDivId);
	
       
	if(ele.style.display == "none") {
    		ele.style.display = "block";
  	}
	else {
		ele.style.display = "none";
	}
} 

function showDivLink(showDivId, divContent) {
	var ele = document.getElementById(showDivId);
	
       
	if(ele.style.display == "none") {
    		ele.style.display = "block";
                ele.innerHTML = divContent;
  	}
	else {
		
                ele.innerHTML = divContent;
	}
}

function confirmSubmit()
{
    if ((document.setup_shop.submit.value == 'Save') || (document.setup_shop.done.value == 'Save')) {
        var agree=confirm("Do you want to overwrite your existing template?");
        if (agree)
                return true ;
        else
                return false ;
    }

}

function changeTpl(tpl_id)
{
    document.setup_shop.tpl_id_topost.value = tpl_id ;
   
}
