function getDateToday() {

	d = new Date();
	var strDate = d.getDate() + '/' + (d.getMonth() + 1) + '/' + d.getFullYear();

	return strDate;

}

function updateFieldToday(strField) {

	var strText = getDateToday();
	
	document.getElementById(strField).value = strText;

}


function textCounter(field, countfield, maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
	field.value = field.value.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
	else 
	countfield.value = maxlimit - field.value.length;
}


function showhide(strField) {

	if(document.getElementById) {
		d = document.getElementById(strField);
	}
	else {
		if(document.layers) {
			d = document.layers[strField];
		}
		else {
			if(document.all) {
				d = document.all(strField);
			}
		}
	}
	
	if(d.style.display == 'none') {
		d.style.display = '';
	}
	else {
		d.style.display = 'none';
	}
	
	
	if(document.getElementById) {
		d = document.getElementById('x-'+strField);
	}
	else {
		if(document.layers) {
			d = document.layers['x-'+strField];
		}
		else {
			if(document.all) {
				d = document.all('x-'+strField);
			}
		}
	}
	if(d != null){
		if(d.style.display == 'block') {
			d.style.display = 'none';
		}
		else {
			d.style.display = 'block';
		}
	}
}

var selectLast = "";

function showselect(strHide,strShow) {

	if(document.getElementById) {
		s = document.getElementById(strShow);
		h = document.getElementById(strHide);
	}
	else {
		if(document.layers) {
			s = document.layers[strShow];
			h = document.layers[strHide];
		}
		else {
			if(document.all) {
				s = document.all(strShow);
				h = document.all(strHide);
			}
		}
	}
	
	if(s != null) s.style.display = 'block';
	if(h != null) h.style.display = 'none';
	
}

