/*  Created Date:  11/15/2006 2:25 PM
 * 	Author:  Irvin Owens Jr
 *  For: Irvin Owens Jr
 *  Project: None
 *  Description:  This file contains functions and objects to build UI components
 *  Libraries Used:  
 */

// ui objects library
var _divFaderInterval = "";

// create the div element
function createDiv(id,itemName,classItem,innerhtml){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<div name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("div");
			item.name = itemName;
		break;
	}
	item.id = id;
	item.className = classItem;
	item.innerHTML = innerhtml;
	return item;
}

// create the table element
function createTable(id,itemName,classItem){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<table name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("table");
			item.name = itemName;
		break;
	}
	item.id = id;
	item.className = classItem;
	return item;
}

// create tbody element, must have for internet explorer
function createTbody(id,itemName,classItem){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<tbody name='" + itemName + "' id='" + id + "'>");
		break;
		default:
			var item = document.createElement("tbody");
			item.name = itemName;
			item.id = id;
		break;
	}
	item.className = classItem;
	return item;
}

// create thead element must have internet explorer
function createThead(id,itemName,classItem){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<thead name='" + itemName + "' id='" + id + "'>");
		break;
		default:
			var item = document.createElement("thead");
			item.name = itemName;
			item.id = id;
		break;
	}
	item.className = classItem;
	return item;
}

// create the table row item
function createTR(id,itemName,classItem){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<tr name='" + itemName + "' id='" + id + "'>");
		break;
		default:
			var item = document.createElement("tr");
			item.name = itemName;
			item.id = id;
		break;
	}
	
	item.className = classItem;
	return item;
}

// create the table cell item
function createTD(id,itemName,classItem,innerhtml){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<td name='" + itemName + "' id='" + id + "'>");
		break;
		default:
			var item = document.createElement("td");
			item.name = itemName;
			item.id = id;
		break;
	}
	
	item.className = classItem;
	if(innerhtml != ""){
		item.appendChild(document.createTextNode(innerhtml));
	}else{
		item.appendChild(document.createTextNode(""));
	}
	return item;
}

// create the form object
function createForm(id,itemName,classItem,action,method,enctype,target){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<form id='" + id + "' name='" + itemName + "' class='" + classItem + "' action='" + action + "' method='" + method + "' enctype='multipart/form-data' target='" + target + "'>");
		break;
		default:
			var item = document.createElement("form");
			item.id = id;
			item.name = itemName;
			item.className = classItem;
			item.action = action;
			item.method = method;
			item.encoding = enctype;
			item.target = target;
		break;
	}
	
	return item;
}

// create the input object
function createInput(id,itemName,type,classItem,value,maxLength){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<input name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("input");
			item.name = itemName;
		break;
	}
	item.id = id;
	item.setAttribute("type",type);
	item.className = classItem;
	item.value = value;
	if(maxLength != ""){
		item.setAttribute("maxlength",maxLength);
	}
	return item;
}

//create the select object
function createSelect(id,itemName,classItem,multiple,size){
	switch(browserSniffer()){
		case 1:
			if(multiple == 'true'){
				var item = document.createElement("<select name=" + itemName + " size=" + size + ">");
			}else{
				var item = document.createElement("<select name=" + itemName + ">");
			}
		break;
		default:
			var item = document.createElement("select");
			item.name = itemName;
			if(multiple == 'true'){
				item.setAttribute("size",size);
			}
		break;
	}
	item.id = id;
	item.className = classItem;
	if(multiple == 'true'){
		item.setAttribute("multiple",multiple);
	}
		var loadingOption = createOption('loadingOpt','loadingOpt','noclass');
			loadingOption.value = "#";
			loadingOption.innerHTML = "Loading...";
	item.appendChild(loadingOption);
	return item;
}

// create the option item for the select object
function createOption(id,itemName,classItem){
    switch(browserSniffer()){
		case 1:
			var item = document.createElement("<option name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("option");
			item.name = itemName;
		break;
	}
    item.id = id;
    item.className = classItem;
    return item;
}

// create the p object

function createPobject(id,itemName,classItem,innerhtml){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<p name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("p");
			item.name = itemName;
		break;
	}
    item.id = id;
    item.className = classItem;
    item.innerHTML = innerhtml;
    return item;
}

// create the span object

