// JavaScript Document
var startDrag=false;
 
var window_array=new Array();
window_array['body']='mainBody';
window_array['module']='content_box';
window_array['popup']='popOutBox';
window_array['login']='loginBox';
var last_left_obj=null;
function goURL(url,target) {
	if(url=='login' || url=='logout') {
		callAjax(SITE_URL+url+"/",target,"get","","");
	} else {
		callAjax(url,target,"get","");
	}
}
function getHash() {
	var href = top.location.href, i = href.indexOf("#");
	return i >= 0 ? href.substr(i + 1) : "";
}
function updateIFrame (token) {
	var iframe = $('historyIframe');
	var html = ['<html><body><div id="module_name">',token,'</div></body></html>'].join('');
	//alert(html);
	try {
		var doc = iframe.contentWindow.document;
		doc.open();
		doc.write(html);
		doc.close();
		return true;
	} catch (e) {
		return false;
	}
}
function checkBackButton() {
	var iframe = $('historyIframe');
	if (!iframe.contentWindow || !iframe.contentWindow.document) {
		setTimeout(checkBackButton, 10);
		return;
	}
	setInterval(function() {
		if(loginAdmin==1) {
			var iframe = $('historyIframe');
			doc = iframe.contentWindow.document;
			elem = doc.getElementById("module_name");
			//alert(elem.innerText);
			var new_module = elem ? elem.innerHTML : "";
			//alert(new_module);
			if(new_module=="") new_module="main";
			var newHash = getHash();
			if(newHash=="") newHash="main";
			
			if(Prototype.Browser.IE) {
				if (new_module != currentURL) {
					currentURL = new_module;
					top.location.hash = currentURL;
					currentHash = currentURL;
					//if(currentURL=="main") {
					//	if(innerWin==1) hideInnerWin();
					//} else {
						goURL(SITE_URL+currentURL,"module");
					//}
				} else if (newHash != currentHash) {
					currentHash = newHash;
					updateIFrame(currentHash);
				}
			} else if (newHash != currentHash) {
				currentHash = newHash;
				//alert(currentHash);
				//updateIFrame(currentHash);
				currentURL = currentHash;
				//top.location.hash = currentURL;
				//currentHash = currentURL;
				//if(currentURL=="main") {
				//	if(innerWin==1) hideInnerWin();
				//} else {
					goURL(SITE_URL+currentURL,"module");
				//}
			}
		}
	},50);
}
var currentURL="main";
var currentHash="main";
var callAjaxType="main";
var callAjaxGetMethod="";
var callAjaxTarget="";
var eval_str="";
var ajaxLoaderText="";
Ajax.Responders.register({
  onCreate: function(){
		/*if(callAjaxTarget=='module') {
			if(innerWin==0) { 
				//showInnerWin(); 
				showPageLoader(callAjaxTarget,ajaxLoaderText); 
				//setTimeout("showPageLoader('"+callAjaxTarget+"','"+ajaxLoaderText+"');",1050); 
			} else { 
				showPageLoader(callAjaxTarget,ajaxLoaderText); 
				
			}
		} else {*/
		if(ajaxLoaderText=="Submitting Data..")
			showPageLoader(callAjaxTarget,ajaxLoaderText,"form");
		else 
			showPageLoader(callAjaxTarget,ajaxLoaderText,"link");
		//}
		
  }, 
  onComplete: function(){
	hideTooltip();
	hideCalendarControl();
	setTimeout("hidePageLoader('all');",500);
  }
});
var jsDyncObj=new Object();
function callAjax(url,target,ajaxMethod,ajaxType,param) {	 
		 //alert(url);
		//alert("here2");
		
		if(ajaxMethod=="undefined") ajaxMethod="get";
		if(target=="undefined") target="";
		callAjaxType=ajaxType;
		callAjaxTarget=target;
		if(ajaxMethod=='post') {
			//alert("here3");
			ajaxLoaderText="Submitting Data..";
		} else {
			ajaxLoaderText="";
		}
		callAjaxGetMethod=ajaxMethod;
		if(ajaxType=="form") {
			param_str=$(param).serialize();
			//document.forms[$(param).name].reset();
			param_str['ajax']=true;
			url+="?ajax=true";
		} else {
			
			param_str=param+"&ajax=true";
		}
		//alert(url);
		new Ajax.Request(url, {
			method:callAjaxGetMethod,
			parameters: param_str,
			onSuccess: function(transport){
				$('content_loader_text').innerHTML="Please wait..";
				//alert(transport.responseText);
				var responseArray = transport.responseText.evalJSON();
				if(responseArray['response']['status']==true) {
					if(responseArray['response']['resultType']=='js') {
						//alert(responseArray['response']['value']);
						eval(responseArray['response']['value']);
					}
					if(responseArray['response']['resultType']=='module') {
						if(last_left_obj!=null) last_left_obj.className="menu_link";
						if(responseArray['response']['name']=="manage_inventory") responseArray['response']['name']="product";
						if($('topNav_'+responseArray['response']['name'])!=null) {
							if($('topNav_'+responseArray['response']['name'])!="null") {
								$('topNav_'+responseArray['response']['name']).className="menu_link_text";
							}  
							last_left_obj=$('topNav_'+responseArray['response']['name']);
							/*if($('leftNav_'+responseArray['response']['name']).parentNode.style.display!="") {
								showHideSubModule($('leftNav_'+responseArray['response']['name']).parentNode.id);
								/*if(window.pre_left_nav!="") {
										
								}
								window.pre_left_nav=$('leftNav_'+responseArray['response']['name']).parentNode.id;
							}
							//last_left_obj=$('leftNav_'+responseArray['response']['name']);*/
						}
						
						//$('moduleTitle').innerHTML=responseArray['response']['title'];
						document.title = PAGE_TITLE_DEFAULT +" - "+ responseArray['response']['title'];
						$('body_wrapper').style.overflow="auto";
						$('body_wrapper').scrollTop=0;
						$(window_array['module']).style.height="auto";
						$('content_box').style.height="auto";
						//document.getElementById('body_box').style.height="auto";
						$(window_array['module']).innerHTML=responseArray['response']['value'];
						if($('module_heading')!=null) {
							$('module_heading').innerHTML=responseArray['response']['title'];
						}
						var page_arr=getPageSize();
						var inner_height=page_arr[3]-115;
						
						if($('content_box').offsetHeight<inner_height)
							$('content_box').style.height=(inner_height-80)+"px";
						if(responseArray['response']['url']!=currentURL) {
							currentURL=responseArray['response']['url'];
							currentHash=currentURL;
							top.location.hash = currentURL;
							updateIFrame(currentHash);
						}
						if(trim(responseArray['response']['extra_js'])!="" && trim(responseArray['response']['extra_js'])!=null) {
							//alert(responseArray['response']['extra_js']);
							eval_str=trim(responseArray['response']['extra_js']);
							//$('divJs').innerHTML='<script language="javascript" type="text/javascript">'+eval_str+'< script>';
							//alert($('divJs').innerHTML);
							setTimeout("eval(eval_str);",300);
							//eval(responseArray['response']['extra_js']);	
						}
						 
						
						if(trim(responseArray['response']['alert_message'])!="" && trim(responseArray['response']['alert_message'])!=null) {
							messageBox(responseArray['response']['alert_message'],'info','','');
						}
					}
				} else {
					if(loginAdmin==1)
					logout("Session Expired. Please login again.");
					//messageBox("Request could not be completed. Please try again later.");
				}
			},
			onFailure: function(){ alert('Something went wrong...') 
			}
		});
		
}
function showModuleAdd() {
	$('module_view').style.display="none";
	$('module_add').style.display="";
	$('body_wrapper').scrollTop=0;
	$('content_box').style.height="auto";
	var page_arr=getPageSize();
						var inner_height=page_arr[3]-115;
						if($('content_box').offsetHeight<inner_height)
							$('content_box').style.height=(inner_height-80)+"px";
}
function cancelModuleAdd() {
	$('module_view').style.display="";
	$('module_add').style.display="none";
	$('body_wrapper').scrollTop=0;
	$('content_box').style.height="auto";
	var page_arr=getPageSize();
						var inner_height=page_arr[3]-115;
						if($('content_box').offsetHeight<inner_height)
							$('content_box').style.height=(inner_height-80)+"px";
}
function populateStats(jsonResp) {
	var stats_arr = jsonResp.evalJSON();
	var stats_arr_len = stats_arr.length;
	for(var i=0;i<stats_arr_len;i++) {
		//alert(stats_arr[i]['value']);
		$(stats_arr[i]['id']).innerHTML=stats_arr[i]['value'];
	}
}
function copyPosition(ref_obj,obj) {
	//alert(ref_obj.offsetHeight);
	obj.style.height=ref_obj.offsetHeight+"px";
	obj.style.width=ref_obj.offsetWidth+"px";
	p=ref_obj;
	var top=0;
	var left=0;
	for (; p; p = p.offsetParent) {
		top  += p.offsetTop;
		left += p.offsetLeft;
	}
	obj.style.left=left+"px";
	obj.style.top=top+"px";
}
function setLoaderBar(ref_obj,loader_box) {
	p=ref_obj;
	loader_box.style.left=(parseInt(ref_obj.style.left)+((parseInt(ref_obj.style.width))/2-125))+"px";
	loader_box.style.top=(parseInt(ref_obj.style.top)+((parseInt(ref_obj.style.height))/2-50))+"px";
	ref_obj.style.zIndex=1000;
	loader_box.style.zIndex=1001;
}
var pageLoaderActive=false;
function showPageLoader(target,loader_text,type) {
	if(typeof(type)=="undefined") {
		var type="link";
	}
	if(target!="") {
		loader_text = loader_text.replace("Loading Data..","Please wait..");
		if(typeof(loader_text)!="undefined") {
			if(loader_text=="") {
				loader_text="Please wait..";	
				$('file_upload_loader').style.display="none";
			}
		} else {
			loader_text="Please wait..";	
			$('file_upload_loader').style.display="none";
		}
		
		var targetId=window_array[target];
		 
		var page_arr=getPageSize();
		var body_dis=false;
		if($(targetId).style.display=="none") {
			$(targetId).style.visibility="hidden";
			$(targetId).style.display="";
			body_dis=true;
		}
		copyPosition($(targetId),$('loader_div_trans'));
		var inner_height=page_arr[3]-115;
		$('loader_div_trans').style.height=inner_height+"px";
		setLoaderBar($('loader_div_trans'),$('content_loader_div'));
		if(body_dis) {
			$(targetId).style.display="none";
			$(targetId).style.visibility="visible";
		}
		$('content_loader_text').innerHTML=loader_text;
		if(!pageLoaderActive) {
			pageLoaderActive=true;
			if(type=="form") {
				new Effect.Parallel(
				[
					new Effect.Appear('loader_div_trans',{  sync:true, from: 0.0, to: 0.8}),
					new Effect.Appear('content_loader_div',{  sync:true, from: 0.0, to: 1.0})
				], {
					duration: 0.6,
					delay: 0.0
				});
			} else {
				new Effect.Parallel(
				[
					new Effect.Appear('content_loader_div',{  sync:true, from: 0.0, to: 1.0})
				], {
					duration: 0.6,
					delay: 0.0
				});
			}
		}
	}
}
function updateStatsBox() {
	callAjax(SITE_URL+"stats/customer/"+$('stats_viewby_customer').value+"/","","get","");
	callAjax(SITE_URL+"stats/product/"+$('stats_viewby_product').value+"/","","get","");
	callAjax(SITE_URL+"stats/technical/","","get","");
	callAjax(SITE_URL+"stats/order/"+$('stats_viewby_order').value+"/","","get","");
	callAjax(SITE_URL+"stats/cproduct/"+$('stats_viewby_cproduct').value+"/","","get","");	
}
function hidePageLoader(type) {
	pageLoaderActive=false;
	if(document.getElementById('content_loader_div').style.display!='none') {
		if(type=='all') {
			if(document.getElementById('loader_div_trans').style.display!='none') {
				new Effect.Parallel([
					new Effect.Opacity('loader_div_trans',{ sync:true, from: 0.8, to: 0.0}),
					new Effect.Opacity('content_loader_div',{ sync:true, from: 1.0, to: 0.0})
				], {
						duration: 0.5,
						delay: 0.0				
				});
			} else {
				new Effect.Parallel([
					new Effect.Opacity('content_loader_div',{ sync:true, from: 1.0, to: 0.0})
				], {
						duration: 0.5,
						delay: 0.0				
				});
			}
			setTimeout("document.getElementById('loader_div_trans').style.display='none';document.getElementById('content_loader_div').style.display='none';",500);
		} else {
			new Effect.Opacity('content_loader_div',{ duration: 0.5, direction: 'center', from: 1.0, to: 0.0});
			setTimeout("document.getElementById('content_loader_div').style.display='none';",500);
		}
	}
}
function login(success,err_message,topPanelSource,captcha) {
	if(success) {
		if(typeof(topPanelSource)!="undefined") {
			$('header_top').innerHTML=topPanelSource;	
		}
		//document.getElementById('mainBody').style.display='none';
		//document.getElementById('mainBody').style.visibility='visible';
		top.location.hash = "main";
		//currentURL="main";
		//currentHash="main";
		document.login_form.reset();
		document.getElementById('loginBox').style.display='none';
		new Effect.Parallel(
			[
				new Effect.Appear('content_box',{ sync:true, from: 0.0, to: 1.0})
			], { 
			  duration: 0.6,
			  delay: 0.0
		});
		$('reload_gbutton').style.display="";
		//updateStatsBox();
		setTimeout("messageBox('Login Successful!!','info','','');loginAdmin=1;",1000);
	} else {
		if(typeof(captcha)=="undefined") captcha=false;
		
		if(typeof(err_message)!="undefined") {
			messageBox(err_message,'info','error','');
		} else {
			messageBox('Invalid Login. Please try again.','info','error','');
		}
		if(captcha) {
			showCaptcha();	
		} else {
			hideCaptcha();
		}
		reloadCaptcha('login_captcha');
		document.login_form.bt_submit.value=submitButtonValue;
		document.login_form.bt_submit.disabled="";
		$('reload_gbutton').style.display="none";
		setTimeout("document.login_form.txtuserPass.value='';document.login_form.txtuserSecurity.value='';document.login_form.txtuserPass.focus();",1000);
	}
}
function showCaptcha() {
	$('div_login_captcha').style.display="";
	$('txtuserSecurity').required="1";
	$('captcha').value="1";
}
function hideCaptcha() {
	$('div_login_captcha').style.display="none";
	$('txtuserSecurity').required="0";
	$('captcha').value="0";
}
function forgotPassword_User(success) {
	if(success) {
		messageBox("New Password sent to user's E-mail address.","info","","");
		setTimeout("",1000);
	} else {
		messageBox('Your request not completed Successfully.','info','error','');
		setTimeout("",1000);
		
	}
}
function forgotPassword(success) {
	if(success) {
		messageBox('New Password sent to your E-mail address.','info','','');
		document.forgot_form.bt_submit.value="Submit";
		document.forgot_form.bt_submit.disabled="";
		setTimeout("document.forgot_form.txtemail.value='';",1000);
	} else {
		messageBox('Invalid Information Provided. Please try again.','info','error','');
		document.forgot_form.bt_submit.value="Submit";
		document.forgot_form.bt_submit.disabled="";
		setTimeout("document.forgot_form.txtemail.select();",1000);
		
	}
}
function logout(msg,captcha) {
	if(typeof(msg)=="undefined") {
		msg="Logout Successful!!";
	} else if(msg=="" || msg==null) {
		msg="Logout Successful!!";
	}
	$('reload_gbutton').style.display="none";
	loginAdmin=0;
	if(typeof(captcha)=="undefined") captcha=false;
	if(captcha) {
		showCaptcha();	
	} else {
		hideCaptcha();
	}
	reloadCaptcha('login_captcha');
	var page_arr=getPageSize();
	//document.getElementById('loginBox').style.marginLeft="50%";
	//document.getElementById('loginBox').style.left="-205px";
	//document.getElementById('loginBox').style.top=((page_arr[3]/2)-131)+"px";	
	//document.login_form.reset();
	document.login_form.bt_submit.value="Login";
	document.login_form.bt_submit.disabled="";
	document.getElementById('content_box').style.display='none';
	new Effect.Parallel([
		new Effect.Appear('loginBox',{ sync: true, from: 0.0, to: 1.0})
	], {
		duration: 0.6,
		delay: 0.0	
	});
	top.location.hash = "main";
	//if(currentURL!="main")
		//hideInnerWin(false);
	last_left_obj="";
	pre_left_nav="";
	$('header_top').innerHTML='<span class="login_header_text">Dashboard</span>';
	setTimeout("document.login_form.reset();document.login_form.txtuserName.focus();messageBox('"+msg+"','info');",1000);
}
function showLoginBox() {
	var page_arr=getPageSize();
	//document.getElementById('forgotBox').style.display="none";
	//document.getElementById('loginBox').style.marginLeft="50%";
	//document.getElementById('loginBox').style.left="-205px";
	//document.getElementById('loginBox').style.top=((page_arr[3]/2)-131)+"px";	
	document.login_form.reset();
	document.login_form.bt_submit.value="Login";
	document.login_form.bt_submit.disabled="";
	new Effect.Parallel([
		new Effect.Appear('forgotBox',{ sync: true, from: 1.0, to: 0.0})
	], {
		duration: 0.6,
		delay: 0.0	
	});
	setTimeout("document.getElementById('forgotBox').style.display='none';document.login_form.reset();document.login_form.txtuserName.focus();",600);	
	new Effect.Parallel([
		new Effect.Appear('loginBox',{ sync: true, from: 0.0, to: 1.0})
	], {
		duration: 0.6,
		delay: 0.6	
	});
	
}
function showForgotBox() {
	var page_arr=getPageSize();
	//document.getElementById('loginBox').style.display="none";
	//document.getElementById('forgotBox').style.marginLeft="50%";
	//document.getElementById('forgotBox').style.left="-205px";
	//document.getElementById('forgotBox').style.top=((page_arr[3]/2)-131)+"px";	
	document.forgot_form.reset();
	document.forgot_form.bt_submit.value="Submit";
	document.forgot_form.bt_submit.disabled="";
	//new Effect.Parallel([
		new Effect.Appear('loginBox',{ from: 1.0, to: 0.0, duration: 0.6, delay: 0.0});
	//], {
		
	//});
	setTimeout("document.getElementById('loginBox').style.display='none';document.forgot_form.reset();document.forgot_form.txtemail.focus();",600);	
	//new Effect.Parallel([
		new Effect.Appear('forgotBox',{from: 0.0, to: 1.0, duration: 0.6, delay: 0.6});
	//], {
	//	duration: 0.6,
	//	delay: 0.6	
	//});
	
}
var LastActiveElement;
var confirmReturnType;
var confirmReturnValue;
var messageBoxType;
function messageBox(str,type,icon,return_type,return_value) {
	messageBoxType=type;
	var icon_final;
	//alert(icon);
	if(typeof(icon)=="undefined" || icon=="") {
		icon_final="info";	
		
	}  else {
		icon_final=icon;
	}
	
	var page_arr=getPageSize();
	document.getElementById('messageBox').style.marginLeft="50%";
	document.getElementById('messageBox').style.left="-195px";
	document.getElementById('messageBoxText').innerHTML=str;
	document.getElementById('messageBox').style.top=document.body.scrollTop-(document.getElementById('messageBox').offsetHeight+20);
	clearTimeout(messageBoxTimer);
	if(type=='info') {
		document.getElementById('messageBoxIcon').style.background="#FFFFFF url("+SITE_URL+"../images/admin/messagebox_icon_"+icon_final+".jpg) no-repeat 5px 15px";
		document.getElementById('messageButtonBox').style.display="none";
		messageBoxTimer=setTimeout("hideMessageBox();",4000);	
	} else if(type=='message') {
		copyPosition($('mainBody'),$('messagebox_loader_div_trans'));
		document.getElementById('messageBoxIcon').style.background="#FFFFFF url("+SITE_URL+"../images/admin/messagebox_icon_"+icon_final+".jpg) no-repeat 5px 15px";
		LastActiveElement = document.activeElement;
		document.getElementById('bt_mb_ok').style.display="";
		document.getElementById('bt_mb_yes').style.display="none";
		document.getElementById('bt_mb_no').style.display="none";
		document.getElementById('messageButtonBox').style.display="";
		document.getElementById('messagebox_loader_div_trans').style.zIndex=1001;
		new Effect.Appear('messagebox_loader_div_trans',{ duration: 0.5, direction: 'center', from: 0.0, to: 0.7});
		setTimeout("document.frmMessageBox.bt_mb_ok.focus();",500);
	} else if(type=='confirm') {
		copyPosition($('mainBody'),$('messagebox_loader_div_trans'));
		if(icon=="undefined" || icon=="") {
			icon_final="confirm";	
		}
		confirmReturnType=return_type;
		confirmReturnValue=return_value;
		document.getElementById('messageBoxIcon').style.background="#FFFFFF url("+SITE_URL+"../images/admin/messagebox_icon_"+icon_final+".jpg) no-repeat 5px 15px";
		LastActiveElement = document.activeElement;
		document.getElementById('bt_mb_ok').style.display="none";
		document.getElementById('bt_mb_yes').style.display="";
		document.getElementById('bt_mb_no').style.display="";
		document.getElementById('messageButtonBox').style.display="";
		document.getElementById('messagebox_loader_div_trans').style.zIndex=1001;
		new Effect.Appear('messagebox_loader_div_trans',{ duration: 0.5, direction: 'center', from: 0.0, to: 0.7});
		setTimeout("document.frmMessageBox.bt_mb_no.focus();",500);
	} else {
		copyPosition($('mainBody'),$('loader_div_trans'));	
	}
	showMessageBox(type);
	
}
var messageBoxTimer;
var messageBoxEffect=false;
function showMessageBox(type) {
	if(!messageBoxEffect) {
		messageBoxEffect=true;
		document.getElementById('messageBox').style.top=(document.body.scrollTop-(document.getElementById('messageBox').offsetHeight+50))+"px";
		document.getElementById('messageBox').style.visibility='visible';
		new Effect.Parallel([
		  new Effect.Move('messageBox', {
			  sync: true, x: 0, y: document.getElementById('messageBox').offsetHeight, mode: 'relative',
			  transition: Effect.Transitions.spring
			}), 
		  new Effect.Opacity('messageBox', { sync: true, from: 0, to: 1,transition: Effect.Transitions.spring }) 
		], { 
		  duration: 0.6,
		  delay: 0.0
		});
		setTimeout("messageBoxEffect=false;",500);
	} else {
		setTimeout("showMessageBox('"+type+"');",500);
	}
}
function confirmTest(val) {
		//alert(val);
}
function hideMessageBox(val) {
	//clearTimeout(messageBoxTimer);
	if(!messageBoxEffect) {
		if(messageBoxType=="confirm") {
			if(confirmReturnType=="link") {
				if(val==true)
					window.location=confirmReturnValue;
			} else {
				eval(confirmReturnValue+"("+val+")");
			}
		}
		messageBoxEffect=true;
		new Effect.Parallel([
		  new Effect.Move('messageBox', {
			  sync: true, x: 0, y: -1*document.getElementById('messageBox').offsetHeight, mode: 'relative',
			  transition: Effect.Transitions.spring
			}), 
		  new Effect.Opacity('messageBox', { sync: true, from: 1, to: 0 }) 
		], { 
		  duration: 0.4,
		  delay: 0.0
		});
		if(document.getElementById('messagebox_loader_div_trans').style.display=="") {
			if(typeof(LastActiveElement)!="undefined") {
				if(typeof(LastActiveElement.name)!="undefined") {
					try {
						LastActiveElement.select();
					} catch(e) {
						//	
					}
				}
			}
			new Effect.Appear('messagebox_loader_div_trans',{ duration: 0.5, direction: 'center', from: 0.7, to: 0.0});
		}
		setTimeout("document.getElementById('messagebox_loader_div_trans').style.display='none';document.getElementById('messageBox').style.visibility='hidden';messageBoxEffect=false;",500);
		
	} else {
		setTimeout("hideMessageBox();",500);
	}
}
var innerWin=0;
var innerWinTopBoxTimer;
function refreshInnerWin() {
	currentURL="main";
	currentHash="main";
}
function hideInnerWin(showStats) {
	if(typeof(showStats)=="undefined") {
		showStats=true;
	} 
	innerWin=0;
	
	var obj=$('contentBox');
	var current_width=obj.offsetWidth;
	var per=(230*100)/current_width;
	setTimeout('$("boxHeadInner").style.visibility="hidden";$("boxBodyBg").style.visibility="hidden";$("boxHeadInner").style.display="none";$("boxBodyBg").style.display="none";',500);
	if(typeof(last_left_obj)!="undefined") last_left_obj.className="leftNavLinkBg";
	delete last_left_obj;
	//currentURL="main";
	//currentHash="main";
	clearTimeout(innerWinTopBoxTimer);
	top.location.hash = "main";
	if(showStats) {
		setTimeout('$("projectStats").style.display="block";',500);
		showDragDrop();
		updateStatsBox();
	}
	new Effect.Scale(obj, per, { scaleX: true, scaleY: false,scaleContent: false, scaleMode: { originalHeight: obj.offsetHeight, originalWidth: obj.offsetWidth-15 } });
	//setTimeout('resizePanel();',3000);
}
function showInnerWin() {
	innerWin=1;
	var page_arr=getPageSize();
	
	var obj=$('contentBox');
	var current_width=obj.offsetWidth;
	var per_from=(230*100)/(page_arr[0]-56);
	var per=100;
	//alert(per);
	$("projectStats").style.display="none";
	setTimeout('innerWinTopBoxTimer = setTimeout("changeInnerBoxPosition();",50);$("boxHeadInner").style.display="";$("boxBodyBg").style.display="";$("boxHeadInner").style.visibility="visible";$("boxBodyBg").style.visibility="visible";$("bodyText").style.backgroundColor="#FFFFFF";',1000);
	new Effect.Scale(obj, per, { scaleX: true, scaleY: false,scaleFrom: per_from,scaleContent: false, scaleMode: { originalHeight: obj.offsetHeight, originalWidth: (page_arr[0]-56) } });
	//setTimeout('resizePanel();',3000);
}
function changeInnerBoxPosition() {
	if(innerWin==1) {
		if($("innerTopBox")!=null)
			$("innerTopBox").style.top=$('bodyText').scrollTop+"px";
		innerWinTopBoxTimer = setTimeout("changeInnerBoxPosition();",1);
	}
}
function showTooltip(str) {
	if($('divToolTipInner').innerHTML!=str)
		$('divToolTipInner').innerHTML=str;
	if(Prototype.Browser.IE) 
		$('divToolTipIE').style.display="none";
	$('divToolTip').style.width="auto";
	//if(Prototype.Browser.IE) 
	//	$('divToolTipInner').style.float="left";
	$('divToolTip').style.width=$('divToolTipInner').offsetWidth+"px";
	$('divToolTip').style.top=(yMousePos+15)+"px";
	$('divToolTip').style.left=(xMousePos-($('divToolTipInner').offsetWidth/2))+"px";
	$('divToolTip').style.visibility="visible";
}
function hideTooltip() {
	$('divToolTip').style.visibility="hidden";
	$('divToolTip').style.top="0px";
	$('divToolTip').style.left="0px";
}
if (document.layers) { // Netscape
    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = captureMousePosition;
} else if (document.all) { // Internet Explorer
    document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
    document.onmousemove = captureMousePosition;
}
// Global variables
xMousePos = 0; // Horizontal position of the mouse on the screen
yMousePos = 0; // Vertical position of the mouse on the screen
xMousePosMax = 0; // Width of the page
yMousePosMax = 0; // Height of the page
var move_x="";
var move_y="";
var pre_x = 0;
var pre_y = 0;