function SubmitPopup(showText)
{

	document.getElementById("popuptext").innerHTML=showText;

	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement &&
	( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}

	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement &&
	( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
  
  	document.getElementById("savepopup").style.left=((myWidth/2)-125);
	document.getElementById("savepopup").style.top=(((myHeight/2)+scrOfY)-25);
	document.getElementById("savepopup").style.visibility='visible';
	return true;
}

function parCode(code, Fnum)
{

	var theform = document.forms.update;
	
	var textarea = document.getElementById(Fnum);
	//var textarea = document.update.fldvalue[Fnum];

	//var strSel = document.selection.createRange().text;
	
	
	//alert('hi bye');
	
	textarea.focus();
	
	if(document.selection)
	{
		strSel = document.selection.createRange().text;
	
		if(strSel != "")
		{
			textarea.caretPos = document.selection.createRange();	
			document.selection.createRange().text = "["+code+"]"+ strSel +"[/"+code+"]";
			
			textarea.caretPos.select();
			textarea.focus();
			//textarea.caretPos = textarea.textLength;
		}
		else
		{
			inserttext = prompt("["+code+"]xxx[/"+code+"]","Enter the text you want in the selected style.");
		
			if ((inserttext != null) && (inserttext != ""))
			{
				var varText = "["+code+"]"+inserttext+"[/"+code+"] ";
				
				textarea.caretPos = document.selection.createRange();			
				if(textarea.caretPos)
				{
					var carPos = textarea.caretPos;
					carPos.text = carPos.text.charAt(carPos.text.length - 1) == ' ' ? varText + ' ' : varText;
					carPos.select();
				}
				else
				{
					textarea.value += varText;
				}
			}
			textarea.focus();
		}
	}
	else if (textarea.selectionEnd && (textarea.selectionEnd - textarea.selectionStart > 0))
	{ // non ie so we have to do it crappy
	
		//alert('hi');
		
		var start_sel = textarea.selectionStart;
		var end_sel = textarea.selectionEnd;
		if (end_sel <= 2)
		{
			end_sel = textarea.textLength;
		}

		// fetch everything from start of text area to selection start
		var start = (textarea.value).substring(0, start_sel);
		// fetch everything from start of selection to end of selection
		var middle = (textarea.value).substring(start_sel, end_sel);
		// fetch everything from end of selection to end of text area
		var end = (textarea.value).substring(end_sel, textarea.textLength);

		if (middle.substring(0, code.length + 2 ) == "[" + code + "]" && middle.substring(middle.length - code.length - 3, middle.length) == "[/" + code + "]")
		{
			middle = middle.substring(code.length + 2, middle.length - code.length - 3);
		}
		else
		{
			middle = "[" + code + "]" + middle + "[/" + code + "]";
		}
		
		textarea.value = start + middle + end;

	}
	else
	{
	
		//alert('hi');
		
		var inserttext = prompt("["+code+"]xxx[/"+code+"]","Enter the text you want in the selected style.");

		if ((inserttext != null) && (inserttext != ""))
		{
			textarea.value += "["+code+"]"+inserttext+"[/"+code+"] ";
		}

		textarea.focus();	
	}
	
	return false;
}

function parTerm(Fnum)
{
	var textarea = document.getElementById(Fnum);
	//var textarea = document.update.fldvalue[Fnum];
	
	textarea.focus();

	if(document.selection)
	{
		var varText = "[end-brief]";
		
		textarea.caretPos = document.selection.createRange();
		if(textarea.caretPos)
		{
			var carPos = textarea.caretPos;
			carPos.text = carPos.text.charAt(carPos.text.length - 1) == ' ' ? varText + ' ' : varText;
			carPos.select();
		}
		else
		{
			textarea.value += varText;
		}
		
		textarea.focus();
		
	}
	else
	{	
		textarea.value += "[end-brief]";
		textarea.focus();
	}
	
}

function insLink(Fnum)
{

	insertlink = prompt("Enter the URL you want the link to go to.","http://");

	if ((insertlink != null) && (insertlink != ""))
	{
		inserttxt = prompt("Enter in the link text, This is what the text the link is on.","Link text");
		
		if ((inserttxt != null) && (inserttxt != ""))
		{
			insertpop = confirm("Do you want this link to open in its own window?");
		
			if ((insertpop == true))
			{
				inserttext = "[link="+insertlink+"[popup]]"+inserttxt+"[/link] ";
			}
			else
			{
				inserttext = "[link="+insertlink+"]"+inserttxt+"[/link] ";
			}
			
			var textarea = document.getElementById(Fnum);
			//var textarea = document.update.fldvalue[Fnum];
			textarea.focus();
			
			if(document.selection)
			{
				var varText = inserttext;

				textarea.caretPos = document.selection.createRange();
				if(textarea.caretPos)
				{
					var carPos = textarea.caretPos;
					carPos.text = carPos.text.charAt(carPos.text.length - 1) == ' ' ? varText + ' ' : varText;
					carPos.select();
				}
				else
				{
					textarea.value += varText;
				}

				textarea.focus();

			}
			else
			{	
				textarea.value += inserttext;
				textarea.focus();
			}			
			
			document.getElementById(Fnum).focus();
		}
	}
}

function insEmail(Fnum)
{
	insertlink = prompt("Enter the Email Address you want the link to go to.","user@domain.com");

	if ((insertlink != null) && (insertlink != ""))
	{
		
		inserttxt = prompt("Enter the text you want the link to be.","Cick Here to email me.");
		
		if ((inserttxt != null) && (inserttxt != ""))
		{
			document.getElementById(Fnum).value += "[link=mailto:"+insertlink+"]"+inserttxt+"[/link] ";
			document.getElementById(Fnum).focus();
		}
	}

}

function insImage(Fnum)
{
	insertimg = prompt("[img]imglink[/img]","Enter the image url of the image you want to show.");

	if ((insertimg != null) && (insertimg != ""))
	{
		document.getElementById(Fnum).value += "[img]"+insertimg+"[/img] ";
		document.getElementById(Fnum).focus();
	}
}

function butBorder(fName,iborder)
{
	var x = document.getElementById(fName);
	
	//alert(x);
	
	var colborder;
	
	if(iborder == '1'){
		colborder="#000000";
	}
	else
	{
		colborder="#CCCCCC";
	}	
	
	x.style.borderColor = colborder;
}

function extendText(Fnum)
{
	var rowCount = document.getElementById(Fnum).rows;
	
	if(rowCount > 8)
	{
		document.getElementById(Fnum).rows='8';
		var x = document.getElementById('extendBut'+Fnum);
		x.title='Extend Text Area';
		x.src='/images/extend.gif';
	}
	else
	{
		document.getElementById(Fnum).rows='29';
		var x = document.getElementById('extendBut'+Fnum);
		x.title='Contract Text Area';
		x.src='/images/contract.gif';
	}
}

function checkCustType()
{
	
	var x = document.forms['updatemenu'].fieldtype.selectedIndex;
	
	if(document.forms['updatemenu'].fieldtype.options[x].value == "drop")
	{
		document.getElementById('editcustopt').style.display = '';
	}
	else
	{
		document.getElementById('editcustopt').style.display = 'none';
	}
	
	return false;
}

function updateSpan(strField,strText) {

	if(document.getElementById) {
		d = document.getElementById(strField);
	}
	else {
		if(document.layers) {
			d = document.layers[strField];
		}
		else {
			if(document.all) {
				d = document.all(strField);
			}
		}
	}
	
	d.innerHTML = strText;

}

function updateArea(strField,strText) {

	if(document.getElementById) {
		d = document.getElementById(strField);
	}
	else {
		if(document.layers) {
			d = document.layers[strField];
		}
		else {
			if(document.all) {
				d = document.all(strField);
			}
		}
	}
	
	d.value = strText;

}

function ajaxAddNewOrderItem(siteInfo) {

	if(!document.getElementById) return; //Prevent older browsers from getting any further.
	var field_area = document.getElementById('itemtable');
	
	var yourDate = new Date();

	var url = '/ajaxReturns.aspx?act=addorderitem&ran='+yourDate.getTime()+'&id='+siteInfo;

	http.open("GET", url, true);
	http.onreadystatechange = function() {

		if (http.readyState == 4) {

			results = http.responseText;

			if(results != "false") {

				tempField = field_area.innerHTML;
					 
				tempField = tempField.replace(/\<\/tbody\><\/table\>/gi,'');
				
				tempField += '<tr id=\"'+results+'\"><td><span id=\"'+results+'_qty\">1</span></td><td><span id=\"'+results+'_itemid\">-1</span></td><td>&nbsp;<span id=\"'+results+'_desc\"></span></td><td><span id=\"'+results+'_price\"></span></td><td><span id=\"'+results+'_tax\"></span></td><td><span id=\"'+results+'_totprice\">&nbsp;</span></td><td><span id=\"'+results+'_act\"></span></td></tr></table>';
  
	 			field_area.innerHTML = tempField;
				
				ajaxEditOrderItem(results,siteInfo)
				
			}
		}
	}
	
	http.send(null)	
}

function ajaxRemoveOrderItem(strField,siteInfo) {
 
 	if(!document.getElementById) return; //Prevent older browsers from getting any further.
  	var stl;
        stl = 'none';

	var yourDate = new Date();

	var url = '/ajaxReturns.aspx?act=removeorderitem&ran='+yourDate.getTime()+'&fld='+strField+'&id='+siteInfo;

	http.open("GET", url, true);
	http.onreadystatechange = function() {

		if (http.readyState == 4) {

			results = http.responseText;

			if(results == "true") {

				var tbl  = document.getElementById('itemst');
				var rows = tbl.getElementsByTagName('tr');

				for (var row=0; row<rows.length;row++) {
					if(rows[row].id == strField){
						rows[row].style.display=stl;
					}
				}
			}
		}
	}
	http.send(null);
        
        
}

function ajaxEditOrderItem(strField,siteInfo) {

	var strText;
	
	strText = document.getElementById(strField+'_qty').innerHTML;
	updateSpan(strField+'_qty','<input type=\"text\" id=\"'+strField+'_edit_qty\" size=\"3\" value=\"'+strText+'\">');
	
	strText = document.getElementById(strField+'_desc').innerHTML;
	updateSpan(strField+'_desc','<input type=\"text\" id=\"'+strField+'_edit_desc\" value=\"'+strText+'\">');
	
	strText = document.getElementById(strField+'_price').innerHTML;
	updateSpan(strField+'_price','<input type=\"text\" id=\"'+strField+'_edit_price\" size=\"6\" value=\"'+strText+'\">');

	strText = document.getElementById(strField+'_tax').innerHTML;
	updateSpan(strField+'_tax','<input type=\"text\" id=\"'+strField+'_edit_tax\" size=\"6\" value=\"'+strText+'\">');
	
	//Update Buttons
	updateSpan(strField+'_act','<input type=\"button\" value=\"Save\" onclick=\"ajaxSaveOrderItem(\''+strField+'\',\''+siteInfo+'\')\">');
	return false;
}

function ajaxSaveOrderItem(strField,siteInfo) {

	if(!document.getElementById) return; //Prevent older browsers from getting any further.	
	var strqtyText = escape(document.getElementById(strField+'_edit_qty').value);
	var strdescText = escape(document.getElementById(strField+'_edit_desc').value);
	var strpriceText = escape(document.getElementById(strField+'_edit_price').value);
	var strtaxText = escape(document.getElementById(strField+'_edit_tax').value);
	
	var yourDate = new Date();
	  
	updateSpan(strField+'_act','<input type=\"button\" value=\"Edit\" onclick=\"ajaxEditOrderItem(\''+strField+'\',\''+siteInfo+'\')\"><input type=\"button\" value=\"Remove\" onclick=\"ajaxRemoveOrderItem(\''+strField+'\',\''+siteInfo+'\')\">');
	
	var url = '';
	
	//Quantity
	url = '/ajaxReturns.aspx?act=updateorderitem&ran=ran'+yourDate.getTime()+'&fld='+strField+'&fldname=qty&fldval='+strqtyText+'&id='+siteInfo;
	
	http.open("GET", url, true);
	http.onreadystatechange = function() {
	  updateSpan(strField+'_qty','Saving...');
	  if (http.readyState == 4) {
		results = http.responseText;
		strqtyText = 0 + results;
		updateSpan(strField+'_qty',results);
		
		doneQty = true;
		
		if(donePrice && doneQty && doneTax) {
			
			newresults = formatCurrency((strpriceText+strtaxText)*strqtyText);
			updateSpan(strField+'_totprice',newresults);

			calcOrderPrice(siteInfo);
		}
	  }
	}
	http.send(null);


	//Description
	yourDate = new Date();
	url = '/ajaxReturns.aspx?act=updateorderitem&ran='+yourDate.getTime()+'&fld='+strField+'&fldname=comments&fldval='+strdescText+'&id='+siteInfo;
	
	http2.open("GET", url, true);
	http2.onreadystatechange = function() {
	  updateSpan(strField+'_desc','Saving...');
	  if (http2.readyState == 4) {
		results = http2.responseText;
		updateSpan(strField+'_desc',results);
	  }
	}
	http2.send(null);
	

	//Price
	yourDate = new Date();
	url = '/ajaxReturns.aspx?act=updateorderitem&ran='+yourDate.getTime()+'&fld='+strField+'&fldname=price&fldval='+strpriceText+'&id='+siteInfo;
		
	http3.open("GET", url, true);
	http3.onreadystatechange = function() {
	  updateSpan(strField+'_price','Saving...');
	  if (http3.readyState == 4) {
	  
		results = http3.responseText;
		
		strpriceText = parseFloat(results);
		
		results = formatCurrency(results);
		updateSpan(strField+'_price',results);
		
		
		donePrice = true;
		
		if(donePrice && doneQty && doneTax) {
			
			newresults = formatCurrency((strpriceText+strtaxText)*strqtyText);
			updateSpan(strField+'_totprice',newresults);

			calcOrderPrice(siteInfo);
		}
		
	  }
	}
	http3.send(null);
	
	//alert(strtaxText);
	
	//Tax
	yourDate = new Date();
	url = '/ajaxReturns.aspx?act=updateorderitem&ran='+yourDate.getTime()+'&fld='+strField+'&fldname=tax&fldval='+strtaxText+'&id='+siteInfo;
			
	http4.open("GET", url, true);
	http4.onreadystatechange = function() {
	  updateSpan(strField+'_tax','Saving...');
	  if (http4.readyState == 4) {
	  
		results = http4.responseText;
		
		strtaxText = parseFloat(results);
				
		results = formatCurrency(results);
		updateSpan(strField+'_tax',results);
		

		doneTax = true;
		
		if(donePrice && doneQty && doneTax) {
			
			newresults = formatCurrency((strpriceText+strtaxText)*strqtyText);
			updateSpan(strField+'_totprice',newresults);

			calcOrderPrice(siteInfo);
		}
			
	  }
	}
	http4.send(null);
		
	return false;
}



function ajaxEditOrderDetail(strField,siteInfo) {

	var strText = document.getElementById(strField).innerHTML;

	updateSpan(strField,'<input type=\"text\" id=\"'+strField+'_text\" value=\"'+strText+'\">');
	updateSpan(strField+'_act','<input type=\"button\" value=\"Save\" onclick=\"ajaxSaveOrderDetail(\''+strField+'\',\''+siteInfo+'\')\">');
		
	return false;
}

function ajaxSaveOrderDetail(strField,siteInfo) {

	if(!document.getElementById) return; //Prevent older browsers from getting any further.
	var strText = escape(document.getElementById(strField+'_text').value);
	var yourDate = new Date();
	
	var url = '/ajaxReturns.aspx?act=updateorderdetail&ran='+yourDate.getTime()+'&fld='+strField+'&fldval='+strText+'&id='+siteInfo;
	 
	updateSpan(strField,"Saving...");
	http.open("GET", url, true);
	http.onreadystatechange = function() {
	  if (http.readyState == 4) {
	  
		results = http.responseText;

		updateSpan(strField,results);
		
		updateSpan(strField+'_act','<input type=\"button\" value=\"Edit\" onclick=\"ajaxEditOrderDetail(\''+strField+'\',\''+siteInfo+'\')\">');

	  }
	}
	http.send(null);

	return false;

}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

var http = getHTTPObject();
var http2 = getHTTPObject();
var http3 = getHTTPObject();
var http4 = getHTTPObject();
var http5 = getHTTPObject();

var doneQty = false;
var donePrice = false;
var doneTax = false;

function calcOrderPrice(siteInfo) {
	
	doneQty = false;
	donePrice = false;

	var yourDate = new Date();
	yourDate = new Date();
	var url = '/ajaxReturns.aspx?act=getorderoverview&ran='+yourDate.getTime()+'&id='+siteInfo;

	http5.open("GET", url, true);
	http5.onreadystatechange = function() {
	  updateSpan('ordsummary','Updating...');
	  if (http5.readyState == 4) {
		results = http5.responseText;

		updateSpan('ordsummary',results);
	  }
	}
	http5.send(null);
	
	var doneQty = false;
	var donePrice = false;
	var doneTax = false;

}

function formatCurrency(num) {
	
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num)) {
		num = "0";
	}
	
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10) {	
		cents = "0" + cents;
	}
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
	}
	
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function ShowBranch(show,group) {
	if (show == 'show'){
	document.getElementById('grp'+group).style.display = 'block';
	document.getElementById('max'+group).style.display = 'none';
	document.getElementById('min'+group).style.display = 'inline';
	}
	if (show == 'hide'){
	document.getElementById('grp'+group).style.display = 'none';
	document.getElementById('max'+group).style.display = 'inline';
	document.getElementById('min'+group).style.display = 'none';
	}
}


