	var curscreen = '';
	var secondscreen = '';
	var tabs = new Array();
	var formObj;
	function $e(id)
	{
		return document.getElementById(id);
	}
	function $v(id)
	{
		return document.getElementById(id).value;
	}
	function $i(id)
	{
		return document.getElementById(id).innerHTML;
	}
	function htmldecode(htmlstring)
	{
		return htmlstring.replace('&amp;','&').replace('&nbsp;',' ').replace('&lt;','<').replace('&gt;','>').replace('&apos;','\'').replace('&quot;','"');
	}
	function htmlencode(htmlstring)
	{
		return htmlstring.replace('&','&amp;').replace('<','&lt;').replace('>','&gt;').replace('\'','&apos;').replace('"','&quot;');
	}
	function selectValue(id,value)
	{
		var select = document.getElementById(id).getElementsByTagName('option');
		for(i=0;i<select.length;i++)
			if(select[i].value == value)
				select[i].selected = 'selected';
			else
				select[i].selected = null;
	}
	function selectElement(id,ele)
	{
		selectValue(id,document.getElementById(ele).value);
	}
	function getradiovalue(radioname)
	{
		if(!document.getElementsByName(radioname))
			return;
		var ids = document.getElementsByName(radioname);
		for(i=0;i<ids.length;i++)
			if(ids[i].checked)
				return ids[i].value;
		return 0;
	}
	function getradioid(radioname)
	{
		if(!document.getElementsByName(radioname))
			return;
		var ids = document.getElementsByName(radioname);
		for(i=0;i<ids.length;i++)
			if(ids[i].checked)
				return ids[i].id;
		return 0;
	}
	
	function getselectedradio(radioname)
	{
		if(!document.getElementsByName(radioname))
			return;
		var ids = document.getElementsByName(radioname);
		for(i=0;i<ids.length;i++)
			if(ids[i].checked)
				return ids[i];
		return null;
	}
	function left(str, n)
	{
		if (n <= 0)
			return '';
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}
	function right(str, n)
	{
		if (n <= 0)
			return '';
		else if (n > String(str).length)
			return str;
		else
		{
			var iLen = String(str).length;
			return String(str).substring(iLen, iLen - n);
		}
	}
	String.prototype.trim = function()
	{
		a = this.replaceAll(/^\s+/, '');
		return a.replaceAll(/\s+$/, '');
	};
	function isEmail(add){
		if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/.test(add))
			return true;
		else
			return false;
	}
	function isValidEmail(str){
		return (str.indexOf('.') > 2) && (str.indexOf('@') > 0 && str.length > 4);
 	}
	function findX(obj)
	{
		var curleft = 0;
		if(obj.offsetParent)
			while(1)
				{
					curleft += obj.offsetLeft;
					if(!obj.offsetParent)
						break;
					obj = obj.offsetParent;
				}
		else if(obj.x)
			curleft += obj.x;
		return curleft;
	}
	function findY(obj)
	{
		var curtop = 0;
		if(obj.offsetParent)
			while(1)
			{
				curtop += obj.offsetTop;
				if(!obj.offsetParent)
					break;
				obj = obj.offsetParent;
			}
		else if(obj.y)
			curtop += obj.y;
		return curtop;
	}
	function noresponse(response)
	{
		alert ('A background AJAX request was sent to retrieve details. It failed with the following message:\n' + response.responseText);
		hidescreen();
	}
	function screen(id,flag)
	{
		if(flag)
		{
			if(document.all)
			{
				var body = document.getElementsByTagName('html')[0];
				body.style.height = '100%';
				body.style.overflow = 'hidden';
			}
			else
				document.body.style.overflow = 'hidden';
			scroll(0,0);
			document.getElementById('screen').style.display = 'block';
			document.getElementById(id).style.display = 'block';
			document.getElementById(id).focus();
			if(curscreen)
				secondscreen = id;
			else
				curscreen = id;
		}
		else
		{
			if(document.all)
			{
				var body = document.getElementsByTagName('html')[0];
				body.style.height = '';
				body.style.overflow = '';
			}
			else
				document.body.style.overflow = '';
			if(id == curscreen)
			{
			document.getElementById('screen').style.display = 'none';
				curscreen = '';
			}
			else
				secondscreen = '';
			document.getElementById(id).style.display = 'none';
		}
	}
	function toggle_display(id)
	{
		if($e(id).style.display == 'none')
			$e(id).style.display = 'block';
		else
			$e(id).style.display = 'none';
	}
	function show(id)
	{
		if($e(id))
			$e(id).style.display = 'block';
	}
	function hide(id)
	{
		if($e(id))
			$e(id).style.display = 'none';
	}
	function changeFont(dir,node)
	{
		var size = document.getElementsByTagName('body')[0].style.fontSize;
		if(size)
			size = parseInt(size.replace('px',''));
		else
			size = 13;
		var origsize = size;
		if(dir == 1)
			size -= 1;
		else if(dir == 2)
			size += 1;
		if(size > 16)
			size = 16;
		if(size < 10)
			size = 10;
		if(size != origsize)
		{
			document.getElementsByTagName('body')[0].style.fontSize = size + 'px';
			var s = document.createElement('SCRIPT');
			s.src = 'scripts/ajax/fontsize.php?size=' + size + 'px';
			var h = document.getElementsByTagName('head').item(0);
			h.appendChild(s);
		}
	}
	function hidescreen()
	{
		if(curscreen)
			screen(curscreen,0);
	}
	function closeHelp(name)
	{
		hide('divhelp');
		var url = 'scripts/ajax/updatesession.php?name=' + name + '&value=0';
		var ajax = new Ajax.Request(url, {method: 'post'});
	}
	function showHelp(name)
	{
		var url = 'scripts/ajax/gethelp.php?name=' + name;
		var ajax = new Ajax.Request(url, {method: 'post', onSuccess: fillHelp});
	}
	function fillHelp(response)
	{
		$e('divhelp').innerHTML = response.responseText;
		show('divhelp');
	}
	function checkDOB(id)
	{
		var dateArray = $v(id).split('-');
		var dd = new Date(dateArray[0].substr(0), (dateArray[1] - 1), dateArray[2]);
		var cur = new Date();
		if(dd < cur)
			return true;
		else
			return false;
	}
	function popupinit()
	{
		styleInputs();
	}
	function styleInputs() {
		var els = document.getElementsByTagName('input');
		var elsLen = els.length;
		var i = 0;
		for ( i=0;i<elsLen;i++ )
		{
			if ( els[i].getAttribute('type') )
			{
				var type = els[i].getAttribute('type');
				if ( type == 'button' || type == 'submit' || type == 'reset' )
					els[i].className = 'btn';
			}
		}
	}
	function switchTab(tabset,tabid)
	{
		if(tabs[tabset])
		{
			$e(tabs[tabset]).className = 'tab';
			$e(tabs[tabset] + 'link').className = '';
		}
		$e(tabid).className = 'tab active';
		$e(tabid + 'link').className = 'active';
		tabs[tabset] = tabid;
	}
	function switchVirtualTab(tabset,tabid)
	{
		if(tabs[tabset])
			$e(tabs[tabset] + 'link').className = '';
		$e(tabid + 'link').className = 'active';
		tabs[tabset] = tabid;
	}
	function editObject(type,id)
	{
		$e('divobject').innerHTML = '<table align="center" height="100%"><tr><td align="center" height="100%" valign="middle"><img src="images/loading.gif" border="0" /></td></tr></table>';
		screen('divobject',1);
		var url = 'o' + type + '.html?id=' + id;
		var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: fillObject, onFailure: noresponse});
	}
	function editSelectedObject(type)
	{
		id = getradiovalue('id');
		if(id && parseInt(id) > 0)
			editObject(type,id);
		else
			alert('No object selected to edit.');
	}
	function deleteRow(ele)
	{
		var node = ele;
		while(node && node.tagName.toLowerCase() != 'tr')
			if(node.parentNode && node.parentNode != node)
				node = node.parentNode;
			else
				return;
		if(node)
			node.parentNode.removeChild(node);		
	}
	function deleteSelectedObject(type)
	{
		var node = getselectedradio('id');
		var id = node.value;
		deleteRow(node);
		if(id && parseInt(id) > 0)
		{
			var url = 'inc/delete.php?type=' + type + '&id=' + id;
			var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});
		}
		else
			alert('No object selected to delete.');
	}
	function deleteSelectedObjects(type)
	{
		var list = document.getElementsByName('id');
		var id = '';
		for(var i=0;i<list.length;i++)
		{
			if(list[i].value && list[i].checked)
			{
				id += list[i].value + ',';
				deleteRow(list[i]);
				list = document.getElementsByName('id');
				i--;
			}
		}
		if(id)
		{
			var url = 'inc/delete.php?type=' + type + '&ids=' + id;
			var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});
		}
		else
			alert('No object selected to delete.');
	}
	function deleteObject(type, id, node)
	{
		if(type=='packagetype')
		{
			if(confirm('Are you sure you want to delete this ' + type + '?'))
			{
				var url = 'inc/delete.php?type=' + type + '&id=' + id;
				var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});	
			}
		}
		if(type=='addons')
		{
			if(confirm('Are you sure you want to delete this ' + type + '?'))
			{
				var url = 'inc/delete.php?type=' + type + '&id=' + id;
				var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});	
			}
		}
		if(type=='package')
		{
			if(confirm('Are you sure you want to delete this ' + type + '?'))
			{
				var url = 'inc/delete.php?type=' + type + '&id=' + id;
				var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});	
			}
		}
	}
	function showMsgBox(response)
	{
		$e('msgBox').innerHTML = response.responseText;
		setTimeout(hidemsgBox,2000);
	}
	function enableSelectedCoupon()
	{
		id = getradiovalue('id');
		if(id && parseInt(id) > 0)
			enableCoupon(id,1);
		else
			alert('No coupon selected to enable.');
	}
	function disableSelectedCoupon()
	{
		id = getradiovalue('id');
		if(id && parseInt(id) > 0)
			enableCoupon(id,0);
		else
			alert('No coupon selected to disable.');
	}
	function enableCoupon(id,enable)
	{
		var url = 'inc/object/coupon.php?editid=' + id + '&setenable=' + enable;
		var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});
	}
	function fillObject(response)
	{
		var node = $e('divobject');
		node.innerHTML = response.responseText;

		var scriptTags = node.getElementsByTagName('SCRIPT');
		var string = '';
		var jsCode = '';
		for(var no=0;no<scriptTags.length;no++){
			if(scriptTags[no].src){
		        var head = document.getElementsByTagName("head")[0];
		        var scriptObj = document.createElement("script");

		        scriptObj.setAttribute("type", "text/javascript");
		        scriptObj.setAttribute("src", scriptTags[no].src);
			}
			else{
				jsCode = jsCode + scriptTags[no].innerHTML;
			}
		}
		if(jsCode)
		{
			try{
			    if (!jsCode)
			        return;
		        if (window.execScript){
		        	window.execScript(jsCode);
		        }else if(window.jQuery && jQuery.browser.safari){ // safari detection in jQuery
		            window.setTimeout(jsCode,0);
		        }else{
		            window.setTimeout(jsCode, 0 );
		        }
			}catch(e){

			}
		}

		if($e('frmobject'))
			formObj = new DHTMLSuite.form({ formRef:'frmobject',action:$e('frmobject').action,responseEl:'msgBox'});
	}

	function failField(id)
	{
		$e(id).className = 'error';
		if($e(id + '_err'))
			$e(id + '_err').className = 'error';
	}

	function passField(id)
	{
		$e(id).className = '';
		if($e(id + '_err'))
			$e(id + '_err').className = '';
	}

	function validateObject(fields)
	{
		var incomplete = false;
		for(var i=0;i<fields.length;i++)
		{
			if($e(fields[i]))
			{
				if(!$v(fields[i]) || $v(fields[i]) == '')
				{
					failField(fields[i]);
					if(incomplete == false)
						$e(fields[i]).focus();
					incomplete = true;
				}
				else
					passField(fields[i]);
			}
		}
		return !incomplete;
	}
	function validateNumeric(fields)
	{
		var incomplete = false;
		for(var i=0;i<fields.length;i++)
		{
			if($e(fields[i]))
			{
				var value = null;
				if($v(fields[i]))
					value = parseFloat($v(fields[i]));
				if(!value)
				{
					failField(fields[i]);
					if(incomplete == false)
						$e(fields[i]).focus();
					incomplete = true;
				}
				else
					passField(fields[i]);
			}
		}
		return !incomplete;
	}
	function validateEmail(id)
	{
		if(isEmail($v(id)))
		{
			passField(id);
			return true;
		}
		else
		{
			failField(id);
			return false;
		}
	}
	function validatePassword(p1,p2)
	{
		var pass = true;
		var p = $v(p1);
		if(!p || p.length < 6 || p.length > 16)
		{
			failField(p1);
			pass = false;
		}
		if(!$v(p2) || $v(p2) != p)
		{
			failField(p2);
			pass = false;
		}
		return pass;
	}
	function validateEqual(id1, id2)
	{
		if($e(id1) && $e(id2))
		{
			passField(id1);
			passField(id2);
			if($v(id1) != $v(id2))
			{
				failField(id2);
				return false;
			}
			else
			{
				if(!$v(id1))
				{	
					failField(id1);
					return false;
				}
				else
					return true;
			}
		}
		else
			return false;
	}
	function validatePair(id, id2)
	{
		if( (!$v(id)) != (!$v(id2)) )
		{
			if(!$v(id))
				failField(id);
			else
				failField(id2);
			return false;
		}
		else
		{
			passField(id);
			passField(id2);
			return true;
		}
	}
	function hidemsgBox()
	{
		$e('msgBox').innerHTML = '';
	}

