 // AJAX implementation

// GLOBAL VARIABLES

var rec_to_show = 8;			// holds the number of records to show per page
var active_page = 1;			// the first page to show ALWAYS 1
var container = 'container';	// the id of the thumbs container
var _loading = false; 

//-----------------------------


/*	This function initiates call to AJAX */
function call() {
	//if ajax is not supported then follow the normal link
	if (! IS_AJAX_ENABLED) {		
	    return true;
	}
	// if arguments has value then it is the active page number
	// otherwise this is the first time call	
	active_page = (arguments[0] != null && typeof(arguments[0]) == 'number') ? parseInt(arguments[0]) : 1 ;

	// get the active page path to call
	var page_name = getPageName();

	if (!page_name) {
	    return true;
	}

	//show loading message
	show_loading();

	// initiate call to AJAX
	var ajax_obj = new AJAX();
	ajax_obj.init('true','GET','XML',page_name,'',createContentBlock);
	ajax_obj = null;

	// return false
	return false;
}

/* returns page name */
function getPageName() {
	if (typeof(total_rec) != 'undefined') {			
		if (total_rec > 0) {			
			var num_pages = Math.ceil(total_rec/rec_to_show); // calculate the number of pages
			if (active_page <= num_pages) {
				return 'page' + active_page + '.xml'; // returns page name to read
			}else {				
				return;
			}
		}else {			
			return;
		}
	}else {		
	     return;
	}
}


/**
* This function creates the content blocks of the pages
*/
function createContentBlock(xml) {
	// get the responseXML
	// get the image collection for xml response
	// this is case-sensitive make sure the xml contains small case
	if (xml == null) {
	    return;
	}else {
		var imgcol = xml.getElementsByTagName('ecard');	
		
		// get page title and change it
		try {
			var pageTitle = xml.getElementsByTagName('pagetitle')[0].firstChild.nodeValue;
			document.title = pageTitle;
		}catch(e) {}
		
		// now get the image collection to get the attribute
		var output = buildTable(imgcol);
		var nav_bar = build_pagination_bar(active_page);	

		// change the innerHTML of the container	
		document.getElementById('container').innerHTML = '';	
		document.getElementById(container).innerHTML = output;		
		document.getElementById('pagin_head').innerHTML = nav_bar;
		if (nav_bar.length == 0) {
			// no records so set the bg of the cell to transparent
		    document.getElementById('pagin_head').style.backgroundColor = 'transparent';
			try {
				document.getElementById('pagin_foot').style.backgroundColor = 'transparent';   
			}
			catch (e){}				
		}
		try{
			document.getElementById('pagin_foot').innerHTML = nav_bar;
		}catch(e){}		
	}
	//hide the loading message
	hide_loading();
	// refresh adverts
	refreshAds();
}


