var xmlHttp;
var ajaxID="";
var ajaxObject;
var imageDis = "Y";
var returnText = "";
var theInterval="";
var frmmups="";
var frmid="";

//when using ajaxPage always use page.php?Page=something or leave blank
function formupload(id, mups, frmid2)
{
	frmmups=mups;
	frmid=frmid2;
	button = "<input name=\""+id+"button\" id=\""+id+"button\" class=\"cmd\" value=\"Add Attachment\" type=\"button\" onclick=\"showform('"+id+"1');\" />";
	hidden = "<input id=\"file"+id+"1\" name=\"file"+id+"1\" value=\"\" type=\"hidden\" />";
	freturn=hidden+"<div id=\""+id+"1\">"+button+"</div>\n<div style=display:none; id=\"temp"+id+"1\"></div>\n";
	document.getElementById(id).innerHTML = freturn;
}

function showform(id)
{
	form = "<input type=\"hidden\" name=\"createdby\" value=\"\" />";
	form = form+"\n<input type=\"file\" name=\"file\" />";
	form = form+"\n<br /><input class=\"cmd\" type=\"button\" value=\"Upload\" onclick=\"upload('"+id+"');\" />";
	document.getElementById(id).innerHTML = form;
}

function upload(id)
{
	upobject = document.getElementById(frmid);
	document.getElementById("temp"+id).innerHTML = "<iframe id=\"frame"+id+"\" name=\"frame"+id+"\"></iframe>";
	action=upobject.action;
	method=upobject.method;
	upobject.method = "post";
	
	var extAllowed="";
	try{extAllowed=document.getElementById("extAllowed").value;}
	catch(err)
	{/*do nothing*/}
	
	upobject.action = "includes/php/ajaxupload.php?extAllowed="+extAllowed;
	upobject.encoding = "multipart/form-data";
	upobject.target = "frame"+id;
	upobject.submit();
	upobject.method = method;
	upobject.action = action;
	upobject.target = "";
	upobject.encoding = "application/x-www-form-urlencoded";
	upfiles = document.getElementById("file"+id).value.split("*").length;
	theInterval = setInterval("div_uploadfiles('"+id+"', '"+frmmups+"', '"+frmid+"', 'frame"+id+"' );",1000);
	tempid = id.substring(id.length-1, 1);
	if(upfiles<frmmups || frmmups=="")
	{document.getElementById(id).innerHTML="<input class=\"cmd\" value=\"Add Attachment\" type=\"button\" onclick=\"showform('"+tempid+"');\" />";}
	else{document.getElementById(id).innerHTML="<img src='includes/images/loading.gif' /> Uploading File Please Wait...";}
}
		
function div_uploadfiles(id, mups, frmid, framename)
{
	try
	{
		divvalue = document.getElementById(id).innerHTML;
		if(mups<=1)
		{divvalue="";}
		winvalue = document.getElementById(framename).contentWindow.document.body.innerHTML.split("*");
	}
	catch(err)
	{winvalue="";}
	
	if(winvalue=="")
	{/*do nothing*/}
	else
	{
		clearInterval(theInterval);
		if(mups<=1)
		{
			if(winvalue[0]==0)
			{
				upid2 = id.substring(0, id.length-1);
				formupload(upid2, mups, frmid);
				setTimeout("document.getElementById('file"+id+"').value=''",500);
			}
			else
			{document.getElementById(id).innerHTML=winvalue[1]+" - <a class=\"links2\" style=\"font-size:9px;\" href=\"javascript:removeupload('"+winvalue[0]+"', '"+mups+"', '"+frmid+"', '"+id+"');\">remove</a>";}
		}
		else
		{document.getElementById(id).innerHTML=divvalue+"<br>"+winvalue[1]+" - <a class=\"links2\" style=\"font-size:9px;\" href=\"javascript:removeupload('"+winvalue[0]+"', '"+mups+"', '"+frmid+"', '"+id+"');\">remove</a>";}
		document.getElementById("file"+id).value = document.getElementById("file"+id).value+"*"+winvalue[0];
		document.getElementById('temp'+id).innerHTML = "";
	}
}