function createSpanObject(id,itemName,classItem,innerhtml){
    var item = document.createElement("span");
    switch(browserSniffer()){
		case 1:
			var item = document.createElement("<span name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("span");
			item.name = itemName;
		break;
	}
    item.id = id;
    item.className = classItem;
    item.innerHTML = innerhtml;
    return item;
}

// create the image object

function createImageObject(id,itemName,classItem,src,alt){
    var item = document.createElement("img");
    switch(browserSniffer()){
		case 1:
			var item = document.createElement("<img name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("img");
			item.name = itemName;
		break;
	}
    item.id = id;
    item.className = classItem;
    item.alt = alt;
    item.src = src;
    return item;
}

// create a hyperlink object

function createHyperObject(id,itemName,classItem,href,title,innerhtml,onclickfunct,target){
	if(target == ""){
		target = "_self";
	}
    switch(browserSniffer()){
		case 1:
			var item = document.createElement("<a name='" + itemName + "' target='" + target + "'>");
		break;
		default:
			var item = document.createElement("a");
			item.name = itemName;
			item.setAttribute("target",target);
		break;
	}
    item.id = id;
    item.className = classItem;
    if(href != ""){
    	item.href = href;
    }
    item.title = title;
    item.innerHTML = innerhtml;
    if(onclickfunct.length > 3){
		if(navigator.userAgent.indexOf('MSIE') == -1){
			eval('item.setAttribute("onclick","' + onclickfunct + '");');
		} else {
			eval('item.onclick = function() {  ' + onclickfunct + '  };');
		}
	}
    return item;
}

//create the unorderedlist object

function createULobject(id,name,classItem){
    switch(browserSniffer()){
		case 1:
			var item = document.createElement("<ul name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("ul");
			item.name = itemName;
		break;
	}
    item.id = id;
    item.className = classItem;
    return item;
}

// create the list item objects

function createLIobject(id,name,classItem,innerhtml){
    switch(browserSniffer()){
		case 1:
			var item = document.createElement("<li name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("li");
			item.name = itemName;
		break;
	}
    item.id = id;
    item.className = classItem;
    item.innerHTML = innerhtml;
    return item;
}

// create text area object
function createTextArea(id,itemName,classItem,innerhtml){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<textarea name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("textarea");
			item.name = itemName;
		break;
	}
	item.id = id;
	item.className = classItem;
	item.innerHTML = innerhtml;
	return item;
}

// create br
function createbr(){
	var item = document.createElement("br");
	return item;
}

// create a hr
function createhr(){
	var item = document.createElement("hr");
		item.className = "hr";
	return item;
}

// fading div object
function createFadingDiv(id,name,classItem,innerhtml,startAlpha,alphaIncrement,interval,objectToAppendTo){
	switch(browserSniffer()){
		case 1:
			var item = document.createElement("<div name=" + itemName + ">");
		break;
		default:
			var item = document.createElement("div");
			item.name = itemName;
		break;
	}
	item.id = id;
	item.className = classItem;
	item.innerHTML = innerhtml;
	item.setAttribute("z-index","2");
	item.setAttribute("position","absolute");
	switch(browserSniffer()){
		case 1:
			item.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity = " + startAlpha + ")";
		break;
		default:
			item.style.opacity = startAlpha / 100;
		break;
	}
	objectToAppendTo.appendChild(item);
	_divFaderInterval = setInterval("fadeDiv('" + id + "'," + startAlpha + "," + alphaIncrement + ")",interval);
}

// fade out function
function fadeOut(itemToFade,endAlpha){
	var thisFadeOut = new fadeObject("out",itemToFade,endAlpha);
	thisFadeOut.doFade();
}

// fade in function
function fadeIn(itemToFade,endAlpha){
	var thisFadeIn = new fadeObject("in",itemToFade,endAlpha);
	thisFadeIn.doFade();
}

// fade object
function fadeObject(inOrOut,itemToFade,endAlpha){
	this.itemToFade = itemToFade;
	this.endAlpha = endAlpha;
	this.doFade = doFade;
	this.inOrOut = inOrOut;
}

// function do the fade
function doFade(){
	if(this.inOrOut == "in"){
		switch(browserSniffer()){
			case 1:
				this.itemToFade.style.filter = "Alpha(Opacity = " + this.endAlpha + ")";
			break;
			default:
				this.itemToFade.style.opacity = (this.endAlpha / 100);
			break;
		}
	}else{
		switch(browserSniffer()){
			case 1:
				this.itemToFade.style.filter = "Alpha(Opacity = " + this.endAlpha + ")";
			break;
			default:
				this.itemToFade.style.opacity = (this.endAlpha / 100);
			break;
		}
	}
}


// fade div
function fadeDiv(itemID,startA,incremA){
	var fadingDiv = document.getElementById(itemID);
		if(browserSniffer() == 1){
			fadingDiv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity = " + startA + ")";
		}else{
			if(startA == '100'){
				fadingDiv.style.opacity = (startA / 100);
			}else{
				fadingDiv.style.opacity = startA;
			}
		}
	switch(browserSniffer()){
		case 1:
			var filterValue = fadingDiv.style.filter;
			var filterArr1 = filterValue.split('=');
			var finalFilterNumber = filterArr1[1].substring(4,0).replace(")","");
			//alert(finalFilterNumber);
			var currentAlpha = finalFilterNumber;
			if(currentAlpha - incremA > 0){
				fadingDiv.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity = " + (currentAlpha - incremA) + ")";
				setTimeout('fadeDiv("' + itemID + '","' + (currentAlpha - incremA) + '","' + incremA + '")',75);
			}else{
				fadingDiv.style.display = 'none';
				var pnode = fadingDiv.parentNode;
				pnode.removeChild(fadingDiv);
			}
		break;
		default:
			var currentAlpha = fadingDiv.style.opacity;
			if((currentAlpha - (incremA / 100)) > 0.00){
				fadingDiv.style.opacity = currentAlpha - (incremA / 100);
				setTimeout('fadeDiv("' + itemID + '","' + (currentAlpha - (incremA / 100)) + '","' + incremA + '")',75);
			}else{
				fadingDiv.style.display = 'none';
				var pnode = fadingDiv.parentNode;
				pnode.removeChild(fadingDiv);
			}
		break;
	}
}

function createIFrameObject(objId,objName,urlVal){
	switch(browserSniffer()){
		case 1:
			var iframeObj = document.createElement("<iframe id='" + objId + "' name='" + objName + "' src='" + urlVal + "'>");
		break;
		default:
			var iframeObj = document.createElement("iframe");
				iframeObj.id = objId;
				iframeObj.name = objName;
				iframeObj.src = urlVal;
		break;
	}
	iframeObj.style.display = 'none';
	return iframeObj;
}

// toggle visual element visible
function toggleVisible(elementId){
	var element = document.getElementById(elementId);
	if(element.style.display == 'none'){
		element.style.display = 'block';
	}else{
		element.style.display = 'none';
	}	
}

function browserSubClass(subClassId){ // for otc and rx, opens browser and selects drugs subclass
	var subClassString = "/noFrame/multiClass.do?ClassId=" + subClassId;
	document.getElementById('browserbox').className='browser show';
	getChunky(subClassString,'altBrowserbox');
}



