// Left Block Implementation
var _controler_timeout = null;
var _fire_delay = 500;
window.left_block_sliding_height = (!document.uniqueID)?116:126;


//------------------ From prototype library -----------
/* get html elements by id */
function $() {
	var elements = new Array();
	var argsLen = arguments.length;

	for (var i=0; i < argsLen; i++ ) {
		var element = arguments[i];
		if (typeof(element) == 'string') {
		    element = document.getElementById(element);
		}

		if (argsLen == 1) {
		    return element;
		}
		
		elements.push(element);
	}

	return elements;
}
//---------------     LOCAL FUNCTIONS    ---------------

// function to provide animated folding down or expanding height
function expandHeight(elem, startHeight, endHeight, steps, intervals, powr, callback) { 
	if (elem.heightChangeIntval)
		window.clearInterval(elem.heightChangeIntval);
	
	var actStep = 0;
	
	elem.heightChangeIntval = window.setInterval(function() { 
		elem.currentHeight = easeUpDown(startHeight,endHeight,steps,actStep,powr);	
		elem.style.height = elem.currentHeight + "px"; 		
		
		actStep++;
		if (actStep > steps) {
			window.clearInterval(elem.heightChangeIntval);
			if(elem.currentHeight == 1 && elem.style.display == 'block') {
				elem.style.display = 'none';
			}
			elem = null;
			// callback function
			if (typeof callback == 'string') window.eval(callback);
			else if(typeof callback == 'function') callback();
		}
	},intervals);
}

// animation steps calculation
function easeUpDown(minValue,maxValue,totalSteps,actualStep,powr) { 
	var delta = maxValue - minValue; 
	var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
	stepp = stepp == 0 ? 1 : stepp;
	return Math.ceil(stepp);
}


// function to expand the div
function expand_main(id, callback) {
	callback = callback || null;
	var srcElem = $('left_block_content');	
	//srcElem.innerHTML = '';
	var h = srcElem.offsetHeight;
	if (h == 0) {
		srcElem.style.display = 'block';
		expandHeight(srcElem, 1, window.left_block_sliding_height, 10, 15, 0.5, function name() {
			callback();
		});		
	}else {
		callback(id);
	}
}

/*
* This function fetches pages from server using AJAX
*/
function getLeftBlockPages(id) {
	
	if(left_block_tab_pages[id].html == '') {
		$('left_block_content').innerHTML = '<IMG SRC="http://img.123greetings.com/images/loading.gif" ALIGN="absmiddle" WIDTH="20" HEIGHT="20" BORDER="0" ALT="" VSPACE="50"> <span>Loading...</span></div>';
		var ajx = new AJAX();
		ajx.init(true, 'GET', 'TEXT', left_block_tab_pages[id].file, '', function () {	
			var args = arguments[0];
			writeLeftBlockContent(args, id);							    
		});
	}else {
		writeLeftBlockContent(left_block_tab_pages[id].html, id);
	}
}

// this function writes to the left block content div
function writeLeftBlockContent() {
	var curIdx = 0;
	var html_text = arguments[0];
	var id = arguments[1];

	if(left_block_tab_pages[id].html == '') {
		left_block_tab_pages[id].html = html_text;
	}
	$('left_block_content').style.paddingLeft = (!(!!document.uniqueID))?'2px':'3px';
	$('left_block_content').innerHTML = left_block_tab_pages[id].html;

}



/*
* This function collapses the sliding div
*/
function collapse(e) {
	var str = '';
	var show = false;
	if (!e) var e = window.event;
	
	if(_controler_timeout){
		window.clearInterval(_controler_timeout);
	}
	if(!(!!document.uniqueID)) {
		if(mouseLeaves($('left_block'), e)) {
			//hide			
		_controler_timeout = setTimeout(function () {
				expandHeight($('left_block_content'), window.left_block_sliding_height, 1, 8, 10, 0.5, null);
				$('left_block_content').innerHTML = '';
			}, 500);
			
		}
	}else {
		
		var tg = (window.event) ? e.srcElement : e.target;
		if (tg.getAttribute('id') != 'lb_tbl') return;	
		
		var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;	
		try {
			while (reltg != tg && reltg.nodeName != 'BODY') 				
				reltg = reltg.parentNode;		
			if (reltg == tg) return;					
		}catch(ex){}
		// Mouseout took place when mouse actually left layer
		// Handle event
		window.setTimeout(function () {
			expandHeight($('left_block_content'), window.left_block_sliding_height, 1, 8, 10, 0.5, null);
			$('left_block_content').innerHTML = '';
		}, 500);
		
	}
}

function mouseLeaves (element, evt) {	
//  if (typeof evt.toelement != 'undefined' && evt.toelement && typeof element.contains != 'undefined') {
//	return !element.contains(evt.toelement);
//  }
	if (typeof evt.relatedTarget != 'undefined' && evt.relatedTarget) {
		return !contains(element, evt.relatedTarget);
	}
	
}

function contains (container, containee) {
	while (containee) {
		if (container == containee) {
		  return true;
		}
		containee = containee.parentNode;
	}
	return false;
}


//---------------   Attach Handlers to the   ---------------

function expand_tab1(e) {
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
	$('left_block_content').style.backgroundColor = left_block_tab_pages['tab1'].cont_bg_color;
	expand('tab1', function () {
		getLeftBlockPages('tab1');			
	});
}