function captureMousePosition(e) {
	
	
    if (document.layers) {
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    } else if (document.all) {
         
        xMousePos = window.event.x+document.documentElement.scrollLeft;
        yMousePos = window.event.y+document.documentElement.scrollTop;
        xMousePosMax = document.body.clientWidth+document.documentElement.scrollLeft;
        yMousePosMax = document.body.clientHeight+document.documentElement.scrollTop;
    } else if (document.getElementById) {
        // Netscape 6 behaves the same as Netscape 4 in this regard
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    }
	/*if(startDrag) {
		if(!drag_start) {
			move_x = xMousePos - ($('statbox_customers').offsetLeft);	
			move_y = yMousePos - ($('statbox_customers').offsetTop);	
			$('statbox_drag_box').innerHTML = $('statbox_customers').innerHTML;
			drag_start=true;
		}
		$('statbox_drag_box').style.top=(yMousePos - (move_y))+"px";	
		$('statbox_drag_box').style.left=(xMousePos - (move_x))+"px";	
		
		$('x').value=xMousePos + " - " + move_x + " = " + $('statbox_customers').style.left;
	}  */
}
function phpEncode(str) {
	return urlencode(encode64(str));
}
function phpDecode(str) {
	return decode64(urldecode(str));
}
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}
function urlencode( str ) {
  
    var histogram = {}, tmp_arr = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
    
    for (search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }
    
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
    
    return ret;
}
function urldecode( str ) {
    var histogram = {};
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urlencode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
 
    for (replace in histogram) {
        search = histogram[replace]; // Switch order when decoding
        ret = replacer(search, replace, ret) // Custom replace. No regexing   
    }
    
    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = decodeURIComponent(ret);
 
    return ret;
}

