/*
=================================
	 INPUT TYPE=FILE
=================================
*/
var CurrentPreview
var PreviewPanelWidth = 320
var PreviewPanelHeight = 280
var TestImage = new Array
var ImageExt = "extensions: jpg, jpeg, gif, png, bmp"

function BuildDynFileField(fld, init) {


	BrainId = "_brain_FileField_"

	
	if(init) {
		Wrapper = document.createElement("<div>")
		Wrapper.id = BrainId+'Wrapper_Div_'+fld.name
//		Wrapper.name = BrainId + 'Wrapper_Div_' + fld.name
		Wrapper.brain=1
		Wrapper.size=fld.size
		Wrapper.required=fld.required?fld.required:0
		Wrapper.elementName=fld.elementName?fld.elementName:''
		
		if(fld.defaultvalue)Wrapper.value=fld.defaultvalue
		Wrapper.maxHeight=fld.maxHeight
		Wrapper.maxWidth=fld.maxWidth
//		fld.removeAttribute("name")
//		fld.style.display="none";
	} else {
		Wrapper = fld
		Wrapper.id = fld.id
	}

		
	name = Wrapper.id.replace(BrainId+'Wrapper_Div_','')

	val = Wrapper.value
	
	if(!val) {
		el = document.createElement('<INPUT TYPE="FILE" NAME="'+name+'">')
		el.onmouseout = BrainId+'Fn_GetFileName(this)'
		el.size = fld.size
		el.required=fld.required?fld.required:0
		el.elementName=fld.elementName?fld.elementName:''
		Wrapper.appendChild(el)
		el = document.createElement("<BR>")
		Wrapper.appendChild(el)
	} else {
	
		if(init) {
			el = document.createElement('<INPUT TYPE="TEXT" NAME="_'+name+'">')
			el.size = fld.size
			el.value = val
			el.required=fld.required?fld.required:0
			el.elementName=fld.elementName?fld.elementName:''
			Wrapper.appendChild(el)
			el = document.createElement("<BR>")
			Wrapper.appendChild(el)
		}

		FieldType = ImageExt.indexOf(val.split(".")[val.split(".").length-1].toLowerCase())>0 ? 'Image' : 'Other'
		
		if(FieldType=='Image') {

		ProgressDiv = document.createElement('<DIV>')
		ProgressDiv.id = BrainId+'ProgressMeter_Div_'+name
		ProgressDiv.className = 'ProgressWrapper'
		ProgressDiv.style.width='200px'
		ProgressDiv.style.display='none'
//		ProgressDiv.style.position = 'absolute'
		ProgressDiv.style.zIndex=++zIndex
		Wrapper.appendChild(ProgressDiv);
		
			el = document.createElement('<span>')
			el.id = BrainId+'ProgressMetter_Label_Span_'+name
			el.className = 'ProgressContainer'
			el.style.width='80px'
			el.innerText = 'Loading';
//			ProgressDiv.appendChild(el);

			el = document.createElement('<span>')
			el.id = BrainId+'ProgressMetter_Value_Span_'+name
			el.className = 'ProgressContainer'
			el.style.width='100%'
			ProgressDiv.appendChild(el);
			
			elb = document.createElement('<span>')
			elb.className = 'ProgressBar'
			el.appendChild(elb);
		
//		w = window.open('about:blank')
//		w.document.write('<textarea style="width:800; height:500;">'+ProgressDiv.outerHTML+'</textarea>')
		
//		alert(ProgressDiv.outerHTML)

		}
		
		WrapperContainer = document.createElement('<DIV>')
		WrapperContainer.id = BrainId+'WrapperContainer_Div_'+name
		
		if(!init && FieldType=='Image')WrapperContainer.style.display='none'
	
		el = document.createElement('<INPUT TYPE="Button" NAME="'+BrainId+'ClearField_Button_'+name+'" onclick="'+BrainId+'Fn_ClearField(\''+name+'\')">')
		el.style.margin = '1 0 0 1'
		el.value = 'clear';
		WrapperContainer.appendChild(el)
		
		if(FieldType=='Image') {

			el = document.createElement('<INPUT TYPE="Button" name="'+BrainId+'PreviewImage_Button_'+name+'" onclick='+BrainId+'Fn_PreviewImage("'+name+'")>')
			el.style.margin = '1 0 0 1'
			el.value = 'preview'
		
			WrapperContainer.appendChild(el)

			el = document.createElement("<BR>")
			WrapperContainer.appendChild(el)
			
			PreviewContainer=document.createElement('<DIV onclick="this.style.zIndex=++zIndex">')
			PreviewContainer.id=BrainId+'PreviewContainer_Div_'+name
			PreviewContainer.className='OuterImageContainer'
			PreviewContainer.style.display='none'
			PreviewContainer.style.position='absolute'
			PreviewContainer.style.width = PreviewPanelWidth
			PreviewContainer.style.height = PreviewPanelHeight
			WrapperContainer.appendChild(PreviewContainer)
			
				ImageTitle=document.createElement('<DIV onmousedown="dragStart(event, \''+BrainId+'PreviewContainer_Div_'+name+'\')" ondblclick="'+BrainId+'Fn_PreviewImage(\''+name+'\')">')
				ImageTitle.id=BrainId+'ImageTitle_Div_'+name
				ImageTitle.className='ImageContainerTitle'
				PreviewContainer.appendChild(ImageTitle)
			
				ImagePreviewContainer=document.createElement('<DIV>')
				ImagePreviewContainer.id=BrainId+'ImagePreviewContainer_Div_'+name
				ImagePreviewContainer.className='ImageContainer'
				ImagePreviewContainer.style.overflow='auto'
				ImagePreviewContainer.style.width = '100%'
				ImagePreviewContainer.style.height = '100%'
				PreviewContainer.appendChild(ImagePreviewContainer)

					ImagePreview=document.createElement('<IMG locked=0 onmousedown="dragStart(event, \''+BrainId+'ImagePreview_IMG_'+name+'\')" ondblclick="'+BrainId+'Fn_ResizePreview(\''+name+'\')">')
					ImagePreview.id=BrainId+'ImagePreview_IMG_'+name
					ImagePreview.maxHeight=fld.maxHeight
					ImagePreview.maxWidth=fld.maxWidth
					ImagePreview.style.position='absolute'
					ImagePreview.style.cursor='move'
					urlArr = Wrapper.value.split("\\")
					if(urlArr.length>1) {
						ImagePreview.src = Wrapper.value;
						iname = urlArr[urlArr.length-1];
					} else {
						ImagePreview.src = webSysImg + Wrapper.value;
						iname = Wrapper.value;
					}
					ImagePreviewContainer.appendChild(ImagePreview)

				ImageTitle.innerText = iname;

				ImagePreviewStatus=document.createElement('<DIV>')
				ImagePreviewStatus.id=BrainId+'ImagePreviewStatus_Div_'+name
				ImagePreviewStatus.className='ImageContainerStats'
				ImagePreviewStatus.innerText="HELP!!!!!"
				PreviewContainer.appendChild(ImagePreviewStatus)
				
		}

		Wrapper.appendChild(WrapperContainer);
	}		
	


	if(init) fld.outerHTML = Wrapper.outerHTML

	

}