/**
* Builds the table structure of the thumb container
*
*/
function buildTable(imgcol) {	
	var tableHTML = new Array();
	tableHTML[tableHTML.length] = '<table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td colspan=4>&nbsp;</td></tr><tr>';	
	var row_ctr = 0; // row counter creates new row/<tr> if exceeds 2

	var thumb_link = thumb_src = redline = type = greenline = newimage = bigimage = '';
	var strWrite = ''; // holds either card type or number of records
	var thumb_image_path = 'http://img.123greetings.com/thumbs/'; // thumb image source path
	
	for (var i=0; i < imgcol.length; i++ ) {		
		if (row_ctr == 2) {
		    tableHTML[tableHTML.length] = '</tr><tr><td colspan=4>&nbsp;</td></tr><tr>';
			row_ctr = 0;
		}
		// get the image elements array
		node = imgcol[i];

		thumb_link = node.getElementsByTagName("thumblink")[0].firstChild.nodeValue;
		thumb_src = thumb_image_path + node.getElementsByTagName("image")[0].firstChild.nodeValue;
		redline = node.getElementsByTagName("redline")[0].firstChild.nodeValue;
		greenline = node.getElementsByTagName("greenline")[0].firstChild.nodeValue;
		// big image path
		bigimage = node.getElementsByTagName("image")[0].firstChild.nodeValue; 
		
		try {
			newimage = node.getElementsByTagName("newimagepath")[0].firstChild.nodeValue;
		}catch(e) {
			newimage = '';
		}


		// if label is blank then look for no_cards tag
		try {
		    type = node.getElementsByTagName("label")[0].firstChild.nodeValue;
		}
		catch (e){
		    type = '';
		}

		if (type == '') {
			no_of_cards = node.getElementsByTagName("no_cards")[0].firstChild.nodeValue;
			strWrite = (no_of_cards > 0) ? "[ " + no_of_cards + " cards ]" : "";
		}else {
			type = getType(type);
			strWrite = "[ " + type + " ]";
		}
		// fill up images array for preloading
		// call preloader
		Preload(new Array(thumb_src));
		
		tableHTML[tableHTML.length] = '<td align="center" valign="middle"><table width=140 height=140 border=0 cellspacing=1 cellpadding=1 > <tr><td valign="middle" background="http://img.123greetings.com/images/imgback_thumb.gif" align="center" style="background-repeat: no-repeat;border-color: transparent"><a href=' + thumb_link + '><img border="0" src=' + thumb_src + ' alt="' + (redline + ' ' + greenline) + '" height="115" width="115" title="' + (redline + ' ' + greenline) + '" align="absmiddle"></a></td></tr></table></td>';
		
		tableHTML[tableHTML.length] = '<td valign="middle" width="21%"><a href="' + thumb_link + '" title="' + (redline + ' ' + greenline) + '"><FONT face="MS SANS SERIF" color=#cc0000 size=2><B>' + redline + '</b></font></a><BR><a href="' + thumb_link + '" title="' + (redline + ' ' + greenline) + '"><FONT face="MS SANS SERIF" color=#006600 size=1>' + greenline + '</font></a><br><a href="' + thumb_link + '" title="' + (redline + ' ' + greenline) + '"><FONT face="MS SANS SERIF" color=#006600 size="1"><b>' + strWrite + '</font></b></a></font>';
		
		//show my_space logo only if type is not blank
		if (type != '') {
			if (type == 'Animated') {
				var image_path = '';
				if (newimage == '') {
				    image_path = 'http://img.123greetings.com/eventsnew/' + bigimage
				}else {
				    image_path = newimage + bigimage;
				}
			    var jsFunc = 'dhtml.showBox(event, \'ms\',\'' + image_path + '\', \'' + thumb_link + '\', \'A\')';
				tableHTML[tableHTML.length] = '<BR>&nbsp;<BR><IMG SRC="http://img.123greetings.com/images/add_space.gif" WIDTH="102" HEIGHT="16" BORDER="0" ALT="" onClick="' + jsFunc + '" style="cursor:pointer"></td>';
			}else {
				tableHTML[tableHTML.length] = '<BR>&nbsp;<BR><IMG SRC="http://img.123greetings.com/images/add_space.gif" WIDTH="102" HEIGHT="16" BORDER="0" ALT="" onClick="dhtml.showBox(event, \'ms\',\'' + thumb_src + '\', \'' + thumb_link + '\')" style="cursor:pointer"></td>';
			}
		}
		
		row_ctr++; // increase counter
	}
	tableHTML[tableHTML.length] = '<tr><td colspan=4>&nbsp;</td></tr></table>';	
	return tableHTML.join('');		
}


/* function to determine the card type like Postcard, Flash, Animated etc. */
function getType(type) {
	var card_type = '';
	switch (type.toUpperCase()) {
		case 'F':
			card_type = 'Flash';
			break;
		case 'I':
			card_type = 'Interactive';
			break;
		case 'A':
			card_type = 'Animated';
			break;
		case 'P':
			card_type = 'Postcard';
			break;
		case 'O':
			card_type = 'Clickcard';
			break;
	}

	return card_type;
}