/* 
File Uploading Script ----------------------------------
------------------------------Start--------------------------------
*/

function SendReceive() {
  this.sendRequest = SGPR.sendRequest;
  this.getRequest = SGPR.getRequest;
}
// --------- Send / Get Post Request ---------
// Sends a Post Request via JSON. (used in variable format for including in other objects).
var SGPR = {
  sendRequest : function (url, request, receiver, quiet) {
    if (receiver) {this.receiver = receiver;}
	this.fail_request=0;
    if (typeof(this.receiver) != 'function' && this.async !== false) {
      alert('Function not supplied for callback.');
      return false;
    }
    if (quiet === null || quiet === undefined) {this.quiet = false;}
  	var jRequest = JSON.stringify(request);
    this.remote = new getHTTPRequest();
    if (this.async == false) {dont_wait = false;}
    else {dont_wait = true;}
    var ref = this;
    if (dont_wait) {
      this.remote.onreadystatechange = function () {
        ref.getRequest(ref.remote, ref);
      };
    }
    this.remote.open('POST', url, dont_wait);  
  
    this.remote.setRequestHeader("Content-type", "text/plain");
    this.remote.setRequestHeader("Content-length", jRequest.length);
    this.remote.setRequestHeader("Connection", "close");
    this.remote.send(jRequest);
    if (!dont_wait) {
      this.response = eval('(' + this.remote.responseText + ')');
    }
  },
  getRequest : function (remote, obj) {
    if (remote.readyState == 4) {
      if (remote.status == 200) {
		if(remote.responseText=="") {
			//obj.fail_request++;
			if(this.active)
				this.timerVar = setTimeout(function(){obj.start_ref();}, this.interval); 
		} else {
				//alert(remote.responseText );
        	var getBack = eval('(' + remote.responseText + ')');
        	obj.receiver(getBack);
		}
		
  	  } else {
        if (!obj.quiet) {alert('There was a problem with the request. Error code: ' + this.remote.status);}
  		else {obj.receiver({status : 'remote', error_msg : remote.status});}
      }
    }
  }
};