function showtemplate(strField, itemid, siteid) {

	checkActiveSession();
	//checkHttp();
	updateSpan(strField,"Loading Editor");


	if(document.getElementById) {
		d = document.getElementById(strField);
	}
	else {
		if(document.layers) {
			d = document.layers[strField];
		}
		else {
			if(document.all) {
				d = document.all(strField);
			}
		}
	}
	
	d.style.display = '';
	
	
	var yourDate = new Date();
	yourDate = new Date();
	var url = '/ajaxReturns.aspx?act=gettemplateeditor&ran='+yourDate.getTime()+'&id='+itemid+'&siteid='+siteid;

	httpTemplate.open("GET", url, true);
	httpTemplate.onreadystatechange = function() {
	  updateSpan(strField,'Loading...');
	  if (httpTemplate.readyState == 4) {
		results = httpTemplate.responseText;

		updateSpan(strField,results);
	  }
	}
	httpTemplate.send(null);
	
}

function saveTemplate(strField, itemid, strType, siteid) {

	//return true;

	var eField;
	var dField;

	if(checkActiveSession()) {
	
		//updateSpan(strField,'Saving Template');
		//alert('hi' + strField)

		if(document.getElementById) {
			dField = document.getElementById(strField+itemid);
			//eField = document.getElementById('tempedit_title_'+itemid);
		}
		else {
			if(document.layers) {
				dField = document.layers[strField+itemid];
				//eField = document.layers['tempedit_title_'+itemid];
			}
			else {
				if(document.all) {
					dField = document.all(strField+itemid);
					//eField = document.all('tempedit_title_'+itemid);
				}
				else {
					//alert('arrrhh');
				}
			}
		}

		//var strTitle = eField.value;
		var strData = dField.value;

		var yourDate = new Date();
		yourDate = new Date();
		var url = '/ajaxReturns.aspx?act=savetemplate&type='+strType+'&ran='+yourDate.getTime()+'&id='+itemid+'&siteid='+siteid;

		var xmlhttp =  new XMLHttpRequest();

		xmlhttp.open("POST", url, true);
		xmlhttp.onreadystatechange = function() {		  
		  updateArea(strField+itemid,'Saving Please Wait...');		  
		  if (xmlhttp.readyState == 4) {
		  	
		  	try {
				var strDataXML = xmlhttp.responseXML;
				var strUpdateText;
							
				if(strDataXML.getElementsByTagName('valueset')[0].firstChild.data == 'true'){
					strUpdateText = decodeBase64(strDataXML.getElementsByTagName('content')[0].firstChild.data);
				}
				else {
					strUpdateText = "";
				}

				updateArea(strField+itemid,strUpdateText);
				//updateArea(strField+itemid,decodeBase64(strDataXML.getElementsByTagName('content')[0].firstChild.data));
				//updateArea('tempedit_title_'+itemid,decodeBase64(strDataXML.getElementsByTagName('title')[0].firstChild.data));
			}
			catch (e) {
				alert(xmlhttp.responseText);
		    	}
		  }
		}
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.send('strdata=' + escape(strData));
	
	}
	else {
	
		alert('This session has expired, please copy any unsaved information in to your clipboard.\n\r\n\rLog back in and paste in to where you were editing and try saving again.');
	
	}	
}