/* copies the top navigation bar to footer */
function copy_header() {
	if (document.getElementById('pagin_head').innerHTML != '') {	
		document.getElementById('pagin_foot').innerHTML = document.getElementById('pagin_head').innerHTML;
	}else {
		// no records so set the bg of the cell to transparent
	    document.getElementById('pagin_foot').bgColor = 'transparent';
	}
}

/**
* Builds the pagination/navigation bar of the thumbpage
* 
*/
function build_pagination_bar(page) {

	var nav_str = new Array();
	var num_pages = Math.ceil(total_rec/rec_to_show);
	
	if (total_rec > 0) {	// check whether total_rec that holds number of records is > 0
		
		if (total_rec > 8) {		
			
			if (num_pages > 0) {	
				
				nav_str[nav_str.length] = '<TABLE cellpadding=1 cellspacing=0 width="100%" border=0 ><TBODY><TR bgColor=#efefef>';
				
				// determines the placement of Separator or Vertical Bar '|'
				if (page == 1) {
					nav_str[nav_str.length] = '<TD align=left width="30%"><FONT face=Verdana color=#00058a size=1>&nbsp;</FONT></TD>';    
				}else {
					nav_str[nav_str.length] = '<TD align=left width="30%"><FONT face=Verdana color=#00058a size=1>&nbsp;<a href="javascript:void(0)" onmouseover="self.status=\'\';return true;" onClick="prev_records('+(page-1)+');"><B>&lt;Back</B></A></FONT></TD>';
				}
				
				
				nav_str[nav_str.length] = '<TD align="center" width="40%" valign="absmiddle" style="padding-bottom: 2px">';

				
				for (var i = 1; i <= num_pages; i++ ) {
					// determines the placement of Separator or Vertical Bar '|'
					if (i==page) {
						if (i==num_pages) {
							nav_str[nav_str.length] = '<FONT face="verdana" color="gray" size="1"><B>'+i+'</b></font>';    
						}else {
							nav_str[nav_str.length] = '<FONT face="verdana" color="gray" size="1"><B>'+i+'</b></font><FONT face=verdana color="#00058a" size="1"> | </font>';
						}			    
					}else {
						// determines the current page being viewed
						if (i == num_pages) {
							nav_str[nav_str.length] = '<FONT face=Verdana color=#00058a size=1><A href="javascript:void(0)" onmouseover="self.status=\'\';return true;" onClick="call('+(i)+')"><B>'+i+'</B></A></font>';    
						}else {
							nav_str[nav_str.length] = '<FONT face=Verdana color=#00058a size=1><A href="javascript:void(0)" onmouseover="self.status=\'\';return true;" onClick="call('+(i)+')"><B>'+i+'</B></A></font><FONT face=verdana color=#00058a size=1> | </font>';
						}				
					}
				}

				if (page == num_pages) {
					nav_str[nav_str.length] = '</TD><TD align=right width="30%"><FONT face=Verdana color=#00058a size=1>&nbsp;</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>';    
				}else {
					nav_str[nav_str.length] = '</TD><TD align=right width="30%"><FONT face=Verdana color=#00058a size=1><A href="javascript:void(0)" onmouseover="self.status=\'\';return true;" onClick="next_records('+(page+1)+');"><B>Next&gt;</B></A>&nbsp;</FONT></TD></TR></TBODY></TABLE>';
				}		
			}
		}else {
		     nav_str[nav_str.length] = '';
		}
	}else {
		// total records can't be empty if is then return null
	    return;
	}
	return nav_str.join('');
}

/**
* Navigates to next set of records
*/
function next_records(page) {	
	num_pages = Math.ceil(total_rec/rec_to_show);
	if (page <= num_pages) {		
		active_page = page;		
	    return call(page);
	}
}

/**
* Navigates to previous set of records
*/
function prev_records(page) {	
	if (page >= 1) {
		active_page = page;
		return call(page);
	}
}

