//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
// Written by: Kolik Mark
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
var oForm		= null;
var oType		= null;
var KSFormName	= "KSForm1";
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function initKSForm() 
{
	try
	{
		oForm	= new IFormInterface(KSFormName);
		
		loadForm();
	}
	catch(e){alert("KSForm.init() "+e.description);}
	
	try{
		var oradio = document.getElementById("cimatroncust_2")
		if(oradio) oradio.checked=true
	}
	catch(e){}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function changeInput(current)
{
	window.event.cancelBubble	= true;
	
	var dv		= new dataValidator(current);
		dv.getValue();
		dv.checkField();

	if(window.onChangeKSFormField)	onChangeKSFormField(window.document.forms[0].name, current, dv.data);
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function blurInput(current)
{
	window.event.cancelBubble	= true;
/*
		var dv					= new dataValidator(current);
			dv.getValue();

		if(window.onBlurKSFormField)	onBlurKSFormField(window.document.forms[0].name, current, dv.data);
*/
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function formsSend(o)
{
	var form		= window.document.forms[0];

	saveForm(form.id);
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function formsReset(o)
{
		var form		= window.document.forms[0];
			form.reset();
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function formsPrint(o)
{
		window.print();
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function saveForm(formid)
{
	try
	{
		var currentpath	= window.location.href.toLowerCase();
		var form		= window.document.forms[0];
		var query		= currentpath.split(form.name.toLowerCase() + ".aspx")[1];
		//var reUrl = /templates\/{1}[^\/]*\/{1}/ig;
		var reUrl = /\/templates\//ig;

		if(!reUrl.test(currentpath) && document.getElementsByTagName("base"))
			currentpath	= document.getElementsByTagName("base")[0].href.toLowerCase();
		//alert("currentpath="+currentpath)

		//var vpath		= currentpath.split(form.name.toLowerCase() + ".aspx")[0];
		var vpath		= currentpath.split("templates")[0];
		//alert("vpath="+vpath)

		var url			= vpath+"Templates/KSForm/SendMessage.aspx"+query+"&form="+form.name 
		
		if (form.name.toLowerCase()=='contactus')
		{
			url+="&_form_KSForm1_label_sendto=" + document.all._form_KSForm1_label_sendto.innerText +
			"&_form_KSForm1_field_sendto_value=" + document.all._form_KSForm1_field_sendto.value + 
			"&_form_KSForm1_field_sendto_text=" + document.all._form_KSForm1_field_sendto[document.all._form_KSForm1_field_sendto.selectedIndex].text
		}					
		if (form.name.toLowerCase()=='marketing_form')
		{
			//var newpath =  vpath.split("marketing")
			//url	 = newpath[0] + "/KSForm/SendMessage.aspx"+query+"&form="+form.name 
			setItemField();
		}
/*		if (form.name.toLowerCase()=='signin')
		{
			var newpath =  vpath.split("signin")
			
			url	 = newpath[0] + "/KSForm/SendMessage.aspx"+query+"&form="+form.name 
		
		}*/
		//alert(url)
		
		
		// get ksform data
		var oData		= oForm.save();
		//getObj(oData)
		if(window.onSaveKSForm)
		{
			if(onSaveKSForm(window.document.forms[0].name))	// check errors
			{
				
				return false;
			}
		}
		var xmldom		= obj2xmldom(oData,formid);
		//alert sended xml
		//alert(xmldom.xml);
		//document.write(xmldom.xml)
		
		// saving ksform data
		ksFormPostXMLData(url, xmldom);

	}
	catch(e){alert("KSForm.saveForm() "+e.description)}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function loadForm()
{
	try
	{
		// load site dictionary
		lang			= document.all.currentlang.value;
		loadForm.sd		= new SiteDictionary("../../Shared/ClientScripts/validation.dictionary."+lang+".xml");
		
/*
		// load data for filling ksform
		//postXMLData(url, xmldom);
		
		//alert(window.result);
		
		// convert xml data 2 object
		if(window.result)
		{
			oData		=	xmldom2obj(window.result);
			//getObj(oData);
			
			// convert xml datatype 2 object
			oType		=	xmldom2objType(window.result);
			//getObj(oType);
			
			transformData2Show();
			
			oForm.load(oData);
		}
*/	
	}
	catch(e)
	{
		alert("loadForm() "+e.description)
	}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/*
function initForm()
{
	oForm.init();
}
*/
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function ksFormPostXMLData(xmlpath, xmldoc)
{
	try
	{
		//alert(xmldoc.xml)
		xmlhttp	= new ActiveXObject("Microsoft.XMLHTTP");
		//xmlhttp	= new ActiveXObject("Msxml2.XMLHTTP");
		
		xmlhttp.onreadystatechange	= HandleStateChange;
		xmlhttp.Open("POST", xmlpath, false);
		xmlhttp.setRequestHeader("Content-Type", "text/xml; charset='utf-8' ");
		xmlhttp.Send(xmldoc);
	
	}
	catch (e){"postXMLData() "+ws("postXMLData() "+e.description);}
	
	xmlhttp = null;

	return;

//'''''''''''''''''''''''''
	function HandleStateChange()
	{
	
		
		
		if(xmlhttp.readyState==4)
		{
			//alert(xmlhttp.responseText)
			try{
				if(xmlhttp.responseText)
				{
			
					var wda	= window.document.all;
					
					if(wda.ksformPlace)
					{
						if(wda.formDescription)		wda.formDescription.innerHTML	= "";	
						if(wda.ksformPlace)	
						{
							wda.ksformPlace.innerHTML		= xmlhttp.responseText;	
							wda.ksformPlace.height			= "100%";
							wda.ksformPlace.style.padding	= "20 50 20 50";	
							wda.ksformPlace.className		= "B C3 S12 bgGeneralTbl";	
						}
						
						try{
							wda.formsFooter_lblReq.innerHTML = "";
							wda.formsFooter_imgStar.style.display = "none";
						}catch(e){}	
						
						if(wda.formComments)		wda.formComments.innerHTML		= "";	
						if(wda.formFooterButtons)	wda.formFooterButtons.innerHTML	= "";
						
						if(wda.basketTD)			wda.basketTD.innerHTML			= "";
						
						if(wda.otherFields)		
						{
							for(var j=0; j<wda.otherFields.length; j++)
							{
								wda.otherFields[j].innerHTML						= "";
							}
							alert( wda.tformsFooter_lblReq.innerHTML)
							
						}
					}
					else	
					{
			
						document.all.MainDiv.style.display="none";
						document.all.SubDiv.innerHTML = xmlhttp.responseText;
						document.all.SubDiv.style.display="block";
					}
				}
			}
			catch(e){
				alert("err ; " + e.description)
			}
			window.status	= "Done";
		}
	}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function xmldom2obj(xmlstring)
{
	var fields				= {};
	var	elem;
	var attr;
	var xpath				= "CONTENT/fields/field";
	var xpath2Attr			= "@name";
	
	try
	{	
		var xmlDoc			= new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async	= false;
			xmlDoc.loadXML(xmlstring);
		
		var elems			= xmlDoc.selectNodes(xpath);

		for (var i=0; i<elems.length; i++)
		{
			elem			= elems.nextNode();
			attr			= elem.selectSingleNode(xpath2Attr).value;

			fields[attr]	= elem.text;
		}
	}
	catch(e){alert("xmldom2obj() "+e.description)}
	
	return fields;
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function obj2simplexmldom(oData)
{
	try
	{	
		var xmlDoc	= new ActiveXObject("Microsoft.XMLDOM");
		var	root	= xmlDoc.createElement("content"); 
		var element;
			
			xmlDoc.appendChild(root);
			
		for(var e in oData)
		{
			element	= xmlDoc.createElement(e);
					  element.text	= toSave(oData[e]);
					  root.appendChild(element);
		}
		return xmlDoc;
	}
	catch(e){alert("KSForm.obj2simplexmldom() "+e.description); return null;}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function obj2xmldom(oData,formid)
{
	try
	{	
		var xmlDoc	= new ActiveXObject("Microsoft.XMLDOM");
		var row, attr, dtype, fvalue, flabel, fieldid, fcode, labelid, selectedIndex;
		var datatype, modifier, lnameid;
		var root, subroot;
		var data	= "";
			
			root	= xmlDoc.createElement("content"); 
			attr	= root.setAttribute("name",formid);
			xmlDoc.appendChild(root);
			
			subroot	= xmlDoc.createElement("ksform"); 
			root.appendChild(subroot);
			
		for(var e in oData)
		{
			fieldid		= "_form_"+KSFormName+"_field_"+e;		  
			labelid		= "_form_"+KSFormName+"_label_"+e;		  
			
			row			= xmlDoc.createElement("row");
			attr		= row.setAttribute("name",e);
						subroot.appendChild(row);
					  
			// field type
			dtype		= xmlDoc.createElement("datatype");
						row.appendChild(dtype);
			data		= window.document.all[fieldid].datatype;		  
			txt			= xmlDoc.createTextNode(data);
						dtype.appendChild(txt);
			
			// field label		  
			flabel		= xmlDoc.createElement("fieldlabel");
						row.appendChild(flabel);
			if(window.document.all[labelid])
			{			
				data	= window.document.all[labelid].innerText;		  
				txt		= xmlDoc.createTextNode(data);
						flabel.appendChild(txt);
			}		  
			datatype	= window.document.all[fieldid].datatype.toLowerCase();		  
			modifier	= window.document.all[fieldid].modifier.toLowerCase();		  

			switch(datatype)
			{
				case "code":
						
						switch(modifier)
						{
							case "radio":
								
								fcode			= xmlDoc.createElement("modifier");
												row.appendChild(fcode);
								txt				= xmlDoc.createTextNode(modifier);
												fcode.appendChild(txt);
										
								fcode			= xmlDoc.createElement("code");
												row.appendChild(fcode);
								txt				= xmlDoc.createTextNode(trim(oData[e]));
												fcode.appendChild(txt);
							
								if(trim(oData[e])!="")				// if checked
								{
									lnameid		= e+"_"+oData[e];	// radiobutton label id

									data		= window.document.all[lnameid].innerText;
								}
							break;
							default:
							
								selectedIndex	= window.document.all[fieldid].selectedIndex;
								
								// lookup code
								fcode			= xmlDoc.createElement("code");
												row.appendChild(fcode);
								data			= trim(window.document.all[fieldid][selectedIndex].value);		  
								txt				= xmlDoc.createTextNode(data);
												fcode.appendChild(txt);
										
								data			= trim(window.document.all[fieldid][selectedIndex].text);	
							break;
						}
				break;
				default:

						data	= trim(oData[e]);
				break;
			}

			// value		  
			fvalue	= xmlDoc.createElement("value");
					  row.appendChild(fvalue);
			txt		= xmlDoc.createTextNode(data);
					  fvalue.appendChild(txt);
					  
		}
		var fieldscoll			= window.document.all["__additionalfields__"];
		var addfields			= fieldscoll.children;

			subroot	= xmlDoc.createElement("additional"); 
			root.appendChild(subroot);

		for(var j=0; j<addfields.length; j++)
		{
			row		=	xmlDoc.createElement("row");
			attr	=	row.setAttribute("name",addfields[j].id);
						subroot.appendChild(row);

			// field label		  
			flabel	=	xmlDoc.createElement("fieldlabel");
						row.appendChild(flabel);
			txt		=	xmlDoc.createTextNode(addfields[j].id);
						flabel.appendChild(txt);

			// field value		  
			fvalue	=	xmlDoc.createElement("value");
						row.appendChild(fvalue);
			data	=	trim(addfields[j].value);
			
			if(data.indexOf(">")>0 || data.indexOf("&gt;")>0)
			{
				txt	=	xmlDoc.createCDATASection(data);
			}
			else
			{
				txt	=	xmlDoc.createTextNode(data);
			}
			fvalue.appendChild(txt);
					  
			// field type
			dtype	=	xmlDoc.createElement("datatype");
						row.appendChild(dtype);
			data	=	"additionalfields";		  
			txt		=	xmlDoc.createTextNode(data);
						dtype.appendChild(txt);
		}		
		
		return xmlDoc;
	}
	catch(e){alert("KSForm.obj2xmldom('"+fieldid+"','"+labelid+"') \n"+e.description); return null;}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function xmldom2objType(xmlstring)
{
	var fields				= {};
	var	elem;
	var name;
	var type;
	var xpath				= "CONTENT/fields/field";
	var xpath2Name			= "@name";
	var xpath2DataType		= "@type";
	
	try
	{	
		var xmlDoc			= new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async	= false;
			xmlDoc.loadXML(xmlstring);
		
		var elems			= xmlDoc.selectNodes(xpath);

		for (var i=0; i<elems.length; i++)
		{
			elem			= elems.nextNode();
			
			name			= elem.selectSingleNode(xpath2Name).value;
			type			= elem.selectSingleNode(xpath2DataType).value;

			fields[name]	= type;
		}
	}
	catch(e){alert("xmldom2obj() "+e.description)}
	
	return fields;
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function dbg(O)
{
	if(typeof(O)=="string"||typeof(O)=="number"){	alert(O);	return;	}
	
	var arr	=	[];
	
	for(var o in O)	{arr.push(o); }	arr.sort();	alert(arr.join("; "));
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function getObj(oData)
{
	try
	{	
		var arr		= [];
		
		for(var element in oData)	{arr.push("<",element,">",oData[element],"</",element,">");	}	alert(arr.join(""));
	}
	catch(e){alert("getObj() "+e.description); return "";}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function toSave(str)
{
	if(str=="")		return str;

	var forbidchars	= "&><'";

	if(inStr(forbidchars,str))
	{
					return escape("<![CDATA["+str+"]]>");
	}	
					return str;
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function inStr(forbidchars,instr)
{
	var arr	= forbidchars.split("");
	
	for(var j in arr)
	{
		if(instr.indexOf(arr[j])>=0)	return true;
	}
										return false;
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function CInt(vle,dflt)
{
    var str		= trim(vle);
    var strd	= trim(dflt);
    
	var intg	= parseInt(str,10);
	var intd	= parseInt(strd,10);
	
		intd	= (isNaN(intd)?0:intd);
    
	return (isNaN(intg)?intd:intg);
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function CStr(vle,dflt)
{
       dflt += "";
    if(dflt=="undefined") dflt = "";
    if(dflt=="null")      dflt = "";

       vle += "";
    if(vle=="undefined") return dflt;
    if(vle=="null")      return dflt;
    
    return vle;
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function trim(vle)
{
        var trm = CStr(vle);
    return  trm.replace(/(^\s*)|(\s*$)/g, "");
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
// Function only for HOT
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function hideOrShowCreditGroup(bFlag)
{
	document.all['_form_KSForm1_tab_1'].style.display	= (bFlag) ? "none" : "inline";
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