function createTemplate(strField, itemid, strType, siteid) {

	if(checkActiveSession()) {
		
		var strTemplateName = '';
	
		while(strTemplateName == '' && strTemplateName != null) {
			strTemplateName = prompt('Enter the name for this template','Template Name');
			
			var xmlhttp =  new XMLHttpRequest();

			xmlhttp.open("GET", '/ajaxReturns.aspx?act=checkTemplateName&name='+strTemplateName+'&siteid='+siteid, false);
			xmlhttp.onreadystatechange = function() {		  
			  if (xmlhttp.readyState == 4) {

				var strTempVal = xmlhttp.responseText;

				if(strTempVal == 'taken') {
					alert('This template name is already taken, please choose another');
					strTemplateName = '';
				}
				
			  }
			}	
			xmlhttp.send(null);			
		}
		
		if(strTemplateName != null) {
		
			var yourDate = new Date();
			yourDate = new Date();
			var url = '/ajaxReturns.aspx?act=createTemplate&type='+strType+'&ran='+yourDate.getTime()+'&id='+itemid+'&siteid='+siteid+'&tname='+strTemplateName;

			var xmlhttp =  new XMLHttpRequest();

			//alert('hi1');

			xmlhttp.open("GET", url, true);
			xmlhttp.onreadystatechange = function() {		  
			  //updateArea(strField+itemid,'Saving Please Wait...');		  
			  if (xmlhttp.readyState == 4) {

				try {

					//alert('hi1.2');

					var strDataXML = xmlhttp.responseText;
//alert(strDataXML);
					if(strDataXML != 'true') {
						
						updateArea(strField+itemid,'');
						document.getElementById('save'+strType+'_'+itemid).disabled=false;
						document.getElementById(strField+itemid).disabled=false;
						
						addOptionLastSelected(strTemplateName,'templateSelect'+strType+'_'+itemid);
						
						//alert('created');
						
						//alert(strDataXML);
						
					}
					else {
						alert('Creating new template failed');
					}
				}
				catch (e) {
					alert(xmlhttp.responseText);
				}
			  }
			}
			//alert('hi2');

			xmlhttp.send(null);
		
		}
	
	}
	else {
	
		alert('This session has expired, please copy any unsaved information in to your clipboard.\n\r\n\rLog back in and paste in to where you were editing and try saving again.');
	
	}	
}

