// JavaScript Document
var vt=new Object();
var vt_xmlhttp;
vt.getSrc = function() {
	var scripts = document.getElementsByTagName('script');
	
	for(i=0; i < scripts.length; i++) {
		if(scripts[i].src.search("crm_script.js")>0) {
			x = i;
			break;
		}
	}
	
	return scripts[x];
}

vt.getId = function() {
	myScript = vt.getSrc();
	var queryString = myScript.src.replace(/^[^\?]+\??/,'');
	return queryString;	
}

vt.getFullPath = function() {
	myScript = vt.getSrc();
	return myScript.src.replace("crm_script.js?"+vt.getId(),"");
}

vt.getJustPath = function() {
	fullpath = vt.getFullPath();
	path = fullpath.replace('http://www.' + document.domain,'');
	path = fullpath.replace('http://' + document.domain,'');
	return path;
}

vt.loadXMLDoc = function(url,params,callback) {
	vt_xmlhttp=null;
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
	  	vt_xmlhttp=new XMLHttpRequest();
	} else {// code for IE6, IE5
		vt_xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	vt_xmlhttp.open("POST",url,true);
	
	//Send the proper header information along with the request
	vt_xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	vt_xmlhttp.setRequestHeader("Content-length", params.length);
	vt_xmlhttp.setRequestHeader("Connection", "close");
	
	vt_xmlhttp.onreadystatechange=function() {
		if (vt_xmlhttp.readyState==4) {// 4 = "loaded"
			if (vt_xmlhttp.status==200) {// 200 = "OK"
				callback(vt_xmlhttp.responseText);
			}
		}
	}
	vt_xmlhttp.send(params);
}

vt.convertSerializedDataIntoInputs = function(params) {
	kvp = params.split("&");
	input_list = new Array();
	for (var i = 0; i < kvp.length; i++) {
		kvp_unit = kvp[i].split("=");
		if(kvp_unit[0].length>0) input_list[i] = '<input type="hidden" name="' + kvp_unit[0] + '" value="' + kvp_unit[1] + '"/>';
	}
	return input_list;
};
	//return params;

vt.showCode = function(id) {
	if(arguments[1]!='undefined') hiddenfields = arguments[1];
	
	path = vt.getJustPath();
	params = 'campaign_id=' + id;
	//alert(path + "   " + id);
	vt.loadXMLDoc(path + 'easycrm_functions.php?action=get_form_style', params, function(style) {
		
		vt.loadXMLDoc(path + 'themes/' + style + '/style.css', params, function(css_content) {
			
			vt.loadXMLDoc(path + 'easycrm_functions.php?action=load_form&tracking=true',params,function(data) {
				//document.write(data);
				var dwNode = document.createElement('DIV');
				error_prefix = "<div id='crm_error' style='display:none'></div>";
				dwNode.id = "new_crm_form";
				dwNode.innerHTML = error_prefix + data;
			 	
				var css = document.createElement('DIV');
				css_content = '<style type="text/css">' + css_content + '</style>';
				css.id = "new_crm_form_style";
			 	css.innerHTML = css_content;
							
				script = document.getElementById('crm_form')
			 
			 	script.parentNode.insertBefore(css, script);
				script.parentNode.insertBefore(dwNode, script);


				if (hiddenfields.length > 0) {
					hf = document.createElement('DIV');
					hf.innerHTML = hiddenfields;
					document.getElementsByTagName("form")[0].appendChild(hf);
				}

			});
		});
	});
}
vt.serialize = function(frm) {
	var params = "";
	var elem = frm.elements;
	for(var i = 0; i < elem.length; i++) {
		params += elem[i].name + "=" + elem[i].value;
		if(i<(elem.length-1)) params += "&";
	}
	return params;
}
vt.vt_submit = function(frm) {
	//console.log("pword: " + frm.twitter_password.value);
	campaign_id = frm.campaign_id.value;
	
	path = vt.getJustPath();
	
	//validate before proceeding
		
		//1. Look for class = required
		//2. Look for rel text
		var elem = frm.elements;
		error_message = "";
		for(var i = 0; i < elem.length; i++) {
			
			if(elem[i].className.search("required")>-1) {
				if (elem[i].value == '') {
					error_message += elem[i].getAttribute('rel') + '<br/>';
				}
			}
			
		}
		
		if(error_message!="") {
			document.getElementById("crm_error").style.display = "block";
			document.getElementById("crm_error").innerHTML = error_message;
			return false;	
		}
		
	
	
			//submit form to CRM via ajax before posting to autoresponder
			params = vt.serialize(frm);
			vt.loadXMLDoc(path + 'easycrm_functions.php?action=process_form&ajax=true', params, function(data){
				//user wants email?
				if (frm.action.length > 0) { //email
					frm.submit();
				} 
				
				//multi-step?
				else if (document.getElementById('after_submission').getAttribute('rel') == 'after_submission_nextform') {
					next_form_id = document.getElementById('after_submission').value;
					
					//store all inputs of the previous form as input:hidden's
					current_form_data_as_hidden_inputs = vt.convertSerializedDataIntoInputs(params).join('\n');
					
					//replace current form with next form to show
						//clear current form
						document.getElementById("new_crm_form_style").parentNode.removeChild(document.getElementById("new_crm_form_style"));
						document.getElementById("new_crm_form").parentNode.removeChild(document.getElementById("new_crm_form"));
						
						//show new form
						vt.showCode(next_form_id, current_form_data_as_hidden_inputs);
						
				} else if(document.getElementById('after_submission').getAttribute('rel') == 'after_submission_thankyou') {
					thank_you_message = document.getElementById("after_submission").value;
					
					//display thank you
					document.getElementById("new_crm_form").innerHTML = "<div id='crm_success'>" + thank_you_message + "</div>";
						
				} else if(document.getElementById('after_submission').getAttribute('rel') == 'after_submission_url') {
					redirect_value = document.getElementById("after_submission").value;
					//redirect
					window.location.href = redirect_value;
				} else {
					frm.submit();
				}
				
				return false;
			
			});
				
	return false;
}
id = vt.getId();
vt.showCode(id);