//  --------- RepeatGetAction -----------------
//  Sends repeated requests to a file via JSON

function RepeatGetAction(page, request, interval, successFunc, failFunc, stopOnFail) {
	page = page || '';
	request = request || {};
	interval = interval || 3000;
	succssFunc = successFunc || '';
	failFunc = failFunc || '';
	if (stopOnFail === null || stopOnFail === undefined) {stopOnFail = true;}
    this.init(page, request, interval, successFunc, failFunc, stopOnFail);
}

RepeatGetAction.prototype = {
  init : function(page, request, interval, successFunc, failFunc, stopOnFail) {
	  this.page = page;
		this.request = request;
		this.interval = interval;
		this.successFunc = successFunc;
		this.failFunc = failFunc; 
		this.stopOnFail = stopOnFail;
		this.active=true;
		if (this.checkVals()) {
		  this.start();
		}
	},
    sendRequest: SGPR.sendRequest, 
    getRequest: SGPR.getRequest, 
  
	checkVals : function() {
    if (this.page !== '' && parseInt(this.interval) > 0 && typeof(this.interval) == 'number' && typeof(this.failFunc) == 'function' && typeof(this.successFunc) == 'function' && (typeof(this.request) == 'object' || typeof(this.request) == 'array')) {
		  return true;
		} else {
		  return false;
		}
	},  
	
	start : function() {
      if (!this.checkVals()) {return false;}
      var ref = this;
      this.timerVar = setTimeout(function(){ref.start_ref();}, this.interval); 
	}, 
	
	start_ref : function () {
      this.sendRequest(this.page, this.request, this.receive, true);
	},
	
	receive : function(getBack) {
      if (!getBack) {
		  this.stop();
          alert('No response sent back to receive function.');
		} else if (getBack.status == 'error') {
		  if (this.stopOnFail) {this.stop();}
          this.failFunc(getBack);
		} else if (getBack.status == 'remote') {
		  this.stop();
          alert('There was a problem with the request. Error code: ' + getBack.error_msg);
		} else {
		  this.successFunc(getBack);
		}
	},
	
	stop : function(form_obj) {
      clearInterval(this.timerVar);
	  this.active=false;
	  nextFileUpload(form_obj);
	}
};