function rebuildTemplateItems(strField, itemid, isCat, siteid) {

	checkActiveSession();
	//checkHttp();
	updateSpan(strField,"Rebuilding Items, Please Wait...");


	if(document.getElementById) {
		d = document.getElementById(strField);
	}
	else {
		if(document.layers) {
			d = document.layers[strField];
		}
		else {
			if(document.all) {
				d = document.all(strField);
			}
		}
	}
	
	d.style.display = '';
	
	
	var yourDate = new Date();
	yourDate = new Date();
	var url = '/ajaxReturns.aspx?act=rebuildTemplate&ran='+yourDate.getTime()+'&ic='+isCat+'&id='+itemid;

	httpTemplate.open("GET", url, true);
	httpTemplate.onreadystatechange = function() {
	  //updateSpan(strField,'Loading...');
	  if (httpTemplate.readyState == 4) {
		results = httpTemplate.responseText;

		//updateSpan(strField,results);
		
		showtemplate(strField, itemid, siteid)
	  }
	}
	httpTemplate.send(null);
	
}

function removeTemplate(strField, itemid, strType) {

	checkActiveSession();
	//checkHttp();
	updateSpan(strField+itemid,"Removing Template, Please Wait...");


	if(document.getElementById) {
		d = document.getElementById(strField);
	}
	else {
		if(document.layers) {
			d = document.layers[strField];
		}
		else {
			if(document.all) {
				d = document.all(strField);
			}
		}
	}
	
	//d.style.display = '';
	
	
	var yourDate = new Date();
	yourDate = new Date();
	var url = '/ajaxReturns.aspx?act=RemoveTemplate&ran='+yourDate.getTime()+'&id='+itemid+'&type='+strType;

	httpTemplate.open("GET", url, true);
	httpTemplate.onreadystatechange = function() {
	  //updateSpan(strField,'Loading...');
	  if (httpTemplate.readyState == 4) {
		results = httpTemplate.responseText;

		if(results == 'true') {
			document.getElementById('save'+strType+'_'+itemid).disabled=true;
			document.getElementById(strField+itemid).disabled=true;
			updateSpan(strField+itemid,"Please create a new template to begin!");
			document.getElementById('templateSelect'+strType+'_'+itemid).selectedIndex = 0;
		}
		else {
			alert('Could not delete template, please contact support.');
		}
	  }
	}
	httpTemplate.send(null);
	
}