function _brain_FileField_Fn_GetFileName(fld) {
BrainId = "_brain_FileField_"

	if(fld && fld.value.length > 0 && fld.value != fld.CurrentPreview) {
		name = fld.name
		imgSrc = fld.value
		fld.CurrentPreview = fld.value
		Wrapper = document.all.tags('div')(BrainId+'Wrapper_Div_'+name)
		urlArr = imgSrc.split("\\")
		if(!urlArr.length)imgSrc = webSysImg + urlArr[urlArr.length-1]
		Wrapper.value = imgSrc
		
		FieldType = ImageExt.indexOf(urlArr[urlArr.length-1].split(".")[urlArr[urlArr.length-1].split(".").length-1].toLowerCase())>0 ? 'Image' : 'Other'
//		alert(FieldType)
//		alert(FieldType=='Image' ? Wrapper.children.length>2 ? true:false : Wrapper.children.length>3 ? false:true)
		if(Wrapper.children.length>2) {
			document.all.tags('div')(BrainId+'WrapperContainer_Div_'+name).outerHTML = ""
			if(document.all.tags('div')(BrainId+'ProgressMeter_Div_'+name))
				document.all.tags('div')(BrainId+'ProgressMeter_Div_'+name).outerHTML = ""
		}
		
		BuildDynFileField(Wrapper)
		fld.locked = 1
		/*
		div=document.all.tags('div')
		t=''
		for(i=0;i<div.length;i++) {
			t+=div[i].id
			t+='\n----------------------------\n'
			t+=div[i].outerHTML
			t+='\n----------------------------\n'
		}
		w = window.open('about:blank')
		w.document.write('<textarea style="width:800; height:500;">'+t+'</textarea>')
		*/
		
		if(FieldType=='Image') {
			Progress = document.all.tags('div')(BrainId+'ProgressMeter_Div_'+name)
			Progress.style.display = "inline";
			imgImage = document.all.tags('img')(BrainId+'ImagePreview_IMG_'+name)
			x=TestImage.length
			TestImage[x]=new Image()
			TestImage[x].src=imgImage.src+'?20000413143020'
			setTimeout(BrainId+'Fn_ReadImage('+x+',"'+name+'")' ,100)
		}
	}
//	document.focus();		
}