// -------- getHTTPRequest --------
//  Gets the current HTTP Request object for the relevant browser.

function getHTTPRequest() {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
 return http_request;
}


var ul_vars = {
  interval : 2000, //The time in milleseconds between each status request.
  speeds : []      //Keeps track of the speeds of each upload.
};
function uploadFile(form, sid,form_obj) {
  var file_iframe=$(form+'_pIframe');
  var doc=file_iframe.contentWindow.document;
  var theForm = doc.getElementById(form);
  // The variable request is an object that will contain details of the request.
  var request = {};
  var fileName = '';
  
  // This little bit loops through all the elements in the form, locates the
  // file input field, and extracts the file name of the file being uploaded.
  for (var i=0; i < theForm.elements.length; i++) { 
    ele = theForm.elements[i];
    if (ele.type == 'file') {
      var fileName = ele.value;
    	if (fileName.indexOf('/') > -1) { 
    	  fileName = fileName.substring(fileName.lastIndexOf('/')+1, fileName.length);
      }	else {
    	  fileName = fileName.substring(fileName.lastIndexOf('\\')+1, fileName.length);
      }
      //Since there can only be one file per form for this script, we'll exit the loop here. 
      break;
    }
  }
  if (fileName.replace('/\s/', '').toString() === '') {return;}
  
  
  theForm.submit();
  var ele;
    
  //These three parts of 'request' are required in order for the filestatus server-side script to work.
  request.sid = sid;
  request.fileName = fileName;
  request.iframe = theForm.target;
  request.file_obj_name = theForm.file_obj_name.value;
  $(theForm.file_obj_name.value).value=fileName;
  
  // I hope this is self explanatory, but if not, this will send a JSON request to filestatus.php
  // every 3 seconds.  RepeatGetAction is in SendRecieve.js or sr_c.js.  If a single call is
  // successful, the successFunc will be called. Otherwise, failFunc will be called.  
   
  repeater = new RepeatGetAction(SITE_URL+'filestatus', request, ul_vars.interval);
  repeater.successFunc = function (getBack) {
    if (getBack.progress >= 100 || getBack.progress=='done') {
      	getBack.progress = 100;
	  	$(getBack.file_obj_name+'_status').value="1";
		$(getBack.file_obj_name+'_file').value=getBack.file_path;
     	this.stop(form_obj);
    } else {
		var ref = this;
		if(this.active)
			this.timerVar = setTimeout(function(){ref.start_ref();}, this.interval); 	
	}
    /*if (!ul_vars.speeds[getBack.sid]) {ul_vars.speeds[getBack.sid] = [];}
    else if (ul_vars.speeds[getBack.sid].length == 3) {ul_vars.speeds[getBack.sid].shift();}
    
    ul_vars.speeds[getBack.sid].push(getBack.current_size);
    ul_vars.speeds[getBack.sid].sort(function(a, b) {return a - b;});  //Sorts numerically instead of by string. 
    
    var bytes_sec = 0;
    var bytes_append = 'B/sec';
    if (ul_vars.speeds[getBack.sid].length == 3) {
      var dif = ul_vars.speeds[getBack.sid][2]  - ul_vars.speeds[getBack.sid][0];
      bytes_sec = dif / ((ul_vars.interval / 1000) * 3);
      if (bytes_sec > 1024) {
        bytes_sec = bytes_sec / 1024;
        bytes_append = 'KB/sec';
      } 
    }*/
    //Due to a stupid IE bug, this has been changed...
    //$(getBack.sid + '_progress').style.width = getBack.progress + '%';
    $('loaderProgressBar').style.width = (getBack.progress / 10)  + 'em';
	//alert($('loaderProgressBar').style.backgroundPosition);
    $('loaderProgressBar').style.height = '1.2em';
	 
	
    //$(getBack.sid + '_fileName').innerHTML = bytes_sec.toFixed(2) + ' ' + bytes_append;
	
	//$('loaderProgressBar').innerHTML = Math.round(getBack.current_size/1024) + ' / ' + Math.round(getBack.total_size/1024)+"KB";
    $('loaderFileName').innerHTML = Math.round(getBack.current_size/1024) + ' / ' + Math.round(getBack.total_size/1024)+"KB";
	
  }; 
  repeater.failFunc = function (getBack) {
    this.stop();
   // $(getBack.iframe).src = 'blank.html';
    alert(getBack.error_msg);
  };
  
  // This MUST be called before the action will start.  When the repeater has served its 
  // purpose (or you get sick of it), you can call repeater.stop() to stop it.
  repeater.start();
}