/*	function hidemsgBox()
	{
		if($e('msgBox').style.display == 'none')
		{
			$e('msgBox').style.display == 'block';
			setTimeout(hidemsgBox,1000);
		}
		else
		{
			if($e('msgBox').style.display == 'block')
			{
				$e('msgBox').innerHTML = '';
				$e('msgBox').style.display = '';
			}
			else
			{
				$e('msgBox').style.display = 'none';
				setTimeout(hidemsgBox,300);
			}
		}
	}
*/
	function updateShippingTax(ele)
	{
		var enable = 0;
		if(ele.checked)
			enable = 1;
		var url = 'inc/object/domainprofile.php?shippingtax=' + enable;
		var ajax = new Ajax.Request(url, {method: 'post', parameters: '', onSuccess: showMsgBox, onFailure: noresponse});
	}

	function fillStates(country)
	{
		if($e('states'))
			$e('states').disabled = 'disabled';
		if(states[country] && states[country].length>0)
		{
			var code = '';
			for(var i=0;i<states[country].length;i++)
			{
				var result = states[country][i].split(/\|/);
				var stateid = result[0];
				var statename = result[1];
				code += '<option value="' + stateid + '">' + statename + '</option>';
			}
			$e('selectstatesdiv').innerHTML = '<select name="states" id="states"><option value="*" selected>All States&nbsp;&nbsp;</option>' + code + '</select>';
		}
		else
		{
			$e('selectstatesdiv').innerHTML = '<select name="states" id="states"><option value="*" selected>All States&nbsp;&nbsp;</option></select>';
		}
		if($e('states'))
			$e('states').disabled = null;
	}

	function selectCountry(ele)
	{
		fillStates(ele.value);
	}

	function selectAllOptions(checked, ele_id)
	{
		if($e(ele_id))
		{
			var opts = $e(ele_id).options;
			for(var i=0;i<opts.length;i++)
			{
				if(checked)
					opts[i].selected = true;
				else
					opts[i].selected = false;
			}
		}
	}

	function enableCtrl(id,enable)
	{
		if(enable)
		{
			$e(id).disabled = false;
			$e(id).focus();
		}
		else
			$e(id).disabled = true;
	}

	function toggleCheckBoxes(node,name)
	{
		var value = null;
		if(node.checked)
			value = true;
		var list = document.getElementsByName(name);
		for(var i=0;i<list.length;i++)
			list[i].checked = value;
	}
	
	function salt(firstChar)
	{
		return firstChar + 'salt=' + new Date().getTime();
	}
	
	function na()
	{
		alert('Not Implemented Yet');
	}
	function log(e)
	{
		if(console && typeof(console.log) == 'function')
			console.log(e);
		else
			alert(e);
	}