/* overlayer */
showBG = function(elem) {	
	var box_w = $('ibox_w'+elem);
	
	box_w.style.opacity = 0;
	box_w.style.filter = 'alpha(opacity=0)';
    setOpacity('ibox_w'+elem,opacity_level);
	
	box_w.style.display = "";
	
	var pagesize = new getPageSize();
	var scrollPos = new getScrollPos();
	
	var ua = navigator.userAgent;
	if(ua.indexOf("MSIE ") != -1) {box_w.style.width = pagesize.width + 'px';}
	//else {box_w.style.width = pagesize.width-20+'px';} /**/ // scrollbars removed! Hurray!
	box_w.style.height = pagesize.height + scrollPos.scrollY + 'px';
	box_w.style.height = '100%';

}
hideBG = function(elem) {
	var box_w = $('ibox_w'+elem);
	box_w.style.display = "none";
}

/* Indicator */
showIndicator = function(elem) {
	var ibox_p = $('ibox_progress'+elem);
	
	ibox_p.style.display = "";
	posToCenter(ibox_p);

	ibox_p.onclick = function() {
        hideIbox(elem);
        hideIndicator(elem);
        loadCancelled = true;
    }
}
hideIndicator = function(elem) {
	var ibox_p = $('ibox_progress'+elem);

	ibox_p.style.display = "none";
	ibox_p.onclick = null;
}