/******************************** IMAGE PRELOADING ****************************/
var aImages=new Array();
function Preload() {
	var temp = Preload.arguments;
	var tempLen = temp.length;
	for(x=0; x < tempLen; x++) {
		aImages[x]=new Image();
		aImages[x].src=Preload.arguments[x];
	}
}

/*************************** show loading ********************/
/*
* Function when called displays a dynamically created div with loading message.
*/
var image = new Image();
image.src = 'http://img.123greetings.com/images/loading.gif';
image.align = 'absmiddle';

function show_loading(){	
	//show loading message text
	if (!_loading) {
		var oDiv = document.createElement('div');
		oDiv.setAttribute('id','loading');
		oDiv.id = 'loading';
		oDiv.style.position = 'absolute';
		oDiv.style.zIndex = '50';		
		oDiv.style.top = findPosY(document.getElementById('pagin_head')) - 10; // add top scroll amount		
		oDiv.style.left = (parseInt(getWinSize() / 2)- parseInt(200/2));
		oDiv.style.height = 50;
		oDiv.style.width = 200;
		oDiv.style.paddingTop = 15;
		oDiv.style.backgroundColor = '#FFFFFF';//'#00A8F9';
		oDiv.style.opacity = .95;
		oDiv.style.filter = 'alpha(opacity=' + 95 + ')';
		oDiv.style.textAlign = 'center';
		oDiv.style.fontFamily = 'verdana, Geneva, Helvetica';
		oDiv.style.fontWeight = 'bold';
		oDiv.style.fontSize = '10';
		oDiv.style.color = '#000000';
		oDiv.style.borderStyle = 'ridge';		
		oDiv.style.borderColor = '#808080';
		oDiv.style.borderWidth = 1;
		oDiv.style.visibility = 'visible';
		//create image
		oDiv.appendChild(image);
		oDiv.appendChild(document.createTextNode("   Loading...."));		
		document.body.insertBefore(oDiv, document.body.childNodes[0]);
		_loading = true;
	}
}
	

/*
*
* Function used to hide the loading message
*
*/
function hide_loading() {		
	// code to hide loading message	
	if (_loading) {	
		document.body.removeChild(document.getElementById('loading'));
		_loading = false;
	}	
}

function getWinSize() {
	var winW;
	// get window size adjusted for scrollbars
	if (window.innerWidth) {
		winW = window.innerWidth-16;
	}
	if (document.body.offsetWidth) {
		winW = document.body.offsetWidth-20;
	}
	return winW;
}

/* Find a Top position of an element in the page */
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

/* This function refreshes ads */
function refreshAds() {
	var adPos = OAS_listpos.split(',');
	var iframeSrc = 'http://img.123greetings.com/banner_js/showad.html';
	var strAdvertBanner = '<IFRAME name="bannerFrame" id="bannerFrame" marginheight="0" marginwidth="0" align="middle" height="HE" width="WI" frameborder="0" allowtransparency="true" src="SRC" scrolling=no></iframe>';
	//change top banner 728 x 90
	if (document.getElementById('top_banner')) {
		var strBanner = strAdvertBanner.replace(/HE/,'90');
		strBanner = strBanner.replace(/WI/,'748');
		strBanner = strBanner.replace(/SRC/, iframeSrc + '#' + adPos[0] + '|' + OAS_listpos + '|' + OAS_sitepage + '|' + OAS_query);
		document.getElementById('top_banner').innerHTML = strBanner;
	}
	// change right banner 128 x 600
	if (document.getElementById('right_banner')) {
		var strBanner = strAdvertBanner.replace(/HE/,'620');
		strBanner = strBanner.replace(/WI/,'128');
		strBanner = strBanner.replace(/SRC/, iframeSrc + '#' + adPos[1] + '|' + OAS_listpos + '|' + OAS_sitepage + '|' + OAS_query);
		document.getElementById('right_banner').innerHTML = strBanner;
	}
	//change middle banner 300 x 250
	if (document.getElementById('middle_banner')) {
		var strBanner = strAdvertBanner.replace(/HE/,'258');
		strBanner = strBanner.replace(/WI/,'320');
		strBanner = strBanner.replace(/SRC/, iframeSrc + '#' + adPos[2] + '|' + OAS_listpos + '|' + OAS_sitepage + '|' + OAS_query);
		document.getElementById('middle_banner').innerHTML = strBanner;
	}
}