function removeupload(id, mups, frmid, upid)
{
	returninfo = ajaxrun("includes/php/ajaxupload.php?Page=removefile&id="+id, "");
	
	if(returninfo=="deleted")
	{
		returntext="";
		fileid=document.getElementById("file"+upid).innerHTML.split("<BR>");
		for (var x = 0; x <= (fileid.length-1); x++)
   		{
			if(fileid[x].search(id)>"-1" && x!=0)
			{ /*do nothing*/}
			else
			{returntext=returntext+fileid[x]+"<br>";}			
		}
		upid2 = upid.substring(0, upid.length-1);
		document.getElementById(upid).innerHTML=returntext;				
		fileid=document.getElementById("file"+upid).value;
		document.getElementById("file"+upid).value = fileid.replace("*"+id, "");
		if(document.getElementById("file"+upid).value=="")
		{formupload(upid2, frmmups, frmid);}
	}
	else
	{alert("File unable to be removed!");}
}

function callAJAX(ajaxpg, page, ajaxid, parms)
	{ 
		ajaxID = ajaxid
		var url=ajaxpg+"?sid="+Math.random()+"&Page="+page+"&parms="+parms
		//var url="ajaxpgs/"+ajaxpg+"?sid="+Math.random()+"&Page="+page+"&parms="+parms
		//alert(url)
		xmlHttp=GetXmlHttpObject(stateChanged)
		xmlHttp.open("GET", url , true)
		xmlHttp.send(null)
	}

//when using ajaxPage always use page.php?Page=something or leave blank
function ajaxrun(ajaxPage, objectRun)
{
	//alert(objectRun); 
	ajaxObject=objectRun;
	xmlHttp=GetXmlHttpObject(stateChange);
	xmlHttp.open("POST", ajaxPage+"&sid="+Math.random(), false);
	xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//alert(getParms(objectRun));
	xmlHttp.send(getParms(objectRun));
	//alert(returnText);
	return returnText;	
	returnText = "";
}

function getParms(objectParms)
{
	var returnVal = "";
	if(objectParms != "" && objectParms != null)
	{
		var elem = objectParms.elements;
	
		for(var i = 0; i < elem.length; i++)
		{
			if(elem[i].name != "" && elem[i].name != undefined)
			{
				//alert(elem[i].name);
				//For arrays
				if(elem[i].length > 1 && elem[i].name!="state")
				{
					//alert(elem[i].name+" array");				
					len = elem[i].length;
					var arrVal = "";
					for (t = 0; t < len; t++) 
					{
						if (elem[i][t].selected) 
						{arrVal = arrVal+elem[i][t].value+"*";} 
					}
					var thelength = arrVal.length - 1;
					arrVal=arrVal.substring(thelength,-1);
					if(returnVal.search(elem[i].name+"=")!="-1")
					{returnVal = returnVal.replace(elem[i].name+"=", elem[i].name+"="+arrVal+"*");}	
					else
					{returnVal = returnVal+elem[i].name+"="+arrVal+"&";}
				}
				
				// for ASPEDIT
				else if(elem[i].name.search(/ASPEDIT/)!="-1")
				{					
					var newName = elem[i].name.replace(/ASPEDIT/gi,"");
					var test = FCKeditorAPI.GetInstance(elem[i].name).GetXHTML();
					//test = test.replace(/&nbsp;/gi, " ");
					returnVal = returnVal+newName+"="+encodeURIComponent(test)+"&";
				}
		
				// for Editor
				else if(elem[i].name.search(/EDIT/)!="-1")
				{
					//alert(elem[i].name+" Editor");				
					var thelength = elem[i].name.length - 4;
					var newName = elem[i].name.substring(thelength, -1);
					var test = FCKeditorAPI.GetInstance(elem[i].name).GetXHTML();
					test = test.replace(/&nbsp;/gi, " ");
					returnVal = returnVal+newName+"="+test+"&";
				}			
			
				//the rest
				else 
				{
					//alert(elem[i].name+" Rest");
					//Put here to fix arrays that have same name but not same box
					if(returnVal.search(elem[i].name)!="-1" && elem[i].name!="state")
					{returnVal = returnVal.replace(elem[i].name+"=", elem[i].name+"="+elem[i].value+"*");}
					else
					{returnVal = returnVal+elem[i].name+"="+escape(elem[i].value)+"&";}
				}			
			}
		}
	
		var thelength = returnVal.length - 1;
		returnVal=returnVal.substring(thelength,-1);
	}
	//alert(returnVal);
	return returnVal;
}