function $P(str) {
	return parent.document.getElementById(str);	
}
var current_settings=0;
var current_settings_obj="tab_general";
var settings_width=860;
var current_settings_active = false;
var settings_arr = new Array();
settings_arr[0]="settings_general";
settings_arr[1]="settings_messages";
settings_arr[2]="settings_homepage";
var settings_init=false;
function settingsScroll(obj,settings_no) {
	if(Prototype.Browser.IE) {
		if(!settings_init) {
			settings_init=true;
			$(settings_arr[1]).style.display="none";
			$(settings_arr[2]).style.display="none";
		}
		if(!current_settings_active) {
			var scroll_settings = current_settings - settings_no;
			if(scroll_settings!=0) {
				current_settings_active = true;
				var current_settings_temp = current_settings;
				setTimeout("current_settings_active = false;$('"+settings_arr[current_settings_temp]+"').style.display='none';$('"+settings_arr[settings_no]+"').style.display='';",600);
				new Effect.Opacity(settings_arr[current_settings], { duration:.6, from: 1, to: 0 }) ;
				//setTimeout("current_settings_active = false;",1000);
				
				new Effect.Opacity(settings_arr[settings_no], { duration:.6, delay:.6, from: 0, to: 1 }) ;
				 
				//$('settings_inner_container').style.position="relative";
				//new Effect.Move('settings_inner_container', { x: scroll_settings*settings_width, y: 0,mode: 'relative', transition: Effect.Transitions.sinoidal });
				if(typeof(current_settings_obj)!="undefined") {
					$(current_settings_obj).className=current_settings_obj;
				}
				obj.className=obj.id+"_selected";
			}
			current_settings = settings_no;
			current_settings_obj=obj.id;
		}
	} else {
		if(!current_settings_active) {
			var scroll_settings = current_settings - settings_no;
			if(scroll_settings!=0) {
				current_settings_active = true;
				setTimeout("current_settings_active = false;",1000);
				$('settings_inner_container').style.position="relative";
				new Effect.Move('settings_inner_container', { x: scroll_settings*settings_width, y: 0,mode: 'relative', transition: Effect.Transitions.sinoidal });
				if(typeof(current_settings_obj)!="undefined") {
					$(current_settings_obj).className=current_settings_obj;
				}
				obj.className=obj.id+"_selected";
			}
			current_settings = settings_no;
			current_settings_obj=obj.id;
		}
	}
}

