function setType(obj,which){
	ctrl_fld = eval("obj.miscField"+which);
	ctrl_typ = eval("obj.miscType"+which);
	ctrl_opr = eval("obj.miscOper"+which);
	ctrl_txt = eval("obj.miscValueTxt"+which);
	ctrl_cbo = eval("obj.miscValueCbo"+which);
	fldval = ctrl_fld.options[ctrl_fld.selectedIndex].value;
	fldtyp = ctrl_fld.options[ctrl_fld.selectedIndex].text;
	fldtyp = fldtyp.substr(fldtyp.length-2,1);
	ctrl_typ.value = fldtyp;
	if(fldtyp=="Y"){
		document.getElementById("tdiv" + which).style.visibility = "hidden";
		ctrl_txt.value = "";
		document.getElementById("cdiv" + which).style.visibility = "visible";
		x = ctrl_cbo.options.length
		for (var i = 0; i <= x; i++){
			ctrl_cbo.options[i] = null
		}
		ctrl_cbo.options[0] = new Option("","")
		ctrl_cbo.options[1] = new Option("Yes","1");
		ctrl_cbo.options[2] = new Option("No","0")
		ctrl_cbo.options.length = 3;
	}
	else if((fldtyp=="C" || fldtyp=="L") && ctrl_opr.options[ctrl_opr.selectedIndex].value != "in"){
		document.getElementById("tdiv" + which).style.visibility = "hidden";
		ctrl_txt.value = "";
		document.getElementById("cdiv" + which).style.visibility = "visible";
		reset_cbo(which);
		document.getElementById("tdiv" + which).style.width = 1;
	}
	else {
		document.getElementById("cdiv" + which).style.visibility = "hidden";
		ctrl_cbo.selectedIndex = -1;
		document.getElementById("tdiv" + which).style.visibility = "visible";
	}
}
function validate(obj,which){
	ctrl_typ = document.forms[0].elements["miscType" + which];
	ctrl_txt = document.forms[0].elements["miscValueTxt" + which];
	if(ctrl_typ.value == "D" && ("x,dateadd,getdate,current".indexOf(left(ctrl_txt.value,7)) > 0 || left(ctrl_txt.value,2)=="/*")){
		//looks like a calculated expresssion - leave as is
	}
	else if(ctrl_typ.value != "T" && ctrl_typ.value != "E"){
		return validatethis(ctrl_typ.value, ctrl_txt);
	}
}
function rerun_validation(obj){
	for(i=0; i < obj.elements.length; i++){
		fld = obj.elements[i];
		if(fld.onchange != null){
			validationtype = fld.onchange.toString();
			if(validationtype.indexOf("validatethis") >= 0){
				oktosubmit = false;
				fld.onchange();
				if(!oktosubmit) return false;
			}
		}
		else if(fld.onblur != null){
			validationtype = fld.onblur.toString();
			if(validationtype.indexOf("validatethis") >= 0){
				oktosubmit = false;
				fld.onblur();
				if(!oktosubmit) return false;
			}
		}
	}
	return true;
}
function validatethis(type, field){
	msg = ""
	if(!field.value || left(field.value,2) == "{{"){
	}
	else if(type == "s"){
		if(field.value.length <= 0){
			msg = field.name + " cannot be empty.";
		}
	}
	else if(type == "phone"){
		country_value = get_country(field);
		if(field.value.length == 0)
        msg = '';
		else if(country_value == "" || country_value == "United States" || country_value == "Canada"){
			msg = validatemask("999-999-9999 ?????????????????????????", field.value);
		}
	}
	else if(type == "phone2format"){
		country_value = get_country(field);
		if(field.value.length == 0)
        msg = '';
		else if(country_value == "" || country_value == "United States" || country_value == "Canada"){
			var r_phone = /^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}( .{0,9})?$/;

			if(field.value && !r_phone.exec(field.value)) {
				msg = "Phone numbers expected as either (999) 999-9999 or 999-999-9999.";
      		}
		}
	}
	else if(type == "ssn"){
		msg = validatemask("999-99-9999", field.value);
	}
	else if(type == "N"){
		if(checknumber(field.value) == false){
			msg = "Invalid format, expecting a number, without words or punctuation.";
		}
	}
	else if(type == "N-comma"){
		if(checkNcomma(field.value) == false){
			msg = "Invalid format, expecting a number.";
		}
	}
	else if(type == "D"){
		if(!checkdate(field)){
			msg = "Please enter a valid date";
		}
	}
	else if(type == "future"){
		now = new Date();
		today = new Date(now.getYear(),now.getMonth(),now.getDate());
		if(!checkdate(field) || new Date(field.value) < today){
			msg = "Please enter a valid date";
		}
	}
	else if(type == "date or date/time"){
		pos = field.value.indexOf(" ");
		len = field.value.length;
		if(pos > 0 && field.value){
			if(!checkdate(left(field.value,pos)) || !checktime(right(field.value,len-pos-1))){
				msg = "Please enter a valid date/time.";
			}
		}
		else if (checkdate(field) == false) {
			msg = "Please enter a valid date";
		}
	}
	else if(type == "DOB"){
		isvalid = checkdate(field);
		if(left(right(field.value,3),1) == "/"){
			msg = "Please enter a 4-digit year";
		}
		else if(!isvalid){
			msg = "Please enter a valid date";
		}
		else if(new Date(field.value) > new Date()){
			msg = "Please enter a date before today";
		}
	}
	else if(type == "date or date/time"){
		pos = field.value.indexOf(" ");
		len = field.value.length;
		if(pos > 0 && field.value){
			if(!checkdate(left(field.value,pos)) || !checktime(right(field.value,len-pos-1))){
				msg = "Please enter a valid date/time.";
			}
		}
		else if (checkdate(field) == false) {
			msg = "Please enter a valid date";
		}
	}
	else if(type == "mm/dd/yyyy"){
		if(right(field.value,4).indexOf("/") > 0){
			msg = "Please enter a valid date, 4 digit year";
		}
		else if(!checkdate(field)){
			msg = "Please enter a valid date";
		}
	}
	else if(type == "mm/yyyy"){
		if(date_mmyyyy(field) == false){
			msg = "Please enter a valid date in the form MM/YYYY";
		}
	}
	else if(type == "mm/dd or mm/dd/yy"){
		if((field.value.length <= 4 || !checkdate(field.value + "/2000")) && !checkdate(field.value)){
			msg = "Please enter a valid date in the form MM/DD or M/D/YY";
		}
	}
	else if(type == "I"){
		if(checkinteger(field.value) == false){
			msg = "Please enter a valid integer."
		}
	}
	else if(left(type,1) == "I"){
		//Integer types I-P (percent), I-T (tinyint), I-S (smallint), I-M (mediumint)
		//Integer types with commas: I-comma-S (smallint), I-comma-M (mediumint)
		fieldtype = type.substr(2);
		//SQLServer 
		//if(fieldtype == "P") fieldmax = 100;
		//else if(fieldtype == "T") fieldmax = 255;
		//else if(fieldtype == "S") fieldmax = 32767;
		//else if(fieldtype == "I") fieldmax = 2147483647;
		//MYSQL 
		if(fieldtype == "P") fieldmax = 100; 
		else if(fieldtype == "T") fieldmax = 255;
		else if(fieldtype == "S") fieldmax = 65535;
		else if(fieldtype == "M") fieldmax = 16777215;
		else if(fieldtype == "I") fieldmax = 4294967295;
		else fieldmax = fieldtype;
		if(type.indexOf("comma") > 0){
			if(checkIcomma(field.value) == false){
				msg = "Please enter a valid integer.";
			}
		}
		else {
			if(checkinteger(field.value) == false){
				msg = "Please enter a valid integer.";
			}
		}
		if(checkrange(field.value,0,fieldmax) == false){
			msg = "Please enter a number smaller than " + fieldmax;
		}
	}
	else if(left(type,3)=="max"){
		fieldmax = type.substr(3);
		if(field.value.length >= fieldmax){
			msg = "This is "+ (field.value.length-fieldmax) +" characters longer than the maximum of " + fieldmax;
		}
	}
	else if(type == "C"){
		if(!_checkcreditcard(field.value)){
			msg = "Please enter a valid card number.";
		}
	}
	else if(type == "zip"){
		country_value = get_country(field);
		if(country_value == "" || country_value == "United States"){
			var r = /^(\d{5}|\d{5}-\d{4})$/;
			if(field.value && !r.test( field.value )){
				msg = "Please enter a valid zip code.";
			}
		}
		else if(country_value == "Canada"){
			var r_cdn = /[A-Z]\d[A-Z][ ]\d[A-Z]\d/;
			if(field.value && !r_cdn.test( field.value)){
				msg = "Please enter a valid postal code.";
			}
		}
	}
	else if(type == "money"){
		var r = /^([\$\d]*)$/;
		if(field.value && !r.test( field.value )){
			msg = "Please enter a valid dollar amount.";
		}
	}
	else if(type == "login-password"){
		if(field.value.length < 6){
			msg = "Please enter a " + field.name + " of least 6 letters or numbers.";
		}
	}
	else if(type == "email"){
		var r = /^[\w\-%_\.']+@([\w\-]+\.)+\w{2,4}$/;
		if(field.value && !r.test( field.value )){
			msg = "Please enter a valid e-mail address.";
		}
	}
	else if(type == "multiple email"){
		var r = /^(\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+(,\s*)*)+$/;
		if(field.value && !r.test( field.value )){
			msg = "Please enter one or more valid e-mail addresses separated by commas.";
		}
	}
	else if(type == "URL"){
		prefix = left(field.value,4).toLowerCase();
		if(field.value && prefix != "http" && prefix != "ftp:"){
			field.value = "http://" + field.value;
		}
	}
	else {
		alert('The validation "'+type+'" was not found.\n\nCheck your spelling and case.');
	}
	if(msg != ""){
		alert(msg);
		field.select();
		field.focus();
		oktosubmit = false;
		return false;
	}
	oktosubmit = true;
	return true;
}
function get_country(field){
	pos = field.name.indexOf("_");
	if(pos > 0){
		if(typeof(field.form.elements[left(field.name,pos) + "_state"]) == "object"){
			fld = field.form.elements[left(field.name,pos) + "_state"];
			vl = fld.options[fld.selectedIndex].value;
			if(",AB,BC,MB,NB,NF,NS,ON,PE,QC,SK".indexOf(vl) > 0){
				return "Canada";
			}
			else if(vl.length > 0){
				return "United States";
			}
		}
		else {
			return "";
		}
	}
	else {
		if(typeof(field.form.elements["state"]) == "object"){
			fld = field.form.elements["state"];
			vl = fld.options[fld.selectedIndex].value;
			if(",AB,BC,MB,NB,NF,NS,ON,PE,QC,SK".indexOf(vl) > 0){
				return "Canada";
			}
			else if(vl.length > 0){
				return "United States";
			}
		}
		else {
			return "";
		}
	}
}
// ASB modified version of dashes() 11.27.07
function dashes(obj){
 //alert('country_value = '+document.getElementById("country_value").innerHTML);
 // alert('obj length = '+obj.value.length);
 if(document.getElementById("country")){
		a_str = obj.form.country.options[obj.form.country.selectedIndex].text;
	} else if (document.getElementById("country_value")){
		a_str = document.getElementById("country_value").innerHTML;
	} else {
	 a_str = "";
	}
	if(((a_str == "") || (a_str == "United States") || (a_str == "Canada")) &&
		((obj.value.length == 3) || (obj.value.length == 7))){
		obj.value = obj.value + '-';
	}
}
function validatemask(mask, value){
	msg = "";
	if(value.length == 0){
		return "";
	}
	for (var i=0; i <= Math.max(value.length,mask.length); i++){
		m = mask.substring(i,i+1);
		v = value.substring(i,i+1);
		if(m == "9"){
			if(outside(v, "0", "9")) msg = "Invalid format";
		}
		else if(m == "A"){
			if(outside(v.toUpperCase()), "A", "Z") msg = "Invalid format";
		}
		else if(m == "?"){
		}
		else if(m == " " && v == ""){
		}
		else {
			if(m != v) msg = "Invalid format";
		}
	}
	if(msg == ""){
		return "";
	}
	else {
		return msg +": Expecting entry in the form '" + mask + "'";
	}
}
function outside(string, x, y){
	if(string < x || string > y) return true
	return false
}
function date_mmyyyy(field){
   	mmyyyy = field.value;
 	pos = mmyyyy.indexOf('/');
 	if(pos == 0 || pos != mmyyyy.lastIndexOf("/")){
		return false;
 	}
 	else {
		if(mmyyyy.substr(0,1) == "0"){
			m = mmyyyy.substr(1,1)
		}
		else if(pos == 2){
			m = mmyyyy.substr(0,2)
		}
		else {
			m = mmyyyy.substr(0,1)
		}
		if(parseInt(mmyyyy.substr(pos+1)) == 0){
  			y = parseInt(mmyyyy.substr(pos+2));
		}
		else {
  			y = parseInt(mmyyyy.substr(pos+1));
		}
		if(mmyyyy == ""){
			//ok
		}
	 	else if(m > 0 && m < 13 && y >= 1870 && y <= 2050){
			//ok
	 	}
	 	else if(m > 0 && m < 13 && y >= 1 && y <= 9){
	 		field.value = m.toString() + "/200" + y.toString();
	 	}
	 	else if(m > 0 && m < 13 && y >= 10 && y <= 20){
	 		field.value = m.toString() + "/20" + y.toString();
	 	}
	 	else {
			return false;
	 	}
	}
	return true;
}
function _checkcreditcard(object_value){
	var white_space = " -";
	var creditcard_string="";
	var check_char;

    if(object_value.length == 0)
        return true;

	// squish out the white space
	for (var i = 0; i < object_value.length; i++){
		check_char = white_space.indexOf(object_value.charAt(i))
		if(check_char < 0)
			creditcard_string += object_value.substring(i, (i + 1));
	}	

	// if all white space return error
    if(creditcard_string.length == 0)
        return false;
	 	
	// make sure number is a valid integer
	if(creditcard_string.charAt(0) == "+")
        return false;

	if(!checkinteger(creditcard_string))
		return false;

    // now check mod10

	var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
	var checkdigit = 0;
	var tempdigit;

	for (var i = 0; i < creditcard_string.length; i++){
		tempdigit = eval(creditcard_string.charAt(i))
		if(doubledigit){
			tempdigit *= 2;
			checkdigit += (tempdigit % 10);
			if((tempdigit / 10) >= 1.0){
				checkdigit++;
			}

			doubledigit = false;
		}
		else{
			checkdigit += tempdigit;
			doubledigit = true;
		}
	}	
	return (checkdigit % 10) == 0 ? true : false;
}
function checkdate(obj){
//Returns true if value is a date format or is NULL
//otherwise returns false	
	today = new Date();
	yr = today.getFullYear();
	if (typeof(obj) == "object"){
	    if(obj.value.length == 0)
	        return true;
		if(obj.value.indexOf('-') > 0)
			obj.value = obj.value.replace(/-/gi,"/");
		if(obj.value.length <= 5){
			obj.value = obj.value +"/"+ yr;
		}
		else if(left(right(obj.value,3),1) == "/"){
			obj.value = left(obj.value,obj.value.length-2) + "20" + right(obj.value,2);
		}
		object_value = obj.value;
	}
	else {
		object_value = obj;
	}

    //Returns true if value is a date in the mm/dd/yyyy format
	isplit = object_value.indexOf('/');

	if(isplit == -1 || isplit == object_value.length)
		return false;

    sMonth = object_value.substring(0, isplit);
	isplit = object_value.indexOf('/', isplit + 1);

	if(isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;

    sDay = object_value.substring((sMonth.length + 1), isplit);

	sYear = object_value.substring(isplit + 1);

	if(!checkinteger(sMonth)) //check month
		return false;
	else
	if(!checkrange(sMonth, 1, 12)) //check month
		return false;
	else
	if(!checkinteger(sYear)) //check year
		return false;
	else
	if(!checkrange(sYear, 0, 99) && !checkrange(sYear, 1900, yr+10)) //check year
		return false;
	else
	if(!checkinteger(sDay) || sDay.length == 0 || sMonth.length == 0) //check day
		return false;
	else
	if(!checkday(sYear, sMonth, sDay)) // check day
		return false;
	else
		return true;
}
function checkday(checkYear, checkMonth, checkDay){
	maxDay = 31;

	if(checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if(checkMonth == 2)
	{
		if(checkYear % 4 > 0)
			maxDay =28;
		else
		if(checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}
	return checkrange(checkDay, 1, maxDay); //check day
}
function checktime(object_value){
	if (object_value.length == 0)
		return true;
	isplit = object_value.indexOf(':');
	if (isplit == -1 || isplit == object_value.length)
		return false;
	sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);
	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);

	period = object_value.substring(5);
	if("^ am^ pm^ AM^ PM^".indexOf(period) > 0){
		sMin = left(sMin,2);
	}
	else {
		return false;
	}
	if (!checkinteger(sHour))
		return false;
	else if (!checkrange(sHour, 0, 23))
		return false;

	if (!checkinteger(sMin))
		return false;
	else
	if (!checkrange(sMin, 0, 59))
		return false;

	if (iminute != -1){
		sSec = object_value.substring(iminute + 1);
		if (!checkinteger(sSec))
			return false;
		else if (!checkrange(sSec, 0, 59))
			return false;	
	}
	if (sHour < 7 && "^ am^ AM^".indexOf(period) > 0){
		return false;
	}
	return true;
}
function checkinteger(object_value){
    var r = /^([0-9]+)$/;
	return r.test( object_value ) || !object_value;
}
function checkrange(object_value, min_value, max_value){
    //if value is in range then return true else return false
    if(object_value.length == 0) return true;
    if(!checknumber(object_value)){
		return false;
	} 
	else {
		return (numberrange((eval(object_value)), min_value, max_value));
	}
    //All tests passed, so...
    return true;
}
function numberrange(object_value, min_value, max_value){
    // check minimum
    if(min_value != null){
        if(object_value < min_value)
		return false;
	}

    // check maximum
    if(max_value != null){
	if(object_value > max_value)
		return false;
	}
	
    //All tests passed, so...
    return true;
}
function checkIcomma(object_value){
    //Returns true if value is a number or is NULL
	//otherwise returns false	
    if (object_value.length == 0)
	    return true;
	    
	var r = /^(\d{1,3}(\,\d{3})*|\d*)$/;
	return r.test( object_value );
}
function checkNcomma(object_value){
    //Returns true if value is a number or is NULL
	//otherwise returns false	
    if (object_value.length == 0)
	    return true;
	    
	var r = /^(\d{1,3}(\,\d{3})*|\d*)[.]?[0-9]{0,2}$/;
	return r.test( object_value );
}
function checknumber(object_value){
    //Returns true if value is a number or is NULL
	//otherwise returns false	
    if (object_value.length == 0)
	    return true;
	    
	var r = /^[\+\-]?[0-9]*[.]?[0-9]+$/;
	return r.test( object_value );
}
function fieldChecked(field){
	if(typeof(field.checked) == "boolean"){
		return field.checked ? 1:0;
	}
	else {
		x = 0;
		for (i=0; i<field.length; i++){
			if(field[i].checked){
				x = x + 1;
			}
		}
		return x;
	}
}
function left(txt,num){
	return txt.substr(0,num);
}
function right(txt,num){
	len = txt.length;
	return txt.substr(len-num,num);
}
function add_option(obj, tx, vl){
	l = obj.options.length;
	newOpt = new Option(tx, vl, false, false);
	obj.options[l]=newOpt;
	l++;
	obj.length = l;
}
function set_dropdown(obj,code,using_desc){
	if(using_desc){
		for(i=0;i<obj.length;i++){
			if(obj.options[i].text == code){
				obj.selectedIndex = i;
				break;
			}
		}
	}
	else {
		for(i=0;i<obj.length;i++){
			if(obj.options[i].value == code){
				obj.selectedIndex = i;
				break;
			}
		}
	}
}
function clear_dropdown(obj){
	l = obj.options.length;
	for(i=0;i<l;i++){
		obj.options[0] = null;
	}
}
function get_checked_value(obj){
	if(typeof(obj) == "undefined"){
		return 0;
	}
	else if(typeof(obj.length) == "undefined"){
		if(typeof(obj.value) == "string" && obj.checked){
			return obj.value;
		}
		else {
			return 0;
		}
	}
	else {
		for(i=0;i<obj.length;i++){
			if(obj[i].checked){
				return obj[i].value;
			}
		}
	}
	return 0;
}
function disable(obj){
	obj.disabled = true;
	obj.readOnly = true;
	obj.className = "input_disabled";
}
function enable(obj){
	obj.disabled = false;
	obj.readOnly = false;
	obj.className = "input";
}
function newwindow(url,w){
	if(!w) w = 640;
	newWindow = window.open(url, 'newWindow', 'width='+w+',height=500,toolbar=1,location=0,directories=0,status=0,menuBar=1,scrollBars=2,resizable=1');
	newWindow.focus();
}
function cl(id,which,gotopage,thisid,dir,otherid,whence){
	temp = which+"_"+gotopage+".cfm?"+which+"_id="+id;
	if(dir){
		temp = dir + temp;
	}
	if(thisid > 0){
		if(window.location.href.indexOf("org_view") > 0){
			temp = temp + "&org_id="+thisid;
		}
		else if(otherid != null){
			temp = temp + "&"+otherid+"_id="+thisid;
		}
		else {
			temp = temp + "&contact_id="+thisid;
		}
	}
	if(whence != null){
		temp = temp + "&whence="+whence;
	}
	window.location.href=temp;
}
//tooltips
function shwtip(text,obj,fld) {
	tipobj = document.getElementById("tip");
	h = Number(obj.style.height.replace('px',''));
	if(h <= 0){
		h = 20;
	}
	tipobj.style.top = (getposOffset(obj,"top")+h)+"px";
	tipobj.style.left = getposOffset(obj,"left")+"px";
	tipobj.innerHTML = text;
	if(fld){
		if(document.getElementById(fld)){
			document.getElementById(fld).style.visibility = "hidden";
		}
	}
	tipobj.style.visibility = "visible";
}
function hidtip(fld) {
	document.getElementById("tip").style.visibility = "hidden";
	if(fld){
		if(document.getElementById(fld)){
			document.getElementById(fld).style.visibility = "visible";
		}
	}
}
function getposOffset(what, offsettype){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null){
	totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
	parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}
function unScrambleEmail(eMail1,eMail2,statusText){
	var a,b,c;a=eMail1;b=eMail2.substring(0,eMail2.length-4);
	if(statusText!=""){e=" onMouseOver=\"top.status=\'"+statusText+
	"\'\;return true\;\" onMouseOut=\"top.status=\'\'\;return true\;\"";}else{e="";}
	document.write("<a href=\"mai"+"lto:"+a+"@"+b+"\""+e+">"+a+"@"+b+"</a>");
}
function setrel(blurb,dir,page_id,layout){
	frm = parent.document.page;
	temp_checked = 0;
	if(parent.document.getElementById("language")){
		lang = frm.language.options[frm.language.selectedIndex].value;
	}
	else {
		lang = 0;
	}
	for(temp=0;temp<frm.template.length;temp++){
		if(frm.template[temp].checked){
			temp_checked = temp+1;
		}
	}
	if(layout=="table" || page_id == 0){
		frm.temp.value = blurb;
		frm.type.value = "rel";
		if(formvalid(frm)){
			frm.submit();
		}
	}
	else if(blurb == 0){
		if(document.all){
			window.scrollTo(0,320);
		}
		else {
			document.body.scrollTop = 320;
		}
		document.getElementById("preview").src = dir+"rel_edit.cfm?page_id="+page_id+"&id=0&lang="+lang+"&template="+temp_checked;
	}
	else {
		window.location.href = dir+"rel_edit.cfm?page_id="+page_id+"&id="+blurb+"&lang="+lang+"&template="+temp_checked;
	}
}
function setside(blurb,dir,page_id,layout){
	frm = parent.document.page;
	temp_checked = 0;
	if(parent.document.getElementById("language")){
		lang = frm.language.options[frm.language.selectedIndex].value;
	}
	else {
		lang = 0;
	}
	for(temp=0;temp<frm.template.length;temp++){
		if(frm.template[temp].checked){
			temp_checked = temp+1;
		}
	}
	if(layout=="table" || page_id == 0){
		frm.temp.value = blurb;
		frm.type.value = "side";
		if(formvalid(frm)){
			frm.submit();
		}
	}
	else if(blurb == 0){
		document.getElementById("preview").src = dir+"side_edit.cfm?page_id="+page_id+"&id=0&lang="+lang+"&template="+temp_checked;
	}
	else {
		window.location.href = dir+"side_edit.cfm?page_id="+page_id+"&id="+blurb+"&lang="+lang+"&template="+temp_checked;
	}
}
function openSlideShow(URL){
	SlideShow=window.open(URL,"SlideShow","width=620, height=580, left=10,top=10")
}
function openNewWindow(url,width,height){
	newWindow = window.open(url, 'newWindow', 'width='+width+',height='+height+',toolbar=1,location=0,directories=0,status=0,menuBar=0, scrollBars=2,resizable=1');
	newWindow.focus();
}
function detail(code,jumpto,path,arrow){
	if(document.getElementById('block'+code)){
		div = document.getElementById('block'+code);
		img = document.getElementById('img'+code);
		if(!path){
			path = "..";
		}
		if(!arrow){
			arrow = "arrow";
		}
		if(div.style.display == "none" || div.className == "detail"){
			div.style.display = "";
			div.className = "";
			img.src = path + "/images/down"+arrow+".gif";
		}
		else {
			div.style.display = "none";
			div.className = "detail";
			img.src = path + "/images/right"+arrow+".gif";
		}
	}
	if(jumpto) {
		window.location.href = "#" + jumpto;
	}
}
function showrow(handle,row){
	tr = document.getElementById(handle + row);
	if(document.all){
		tr.style.display = "block";
	}
	else {
		tr.style.display = "table-row";
	}
}
function toggle(thislink,table,pk,field,relative){
	if(!relative) relative = "../";
	$.getJSON(relative+"template/getdata.cfm?r="+Math.random()+"&mode=toggle&table="+table+"&pk="+pk+"&field="+field,
        function(data){
        	thislink.innerHTML = data.data.newvalue;
        	thislink.parentNode.className = "done";
        });
}
function showblurb(i){
	if(document.getElementById("blurb"+i)){
		div = document.getElementById("blurb"+i);
		div.style.display = "block";
		div.style.top = (getposOffset(document.getElementById("rel"+i),"top")+15)+"px";
		div.style.left = (getposOffset(document.getElementById("rel"+i),"left")+50)+"px";
	}
}
function hideblurb(i){
	if(document.getElementById("blurb"+i)){
		div = document.getElementById("blurb"+i);
		div.style.display = "none";
	}
}
function setfriendly(me,other){
	if(!me.value){
		temp = other.value.toLowerCase();
		temp = temp.replace(/[ ]+/g,"-");
		temp = temp.replace(/[-]{2,9}/g,"-");
		ret = "";
		for(i=0;i<temp.length;i++){
			if((temp.charCodeAt(i) >= 48 && temp.charCodeAt(i) <= 57) || (temp.charCodeAt(i) >= 97 && temp.charCodeAt(i) <= 122) || temp.charCodeAt(i) == 45){
				ret = ret + temp.substr(i,1);
			}
		}
		if(window.location.href.indexOf("page_edit") > 0){
			me.value = "index.cfm/" + ret;
		}
		else {
			me.value = ret;
		}
	}
}
function already_found(t,f,v,pk,pkvalue){
	if(directorylevel() == 3){
		path = "../../";
	}
	else {
		path = "../";
	}
	$.getJSON(path + "template/getdata.cfm?r="+Math.random()+"&pk="+pk+"&mode=already&table="+t+"&value="+escape(v)+"&field="+f,
        function(data){
        	if(data.data.cnt == 0 || (data.data.cnt == 1 && data.data.pk == Number(pkvalue))){
			}
			else {
				msg = "This value is already found in another record.\nPlease edit it before moving on.";
				alert(msg);
				return false;
        	}
        }
	);
}
function use_orderby(field,o1,o2){
	obj = document.forms[0].elements[field];
	if(o1 == "" || (Number(o1) > Number(o2) && Number(o2) > 0)) o1 = 0;
	if(o2 == "infinity" || o2 == ""){
		vl = Number(o1) + 10;
	}
	else if(o1 == "0"){
		alert("You need to edit the order sequence of the first item to create some space.");
		return;
	}
	else if(o1==o2){
		vl = o1;
	}
	else {
		vl = Math.round((Number(o1)+Number(o2))/2);
	}
	obj.value = vl;
	div = document.getElementById("tip");
	div.style.visibility = "hidden";
}
function get_orderby(obj,tb,tf,of,filter){
	if(!filter) filter="";
	if(directorylevel() == 3){
		path = "../../";
	}
	else {
		path = "../";
	}
	$.getJSON(path + "template/getdata.cfm?r="+Math.random()+"&mode=orderby&table="+tb+"&titlefield="+tf+"&orderfield="+of+"&value="+obj.value+"&filter="+filter,
        function(data){
			eventfunc = 'use_orderby("'+obj.name+'",0,"'+data.data.orderby[1]+'")';
			content = "Select Ordering:<table><tr class='order hover' onclick='"+eventfunc+"'><td colspan=2>&lt;</td></tr>";
			for(i=0;i<data.recordcount;i++){
				if(i==data.recordcount-1){
					eventfunc = 'use_orderby("'+obj.name+'","'+data.data.orderby[i]+'","infinity")';
				}
				else {
					eventfunc = 'use_orderby("'+obj.name+'","'+data.data.orderby[i]+'","'+data.data.orderby[i+1]+'")';
				}
				content += "<tr class=data><td>"+data.data.orderby[i]+"</td><td>"+data.data.title[i] + "</td></tr>";
				content += "<tr class='order hover' onclick='"+eventfunc+"'><td colspan=2>&lt;</td></tr>";
			}
			content += "</table>";
        	div = document.getElementById("tip");
			div.style.visibility = "visible";
			div.style.maxHeight = "250px";
			div.style.overflow = "auto";
			div.style.width = "300px";
			div.style.top = (getposOffset(obj,"top")-30)+"px";
			div.style.left = (getposOffset(obj,"left")+35)+"px";
			div.innerHTML = content;
        }
	);
}
function showFlashLink(location,div){
	$("#"+div).html("<a href='"+location+"' target='_blank'>Go to ad site</a>");
}

