var uploadct = 0;
function formsub( w, f, noxml )
{
	var xml = isdefined( noxml ) ? noxml : 1;
	var fscript = xml ? 'formresult' : 'resultform';
	ajaxrequest( nocache( f.action ), fscript, w, xml, 'POST',formcontent(f) );
	return false;
}

function formresize( obj )
{
	//set form height
	if( isdefined( obj.bcount ) )
	{
//		var bcount = obj.bcount;
//		max1 = $('formhead'+bcount).clientHeight + $('formmenu'+bcount).clientHeight
//		max2 = $('formhead'+bcount).clientHeight + $('formcanvas'+bcount).clientHeight;
//		$('form'+bcount).style.height = max1 > max2 ? max1 : max2;
	}
}


function resultform( txt, obj )
{   
	var f, el, i, o;
	var bcount = obj.bcount;
	var onchange = obj.onchange;
	obj = $(obj.id);
	obj.bcount = bcount;
	obj.onchange = onchange;
	obj.innerHTML = txt;
	o = obj.getElementsByTagName("FORM");
	obj.formdiv = 1;
	buttonizeall( obj );
	if( o.length )
	{
		f = o[0];
	}
	
	if( o.length )
	{
		f = o[0];
		if( f.className == '' ) f.className = 'forminput';
		//f.style.display="block";
		f.onsubmit = function() {
		if(document.getElementById('LoadingMsg'))
		{
			document.getElementById('LoadingMsg').style.display = "block";
			f.style.display="none";
		}
			
		 return formsub(mywin(this),this); 
		 }
		el = f.elements;
			
		//# - remember me signin page
		if(getbasename(f.action) == 'mem_signin_ajax.php')
		{
			if(getCookie ('ckRemember'))
			{
				document.getElementById('txtUsername').value = getCookie ('ckRemember') ;
				document.getElementById('ckRemember').value = 1;
				document.getElementById('ckbRemember').checked = true;
			}
			
		}
		//reset uploaded file
		f.onreset = function()
		{
			for( i = 0 ; i < el.length ; i++ )
			{
				var name = el[i].name;
				formremoveerrmsg( name );
				if( el[i].type == 'hidden' && (el[i].getAttribute( 'upload') == 1 || el[i].getAttribute( 'upload') == 2) )
				{
					uploadcomplete( el[i].ident, el[i].basevalue,el[i].getAttribute( 'upload') );
				}
			}
		}
		for( i = 0 ; i < el.length ; i++ )
		{
			if( el[i].type == 'hidden' && el[i].getAttribute( 'upload') == 1 )
			 	uploadimg( el[i], el[i].getAttribute( 'button'), el[i].getAttribute( 'maxsize'), el[i].getAttribute( 'upload'),obj );
			else if( el[i].type == 'hidden' && el[i].getAttribute( 'upload') == 2 )
				uploadfile( el[i], el[i].getAttribute( 'button'), el[i].getAttribute( 'maxsize'), el[i].getAttribute( 'upload'),obj );
			
		}
		for( i = 0 ; i < el.length ; i++ )
		{
			if( el[i].type == 'text' ) 
			{ 
			
				if(el[i].style.visibility != "hidden")
				{
					el[i].select(); 
					el[i].focus(); 
				}
				break; 
			}
		}
			
	}
	
	var s = obj.getElementsByTagName("SCRIPT");
	for( i = 0 ; i < s.length ; i++ )
	{
		//alert( s[i].text )
		var ns = ce('SCRIPT');
		ns.type = 'text/javascript';
		ns.text = s[i].text;
		document.body.appendChild( ns );
	}
	for( i = 0 ; i < s.length ; i++ )
		s[i].parentNode.removeChild( s[i] );


	if( isdefined( obj.onchange ) ) obj.onchange();
	//}
}

function formremoveerrmsg( name )
{
		var err = $(name+'_err')
		if( err != null )
		{
			err.parentNode.removeChild( err );
			err.innerHTML = '';
			err.style.display = 'none';
		}
}