function setNewTemplateLink(strField, itemid, strType, siteid) {

	checkActiveSession();
	var strDropBoxField = 'templateSelect'+strType+'_'+itemid
	
	var newTemplate = document.getElementById(strDropBoxField).options[document.getElementById(strDropBoxField).selectedIndex].value;

	if(newTemplate == 'none') {
		removeTemplate(strField, itemid, strType);
	}
	else {
	
		var yourDate = new Date();
		yourDate = new Date();
		var url = '/ajaxReturns.aspx?act=changeTemplateLink&ran='+yourDate.getTime()+'&id='+itemid+'&name='+newTemplate+'&type='+strType+'&siteid='+siteid;

		var xmlhttp = new XMLHttpRequest();

		xmlhttp.open("GET", url, true);
		xmlhttp.onreadystatechange = function() {
		  updateSpan(strField+itemid,'Loading...');
		  if (xmlhttp.readyState == 4) {
			try {
				var strDataXML = xmlhttp.responseXML;

				//alert('setNewTemplateLink: 2.1');
				//alert(strDataXML.getElementsByTagName('valueset')[0].firstChild.data);
				
				var strUpdateText;
				
				if(strDataXML.getElementsByTagName('valueset')[0].firstChild.data == 'true'){
					strUpdateText = decodeBase64(strDataXML.getElementsByTagName('content')[0].firstChild.data);
				}
				else {
					strUpdateText = "";
				}
				
				document.getElementById('save'+strType+'_'+itemid).disabled=false;
				document.getElementById(strField+itemid).disabled=false;
				
				updateArea(strField+itemid,strUpdateText);
				//updateArea('tempedit_title_'+itemid,decodeBase64(strDataXML.getElementsByTagName('title')[0].firstChild.data));
			}
			catch (e) {
				alert(xmlhttp.responseText);
			}
		  }
		}
		xmlhttp.send(null);
		
	}	
}