/* create Ibox */
createIbox = function(elem, s) {
  if ($('introFlash') != null) {
        $('introFlash').style.visibility = 'hidden';
    } 
	if ($('blank_space') != null) Element.show('blank_space');  

    /* return if it's hidden */
    if($('ibox_w'+elem.id) && $('ibox_w'+elem.id).style.display == 'none') {
	   unhideIbox(elem.id);
	   return false;
    }

	var skin = s;
	var skin1;
	if (s.indexOf("appraizal") != -1) {
		skin1 = "appraizal";
	}
	else skin1 = s;
     if(elem.id == 'reg'){
     
    
    var strHTML = "<div id=\"ibox_w"+elem.id+"\" class=\"ibox_w\" style=\"display: none;\"></div>";
    strHTML +=  "<div id=\"ibox_progress"+elem.id+"\" class=\"ibox_progress\" style=\"display: none; z-index: 6000;\">" + indicator_img_html + "</div>";
    strHTML +=  "<div id=\"ibox_wrapper"+elem.id+"\" class=\"ibox_wrapper\" style=\"display: none\">";
    strHTML +=  "<div id=\"ibox_close"+elem.id+"\" class=\"ibox_close\"><a id=\"ibox_close_a"+elem.id+"\" class=\"" + skin1 + "\">close</a></div>";
    strHTML +=  "<div id=\"ibox_header"+elem.id+"\" class=\"ibox_header\"></div>";
    strHTML +=  "<div id=\"ibox_content"+elem.id+"\" class=\"ibox_content\" style=\"overflow: hidden; z-index: 5000;margin-left: 1px; \"></div>";
    strHTML +=  "<div id=\"ibox_footer_wrapper"+elem.id+"\" class=\"ibox_footer_wrapper\">";
    strHTML +=  "<div id=\"ibox_footer"+elem.id+"\" class=\"ibox_footer\">&nbsp;footer&nbsp;</div></div></div></div>";
    
    
    }
    else {
      
    
    
    var strHTML = "<div id=\"ibox_w"+elem.id+"\" class=\"ibox_w\" style=\"display: none;\"></div>";
    strHTML +=  "<div id=\"ibox_progress"+elem.id+"\" class=\"ibox_progress\" style=\"display: none; z-index: 6000;\">" + indicator_img_html + "</div>";
    strHTML +=  "<div id=\"ibox_wrapper"+elem.id+"\" class=\"ibox_wrapper\" style=\"display: none\">";
    strHTML +=  "<div id=\"ibox_close"+elem.id+"\" class=\"ibox_close\"><a id=\"ibox_close_a"+elem.id+"\" class=\"" + skin1 + "\">close</a></div>";
    strHTML +=  "<div id=\"ibox_header"+elem.id+"\" class=\"ibox_header\"></div>";
    strHTML +=  "<div id=\"ibox_content"+elem.id+"\" class=\"ibox_content\" style=\"overflow: hidden; z-index: 5000;margin-left: 1px;\"></div>";
    strHTML +=  "<div id=\"ibox_footer_wrapper"+elem.id+"\" class=\"ibox_footer_wrapper\">";
    strHTML +=  "<div id=\"ibox_footer"+elem.id+"\" class=\"ibox_footer\">&nbsp;footer&nbsp;</div></div></div></div>";
    
    }
	

	var docBody = document.getElementsByTagName("body")[0];
	var ibox = document.createElement("div");
	ibox.setAttribute("id","ibox"+elem.id);
	ibox.style.display = '';
	ibox.innerHTML = strHTML;
	elem.appendChild(ibox);
    return true;
}

  showIbox = function(content,title,params,elem) {
	var ibox = $('ibox_wrapper'+elem);
	var ibox_type = 0;												

	// set title here
	var ibox_footer = $('ibox_footer'+elem);
    
	if(title != "") {
		ibox_footer.innerHTML = title;
	} else ibox_footer.innerHTML = "&nbsp;";	

    ibox_type = parseInt(params['type']);
	  
	switch (ibox_type) {		
		case 1:
        
			showIndicator(elem);
			imgPreloader = new Image();
			imgPreloader.onload = function() {
				imgPreloader = resizeImageToScreen(imgPreloader);
				hideIndicator(elem);
				var strHTML = "<img name=\"ibox_img\" src=\""+url+"\" style=\"width:"+imgPreloader.width+"px;height:"+imgPreloader.height+"px;border:0;cursor:hand;margin:0;padding:0;position:absolute;\"/>";
				if (loadCancelled == false) {					
					// set width and height
					ibox.style.height = imgPreloader.height+'px';
					ibox.style.width = imgPreloader.width+'px';
					ibox.style.display = "";
					ibox.style.visibility = "hidden";
					posToCenter(ibox);
					ibox.style.visibility = "visible";
					setIBoxContent(strHTML, elem);
				}
			}
			loadCancelled = false;
			imgPreloader.src = url;
			break;

		case 2:
			var strHTML = "";
			if (params['height']) {ibox.style.height = params['height']+'px';} 
			else {ibox.style.height = '280px';}
			if(params['width']) {ibox.style.width = params['width']+'px';} 
			else {ibox.style.width = '450px';}
			ibox.style.display = "";
			ibox.style.visibility = "hidden";
			posToCenter(ibox); 	
			ibox.style.visibility = "visible";
			$('ibox_content'+elem).style.overflow = "auto";
			var elemSrcId = url.substr(url.indexOf("#") + 1,1000);
			var elemSrc = $(elemSrcId);
			if(elemSrc) {strHTML = elemSrc.innerHTML;}
			setIBoxContent(strHTML, elem);
			break;
			
		case 3:
        
			showIndicator(elem);
			hideIndicator(elem);
			if(params['height']) {ibox.style.height = params['height']+'px';} 
			//else {ibox.style.height = '530px';}
			if(params['width']) {ibox.style.width = params['width']+'px';} 
			else {ibox.style.width = '850px';}
			ibox.style.display = "";
			ibox.style.visibility = "hidden";
			posToCenter(ibox);
			ibox.style.visibility = "visible";
			$('ibox_content'+elem).style.overflow = "hidden";
			setIBoxContent(content,elem);
		    break;

		default:
	 } 

	ibox.style.opacity = 0;
	ibox.style.filter = 'alpha(opacity=0)';	
	var ibox_op_level = 10;
	setIboxOpacity = setOpacity;
    setIboxOpacity('ibox_wrapper'+elem,ibox_op_level);
	
	if(ibox_type == 2 || ibox_type == 3) {
		ibox.onclick = null; 
        $("ibox_close_a"+elem).onclick = function() {
          hideIbox(elem); 
        
        }
	} 

    else {
      ibox.onclick = hideIbox(elem);
        $("ibox_close_a"+elem).onclick = null;
    }
    return true;
}

setOpacity = function (elemid,value) {
	var e = $(elemid);
	e.style.opacity = value/10;
	e.style.filter = 'alpha(opacity=' + value*10 + ')';
}