function formcontent( f )
{ 
	var obj, el, i, vals, name, val, args, err;
	obj = f;
	el = obj.elements;
	vals = new Array(el.length);
	for( i = 0 ; i < el.length ; i++ )
	{
		var name = el[i].name;
		formremoveerrmsg( name );
		//alert(el[i].type);
		if( el[i].type == 'select-one' ) {val = el[i].selectedIndex >= 0 ? el[i].options[el[i].selectedIndex].value : '' }
		else if(el[i].type == 'select-multiple') 
		{ 
			var aval = new Array;
			for( var j = 0 ; j < el[i].options.length ; j++ )
				if( el[i].options[j].selected ) aval.push( el[i].options[j].value);
			val = aval.join(',');
		}
		else if( el[i].type == 'radio' ) val = el[i].checked;
		else if( el[i].type == 'checkbox' ) val = el[i].checked;
		else 
		{
			val = el[i].value;
		//	alert(val);
		}

		vals[i] = name + '=' + escape(val);
	}
	vals[vals.length] = 'formid=' + f.id;
	return replacespecialchar(vals.join('&'),'+','%2B')
}

function ffLoadXMLBrowser(strXML) 
{ 
  if(document.implementation && document.implementation.createDocument)  
  { 
		 xmlParser = new DOMParser(); 
	   xmlDocum = xmlParser.parseFromString( strXML, 'text/xml'); 
	   xmlSerializer = new XMLSerializer(); 
	   
  } 
  else if(window.ActiveXObject) { 
	   // IE 
	   xmlDocum = new ActiveXObject("Microsoft.XMLDOM"); 
	   xmlDocum.async=false; 
	   xmlDocum.loadXML( strXML); 
  } 
  //alert(xmlDocum.xml); 
  return xmlDocum; 
}
function formresult( xml, obj, txt )
{
	var status = vtag(xml,'status');
	if( status == '' )
	{
		//debug( '<textarea rows=10 cols=40>' + txt + '</textarea>' );
	}
	//status = parseInt( vtag(xml,'status') );
	var qryerror = vtag(xml,'qryerror');

	if( qryerror != '' )
	{
		//debug( qryerror );
		return;
	}
	//alert(xml.getElementsByTagName('status')[0].text);
	status *= 1;

	if( status )
	{
		var okmess, okscript, okurl;
		okmess = vtag( xml, 'okmess' );
		if( okmess != '' ) 
		{
			obj.innerHTML = '<br>'+okmess+'<br><br><br><br>';
			//obj.style.color = "red";
			obj.className = "grabold";
		}
		okscript = vtag( xml, 'okscript' );
		if( okscript != '' ) eval( okscript );
		okurl = vtag( xml, 'okurl' );
		var xmlinput = vtag( xml, 'xml' );
		if(xmlinput) 
		{
		//# - Submitting after validate the forms
			$('signin').style.display = 'block';
			if(document.frmSubmit)
			{
				//# - Setting for Cookie
				var fromid = vtag( xml, 'fromid' );
				var ckremember = vtag( xml, 'ckremember' );
				if(fromid)
				{    
					if(ckremember == 1)
					{
						setCookie ('ckRemember', fromid);
					}
					else
						delCookie('ckRemember');
				}
				document.frmSubmit.xmlinput.value = xmlinput;
				document.frmSubmit.submit();
			}
			//window.setTimeout('document.frm.submit()',1000);

		}
		else if( okurl != '' ) 
		{
			//# - Setting for Cookie
			var fromid = vtag( xml, 'fromid' );
			var ckremember = vtag( xml, 'ckremember' );
			if(fromid)
			{    
				if(ckremember == 1)
				{
					setCookie ('ckRemember', fromid);
				}
				else
					delCookie('ckRemember');
			}
			document.location = okurl;
		}
		if( isdefined( obj.onsuccess ) ) obj.onsuccess();
	}
	else
	{
		
		var i;
		var errlist = ntag( xml, 'error' );
		var formid = vtag( xml, 'formid' );
		var field, form, parent;
		if(errlist)
		{
			if($('errormsg'))
			$('errormsg').innerHTML = "";
			//# - to display again if any error exist - By Jeyaseelan on 26/03/07
			if(isdefined(formid) && document.getElementById(formid) && document.getElementById(formid).style.display == "none"  )
				document.getElementById(formid).style.display="block";
		}
		for( i = 0 ; i < errlist.length ; i++ )
		{
			var errorcode = 0;
			var errid = vtag( errlist[i], 'errid' ) + '_err';
			errobj = $(errid);
			if( errobj ) errobj.parentNode.removeChild( errobj );
			errobj = ce( 'div' );
			errobj.id = vtag( errlist[i], 'errid' ) + '_err';
			errobj.className = 'error';
			errobj.style.display = 'block';
			errobj.innerHTML = vtag( errlist[i], 'errmess' );
			//# - To call Mail function thru Login page - Added by Jeyaseelan on 31/08/07
			if(vtag( errlist[i], 'errorcode' ))
				errorcode = vtag( errlist[i], 'errorcode' );
			
						
			if( formid != '' )
			{
				
				
				form = $(formid);
				field = form[vtag( errlist[i], 'errid' )];
				if( field != null )
				{
					parent = field.parentNode;
					
					for( j = 0 ; j < parent.childNodes.length; j++ )
					{
						if( parent.childNodes[j] == field ) break;
					}
					if( j == parent.childNodes.length-1 )
						parent.appendChild( errobj );
					else
						parent.insertBefore( errobj, parent.childNodes[j+1] );
										
					
							
					//#-- Showing JS Error Message If the Object type is hidden or select - Modified By Rajendran
					if(field.type == "hidden" || field.type == "select-multiple" || field.type == "select-one" ) 
						continue;
					else if(field.style.display != "none" && field.style.visibility != "hidden")
					{
						field.focus();
					}
						//#--
						
					
				}
				else { 		
							//debug( 'invalid errid', vtag( errlist[i], 'errid' ), vtag( errlist[i], 'errmess' ) );
							//#!-- added by sathiya
							
								
					}
			}
		}
	}
	
	if( isdefined( obj.onchange ) ) obj.onchange();
	
}