//*************************
//     Misc Functions
//*************************

function addOptionLastSelected(strText,strField) {

	var elOptNew = document.createElement('option');
	elOptNew.text = strText;
	elOptNew.value = strText;
	var elSel = document.getElementById(strField);

	try {
		elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
	}
	catch(ex) {
		elSel.add(elOptNew); // IE only
	}

	var lastItem = document.getElementById(strField).options.length;
	
	document.getElementById(strField).selectedIndex = lastItem-1;

}

var checkActive;

function checkActiveSession() {

	//alert('Done Check ' + checkActive);
	
	checkActive = false;
	
	var yourDate = new Date();
	yourDate = new Date();
	var url = '/ajaxReturns.aspx?act=checkSession&ran='+yourDate.getTime();

	//alert('1.1');

	httpTemplate.open("GET", url, false);
	
	//alert('1.2');
	
	httpTemplate.onreadystatechange = function() {
	  if (httpTemplate.readyState == 4) {
	  
	  	//alert('1.4');
		results = httpTemplate.responseText;
		
		if(results = 'active'){
			checkActive = true;
		}
		else {
			checkActive = false;
		}
	  }
	}
	
	//alert('1.3');
	
	httpTemplate.send(null);
	
	//alert('Done Check ' + checkActive);
	
	return checkActive;
	
}
<!-- <script type="text/javascript" src="sarissa.js"></script> -->
var httpTemplate = new XMLHttpRequest();
//var httpTemplate = getHTTPObject();