function generatePass(id)
{
  var length=8;
  var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  var pass = "";
  for(var x=0;x<length;x++)
  {
   	var i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
 $(id).value = pass;
}
function generateRandomNumber(id)
{
  var length=8;
  var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  var pass = "";
  for(var x=0;x<length;x++)
  {
   	var i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
	return pass;
}
function reloadCaptcha(target) {
	$(target).src=SITE_URL+"../captcha/"+generateRandomNumber();	
}

/*
------------------------------End---------------------------------
*/

function fixPNG(){
	if(navigator.appName=='Microsoft Internet Explorer' && navigator.appVersion.indexOf('MSIE 6.0')>=0){
		var all_div=document.getElementsByTagName('div');
		div_len=all_div.length;
		
		for(var i=0; i<div_len;i++) {
			/*if(all_div[i].currentStyle.backgroundImage!="" && all_div[i].currentStyle.backgroundImage!="none") {
				alert(all_div[i].currentStyle.backgroundImage);
				//alert(abbadabba);
			}*/
			if(all_div[i].currentStyle.backgroundImage!="" && all_div[i].currentStyle.backgroundImage.indexOf('.png')>=0) {
				 //alert(all_div[i].style.background);
				 var obj = all_div[i];
				 //alert(obj.style);
				 var bg  = obj.currentStyle.backgroundImage;
				 var src = bg.substring(5,bg.length-2);
				 var sizingMethod = (obj.currentStyle.backgroundRepeat == "no-repeat") ? "crop" : "scale";
				 obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
				 obj.style.backgroundImage = "url(path/to/transparent.gif)";
			}
			 
		}
		 
	}
}