function expand_tab2(e) {
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
	$('left_block_content').style.backgroundColor = left_block_tab_pages['tab2'].cont_bg_color;
	expand('tab2', function () {
		getLeftBlockPages('tab2');			
	});
}
function expand_tab3(e) {
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
	$('left_block_content').style.backgroundColor = left_block_tab_pages['tab3'].cont_bg_color;
	expand('tab3', function () {
		getLeftBlockPages('tab3');			
	});
}
function expand_tab4(e) {
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
	$('left_block_content').style.backgroundColor = left_block_tab_pages['tab4'].cont_bg_color;
	expand('tab4', function () {
		getLeftBlockPages('tab4');			
	});
}


//function used to call the expand_main function at a certain timeout to reduce flickering
function expand(elem_id, callback) {	
if(_controler_timeout){
	window.clearInterval(_controler_timeout);
}

var h = $('left_block_content').offsetHeight;
	if (h == 0) {
	_controler_timeout = setTimeout('expand_main("' + elem_id + '",' + callback + ')',_fire_delay);
	}else{
		expand_main(elem_id,callback);
	}
}


// ------------- End Attach handlers ----------------------
	
	/* TAB 1 */
	var lb_tab_1 = $('tab1');
	//change caption, background color and font color
	lb_tab_1.innerHTML = left_block_tab_pages['tab1'].caption;
	lb_tab_1.style.backgroundImage = 'url(' + left_block_tab_pages['tab1'].bg_image + ')';
	lb_tab_1.style.height = (!(!!document.uniqueID))?'34px':'35px';
	lb_tab_1.style.color = left_block_tab_pages['tab1'].font_color;	
	
	/* TAB 2 */
	var lb_tab_1 = $('tab2');
	//change caption, background color and font color
	lb_tab_1.innerHTML = left_block_tab_pages['tab2'].caption;
	lb_tab_1.style.backgroundImage = 'url(' + left_block_tab_pages['tab2'].bg_image + ')';
	lb_tab_1.style.height = (!(!!document.uniqueID))?'34px':'35px';
	lb_tab_1.style.color = left_block_tab_pages['tab2'].font_color;	
	
	/* TAB 3 */
	var lb_tab_1 = $('tab3');
	//change caption, background color and font color
	lb_tab_1.innerHTML = left_block_tab_pages['tab3'].caption;
	lb_tab_1.style.backgroundImage = 'url(' + left_block_tab_pages['tab3'].bg_image + ')';
	lb_tab_1.style.height = (!(!!document.uniqueID))?'34px':'35px';
	lb_tab_1.style.color = left_block_tab_pages['tab3'].font_color;	
	
	/* TAB 4 */
	var lb_tab_1 = $('tab4');
	//change caption, background color and font color
	lb_tab_1.innerHTML = left_block_tab_pages['tab4'].caption;
	lb_tab_1.style.backgroundImage = 'url(' + left_block_tab_pages['tab4'].bg_image + ')';
	lb_tab_1.style.height = (!(!!document.uniqueID))?'34px':'35px';
	lb_tab_1.style.color = left_block_tab_pages['tab4'].font_color;

	// CHANGE CONTENT_BLOCK BACKGROUND COLOR
	//$('left_block_content').style.backgroundColor = '#fff';		
	$('left_block_content').innerHTML = '<IMG SRC="http://img.123greetings.com/images/loading.gif" ALIGN="absmiddle" WIDTH="20" HEIGHT="20" BORDER="0" ALT="" VSPACE="50"> <span>Loading...</span></div>';
	$('left_block_content').paddingTop = 10 + 'px';




	//change the visibility of the left_block
	var l_block = $('left_block').style;
	l_block.visibility = 'visible'; // l_block is defined above and is not destroyed
	l_block.backgroundColor = '#FFFFFF';

	if (!(!!document.uniqueID)) {		
		if(screen.width >800) l_block.paddingLeft = 7 + 'px';
		$('lb_tbl').style.width = 158 + 'px';
		$('lb_tbl').cellSpacing = '1';

	}else{
		$('lb_tbl').style.width = 160 + 'px';
		$('left_block_content').style.width = '158px';
	}
	


	if (window.addEventListener) {
		$('tab1').addEventListener('click', function () {
		    if (left_block_tab_pages['tab1'].tab_click_link != '') {
			    window.location.href = left_block_tab_pages['tab1'].tab_click_link;
			}
		}, false);
		$('tab2').addEventListener('click', function () {
		    if(left_block_tab_pages['tab2'].tab_click_link != '') {
				window.location.href = left_block_tab_pages['tab2'].tab_click_link;
			}
		}, false);
		$('tab3').addEventListener('click', function () {
		    if(left_block_tab_pages['tab3'].tab_click_link != '') {
				window.location.href = left_block_tab_pages['tab3'].tab_click_link;
			}
		}, false);
		$('tab4').addEventListener('click', function () {
		    if(left_block_tab_pages['tab4'].tab_click_link) {
				window.location.href = left_block_tab_pages['tab4'].tab_click_link;
			}
		}, false);
	}else {
	    $('tab1').attachEvent('onclick', function () {
			if (left_block_tab_pages['tab1'].tab_click_link != '') {
			    window.location.href = left_block_tab_pages['tab1'].tab_click_link;
			}		    
		});
		$('tab2').attachEvent('onclick', function () {
			if(left_block_tab_pages['tab2'].tab_click_link != '') {
				window.location.href = left_block_tab_pages['tab2'].tab_click_link;
			}
		});
		$('tab3').attachEvent('onclick', function () {
			if(left_block_tab_pages['tab3'].tab_click_link != '') {
				window.location.href = left_block_tab_pages['tab3'].tab_click_link;
			}
		});
		$('tab4').attachEvent('onclick', function () {
			if(left_block_tab_pages['tab4'].tab_click_link) {
				window.location.href = left_block_tab_pages['tab4'].tab_click_link;
			}
		});
	}