function _brain_FileField_Fn_ReadImage(id, image){
BrainId = "_brain_FileField_"
	if(TestImage[id].complete) {
		document.all.tags('div')(BrainId+'ProgressMeter_Div_'+image).style.display = "none"
		document.all.tags('div')(BrainId+'WrapperContainer_Div_'+image).style.display = "inline"
		eval(BrainId+'Fn_PreviewImage("'+image+'")')
		setTimeout(BrainId+'Fn_ValidateImageDimensions('+id+',"'+name+'")', 100)
	} else {
		eval(BrainId+'Fn_UpdateProgressBar('+id+',"'+image+'")')
		setTimeout(BrainId+'Fn_ReadImage('+id+',"'+image+'")', 300)
	}
}

function _brain_FileField_Fn_UpdateProgressBar(id, image){
BrainId = "_brain_FileField_"
	bar = document.all.tags('span')(BrainId+'ProgressMetter_Value_Span_'+image)
	bar.innerHTML += bar.children(0).outerHTML
}

function _brain_FileField_Fn_ClearField(fld) {
BrainId = "_brain_FileField_"
	div = document.all.tags('div')(BrainId+'Wrapper_Div_'+fld)
	div.value = ""; div.name = fld; 
	BuildDynFileField(div, 1)
}

function _brain_FileField_Fn_ValidateImageDimensions(id, image) {
BrainId = "_brain_FileField_"
	var err = ""
	img = document.all.tags('img')(BrainId+'ImagePreview_IMG_'+image)
	srcimg = TestImage[id]
	
//	alert(TestImage[0].outerHTML)
//	TestImage[0].removeAttribute('width')
//	TestImage[0].removeAttribute('height')
//	alert(TestImage[0].outerHTML)
//	alert(TestImage[0].width)
	
	if(img.width && img.maxWidth) {	
		if(srcimg.width > img.maxWidth)err = err + "\n-  " + srcimg.width + "px exceeds the maximum allowed width of " + img.maxWidth + "px\n"
		if(srcimg.height > img.maxHeight)err = err + "\n-  " + srcimg.height + "px exceeds the maximum allowed height of " + img.maxHeight + "px\n"
		if(err) {
			t = "  IMAGE INFO ALERT ";
			t +=  "\n---------------------------------------------------------------------------------------------\t \n"
			t += "\nImage exceeds the maximum allowed dimensions.\nPlease resize this image and try again.\n"
			t += err
			t +=  "\n---------------------------------------------------------------------------------------------\t \n"
			alert(t)	
			setTimeout(BrainId+'Fn_ClearField("' + image + '")' , 250);	
			return;
		}
	}
}