/* My Space Box Display Code */
var image1 = new Image();
image1.src = 'http://img.123greetings.com/images/myspace_help.gif';

var image2 = new Image();
image2.src = 'http://img.123greetings.com/images/myspace_close.gif';


var dhtml = {
	isShowing : false,
	isShowingHelp : false,
	
	box_html : '<TABLE width="100%" cellspacing="0" border="0"><TR><TD bgcolor="#FF66CC"><span style="font:bold 70% verdana, helvetica;color:#FFFFFF">{--BOX_TITLE--}</span></TD><TD bgcolor="#FF66CC" align="right"><IMG onclick="dhtml.closeBox(event)" SRC="http://img.123greetings.com/images/myspace_close.gif" WIDTH="15" HEIGHT="15" BORDER="0" ALT="Close" align="right" style="cursor:pointer"></TD></TR><TR><TD colspan="2" id="code_box_header_txt"><span style="font:normal 10px verdana;text-align:justify">{--HEAD_TEXT--}</span></TD></TR><TR><TD colspan="2" valign="top" align="center"><TEXTAREA onclick="this.select()" id="copy_code" style="width:390px;height:175px;margin-top:2px;font: normal xx-small verdana, helvetica;overflow: auto">{--CODE--}</TEXTAREA></TD></TR><TR><TD bgcolor="#FF66CC" height="15"><input type="button" onclick="dhtml.selText(event);" value="Select the Code" style="border: 1px solid #000;height: 16px; width:100px;font:bold 10px verdana, helvetica;color:#333366;cursor:pointer;background-color:#FFCCFF"><span style="font:normal 10px verdana;color:#ffffff" id="copy_msg"></span></TD><TD bgcolor="#FF66CC" align="right"><span onclick="dhtml.showHelp(event)" style="font: bold 10px verdana, helvetica;color:#FFFFFF;cursor:pointer;" id="change_text">View Help</span><IMG SRC="http://img.123greetings.com/images/myspace_help.gif" WIDTH="18" HEIGHT="16" BORDER="0" ALT="Help" align="absmiddle"></TD></TR><TR id="help_cont" style="width:1px"><TD colspan="2" id="help_text"></TD></TR></TABLE>',
	
	code_html : '<center><TABLE height="140" width="140"><TR><TD background="http://img.123greetings.com/images/imgback_thumb.gif" height="140" width="140" style="background-repeat: no-repeat;" align="center"><A href="http://www.123greetings.com{--HTML_URL--}"><img src="{--IMG_URL--}" width=115 height=115 BORDER="0" alt="Send this free eCard"/></A></TD></TR></TABLE><a href="http://www.123greetings.com{--HTML_URL--}">Send this eCard !</a></center><br/>',
	
	animated_html : '<center><A href="http://www.123greetings.com{--HTML_URL--}"><img src="{--IMG_URL--}" BORDER="0" alt="Send this free eCard"/></A><br/><a href="http://www.123greetings.com{--HTML_URL--}">Send this eCard !</a></center><br/>',

	showBox : function (e, code, img_url, html_path, cType) {
		if(!e) var e = window.event;
		// card type
		cType = cType || '';

		// prevent event bubbling
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		if (e.preventDefault) e.preventDefault();
		else e.returnValue = 0;
		dhtml.closeBox(e);

		if (!dhtml.isShowing) {
			switch (code.toLowerCase()) {
				case 'ms':				
					var box_title = 'MySpace';
					var oDiv = document.createElement('div');
					oDiv.id = 'show_box';
					oDiv.setAttribute('id', 'show_box');
					oDiv.style.width = 1 + 'px';
					oDiv.style.overflow = 'hidden';
					oDiv.style.backgroundColor = '#FFD9FF';
					
					oDiv.style.borderStyle = 'dashed';
					oDiv.style.borderColor = '#004993';
					oDiv.style.borderWidth = 1 + 'px';
					oDiv.style.position = 'absolute';
					var coord = eval ('(' + dhtml.getMouseXY(e) + ')');
					oDiv.style.top = coord.y;
					oDiv.style.left = ((coord.x + 400) > dhtml.getWinWidth() ? coord.x - (coord.x + 400 - dhtml.getWinWidth()) - 5 : coord.x);
					oDiv.style.zIndex = 250;
					oDiv.onclick = function (e) {
						if(!e) var e = window.event;
						e.cancelBubble = true;
						if (e.stopPropagation) e.stopPropagation();
						if (e.preventDefault) e.preventDefault();
						else e.returnValue = 0;						
					};
					
					//attach div to body
					document.body.appendChild(oDiv);
					var temp_html = dhtml.box_html.replace(/{--HEAD_TEXT--}/, 'Please copy the code from the box and paste it to MySpace');

					var code_html2 = '';

					if (cType.toUpperCase() == 'A') {
						code_html2 = dhtml.animated_html.replace(/{--HTML_URL--}/g, html_path);
						code_html2 = code_html2.replace(/{--IMG_URL--}/, img_url);    
					}else {
						code_html2 = dhtml.code_html.replace(/{--HTML_URL--}/g, html_path);
						code_html2 = code_html2.replace(/{--IMG_URL--}/, img_url);
					}

					temp_html = temp_html.replace(/{--CODE--}/, code_html2);
					temp_html = temp_html.replace(/{--BOX_TITLE--}/, box_title);
					oDiv.innerHTML = temp_html;

					code_html2 = null;
					temp_html = null;
					// expand width
					this.expandWidth(oDiv, 1, 400, 18, 10, 0.5, function () {
						dhtml.addEvent(document.getElementById('copy_code'), 'mousedown', dhtml.autoCopy);		
					});
					dhtml.isShowing = true;
					break;
			}
		}
	},
	//add event
	addEvent : function (obj, type, fn) {
		if (obj.addEventListener) {
			obj.addEventListener( type, fn, false );
		}else {
			if ( obj.attachEvent ) { 
				obj['e'+type+fn] = fn; 
				obj[type+fn] = function(){ obj['e'+type+fn]( window.event ); } 
				obj.attachEvent( 'on'+type, obj[type+fn] ); 
			}
		}
	},
	
	selText : function (e) {
		if(!e) var e = window.event;
		var isIE = !!document.uniqueID;

		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		if (e.preventDefault) e.preventDefault();
		else e.returnValue = 0;

		var src = document.getElementById('copy_code');		
		src.focus();
		src.select();

		dhtml.autoCopy(e);
	},
	
	getWinWidth : function () {
		return window.innerWidth - 16 || document.body.offsetWidth - 20;
	},
	
	getMouseXY : function (e) {
		var IE = document.all ? true : false;
		if (!IE) document.captureEvents(Event.MOUSEMOVE);

		var mouseX = mouseY = 0;
		if(!IE){
			mouseX = e.pageX;
			mouseY = e.pageY;
		}else {
			mouseX = event.clientX + document.body.scrollLeft;
			mouseY = event.clientY + document.body.scrollTop;
		}
		// return object
		return '{x' + ':' + mouseX + ',y' + ':' + mouseY + '}';
	},
	
	showHelp : function (e) {
		if(!e) var e = window.event;
		var isIE = !!document.uniqueID;

		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		if (e.preventDefault) e.preventDefault();
		else e.returnValue = 0;

		var html_text = "<div style='font:bold 10px verdana;margin-left:5px'>To add an ecard to your 'Myspace' profile, follow these simple steps:<br></div><ol style='font: normal 10px verdana'><li>Click the 'Add To Myspace' button beside the ecard. When the window opens, click on 'Select the Code' button and press 'Ctrl + C' to copy the code.</li><li>Now in a different window, open 'Myspace.com' and log in.</li><li>After you log in, in the page which opens, click the 'Edit Profile' button.</li><li>In the 'Edit Profile' page, press 'Ctrl + V' to paste the code in any of the boxes given. (e.g. 'About Me', 'I'd like to Meet', 'Interests', etc)</li><li>After pasting the code, click the 'Preview Profile' button to see the final placement of the ecard you have added.</li><li>DON'T FORGET to click the 'Save All Changes' button, to save all the changes made in your profile. If you forget this step, your ecard won't be added to your 'Myspace' profile.</li><li>The ecard will now be in your 'Myspace' profile !!! Feel free to make a bulletin to get your friends to play it on your 'Myspace' profile, and don't forget to tell them how easy it is to add their own favorite ecards from 123greetings.com</li></ol>";

		if (!dhtml.isShowingHelp) {
		    var oDiv = document.getElementById('help_text');			
			oDiv.innerHTML = html_text;
			document.getElementById('change_text').innerHTML = 'Close Help';
			dhtml.isShowingHelp = true;
		}else {
		    dhtml.closeHelp();
		}
	},
	
	closeHelp : function () {
		if (dhtml.isShowingHelp) {
			if(document.getElementById('change_text'))
				document.getElementById('change_text').innerHTML = 'View Help';
			if(document.getElementById('help_text'))
				document.getElementById('help_text').innerHTML = '';
			dhtml.isShowingHelp = false;			
		}
	},
	
	autoCopy : function (e) {
		var isIE = !!document.uniqueID;

		if(!e) var e = window.event;
		if(!isIE) document.captureEvents(Event.MOUSEDOWN);
		
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		if (e.preventDefault) e.preventDefault();
		else e.returnValue = 0;

		var src = e.srcElement || e.target;
		
		// code for copy in IE
		if (isIE) {
		    //IE
			var copiedTxt = document.selection.createRange();
			copiedTxt.execCommand('copy');// copy text
			if(document.getElementById('copy_msg')) {
				document.getElementById('copy_msg').innerHTML = '&nbsp;Code copied to clipboard';
				document.getElementById('copy_msg').style.color = '#ffffff';
			}
			window.setTimeout(function () {				
				if(document.getElementById('copy_msg'))
					document.getElementById("copy_msg").style.color="#FF66CC";
			}, 5000);
		}
		// select text
		if(src.tagName.toLowerCase() == 'textarea') {
			src.focus();
			src.select();
		}
	},
	
	closeBox : function (e) {
		var obj = e.target || e.srcElement;
		var tag = obj.tagName.toLowerCase() || obj.tagName.toLowerCase();
		var button = e.which || e.button;

		if(tag != 'textarea' && button != 3) {
			if (dhtml.isShowing)
				document.getElementById('show_box').parentNode.removeChild(document.getElementById('show_box'));
			dhtml.isShowing = false;
			dhtml.closeHelp();
		}
	},

	// function to provide animated folding right or expanding width
	expandWidth : function (elem,startWidth,endWidth,steps,intervals,powr, callback) { 
		if (elem.widthChangeIntval)
			window.clearInterval(elem.widthChangeIntval);
		
		var actStep = 0;
		elem.widthChangeIntval = window.setInterval(function() { 
			elem.currentWidth = dhtml.ease(startWidth,endWidth,steps,actStep,powr);
			elem.style.width = elem.currentWidth + "px"; 
			actStep++;
			if (actStep > steps) {
				window.clearInterval(elem.widthChangeIntval);
				if(elem.currentWidth == 1 && elem.style.display == 'block') {
					elem.style.display = 'none';
				}
				elem = null;
				// callback function
				if (typeof callback == 'string') eval(callback);
				else if(typeof callback == 'function') callback();
			}
		},intervals);
	},

	// animation steps calculation
	ease : function (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);
	}
};

// on click document
if (document.addEventListener) {
    document.addEventListener('click', dhtml.closeBox, false);
}else {
    document.attachEvent('onclick', dhtml.closeBox);
}