		function dotask(target, functionref, tasktype) { //assign a function to execute to an event handler (ie: onunload)
			//alert("dotask called for "+target);
			var nTaskType=(window.addEventListener)? tasktype : "on"+tasktype;
			if (target.addEventListener)
				target.addEventListener(nTaskType, functionref, false);
			else if (target.attachEvent)
				target.attachEvent(nTaskType, functionref);
		}
		
	    function getTransport() {
		    if (window.XMLHttpRequest) {
		        return new XMLHttpRequest();
		    } else if (window.ActiveXObject) {
		        try {
		            return new ActiveXObject('Msxml2.XMLHTTP');
		        } catch(e) {
		            return new ActiveXObject('Microsoft.XMLHTTP');
		        }
		    }
		}
		
		//var xmlhttp;
		//var xmlhttp2;
		
		function loadAJAX(url, target, functionref,id){
			//if (target != "popupContent") 
			//setContent("Loading ... Please Wait<br/><img src=\"../images/ajax-loader.gif\" alt=\"loading\" />", target, null, id);
			//alert(url);
			var client;
			//if (!xmlhttp) {
			    client = getTransport();
			    client.open("GET", url ,true);
			    client.onreadystatechange=function() {
				    if (client.readyState==4) {
					    if (document.getElementById(target)) {
						    if ((functionref != undefined) && (functionref != null)) setContent(client.responseText, target, functionref,id);
						    else setContent(client.responseText, target,null,id);
    						
					    }
					    else {
						    if ((functionref != undefined) && (functionref != null)) dotask(window, function(){setContent(client.responseText, target, functionref,id)}, "load");
						    else dotask(window, function(){setContent(client.responseText, target,null,id)}, "load");
					    }
					    //setContent(client.getAllResponseHeaders(), "Debug", null, id);
				    }
			    }
			    client.send(null);
		   /* } else {
		        xmlhttp2 = getTransport();
			    xmlhttp2.open("GET", url ,true);
			    xmlhttp2.onreadystatechange=function() {
				    if (xmlhttp2.readyState==4) {
					    if (document.getElementById(target)) {
						    if ((functionref != undefined) && (functionref != null)) setContent(xmlhttp2.responseText, target, functionref,id);
						    else setContent(xmlhttp2.responseText, target,null,id);
    						
					    }
					    else {
						    if ((functionref != undefined) && (functionref != null)) dotask(window, function(){setContent(xmlhttp2.responseText, target, functionref,id)}, "load");
						    else dotask(window, function(){setContent(xmlhttp2.responseText, target,null,id)}, "load");
					    }
				    }
			    }
			    xmlhttp2.send(null);
		    }*/
		}
		
		function setContent(content, target, functionref,id) {
			//alert("parentNode of "+target+" is "+ document.getElementById(target).parentNode);
			if (document.getElementById(target)) 
			{
				
				var finalContent = (target=="popupContent") ? "<div id=\"closeBtn\"><a href=\"#\" onclick=\"closeOverlay()\">X CLOSE</a></div>" + content : content;

				document.getElementById(target).innerHTML = finalContent;
				var cGridH = (document.getElementById("colorGrid")) ? document.getElementById("colorGrid").offsetHeight : 0;
				var sGridH = (document.getElementById("sizeGrid")) ? document.getElementById("sizeGrid").offsetHeight : 0;
				var pbGridH = (document.getElementById("priceBreakGrid")) ? document.getElementById("priceBreakGrid").offsetHeight : 0;
				var curIE = getVersion();
				
				if ((document.getElementById(target).parentNode) && ((curIE == 0) || (curIE != 6)) ) {
					var msg = "";
				    var parentEle = document.getElementById(target).parentNode;
					var newHeight = 0;
					if (parentEle.childNodes.length > 1) {
						for (var i = 0; i < parentEle.childNodes.length; i++) {
							var curEle = parentEle.childNodes[i];
							
							newHeight += curEle.offsetHeight;
							msg += "id : "+curEle.id+",  class : "+curEle.className+", height : "+ curEle.offsetHeight +"\n";
							
						}	
					}
					//alert("new height is now : "+newHeight);
					parentEle.style.height = newHeight + "px";
					//alert(msg+"parentNode of "+ target +" is <"+parentEle.tagName+" id=\""+parentEle.id+"\" class=\""+parentEle.className+"\" style=\"height:"+parentEle.style.height+";\">");
				  
				}
				if ((functionref != undefined) && (functionref != null)) functionref();
				//alert("setContent :  id = "+id);
				if (id == 3) {
					//alert("toggle tinyMCE");
					//setTimeout(toggleTinymce,100);
					toggleTinymce();
					
				} else if ((id == 4) || (id == 6)) {
					setContentObj();
					if (contentobjmain3)
						generateimagemain(selectobj3.options[selectobj3.options.selectedIndex].value,'','',contentobjmain3,selectobj3);
		
				}
				
				//executeEmbeddedScripts(document.getElementById(target), content);
			} else {
				var newObj = document.createElement("div");
				newObj.id = target;
				var myBody = document.getElementsByTagName("body")[0];
				myBody.appendChild(newObj);
				newObj.style.visibility = "visible";
				newObj.innerHTML  = content;
				//executeEmbeddedScripts(newObj, content);	
			}
			
			if (document.getElementById("modalBackground")) {
				var bgEle = document.getElementById("modalBackground");
				var content = document.getElementById("modalContainer");
				//bgEle.style.width = "100%";
				var newBgHeight = content.offsetTop + content.offsetHeight;
				msg = "newBgHeight : "+newBgHeight;
				msg += "\n"+"bgEle.offsetHeight : "+bgEle.offsetHeight;
				if (newBgHeight > bgEle.offsetHeight)
				{
					bgEle.style.height = newBgHeight+"px";	
				}
				//bgEle.style.backgroundColor = "#999999";
				msg += "\n"+"bgEle.style.height after : "+bgEle.style.height;
				msg += "\n"+"overlay width : "+ bgEle.parentNode.style.width;
				msg += "\n"+"bgcolor : "+ bgEle.style.backgroundColor;
				//alert(msg);
			}
		}
	function executeEmbeddedScripts(node,theResponse){
	  var bSaf = (myBindexOf(navigator.userAgent,'Safari',0) != -1);
	  var bOpera = (myBindexOf(navigator.userAgent,'Opera',0) != -1);
	  var bMoz = (navigator.appName == 'Netscape');
	  if (!node) return;
	  var myHead = document.getElementsByTagName('head');
	  //if ((!bSaf)&&(!bOpera)&&(!bMoz)) node.innerHTML="&nbsp;&nbsp;"+theResponse; // World's most retarded IE fix
	  var st = node.getElementsByTagName('script');
	  var strExec;
	  var scripts = st.length;
	  var i = 0;
	  for(j = 0; j < scripts; j++){
	    var scriptsAtStart = st.length;
	    if (bSaf) {strExec = st[i].innerHTML; st[i].innerHTML = "";}
	    else if (bOpera) {strExec = st[i].text; st[i].text = "";}
	    else if (bMoz) {strExec = st[i].textContent; st[i].textContent = "";}
	    else {strExec = st[i].text; st[i].text = "";}
	    try {
	      var myScript = document.createElement("script");
	      myHead.item(0).appendChild(myScript);
	      myScript.type = "text/javascript";
	      myScript.text=strExec;
	      var html = node.innerHTML;
	      // jscript would prematurely eject if it encountered the full closing tag, even encapsulated in a string object
	      var endScriptL = '<' + '/script>';  
	      var endScriptU = '<' + '/SCRIPT>';
	      var pos2 = myBindexOf(html,strExec,0);
	      var pos = myBindexOf(html,endScriptL,pos2) >= 0 ? myBindexOf(html,endScriptL,pos2) : myBindexOf(html,endScriptU,pos2);
	      pos += String(endScriptL).length;
	      html = html.substr(0,pos) + html.substr(pos);
	      node.innerHTML = html;
	      if(scriptsAtStart==st.length) i++;
	    } catch(e) {
	      alert("Script execution error: "+e);
	    }
	  }
	}
	function myBindexOf(myObject,mySearch,myPos){
	  if (myPos==null) myPos=0;
	  if (typeof(myObject)!='object') return -1;
	  if(!myObject.indexOf) {
	    for(var i=myPos; i < myObject.length; i++) if(myObject[i]==mySearch) return i;
	    return -1;
	  } else return myObject.indexOf(mySearch,myPos);
	}

	function overlay(url) {
		el = document.getElementById("modalPage");
		el.style.visibility = (el.style.visibility == "visible") ? "visible" : "visible";
		el.style.display = "block";
		el.style.height = "100%";
		//el.style.width = "100%";
		//el.style.top = "0px";
		//el.style.left = "0px";
		//el.style.display = "block";
		document.getElementById("modalBody").innerHTML = "<div style=\"text-align:center;width:100%;height:300px;vertical-align:middle;\">Loading ... Please Wait<br/><img src=\"../images/ajax-loader.gif\" alt=\"loading\" /></div>";
		loadAJAX(url, "modalBody");
	}
	
	function closeOverlay() {
		//document.getElementById("popupContent").innerHTML = "Loading ... Please Wait<br/><img src=\"../images/ajax-loader.gif\" alt=\"loading\" />";
		el = document.getElementById("modalPage");
		el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "hidden";
		el.style.display = "none";	
	}