function _brain_FileField_Fn_PreviewImage(image) {
BrainId = "_brain_FileField_"
	but = eval('myform.'+BrainId+'PreviewImage_Button_'+image)
	div = document.all.tags('div')(BrainId+'PreviewContainer_Div_'+image)
	divt = document.all.tags('div')(BrainId+'ImageTitle_Div_'+image)
	img = document.all.tags('img')(BrainId+'ImagePreview_IMG_'+image)
	img.reset=0
	if(eval("myform." + image))imgName=eval("myform." + image).value
	else imgName=eval("myform._" + image).value
	if(div.style.display == 'none') {
		but.value = "close preview";
		div.style.display = "inline";
		img.style.display = "inline";
		div.style.zIndex = ++zIndex;
		div.style.left = div.offsetLeft
		div.style.top = div.offsetTop
		Stats = document.all.tags('div')(BrainId+'ImagePreviewStatus_Div_'+image)
		Stats.innerText = img.width + "/" + img.height + " | Filesize: " + formatCurrency(img.fileSize) + ' bytes'
	} else {
		but.value = "preview";
		div.style.display = "none";
	}
}

function _brain_FileField_Fn_ResizePreview(image) {
BrainId = "_brain_FileField_"
	ImagePreview_IMG = document.all.tags('img')(BrainId+'ImagePreview_IMG_'+image)
	PreviewContainer = document.all.tags('div')(BrainId+'PreviewContainer_Div_'+image)
	ImagePreviewContainer_Div = document.all.tags('div')(BrainId+'ImagePreviewContainer_Div_'+image)
	ImagePreview_IMG.style.left = 0
	ImagePreview_IMG.style.top = 0
	PreviewContainer.style.width = PreviewContainer.style.width.replace("px","")==PreviewPanelWidth ? PreviewPanelWidth*2 : PreviewPanelWidth
	PreviewContainer.style.height = PreviewContainer.style.height.replace("px","")==PreviewPanelHeight ? PreviewPanelHeight*2 : PreviewPanelHeight
	ImagePreviewContainer_Div.style.width=PreviewContainer.style.width.replace("px","")-12
	ImagePreviewContainer_Div.style.height=PreviewContainer.style.height.replace("px","")-12
}

/*
=================================
	 INPUT TYPE=TEXT | DATE
=================================
*/

function BuildDynDateField(fld) {
BrainId = "_brain_DateField_"
	
	div = document.all.tags('div')('overDiv')
	if(!div) {
		div = document.createElement('<div>')
		div.id = 'overDiv'
		div.style.position='absolute'
		div.style.visibility='hidden'
		document.body.appendChild(div)
	}

	Wrapper = document.createElement('<div>')
	
	WrapperContainer = document.createElement('<div>')
	WrapperContainer.id = BrainId+'WrapperContainer_'+fld.name+'_Div'
	Wrapper.appendChild(WrapperContainer)

	el = document.createElement('<input type=text name="'+fld.name+'">')
	el.type='text'
	el.size=fld.size
	el.value=fld.value
	WrapperContainer.appendChild(el)
	
	el = document.createElement('<input type="button" onclick="overDiv.style.zIndex=++zIndex; ggPosX='+BrainId+'PlaceHolder_'+fld.name+'_Div.offsetLeft;  ggPosY='+BrainId+'PlaceHolder_'+fld.name+'_Div.offsetTop; show_calendar(\'myform.'+fld.name+'\');">')
	el.value='+'
	WrapperContainer.appendChild(el)

	PlaceHolder = document.createElement('<div>')
	PlaceHolder.id = BrainId+'PlaceHolder_'+fld.name+'_Div'
	PlaceHolder.style.position='absolute'
	Wrapper.appendChild(PlaceHolder)

	
	
	fld.outerHTML = Wrapper.outerHTML	
	
}

/*
=================================
	 INPUT TYPE=TEXT | SELECT
=================================
*/