var END_OF_INPUT = -1;

var base64Chars = new Array(
    'A','B','C','D','E','F','G','H',
    'I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X',
    'Y','Z','a','b','c','d','e','f',
    'g','h','i','j','k','l','m','n',
    'o','p','q','r','s','t','u','v',
    'w','x','y','z','0','1','2','3',
    '4','5','6','7','8','9','+','/'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
    reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
    base64Str = str;
    base64Count = 0;
}
function readBase64(){    
    if (!base64Str) return END_OF_INPUT;
    if (base64Count >= base64Str.length) return END_OF_INPUT;
    var c = base64Str.charCodeAt(base64Count) & 0xff;
    base64Count++;
    return c;
}
function encodeBase64(str){
    setBase64Str(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
        inBuffer[1] = readBase64();
        inBuffer[2] = readBase64();
        result += (base64Chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != END_OF_INPUT){
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != END_OF_INPUT){
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64Chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
        if (lineCount >= 76){
            result += ('\n');
            lineCount = 0;
        }
    }
    return result;
}
function readReverseBase64(){   
    if (!base64Str) return END_OF_INPUT;
    while (true){      
        if (base64Count >= base64Str.length) return END_OF_INPUT;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]){
            return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
    return END_OF_INPUT;
}

function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

function decodeBase64(str){
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
        if (inBuffer[2] != END_OF_INPUT){
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
            if (inBuffer[3] != END_OF_INPUT){
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }
    return result;
}

function savePageCode(itemid, siteid) {

	//return true;

	var dField;
	var dField2;

	if(checkActiveSession()) {
	
		//updateSpan(strField,'Saving Template');
		//alert('hi' + strField)

		if(document.getElementById) {
			dField = document.getElementById('insertcode');
			dField2 = document.getElementById('loadcode');
		}
		else {
			if(document.layers) {
				dField = document.layers['insertcode'];
				dField2 = document.layers['loadcode'];
			}
			else {
				if(document.all) {
					dField = document.all('insertcode');
					dField2 = document.all('loadcode');
				}
				else {
					//alert('arrrhh');
				}
			}
		}

		var strData = dField.value;
		var strData2 = dField2.value;

		var yourDate = new Date();
		yourDate = new Date();
		var url = '/ajaxReturns.aspx?act=savepagecode'+'&ran='+yourDate.getTime()+'&id='+itemid+'&siteid='+siteid;

		var xmlhttp =  new XMLHttpRequest();

		xmlhttp.open("POST", url, true);
		xmlhttp.onreadystatechange = function() {		  
		  updateArea('insertcode','Saving Please Wait...');
		  updateArea('loadcode','Saving Please Wait...');
		  updateSpan('insertcode_msg','');
		  if (xmlhttp.readyState == 4) {
		  	
		  	try {
				var strDataXML = xmlhttp.responseXML;
				var strUpdateHead;
				var strUpdateLoad;
							
				if(strDataXML.getElementsByTagName('valueset')[0].firstChild.data == 'true'){
					strUpdateHead = decodeBase64(strDataXML.getElementsByTagName('headscript')[0].firstChild.data);
					strUpdateLoad = decodeBase64(strDataXML.getElementsByTagName('loadscript')[0].firstChild.data);
		}
				else {
					strUpdateHead = "";
					strUpdateLoad = "";
				}

				updateArea('insertcode',strUpdateHead);
				updateArea('loadcode',strUpdateLoad);
				updateSpan('insertcode_msg','Code Saved');
				//updateArea(strField+itemid,decodeBase64(strDataXML.getElementsByTagName('content')[0].firstChild.data));
				//updateArea('tempedit_title_'+itemid,decodeBase64(strDataXML.getElementsByTagName('title')[0].firstChild.data));
			}
			catch (e) {
				alert(xmlhttp.responseText);
		    	}
		  }
		}
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.send('headscript=' + encodeBase64(strData) + '&loadscript=' + encodeBase64(strData2));
	
	}
	else {
	
		alert('This session has expired, please copy any unsaved information in to your clipboard.\n\r\n\rLog back in and paste in to where you were editing and try saving again.');
	
	}	
}