//to use call ajaxID = "some value"
//For ajaxrun function
function stateChange() 
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{returnText=xmlHttp.responseText;}
}

//For Callajax function
function stateChanged() 
	{ 
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{
			if(ajaxID != "")
			{document.getElementById(ajaxID).innerHTML=xmlHttp.responseText}
		} 
	}  

function GetXmlHttpObject(handler)
	{ 
		var objXmlHttp=null
		if (navigator.userAgent.indexOf("Opera")>=0)
			{alert("Doesn't Support Opera")
			return}
		
		if (navigator.userAgent.indexOf("MSIE")>=0)
			{
				var strName="Msxml2.XMLHTTP"
				if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
					{strName="Microsoft.XMLHTTP"} 
				try { 
						objXmlHttp=new ActiveXObject(strName)
						objXmlHttp.onreadystatechange=handler
						return objXmlHttp
					}
				catch(e)
					{alert("Error. Scripting for ActiveX might be disabled")
					return} 
			} 
		
		if (navigator.userAgent.indexOf("Mozilla")>=0)
			{
				objXmlHttp=new XMLHttpRequest()
				objXmlHttp.onload=handler
				objXmlHttp.onerror=handler 
				return objXmlHttp
			}
	}

function validate(ajaxVal)
{	
	try{var elem = ajaxObject.elements;}
	catch(err)
	{/*alert("Form Object Missing");*/return;}
	
	for(var i = 0; i < elem.length; i++)
	{
		if(elem[i].name != "")
		{
			//alert(elem[i].name);
			try{elmbg = document.getElementById(elem[i].name).style.backgroundColor}
			catch(err)
			{elmbg = "";}
			
			if(elmbg!="")
			try
			{
				document.getElementById(elem[i].name).style.backgroundColor = '#FFFFFF';
				document.getElementById(elem[i].name).style.Color = '#000000';
			}
			catch(err)
			{alert(elem[i].name+"Can't set bg Color!");}
			
			if(ajaxVal.search(/<validate>/)!="-1")
			{
				var bepcValidate=ajaxVal.substring(ajaxVal.search(/<validate>/)+10,ajaxVal.search(/<e validate>/));
				if(bepcValidate.search(elem[i].name)!="-1")
				{document.getElementById(elem[i].name).style.backgroundColor = '#FF0000';}
			}
		}
	}
	return "Unable to SAVE! - The following fields listed in red are incomplete or invalid please change/fill out information!";
}

function validateNew(ajaxVal)
{
	if(ajaxVal!="" && ajaxVal!=undefined)
	{
		try{var elem = ajaxObject.elements;}
		catch(err)
		{return;}
	
		for(var i = 0; i < elem.length; i++)
		{
			if(elem[i].name != "")
			{
				//alert(document.getElementById(elem[i].name).);
				//alert(elem[i].name);
				try
				{
					elmbg = document.getElementById(elem[i].name).style.backgroundColor;
					if(elmbg==""){elmbg="run";}
				}
				catch(err)
				{elmbg = "";}
				//alert(elem[i].name+" - "+elmbg);
				//alert(elem[i].type);
				if(elmbg!="")
				{
					//alert(elem[i].name+" - "+elmbg);
					try
					{
						if(elem[i].type!="button")
						{
							document.getElementById(elem[i].name).style.backgroundColor = '#FFFFFF';
							document.getElementById(elem[i].name).style.Color = '#000000';
						}
						else
						{
							document.getElementById(elem[i].name).setAttribute("class", "cmd");
						}
					}
					catch(err)
					{alert(elem[i].name+"Can't set bg Color!");}
	
					if(ajaxVal.search(elem[i].name)!="-1")
					{document.getElementById(elem[i].name).style.backgroundColor = '#FF0000';}
				}
			}
		}
	}
}