function forminput( id, title, script, loadingmessage )
{
	var id;
	var bcount;
	var formdiv;
	var out;
	
	//#-------
	if( id == '' )
	{
		id = 'form' + browserct;
		bcount = browserct++;
	}
	else
	{
		bcount = $(id).bcount;
	}
	
	if( $(id) == null)
	{
		document.write( '<div id="' + id + '" class="">Login Form</div>' );
	}
	if( !isdefined( loadingmessage ) ) loadingmessage = 'Loading...';
	
	formdiv = $(id);
	formdiv.bcount = bcount;
	formdiv.script = script;
	out = '<div class=listhead><div class=detailhead id="formhead' + bcount + '"><a name="formtop"></a></div><div class="formmenu" id="formmenu' + bcount + '"><br>';
	out += '</div></div><div class="formcanvas" id="formcanvas' + bcount + '"> <div class=loading>' + loadingmessage + '</div></div>';
	formdiv.innerHTML = out;
	canvas = $('formcanvas'+bcount);
	canvas.bcount = bcount;
	
	canvas.onchange = function() { formresize( this ); };
	ajaxrequest( nocache( script ), 'resultform', canvas, 0 );
	formresize( this );
//	document.title = "STYLELOGUE : "+title.toProperCase();
}

//# - This function is used to replace + by %2B - added by jeyaseelan on 08/02/07
function replacespecialchar(formcontent,replaceto,replaceby)
{
	return formcontent;
	var contentlength = formcontent.length;
	var findvar = formcontent.indexOf(replaceto);
	var newcontent = formcontent;
	while(findvar !=-1)
	{
		newcontent = newcontent.replace(replaceto,replaceby);
		findvar = newcontent.indexOf(replaceto);
	}
	return newcontent;
}
 