resizeImageToScreen = function(objImg) {
	var pagesize = new getPageSize();
	var x = pagesize.width - 100;
	var y = pagesize.height - 100;
	if(objImg.width > x) {
		objImg.height = objImg.height * (x/objImg.width); 
		objImg.width = x;
		if(objImg.height > y) {
			objImg.width = objImg.width * (y/objImg.height);
			objImg.height = y; 
		}
	}
	else if(objImg.height > y) {
		objImg.width = objImg.width * (y/objImg.height);
		objImg.height = y;
		if(objImg.width > x) {
			objImg.height = objImg.height * (x/objImg.width);
			objImg.width = x;
		}
	}
	return objImg;
}
maintPos = function(elem) {
	var ibox = $('ibox_wrapper'+elem);
	var box_w = $('ibox_w'+elem);
	var pagesize = new getPageSize();
	var scrollPos = new getScrollPos();
	var ua = navigator.userAgent;

  if (box_w) {
	if(ua.indexOf("MSIE ") != -1) {box_w.style.width = pagesize.width+'px';} 
	/*else {box_w.style.width = pagesize.width-20+'px';}*/
	if(ua.indexOf("Opera/9") != -1) {box_w.style.height = document.body.scrollHeight+'px';}
	else {box_w.style.height = pagesize.height+scrollPos.scrollY+'px';}
	
	//alternative 1
    box_w.style.height = Math.max(document.body.scrollHeight+50,$('ibox_content'+elem).scrollHeight+500) +'px';
  }
	posToCenter(ibox);
}

hideIbox = function(elem) {
if ($('introFlash') != null) {
        $('introFlash').style.visibility = 'visible';
    }
	hideBG(elem);
	var ibox = $('ibox_wrapper'+elem);
	ibox.style.display = "none";
	window.onScroll = null;
}

unhideIbox = function(elem) {
  if ($('introFlash') != null) {
    $('introFlash').style.visibility = 'hidden';
  }
	var box_w = $('ibox_w'+elem);
	box_w.style.display = "";
	var ibox = $('ibox_wrapper'+elem);
	ibox.style.display = "";
	window.onScroll = maintPos(elem);
	window.onResize = maintPos(elem);
    window.scrollTo(0,0);
}

posToCenter = function(elem) {
	var scrollPos = new getScrollPos();
	var pageSize = new getPageSize();
	var emSize = new getElementSize(elem);
	var x = Math.round(pageSize.width/2) - (emSize.width /2) + scrollPos.scrollX;
	var y = Math.round(pageSize.height/2) - (emSize.height /2) + scrollPos.scrollY;
    //x=x-60;                                                                         //changed
	elem.style.left = x+'px';
	//elem.style.top = y+'px';
	elem.style.top = '0px';	
}

getScrollPos = function() {
	var docElem = document.documentElement;
	this.scrollX = self.pageXOffset || (docElem&&docElem.scrollLeft) || document.body.scrollLeft;
	this.scrollY = self.pageYOffset || (docElem&&docElem.scrollTop) || document.body.scrollTop;
}

getPageSize = function() {
	var docElem = document.documentElement;
	this.width = self.innerWidth || (docElem&&docElem.clientWidth) || document.body.clientWidth;
	this.height = self.innerHeight || (docElem&&docElem.clientHeight) || document.body.clientHeight;
}

getElementSize = function(elem) {
	this.width = elem.offsetWidth ||  elem.style.pixelWidth;
	this.height = elem.offsetHeight || elem.style.pixelHeight;
}

setIBoxContent = function(str, elem) {
  clearIboxContent(elem);
  var e = $('ibox_content'+elem);
  e.style.overflow = "auto";
  e.innerHTML = str;
  maintPos(elem);
}

clearIboxContent = function(elem) {
	var e = $('ibox_content'+elem);
	e.innerHTML = "";
}

var indicator_img_path = "/public/images/widget/indicator.gif";
var indicator_img_html = "<img name=\"ibox_indicator\" src=\""+indicator_img_path+"\" alt=\"Loading...\" style=\"width: 128px ;height: 128px;\"/>";
// don't remove the name

var opacity_level = 7; // how transparent our overlay bg is
var ibAttr = "rel"; 	// our attribute identifier for our iBox elements

var imgPreloader = new Image(); // create an preloader object
var loadCancelled = false;
var ibox_w_height = 0;
//var http =  Ajax.request;
//createRequestObject();
//addEvent(window, 'load', init_ibox);
