﻿// JavaScript File

// set the main object if not already set
if(Axial == null) var Axial = function(){};

// set the Document object
Axial.Document = function(){};

// gets an array of elements based on the provided Object
// The object (args) represents a name-value pair
// Ex.: {id:'the_id',class:'the_class', tag:'div'}
// if no element is found, getElements(args) returns null
Axial.Document.getElements =
function(args)
{
    var ret_val = Array();
    try
    {
        if(args.id)
        {
            ret_val.push(document.getElementById(args.id));
        }
        else if(args.tag)
        {
            ret_val = document.getElementsByTagName(args.tag);
        }

        for(o in args)
        {
            for(var i=0;i<ret_val.length;++i)
            {
                if( ! ret_val[i][o])
                {
                    ret_val.splice(i,1);
                }
            }
        }

        if(ret_val.length == 1 && ret_val[0] == null) ret_val = null;
    }
    catch(ex)
    {
        if(location.search.indexOf('js_debug')>-1)
        {
            alert(ex);
        }
        ret_val = null;
    }
    return ret_val;    
};

// gets an element based on the provided Object
// The object (args) represents a name-value pair
// Ex.: {id:'the_id',class:'the_class', tag:'div'}
// if args is a string, it is considered the id
// if no element is found, getElement(args) returns null
Axial.Document.getElement =
function(args)
{
    if(typeof(args) == 'string') args = {id:args};
    var ret_val = this.getElements(args);
    if(ret_val != null) ret_val = ret_val[0];
    return ret_val;
};

// shows an element
// if the argument is a string, it is considered the id of the element to show
Axial.Document.showElement =
function(obj)
{
    if(typeof(obj) == 'string')obj = this.getElement(obj);
    obj.style.display = 'block';
}

// hides an element
// if the argument is a string, it is considered the id of the element to hide
Axial.Document.hideElement =
function(obj)
{
    if(typeof(obj) == 'string') obj = this.getElement(obj);
    obj.style.display = 'none';
}

Axial.Document.findPosition =
function(obj)
{
    var curleft = curtop = 0;
    if (obj.offsetParent)
    {
        do
        {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		while (obj = obj.offsetParent);
    }
		return [curleft, curtop];
}


Axial.Document.deleteElement =
function(obj)
{
    var values = '';
    var obj1 = document.getElementById(obj);
    var itemCnt = obj1.length;
    var deleteCnt = 0;	
		  for(var i = itemCnt-1 ; i >= 0; i--)
		  {
		   
		    if(obj1.options[i].selected == true)
		    { 
               if(values != '')
                 values += ',';  
               values += obj1.options[i].value; 
               obj1.remove(i);      
                		   
		    }
		  }		   
		  return values;
}

/*
This function add the selected items from a dropdown to another dropdown
obj1 = ID of the first dropdown
obj2=ID of the second dropdown,to which items are to added
existAlertMsg = alert msg to be shown if selected item already exists
*/

Axial.Document.addSelectedItemToDropDown =
function (obj1,obj2,existAlertMsg)
		{
		   
		     var element1 = document.getElementById(obj1);	
		     var values = '';
		     for(var i = 0 ; i < element1.length ; i++)
		     {
		      if(element1.options[i].selected == true)
		      {
                
                var element2 =document.getElementById(obj2);
				var bExist = false;
				var itemValue = element1.options[i].value;
				var itemText =  element1.options[i].text;
				for(var k = 0 ; k <  element2.length ; k++)
					{
						if(itemValue == element2.options[k].value)
						bExist = true;
					}
					if(!bExist)
					{         
						var opt = new Option(itemText,itemValue)
						element2.options.add(opt);
						if(values != '')
                           values += ',';  
                        values += element1.options[i].value;     	
					}
					else
					 if(existAlertMsg != null && existAlertMsg != '')
					{
					  alert(existAlertMsg);
					}
                   
		       }
		       
		     }
		    
		     return values;

		}
		
/*
This function add the selected items from a dropdown to a textbox/textarea
obj1 = ID of the first dropdown
obj2=ID of the textbox
existAlertMsg = alert msg to be shown if selected item already exists
*/		
Axial.Document.addSelectedItemToTextBox =
function (obj1,obj2,existAlertMsg)
		{
		// alert(existAlertMsg);
		 var element1 = document.getElementById(obj1);	
		 for(var i = 0 ; i < element1.length ; i++)
		 {
		  if(element1.options[i].selected == true)
		  {
            if(document.getElementById(obj2).value.indexOf(element1.options[i].text) == -1)
            {
             if(document.getElementById(obj2).value != '')
               document.getElementById(obj2).value += ',';
             document.getElementById(obj2).value +=  element1.options[i].text;    
            }
            else
             if(existAlertMsg != null && existAlertMsg != '')
              {alert(existAlertMsg);}		   
		  }
		 }

		}

// 