function UpdateDynSelectList(el, name) {
BrainId = "_brain_SelectField_"

sel = eval(BrainId+'OptionWrapper_Div_'+name)

fldname=el.name.replace('Txt','')

//alert(el.defaultvalue + ' : ' + document.myform(fldname).value + ' : ' + el.value)

	if(document.myform(fldname).value > '' && el.defaultvalue != el.value) {
		for(i=0;i<sel.children.length;i++) {
			sel.children(i).className='ClientListDiv'
		}
	document.myform(fldname).value=''
//	el.value=''
	CloseDynSelectLists(0)
	}
}

function BuildDynSelectList(fld) {
BrainId = "_brain_SelectField_"
	var tmp=""
	
	if(!fld.edit || fld.edit==0) tmp = "onkeypress='return false;'"
	else tmp = 'onkeyup="UpdateDynSelectList(this, \''+fld.name+'\')'
	
	OptionWrapperId = BrainId+'OptionWrapper_Div_'+fld.name

	
	Wrapper = document.createElement("<div>")
	Wrapper.id = BrainId+'Wrapper_Div_'+fld.name

		el = document.createElement('<input name="'+fld.name+'Txt" '+tmp+'>')

//	el = document.createElement('<input type="text" '+tmp+' name="'+fld.name+'Txt">')
	
	el.required=fld.required?fld.required:0
	el.elementName=fld.elementName?fld.elementName:''
	el.value=fld.defaulttext
	el.defaultvalue=fld.defaulttext?fld.defaulttext:''
	el.style.width=fld.fldwidth
	Wrapper.appendChild(el)
	

	el = document.createElement('<input type="button" onclick="CloseDynSelectLists(\''+OptionWrapperId+'\'); '+OptionWrapperId+'.style.display='+OptionWrapperId+'.style.display==\'inline\' ? \'none\' : \'inline\';>')
	el.value='+'

	Wrapper.appendChild(el)

	el = document.createElement("<br>")
	Wrapper.appendChild(el)
	
	OptionWrapper = document.createElement('<div dynfld="select_Div">')
	OptionWrapper.id=OptionWrapperId
	OptionWrapper.className="ClientNameDiv"
	OptionWrapper.style.width=fld.selwidth
	OptionWrapper.style.display='none'
	OptionWrapper.style.overflow='auto'
	OptionWrapper.style.position='absolute'
	OptionWrapper.style.zIndex=++zIndex
	Wrapper.appendChild(OptionWrapper)
	
	if(fld.selheight) OptionWrapper.style.height = fld.selheight
	
	for(y=0;y<fld.children.length;y++) {
	var txt
	if(fld.fnOnChange) txt=fld.fnOnChange+'(this,\''+fld.children(y).value+'\');'

		el = document.createElement('<div name="btn-'+BrainId+fld.name+'" onclick="myform.'+fld.name+'.value=\''+fld.children(y).value+'\'; myform.'+fld.name+'Txt.value=this.innerText; myform.'+fld.name+'Txt.defaultvalue=this.innerText; '+OptionWrapperId+'.style.display=\'none\';'+txt+'">')
		el.className='ClientListDiv'
		if(fld.children(y).noclick)	el.noclick=fld.children(y).noclick
		el.style.width='100%'
		
		noclick=1
		
		if(!fld.edit || fld.edit==0) el.value = fld.children(y).value 
		if(fld.defaultvalue == fld.children(y).value) {
	//		sel = el
//			el.scrollIntoView()
			el.className = el.className + ' + ' + el.className + 'clicked'
		}
		el.innerText = fld.children(y).innerText 
		OptionWrapper.appendChild(el)
	}

	el = document.createElement('<input type="hidden" name="'+fld.name+'" value="'+fld.defaultvalue+'">')
	myform.appendChild(el);

	fld.outerHTML = Wrapper.outerHTML	
	

}




/*
=================================
	 INPUT TYPE=TEXT | CLOSE PALLETTES
=================================
*/

function CloseDynSelectLists(s) {
BrainId = "_brain_SelectField_"

	d = document.all.tags("div")
	for(i=0;i<d.length;i++) 
		if(d(i).dynfld) 
			if(d(i).dynfld=='select_Div' && d(i).id != s)
				d(i).style.display="none"
	
	if(document.all.tags("div")("overDiv"))
		document.all.tags("div")("overDiv").style.visibility="hidden"


}








